游客您好
  • 点击联系客服

    在线时间: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 m: v# R7 k" z( x  n
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
# W4 L% |6 k7 w1 g- X来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
0 |+ t2 `. _3 q, |- W" @1 L3 m3 ~收集这些材料交给屠夫,他会奖励你东西
) I0 b7 T  j6 c- n+ [这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。, W0 K: ~) `( H' d
; j9 z3 P3 c9 q8 y3 |  M
目的:
0 W+ Z! z. D9 h# |体会最基本的活动都是怎么设计的4 y5 `" v4 E& h/ g
) e- j( D4 y# f! ]# M3 ?2 R9 C5 I
知识点:4 e, }  x6 C2 z' e
1、检测包裹里的物品# e: j: ?* k9 f5 L6 y/ c& ?
2、检测包裹空间
. I" Z' _  x( X/ E' `0 q5 d8 E- b3、给与物品0 E8 F( C9 M$ C6 M2 B2 b) Y
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。8 J2 W/ p5 w" g% Z; |
2 L4 `3 t1 s3 X6 I" S! J
unit 屠夫;
: C9 T1 {1 m( Q1 s# C

( m) s: m2 Q2 O- k9 F5 n0 R1 K
//下面的是通用的调用程序内建的函数。每个脚本都有的。
/ _: y+ s" D! T$ V$ \
' D8 l3 i9 y+ {" r, e
inte**ce$ B. @+ h" h, J

, ~6 ]- C2 M+ w5 l* Y6 u: T
function  GetToken (aStr, aToken, aSep : String) : String;
! v& E/ a9 c- [4 i7 |( f  m( h( u
function  CompareStr (aStr1, aStr2 : String) : Boolean;: G7 Q$ ~( }* g$ o8 f) d
function  callfunc (aText: string): string;
. t; W$ I+ A0 H- V8 R9 D
procedure print (aText: string);/ \1 E! h0 ^. h4 }& p* M
function  Random (aScope: integer): integer;
- ?2 i7 }6 O/ w
function  Length (aText: string): integer;
$ w! m7 r& q7 o8 |9 k
procedure Inc (aInt: integer);
/ H- [2 p7 y2 P* r8 p
procedure Dec (aInt: integer);
$ S; j- M7 i" Z9 e6 J- B* @9 d
function  StrToInt (astr: string): integer;
9 F5 `2 W  g% M0 y: m" q
function  IntToStr (aInt: integer): string;
+ H; I/ y1 }7 J  U7 h
procedure exit;) Y( `6 x- w* B8 P2 ]+ p
$ E, u, x, r  ]0 C7 e5 P- r
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
4 Z8 ]. W$ {  X" P

; o) b: r7 c: k# ?" U
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou# b# J3 M1 z" B5 d
! j( t6 I$ i4 K3 z1 L8 y
//第二句的意思是当左键单击的时候响应,
6 z- X) Y* g1 l/ m" G8 ]1 |

# p7 ^8 d) k9 m- q4 ~  a
procedure OnGetResult (aStr : String);
$ C/ x! f' g& d
procedure OnLeftClick (aStr : String);
+ Q- ^0 `# @5 P) S( C$ _

3 o6 m( _0 k7 f6 S6 c  q" W# ~
//以上是脚本的头部,下面是脚本的主体部分
8 l8 U# s5 k) v( X5 \
8 d, a% \  ]7 i3 h4 k0 _
implementation
6 Z, [& M, A$ N- {1 C( D% w0 E
: e; W* J! S1 h6 H% G' Q$ y* f, i$ U+ J
//当左键单击时
5 O9 q& ~9 ]" T

/ f6 }& d$ `- E% }5 X8 l! V
procedure OnLeftClick (aStr : String);
; O4 u# w) n' Z* a( P( `; y
9 a% ?% c) Y, B' g3 K; ?
//声明变量的类型: ?& E" N' a4 ~. i: A: `
var
+ I5 U3 @* r# [
4 M; T( V2 [+ J! \7 I9 T
//Str变量为字符串型
% z* E2 J3 h1 p9 b6 e
   Str : String;# A. c$ R- H3 @5 i6 S: E# ^5 _7 q
! z* k6 @5 z- K9 a' @% G
//Race变量为整型& u7 S+ I8 v6 `1 w& v& J
   Race : Integer;# H  U# L" ~3 c) }# J
begin
' I1 E0 ~3 l5 F. {0 k8 ^8 V, C5 q
$ n+ }1 B5 b0 E8 K' Q1 Y
//获取点击者的种族
7 b( R5 I$ J: o& K9 n6 }% K
   Str := callfunc ('getsenderrace');* z( j0 ^0 E( k( P9 A

' p8 l4 W" |: m9 l! ~' a
//将获取的值由字符串型转换成整型
* i7 T" ~% O+ ~
   Race := StrToInt (Str);
: s" S" ?7 I2 L, @# E( ]
) v+ w( [7 D! c$ {
//如果种族为1,这里种族为1代表是玩家
% f$ W' N9 \6 R1 e2 h( G2 f& n
   if Race = 1 then begin
. P- i4 }0 ]; y9 G, i% K

. D" A$ B, q6 R$ |2 v
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
, ?& P/ _3 Y# B) Z
      Str := 'showwindow .\help\屠夫.txt 1';
) p/ p( [0 a0 }
      print (Str);, D4 [' }5 l' c2 k( M3 G  ^( D9 W1 C
) O$ o+ @" F" N) {% q
//小判断结束
, u6 j6 T9 G% ?$ w" }2 A7 [/ E
      exit; : j3 C: D/ P; k: a" h9 Y0 n
   end;
7 _! R1 a, b0 A1 v

# S8 u/ J, X9 T; w1 G
//一个语句段结束
7 o  p/ I( _6 Z, L
end;5 j! D! I1 @3 h2 ?6 @  b5 _
! F* w: V; ^. |4 N4 M: L
//另一个语句段开始
! T, f2 I0 @5 [6 m/ O2 x3 M3 e

6 b  h* O- F- U6 N4 q8 N
//当从Help文件里反馈回命令参数时,做出响应7 F# j' h8 w. A; o' _. L" ?& Q
) e( x, l0 D4 S
procedure OnGetResult (aStr : String);3 i0 n) r/ T, t9 Q/ `1 l# p
var, z& ?, M; i0 v* z% @# ?% D3 K; p# }
   Str, Name : String;0 z% Z& r' I, E% C
begin
* R& S$ H2 e3 f# g

; u, G- R( l& \4 c7 c
//当反馈参数为close的时候就关闭对话框
3 H, `, U5 |1 E6 `
   if aStr = 'close' then begin
. K& t3 c: M7 I# ]' V
      exit;! b" ^7 p" {! }# f! D; D! N
   end;# s6 v. s( ~5 S# r

0 m1 K! F8 t7 x/ D9 j
//当玩家选择niujiao 的命令时# `8 Q5 O+ o* _8 S9 s$ R
! O4 {0 u/ }7 G6 |8 W
   if aStr = 'niujiao' then begin6 i3 W/ E, `% c6 F4 |. |7 _* D
( j; t4 i& z4 u% }
//检测背包里是否有牛角
& K% P, j; G* o% B5 a- R
      Str := callfunc ('getsenderitemexistence 牛角:1');: K$ F1 Y2 Z% T, f

  |* |9 ~4 T% ~& U: ]9 m
//如果反馈信息为假,也就是没有5 i2 G; _# ?( \7 Q6 C% i
      if Str = 'false' then begin+ q- w, X$ o! z& E

7 W7 R/ |; F4 p& o: i
//屠夫说话, U0 l1 P" J5 |* N& `
         Str := 'say 快弄牛角再说';4 X, p7 `! x3 \$ ^" S
         print (Str);* @! B# ^3 d! X4 H5 {& l

# }& }1 U! m4 r6 v3 B: V
//检测结束/ @8 H2 O- u6 O* Z
         exit;- H& S* m, _- z) x1 @$ x
      end;5 y* l4 v- X4 A) h5 S
$ b2 k; ]+ O" z/ H/ m9 H0 X: |: B) P
//如果有的话就继续执行下面的& Q8 ^; q5 P) }. h

; w0 I3 k0 B$ Z+ `/ i# G
         if Str = 'true' then begin8 H6 ?  J6 a5 ~" y5 r3 G0 t: A( ]# v
- W$ O, I3 g2 h! e+ V; s; w/ u
//检测背包是否还有空位置/ |1 U4 K$ Q% e& z: y
            Str := callfunc ('checkenoughspace');2 w0 W4 {- V1 X! X

9 x  C3 t; R7 ~  ~
//如果返回值为假,也就是没有
) ?) d) o& X9 k2 B3 A6 M
            if Str = 'false' then begin
7 [. d, |0 D" P& N4 Y

& k/ J) X/ r0 I+ ~- a' n/ c5 {- m9 x
//那么就提示物品兰已满" h; [, b3 R1 f# `% }2 q- P, M
               print ('say 物品栏已满');8 E6 W3 r  R" @, {1 ^: ~

" Z, C1 {0 U! E; c3 v
//检测结束) T3 _8 r' \: c' d
               exit;+ R2 c5 C7 _3 W) r* l- e
            end;7 S/ m3 }! W% j# {0 y+ j* R) r

) J3 Y6 i* e. N% G2 [
//如果背包有空位置,那么继续9 _5 p* I4 H: U8 v" y
/ H* r5 J9 i2 H( ?& S
//没收牛角
0 _6 a! k" `! ^7 K2 J+ A9 B

( g; g; q! ^! r8 ?1 T* L+ H0 i
            Str := 'getsenderitem 牛角:1';
! W: |& t$ c* `: W! c) V9 C
            print (Str);
1 ^% V9 R+ t! n% _! D2 a- U

) @8 Q8 y  W# t  O4 r
//给牛俊弓服
  Y( t: `+ a4 W0 W" ~2 W+ q
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
2 Z. Z3 e) d4 C+ d* {6 T8 C# C( Q
            print (Str);
" M" k1 p# C1 E* R! G
            Str := 'say 收好了..俺最喜欢的衣服~';
, c% E5 t) N) c( X) ~: M" U
            print (Str);6 D5 _: L8 Y3 M; T; U
            exit;
: t$ O& u/ F2 R. R3 B7 o1 ?; V- U
         end;) P0 b/ f& t: B8 \$ R" }4 ]

( A! E  [7 X2 B# R% Z- r
//判断结束语句
" {7 c" Q" P9 a- z6 o- A
      end;* i) r5 C4 o3 d2 ^6 T: w. c
      exit;  }4 i$ ~8 z' F! n7 }
2 K) Q8 U) A- z( [' q
end;0 S" `3 e& m; F9 G4 b  D
9 z) D, B% }+ E. U. a# C2 g
end.
# M' c. K( z* F* A
+ s4 r1 E& t+ p5 O
end;

. }3 I# \. ~: ^  _7 e; v
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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