游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
$ W' q. y% K; e, w/ G1 Y: u, Z出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
, Z4 Z9 q/ |( Z, G1 ~/ D来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
' L) U3 F. g$ b9 K+ e' Y收集这些材料交给屠夫,他会奖励你东西
8 N; N5 `  E! B; n7 C这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。6 n5 }2 ?7 z% C; v6 B* J

; Z1 [4 _5 d/ v2 |# O目的:
6 S5 y' S; ^! z- x% W5 \/ M体会最基本的活动都是怎么设计的
7 P$ `. Z% a8 L# v6 e6 o
. A$ H, d9 K# B  t. h, Y& z; V知识点:
( U9 X* o9 E/ Y2 A% Z1、检测包裹里的物品
6 C! U2 T6 |0 x: W. \1 j; L0 b0 a2、检测包裹空间
" U9 Z" @& L5 P' W3、给与物品
  F% ?# z* J. b6 e) ?: _' _; m4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
) F) y4 t+ f( T" b; l' W5 m; p

% D; D4 P6 S1 L+ K/ ?/ e  o- n7 u
unit 屠夫;
+ Y8 R  D* C1 S/ D  Q9 g

$ a. q* v" g( s9 _0 }; O8 f
//下面的是通用的调用程序内建的函数。每个脚本都有的。
6 r- d) ]1 _0 f9 D: W" ]0 v6 R9 H
" \9 h: m) k6 \$ p
inte**ce
$ W. V3 ]" C4 w  Y+ j0 G
) y0 _3 d0 T+ c- J1 K# b' O
function  GetToken (aStr, aToken, aSep : String) : String;
; J# j0 O  W) H$ l4 E
function  CompareStr (aStr1, aStr2 : String) : Boolean;
  m9 v$ G6 p' [7 ], |
function  callfunc (aText: string): string;% e! l% Y" T( [
procedure print (aText: string);8 E& n8 S- L! E8 Y! h/ n) m
function  Random (aScope: integer): integer;- t7 V& q% M% @1 G
function  Length (aText: string): integer;
3 f; K8 M" P* `, }" S: w# O
procedure Inc (aInt: integer);% W( {" U7 e* n" W' S+ I
procedure Dec (aInt: integer);
! E% p: w0 \9 q$ _4 g0 |
function  StrToInt (astr: string): integer;. I7 D! n6 c4 s# O. S
function  IntToStr (aInt: integer): string;
1 L# L  `& u- G9 ]0 T( ?
procedure exit;2 }5 J' P: o# Q" ~0 w$ F
- X6 l0 A# }+ a/ Z, w7 z( b
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么$ Z- ^3 |# W% ?- j' N
9 a0 R( ~$ ~/ }& {7 O6 D8 w/ |
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou0 Y7 k& Y9 D; u# v  F
; b5 F8 S' ~, v
//第二句的意思是当左键单击的时候响应,1 s6 R5 `9 p( A0 T" e; j  U
1 _7 o* E* A& b; U
procedure OnGetResult (aStr : String);# T: A. @1 ]: b. r
procedure OnLeftClick (aStr : String);) E0 i2 ?7 E' t3 f9 E$ e7 j
; e0 Y  j! C0 x# F$ E
//以上是脚本的头部,下面是脚本的主体部分4 k- x4 J) W5 n6 c% C, u

. e, N$ o6 O" v+ g
implementation8 H9 b* q# K( C+ ^

3 \$ Y3 l& L  t
//当左键单击时" u- {2 j3 b0 D# X- q9 m7 N1 E

2 q' F5 d) q( s1 ]4 F
procedure OnLeftClick (aStr : String);. n/ L5 x0 M$ n: o& J. g

7 g+ X$ ]( H3 N5 t
//声明变量的类型' P  k) Y5 g# x2 @: z( Q- V* d
var
4 U3 L) M4 j6 \8 j

& z0 b: r, n! g' ?! J
//Str变量为字符串型
) K6 ~0 e: @" F, G% x/ P
   Str : String;
# @  s8 i+ N7 Y6 A) w( u
" A( M" \: [3 Q
//Race变量为整型' O. d/ F5 Y; c0 J& [0 B& `
   Race : Integer;) I) b- l! D7 `" j# Y
begin) k+ ~5 B' A9 V

- ]0 f  O; c/ i$ d4 B
//获取点击者的种族, g  @- M  c, Q6 f. Q) ]
   Str := callfunc ('getsenderrace');+ x3 d3 j+ M9 s; G" B: J! {

* a6 Z1 g) ?) d" X3 ?
//将获取的值由字符串型转换成整型
0 S5 W: ?" I5 e4 ?1 t9 g' p
   Race := StrToInt (Str);
+ L6 H7 n) m/ H9 s7 g8 K( s
, @7 J: i; R5 v/ o% r: H
//如果种族为1,这里种族为1代表是玩家  k* R% ^/ H  I+ j$ a
   if Race = 1 then begin
; m6 M" p: s3 F: l3 x- K. h5 z
7 b7 J! f  @2 p0 {( W' A
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
" \* v# A! Z2 q  S
      Str := 'showwindow .\help\屠夫.txt 1';
, x4 F) a/ }1 \0 B. b/ R% I  ~$ B
      print (Str);5 \% A/ B% V/ p. P2 c
- d2 N* j( M2 I/ h4 ~* @
//小判断结束' i$ \! P8 ?* f* n$ b
      exit; ; f7 Y2 {( B6 V$ o9 n
   end;
/ k" Q$ ]9 X+ }
9 e  h: [4 f* V# A0 j" U8 `
//一个语句段结束% _5 `* h: [3 A& F3 T8 L8 d% }; g
end;  e0 k" A' ?& L4 v+ {2 |1 g
  v$ y' m. X: s8 ^+ r2 P/ Z* H7 \4 H0 f
//另一个语句段开始
8 p9 `, L3 Q: s+ q! `5 Z# |
, f3 i7 r1 B* d1 V* u: m0 y
//当从Help文件里反馈回命令参数时,做出响应
9 O3 B3 h! I; X/ x
2 R8 }1 r. N; }9 f" v. b& ^
procedure OnGetResult (aStr : String);
' ]3 e; u5 x* L# J5 W( }
var
  l6 i/ j3 T/ l2 |/ o  s# m
   Str, Name : String;- D7 h# k! ?2 j$ U
begin$ b9 h( Y* w& Z2 f
) h. F# Z- B& }: P1 b0 w4 e
//当反馈参数为close的时候就关闭对话框
, M+ L: n- v8 L! ^& w6 @
   if aStr = 'close' then begin
* I6 L% T6 L( E" [0 o/ v) ]; d8 i
      exit;
4 n! ^, R' V( [. K- Q
   end;
$ V0 L+ ]- _% a3 S& L! t! y* J! H

* g2 W, C& Q; o; d* S1 Z
//当玩家选择niujiao 的命令时
% Z0 C! `4 ?" \
# W9 b" @' e4 c( b
   if aStr = 'niujiao' then begin
  H% p4 w, m% u# e2 q2 i3 x
  i( P, U4 d6 b( Q
//检测背包里是否有牛角7 q# v$ V; [+ Q; M
      Str := callfunc ('getsenderitemexistence 牛角:1');4 g0 J. V( ?  `0 c

& @& S: r8 \  e' r8 n+ f
//如果反馈信息为假,也就是没有
3 p: m5 ?$ V$ R( M3 t3 C) Q) V& `5 X
      if Str = 'false' then begin
. f5 ~2 R! i6 O  \7 Y4 E( P: s

1 \) b5 e# p- I
//屠夫说话
; A- c) @8 J/ S7 Z, R  Y8 y; p
         Str := 'say 快弄牛角再说';" \1 i9 n$ e  |: @/ _0 P
         print (Str);
4 v% d0 j$ F9 [8 ~7 C/ f$ M- H

+ l8 J7 }# Z9 p1 `; U
//检测结束* \; ^" v' F. t" S
         exit;( |8 W0 z; A/ A4 ~- U9 ?
      end;( {0 g1 K( [* `8 ]

  b8 W  x9 W8 R2 |7 N3 U+ `
//如果有的话就继续执行下面的; t. H* N- v* h" ]( r7 U, ?

0 _8 L) V. Y  y- I2 v3 h
         if Str = 'true' then begin
$ x. h) ^3 T) R
$ z3 \) C' v  ?3 a
//检测背包是否还有空位置
8 N) h; w2 i, d$ R5 k5 Q+ F
            Str := callfunc ('checkenoughspace');
* t3 R: p% I4 ?$ S! F3 ~, s
3 n4 j1 ^9 f8 [- J' ~6 E/ a
//如果返回值为假,也就是没有9 s% F. b, R1 ?- E6 b8 `& @# y+ Z
            if Str = 'false' then begin3 t6 R+ z, f) w7 j# P1 q, a
& N9 S) j, f+ k, e. E% z
//那么就提示物品兰已满0 e- A9 y2 x/ i1 H
               print ('say 物品栏已满');
. A5 S; V' J1 N3 O

& `  h( l  V8 d( l# Z# J' G: C# R& g
//检测结束5 |* M$ o  }! W8 {! H
               exit;) i& }1 k. t  y6 W" q) N
            end;
& n' {" M; z8 b8 Z- ?) C* Y

6 C- n' {6 I/ v2 b
//如果背包有空位置,那么继续0 E. i% K0 v1 l( a  ]% w

. ~/ v# b) M# E- _4 u, b8 _* t7 @
//没收牛角  y0 b" c0 I, j1 o+ [; K% x* M
8 c! I$ S9 s# ]# _: C
            Str := 'getsenderitem 牛角:1';: Y5 p( U3 K/ \. o/ {9 ^1 A
            print (Str);
% V% r5 j, C8 L& m
3 H* ~9 J: j! I
//给牛俊弓服, B$ ]( ^8 P) s& S" r
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';+ d$ c) t# X1 t0 q- j
            print (Str);
; L( Z8 R8 c/ L5 Q" T4 B
            Str := 'say 收好了..俺最喜欢的衣服~';1 `( `% T8 T  n' x7 `0 p. R$ [
            print (Str);; R" K5 ?8 n; i9 T5 E, x* u
            exit;
5 I% V3 _+ B" l! W( M5 @8 K
         end;
* O2 |2 Y: N$ @9 F" @- ^" s3 h5 |

/ n" X, v1 N1 Z( f: c
//判断结束语句
1 j! I, D5 F" A- V8 _( P" w  q
      end;% I, s& B: X* F1 G$ _8 I
      exit;/ e% y& o6 l4 q# W- O- d

* j5 \. P' w+ ~4 L$ g
end;
6 x/ N* R; e8 ^# @& N; r
! K" H$ w/ c2 V1 y9 T- u( @5 r9 M; U
end.
. Q$ m; s& P! ~" O+ }9 m

3 ^6 V, A, J; e/ |
end;

6 t; a2 ^: |  @: t6 b8 c  K
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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