游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
  V5 A2 U5 ^9 M  B0 m9 x出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!2 W$ e/ k4 u8 D  C( @& G& v; V
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
0 f# V8 g1 ~- h收集这些材料交给屠夫,他会奖励你东西
6 t3 Z+ {$ q+ J4 \+ M; x$ q这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。) i5 G& C) i+ k# }$ ?- H: l) A& v
8 `' Z7 |7 w6 {" ?2 y
目的:
  t, M# Z# h; U体会最基本的活动都是怎么设计的
) L1 h# s7 l% [- D* ^: W( |8 i8 |. u' P
知识点:5 s! l, N- |2 k% T5 k- F
1、检测包裹里的物品$ o' r+ G0 n2 L. k2 e
2、检测包裹空间
9 a% w, r& a$ L3、给与物品
9 ~/ [% O) d' k; M! ^4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。% m: m+ F' a  R8 ^+ J& y
2 Z4 L$ Z: H+ l& {) O5 g1 B3 I/ O
unit 屠夫;
' N0 {1 N6 P2 L* r" X

8 S- h* p- V$ u) m* n4 i6 \
//下面的是通用的调用程序内建的函数。每个脚本都有的。) T" r/ _- B+ T* B9 E9 ]! B' `& M2 A
" k* [' W3 V$ V( u  l6 ~, |
inte**ce! ^  z7 h0 w& C
0 o- M2 F  q5 `* \2 ^: y3 m- y
function  GetToken (aStr, aToken, aSep : String) : String;
$ ^7 m1 y+ [$ \* Z
function  CompareStr (aStr1, aStr2 : String) : Boolean;
; y1 w6 P6 W* \* t
function  callfunc (aText: string): string;
( k/ L) l. V8 o. {
procedure print (aText: string);" g# ~* p: Z# {6 w8 n
function  Random (aScope: integer): integer;
) u* @( O0 j( F8 `8 F. J8 I
function  Length (aText: string): integer;9 Y' b1 k" `3 d1 r
procedure Inc (aInt: integer);& b% t; `7 g6 i! `" x. }
procedure Dec (aInt: integer);
, T' a# U+ e- N( I* I4 ]
function  StrToInt (astr: string): integer;1 d" r' K9 _. r# p  U$ k7 ]1 o
function  IntToStr (aInt: integer): string;
4 ^& }% V( I( M3 z4 K& V+ B
procedure exit;* B7 W* F1 C: f3 V8 K, M

6 h" _" Z1 |5 J* \- Z9 n: j
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
  _$ F8 n! ~+ `! l
) w- v, d3 `5 f
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
1 t) ~; \& Z8 O/ \; h8 j  d+ P

" h3 X3 |" \6 H8 ]. v
//第二句的意思是当左键单击的时候响应,
1 t" K% z3 Z5 Q5 i/ l1 u4 x, `# q) f

1 e! w6 x/ y0 u4 [0 w
procedure OnGetResult (aStr : String);
( x7 g( C/ W; \. O7 l
procedure OnLeftClick (aStr : String);" e9 E7 H2 g* G8 ?; R
0 x! Y& c& Z/ h7 ?* ], S5 n: G
//以上是脚本的头部,下面是脚本的主体部分6 ?8 U8 H2 J, ?6 t4 E
! O, v" V) t/ l6 F5 w
implementation6 F; k7 _6 N4 K
. w+ I, `& w0 O7 b
//当左键单击时4 P4 l5 D( g3 D: I1 A* n; ^

  s1 I6 N" H" U8 W
procedure OnLeftClick (aStr : String);3 ~( D: k4 Y' ~% i; W! a$ j
3 K/ S: l( j1 t1 u- Y+ D
//声明变量的类型0 |$ O/ K; i) `; C: i8 X  k
var
4 |/ n- q' j; z( L. ~

# M  s- [& M: i  G$ e
//Str变量为字符串型
. _2 d: y, y9 X3 a$ Q+ c
   Str : String;6 N" H3 D3 C7 R( d4 i) A+ t1 {
' @- g9 N7 Y$ E  Q0 {) l
//Race变量为整型
: B  `7 C+ D5 M! H+ m: m5 D$ J
   Race : Integer;7 V, k) j0 |/ B0 e5 H
begin3 o7 m4 G9 u6 D" R. P; y
+ a6 ^! g2 v/ |0 S9 q. J
//获取点击者的种族
0 q2 n" _5 N* ^. b3 }
   Str := callfunc ('getsenderrace');
1 B# J3 s, e9 D2 |+ W# Q
9 h4 q1 b& F" C4 v
//将获取的值由字符串型转换成整型+ c) l' L5 t( W2 Q/ f
   Race := StrToInt (Str);
  Y" m2 t$ a# s' i

7 x7 @# n& ]9 B' o
//如果种族为1,这里种族为1代表是玩家
/ O- N* }- j  R; l
   if Race = 1 then begin
( r- b2 }  P, Q" X. ]/ G; u
! e. l% L- g: d
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
4 l- B% h+ B; R! M
      Str := 'showwindow .\help\屠夫.txt 1';9 d: V1 t, e9 L$ z7 J
      print (Str);
  Y9 n. m* q( ?) v
) g# d8 Y  f( N" r2 z: N
//小判断结束
+ t4 f9 T8 d  y$ g3 p
      exit;
! B( A/ m, d& E7 |5 @2 v" D0 L
   end;5 U1 F2 U7 _2 [9 b6 a( K
; X" J. F# X* Y& k. Q! f5 S
//一个语句段结束
$ k8 h! y: E( Y$ g% T
end;
, {1 x+ n9 z5 F5 Z9 `, R# Z# k

3 x' f" o$ i1 V$ f/ S( w  B- N9 z* x
//另一个语句段开始
6 F5 }) T# x: P* t5 Y: O" l6 o: V

( p: i: S! U( x1 W
//当从Help文件里反馈回命令参数时,做出响应
& U1 _3 ^- _7 i2 l" @
' y- }6 D9 U* \
procedure OnGetResult (aStr : String);
5 q1 l, w8 o/ [0 P
var
4 i8 f7 j9 F& @1 D% |; z% `  O
   Str, Name : String;
" x$ H  Q3 n% x3 K& l' _: o
begin
6 a% P' s/ Q0 D; t& l1 m
" A% |; I0 Z  G; O2 v% e
//当反馈参数为close的时候就关闭对话框$ @# V: t) p' l* A, {* l/ t6 m
   if aStr = 'close' then begin+ b2 i( @6 V6 {  p( w( D
      exit;4 t$ k$ d. y- h6 b* V* k  C* V5 Q
   end;& i- m2 ~  s( i! [' @
& j7 Z4 }& ^8 M3 t
//当玩家选择niujiao 的命令时' N- E; Y0 ~' V6 T. n3 m
6 w# F2 Q# k+ V. {$ A' R5 q
   if aStr = 'niujiao' then begin
) D  _/ n+ _# x/ v

  _1 ?  x. i$ U4 F2 R& C& D
//检测背包里是否有牛角7 p! u* N+ B4 T; s8 O
      Str := callfunc ('getsenderitemexistence 牛角:1');; L) H/ }4 ^- l/ O9 \# r

0 M, y2 P9 ?$ i! ]
//如果反馈信息为假,也就是没有/ }8 D- \, l: X* M6 P  p0 H; y
      if Str = 'false' then begin+ k# `4 I* J9 v. w/ u

- [+ B" f+ q- M8 z5 O  q, x) S
//屠夫说话
6 J  W# b: i  }% h
         Str := 'say 快弄牛角再说';  {! M, W4 e  Y/ V# K+ X
         print (Str);
8 ^! Y& Y" Y+ f

; D9 w3 m  p" t9 o! ]# {" ?
//检测结束/ f: |3 e$ S# g5 [" c( c5 y
         exit;
6 M2 B$ K% f# D! `- v
      end;
) H# }1 E+ D" X- p

2 Z5 h8 I0 U  d* H+ v* o) b
//如果有的话就继续执行下面的
  y, O. [$ O( l2 ]' I: o

! g4 X/ @( @6 D8 q
         if Str = 'true' then begin! K4 _( V$ F4 O* V

4 Z' g4 g5 \6 p( p. N
//检测背包是否还有空位置) \. c, T  s2 d: X! x
            Str := callfunc ('checkenoughspace');9 F3 y1 ~3 y( F  _" h0 c

  c8 b+ i$ d7 [. h6 ^# v6 Q) |
//如果返回值为假,也就是没有
: K. ?6 h% W! ?1 X( U8 k7 t
            if Str = 'false' then begin* \/ N7 z* H% a) R2 s& X5 }, a

# D& n# z: [3 G# |
//那么就提示物品兰已满7 H  v7 q  }, w7 |4 a' [4 [" D9 B
               print ('say 物品栏已满');
* K, T5 J9 U  G- a- e

5 i4 l( A- a/ @$ V7 I: v
//检测结束
  V% A# Z1 ~/ Z* n* L" u
               exit;
- q! W/ `( }- b. o; T+ U& J
            end;- h* s! m8 ?" l: C* N
, u. d& v) h  U
//如果背包有空位置,那么继续
" d6 ~! C% n# w% U3 E% h

: A7 H$ d( K0 L' n2 m- p7 M
//没收牛角
# \2 N6 \% b2 m" E9 B& T

6 V, z+ b) D9 ~) X3 G" v
            Str := 'getsenderitem 牛角:1';
  z! Q: M# @2 d2 g
            print (Str);
9 d2 l) I# s- n8 q; b/ F8 K
/ A$ w: l: h7 T4 [+ `5 n2 c6 F  I. W0 ^
//给牛俊弓服6 {! r. ~! H9 C
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';3 i) v) E1 i2 T8 O$ X
            print (Str);
# z: \; ~  t( X6 `6 w
            Str := 'say 收好了..俺最喜欢的衣服~';! Q2 B3 e) G& f1 I
            print (Str);
( P" P2 v( i* T
            exit;" I" H6 y" U+ A" o* X/ X' L
         end;  b8 [  D8 {9 w' R# Y4 Z" X1 n* l3 [
, G/ u0 P  u' e! x  i1 p3 E# _
//判断结束语句/ x- [/ T6 E: k2 q; j4 g
      end;+ H9 z" a7 h$ A6 K. V. L
      exit;
1 r: D$ L" V% }' w
/ @( Q% l& ]& K
end;
. O  f9 v3 s2 [
( w/ w/ W" }" v4 Q2 V  S6 D
end.
1 A! y( }/ Y' B. C# s6 L3 M* S& s

3 C; Z6 W, T) m( h
end;
- e! L) q$ U+ }  X  N- ]9 X+ T8 |
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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