游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:% ^4 j: ~3 C! q8 \  z
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!' o2 ~% ^6 z3 b, i4 W
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)/ P! ]3 J, ~2 I5 r
收集这些材料交给屠夫,他会奖励你东西! z! l5 P8 P8 b: O. X, ]7 m) M
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。  T5 W  \! P! A5 l. @4 G) z

; O) @+ R' [9 g5 n5 v- \- i目的:
/ m! M' w2 ^* B+ z. H. q, N体会最基本的活动都是怎么设计的
) ^% W# |. d- T. r. }: ]/ W* I4 u/ t% E$ T
知识点:
/ h' L% p! T$ L6 L) L- q1、检测包裹里的物品
" u+ z, n* _9 T  }" v8 p& w2、检测包裹空间* f* {7 J" }7 f9 }4 {
3、给与物品( i4 t8 p$ V7 P' f0 ]6 N' _" @
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
' A( i: k5 @7 q5 n

, i8 e1 p! n+ d! j3 G
unit 屠夫;
4 c* j4 V- _3 O

' E5 s8 r- U5 r  Q
//下面的是通用的调用程序内建的函数。每个脚本都有的。7 O6 w$ R9 ~1 E8 f3 h0 g) Y3 @. X2 I

/ y+ i8 D' Y" x' u
inte**ce2 b8 ]5 F/ g/ d; c! |

8 b4 v( e6 l+ K& n8 E4 R
function  GetToken (aStr, aToken, aSep : String) : String;
9 j1 B1 g* }* E3 U3 ^
function  CompareStr (aStr1, aStr2 : String) : Boolean;
; w2 N7 c. f0 c+ d3 F* r  ^
function  callfunc (aText: string): string;
/ ?1 E; O) n+ s2 K: t- d
procedure print (aText: string);
# c' v% Q5 G' |% {. J2 y
function  Random (aScope: integer): integer;
* V/ T; ^, R- z4 V9 b. h, L4 s3 g
function  Length (aText: string): integer;0 o6 Q2 o" _7 `
procedure Inc (aInt: integer);
% _7 G) D/ o2 d$ Q
procedure Dec (aInt: integer);0 T. _! q1 d. r) |
function  StrToInt (astr: string): integer;. {% E" d0 P  Z
function  IntToStr (aInt: integer): string;
* s$ K* M5 J9 u7 e+ R3 M
procedure exit;6 m( P  c% t( [
$ ?2 B6 ^1 o) T9 h2 j, v/ t
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
3 O3 Y2 f3 \- F

/ @" v5 C! l- J, e* z
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
' L2 {7 {  `1 P/ L4 n: t/ }

- T3 w0 w5 r# u& K  }! S9 p8 B* V
//第二句的意思是当左键单击的时候响应,5 g+ O4 I& E& p- J  @" K% Q

& ?' `2 O( s' ^& W. _" ~+ D
procedure OnGetResult (aStr : String);; q2 `5 |2 ]' P5 C
procedure OnLeftClick (aStr : String);
/ M2 x/ n  {6 B9 y; }* I% j9 @. F0 ^
: S% V; P  O0 x% E" e) ^& A
//以上是脚本的头部,下面是脚本的主体部分
* [. O7 X/ [' b6 v. D2 h5 o" d

3 Q* g% D3 ]3 w" M% H
implementation& Z& }2 c1 K0 K1 j6 o0 `3 g

5 k, B4 i6 N+ D2 j6 p& w; t
//当左键单击时
+ l3 f" B7 S  Q6 h/ R
. v' l5 i1 F% K- B  [" m
procedure OnLeftClick (aStr : String);1 t% a6 o5 u1 I! P; |6 O2 Y: x' {

5 e7 O" h- \$ H! m. s* G, t
//声明变量的类型# `8 g2 K6 K7 w: ~
var
/ }5 H6 X( B7 X( z$ Z* ^4 e

# r' |! F% u; ]3 P9 }! B
//Str变量为字符串型) V& g$ n0 L/ a& j
   Str : String;" ]" ]# V( _9 _) O9 P: k) p1 Q

2 D* H% c* z$ n
//Race变量为整型! N" w; [$ _6 W" j* ^+ a
   Race : Integer;. _" ?) N8 M8 M* E
begin
& e7 c6 d1 I6 B' \
3 ]2 I# h+ R/ y6 i, H2 v4 n2 v
//获取点击者的种族
4 m$ M0 u6 [) M' r
   Str := callfunc ('getsenderrace');2 F: j9 c2 p) c2 n- j  W% }. U" i/ L

, ~$ m) N# u% q9 v5 R" F1 m0 }
//将获取的值由字符串型转换成整型/ ~7 k5 f0 r+ ~0 G6 F5 ^- f
   Race := StrToInt (Str);" T1 K: N, ~  o6 G" h# [

6 a8 [; a. E! U8 J( R
//如果种族为1,这里种族为1代表是玩家8 i! a9 Y) Z* i& E) d  I
   if Race = 1 then begin
- c" P* h4 c9 F5 \
) b# t7 Z) t4 E7 E8 {& `
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种+ P9 r6 [7 p' u7 e! O4 N
      Str := 'showwindow .\help\屠夫.txt 1';/ D0 \6 K/ Q# J
      print (Str);* P/ b5 a5 \( `" J' E

: M3 _- f  ?2 D, \3 `
//小判断结束9 k+ u! ~( J# M2 R
      exit;
" W# J8 ~9 Y3 @3 l8 p0 _3 ?
   end;: j) Q  }$ }3 A# T5 a

9 e5 o9 M9 f2 N
//一个语句段结束
' v0 G" n, A' e  r3 \# u
end;3 H" |% T$ R2 N# F  W9 Y! S# ?

2 Z; m1 T# ~" r+ I
//另一个语句段开始
; \( Z$ N* X3 h

  Y$ d  l% X: t) g/ F" Z3 Q
//当从Help文件里反馈回命令参数时,做出响应
- s0 q% ?# t; e6 ~

9 R4 q/ d! M. u. }1 w3 T. o$ f3 ]
procedure OnGetResult (aStr : String);
* u. \  K. H$ |
var- i* s* l* H" ^/ {5 }6 T0 j7 W
   Str, Name : String;
' M7 v/ ?! c+ _5 q7 m
begin* E6 i, h3 S2 q
- t" n- ^) g- {$ g& R( p: g# t9 Q
//当反馈参数为close的时候就关闭对话框8 |+ P# i; R+ X: M
   if aStr = 'close' then begin
& M: r+ s& e) _; m9 ]; c5 t
      exit;
2 y. e+ N9 D2 c% y
   end;
$ U* B* ^/ q+ e# U7 q

' Q* J: U% ?  m/ ?. r7 _
//当玩家选择niujiao 的命令时
' U1 ~$ p0 Q8 S9 H

/ c: n: _# r* |5 @. U& @4 Z) }
   if aStr = 'niujiao' then begin! q, ]( W8 ^0 X( c
* k- e- s2 W( G. w& u
//检测背包里是否有牛角: _. J1 ]8 d7 i  o9 T: V  k1 n9 c
      Str := callfunc ('getsenderitemexistence 牛角:1');" q2 A, {. b7 c1 y/ H3 [

& k2 S/ \$ D' [% x+ J* q: g4 o$ i
//如果反馈信息为假,也就是没有
% X6 S1 L, |% t, c  G
      if Str = 'false' then begin6 Q+ \5 [/ W; S, c
* S4 T- m- ^+ ^- T
//屠夫说话
3 }5 e6 P1 _, k8 n/ D7 r
         Str := 'say 快弄牛角再说';& m1 {& W( h$ F4 x0 L
         print (Str);
, H9 |5 o" w' H# R0 Z5 o

2 A' p' m' _* U
//检测结束
* I4 S% G: p" M
         exit;
# Y4 a5 g& u5 U( e' t2 a6 ]
      end;
) {" V" F; J4 R$ g- \$ S
. o) m9 ^" r) o
//如果有的话就继续执行下面的
. }3 j0 `6 L* n+ x  B
- v# g, a2 r. T8 a% `2 I
         if Str = 'true' then begin! L* I! h& Y0 k7 @8 V9 k

7 b7 n2 w& w* n; d( k2 s2 a
//检测背包是否还有空位置
; p. O1 ]- `3 t; U% H
            Str := callfunc ('checkenoughspace');
! B. C; Q" l  n
) h3 L# K* _+ e3 x, c' i. [
//如果返回值为假,也就是没有9 y/ A3 D0 u7 q$ l$ v1 s8 t* X
            if Str = 'false' then begin' ?- M# v3 m2 n# I' j5 b

; q, l" f! U2 E& q
//那么就提示物品兰已满0 j6 p. c6 ]$ v
               print ('say 物品栏已满');% R- i& \# Q! \! g8 u( V

( v! r9 |* o+ t$ t. P, d
//检测结束# o9 a5 ^' ^; {: [; ~/ e" v
               exit;
6 {+ s+ @# V. l$ K( z
            end;2 q- S( q4 S" V# C9 s
3 x: Y0 s' U' a4 |& T  ^
//如果背包有空位置,那么继续
/ w, k6 {5 `9 k$ p/ q% \5 x  h6 G

% z5 ~* [6 k4 g; y" t
//没收牛角& S" K1 I2 t( t) h

2 }* d' x5 ~9 Q8 G) W
            Str := 'getsenderitem 牛角:1';
- a! [2 C9 _! G6 v& W3 f
            print (Str);
5 q) q9 D/ U( y4 e
6 F7 f1 k; _7 ?( V' m) Z! E
//给牛俊弓服
. S0 N5 M- s+ v) v2 P1 |' t
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';) r$ B- P9 |7 d- Z# ]
            print (Str);! m7 K3 P1 @: N. j7 T* z
            Str := 'say 收好了..俺最喜欢的衣服~';% c8 a5 w5 v# z
            print (Str);) k% q  G. U0 A7 [; w3 ^% I6 B
            exit;; e! |4 Q6 n; g0 d- U" ~/ `. }
         end;
" w5 @: N/ s# k) j4 v' F' ?9 J
5 S8 l7 n1 T6 m
//判断结束语句7 I& @& m# Q- B: h
      end;
% e1 ^  @7 n  F" v" U
      exit;
4 M9 ~+ p; @2 P4 M7 n
" Z+ a% {2 a* s
end;
) H/ Z+ P1 u5 y0 x( m6 r$ O
( q1 W: g: r2 _, |* u! Q
end.- V9 X/ D# F/ Z6 j9 o; ]
1 g& t. W, A: i* y4 q
end;
3 }' p* i9 E+ @. w/ G2 x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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