游客您好
  • 点击联系客服

    在线时间:8:30-18:00

    客服微信

    Wkr-3000y-kf

    电子邮件

    3000y@wenkeruan.com
  • 手机版

    随时掌握游戏动态

  • 扫一扫二维码

    添加微信客服

Lv.5 解脱境
277号会员,0活跃值,2022.10.27 加入
  • 207发帖
  • 173主题
  • 0关注
  • 0粉丝
这个人很懒,什么也没有留下。
独家推荐 更多>

[安全工具] 第一个作业——小试牛刀《意气风发来打牛》

[复制链接]
快要发癫啦 发表于 2023-1-9 09:35:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
$ e9 M) d* x' o出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!; j3 f; f0 L) R" }1 f2 _
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)( U% b* F- N; {. X1 x
收集这些材料交给屠夫,他会奖励你东西1 o% d4 Q+ y' E( j- i8 B+ J
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。8 P9 ?+ P. @+ p' L

# i" ]. H* M4 X7 X- W目的:4 |( A  f4 P/ Z6 x0 g. Y
体会最基本的活动都是怎么设计的
5 A! l% Y" o& p- g. i+ H0 A3 G: Z  D9 A
知识点:1 T8 `  ~3 `2 w# v2 D4 S& k
1、检测包裹里的物品
- i; T# v7 D. Z" q: ^7 S2、检测包裹空间/ X9 c' a4 S* V( ~, A3 r5 L
3、给与物品. L6 @3 r$ W! X; p3 I
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
. k3 x9 V6 _1 b: r2 f1 U& N8 M
7 U; @  N1 J7 w, g
unit 屠夫;9 |) N& N+ @7 Y% q+ Y

) O  f2 g' t+ p. U
//下面的是通用的调用程序内建的函数。每个脚本都有的。
! b1 Q7 K3 n* \" F* T  F
! i6 d( Q9 o7 E
inte**ce9 e  i* x1 Q: H! {* ?

. ?( c: ^% [' F: P5 k
function  GetToken (aStr, aToken, aSep : String) : String;! l  t" f2 u7 O- O: [$ p
function  CompareStr (aStr1, aStr2 : String) : Boolean;
8 ]/ C0 S/ s8 q! \5 v/ `( u
function  callfunc (aText: string): string;. [# W5 s2 r' P6 {& V
procedure print (aText: string);
9 V5 O3 S3 G: f: \( W! }7 K3 ?
function  Random (aScope: integer): integer;6 x0 c2 L. [# l6 s
function  Length (aText: string): integer;5 u. s  n! V! Q, ~# h
procedure Inc (aInt: integer);
) n/ ?9 n9 s1 G" z% d
procedure Dec (aInt: integer);
3 |! G3 C5 c0 C7 L0 i+ }
function  StrToInt (astr: string): integer;
( ~% `( U3 F+ k" Y  ?' V, A" s- p+ X
function  IntToStr (aInt: integer): string;
! S, s" O/ u  {
procedure exit;( x  u8 P$ m( D0 |8 U

+ F1 p# O0 K' \
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
+ w# Y$ E, n9 ~. X' T/ t. ~$ W! A

% A2 o2 Q7 j8 D5 O' e8 B1 j
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou: D" k. N! o# ]+ S

5 r8 u0 M! _* l
//第二句的意思是当左键单击的时候响应,7 n$ {3 [3 K$ J8 I

$ P. w6 E/ k5 Z: P& B! t. v) Q4 K
procedure OnGetResult (aStr : String);& {) X7 h7 ]- I" M/ o+ A. j) C$ t& U
procedure OnLeftClick (aStr : String);
& a. [- B  o% {! ?; {) |

2 k2 \$ W& N3 [+ G% R/ _
//以上是脚本的头部,下面是脚本的主体部分
, A/ `, L0 X. I* B7 b0 O
& \1 s" i) n- x/ p' d
implementation1 l" Y# U  K1 C4 ?' O% f# o- ?; W

( L* Q& T- n- F4 S
//当左键单击时( z  C5 {8 S2 d/ Y4 F* ]
: e+ z# V5 [. K$ ]/ g2 J1 t
procedure OnLeftClick (aStr : String);
  l- z4 `. j1 ?- \
/ y$ B3 e+ M" t; D
//声明变量的类型
& w( z6 d5 ~- f
var" ~' ~2 i% t9 O+ D% g

0 O/ @1 x, Z% I; h! A
//Str变量为字符串型) O, ?' o: w) j" d* B
   Str : String;
2 |8 J# n3 n+ _; ~

$ g* D/ x: L5 Y2 {1 ]' M% Y9 _3 r  Q3 k
//Race变量为整型5 `( |4 j6 i8 c# ]
   Race : Integer;
7 J5 n! w! b, R/ ?+ _: L; Y
begin) |, r1 v; g* k; `9 X+ h
( w; T5 E# N3 |$ x: A! m
//获取点击者的种族
3 n" F# Y4 f% ?* v% ]1 k* s+ }
   Str := callfunc ('getsenderrace');
. s* z( K2 |) p) N3 C8 s
+ S4 Q: e* ?  @& R2 q- u/ W
//将获取的值由字符串型转换成整型5 }; h% o9 T0 ?! n% x; l& r" J
   Race := StrToInt (Str);* n7 O) P1 [: s$ }

4 G, K3 l) ?5 _' l4 y
//如果种族为1,这里种族为1代表是玩家
1 U* a& `3 q0 t! q
   if Race = 1 then begin
1 O6 j4 o; O. @# f
9 C( w) M+ f' z& d8 Z8 T  s; s" Z
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
* {; h5 B7 K6 }5 l  d
      Str := 'showwindow .\help\屠夫.txt 1';' b+ m' }9 S5 R& B; V
      print (Str);
4 ^* T# ]* k9 a) ~( }: ~% [
9 n% x' i# O) M
//小判断结束- }, y3 u! h3 q* W, o5 B
      exit; - r* s5 S9 c; v% f: T; L4 ]! f
   end;$ [$ N- g1 i. p  O& n

4 k" o* i# M1 o8 A1 G2 u
//一个语句段结束
* N! ~( g. Y" u) y6 D3 P& G
end;
3 L5 R3 S0 Y2 L6 Y, |0 q) ^

; ]* O6 I* G% N6 F. X: K
//另一个语句段开始0 {& o- b5 d3 s( |8 u. O

5 C( y! K) L( F' l+ Q$ g
//当从Help文件里反馈回命令参数时,做出响应5 J7 X) R9 l# a, {4 S2 r' T" I/ Y" [
) E1 H" `9 Q4 M$ t! \
procedure OnGetResult (aStr : String);
' `! h9 }# ?6 B4 |- V! w
var: |/ N7 l9 u8 P0 G* ^" J
   Str, Name : String;, z1 J0 `: N4 w7 m- ^
begin! q4 ?1 }0 ?# Y  [' W

% k- G/ ?: Z8 e+ J+ A& S  h9 v' \
//当反馈参数为close的时候就关闭对话框9 `  R3 p5 y# p
   if aStr = 'close' then begin8 p+ k" o: ~: C9 c* V
      exit;% V# K1 Y' G0 {! f1 J! z
   end;# ]4 b5 ~# l$ S% l9 {7 A. j

$ O6 @: ]2 `7 ]3 J& P+ x; T: G! u
//当玩家选择niujiao 的命令时2 h$ N4 f6 G$ Z2 [! p* g/ j

4 r, g" s. p( k1 t
   if aStr = 'niujiao' then begin
! _/ `, D  a6 T. G3 e! Q5 ?

1 M3 `6 U1 P+ t+ X
//检测背包里是否有牛角, X( e3 Q* r  ~2 M, g
      Str := callfunc ('getsenderitemexistence 牛角:1');7 `5 C6 B6 x. K( Z# \' w
9 K% q5 c# j) O9 [% b0 m: K* R1 v
//如果反馈信息为假,也就是没有: e4 o5 A6 G! H- U4 |; d9 A
      if Str = 'false' then begin
/ l0 B6 v) L7 Y* ^- {

) G- A! d+ Q2 G* E" ], A
//屠夫说话2 Y. o  {" k9 Y
         Str := 'say 快弄牛角再说';
" i, {5 p3 i2 F. l5 G
         print (Str);
% W/ R: P7 P7 S9 N/ m4 ^

- l4 m9 @# f# p' R' `. K, Y1 g
//检测结束
$ r1 E+ K* X1 [( v! z7 \
         exit;
+ l/ m9 ?( |1 ?7 @+ j
      end;
$ t+ a& ?2 V' |1 h! r" ~
* p# I9 c9 X/ E0 ^; v6 R
//如果有的话就继续执行下面的) y( S: @% \' A

' p0 \5 T( |6 n: h( W" A* C
         if Str = 'true' then begin3 i1 ^% b5 Z+ W8 P: x5 K
+ I3 {+ O% f, I- r3 i; a
//检测背包是否还有空位置
4 g( y8 f& |+ B- `+ A1 z
            Str := callfunc ('checkenoughspace');
4 j) n$ b6 p, X; j% \$ D) k# f
; f# z9 {5 s1 n1 v! O
//如果返回值为假,也就是没有& [5 ?9 s1 V$ _, V0 Y1 X) {0 Z, F' c2 _
            if Str = 'false' then begin
9 |) D9 w( B$ V2 j6 z1 n( \

/ [8 j1 b7 u7 j8 O# b$ r) @
//那么就提示物品兰已满
; n: C' \. ?5 E2 q# P" h0 v
               print ('say 物品栏已满');1 x$ a  I5 l$ e

3 ]8 x; q0 R  G
//检测结束5 P  f. L: `* p( `. g: j
               exit;
. p! i' X! y' a( H/ k
            end;
/ g1 z6 L0 a2 W: t/ l! }

, q5 j. H' H9 w
//如果背包有空位置,那么继续% `2 n2 X+ w0 U/ r( [+ \  ^. _

1 W$ a& m( h7 [8 v- ~+ F9 Y
//没收牛角
% N. D7 d0 X7 N
% ^9 B/ c; D8 P6 l$ f4 K
            Str := 'getsenderitem 牛角:1';
6 r% @4 O+ i) ]& A
            print (Str);+ @0 q  C5 T& b. c% a, `2 V7 b2 L

7 W$ z; \3 |6 ~  C2 t
//给牛俊弓服) }4 s; e" W5 e4 V0 p6 `
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';- s6 f2 w- x& n1 c/ b6 e2 T
            print (Str);
+ T+ j2 B, W. V
            Str := 'say 收好了..俺最喜欢的衣服~';3 {  }: x3 w( \9 U
            print (Str);
5 M* l3 x2 F! j9 r# ?! T6 g
            exit;$ Q$ N( r7 f* }, a: O
         end;
% u& }3 f+ v% D1 T/ T! C
* B/ x# V4 \$ s. X& H, g% F
//判断结束语句
# V& v+ J- c1 P7 G& f2 k6 f4 ?
      end;
) G6 J; f% q- Z: [7 ~2 ]
      exit;
9 N" Q8 ^/ d+ s  s' L& E
5 e% b3 Y8 v# D8 |2 K# V2 d8 |
end;0 R- v8 r, ~* B$ a( Y/ W) i( C

& b+ v" C; ^  @, {3 L9 H" O
end.7 _: y8 G- N0 C
: E! j7 @; G8 S7 x8 d. ^
end;
" ?0 W9 G1 v) n, z1 i  r( G
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

Powered by Discuz!X3.4 ©2001-2013 Comsenz Inc.闽公网安备 35099902000100号增值电信业务经营许可证 闽B2-20220593 闽ICP备2023014375号