任务策划:
3 i+ H) \$ K- z* f" N出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
4 O _( U" m9 [来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
) u9 S* H" _! O3 g( m收集这些材料交给屠夫,他会奖励你东西4 J d6 k, z: }2 j ` G
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
6 l: ]7 N# q7 k/ E8 L# A
6 k6 }8 i( ^3 B目的:
. K; m6 I' p& S3 L# j1 w体会最基本的活动都是怎么设计的
- Q/ i7 o& B2 w4 ?9 _- O7 t" D
5 s/ A) `" J+ F2 b+ B# y4 T- U3 }知识点:
' T6 `1 {7 a8 {5 t0 G1、检测包裹里的物品
7 H9 n J4 N& ~( q* e$ P2、检测包裹空间
% w7 w3 `, T6 A' B3、给与物品
3 Q: l9 r% w5 W! X5 G4 A Y4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。 {6 J& U2 N/ Z1 z
x5 D5 M0 w9 C% y+ M2 l6 i
unit 屠夫;1 d8 ]6 v5 s) K1 K+ S
( C9 f/ |9 L* D- P7 y$ b
//下面的是通用的调用程序内建的函数。每个脚本都有的。0 w3 o) D$ }6 y" P
5 D3 U5 C: }" G- V r
interface# s' s, i6 b+ q* F
7 W+ L" D- O1 g5 Qfunction GetToken (aStr, aToken, aSep : String) : String;
6 x- O( j. W2 y! pfunction CompareStr (aStr1, aStr2 : String) : Boolean;
; h) G" j/ w# X E6 Yfunction callfunc (aText: string): string;1 Y( B ] N# P! I9 D: W
procedure print (aText: string);
; e4 S Y9 g! k4 Y" |function Random (aScope: integer): integer;6 i- E: {3 f* e! P* ^: L# Y
function Length (aText: string): integer;, ^: F" }4 f f3 i
procedure Inc (aInt: integer);1 Q. ^0 ~5 r* H1 o; {0 o( B) K) @" z G
procedure Dec (aInt: integer);# L, \. u/ Q) u
function StrToInt (astr: string): integer;
5 \3 F4 C; L* r: Mfunction IntToStr (aInt: integer): string;) {8 ?# O' N- m# R8 g1 t% m
procedure exit;
3 L; }' @# Q; J. D2 d& g
6 M3 y) |+ X; S- K//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
# H. H# e+ e3 x2 f
2 h U4 u: S" p7 g+ c9 B6 O. z! D//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou% L6 R6 M* p! ^) z9 y' E
- M G1 M; `0 t b9 H//第二句的意思是当左键单击的时候响应,* |: G& L: f' O5 M0 q% o
! x1 P7 S8 |8 Z" L
procedure OnGetResult (aStr : String);
' U; A3 e4 l& |3 @5 d' oprocedure OnLeftClick (aStr : String);0 l+ v: h: O! G5 u, @$ a& d, h9 z
/ F* R( Y! B2 i# z% {% J//以上是脚本的头部,下面是脚本的主体部分( U0 Z2 i0 }5 `! D u: c
2 A3 \ z. q, x: P1 x8 p
implementation% p5 }0 ^4 U2 R; @
8 U M6 M: M& C$ O//当左键单击时; t M- I$ x* c) H
# M( I( r R4 r* y# K
procedure OnLeftClick (aStr : String);
3 i$ w* |: H2 F5 g' P! p; {$ R9 i1 c. i
//声明变量的类型' \1 M) ` X U4 K
var
- Y- l$ @3 b5 \# w) F5 e$ E# `
" o: `1 }4 B! h- Y* R1 s @6 V; ?: V; J//Str变量为字符串型
0 p8 m. V1 N( q s Str : String;0 ^3 I4 D V! z9 d
$ n% i4 n% }' V6 O* [ N//Race变量为整型
6 i" E5 ~* f* `5 |5 H! X, w Race : Integer;- _8 d' K; V! [6 S, v( h3 t
begin
7 i) a/ J0 b/ n8 W8 J9 X! K. `* b' P6 f( {
//获取点击者的种族
( E- I: L* a' Q) A# y: B Str := callfunc ('getsenderrace');
: p* d. U, Y: }0 u& l7 x5 Y$ r. A
/ ?' \, o+ w4 k$ i7 a' ^* |//将获取的值由字符串型转换成整型- X8 R$ ]& O# ~. N* r
Race := StrToInt (Str);
0 }( R7 t( x7 B' b$ ^5 _& d" m% ^8 O `2 ?
//如果种族为1,这里种族为1代表是玩家5 K! B2 g& o0 W
if Race = 1 then begin/ O% _' |/ o+ T- v6 x" t. b7 O
2 ]" J! `, m `9 `9 s6 Q2 Q//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种: J7 J8 P- V [% X) @; S
Str := 'showwindow .\help\屠夫.txt 1';
; q- j: v, K" q2 f3 h( V! C print (Str);
( A& ^1 C2 q ]- v9 }; [8 G5 ]. i' t
0 ~3 [: n% m2 p//小判断结束
7 z! k% P2 H' _. Z$ C# a exit;
! C5 q5 C1 t- { end;
6 k4 R: B( ]. `8 F: y4 { _- W D3 O
0 P z: B+ Q3 C P//一个语句段结束# n9 S: t, x+ B1 r4 {4 S i
end;
0 d' o O. e; } l% m8 c
, H7 D( I% m# h5 ~7 }//另一个语句段开始
' m. L$ c. J) B! O, k
( C1 k6 U8 [5 ]2 j% c |