任务策划:
) h, {) C {5 p出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
9 c* t. t# J7 @来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)! ~: \# N+ r% i1 v8 K2 V5 Y
收集这些材料交给屠夫,他会奖励你东西
. k1 z8 Q. r7 c' @2 m这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。, e" T' C" O% s/ z, \, N' h6 P
0 J p# N- s) G( U6 A
目的:
! }3 j8 Y7 `, x体会最基本的活动都是怎么设计的7 f1 J. z/ g8 }6 C9 D* l: G1 N
) W3 ?. |' d. a9 P# }: v% X( Q* }6 I
知识点:) Y+ ~) L# b6 _
1、检测包裹里的物品
* U# I9 m: y+ e7 T4 `2、检测包裹空间
( t4 M# Q `- q4 p& A3、给与物品* \; \& ^0 S6 V5 ~8 N6 { E
4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
+ t7 P$ O" D+ g/ f, g. F8 m; T: N" z, Z" B$ l: \( N' ~
unit 屠夫;- `$ L& H. h9 b6 p* v* L! I
. \: ~. z+ G/ O2 H7 R1 ?9 u
//下面的是通用的调用程序内建的函数。每个脚本都有的。& ` r3 x ?' O# R9 v7 B- x+ h
, X; ^" B0 v; j! X; E0 V- e: Rinterface
4 z: [) z& W& N M
- @2 r4 {: p8 _5 M! Z! \6 p) Cfunction GetToken (aStr, aToken, aSep : String) : String;. r) N T5 m+ I1 L4 R
function CompareStr (aStr1, aStr2 : String) : Boolean;
6 E3 M H1 y4 D/ H2 Hfunction callfunc (aText: string): string;# w. B$ S7 x5 _& S* q1 K% Z
procedure print (aText: string);
1 m/ v+ K: Q& k5 O( |function Random (aScope: integer): integer;) X1 T4 X+ c3 e- |- \2 ?
function Length (aText: string): integer;
9 C% j+ Y4 o; g& N0 [( {* d2 Dprocedure Inc (aInt: integer);
: { e% X* a* l2 hprocedure Dec (aInt: integer);& X+ [. s% Y, l0 v: p
function StrToInt (astr: string): integer;- _: d: j: y0 C% Z6 m8 W
function IntToStr (aInt: integer): string;1 e" N/ c: B) X" S
procedure exit;
; C& _: V0 V A7 m% I+ X/ x0 p, k% F' ^9 v3 S( V* P
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么( Q0 O3 A0 m$ Q3 z% y5 m. u3 G
) T; ?0 I1 y% [ O( G//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
" O" }/ D* u9 E& a! y2 a+ |7 ?( j6 I. S5 ~! K; c; G! v
//第二句的意思是当左键单击的时候响应,
* b" q$ A! T+ v: t, P* [
1 i8 \ V. A0 f7 S Yprocedure OnGetResult (aStr : String);* b! t7 m2 N7 N/ p; t- z; e9 l/ a
procedure OnLeftClick (aStr : String);
; ]/ x6 q% f" }* u% n0 I6 U
m) Z1 ~. x+ [//以上是脚本的头部,下面是脚本的主体部分* L; W( ^3 n9 `$ O% `* e6 Y
$ G% B; H# `# p, A6 d: Mimplementation6 z# }2 n" u& L) c
: @" S& Q9 @2 m) X) c% D! [//当左键单击时
) v4 K, v1 \4 W" Y& u) E& M' {5 }
procedure OnLeftClick (aStr : String);
# R7 G: r. X: k+ n( H6 `* b( h9 w: ?, ?
//声明变量的类型6 h0 z5 @6 V v& m6 s# q
var! k3 ?( F1 q, V" F5 k# U3 g
7 |* G6 M c( B! A' S5 b//Str变量为字符串型( V& {/ r$ D# Y5 o
Str : String;- F6 c; x X: \% j" ]2 ^9 K6 D/ g
1 G! d, }1 \) \! M% R6 n9 S
//Race变量为整型0 z& W- u8 I: @* n
Race : Integer;6 n' s1 e3 m; o' c6 N, Q
begin
2 ~" s' {) u6 ]% D8 ?! E& T% B3 M, \% O( ?' s9 b/ V8 T
//获取点击者的种族
H* d8 @ Z% ` Str := callfunc ('getsenderrace');
" J5 j" D, r& z' t( E7 S2 T& I5 l% ]
; n- o7 {, p8 L" I5 Y# A; Z//将获取的值由字符串型转换成整型
+ }% H4 N( W' O0 `& W! s: I7 V Race := StrToInt (Str);
" |" m6 V: J* h/ @9 _
. }& C8 X1 h# [% i4 W' u, g//如果种族为1,这里种族为1代表是玩家
5 Y' k7 ^6 T' O if Race = 1 then begin8 `& |2 k) k3 j- y8 p9 T5 C. F+ |
' n, }/ o/ D# j- T7 v: Y$ G2 n( X//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
" k; Y; Z) d. V3 F, ^ d Str := 'showwindow .\help\屠夫.txt 1';
- V9 `& S% d8 S- G- a! ]: Y! X print (Str);
, _! C4 ?% i6 o- m
. X0 D. G) k* E; }% s% ~' p//小判断结束3 \" o- r. g) f8 d; W3 ~; Y1 u
exit;
9 I4 Z9 u' d# | end;: h+ `- ]5 Z2 @! z1 H4 S
! M% F1 p4 [9 I//一个语句段结束! c0 F) l& O, q3 g' u5 p0 ]6 Y
end;$ Y% ?* J6 w# Y! @2 Q' Z
+ K& i- C ?2 ?+ o5 ]& S- X' E5 b
//另一个语句段开始5 x7 Q8 y$ ~" {6 g- v9 y' g7 z
' f! a+ ]" X$ o3 a' }( \4 ~& W |