任务策划:
+ v6 j; ~/ y/ i: h" m' ^出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
# A- J* M" t$ K) J来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
/ Z0 U1 D6 }( {0 A收集这些材料交给屠夫,他会奖励你东西
0 ]6 H) K' C) Z6 z% P( l这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。- [, ^* A2 x! S. k
; f+ {5 A$ Q/ ?6 V目的:
' d' w# B0 R! v6 b: V体会最基本的活动都是怎么设计的! N9 x- I( G a# e: [
, {% g2 |* v p) S
知识点:: Y1 A0 C" ?0 a' x; [$ ?
1、检测包裹里的物品( Q0 d0 J/ u0 k% i# v G
2、检测包裹空间
9 i& o, A) Y$ H( O. G3、给与物品- ?! X' h6 e. c8 T9 p. F
4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
5 v1 i4 I& R2 m( A0 J; d- C! q1 x6 q) Z9 F5 `
unit 屠夫;
8 N5 R% y* M2 x0 ?
" `/ t- P! m' S//下面的是通用的调用程序内建的函数。每个脚本都有的。, r. M; z0 n) j5 y6 H# J' l) ?% s
8 D& X9 I9 ~/ ]9 Z6 E( G3 d6 b
interface
1 D+ E+ E2 n* D! o, L& u; C! K! Z7 F# I5 }/ c' k. n6 I9 g. ^/ `7 z
function GetToken (aStr, aToken, aSep : String) : String;4 v. g! f$ g* v" q/ W- L& E5 {' v
function CompareStr (aStr1, aStr2 : String) : Boolean;
/ Z, W. \6 \: yfunction callfunc (aText: string): string;( F' ?/ u- k2 f/ n" x! H/ Q% }
procedure print (aText: string); o8 f6 n' `& E+ k1 \; \7 H
function Random (aScope: integer): integer;2 y& j$ E! }& w/ E$ Q/ e+ d ]
function Length (aText: string): integer; `+ V1 \) x. X/ ]; E- B
procedure Inc (aInt: integer);2 W% G* O+ n2 w
procedure Dec (aInt: integer);# D1 b) J' H( r& C3 I6 J4 f6 A1 S
function StrToInt (astr: string): integer;
, {$ P5 j8 M7 Ifunction IntToStr (aInt: integer): string;% U0 J4 j1 |% h$ [9 p! B, S- e& s% T
procedure exit;+ \! ^1 z& Q) H, a# q( n! e
1 k b7 ~( p2 o) A0 h5 v4 H0 q5 u//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
+ }) B1 g2 I" }; a9 k) S! q
: ^" n! C7 Y3 B//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou, |8 f' \) ^6 ]( [" s- `
( B% N- n) o1 g* a//第二句的意思是当左键单击的时候响应,. \9 T% ]) a: K! n" a" Y3 ]
2 h( }6 i, P9 ?! Q0 Uprocedure OnGetResult (aStr : String);
+ V5 {% c1 S# G4 h% w; }procedure OnLeftClick (aStr : String);' G, q# @& q9 q( Q1 P$ b4 G
/ \. h6 m' ^ u V4 ^
//以上是脚本的头部,下面是脚本的主体部分
( _; M$ P" C0 ~# @
* G2 K2 c4 `2 y2 `* A8 {6 Y& R' mimplementation
2 k) V: g4 x8 t- S; G! Y$ ^ E3 E9 x/ k* d' x% ~
//当左键单击时
; ]: G& X% g$ b! l K
6 c& H" F/ ^5 M# d1 y9 j2 @procedure OnLeftClick (aStr : String);
5 ~" a1 ?" u8 x6 p; d% p- C# M! X; M1 I J
//声明变量的类型
2 A' ]. L# f1 Jvar
, l5 w' u" o0 w* e) t7 c- o$ ]$ `& a
//Str变量为字符串型5 z- q* m; r/ n: @" H
Str : String;6 Z9 ` {* t% d; n. T/ ?) F5 T; q
; T* w, A" a7 }: |2 B+ H. W" e
//Race变量为整型: a$ [/ G( G V9 x4 r0 L7 e% G! O
Race : Integer;* R* x! ` y8 v8 U# q; J6 U4 B' R; n
begin% [4 }% Q( ^ K3 ^, Z
3 Q }, v+ x3 \1 ]9 ?9 _$ U
//获取点击者的种族
/ A% z- v5 f) ^9 L- x9 D0 k Str := callfunc ('getsenderrace');
# e7 u- h) A% [5 |' M: C8 L, `
4 y! J( Z7 `% Z+ ~//将获取的值由字符串型转换成整型
5 ] q3 F: j" L" _- ~2 C1 A Race := StrToInt (Str);
# j" g7 H4 A2 P$ F! a" c( j4 J! I: Z7 [6 i6 J# G
//如果种族为1,这里种族为1代表是玩家
1 ~) D' v2 B* w8 @ t if Race = 1 then begin
5 s9 F6 i8 J# p1 r% b
. a: J: [$ j) h//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种0 \6 Y: k O( c6 }* }/ a
Str := 'showwindow .\help\屠夫.txt 1';; w* c& p3 C9 L* C% u
print (Str);5 P! A0 ~# X' H# Q
6 u; A8 ^3 c0 }8 ~& Z//小判断结束
; E ~( \1 {( B. c, Z2 _ exit; % ^/ ^) U6 @. q T6 g
end;9 U# Y _, @+ k/ b- ~: ]
6 h8 p1 Z+ A( Z6 @7 ^' U) O/ Y//一个语句段结束5 a+ {+ U U F9 @ B9 [
end;( e& ]2 s6 M+ y# a: [
6 e8 a! k4 F& W0 o7 ~: [4 Y//另一个语句段开始
# R4 [1 {, C. J0 X4 S5 X0 j
+ v' j( k3 h; G# J& T |