游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:( z: N. `  w2 T" u3 A) N
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!  @5 k/ `4 W( |
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
5 C2 c7 i. F' e! }; w收集这些材料交给屠夫,他会奖励你东西
* \" M3 q5 h3 g9 @/ o! P" w8 W这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
" G% H; \  J9 j9 G+ r& O. T. r8 O8 n0 A  O5 T
目的:
1 p3 C0 [" P5 {; v3 v7 l, c4 ^体会最基本的活动都是怎么设计的
( |! b0 L' b# H1 I8 K# I! `- S; u
知识点:
/ R2 y' |: O! t5 y) \7 \+ }1、检测包裹里的物品
8 O9 ^. W! s3 Q# B. ?* q. u% |2、检测包裹空间
. t1 l; p; G! v. f3、给与物品
6 |$ s( Z  `! q0 V4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。( q4 _( N% R) X/ K3 J' F% D+ w

& g% A$ r- W6 W3 \; R  `" P
unit 屠夫;
' t6 Z5 b! ~7 M4 I% o5 D

7 \, W* b# Q8 l8 f' ~; Q
//下面的是通用的调用程序内建的函数。每个脚本都有的。
7 ?) R2 \" h' {5 t

, T" {7 j: p$ g# Y
inte**ce3 }8 c: O. C1 J

8 P$ v/ G/ _9 t% T+ \
function  GetToken (aStr, aToken, aSep : String) : String;
* x/ P8 n$ C8 a2 o: g
function  CompareStr (aStr1, aStr2 : String) : Boolean;
& G+ J0 G- J( |0 Y: P
function  callfunc (aText: string): string;* S$ \6 _( w$ k. d9 q( Z  y; [# r
procedure print (aText: string);  q+ v. E0 [3 Y* ~6 J4 A' K" V5 Q
function  Random (aScope: integer): integer;
6 {' N( \& a5 S0 F$ a: E# N
function  Length (aText: string): integer;( F% z, _, z  R) V  z; i
procedure Inc (aInt: integer);: ^8 U- x# H3 c9 V& ]# I6 d8 a
procedure Dec (aInt: integer);
4 l  H8 s3 e2 G$ e. m
function  StrToInt (astr: string): integer;3 }- d- U  y" J0 E
function  IntToStr (aInt: integer): string;
4 D. O: H; ], w5 H* N
procedure exit;+ k, K9 b7 p+ j9 h) m
1 U- v- ?! n3 F! m
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
' t' w( B: T/ j1 E+ S7 Z

  z' u8 M& ]  `& {
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
. i5 I: e& L/ ]/ `0 I8 ~6 A+ C" g

/ D/ R! U' z' }& Q  |
//第二句的意思是当左键单击的时候响应,
; U# |% A) x2 d& I' F0 d0 J! t* c

8 o0 Z& k5 x( d' ^- t& O2 _
procedure OnGetResult (aStr : String);
: v$ _- U; D$ R! E  Y) z7 K8 S5 P/ ?5 P
procedure OnLeftClick (aStr : String);
3 |, t; n9 A- P. R" @
5 g& E0 H/ T. h6 J2 E$ R( O# @4 b
//以上是脚本的头部,下面是脚本的主体部分
$ S" e. T  F7 x& Y4 B
( r$ m- B" k, T3 A2 N) |
implementation: v' X& H! e1 D

+ }) }' _/ g$ S8 O
//当左键单击时1 w  u, X1 {& w- v: J, F
" \7 M, a3 U8 J: O
procedure OnLeftClick (aStr : String);9 u& h2 H$ E' x3 P% x) w
1 f- L2 N+ s: c" A% u: V
//声明变量的类型1 p/ D7 @8 Z2 V# ?% `1 T" \
var7 X7 i0 \' Z6 c/ z
7 x. g7 ~# r5 G2 |$ Y
//Str变量为字符串型
# C; v; ~/ X. }$ @
   Str : String;& q2 R" R" z/ g4 [1 Q
; `: K' K; W& T) h7 ~8 y8 C
//Race变量为整型
6 J/ `) g6 x' ?- X
   Race : Integer;4 O# I7 K0 k! e0 e  g9 h
begin
- |+ I' Z# w/ ^# u! [
2 T  F, A8 F7 P. W
//获取点击者的种族
# A( J# R" F' k' ?0 \
   Str := callfunc ('getsenderrace');" _/ n' v9 T4 z- v  \
, v0 X+ q2 j: y  H
//将获取的值由字符串型转换成整型
2 K: c; p6 B, Y6 [  X. `" G
   Race := StrToInt (Str);
% I* l9 `1 T# a
/ T' ?: G- H  W3 v/ o9 L
//如果种族为1,这里种族为1代表是玩家
" x7 F1 Y8 u9 ^+ C. a
   if Race = 1 then begin" c4 v6 T+ C4 p( C  I, @" _

8 W. t; T8 V! n
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
4 s2 b* X/ P/ `; D5 J0 F
      Str := 'showwindow .\help\屠夫.txt 1';; M5 s5 A  V( x' }& z) v6 ?2 ^$ B2 M' X
      print (Str);
5 n+ R) Y5 e& {% k

4 a8 ?8 O& m( o8 U' e( t! i
//小判断结束
; E9 A/ Y6 R8 k9 N1 S& C  g
      exit; # o0 S) K, y3 i
   end;
9 Z/ P/ w8 l. G, a* L

# Y. {; ]4 c# |
//一个语句段结束
- n/ L# a4 ^6 y  R+ B
end;
4 F  R; J/ K8 `! ^% y; U
4 G3 s5 t& `- A. x
//另一个语句段开始, ^  v, m( a) y" Z+ S* h( q

' M- g3 s, D/ K% [3 L+ m6 k
//当从Help文件里反馈回命令参数时,做出响应
2 b# N2 \6 R+ r, @) }1 |
- Z2 ~. [* r& g' M8 |4 d& P
procedure OnGetResult (aStr : String);
; j0 V" O. `, R9 n  W
var7 r4 u+ v" d; J8 w! b
   Str, Name : String;
1 ?% I# |  n, t1 z, ]- |) v7 s
begin
' o  w( ?1 ^% e+ S9 C/ W$ A
! j) H4 }7 C' U' i% m- }1 f9 Y) Q
//当反馈参数为close的时候就关闭对话框
. G+ {' c7 A# s! y
   if aStr = 'close' then begin
7 V, e* ^  w  W- l3 l7 B: I
      exit;
6 Y$ y; d4 i' W; n7 H9 y! r
   end;
, l# y# Z0 r, P8 \$ Q1 z. j/ q" Q
$ T5 E' q' U, f1 l' N
//当玩家选择niujiao 的命令时5 o( P/ o: q$ \/ U, ^

) d% i' a) [& Z
   if aStr = 'niujiao' then begin
9 l/ G! ?0 M0 b6 j$ R, G
4 d; ~5 Z* a+ r% f% ~0 a) v" c
//检测背包里是否有牛角. K7 ?4 R& _# i# m4 G& U
      Str := callfunc ('getsenderitemexistence 牛角:1');
7 r3 Y4 J" H2 ^+ ^- x' \

" u* w+ U( W- N
//如果反馈信息为假,也就是没有
; m/ L, X5 X6 w5 m
      if Str = 'false' then begin
  s# e  g( i1 ^# h3 `1 y: Q
. J( `* D/ _/ j' \' ]; j
//屠夫说话
# M" k# p6 Q5 p4 {- g4 N0 N" _
         Str := 'say 快弄牛角再说';9 U% I$ v3 h; W; ]# ~& K& Q
         print (Str);
4 A  o7 X5 h3 @) ^( m" Q( `
% J% n" m1 {- A! @' S& c- _
//检测结束8 R$ U1 |( D+ \% ]
         exit;
2 b+ f- S3 Q: i: \0 P* v+ o. C
      end;6 |8 f  x# M! x0 k

6 b+ x1 }$ `$ p
//如果有的话就继续执行下面的8 L0 o" V0 _- X) B* p# ?% v+ ~

0 s5 g! v' y6 J6 K- _6 P
         if Str = 'true' then begin2 s) E0 J* d" n
0 P4 V/ `/ n' z, i' w$ M
//检测背包是否还有空位置! A7 {3 |- L) R3 U7 @! u" j
            Str := callfunc ('checkenoughspace');
/ \+ o9 x3 a8 d) ?7 z
4 J7 V' X3 W+ B; H$ t
//如果返回值为假,也就是没有
. H* M8 [, k' W/ o" R. h
            if Str = 'false' then begin
% j0 o1 Y" ?- R( m- w
2 v! z" u% o( d$ y  h3 @# T, Y+ X
//那么就提示物品兰已满: X7 `1 g7 F2 |2 l" Z. y% I
               print ('say 物品栏已满');
  O1 y/ U" Q/ F8 L9 |

# A- c/ @0 y' b8 `
//检测结束
7 c6 D6 L  J) v) `* s
               exit;: g1 U' b* B3 l& Q
            end;( A3 r5 @* \) L3 }, X
: ^; z, y( k5 U1 X
//如果背包有空位置,那么继续1 U7 K* B* h+ F8 M' C

1 H  |" J' [3 g" p% D
//没收牛角" V8 h) b1 P2 b$ Z* n7 j

- S0 T" ]+ G$ o8 i
            Str := 'getsenderitem 牛角:1';; Y$ h  o1 {# N9 O
            print (Str);" N6 b% a- E) y9 ]* W

3 T7 O4 B3 D( q* V4 K" N+ u
//给牛俊弓服( d9 g( x2 b$ F6 x
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
) @- A8 F% P; A& [
            print (Str);$ R3 n4 q$ i' P: B7 W/ }& S5 v
            Str := 'say 收好了..俺最喜欢的衣服~';3 _6 Z2 q$ q8 X4 s
            print (Str);6 t9 P( ]; b* O9 j0 u( g
            exit;; D! u5 e  g/ c2 l$ W
         end;: c) {+ |. |8 s7 Q0 e1 u7 i& T
; v" o! z" X( c
//判断结束语句
+ g1 _2 Q5 f! ~8 y
      end;
4 {: R9 n- {3 ]2 Z* B
      exit;
0 p0 r9 J7 I4 F7 ^0 y

, Y) C) z3 I2 _0 B
end;2 h  J8 ~/ d: f1 Q; F
+ z# L3 N4 C0 C. W) R2 _0 @7 H
end.
: ^0 I' s0 [* w) c9 c4 i
+ _  T8 E+ _1 c7 k7 A
end;
1 D; L: b! C+ }1 c9 o5 B+ W
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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