游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
: ]$ s0 m& P+ `出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!% N0 V' J- r9 i
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)# ~# {; F  k5 g+ W6 E  {9 j! C
收集这些材料交给屠夫,他会奖励你东西: f8 P, T$ G  c! X
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。* \! b9 y( B: y, T
2 C8 Z3 ?; Y0 n+ q% q
目的:
5 z* D8 o0 I9 O体会最基本的活动都是怎么设计的; g$ j" B" P; Q7 c* F& }  O

4 z# ?/ z- w- x& h2 t6 Q知识点:2 }. F5 n+ y; q5 S6 C1 v
1、检测包裹里的物品) r  }! @) H2 @7 n
2、检测包裹空间. |' t0 E3 f2 `5 D3 [8 E; ~
3、给与物品5 ~( [, ^2 R9 A- |. M
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
( W6 q6 ?7 ~1 m( t3 C* J# q

; W* m9 G8 S" c. K6 ?$ S, O
unit 屠夫;3 o+ T0 K/ ?: U( h7 C4 l
. K8 O2 b  Z5 o1 d' y8 v1 t
//下面的是通用的调用程序内建的函数。每个脚本都有的。
0 H$ u, J/ U! T2 I! r
8 n& a& W" w' D: R: @
inte**ce% q. m/ a: F" R* s% |9 H# d& m
3 W# y- }  H, w1 I. R4 a
function  GetToken (aStr, aToken, aSep : String) : String;6 S) \$ c, m# T: m# N2 n2 c
function  CompareStr (aStr1, aStr2 : String) : Boolean;
( i+ S0 e' T1 v% d7 w
function  callfunc (aText: string): string;1 f1 M$ u* b6 i3 o! W" d8 w+ h  l
procedure print (aText: string);
9 J( P0 W& {+ t6 u3 o; }6 U
function  Random (aScope: integer): integer;% W  t5 z: V% d& O( f9 l$ i$ n3 ]
function  Length (aText: string): integer;
% ^: g  i$ b9 f$ h1 {  D. S# a  `
procedure Inc (aInt: integer);  F! o& ]7 J+ D, |0 x
procedure Dec (aInt: integer);
! [' S, L' M, S5 A' ?, k
function  StrToInt (astr: string): integer;& @: {) l( v% s+ Z
function  IntToStr (aInt: integer): string;
" O2 E% T2 r2 C
procedure exit;  {' p, ?* Y. L& A$ B
: J0 `; I$ |( h7 O9 a& P; a9 k4 ^
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么, ]( t! g5 }3 g" }  {
) G* b% y* u* u5 m
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
" X  ~/ F  c& y7 s1 {5 V
& Q% H1 x) C& Z* G
//第二句的意思是当左键单击的时候响应,7 I1 J" j# Y$ a: f$ m$ \1 u( U

3 y  `$ ?; {- U# c& e
procedure OnGetResult (aStr : String);
. r1 y% E- K4 U# P7 b" h
procedure OnLeftClick (aStr : String);5 [6 w# r) S& Y' F" m

/ Y  L9 P  n* ~3 D
//以上是脚本的头部,下面是脚本的主体部分4 L: j6 U, `" E' b: p# V

$ H- u! ~8 {; q" x" K- d/ C3 a
implementation9 h. `, G  C/ @% Q0 z* j) w

/ \* [5 a0 g2 T6 R5 L5 y. d' Z
//当左键单击时
+ O0 K) g7 n* L* |
  ^  Q+ k7 B1 {) k1 A. S) A7 K
procedure OnLeftClick (aStr : String);  q; ~; Y" r* ?& k
, E- n1 v4 W3 w  ^
//声明变量的类型- u  H$ F) V; u4 q5 w1 G! v* _! H
var' z1 n  ^1 T& N: I& X

! z/ q+ C9 W7 \- y" T
//Str变量为字符串型
/ `8 n" t" E7 H2 m
   Str : String;
* b! A5 c/ E( f8 L$ y, s

/ s: X0 L' M: D7 ?& F1 q- z; I- I: H
//Race变量为整型
( c0 [- i. F& w
   Race : Integer;; |2 r! R5 `. {, w, y( ~$ R# p
begin
+ G% e4 G0 b0 L/ n8 v# z: y
) T0 A& r" E' O3 |' B* {8 |% B
//获取点击者的种族7 z2 c6 s5 Q- d/ \
   Str := callfunc ('getsenderrace');2 n2 L6 P7 |* j9 b
. q  r4 B" o* x- v  J% o. D
//将获取的值由字符串型转换成整型
% ]  L  }: W) h
   Race := StrToInt (Str);
, k; _" N" z: {  g& S/ [1 N
( e, r3 \/ {, G2 k4 H; m5 q& k; Y
//如果种族为1,这里种族为1代表是玩家' m% M/ _5 G. F  h# e/ k7 E3 ?
   if Race = 1 then begin' l- [) R# k1 l1 C- W1 p
# ~* v7 s/ ^, f2 l5 {6 s
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
# p* T" }1 E" t6 j% U
      Str := 'showwindow .\help\屠夫.txt 1';
* A" S7 Z& C; K$ {
      print (Str);5 O4 Y$ r" I8 w# m' P

) K( I' u/ J9 k# o, ?) ^
//小判断结束" \. q2 H; z$ m# {6 \& G2 u
      exit;
3 `7 y9 t7 F3 y- N: n; [
   end;
* @# a( s$ L! T, G$ \& w$ n5 D
% U7 E  ^& V3 C* l2 e
//一个语句段结束: ?, |6 `" k4 ~1 U6 P# f4 ^
end;
+ L  x7 e' h% c. o

! z+ _; D. M, ?6 g$ K7 v. k( E! Z
//另一个语句段开始/ [: K- z+ ]" J8 o9 b  D( q6 p
5 \( J0 _3 c( e7 A+ u: l* ?- S
//当从Help文件里反馈回命令参数时,做出响应
# V  T7 o  b  p% @

. `. f& s  Y7 f: {/ `
procedure OnGetResult (aStr : String);9 D) z3 I! Y4 P. t2 t
var1 ]$ h% C! r' {* C: y: K
   Str, Name : String;9 f* k9 }) y# r) a# c
begin
0 n: T" A3 s! s. h/ X' j( t0 f

8 b( A, b7 o& n& `* h/ D1 w9 t! T
//当反馈参数为close的时候就关闭对话框6 [3 n; k5 a( \! G
   if aStr = 'close' then begin1 e7 J. F  O5 I/ @' }, q1 A8 n' P
      exit;' ]6 E0 W$ V. w& j7 m% E% w. E
   end;
) N* U) m8 M5 M3 B4 z
% E6 ?. b+ d- H- M! W1 z
//当玩家选择niujiao 的命令时
9 v; V, o" T2 {; n

5 S: ]5 x* M! ?- m* ]$ ~
   if aStr = 'niujiao' then begin
& S1 ^3 J- g$ @3 B

9 m5 T. M% [7 Q0 `
//检测背包里是否有牛角+ M# K$ \+ S0 u0 p
      Str := callfunc ('getsenderitemexistence 牛角:1');7 L  c/ `0 U( W- v+ P

% G6 J+ `3 \4 ?1 y
//如果反馈信息为假,也就是没有
- c) L; s+ _3 j$ c: k
      if Str = 'false' then begin2 V% A/ U' P& b6 F
; Q! H( F9 A6 @" i( S( N9 ~; p
//屠夫说话# i) y4 P4 _3 J7 t
         Str := 'say 快弄牛角再说';
4 [& ?1 _# S/ z, ]
         print (Str);" `/ B! G/ e) F# J; y
9 U9 {* n, Z+ @7 J0 y
//检测结束
# Q( T/ ^- ]% I+ a
         exit;
' K7 ?6 @8 t5 w
      end;; o) w$ [* \- ?0 {

/ x; `3 ~5 P2 m/ k$ R8 P
//如果有的话就继续执行下面的9 [6 \/ _* ^1 w  l; Y

. e- ~- j3 K1 L, X. t+ T
         if Str = 'true' then begin* u3 X5 `! j8 p; S& W* t$ U

" {; f: l! ^6 d$ F5 r
//检测背包是否还有空位置
5 C( ]6 `' u, i6 k$ R+ _
            Str := callfunc ('checkenoughspace');
; e# K7 t) v6 i0 S9 Z

2 B. I0 A0 R3 G
//如果返回值为假,也就是没有8 c1 e% Y. z$ p% }
            if Str = 'false' then begin3 R% b: f/ [) y7 m: ]) K
5 i, m3 I; }$ Q& x% g
//那么就提示物品兰已满  I0 L* L& x+ T2 ]- ~5 G
               print ('say 物品栏已满');
% v6 O* i- J/ h5 e8 Q: |
# g2 b- E+ `( }4 Y2 k' @  \, }
//检测结束
% F) y2 U+ H: n# R2 ^+ C' i
               exit;
7 s4 e/ j. m7 Z) i' s* ?: u
            end;( t' p" C; R# z9 I1 ?& ^

2 A; k/ c# Z7 m' e& S
//如果背包有空位置,那么继续0 B& l# B" o  Y
* M, |3 J2 `0 A; |8 L4 h9 }
//没收牛角' v' T. j! T+ N5 u* O: Y, n- S
- |+ b5 ~: B+ Q, j  B) h1 U
            Str := 'getsenderitem 牛角:1';
) J0 |4 B. m8 N. S5 J
            print (Str);; r3 l4 w% t# \& d* L/ |- \

7 V( N+ v: }$ w% |  O
//给牛俊弓服
: V7 i/ L2 q* Z. u
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
' {/ Y1 p8 [4 k* w5 T1 w
            print (Str);' l$ a+ h& I' ?; M, s" S& ]
            Str := 'say 收好了..俺最喜欢的衣服~';
7 F0 _. F6 x8 w3 s0 \. y
            print (Str);1 s9 B* v* P% A0 ^; a2 L% g
            exit;: I. e6 x6 }& x- i
         end;
1 f8 I$ n! I& v, ^/ M
0 ?; L7 s7 g7 v" g4 N
//判断结束语句$ L0 J4 |  m! i7 y1 e
      end;7 L! a' S1 x& p" e
      exit;! C: V7 C0 P5 q/ n5 p% v) R

, b" ?: @' f$ U
end;
6 {% d. t  G1 @& ^! X! M, S# E

/ L% y) ]2 ^5 N2 `) [$ ?
end.. Q4 J! u0 Y' C  l

) R) p/ m7 y& A" n
end;

/ L9 F% s1 R# O! G1 I8 M. e( m
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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