游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
/ P6 v5 @6 \1 @  o" P  C; q" C+ o出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
) G- i  q" R9 a* D2 ^7 l来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
4 B, r3 `# v$ N5 n& g( C/ C1 V收集这些材料交给屠夫,他会奖励你东西! ?' s7 k7 k3 d/ N
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
/ q6 u$ ?5 m4 F( u" w9 w, U
; \! _, @2 \# I* \! Z目的:$ W) O6 x" x3 g" `8 }/ b# x
体会最基本的活动都是怎么设计的  ?- }7 L/ H+ ^$ q( ~

; n% s- q$ Z2 e! v% W$ U8 p知识点:: @* u2 A# M, ~6 n+ ]) I
1、检测包裹里的物品
; ^9 E: F- r& O* s" u' M9 g' ?2、检测包裹空间
  I9 K& N" v. a# r* r+ E3、给与物品3 r4 ?# }6 e) _; i* n
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
3 |) `( A6 G* t# v" G" v' _! B

2 g5 Z) N4 @6 v  C. o% p. i
unit 屠夫;1 j+ u- w; ]# r3 d1 a

: ]" y( D6 K% Y! T: w8 o
//下面的是通用的调用程序内建的函数。每个脚本都有的。
: A) l7 J1 d9 M% v2 i3 V
& a9 P( K% V+ b8 D" j
inte**ce
; |2 O1 P- N8 |/ U% u
% f: J. z0 W$ y  |7 y, E& U! y
function  GetToken (aStr, aToken, aSep : String) : String;( P0 ~% T4 K. H& \2 p
function  CompareStr (aStr1, aStr2 : String) : Boolean;& s8 Q) S% S! ?3 m
function  callfunc (aText: string): string;
7 o5 H6 B  n5 f0 R6 u
procedure print (aText: string);
- g1 t0 \. p9 R' J/ L7 r
function  Random (aScope: integer): integer;
/ Z# M# r5 a9 h& K  c( U$ u
function  Length (aText: string): integer;
0 S$ p& k9 w( ~+ ]* S
procedure Inc (aInt: integer);
( [! A  ~4 i8 u
procedure Dec (aInt: integer);
9 @9 f- i. ~' O0 r
function  StrToInt (astr: string): integer;
, O5 R0 b4 X! s
function  IntToStr (aInt: integer): string;
* E- P- P1 \9 d% C  X! P4 p
procedure exit;
* T8 _$ D/ ~/ D% A  X
+ ]  [* x% q9 x% F5 X
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
0 Y3 [+ v; G) N2 \& Q7 s

9 J! E4 C% G) u7 ]: B+ I0 [
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
- l$ M; ]; `/ ?3 A6 M, f

$ B$ P# v: Z) t6 M
//第二句的意思是当左键单击的时候响应,% [! i+ P* s7 B& z3 q+ u
" b4 O9 C6 o) r
procedure OnGetResult (aStr : String);
' K3 L; ~# T: v+ Z; h+ P
procedure OnLeftClick (aStr : String);
! H, ?: O. O# l* L4 P+ k
9 @9 U8 O0 ^1 b' _7 q$ t1 q
//以上是脚本的头部,下面是脚本的主体部分, x$ T2 y! |' e2 s+ L
' k1 v: x# T) A6 I! G& `+ j) L
implementation
7 C' T/ B6 a# v1 O! k- a9 B
4 V1 J/ V3 f0 f( ^+ H
//当左键单击时5 K6 M2 p: s: l
" u( ^# K# M9 p1 T
procedure OnLeftClick (aStr : String);. W1 l' {' O" L! E6 j

0 j; g. E" _' M
//声明变量的类型! l9 @2 i4 {; M9 y+ ~) q* O
var' [& |6 K% w  H" ~

2 I. H% F% e: |4 F
//Str变量为字符串型# Q6 \' S8 s* P( H! X
   Str : String;- J& ~& ^3 A2 F
; ]: Q8 k+ x# J: P1 S% W
//Race变量为整型
8 C* T3 x/ P0 H# r& U' d6 @$ G
   Race : Integer;) k  F" n! B' b4 d; `* m7 _0 w
begin
" Y: p& p) M- n: o& }4 f2 `8 z

: W2 Z  L4 P. B$ T4 A
//获取点击者的种族
+ a, t; T! S9 n& a
   Str := callfunc ('getsenderrace');
  w- t- p6 O# e, E& g- K

* Y5 i+ t6 U0 m0 k0 ?. e7 r9 A
//将获取的值由字符串型转换成整型; h0 U( B9 v$ D& l7 `0 ]
   Race := StrToInt (Str);: B: v/ T0 X# `+ X" Q3 r0 H

6 L# }# M6 v+ W4 c
//如果种族为1,这里种族为1代表是玩家& H% C- Y2 U: J: }" }5 o
   if Race = 1 then begin
( s% f* {$ }. K

! M3 K6 M' [' K
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种( ~; w+ K) u- M2 I4 M# ~
      Str := 'showwindow .\help\屠夫.txt 1';1 A0 L! r# g" |
      print (Str);/ J5 I! s8 E1 c

5 {1 H( b- Q, L# j4 W! r9 h$ m  i
//小判断结束
2 h% {! \( \, g
      exit; 1 d  G: `% R2 W$ P4 ?" _) }
   end;0 `% Q: h- Z- J
7 Y5 F7 u" M* c! t. C0 w
//一个语句段结束6 X) t* ]$ H0 @( X. P/ q# H( _' d
end;
9 }0 `! S' f; H6 R4 U9 p
0 _4 x* \9 \0 |8 l4 D4 f( h
//另一个语句段开始
( z5 T8 I6 D$ j( d1 [6 x5 ]0 R

  \. ~( @: J- f( i, V- S7 C0 h5 d
//当从Help文件里反馈回命令参数时,做出响应
, Z7 `8 m- Z* L. S0 K7 ^4 f
+ }, E. M, R, n# K
procedure OnGetResult (aStr : String);9 c3 n; k/ ^+ j; G9 a; {( R8 l
var
$ H3 J0 a, K+ R& o) t% u0 b
   Str, Name : String;
9 E, ^  {" n0 K6 ^
begin
0 S1 U  g$ }1 z7 m- M+ I3 Y

3 D4 a) G/ {7 O( F% s! u5 v
//当反馈参数为close的时候就关闭对话框- q# p; `. B! v
   if aStr = 'close' then begin
: K7 V+ \6 y4 U! K7 h! W% i5 E
      exit;
1 R$ c9 s3 c1 w- L1 c/ `2 R+ m
   end;# b4 W1 z4 i( L4 G- e$ V

, U, k5 ~/ @0 C0 y, I
//当玩家选择niujiao 的命令时
& H, }8 e9 Y# w0 ~5 ]
* N1 C, A0 u* ?: {; K2 ?- }0 _
   if aStr = 'niujiao' then begin" S, D' L& G9 m, T- g

' _# S- L$ }- u. q( L' }6 e( y# p0 N) q
//检测背包里是否有牛角! ]0 R) k- s/ T9 W' ?" q
      Str := callfunc ('getsenderitemexistence 牛角:1');5 t5 v3 ]' ]7 H7 a3 v, y
& W+ t% }$ D! S- b) V/ ?
//如果反馈信息为假,也就是没有
7 W1 K" a. M2 z0 e! w0 Z
      if Str = 'false' then begin, `9 O4 o8 ?4 U, u

2 F+ U, m" ^4 b( \9 V+ R; {
//屠夫说话
( b9 ?5 s+ g* h5 s0 R
         Str := 'say 快弄牛角再说';
1 y9 o. I* I' u; h' }7 W/ Z$ b
         print (Str);# M* h( F4 Y5 v
. R% M8 K$ \; v! w- B: o, f
//检测结束
/ m; p  R* S# a6 f* d; \$ {1 U7 Y3 K4 E* g
         exit;7 H  V* N$ S0 I8 F& Q1 l5 K
      end;
7 e" h! r5 _3 \/ A! u; S5 D2 Z( X
0 [2 Z: I. o, C, m% C
//如果有的话就继续执行下面的' G$ n2 }/ l0 E1 B

' v9 Z; B: I$ D, \
         if Str = 'true' then begin
2 `5 |& j: l5 ]1 Y( O/ M

2 l5 }; R/ {. c) l
//检测背包是否还有空位置% a* ?" d& L  f; V9 S  K
            Str := callfunc ('checkenoughspace');+ W% J) F% [0 i! }4 t
7 n+ [+ A) w1 k1 {5 M5 J1 d9 u* T
//如果返回值为假,也就是没有5 i7 Y1 k" x. Q$ b. m6 o( P
            if Str = 'false' then begin, T1 \  h2 }5 ^

) f- V- q6 {7 N5 j
//那么就提示物品兰已满3 d8 h- a& n6 T6 ]' G3 _( o
               print ('say 物品栏已满');
6 n. r: ]0 `# ^; A) M! g. U4 g
( O9 H9 R/ _, }8 Y: }
//检测结束4 X# w0 f0 n% P( i4 t. g
               exit;
5 F; G# q/ ?+ s6 w, R0 g
            end;
6 [5 d) z  @; T1 F

5 R& C* d& E* B" y
//如果背包有空位置,那么继续
3 _& ]! Z3 f- f
/ R& `/ C6 a6 B% g$ g
//没收牛角
7 p' X5 j( G9 O, l/ g' b
4 F6 C  @! l/ S1 Q! x( D
            Str := 'getsenderitem 牛角:1';6 K7 ~: y. E# w
            print (Str);
9 E$ a# e0 u3 t0 b3 R

# w6 y: p! N4 b8 |' W# |
//给牛俊弓服5 L! _+ h+ i. w% A/ G+ B: g6 A
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
) v$ [* C" H( e. u+ v
            print (Str);3 j1 g* i2 A4 y4 S6 A* ^0 i& p' ?
            Str := 'say 收好了..俺最喜欢的衣服~';
0 z: B$ A# f2 ?8 _+ p
            print (Str);5 s* |% p, y, B8 ^6 E" O
            exit;# d2 }' y5 j# C+ B6 x/ h2 i
         end;- ~0 [  K' a3 s/ ]
/ }9 u' d, X, Z" k
//判断结束语句5 N5 R8 d+ C% P' x! R* k
      end;, u" m$ Y- J, o
      exit;6 F6 x/ c% K/ M& H0 H* o4 J

$ c% U4 K! R2 W$ I
end;- M% L5 ~8 q+ r& c- |
2 Z- d3 Q5 a+ p" q
end." H) g3 m* Q8 F! n, g* }
, J: N+ [+ y3 c3 j, T, q/ h3 [1 e
end;
! I% r9 _/ s! ~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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