游客您好
  • 点击联系客服

    在线时间:8:30-18:00

    客服微信

    Wkr-3000y-kf

    电子邮件

    3000y@wenkeruan.com
  • 手机版

    随时掌握游戏动态

  • 扫一扫二维码

    添加微信客服

Lv.5 解脱境
277号会员,0活跃值,2022.10.27 加入
  • 207发帖
  • 173主题
  • 0关注
  • 0粉丝
这个人很懒,什么也没有留下。
独家推荐 更多>

[安全工具] 第一个作业——小试牛刀《意气风发来打牛》

[复制链接]
快要发癫啦 发表于 2023-1-9 09:35:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:0 E2 i$ ?$ q+ N3 }: a! B/ J
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!: ^7 ?9 ]2 d/ z
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
- |5 f/ X. c  I3 u收集这些材料交给屠夫,他会奖励你东西
2 Q7 h  S2 b8 q6 T4 i3 k, r9 x' Y) v这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。! C8 N" L! p, ^, d+ J

! Y* G( Z  F2 D% J; D% `3 F目的:
9 |! x/ l+ U- P% I0 S( c- X体会最基本的活动都是怎么设计的; r9 B$ {- w6 K3 A/ Q0 }

* Q* d! e! l9 X3 |5 O6 [3 g知识点:
3 u9 }7 F/ W8 Y( W! l. G* p1、检测包裹里的物品
( n" {& o' V" K, p2、检测包裹空间+ y# L2 ]( `8 @# ?# Z
3、给与物品
. e5 v$ x0 A% J8 T+ @2 b/ C$ M( ^7 s4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
- @$ l5 ]0 f4 \* w% ]5 H1 W9 f

; o& @. O' T1 g; i" [
unit 屠夫;- H1 j+ f3 j9 d/ u; [% A3 i
0 V" r$ D! t, r" `
//下面的是通用的调用程序内建的函数。每个脚本都有的。; S: t' q* Y; w) f# z

" U7 J3 Y$ F; S; Q
inte**ce
" v3 i+ k- Z% R! n4 A7 c: _, Q

6 t: N% A- |4 ]7 X- x
function  GetToken (aStr, aToken, aSep : String) : String;
& b5 R, p: i: [3 i
function  CompareStr (aStr1, aStr2 : String) : Boolean;6 t, N% @6 B" L0 C3 E
function  callfunc (aText: string): string;0 e" ^- b! y" ?& D
procedure print (aText: string);
9 G5 b8 Y' E" t7 k7 Q$ \% n2 N
function  Random (aScope: integer): integer;  b/ }1 w7 a* C) ]& N2 W9 i
function  Length (aText: string): integer;
% g" g* K* t- T$ p, g
procedure Inc (aInt: integer);
; b  k7 a% Y5 j: Z
procedure Dec (aInt: integer);; ?+ p' y0 L' x1 g; W8 s
function  StrToInt (astr: string): integer;
$ E& U( _5 x) b; n* Y/ T$ ]' T0 a* h
function  IntToStr (aInt: integer): string;
( C8 m! }( L/ n, f$ O& S. b
procedure exit;( P$ ~3 ~3 D' b, m* g

- p2 }5 N1 v% a  w1 c
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么8 L! F; z+ r6 q. B5 X6 G4 h
9 O% ]. ]6 Z, l9 Z- R3 h" f
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
% `  k& v/ A! W: s% M2 W6 e

$ d# O( `% M! |+ j; [
//第二句的意思是当左键单击的时候响应,  X1 z: O+ e% s' c9 N9 L/ n
. C# h; a" P4 g
procedure OnGetResult (aStr : String);
1 m! b& |4 T$ v" _3 p2 U1 S
procedure OnLeftClick (aStr : String);
- b; Z2 n" N1 `3 F: }

& i/ \9 n9 V! v0 v" \& d1 @$ A
//以上是脚本的头部,下面是脚本的主体部分) ]" [5 i9 H( M7 @% o1 ~/ a2 A

3 s; L6 }7 ?% t  x2 {
implementation
4 M5 R3 u. Z& k, O6 q% q
! A7 M+ y3 q- ?/ h: H$ F$ ^6 {
//当左键单击时
+ D7 f, j9 u. {/ S; M) j5 K, ~# F* h

! r/ x7 N3 s7 \: s% c
procedure OnLeftClick (aStr : String);
. H, f6 z, |7 t; i0 ~) z1 i1 w
. \$ ?2 m5 |  e0 k  e
//声明变量的类型0 p# D8 y3 U. T+ y
var3 R' R# I7 `: B+ e! W

9 Y4 Q" ]$ A+ T* B( C$ G3 a1 p0 J
//Str变量为字符串型
3 h& E* j5 u, w. S( s5 G8 i4 i
   Str : String;
+ C% a( O7 c$ }8 U. v9 y# c% O
% \: \/ D0 T* g, t' u! Y
//Race变量为整型
- O' j  l; g9 w  O! E$ W
   Race : Integer;, c# x% O4 X8 }
begin
: m0 M$ Y; v, Z

% H- C- ]) U) a4 q8 g  I' i
//获取点击者的种族
* _; H' j9 t$ j5 s* x
   Str := callfunc ('getsenderrace');, n6 Q6 ?8 v- A# H
- Q/ k: V. K+ ]3 G$ f- f7 [0 l
//将获取的值由字符串型转换成整型- g% n; V* f( Y% K. {
   Race := StrToInt (Str);. l' g- n: [4 x  G4 i
$ Y" f5 b) [1 G6 ^+ d6 N1 T# ]
//如果种族为1,这里种族为1代表是玩家* H  B6 g: Q  V- Q
   if Race = 1 then begin
- K+ L& K3 U% b  v. J3 m) V

* \, @& X" A" K! F/ V' c
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
# D+ U( {2 B3 B* A9 ]/ Q
      Str := 'showwindow .\help\屠夫.txt 1';# v( G( c) Q& Z! \- t# b
      print (Str);3 P* S- ~+ w! x: H4 I* X% z) o4 |+ o

. B* _3 D1 z2 Z% B! A
//小判断结束4 z! f0 O- v  K" s4 D* O6 m: ~9 F
      exit; ' ^7 S$ M0 X* ]2 h8 _9 T" [
   end;
+ N7 m! V6 d5 v# h: s) N1 C. o

( r$ s/ w; k2 o
//一个语句段结束
6 _: w$ N  f* U" n6 b  S
end;* F5 p$ y; t8 J9 G9 s, m
/ V% O7 U4 z. R: G2 c
//另一个语句段开始
5 n6 [& h' i) j$ T- g

+ D" J" G6 ?$ W$ y, Y& ^# O6 p( \
//当从Help文件里反馈回命令参数时,做出响应( M6 @0 M- l; Q2 o, }' v* x+ ^
3 z, O. z5 Y6 G+ i
procedure OnGetResult (aStr : String);# q; D$ Y+ H& K% x  e5 f6 s) z
var
6 ]3 p( ~& H4 d4 ?* }2 n4 K
   Str, Name : String;3 D3 @: s) U% b6 Z" u
begin
2 ~9 H$ d* s, e! h) p! c# h; b  f

  Z8 U3 ]% P  ?, c& q; y, W7 e
//当反馈参数为close的时候就关闭对话框
  m& b) ?& t4 @" i3 y6 w, Z" K
   if aStr = 'close' then begin
6 g6 h4 f2 Q9 @, Z  n
      exit;
* x8 `: _2 N# F6 N7 c
   end;& R/ f9 L$ D0 D1 Q1 y9 q

) ~5 Q, W. C1 o9 J% `; L. W
//当玩家选择niujiao 的命令时
/ B; [  u) C& [% J
$ x, T$ j3 V1 _- W+ D
   if aStr = 'niujiao' then begin
4 N; _8 U1 w" N  P8 j" T# N3 c
: X& ?1 ~1 |! F+ Q. L
//检测背包里是否有牛角
7 M. Z. M+ s, ]. K  X
      Str := callfunc ('getsenderitemexistence 牛角:1');
% f" L: |& {7 [# J2 s6 q3 n
/ B5 A# Q4 I: k6 Z
//如果反馈信息为假,也就是没有8 C% C6 M, F9 f' i, x  r
      if Str = 'false' then begin6 K  m. Z* e( A% b' \. U& q+ u
$ M) Z( q4 P8 Q6 S( }& F8 J( u
//屠夫说话
# }, L0 P  S9 _8 `1 c7 y4 c7 _
         Str := 'say 快弄牛角再说';
' O; q0 s8 n" o  j
         print (Str);8 V8 ^: X7 c7 b0 ?0 ^8 o; l6 W/ r: X" h

! g9 W& u7 T) p/ S: F, [
//检测结束+ ^6 k- I% \& c7 h5 k; B9 O8 @
         exit;
# B, ~9 _5 K" R0 O# B4 G
      end;
9 D$ t$ i6 M" V  m5 o

  z  \, k; I4 [- A" W
//如果有的话就继续执行下面的$ d5 N7 e% z% I+ J

9 L1 s; L& I6 {
         if Str = 'true' then begin2 T- F; b8 R  j: Z

3 Z' }/ u$ A! X
//检测背包是否还有空位置
: F4 }  k1 i! |7 t. h
            Str := callfunc ('checkenoughspace');/ }# a# c; y; V: m! e

7 f  N. w$ Z4 Y( ^! E, W) y; X: ~
//如果返回值为假,也就是没有
1 b+ ?: L& E6 @) m0 r! s. `( F( w
            if Str = 'false' then begin  E4 A* o  M$ H5 M: H6 v2 B

( s& J7 v7 a0 s1 V' }
//那么就提示物品兰已满
  o5 w) Q& ^$ C& S4 h% y  [
               print ('say 物品栏已满');: i# S" n0 g; F. N! ], K8 |
( y/ [+ Z6 R* W: T. ?2 [" {
//检测结束
4 b5 V: n5 l! r& O' W
               exit;
2 l. p9 m: E& H7 {$ L/ o1 K
            end;2 J9 ]4 }, b0 g5 u" m1 _

" s# B1 r/ j, `  i7 f
//如果背包有空位置,那么继续4 M9 I( W9 Z* K8 U

9 l1 ~/ o: B% a5 O* v
//没收牛角
% Z3 U: c) @! }6 p5 z# y
" r: e+ k4 p" g2 e2 ^0 u; s  Z
            Str := 'getsenderitem 牛角:1';. N2 s+ ~+ j2 A+ P' w$ `! d
            print (Str);
7 o! G7 M, y! j( z  p6 p- H

* @* c( P' A8 Q1 U: [' j
//给牛俊弓服
, _( x$ v! _" v* N# Y$ ?7 ?
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
  D, C. v) Y4 N* |* V+ m* B# h
            print (Str);
' u& G) V. x5 G/ K) L
            Str := 'say 收好了..俺最喜欢的衣服~';
9 Q4 ~* Y+ t& e; M
            print (Str);2 h/ B- L; X9 ]8 A
            exit;
% p" J. v! `; u# p4 f
         end;
& E. B/ s! E2 n! E1 t, \4 n) V7 ^

8 e4 w6 D6 M* T* h- v  T! n, L. ^
//判断结束语句; Z! o/ F" u1 u) g
      end;( @+ B9 p$ k0 ]7 D, E
      exit;$ X& Y) s7 e$ e7 I7 Z! @

- G  G; P8 Q5 P2 n+ h1 ^* Z. t
end;
0 k- f  o1 d+ n/ G. H* J
6 `3 X) l* P5 F: J+ ~0 L7 t. s
end.
/ K1 N& w) |" S( [$ y) d/ y: \+ K
& p1 l9 i9 l5 k2 b3 g
end;
, ?5 a1 r  y  z
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

Powered by Discuz!X3.4 ©2001-2013 Comsenz Inc.闽公网安备 35099902000100号增值电信业务经营许可证 闽B2-20220593 闽ICP备2023014375号