任务策划:
* P9 {) \) n# N3 R6 q" l出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!$ u: s. H* S6 v1 o
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)# m D) C5 I3 U9 z
收集这些材料交给屠夫,他会奖励你东西
) |0 H6 m3 j, K V* k这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
8 P; N/ E9 @* s" ?& v9 j
8 P; O' `$ K# Q7 z0 z1 P/ W目的:- K; r @0 [* m) U" ?1 a# F/ m
体会最基本的活动都是怎么设计的$ M5 N+ H) {3 d* y. p
7 k$ S! t5 l" j$ @# d$ p# I知识点:
7 O# C3 R- x5 _* c1、检测包裹里的物品
( K- W/ d, T F3 M4 X0 T' P' x2、检测包裹空间
7 U" m% w5 t5 I6 D3、给与物品
: i+ I# q1 Q z* {; Y! l4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
. |5 q0 [1 E3 v2 D& k; R* G6 H5 z7 \& a
unit 屠夫;
. b- F, Q7 y4 L% u1 x, M! O" K) `" b W# c) Z
//下面的是通用的调用程序内建的函数。每个脚本都有的。6 M. p- w7 F+ q1 L5 `
% _" y/ e. ~4 qinterface
) `% @- z8 `1 i. z7 S: g9 {5 @5 f; P2 T$ W
function GetToken (aStr, aToken, aSep : String) : String;
" k2 z# {8 E$ \6 @function CompareStr (aStr1, aStr2 : String) : Boolean;
4 t s6 f( Q6 s1 M* L1 l% `function callfunc (aText: string): string;% B# N/ V8 m' o' H( p' ]
procedure print (aText: string);
: i$ S6 d4 v% G. P: d2 E3 \ I' P' qfunction Random (aScope: integer): integer;
4 w! w3 K% x, t$ [* q6 ~. {function Length (aText: string): integer;# ~# X6 C/ X4 f3 C8 h! }
procedure Inc (aInt: integer);
* y- J" L- v3 i! N1 F+ Uprocedure Dec (aInt: integer);
, F( Q- a" W4 l7 Bfunction StrToInt (astr: string): integer;
$ u" R$ [4 ^0 {% N' q- Pfunction IntToStr (aInt: integer): string;" ^" b" j3 A! R
procedure exit;
0 h# {3 U4 `0 g" a b/ y
! G& c: w4 \& R# C2 G//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
" d* k# m9 w5 W; N( X
) W1 O% R9 O! }//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
! D! o" n% r" z$ [% n" Z, ^( F7 x# i" _
//第二句的意思是当左键单击的时候响应,
( G* ^: Y* ?- S! m6 `5 w
( c% n6 A: N- g, l. }& }procedure OnGetResult (aStr : String);
4 h3 b* n% g- Z$ i: Q% pprocedure OnLeftClick (aStr : String);
0 u$ e7 n4 M2 o( @) J0 c5 J. |5 G
: o# {0 X! g6 D7 Z! Q+ _7 \: z//以上是脚本的头部,下面是脚本的主体部分# b e( b2 A" I! w' I
+ c# R! C0 n- |: @0 v3 Rimplementation7 J; H' D9 q- _4 N3 p3 Z( l! r. d
# M4 b1 k, F; |6 |7 ?9 @# t. y! s//当左键单击时8 [; Y6 k8 k8 e9 u5 E( K" I" T- `
% ~/ ^1 v7 ~4 H) q, F$ vprocedure OnLeftClick (aStr : String);
: K @) n, O6 ~; d% V5 i
, O' x) P. f1 S; X$ d3 M; f$ @//声明变量的类型' q1 L; G0 T# L+ b
var- J% U; {6 \/ |4 |# I4 _1 Q
) g+ w# V, l) ~6 h( E/ i0 h; R1 L
//Str变量为字符串型
7 ~" j( w" Q) h8 I8 i9 S; }, @2 C n Str : String;1 D0 |/ g: R+ Y- O
) K7 w# I: k2 R//Race变量为整型
6 p$ l" Y. O5 d" E" e' J) s8 m Race : Integer;
9 Z0 N( n) r4 Lbegin1 c5 V* |. D# s- V7 a0 w' I, o
# F% `( B. S% y
//获取点击者的种族
+ h- G9 O, S9 U8 O Str := callfunc ('getsenderrace');6 R7 }! U# `! g" ^/ L# v" J1 W
; ~+ @3 O. \+ w- T# m//将获取的值由字符串型转换成整型
+ @4 D* d5 }8 L) ~8 Y Race := StrToInt (Str);3 x/ L/ l8 G5 }2 n5 ]& {0 G" E8 H0 m
, ]$ @" k1 g9 {/ D//如果种族为1,这里种族为1代表是玩家7 s, P. |2 ~) K/ S! R z6 ]
if Race = 1 then begin; V/ Y8 d1 x- F( J. u+ P" t/ ~
3 v+ J: V! ]6 m# R0 G/ K1 t" ^3 Z//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种( S5 D0 [1 X, }1 f7 A# i* B
Str := 'showwindow .\help\屠夫.txt 1';4 ]8 {& }. u- [/ g, Y1 q
print (Str);
$ s5 M! f: [2 z& U0 e h" S) @1 `" F# p2 a0 t# @* M) u
//小判断结束* h. L5 t& B+ s, C
exit;
& N# p5 r# O' u% k: p end;
, B9 P( Q8 Z8 W) Z9 u6 {. ?
; j1 ~4 V$ L( Q+ H: n//一个语句段结束
$ I( ^7 P; r* e2 w+ Xend;
( w; |/ E( G1 R9 u, x1 e" q* X- p* T6 x
//另一个语句段开始) e& @9 V, ~4 W7 @7 n7 @: a, @
( \; p' z5 L. R
|