游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
5 [1 ]2 t: V( N. ?( w% p3 k" K出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!) A2 W8 q, y) W$ x8 }* Q' v) B
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
3 o$ S3 X1 `' j9 R/ \% ^收集这些材料交给屠夫,他会奖励你东西3 L( x1 a6 U) _1 s- H+ A5 U
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
4 ~' m- T( \% V) O# ^2 v3 Y) L9 j3 ]1 L" z3 n' W  B7 D
目的:/ V5 B3 v7 U$ L+ _" A1 Y6 m% r
体会最基本的活动都是怎么设计的
7 X8 I3 |* X' U7 s0 ^" ?# a/ R( ]  [) A! l
知识点:
/ X/ W" ~. U5 I' n! t7 T+ [) W1、检测包裹里的物品9 d. }0 M5 ]6 X1 h# k; \' `
2、检测包裹空间
5 \6 G' V% I* k6 ]; Q$ b3、给与物品$ }" A0 W+ {5 Q  E& n/ p
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。: b1 w( z* V9 t

0 @  D+ l/ X( l8 L/ R
unit 屠夫;
* M: i& H. Y5 ^6 U

2 i" H' u0 I% h+ j4 c
//下面的是通用的调用程序内建的函数。每个脚本都有的。
! }# D0 k& N2 d

/ e8 h0 v  m3 ?+ q& A' I
inte**ce
5 ^$ f( S7 @8 Q2 u
3 I3 t0 d; c" v, J2 b) L; b8 v3 Q
function  GetToken (aStr, aToken, aSep : String) : String;% f; v$ X# T( v
function  CompareStr (aStr1, aStr2 : String) : Boolean;$ P+ F0 c6 C6 S3 m) N
function  callfunc (aText: string): string;  ]+ V$ T  N5 J" a9 D2 e4 f
procedure print (aText: string);
( t/ w6 a4 x" s
function  Random (aScope: integer): integer;' E1 f" _2 E. X! f& O
function  Length (aText: string): integer;7 A: M* `( t& ]4 d7 F
procedure Inc (aInt: integer);
* ]$ R. Y# y4 J& C
procedure Dec (aInt: integer);! |+ B# k2 I$ x/ k* g. l
function  StrToInt (astr: string): integer;# p7 W. o+ f) y. z1 c; @3 b
function  IntToStr (aInt: integer): string;* K# D' {) j8 h5 M  z
procedure exit;( B. ?9 z" n: Y. T2 W1 G

$ w+ p5 X! h" ]+ N1 X
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么+ E0 c5 I( Y5 ?4 C# C; A
6 c- J/ O, r$ \! ~& @0 K, G
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou* U) Q% P7 r3 n. Q

. H/ E, |  z  t( }3 f
//第二句的意思是当左键单击的时候响应,$ u! W/ R& l" M, E- t2 {

6 O$ z4 ?5 G8 D$ d! {; {6 c3 b6 Y: c
procedure OnGetResult (aStr : String);
2 p  _2 `5 W( o. F0 d" M% N  p# |
procedure OnLeftClick (aStr : String);' L2 h; {5 Q$ O9 y
) z/ n& F( A1 I
//以上是脚本的头部,下面是脚本的主体部分) c! e8 s# C. S% l6 K
& X0 G+ _$ ?: f/ a
implementation; o' Q* o# X+ T  S( [

1 U/ b0 T8 c; d) @
//当左键单击时. w5 k" a. S1 N  \  a, C3 f% ]

4 a: @" U( t) L  k' p
procedure OnLeftClick (aStr : String);7 ]+ {3 C# Y9 b2 O# F
+ U7 x% T, I" E' {' _* f  a
//声明变量的类型
: n" Q# E. {9 v! A& b5 Y& |
var
6 T2 k/ j' e7 B6 @0 z8 Y

  F! X( d$ g6 L9 U( E
//Str变量为字符串型
5 o$ x5 H4 s4 l3 s$ i
   Str : String;  |3 H5 X& b; r8 E" D
& m! r/ R" u8 L5 L
//Race变量为整型1 Y/ X+ \" l( z* g
   Race : Integer;
: _$ F( U1 b* Y0 y9 k
begin2 g1 Y0 S, r4 l: ~; h2 W, J

+ F" o# Z: d1 S* S% K
//获取点击者的种族
. F8 o3 P9 f5 L; t! h% F
   Str := callfunc ('getsenderrace');( C+ `& x' _1 F$ k
* S( Z3 W* B0 z, g
//将获取的值由字符串型转换成整型' y# H: {0 s, s" `+ F
   Race := StrToInt (Str);% V& |$ R1 L' a
* _) I, K; }* ?5 V5 M3 B
//如果种族为1,这里种族为1代表是玩家
2 @/ [5 V4 Z0 o) c% S1 y
   if Race = 1 then begin. m. T4 @* ]  p6 x! r1 ], P
: R* C0 K( z' c
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种7 R0 W7 }& m, J& T# y' n
      Str := 'showwindow .\help\屠夫.txt 1';
. x* S' b8 l2 S; T0 s. J
      print (Str);
) Q$ [6 q5 a, [" l" V& O* t2 P: m) `! f

! s) \1 G: V2 O% P; Z
//小判断结束! F- w4 ^% L  K: Y9 u5 s) k9 j
      exit;
; ^4 `* U" y1 G/ a
   end;
: v4 B; ^/ k2 ?& ^0 ~7 E9 u

5 `% U7 a! V  V" \8 L
//一个语句段结束
" C1 @% N4 d: I
end;0 b% L0 }# O( T5 g2 A

3 ^" ]3 D! l; J  K) ]$ l) l( s5 |
//另一个语句段开始7 Q) Y' x& T+ L( T% B

5 A+ ]# `3 |8 E0 a
//当从Help文件里反馈回命令参数时,做出响应
# f" t2 x/ q" z1 |! z7 ?

0 Q! o7 g" r/ A4 `8 `6 c( l5 j
procedure OnGetResult (aStr : String);5 D6 F* l! }2 ~0 o
var
" W1 e& |. b  J. H
   Str, Name : String;
) Y8 O9 ^& S2 D5 B
begin0 n, Y5 D7 z. a4 s$ J! S9 Z

1 @+ ^2 t8 ~9 y$ S
//当反馈参数为close的时候就关闭对话框
3 V6 j  z( K; ^! s5 d: D& A
   if aStr = 'close' then begin; p5 ]9 z( A, ]. F6 u  T; y
      exit;
% Z/ N; l+ G/ s( ]0 n4 K" _, J- L
   end;
# O0 X# N% E3 S/ E- F

# m6 m8 O2 ]; _* l$ `) R% s& y
//当玩家选择niujiao 的命令时
" t, |& e; x, e, L

; X( f% `' i8 z! b
   if aStr = 'niujiao' then begin4 u) N  L  W: ^( k! Z
$ _7 |' ~, j, I
//检测背包里是否有牛角
8 G1 g. I& q) i' k) I) f: l3 h
      Str := callfunc ('getsenderitemexistence 牛角:1');
3 y4 Q, U3 x; A& r9 s& H! \; B/ `6 x

, z7 q% Q/ H0 A+ C
//如果反馈信息为假,也就是没有
! }# h% B3 Q  c( a1 [! @
      if Str = 'false' then begin
* K; }8 k  i( W7 _. M: H8 f
: @* |! Z: j. V& O
//屠夫说话% Y* y2 o- K; P# m+ Y
         Str := 'say 快弄牛角再说';" H! G$ v( W. g* \
         print (Str);% w* v( J, u- B

! A' k; C( C# {% l3 g5 ]
//检测结束3 I; e0 W3 ]4 ~2 ~) `/ d
         exit;
; j7 J1 m5 f5 ?+ H1 t6 ]
      end;' \7 b2 X$ d7 Z" f+ J1 G
! f9 T/ J  h& t9 R* [% P! v6 O% |
//如果有的话就继续执行下面的
1 u4 g4 g  s% T
( G$ L0 V4 W& ]6 ?) A
         if Str = 'true' then begin/ e4 l* [  X# p  a3 L* Z( d
9 d+ V5 f7 I7 I8 x* |+ `& C
//检测背包是否还有空位置
9 W% V  w2 X# V+ a7 N& S
            Str := callfunc ('checkenoughspace');( M/ Z. P, `& U" \, B, v( r
. I$ B$ M8 K' X
//如果返回值为假,也就是没有! L) k! u( t9 y  d
            if Str = 'false' then begin3 J; U1 \. l. ?$ D: _+ U6 p# H
- @% Q1 q5 Q3 ]" J
//那么就提示物品兰已满
1 x& _4 \1 u" q# }; |5 N+ G3 S$ |
               print ('say 物品栏已满');
9 f' l& x9 ~2 L
: s# c1 ]/ t: r0 T$ A
//检测结束% e& D" I& d6 U4 j
               exit;
9 B) J# _* T& s9 L
            end;
3 f  t$ P! O) s6 y

! K/ T, c0 v! G- R8 H1 A7 h5 M& r
//如果背包有空位置,那么继续7 p. d, r$ w  g, T( Y8 O

# S4 m  w  N! a* y
//没收牛角
0 ~! Z3 B; f" ^
1 c% F1 b" I6 @, j$ J" `0 A
            Str := 'getsenderitem 牛角:1';
4 e' O$ x# t$ v# G7 y; G- j7 j6 b
            print (Str);
3 W4 i( ~' P3 N

9 D$ U+ v% X( C% ~0 \3 z
//给牛俊弓服
1 }) W9 f. N6 k# b8 |4 k9 x
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
) I* C3 h# h! b! e; m
            print (Str);
2 D- {0 ~0 d- Q
            Str := 'say 收好了..俺最喜欢的衣服~';
# G- s% N, k+ |4 ~
            print (Str);
  e/ Y' d& @/ h8 f; W
            exit;' B5 D  a$ n+ Y/ y' R1 s) T  y
         end;, ~! v9 V8 b0 b& D! N4 y

, i8 Q  J6 X" S$ `7 M& N1 i5 G
//判断结束语句
. E" [5 H" z' w! h2 n. ]$ }$ d2 K
      end;
4 ]2 v$ ~5 t4 A- I
      exit;
/ a4 J( P2 K" J$ w. w3 M

& Z9 k  \- ~5 z! I
end;
! R$ M& A/ L, Y2 T

. {/ M  i, J+ C1 l2 h
end.
+ H9 H) h* C. G5 k8 o3 F
1 k, n) g, ~2 h. v
end;
1 w; }+ f4 s3 s9 h! }/ Y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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