任务策划:8 O6 m( W) Z9 m
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!0 e" t) \1 G9 u# V( i4 n; M
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)* n1 f3 ~8 V9 X+ f7 B3 h
收集这些材料交给屠夫,他会奖励你东西1 \3 n! G8 w3 X6 l
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。4 j7 u6 a3 p- i, C- ~
& B1 t) _ A) E9 R目的:
+ Z2 h# `* C$ c" y体会最基本的活动都是怎么设计的- L/ `) B0 R! b4 M
! M5 L& W0 q8 Y知识点:" w, v; ?0 H$ M, W. x9 v
1、检测包裹里的物品
# e; @1 `4 `, u6 D4 W2 y, |/ K* ]2、检测包裹空间3 J: q3 i) d; B
3、给与物品
" j" S( r0 @# ]0 S3 Y+ A$ S( r4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
5 U* {7 a7 P% J* O0 s: `" q0 `% r5 f4 }
unit 屠夫;
9 A: F) a: n4 S- I1 W
( V8 E' _, ?( q! p1 ^' l//下面的是通用的调用程序内建的函数。每个脚本都有的。8 B$ Y! Q) [, J+ q) @& u
* C4 C7 m% k3 R/ J5 i
interface
3 J* [" z$ s& n( p5 V
3 Q+ k/ }0 N, Efunction GetToken (aStr, aToken, aSep : String) : String;: F2 Q- h: C! R
function CompareStr (aStr1, aStr2 : String) : Boolean;. a# w# f! I" i
function callfunc (aText: string): string;/ s: X; A" O( k9 f+ S, j' O, n
procedure print (aText: string);2 a/ N/ l; [( }" J
function Random (aScope: integer): integer;( I0 f5 E/ H1 s Z# r+ C
function Length (aText: string): integer; R0 \0 Z/ L8 t, Q" \/ x" Z1 y
procedure Inc (aInt: integer);
% l( [' c* u( mprocedure Dec (aInt: integer);4 ]9 U5 ~' Z# J1 q
function StrToInt (astr: string): integer;
8 L, \, h5 N/ x2 B$ e: b4 Ffunction IntToStr (aInt: integer): string;0 z, I6 }' M; C' l k
procedure exit;. J$ H! y* R1 |. G" C
5 e" F+ ]; u/ u' s//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
$ S" Q0 T6 D W+ m, t5 C) B
; e( ^: B1 y/ g5 t$ z//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
7 p5 }$ K; K! i- f; _# q! s. W \% q& D5 Q4 ?* j0 G2 X4 F7 P
//第二句的意思是当左键单击的时候响应,, a$ x5 W& }$ n+ Y
5 F8 p. Q& l. v" c& b: J
procedure OnGetResult (aStr : String);
9 r+ U( S. X; g0 L, ]. y1 jprocedure OnLeftClick (aStr : String);
; [) e+ f$ n# C$ A
, d. [4 B; e% r5 t b/ g//以上是脚本的头部,下面是脚本的主体部分) S2 N7 b# [0 B+ O. c8 j1 M, K( D8 J. ^
: B" q4 L; f& e: k2 v! N: R
implementation0 x' ]' i p+ s1 v2 w, H
0 E8 w# j E5 W/ r+ W* ?# c
//当左键单击时4 g- D" M$ Q4 W. |! V* b7 N
2 c) ^7 j* x9 O* O6 \) ]3 k7 E9 ]procedure OnLeftClick (aStr : String);
1 }! J+ q* {$ H- a1 M; D
1 Y" C3 t* c% r8 j# {) E//声明变量的类型" i3 J I7 ?1 v/ g& o
var0 T% V; u( l5 M% _$ x4 f( b9 j" F
* u6 b H% _: W. r4 b' x% ~) Y//Str变量为字符串型, j2 C( i% R5 N/ @' N4 t" p6 K. w; j
Str : String;% S2 `8 |7 J0 g& |
. z4 v$ F( L# I$ Q s! w8 u! O//Race变量为整型
& G, i0 b; i7 i# I Race : Integer;2 y; ?" U1 W- X, V; T: b+ a+ o
begin
P5 ^: B" C$ K3 [- U3 p& s9 ]. W4 {1 b
//获取点击者的种族6 \5 T* ]: k' _1 E7 T- e
Str := callfunc ('getsenderrace');, z0 `" h$ \+ ]
8 B7 i1 E# V; w' t) R. r; m
//将获取的值由字符串型转换成整型
; m2 y( Y" g# H: K: {5 w- n' l( E Race := StrToInt (Str);
. r/ x0 V7 w2 _7 F/ t7 Y6 V$ j( J F% K- w
//如果种族为1,这里种族为1代表是玩家
+ p, O6 H! d, f- s if Race = 1 then begin
) ~+ Y8 h1 @1 Y, k; z8 y: y) q: W+ F: K+ X
- K2 u0 A2 O: l- M* f//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种. q8 i% f" O5 ^; @& c# U4 L2 u3 V
Str := 'showwindow .\help\屠夫.txt 1';
6 j3 ?7 w' y8 P. n, ^) E5 D5 i1 a0 ? print (Str);! ]" {: l; i" u# m4 L: d
* f3 w5 I. ?* G& k" r
//小判断结束
2 Z; Z, X7 `/ |6 g( q* T: W exit;
2 z# i6 _/ P6 i' q" t1 H end;% J! z9 T, x2 {% n9 K0 ]8 c
9 y4 t& [6 ~; b, }0 A% F$ m; i6 R5 C
//一个语句段结束
# J" J4 o3 ^! uend;8 |, W8 _ P! K: S3 f- }0 G: s
( k; n7 E( R Y4 ]3 q//另一个语句段开始
5 s: w3 g8 _' g $ K: { b5 E U) _% P/ D' W+ \
|