任务策划:: q% q ~1 i! K8 j& g
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
7 w/ P: [) f$ Q. B5 E% W% ]2 a; a来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
8 d- S; H. K7 H& B: ?! Q# P% ~收集这些材料交给屠夫,他会奖励你东西7 N6 M' _5 e: ~5 Z- x
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
6 i. m7 C* B9 l
/ O6 Y6 ^- N" V, d1 u目的:
9 w! s7 }8 a0 }- v( L, S体会最基本的活动都是怎么设计的 M6 J9 o U% B" \6 X( |4 J% \
^, ?5 f [- I3 B( c/ \
知识点:
+ C4 }" e0 p& T2 ?1、检测包裹里的物品
2 E6 R7 d: p; N3 ~. ]6 |2、检测包裹空间6 D( X O1 h |5 |
3、给与物品3 Y# ^1 e' i B& {4 }9 F4 ~$ A
4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
@! S9 S6 y' \& h9 y
. W* T; Z7 P- Qunit 屠夫;
]# J8 q, Q7 W5 p. ?5 V2 n. b) }$ ^
9 S. i( |9 r# r* Q- ?0 G//下面的是通用的调用程序内建的函数。每个脚本都有的。
$ G Q8 ]5 i. D6 D% {0 m$ G" n
e/ g9 I6 Q1 u4 xinterface" b, B/ v% v: _" K! I- I Q# B. N! }
7 ?, Q* j8 t; O1 U2 i c' ?! ^/ Wfunction GetToken (aStr, aToken, aSep : String) : String;
5 t' J: a% L8 J- Y" i5 Q% \7 ^function CompareStr (aStr1, aStr2 : String) : Boolean;
% U' j4 l" Z7 @, o K1 {function callfunc (aText: string): string;: F$ }) H$ K6 i: u
procedure print (aText: string);
+ v/ K- w7 [/ o6 P" r/ O6 g; w+ Jfunction Random (aScope: integer): integer; X$ f1 ^% X; C% `, W8 d2 c K+ n: d
function Length (aText: string): integer;/ w3 n1 j( b6 U
procedure Inc (aInt: integer);
2 V- [" ^+ _' c; p1 jprocedure Dec (aInt: integer);
. j( m5 h" h: R4 R7 u: b5 w/ N: pfunction StrToInt (astr: string): integer;3 P3 ^/ S0 u: d7 u+ _% U& D
function IntToStr (aInt: integer): string;& d" {( |# y6 K( d. G
procedure exit;
J K. I l0 e' E/ ]; \3 N; ], ^: d8 z
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
i5 a8 X7 M+ e( G) a* y1 t: _$ i
' A6 K9 r2 C6 }. B7 X Q# R3 M//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou' y6 Y0 W1 t, S
( i6 Y7 o9 n) w2 L
//第二句的意思是当左键单击的时候响应,0 ]- d2 F7 |; d+ L4 V: q9 s
, y" A% i1 g; M* C2 y1 J2 Q
procedure OnGetResult (aStr : String);: u- E' m) _, W' g- n& M
procedure OnLeftClick (aStr : String);
8 Y) d; {) D! B5 p5 S# S
6 h! p" j: `% }. g//以上是脚本的头部,下面是脚本的主体部分0 z/ \6 N4 L' Y& C; B/ P9 n
, L% F W4 f2 T, R& eimplementation
0 H0 l0 H8 e }7 }& c- Q
# E4 e \# J5 R//当左键单击时
7 W3 g0 A& a6 @" q/ \, N) F0 L
. K" A( |( }9 Nprocedure OnLeftClick (aStr : String);
" i, n! G! N2 h* e, V( q5 ~
; S. v! y/ N9 O, C3 j7 x; [) F8 o2 j' ^//声明变量的类型5 ]6 G6 Z/ A, \7 M$ `% P
var
5 M5 Z! a' } x$ ~2 v
$ g3 n4 q( c8 z5 H//Str变量为字符串型
' X3 R7 ^0 |4 p2 i# e/ n Str : String;
2 V/ W9 V5 X7 e; [
! v, P9 t4 A* G3 p//Race变量为整型
8 s5 i# m$ u2 S% L4 l3 {7 `( e! t Race : Integer;0 W$ h# ?; I4 U0 w7 ?% D \# J
begin$ q; ]9 |2 ]1 b4 m4 @
( w! c1 F/ Q' y4 z& O, i
//获取点击者的种族, V* @$ z8 d% a) \( D0 i/ v4 [" |5 r S
Str := callfunc ('getsenderrace'); p* v5 o5 z% y) y3 G; g$ z8 F
4 `) j- b, a7 U1 `: F
//将获取的值由字符串型转换成整型2 a/ Y6 ?5 s6 ?- v8 B1 H9 O
Race := StrToInt (Str);
$ B* h: E% }# _9 I) k" A8 D: a- e
7 N. e( y% ^- w; g6 P( p3 l5 }0 U6 O//如果种族为1,这里种族为1代表是玩家
* k) K, c* D+ x7 ^% f( P2 z if Race = 1 then begin$ M+ _% N8 y! ^* _3 R+ P: b* \
( W$ N. h, l* P1 _//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种8 o- c2 i* k2 ~0 ~
Str := 'showwindow .\help\屠夫.txt 1';: x) G* J" `) V$ ]
print (Str);
: l, [; ?! Y& `
. u% A6 _ J6 u u/ O( J//小判断结束: l8 K, [. ]# W& p
exit; ) e; A2 V; N" o
end;
! D1 W$ f; j8 [; s' Z: d8 L0 a. G* ^# Z5 ~6 }" S. `, L& P
//一个语句段结束! f0 i! L/ n% X7 V1 F h% o3 Y
end;
3 K3 H2 C" M/ @3 B
a2 A7 F! F, Z, N; u. j C//另一个语句段开始2 Q6 @9 N X6 r& m) Z
: p @; M7 p) b |