任务策划:9 y! Q& A4 h9 z# s r, v! }7 a
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
& F" I1 a. f6 ]5 q* @/ ?9 `2 F4 g* }来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
1 L1 k* _/ T2 C* @) B收集这些材料交给屠夫,他会奖励你东西3 V7 L; ^' p9 W# Y
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
l E% I* `) I/ B6 d& Q0 p6 S2 e1 z% [& F4 ]
目的:+ u5 Y, E5 b! B0 Z* q; i
体会最基本的活动都是怎么设计的
+ }& [; r, U& k( v% s6 B' E3 d" ?6 c% I" N
知识点:
7 f9 U$ L( i+ c! i/ v* c& t1、检测包裹里的物品
1 ~ a" Y/ U/ q( w( @/ o f2、检测包裹空间0 _* h6 j, l: @# i: X7 W4 D
3、给与物品2 M k& A) |- G* Y+ s" h& H
4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
: S! E2 T5 k1 G1 [2 O' t
: b2 I# _' J( X, _unit 屠夫;! o: w6 X$ P* T4 z
0 X% x% G( O- z8 e% o; A3 i//下面的是通用的调用程序内建的函数。每个脚本都有的。
% M! w) f1 x: b+ D
" o/ u6 ~, E+ ^7 dinterface
V- V' ]2 w/ k
! N6 G6 E0 |' y: o1 zfunction GetToken (aStr, aToken, aSep : String) : String;9 h4 I/ \0 c4 E2 m) }
function CompareStr (aStr1, aStr2 : String) : Boolean;, j6 ]/ M9 @$ n
function callfunc (aText: string): string;8 P1 g2 _& p( O9 _2 N
procedure print (aText: string);
j( o+ q3 H0 _; z) h( ~function Random (aScope: integer): integer;% H# q0 M2 ~: U# |7 F) J7 p
function Length (aText: string): integer;
6 @$ W: Q) X& E9 Y7 ^: e8 J% c' w* Q7 vprocedure Inc (aInt: integer);
: X0 z3 R" G* j6 [+ t* pprocedure Dec (aInt: integer);; V9 g% w+ H5 i' d2 A( X
function StrToInt (astr: string): integer;
5 U. s0 C8 P- _5 D5 H- pfunction IntToStr (aInt: integer): string;# B# U& i/ k# f6 c* q
procedure exit;
1 q# z5 O) ~! h9 t K! ?- j+ V( }7 a" q _
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
' `& B( N, t, Z" T
- @# i6 p. ?) j- |" Z# w* k2 t' V//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
! j% ~4 _( d4 o+ J R: B8 h
' [3 H% K, x6 t6 Q% V4 a) u+ p//第二句的意思是当左键单击的时候响应,. M2 b# l# ]3 @6 y7 r8 E
- s* l/ P; @5 g- eprocedure OnGetResult (aStr : String);+ [& Z: L- F9 V# D* X
procedure OnLeftClick (aStr : String);
7 w1 o. K3 f% f+ ?5 Q$ Y
' b0 {8 ^2 B9 f- E) h4 Q//以上是脚本的头部,下面是脚本的主体部分
4 R! Z4 i6 Y4 ]3 M$ V& v$ c% F' | q; s: P& M. ^% A; B1 a
implementation
+ C1 A1 D& l: w( }- o+ u
7 K+ U9 ]$ e# j. q//当左键单击时
- Z# h# u; Q9 P* V3 C" u# V) d" o
: @2 S3 [ U2 Zprocedure OnLeftClick (aStr : String);
# [. ?4 ^, s" g, p3 Y$ N6 J
, V7 b- `1 a+ V# T6 [+ d//声明变量的类型7 x4 x* K) r4 W7 L# K; C
var
9 ~& p+ {$ N) O. @! s( G8 V9 e8 B v1 X6 R9 @. v
//Str变量为字符串型
+ } @+ N) Y o( u- a2 x- S# I1 \ Str : String;! U1 }" ~8 M7 h+ K, R6 R
: D+ i% h4 b: E% o/ U1 u% q0 z
//Race变量为整型) ^* f: H5 \& p( [. k! r
Race : Integer;
# ]1 Q2 j3 y9 C. P! u+ Bbegin$ J. R' E! C% P. i9 x+ m
3 `: P# l6 G% Z! E$ l
//获取点击者的种族
1 B5 y: G5 w$ C Str := callfunc ('getsenderrace');
( Q& \% P: N% p) \6 _& n
4 \1 p" e5 t: C- }) F//将获取的值由字符串型转换成整型
4 \8 ~0 e3 o- F) Q: ^7 v/ u8 Z8 E* f0 | Race := StrToInt (Str);! [; z$ C( j9 L# I) B
& ^; K: I ?% B. z/ g
//如果种族为1,这里种族为1代表是玩家! y B, [( ~" p) F/ s U
if Race = 1 then begin3 {4 L: I. I3 \5 }5 x( R
% c% J3 I2 _; G# p8 T# K7 F. q6 ~//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种+ N6 w' i& ^) b# j
Str := 'showwindow .\help\屠夫.txt 1';
$ \4 Y3 g) j4 c& u9 A print (Str);
$ w1 L& `) K$ x
$ \2 s# U( g# M6 c0 a8 \//小判断结束
9 _+ B0 U& `2 L exit;
& n" ~2 w( u5 Z @ end;
" R6 i5 r! b& n. k; l
% }; I- w& E9 @% F) {//一个语句段结束$ T4 [) h3 j( R3 I: B0 U
end;2 W, ~: q) a+ C
7 _1 z! F8 a- V! W" G$ M//另一个语句段开始
C9 R9 Q% u3 w7 m/ } ) G9 L1 B+ I. A
|