任务策划:
" r0 y8 E0 {9 P$ t( o! X出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!* U4 e. R) ~/ w" k* L, S$ p2 K" m# ]
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
5 d% Y+ z5 X( W+ |1 W$ l( }0 V收集这些材料交给屠夫,他会奖励你东西( @( b" g& B/ f: Y
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
% p1 J, H4 V% L/ h& W0 {" M
& I# ?" Q S- V( a2 n1 U* l目的:
/ G1 R5 |7 i* D/ [+ {9 n3 m体会最基本的活动都是怎么设计的
; n6 h9 C- U* V9 z, p' E6 D/ _$ u0 ]( r% U- D& }+ ~
知识点:0 H) |3 K$ Q: l$ M8 L
1、检测包裹里的物品
) f0 [% G1 {7 Z% R% X W2、检测包裹空间7 E9 S1 m+ i8 A/ u0 A9 `# n
3、给与物品
+ l) M4 T U8 K4、没收物品 //这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
1 t& E* H1 H5 @: K2 o5 t
0 @ U$ H! n. V2 K: j& Punit 屠夫;
. z. Y( h1 g, o& p g: u
- ~' ]& J2 p* l/ n }1 T//下面的是通用的调用程序内建的函数。每个脚本都有的。/ c" D. i8 Q5 C
( a6 S# ~' i8 Q. j6 Rinterface
; o% p3 E; G; E+ `$ Q, K
' N- ]* c& ~3 a* a d1 c6 _function GetToken (aStr, aToken, aSep : String) : String;: p: ?* \8 k% a# V5 u
function CompareStr (aStr1, aStr2 : String) : Boolean;5 h+ w# W7 n1 a, J
function callfunc (aText: string): string;% ^. m- y c/ E+ a% J
procedure print (aText: string);- k( g: L: W) x5 ~0 ?* l) H
function Random (aScope: integer): integer;
# A+ T0 X5 r, o9 U5 F' Ifunction Length (aText: string): integer;. H" B6 h) ? t& H6 b7 Q- K# L
procedure Inc (aInt: integer);
- U9 E9 O3 T6 K; o6 p2 Cprocedure Dec (aInt: integer);) s( \4 S( x# l9 L& g
function StrToInt (astr: string): integer;& U! B; [( T7 h; U# G$ F' R" W9 ?- u
function IntToStr (aInt: integer): string;
( L# G1 P6 n0 y9 ?' N M) gprocedure exit;1 o7 F: Q4 F3 Y" ?) v [
+ s: G8 @$ Q2 Z2 N! d- E! a8 ]//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么* X. T0 _' @( a* {5 {
; x+ b4 R" J8 K9 e/ e; C" w/ ^//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
! a1 @. S8 y* p0 Y; j2 t( _! L3 {/ @' i: K: f( R6 v0 Z) f
//第二句的意思是当左键单击的时候响应,& |7 ~# z* j: s- T: Z7 Z) T
' M* d3 S* w+ `, T
procedure OnGetResult (aStr : String);
& F7 y/ H* I3 Y2 S8 ]& Cprocedure OnLeftClick (aStr : String);
& U, R/ V+ q' r X/ {9 T0 M& p( J% L1 c0 v2 u
//以上是脚本的头部,下面是脚本的主体部分% e' K- b, O; f6 J/ P
9 ?6 ~5 i3 p* @6 L2 i0 d
implementation
, | Y* h- T( X: d! s- N' H
# ^) D. d0 u# ~7 {6 s ?2 m//当左键单击时
^; {9 Z d g+ J( L0 |6 ~- ^
& o7 O% @0 ?& L5 J2 f0 s/ X; E/ ?& gprocedure OnLeftClick (aStr : String);* o+ T" |( r! G
: ]. e' ~* S3 O: I7 L//声明变量的类型
0 T8 Y& W* M' n, y) K( B3 Qvar }( D" L6 n8 E/ O1 z b
0 |4 a$ i0 i3 P0 T//Str变量为字符串型3 r2 v7 U+ o( ^) c' m
Str : String;* `" U$ Z$ `. T3 @1 c5 _
b& l. Q3 }0 w) N& i- Q8 Z2 z% ]' S
//Race变量为整型
3 S/ |5 z, Y) n7 F5 S9 o( R6 i0 H4 z Race : Integer;5 o9 q7 D; J' z3 F* z# t
begin
' c$ b) B5 e0 j4 f( t) B' Y: M
/ ^7 I1 B6 g$ r3 k6 L5 g1 T//获取点击者的种族4 z3 ]' i& p0 J
Str := callfunc ('getsenderrace');
0 o [' \$ ~" S3 \: a
! L* t9 T( m; Z* D4 Q//将获取的值由字符串型转换成整型
. d" @1 ^. G2 O. b" D Race := StrToInt (Str);+ f0 R' I7 B6 b1 k1 p8 i- `
+ b, U$ i% q" {4 F; X) _8 t! U//如果种族为1,这里种族为1代表是玩家
3 l0 E# C: g: |- K if Race = 1 then begin; ~8 |! E. g* w+ r7 \ v
0 a' k/ A; [7 Q1 |! V//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种+ T. W( J9 W3 ]9 U# p! s9 n
Str := 'showwindow .\help\屠夫.txt 1';
/ D4 B! i3 N1 o) j; i& I: N* N print (Str);, @: i. y8 U: ?' r q3 f+ _7 G
4 w' O: Y' C3 q, b+ L# F//小判断结束
I& ?" H# @7 a, A8 V0 s exit; 8 m* _3 g8 U) ?: U+ J% U k
end;$ ~ ^7 k& i7 Y/ L) b9 u
( C+ p) I, E3 X8 e; y
//一个语句段结束
K c0 Y( U" q, y1 O3 c: ?* ]end;
+ O9 I, O+ t2 R9 [
: W' D% U) m0 k//另一个语句段开始
/ ]6 n% A [0 l& R9 s4 j( {& |
3 @% E% [) y2 M7 |! H |