任务策划: ^1 I w. a7 x
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!2 T+ a) \" p9 e9 x M" e4 E/ j/ O) w
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)8 a* y0 b7 c; {' Y
收集这些材料交给屠夫,他会奖励你东西
6 M. z+ O- w- Z+ U: t& b这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
0 Q/ r: B7 I4 k! f. `/ ~) I! k( j5 q F) \
目的:( G. s' V k0 I
体会最基本的活动都是怎么设计的& p# ]# g! h0 A
. [5 \, |2 y$ U: k
知识点:
# S. K5 v9 i6 P* O- \1、检测包裹里的物品/ {4 ?4 j- m1 D: S3 q4 I' d
2、检测包裹空间+ `( }+ ~2 R% ]& }
3、给与物品
D; G8 V0 v* d. b4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
( o4 J' q+ I& f' y% M# F$ g% v) i7 Z. K+ X. y4 U/ K* ?0 o
unit 屠夫;$ m2 N9 y8 N+ z" U
5 w" X; k- l) W' w. A' _* o
//下面的是通用的调用程序内建的函数。每个脚本都有的。
; @7 y8 L# ~& l4 b
5 ]: p C. a5 K2 `interface
! f. f: { q( d0 g# F; p# S/ D" _% l. F6 B4 \ Z( `
function GetToken (aStr, aToken, aSep : String) : String;
6 m$ l9 P8 b9 w& e7 efunction CompareStr (aStr1, aStr2 : String) : Boolean;
1 F& Z' k) \9 G6 {; Hfunction callfunc (aText: string): string;
! x% H6 m# O! o5 l* e8 Eprocedure print (aText: string);
9 R" W6 L8 w5 e& l' Lfunction Random (aScope: integer): integer;
* Z5 o3 X" ^% i- Gfunction Length (aText: string): integer;
% ~6 c! K5 Y. A T: oprocedure Inc (aInt: integer);
2 l$ p/ x) V, R, I, ]/ Kprocedure Dec (aInt: integer);
3 ?* R+ g4 i S7 Tfunction StrToInt (astr: string): integer;
5 s- p3 j5 \" @& q& Ufunction IntToStr (aInt: integer): string; K/ y# i, {- q: w
procedure exit;
$ }3 z( Z6 ~9 ]; Q0 s5 G6 z! W( y& [' l
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么* a! ] f" L3 p4 X$ J
6 b3 H; M; q- l
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou7 _- h5 Y" h' U' Q$ V9 S
/ _9 O) W) Q7 J* e+ Z8 t
//第二句的意思是当左键单击的时候响应,8 m& A1 W" b# @7 Y: u) A
5 R% f% _3 {$ {2 {& J* a2 Vprocedure OnGetResult (aStr : String);# V6 p2 c. |6 D0 P# `! H/ |
procedure OnLeftClick (aStr : String);
z+ ~1 X8 H& l" ?$ E# E: _& c5 g* h- J/ H
//以上是脚本的头部,下面是脚本的主体部分% a, D. ]" O |5 [8 c8 K4 r( p
8 A6 O* ^$ s* J
implementation2 E( J+ [3 m' x6 G1 W# V7 |
& h1 S+ n6 E( Y$ Z$ T
//当左键单击时
# V2 b8 U% U/ \, A& j. u, k: [( T6 w$ o. V
procedure OnLeftClick (aStr : String);
/ H3 `3 g: y7 G* h! D9 D8 r6 f$ R
5 I4 w0 `: ^1 a$ n5 @/ J& d( G$ h//声明变量的类型; Y% c4 M0 s C( `% \
var, S6 k7 Z ~, E- G
, R0 ?; s* Q8 x* f( m& [//Str变量为字符串型
$ Z. M% C) w |) x# q# R6 V Str : String;; n" x" P5 x' D! ?
) L, i! c1 D* e1 Y+ c4 E
//Race变量为整型- `% Y* @' Z/ a
Race : Integer;
& X4 X- O0 R( c# hbegin
0 G( p, p q/ x! I/ E0 O
4 e, M2 n" v8 h( [) X//获取点击者的种族
2 \+ a% G$ T$ y$ R& I4 b; e( x Str := callfunc ('getsenderrace');
& Q% P2 W; B5 h D+ i- F0 e! u5 q: M) M+ w' C6 q' U+ y2 q* P
//将获取的值由字符串型转换成整型% p# r1 s0 b2 s+ W1 q
Race := StrToInt (Str);0 L4 j8 `1 l' T& F0 v
$ `* `$ i9 Q. p* w2 s//如果种族为1,这里种族为1代表是玩家
- l( H0 b' e# j) U if Race = 1 then begin
; ^& P* ]- }) v3 Y; Z* C9 }/ ] ]: M; p
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
/ n5 {/ e2 h7 M# Y1 e# H; H Str := 'showwindow .\help\屠夫.txt 1';$ B5 B& J/ G5 m9 w$ d
print (Str);
8 z0 X0 z# u" A2 _
. e9 c/ r& S" r% v7 y//小判断结束
, N4 p7 K- B' R+ I exit; 6 ` f8 a6 b8 U' E% `( G7 F2 R
end;
2 F$ j7 e( f/ M# Z6 Q- C& u
5 j0 @- Y: o+ d8 {0 ~//一个语句段结束1 u4 Z+ z* j9 W& {. U
end;8 q3 D4 I6 O( O. ^ J
/ `4 a' W2 _) a0 O- [+ J1 A. V
//另一个语句段开始
# \' R4 L# k' I1 j
3 j% R* [4 ]$ m# T6 g |