游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:% t) ~% g* B# ~
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!) d- ^( P6 Z" w
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
5 H, z# u& p& ]收集这些材料交给屠夫,他会奖励你东西. }- T2 H- n/ N. l5 r% h" Q
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。1 E( t. j3 J% `

# {" H; T- O8 }8 x  _目的:
8 z5 x* x. B' [体会最基本的活动都是怎么设计的+ T" _; x7 ~% F0 H, @6 `! {& g1 t

- B5 v" J8 }; y8 \! P  b0 w7 Q2 v知识点:
9 b' i# `2 Z4 G& C, \1、检测包裹里的物品3 m4 j, \" E, Y& m: r# q1 p
2、检测包裹空间
6 B7 t+ }* G$ _. c3、给与物品
& H% u- K" r! A  b; l/ r: i4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
! s/ |* x/ }  b7 J
" ]- Q6 i$ E' D- P- L1 @% E$ x
unit 屠夫;
. C( y% `" N, T/ i' e
, k( \* e; R* e( w' j$ E& R4 @
//下面的是通用的调用程序内建的函数。每个脚本都有的。$ Q( A: z6 w  `7 h' ^' w. G# V

, B$ o, ^. b1 n/ y- y
inte**ce% O0 ?! z1 p6 `0 u

8 t* t4 `  E8 J* b- ~
function  GetToken (aStr, aToken, aSep : String) : String;
, B& a+ k$ r) Z' |- f! V& g0 V
function  CompareStr (aStr1, aStr2 : String) : Boolean;
) N, h) f! M3 B7 m5 s0 |
function  callfunc (aText: string): string;0 V# {" G; R7 F1 Z0 l
procedure print (aText: string);
7 }, J' q$ j9 P2 }
function  Random (aScope: integer): integer;6 N* q$ O3 S4 E4 F, [7 ^
function  Length (aText: string): integer;; l6 G( V2 q: A
procedure Inc (aInt: integer);
. J  w4 ?5 I; M
procedure Dec (aInt: integer);. X0 X( n) m$ W5 L
function  StrToInt (astr: string): integer;
) L# u8 @0 z4 k: M# ]! X( G6 b; I
function  IntToStr (aInt: integer): string;9 A! }$ \, h% z8 L& E
procedure exit;6 G* W2 E7 V- M$ p& m

; n% x( U  j$ m" L  w/ G- P& V8 e+ K
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么' A$ _- o0 M# ?% L# H, s( b) N

# s! v# m0 G7 o  K3 o0 D: Y
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou7 m* p) E  j/ O( Y* s2 B) o% V! S
' a* D& D2 v9 ~1 E
//第二句的意思是当左键单击的时候响应,3 \" m/ Y! o2 S6 ]

! Q! }+ x! R( f5 X8 |, A
procedure OnGetResult (aStr : String);6 c* c3 {* N. f- ~* q6 W4 ~
procedure OnLeftClick (aStr : String);
" D6 [& c4 {; D$ R. [" X

: E* ]$ y4 f( a7 r
//以上是脚本的头部,下面是脚本的主体部分
% s5 m) J* L4 c

# d# R0 C! Z1 `+ f: _; U
implementation
$ x/ g* [  ^# n
; g6 k' U8 X  h; i) ]; k
//当左键单击时
& P# j' q7 a. ]
/ b* D; J' G* s
procedure OnLeftClick (aStr : String);
/ J* j+ _6 t- }0 q/ E5 l4 [4 O* e; @

& c) ~# A3 ?4 P
//声明变量的类型) M' D, y* v: y' m0 y
var+ T* o" H1 N! d6 n' c
/ U: W" @+ b0 {% U) V4 P3 e
//Str变量为字符串型
( h( n3 T% m! N4 d+ q
   Str : String;! n' G2 R! |' s$ ~9 L
- n8 s* [: C2 c1 p- V4 x# q
//Race变量为整型
! y2 `& M8 e1 L! l4 U1 K+ j
   Race : Integer;. [4 O( _0 U# M/ o" i
begin
" i5 B4 w$ P, a0 ]

$ t# [: O" P8 n$ q5 R* ^; x! q
//获取点击者的种族/ }5 B" V+ x8 U0 [
   Str := callfunc ('getsenderrace');
1 q( J1 u6 a. E/ j, H+ o

+ H- P5 s$ r' `: Z+ ]: }8 r" h
//将获取的值由字符串型转换成整型6 l4 D% C: q4 a; ~* P
   Race := StrToInt (Str);5 C$ ]5 ^1 j7 q$ E( ^
$ {7 I& v( @! Y7 n# y
//如果种族为1,这里种族为1代表是玩家
" t9 B! o' x3 X+ C; W* s6 \
   if Race = 1 then begin
$ P# H; Q; ?  I! Y3 c" A$ \

' e/ h9 m- Q0 r2 d* V% d. ]
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种0 u1 d+ I5 r0 U
      Str := 'showwindow .\help\屠夫.txt 1';* n: n5 j' X% T, U! r
      print (Str);/ p, {' m4 }# A& h6 x- y

* q' C6 c! D* K% z, i' n3 q
//小判断结束+ ?) h8 E6 Y( e& |3 j& K' @  P) d2 x
      exit;
2 x4 b' o+ k5 W
   end;
0 a9 ^6 a8 u' E# W0 I0 h
1 _) f7 J" `2 j" V# j) a+ K
//一个语句段结束8 g5 r: q/ a' c3 [+ c6 v; H
end;/ k& Y7 ]1 h- ^0 V. F6 P

& K' r1 N- N6 n0 y3 ^4 }0 l1 U9 V  K1 R
//另一个语句段开始8 u3 p% d1 C9 y
5 Z9 T! r) |! a% z
//当从Help文件里反馈回命令参数时,做出响应8 p" S7 X" z* E2 a! s

4 `2 v0 y  t; }+ v
procedure OnGetResult (aStr : String);/ G6 b! T' B" a3 N- n5 L2 D
var
: k5 e: k( P3 u+ @- s
   Str, Name : String;' j( W9 s: O7 R5 `. V
begin( q7 m# l, c5 i! v' x

4 {! A% o4 @; b! K) U
//当反馈参数为close的时候就关闭对话框
4 S' R1 r4 w. W! e' C7 k. i
   if aStr = 'close' then begin
4 S: q" F% T' f' s3 ?* K
      exit;
8 [4 Y3 v, o4 l/ I5 [5 t3 j
   end;
! H* f: t+ E4 U: f: f; N! A  R

& n% t6 v. c$ Y- ~$ h& Q' a( Y
//当玩家选择niujiao 的命令时
5 n# S1 H0 ^6 X4 C( f( k) _7 B. q

1 B, \% O3 R0 ^6 {4 Y. O
   if aStr = 'niujiao' then begin' p) T+ k, n, o7 q! B" z5 M

: s* |1 j9 G% J' P
//检测背包里是否有牛角
' T/ a$ }: k% I- c( I
      Str := callfunc ('getsenderitemexistence 牛角:1');
1 k1 M" S# ]  q! K  m
0 Q6 T/ e  h: |, h
//如果反馈信息为假,也就是没有; [9 r# Y& }; ^5 f7 d) K2 h% N
      if Str = 'false' then begin
# E' ]- m1 ]5 G! A

' [2 V* m1 m( D0 ~9 u
//屠夫说话, T3 Z. H! K6 t" X) S4 Q
         Str := 'say 快弄牛角再说';
/ t1 M; h0 ~; N6 S% h& [( P! q0 S+ S
         print (Str);
1 y* E2 H/ T4 H0 n# x
0 P5 W: g* X; i6 T5 @9 j
//检测结束
, x9 S0 G+ [" \0 n$ v% G
         exit;5 A4 y$ u8 j* F
      end;0 ]: i" y- ]+ H- ]: d( A

$ F0 w& r: ?& E( l
//如果有的话就继续执行下面的
, l7 X. Q5 V1 @9 d0 J
( w6 p' d0 \+ J0 L4 Z
         if Str = 'true' then begin
( X7 ?* N9 H% h' F- z* P1 \

1 y$ ~$ k' Q$ G2 ?2 o2 O* J
//检测背包是否还有空位置' Z+ a# w) ^+ \3 c
            Str := callfunc ('checkenoughspace');4 s* h( v) ~8 U  g; a

. N7 k* [1 [. d! A1 @3 N; R8 ^
//如果返回值为假,也就是没有
$ w# f  Y+ \- N. H4 z( r% V  Q) D* r
            if Str = 'false' then begin
. c8 z' f. U; h- E
- F# K: q6 S8 F( @# L0 |8 x- o
//那么就提示物品兰已满4 Y4 t" Y6 X9 A& }0 Z* S
               print ('say 物品栏已满');
, i9 V5 `: u! o) [' r. [4 z

' h$ T  g, ?; M8 t
//检测结束; v9 W% @3 X  S! X! R% ]- D
               exit;( r$ J$ E: \: B/ R, z' f
            end;( w8 |: Q. @2 }2 c) N

8 T; _5 y: p: t  E7 ]6 w2 c9 v
//如果背包有空位置,那么继续9 E+ s# ~) m1 n; U3 I
3 x/ l, X  D* q
//没收牛角
5 h' X2 `4 U1 B' T
4 a6 ^& S$ ~4 }- R% S/ i( f
            Str := 'getsenderitem 牛角:1';
9 F, N' H3 g, b, V/ A: g
            print (Str);
' v( v4 g: O$ O# Y, p2 u
2 X# f+ x- G, x. \# F- Y1 G
//给牛俊弓服3 p/ a& W% U5 G$ @% @5 U9 r
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
6 ~+ j7 e* x3 q
            print (Str);
! N4 v) N$ w7 Q+ [$ i. X
            Str := 'say 收好了..俺最喜欢的衣服~';: ?# C9 j/ X7 U6 J* B
            print (Str);2 e2 W6 W1 s+ H2 @
            exit;
# I" u& W% |, L* e# p2 e
         end;
. }) x8 @. f' F6 _, k  F
1 K. _8 T, j4 X' o9 q5 s' L4 C
//判断结束语句
, e8 @. ]8 B4 Q$ J
      end;1 r8 j0 T; j! L9 G7 X! _
      exit;0 l0 k: |; U; T7 q- d9 P1 H
% x  c# n& g$ a/ m! p3 F1 H8 r! o
end;
) B* I& T5 v9 ?$ ?
* }6 d% t3 n: z$ n* }
end.( M+ c4 [  y8 m4 P) Y+ g' |
% r5 O" p" z" _+ H
end;

# f& E* c# d, H* L# O& J% H9 G6 C
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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