游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
3 V7 b- S% e1 q. J6 g) ?出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!. w+ p' k' g* Q* c
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)- M! H4 Y1 s- K+ e" a9 I, p5 c; |
收集这些材料交给屠夫,他会奖励你东西
: y1 f3 Q7 P, t6 u这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
9 c4 v. \+ t1 N2 F- Y
, x* ^  _6 n' u目的:
6 u& t7 F" Z2 ]2 _2 m- Y体会最基本的活动都是怎么设计的
% ]' d5 a7 x. m
. F* E" u0 n) L1 R4 S- `5 C知识点:
' w- K) {# q) ]2 o) |; U5 `, \" @1、检测包裹里的物品( }# {- @. R0 M2 h, Y2 V
2、检测包裹空间. }5 F: b1 E1 F: Z5 b5 r$ D1 A! Y, z
3、给与物品- W# Z/ R/ G/ i4 `9 v- S
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
% F! r+ @4 ?6 ]6 L; c6 W
3 F. K7 }$ L, e9 p
unit 屠夫;
$ Y$ I, n3 N. u/ E- |$ a
5 G2 b0 q( V4 }% z1 d
//下面的是通用的调用程序内建的函数。每个脚本都有的。' l5 P8 q; _& x. n0 [" n; ]
- M9 t! r0 a5 Z# F) i$ }1 A; I
inte**ce
2 X: o# m& n! u; C1 B/ {. ^1 D7 T
( @" {. ?. }+ Q9 |
function  GetToken (aStr, aToken, aSep : String) : String;
) O' T0 K) Q+ Y
function  CompareStr (aStr1, aStr2 : String) : Boolean;2 ~. c  P+ X- l  l6 B
function  callfunc (aText: string): string;2 V2 k( @  D9 \% G! W6 O# T$ i9 o
procedure print (aText: string);
9 H* e: m% m% [8 j2 A; ]) G% y/ h
function  Random (aScope: integer): integer;
' Q  J% p, F" J, m
function  Length (aText: string): integer;! T! T' u" }. N/ f" m
procedure Inc (aInt: integer);9 d3 c) l. j$ o- D8 A/ E
procedure Dec (aInt: integer);9 N1 l: m0 k0 l% w/ A, ^
function  StrToInt (astr: string): integer;
- K, K1 y# R7 z; I9 C/ k; Q
function  IntToStr (aInt: integer): string;5 I2 @& _! u  r
procedure exit;
6 l. c7 Y, a8 o. [/ h) w

  k$ X% g7 `8 r6 K
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
4 L: M7 q2 i. g. U+ l/ G

* I9 P+ P0 c3 ?% p3 K: n2 C
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
5 v) i  t. l/ l8 X+ H
9 V2 v# {- J; j! p' I1 I+ Y
//第二句的意思是当左键单击的时候响应,
2 @8 |% J# ^9 E. z

! Y8 N2 F3 A# c- U& J' @7 s, K
procedure OnGetResult (aStr : String);$ T1 k  U, r* O& X0 M& N
procedure OnLeftClick (aStr : String);0 M7 l+ U5 \7 j$ d8 P2 G* r
9 H( Z% W/ m4 Y# d7 e
//以上是脚本的头部,下面是脚本的主体部分- k; B% m: {; B

4 u' ~! f4 U  w4 ]
implementation
( X, a: W- v/ E3 E

9 u4 E0 W5 I7 D$ d
//当左键单击时- u1 @0 @& Z* V4 g. D0 j

0 X; ^% |- o" H( _/ P' u
procedure OnLeftClick (aStr : String);
* K, ^9 i$ T; {( e5 k  h4 F
7 U7 ?( K0 a' B' O
//声明变量的类型
! j- H5 R# ~8 L# q
var
( a) |" [& j, P( o* L4 r7 T

, T4 o& I' V3 S5 ^4 E. I
//Str变量为字符串型! Y' y3 w: `( C
   Str : String;
  r: Z( h" Q9 I! f( q) \

5 s% b5 l, Z- V$ b+ Y: \3 H5 H
//Race变量为整型# J' F  h6 ^/ H3 A+ |
   Race : Integer;
7 D& ]3 K* l6 y) D. s
begin5 w2 g+ K5 C# K0 p$ t
% i, M8 U3 N2 D% v; [% N/ l- D
//获取点击者的种族; {  K1 Z& A0 ?- D, b
   Str := callfunc ('getsenderrace');# c$ t& d# y/ J5 D1 _0 t# {3 B
3 _4 c) O' N& g/ r
//将获取的值由字符串型转换成整型
3 J4 M8 P- }/ D6 P5 ^" A0 w
   Race := StrToInt (Str);
' R/ \' m( _+ ?: k- a+ I

* h; R' z" Z2 S6 q/ j5 O* R
//如果种族为1,这里种族为1代表是玩家
7 ?5 O8 w: q( U3 @5 \, |. h  [
   if Race = 1 then begin  x( R2 r; x4 R  R  e' e
! J) P' v' J( [2 ]* v7 K  A; q
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
; E# d1 @7 ?7 b# w0 k3 e% i
      Str := 'showwindow .\help\屠夫.txt 1';7 h1 R/ i" F  V: O+ \* I
      print (Str);4 n, C1 Z' Z* \+ Q' h0 B$ V4 J

! z3 E% A9 V1 i
//小判断结束: G( X- M2 ]. i) }1 U* d
      exit;
# j% B9 V/ j0 [
   end;; h8 {$ X. @% u

' D+ }/ u! E( j% q, _
//一个语句段结束
5 F$ u& O9 c. A/ c0 {9 e. j3 O
end;
/ S6 A7 O# m% C! r+ |

  R* x+ b. l0 Y4 f, w
//另一个语句段开始5 b9 m8 k  |% _. O( ]3 c

( l& a) s4 L5 g$ J
//当从Help文件里反馈回命令参数时,做出响应
  T; N  y3 @2 i7 Y. C% ?0 D0 J' @
+ g+ t6 ?% t. A% I: O9 j
procedure OnGetResult (aStr : String);
4 H9 R  X" n$ F
var
, s' X2 a! E4 A. }
   Str, Name : String;9 M* N7 r* Z5 `
begin8 P% o) Q' R2 c  ~6 d# D
: E. {9 e+ u% j8 D/ n8 E( b3 ^& J4 X
//当反馈参数为close的时候就关闭对话框
% v# [" m8 t& P4 k- M, ?
   if aStr = 'close' then begin% g# k: h9 \( m& T
      exit;
- b  d& D1 {' O% }/ M3 s- C% V8 Y
   end;- c" h5 ?2 f1 e9 U8 `

' S1 I" `$ ?5 P! F3 x
//当玩家选择niujiao 的命令时9 B6 C" p2 ?2 [; X6 k8 B

7 }7 m4 m  T# m
   if aStr = 'niujiao' then begin& v9 P% L2 [% e

9 e- z1 l% Y/ D3 d, Z& V
//检测背包里是否有牛角
* B' x+ ]9 J  Z& U; R
      Str := callfunc ('getsenderitemexistence 牛角:1');$ G0 q9 z. M( A( {+ t4 o
' x2 L  g5 N) p1 w! K+ u) O+ ]
//如果反馈信息为假,也就是没有  U9 u# @$ x2 s" m
      if Str = 'false' then begin
$ X4 t4 C  g- A/ @3 Y
$ L) @4 h2 Z7 r; g% A
//屠夫说话
6 p9 M% \3 {1 f3 t) U- U
         Str := 'say 快弄牛角再说';& |, k% _  w; i
         print (Str);/ X" I! u4 g- \; D! u$ U: c& \( C

. b" {* d2 {% b: a. f
//检测结束4 [4 h8 R. B$ C. K# g! o( n
         exit;7 D) Z% f. |5 d& p0 D
      end;
/ v) b: [5 K, ~3 l2 |: Q

4 z3 f) z# |  ]9 y. T! J9 \
//如果有的话就继续执行下面的
0 {5 {" Z% Q4 b; Q+ U  r
' Z$ E. u6 w& r6 q9 ~* V9 B
         if Str = 'true' then begin
( a# p! ], @) c9 A0 h

8 i" i4 F$ v# ?! L# x7 V1 ~) ]
//检测背包是否还有空位置0 t/ |6 s0 r$ A: l3 g: L
            Str := callfunc ('checkenoughspace');3 ~) e# ]& K% e9 v7 w0 d  i

; h# z( l$ i0 j& b: K$ Z
//如果返回值为假,也就是没有- ]4 f2 O& i4 l. _2 k
            if Str = 'false' then begin. z' m* V% c1 x

( ]; J0 ^8 H1 L; \
//那么就提示物品兰已满
* J5 z0 z; I/ `. Y2 R- c3 \+ ^
               print ('say 物品栏已满');
, `# p; H# W! p* V* C* h- S
/ N9 A- [" M$ D8 a/ }* q7 y1 j
//检测结束0 m: Z; X# l  R; p
               exit;
" Q# ~4 y3 T& S4 R+ b$ V/ \. W$ w
            end;
+ I1 U8 l8 g& r/ @, C, W& R& \* q
9 x. u/ K8 h* V7 l
//如果背包有空位置,那么继续6 W8 M. c& @& t( B6 i! a" M

. }. M6 N; |$ W) T. e
//没收牛角
2 r+ ]6 x/ P& G3 O! r
1 i% c7 ?' m) M% R. ^$ H7 N
            Str := 'getsenderitem 牛角:1';
$ K3 B! z! H- X& r! c' H' ~6 t( l
            print (Str);) U  }4 o3 P$ j7 Y3 Y1 `6 Y5 K

2 Q8 l9 @' }" G8 f& |
//给牛俊弓服9 a# m# s$ }" b3 f0 b0 c/ ?
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';  q/ C  z; x9 ]5 \. p, r* m
            print (Str);
5 c+ U7 h, H# S
            Str := 'say 收好了..俺最喜欢的衣服~';
" o+ W" N1 ^2 a& `
            print (Str);! ^5 Q/ y7 [  ?1 t$ T
            exit;
2 s( a. \* l7 D# [
         end;
! Q7 j# v& @! E$ C- ?1 s
5 N& }* H6 T+ s3 u+ o# G1 R
//判断结束语句
6 y2 e5 J* l$ [) o
      end;) p, S5 F  a( j# |1 D( c
      exit;. [) i( K- ~! K1 y( S

( i) b7 P( L2 y9 ?5 \; U; a
end;+ }/ @1 U% L9 X4 d
! Q  r* V) O1 d9 Z1 c* P; F6 l7 T
end.
( b# @; t3 T* B' J! a

/ M$ x" j$ m6 Q
end;
! P/ o5 l$ v, _& Z4 I2 |9 t
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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