游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:* v! ^: Z0 t3 \4 u3 {# `3 Q
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
$ a; `  q4 [9 o+ H$ x; \来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍): w' K8 _' b$ ]/ j. {% x8 A# c
收集这些材料交给屠夫,他会奖励你东西3 ?, k+ b; s: r5 P
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。( o# y2 Q8 p! {8 a" x

1 \: c4 s$ B% ~2 j5 @% o目的:0 B/ B7 y' Y9 j' b
体会最基本的活动都是怎么设计的5 X, [! f* r: H8 v+ q8 w

, d; l7 W% n, S知识点:4 J8 _. m  S2 Q0 Z; ]# _( L* o; b
1、检测包裹里的物品
7 _: u' o! o4 o9 m* P- E4 T2、检测包裹空间
# }  d2 y, v- H+ G* L9 F6 a3、给与物品7 E+ r1 I) h0 D) J- L
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
& H; G2 U, @6 x9 t

1 j4 I6 \: s  o& N8 ?* X) p8 a
unit 屠夫;) h# ~6 ?1 a: S& @+ }
; H6 s/ u- E+ n. e: F, c2 s  _
//下面的是通用的调用程序内建的函数。每个脚本都有的。, X/ }" Y$ |1 g8 [9 Z4 Y2 e  }' e
' A  m2 N! C- y) o) q" w
inte**ce
. v7 b- Q! o% p6 w: Z

5 ?+ W3 p4 \! |# f) M6 b3 u' Q
function  GetToken (aStr, aToken, aSep : String) : String;3 C( L# I& v) k) R! E
function  CompareStr (aStr1, aStr2 : String) : Boolean;2 x$ e; r! B; k8 X; O6 B( u  o
function  callfunc (aText: string): string;
2 c9 ^1 ]' M5 c; ]
procedure print (aText: string);2 O8 j0 N+ x& v
function  Random (aScope: integer): integer;9 l7 ?, e: u: z6 \) E4 L
function  Length (aText: string): integer;: ]; g2 `% I5 T6 i* ^9 B% y8 _
procedure Inc (aInt: integer);
0 p: O2 H1 l  G  P6 r; d6 x1 _
procedure Dec (aInt: integer);
( r( s* q% M9 X6 D
function  StrToInt (astr: string): integer;- D5 c. m) h; H# M6 M
function  IntToStr (aInt: integer): string;
- a, @. s, v4 Z4 k( z
procedure exit;
! o# j( K, z& h5 v! G  g  G

( g6 k: k, C& X0 _! w6 b; R
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么5 \/ I' s! T( u- H5 ^

4 i, G2 M# ?6 n$ S9 B% h, K( @+ X
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou% B% ^- E2 {2 U
, f! g. a) N) n
//第二句的意思是当左键单击的时候响应,
9 W% U7 H0 J. v
; ~3 ]: R" s, f" U) F
procedure OnGetResult (aStr : String);2 [! B; h7 n3 H8 ?! D
procedure OnLeftClick (aStr : String);
" ?1 J( R+ j$ z/ y$ ^5 g

% \' j% N9 P% k
//以上是脚本的头部,下面是脚本的主体部分0 o4 {0 r+ W) F, k. t* s- U2 M
7 W, q; s* p6 [
implementation
0 _$ d6 q2 [: W/ M1 E' _
, K5 K- @# d2 \7 L# p( p9 c
//当左键单击时
: `% o$ F3 Y$ T: S( q: ?

; i4 v8 A7 X  W. O
procedure OnLeftClick (aStr : String);
2 _7 H+ E1 G) B4 n
( s4 C) z0 S* i# H: N
//声明变量的类型* ?/ H/ p2 P3 U6 e/ X  s
var
) O9 Z+ N4 d' ^6 C6 S
) ?. Y% L9 q; u3 u+ Z% u
//Str变量为字符串型7 O! v" G& h# l" J/ w$ J8 L
   Str : String;
5 S: N7 m5 S4 F# C

+ r% n% }0 }- ?* P
//Race变量为整型- G+ {$ v2 V7 I! K1 D, v
   Race : Integer;! J& d) v' _7 ~& M/ t
begin
3 ?- c+ H' v- X+ v* q4 k5 y& `; G
" z: A9 C2 o$ s0 t/ g4 G
//获取点击者的种族
  j% K. B) ]2 ?& l" y+ x3 c. d
   Str := callfunc ('getsenderrace');
6 s) |9 D' \: d, n; r, L8 ~/ E5 Z

0 n/ h  w$ `2 V
//将获取的值由字符串型转换成整型
5 X. k# M( X! G- j) T  @
   Race := StrToInt (Str);
. W. Y" n- H0 z
8 H9 @+ }6 t$ Q8 K
//如果种族为1,这里种族为1代表是玩家
5 ]7 E; Z  m6 K1 G& }* Y5 I
   if Race = 1 then begin" j6 {, Q9 w" y# b9 k- V

- u$ q- B- r6 q- [2 {" k% P: O
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种# F5 J% s3 [6 {% R& D6 a8 T: f' k
      Str := 'showwindow .\help\屠夫.txt 1';
  q- y7 J8 ?7 i, Z4 I
      print (Str);/ ~/ s* [. \2 D6 h. a3 f

# |* v! a4 A8 R- {& d
//小判断结束9 L8 D5 H. a, r3 F
      exit; 8 }$ Q, P2 \/ ]
   end;
) T1 M" ]' {/ D  h9 _
# p2 m- O( R, E- v
//一个语句段结束
" R, T% i, v2 p  k% n# N2 \4 ~; T
end;
5 b- m$ l  t& ^: v! K( r: ]: d

- S' ?7 @- y$ O3 a9 h$ `
//另一个语句段开始$ Z) h1 N( n& o* X- o' t
% @. Z: M1 o/ H0 p
//当从Help文件里反馈回命令参数时,做出响应; B  @7 s9 m% ]4 O/ a2 K
6 a. W& C' s6 Z; V0 X! g' ^0 L
procedure OnGetResult (aStr : String);3 O" u% I7 I' d5 {
var% p6 Z3 h7 {8 q( p% z
   Str, Name : String;
: h' ^/ h+ }  A# f
begin
* a! b( Y% b4 m/ L  e* R
# o7 f1 @; B2 R' m  C7 \8 `
//当反馈参数为close的时候就关闭对话框
8 W( j3 M0 N" p
   if aStr = 'close' then begin
+ G% @) I/ K/ P9 B
      exit;
+ d. a& o7 g4 k8 x- ]& @, ~
   end;6 F" Z1 a2 w. ]. N, E' A+ w$ r- f
+ r9 E8 K5 r0 ]3 r
//当玩家选择niujiao 的命令时
3 l" Q( v) q( s% T

6 ~: S0 I, _6 @  Y# m  X: s
   if aStr = 'niujiao' then begin2 L* Z" I2 K$ G+ z

- E: f! D0 S# G( g- ^' R
//检测背包里是否有牛角
+ O9 X' n  v) [
      Str := callfunc ('getsenderitemexistence 牛角:1');1 L. v7 x$ Y8 }/ k3 `) _3 T& H; a) T
* m" c' [( s$ q/ J' O: m
//如果反馈信息为假,也就是没有
+ |5 A, x2 _# f2 O: D6 D9 \
      if Str = 'false' then begin- ]2 A1 t: q, o+ W3 v, J( F" v

  v" d  u, s4 K$ D9 N
//屠夫说话6 f, t, q) W2 Q+ I3 @8 c4 u
         Str := 'say 快弄牛角再说';
# h" O2 E6 y  M9 w6 k0 F
         print (Str);
3 B* m5 J; K  {; a6 R

) X4 Y- P: ?$ E
//检测结束. |+ ~& m% Y$ p' j4 M4 `
         exit;' i% H/ x7 C- I# e
      end;
4 v* d$ N5 p; y( I
1 E/ }- Q- X. y8 c# K" J
//如果有的话就继续执行下面的
& K2 L" _% b# u
) L9 Z9 M4 _; V2 A
         if Str = 'true' then begin
+ z2 p/ ~/ D- ?# w! U

2 R5 I) B8 |% j, s
//检测背包是否还有空位置
3 H* Y* z" ?& a  @/ s
            Str := callfunc ('checkenoughspace');
6 G& M: d1 L8 m) Q
9 J* E6 E. F" d' A: Z, U$ b% h
//如果返回值为假,也就是没有
0 d) O: L0 m6 b% g: a' J
            if Str = 'false' then begin( J( A) q3 X* W6 H8 a' t1 v* T

4 ^) U1 Y9 m7 E7 k. J; v
//那么就提示物品兰已满
  G! W0 r) W6 H1 l5 P
               print ('say 物品栏已满');
" d. ?! Z4 \0 g5 D
3 I  @, `; s+ [0 z0 K
//检测结束
7 t2 S2 C$ i* i2 K$ T
               exit;
! ~2 w, t1 [4 G' t) x2 }( \  _7 L
            end;' _. c( z- o4 |( c6 X/ k3 V5 B

# s6 Y# t* J2 n& Y: g6 }
//如果背包有空位置,那么继续
5 k& p+ i6 k3 G8 P* ^; z5 m/ b% e" E, ?
: d/ O9 ]6 h- u
//没收牛角; n. Q- G, p8 l7 ~
/ p; D5 M# t( G! @3 a& E
            Str := 'getsenderitem 牛角:1';' c* F$ K% S" z) o! j- O& K/ Z
            print (Str);" Q- Y1 x) T4 v

$ T- f/ W. S, d" k1 Q* n
//给牛俊弓服
+ ^6 B: _' S) M4 ^; k/ q, k# m% F
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
6 w0 T. I' w7 c7 S6 a! n3 P4 }
            print (Str);0 J7 `8 U( L2 r$ d& @: m8 D) S$ v
            Str := 'say 收好了..俺最喜欢的衣服~';  i) e2 w; P8 G
            print (Str);
  A! }" C6 w1 N+ W# X! o
            exit;
# R/ s6 l6 L9 V* m2 N7 y3 j
         end;
7 ~! w8 n5 Y8 c  c4 y

2 W- Y0 Q, J! P& h' ~
//判断结束语句
7 p4 L1 j2 H  v, I: P
      end;
$ `! @* d9 v! C3 R
      exit;
4 I% v9 j* q6 ^: i' H) I
/ p/ A; m: T& `; ]& M$ k
end;% A3 S' [! m3 q
: {5 C2 O. H+ }) L6 i( j) H
end.. K# _6 D6 n9 s: W( c4 m! P' }
& f; Q0 L* c4 A( o, W
end;

+ Y8 b* a5 R6 H' d
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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