任务策划:
9 ]7 U4 |1 r- p7 I出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
" L$ w/ g& r3 m6 Q来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
+ _2 \# W- X: P4 `2 h收集这些材料交给屠夫,他会奖励你东西" E9 [/ q- \! ^! | L0 O
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
& L. n8 y% K/ \! |7 v2 u( j
8 }0 v& J: P6 ~4 y' W目的:
( k# E2 x, k3 V! b' Z: N6 V7 h体会最基本的活动都是怎么设计的
% J5 f8 ]+ m* ^8 }# L; R# S& R+ J& c, B8 y. r' ]8 @
知识点:
/ h5 a. _6 F3 F* m1、检测包裹里的物品
& X* ?% }% c( u" O4 S! e2、检测包裹空间
9 @8 f3 P- K! x g* ^' Q$ g2 u5 J# p6 A3、给与物品( h2 x) v6 N5 x+ x
4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
& M: u. @# d- n2 i+ }5 p8 {+ J& f. D6 V. n2 I
unit 屠夫;
: B" L; \# Y7 W' m9 J* `0 A
7 L) k& Z' `7 d. t; @//下面的是通用的调用程序内建的函数。每个脚本都有的。
% w! j8 f. U( w7 c2 f' |( p% V! J+ `" F) t( O7 |
interface3 e# c9 n G" c5 D2 s" @, N
* G; i: |/ G4 {
function GetToken (aStr, aToken, aSep : String) : String;
3 p, I& M' L# ?1 ]. k3 N; Hfunction CompareStr (aStr1, aStr2 : String) : Boolean;, F- W1 J9 I8 D6 h1 Z
function callfunc (aText: string): string;. L( B" R7 G" w& @
procedure print (aText: string);3 N2 \7 {- h5 E
function Random (aScope: integer): integer;
+ ~2 [7 X( W8 y! P# dfunction Length (aText: string): integer;
0 k& `! E8 g: r" Fprocedure Inc (aInt: integer);
7 ~8 X" \3 Y9 c+ dprocedure Dec (aInt: integer);
) D" N6 A# M6 q9 E7 Y' nfunction StrToInt (astr: string): integer;
# \3 x& m4 W% o- Rfunction IntToStr (aInt: integer): string;7 v- V# |4 V/ _" J: s* e+ c
procedure exit;
3 {9 z8 l1 n( p8 m) F' X H5 }
* U% e" Q% g% _) g, m//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
5 k- f9 k; a, x7 l# c: ^- z( ?1 H' M' R/ R$ f% ?) i
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
4 Y% R% |- c5 |- H7 k$ W
" a' y+ K: \* ?) `6 Z//第二句的意思是当左键单击的时候响应,' R2 | \4 B3 c4 C
4 ]. x' o# ~3 P) P* ~
procedure OnGetResult (aStr : String);
) N# s/ N2 c5 @% @- y( f3 nprocedure OnLeftClick (aStr : String);
# e$ Q! g0 J( q( C6 C
* g4 L& L3 `7 C& E- H& L//以上是脚本的头部,下面是脚本的主体部分
# @$ ?% ~, j7 C7 Y9 M2 ^ d1 X7 S6 p6 i0 [. {
implementation
4 B- S6 d( Q* Q, T# n7 D" j& h4 i! g, D- k, l
//当左键单击时
' X& U, Z6 E" d8 {: @% E1 s6 r2 U$ m4 z& J% F, b
procedure OnLeftClick (aStr : String);- w9 l7 ~- ~1 x Q
; G$ ]1 T! V }1 w1 c5 K
//声明变量的类型 c5 V2 U6 b! Y @
var
. O$ a$ ~% G. r& V- F8 r% y: H- r) w4 ~4 F% [
//Str变量为字符串型
- S; T3 e% f; G% f# B Str : String;: R5 G/ ?4 T5 }& U T
2 u s4 S" G$ s& z# Z, ~" p& N: q
//Race变量为整型; _9 @( o( h ^2 N' i! q# R3 ~
Race : Integer;
. M% d4 X& f8 `* o9 Dbegin
0 J5 J* q" o2 G5 G1 V4 C0 U* S4 G6 W/ B
//获取点击者的种族3 K$ g: g, X1 y' Z- u J
Str := callfunc ('getsenderrace');
& N# h+ U+ q* t1 f0 Q
^% K% `# J# E" f& ^$ P% |: O//将获取的值由字符串型转换成整型
" N2 o$ ?8 ^) |& B Race := StrToInt (Str);" [$ c$ j) q. C i6 h
: g$ G. H% M# D4 O/ d8 j4 t//如果种族为1,这里种族为1代表是玩家4 |4 w. I7 g: b5 T1 W7 I4 a+ t+ b
if Race = 1 then begin
7 F4 K9 T% Z9 D0 e1 a% S: Q z
( o* T9 v9 b! |) E( L//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种+ u* n C6 u3 g% v+ c, p$ V9 B
Str := 'showwindow .\help\屠夫.txt 1';
' L' j# M- l5 u print (Str);+ U1 J+ t( j( @) I$ ?3 e( W
7 L% a! y, h6 U# d) Q. G//小判断结束4 p L4 E9 C4 E* ?# M1 {- n5 y
exit; # V* b( |' [: p
end;
8 d6 h: q) a+ V9 ^ v! [: f- x3 d. T
//一个语句段结束
: [! n* t6 |$ Q4 t8 n0 Aend;$ E0 Y6 J5 B% S, b4 `; H- |2 C3 Z
9 Y n9 t+ i4 S+ a7 Z0 u! @7 _//另一个语句段开始
7 v; A$ R3 M# S; @; T
9 k+ n* |% X, f |