游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
( C. D4 h* w( ~" C出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
9 l1 i/ |" A. }  U9 k来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)9 W* M$ S% X& C
收集这些材料交给屠夫,他会奖励你东西
6 l3 f  x& I  E- v6 u这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
+ U# n! C5 h4 I( W2 D
/ ]" v0 u5 m+ U3 p  ?+ d2 H6 f1 M: [目的:
) j8 x6 V/ ^6 ^; X' p0 Z体会最基本的活动都是怎么设计的
. l1 G) ]/ }' g1 h2 ?. r3 K. x$ b; \) b  \
知识点:' t, d- C7 b8 k+ ~2 D' }( O8 {$ P4 ^5 b
1、检测包裹里的物品1 V% L5 N, c1 R7 A
2、检测包裹空间# j- ^3 [( X: e5 M9 x
3、给与物品3 C( f) P, v% k- p8 M! P
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
3 Z5 V) ^; o3 F
1 R% r) Y0 n. Y+ d  @- I
unit 屠夫;$ T1 y' A% |& w4 k

0 }* w; R2 V6 f5 |# _  V2 g. H
//下面的是通用的调用程序内建的函数。每个脚本都有的。9 Y2 x( r0 L# T, Y) b

$ T4 S( |1 `7 ~+ C/ B+ U8 h( J
inte**ce
# p0 L6 [: T/ W1 E; R# N5 v8 E
2 W2 B+ K: ^) l5 J5 b- s. N" f
function  GetToken (aStr, aToken, aSep : String) : String;* E7 g7 t) W2 }9 u. V) J& c
function  CompareStr (aStr1, aStr2 : String) : Boolean;
3 X; G; O( w: w5 j. x9 Y
function  callfunc (aText: string): string;! R: d) ~  m! B% S
procedure print (aText: string);
6 m2 ^9 G' H0 j: Z
function  Random (aScope: integer): integer;
7 f+ s( }' t) ~5 i9 B' o8 q- |" X, K% P
function  Length (aText: string): integer;
5 T- c' }9 B& \  M  n+ q" z, w
procedure Inc (aInt: integer);
! V, V% T: M* u, m
procedure Dec (aInt: integer);7 w% n3 ?% \6 P& c8 P3 N
function  StrToInt (astr: string): integer;
$ e9 ?7 p. h2 V5 a$ \. h
function  IntToStr (aInt: integer): string;( B2 O6 I: Q% k: U! x( C
procedure exit;( K/ K+ p& H3 i6 M, f* [& h

. J' g- d* e& B$ A/ M" b2 N) n
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
  b+ k% T" }2 L' B

* c6 e9 c& ]9 e  K$ w
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
  Z/ o$ h" G- A) n$ m1 z; p

2 ^1 d# Q/ [& k
//第二句的意思是当左键单击的时候响应,$ I  m: M- ]8 m' B. b: ?3 t
$ P8 _8 G) q( J  m" s
procedure OnGetResult (aStr : String);) ~/ E% j+ G/ k, W1 C  d
procedure OnLeftClick (aStr : String);/ u$ }; t4 I$ m6 g

7 t- V! D: m& I; {2 w
//以上是脚本的头部,下面是脚本的主体部分
: K" F7 B; |1 {6 B% I/ z6 y9 i$ Y

5 K, ?( ?6 N" w/ ]+ ]7 x
implementation' |. Q* K9 u# C2 K

. F6 ]6 w% u; E- o
//当左键单击时
9 [: N0 i3 Z5 p( P9 q
: U1 `* S4 b  P9 w% s5 G* U, O
procedure OnLeftClick (aStr : String);& y% ~4 H% B7 F
" W3 G2 ^6 [' K1 f' W5 I. ~
//声明变量的类型
6 l7 x% y7 v  ?
var
3 E+ L1 o8 {8 u9 h3 j
, k( N: G% f7 B2 K6 j% T
//Str变量为字符串型& I3 i5 o% t  Y+ S: O7 m/ o
   Str : String;
3 v3 f* W: J7 K

; S! S+ d6 t. r, U! h1 A8 A  ^$ L
//Race变量为整型% H6 E$ m) _; x  H
   Race : Integer;2 `# g$ p- E$ l. p, ]
begin
. r7 T0 T/ `- Y3 ~. e. J

( h7 D( R& p; m9 L0 d3 }: T  G
//获取点击者的种族5 J/ [0 c: J$ t/ `, ?  \' g, K) H: q
   Str := callfunc ('getsenderrace');: V/ x6 @6 F% z: g" p" e0 E

" f5 M. V+ i; r: B
//将获取的值由字符串型转换成整型
6 r' }7 e- d# M) E" ?9 c9 f
   Race := StrToInt (Str);; `5 S3 @+ L" G' C  l' `' z
0 n2 J% U) M) o9 t# N
//如果种族为1,这里种族为1代表是玩家
% O$ V: M) O. E% V. Z1 U
   if Race = 1 then begin
1 {/ E$ d: x5 G7 p5 d7 Q6 q4 M, S

! i2 L1 ~2 \/ }5 U$ I
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种* o+ ?* `' w- N  _% @+ C% r8 G
      Str := 'showwindow .\help\屠夫.txt 1';
* C& S: N" Z( p  d
      print (Str);
; s) y2 o1 d. a' b

; ~. X/ n; m. m  a& P: s+ ^
//小判断结束
7 O, O1 N) w* F2 G
      exit; 0 x/ K! ~$ S* J+ C# ~% s+ y
   end;* L# R) {* A# C  {6 ]: `
4 X  _6 a4 z% b, O$ o# I
//一个语句段结束
+ _( m* t$ H. R. o; D
end;
* y; O* l! V3 W* p) u

$ u: ]  u7 z8 n1 @) u$ |/ @
//另一个语句段开始
! V0 [* T" i1 R
% v; p9 h" U$ j9 e
//当从Help文件里反馈回命令参数时,做出响应
! S+ z6 q2 [) a- ]; P( h# W

/ S, X+ J9 S  d" D
procedure OnGetResult (aStr : String);! D' @% q% P5 z
var
+ Q# I- C0 R5 S1 \9 T8 r+ m' V, E
   Str, Name : String;& S9 r  i; \. a' y. `
begin+ j+ [; ^9 t$ {/ v) c8 l
$ w0 p. L/ M: C6 U. }7 a/ m
//当反馈参数为close的时候就关闭对话框) X8 Q% L% \& B$ U- V% s
   if aStr = 'close' then begin4 g5 I4 E* z: y# \7 A& T
      exit;3 e8 j& P6 P! @4 v9 [# M1 \
   end;
" _* i8 `. ]& r' Z9 ?4 {
4 V! I1 }5 |4 k/ t  q! c
//当玩家选择niujiao 的命令时
7 z. K8 ^9 T+ s

8 O: _  y0 g5 M- j
   if aStr = 'niujiao' then begin
: R) @# u+ y5 p- j& Y  ^
3 H# k6 ], p' y
//检测背包里是否有牛角
% c; d# [3 e* t
      Str := callfunc ('getsenderitemexistence 牛角:1');
( C# u* U" m! c+ f! P; e+ b* j

$ X( E3 M' ^3 Q7 u
//如果反馈信息为假,也就是没有
2 Q) \0 `+ V' X
      if Str = 'false' then begin
' G, D( ~, ~" ?8 [: S

/ m2 N* w9 ~( c: f/ C
//屠夫说话
/ u+ J. J2 u% G/ v3 L7 H# o8 Q. I
         Str := 'say 快弄牛角再说';
; i8 z$ F: W9 E5 q
         print (Str);% l, b1 G& G3 t" I3 x* K- d
2 s9 _% T) b' ?" p# n+ m
//检测结束
3 r) f6 E/ ^& G5 n- ~
         exit;* Y" ]7 E" E( x) S' g5 M5 w/ ^
      end;5 B7 b5 [( v$ Q0 q
# o0 w  ^1 V& r: F8 W& g' W
//如果有的话就继续执行下面的1 f2 _. z7 Q# o
7 q2 W1 R- k' w+ _
         if Str = 'true' then begin' ~8 a1 x  `/ Z9 u& Y

$ N$ ?- B% s3 W
//检测背包是否还有空位置1 ^6 a- f" F: d1 P; H, R) Y
            Str := callfunc ('checkenoughspace');- `& D6 Y- X* a: S3 s! E3 e0 j0 ~
5 t$ d2 }8 g, O  T
//如果返回值为假,也就是没有
8 D9 e- w% \  a2 ]4 Z
            if Str = 'false' then begin
$ S+ I- v% B! e$ ?  W* u
- y3 C" ~0 k' \2 x
//那么就提示物品兰已满
+ M! U; q' y8 W" e
               print ('say 物品栏已满');6 m! X0 x4 B* O+ O+ o8 h

, f) g  e% E- ]3 e3 a) r2 E
//检测结束
$ m: g) o$ ]3 _5 `
               exit;
( F% j3 I; P. g" s3 w8 M
            end;) J# t3 `( @$ q& ]

5 L8 ?* P! G( c' q, T
//如果背包有空位置,那么继续
8 P; {  o- W5 `2 I' b
3 ^  f# R8 G: o6 e0 w
//没收牛角/ b6 m3 s* i; \. O/ @: Y

$ s0 N2 c0 G+ d
            Str := 'getsenderitem 牛角:1';" \/ L/ D; ^8 D% w: `
            print (Str);
3 g% Y! B& Q0 i4 Z% W
$ f; `  y  k% l4 G& ^: S
//给牛俊弓服
& q& R4 k3 ^9 S7 T% K1 B
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';. ~) J2 R1 P6 C& }8 I
            print (Str);# Y8 }5 G9 c$ ]$ h1 C
            Str := 'say 收好了..俺最喜欢的衣服~';
$ x# U, J$ g. r& w' @$ h4 ]- Z' A2 D# e
            print (Str);  P* z! l$ N0 }' l
            exit;
6 p! [5 A7 \+ ~8 ?) Q5 V
         end;
- n" j  J# w( w9 k$ C2 M
  {+ {) D6 l* c
//判断结束语句
/ f' i6 M( g5 B5 c, u- }' r" j9 Z
      end;! D! v" d+ G5 q5 q! W5 u" T
      exit;1 s8 T* Q  c2 d% ?1 V8 C- Z

$ F8 h! V. P3 c5 V* p& `8 Q
end;
% f1 P* t$ ~, e9 m- o

1 S9 T1 q+ t4 m0 Z
end., Y* E0 |% T7 p
2 i, |; D7 _7 K3 h
end;

+ V% [6 N& w/ f) N' z4 r
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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