游客您好
  • 点击联系客服

    在线时间: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 Y5 k0 o; W- o) B出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!% D$ X6 t8 G1 n# y0 u0 A3 x5 r9 ~) E
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
* ?; }8 I* y$ [! ^收集这些材料交给屠夫,他会奖励你东西
1 p" h8 \) Q5 Q8 T* y8 T) O这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
3 g# f* ~. C3 G
$ B4 h9 L# r5 e目的:
) }0 ~9 R* O' L' v; _" s体会最基本的活动都是怎么设计的
0 O' ^+ K+ m- }/ V. ?5 ]
* j0 n: Y% [2 F; u, }知识点:% U" C, Y  k9 I8 I
1、检测包裹里的物品
: G- v7 Q6 x! V0 @2、检测包裹空间
7 |! V4 v! J/ s' S$ W' a5 G3、给与物品
; A$ r* q; ~) k# `3 x% c4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。/ i- h) t; S$ r

9 ^7 C$ `) E9 ^& R) d! O4 V
unit 屠夫;
$ ?5 V  e/ X: Z* B
" W' U$ Y" P+ n) O
//下面的是通用的调用程序内建的函数。每个脚本都有的。( Q; J% T  b9 _" t4 E. O+ I

% l- N2 m  S/ ^& H1 [( J6 x8 L
inte**ce
  f$ x  h3 [% m3 b

5 X4 O: E$ u* y( |3 p2 y
function  GetToken (aStr, aToken, aSep : String) : String;$ B! E0 K% o+ V  s5 C) U
function  CompareStr (aStr1, aStr2 : String) : Boolean;
, y( F* B: H+ d8 X" V! P
function  callfunc (aText: string): string;- H9 s% g9 |: y" L4 i$ c
procedure print (aText: string);
8 j, b# ~9 d' W5 z
function  Random (aScope: integer): integer;. o/ p/ A( k8 H$ @  b
function  Length (aText: string): integer;
0 ?+ F; Y! G  r- D4 w. `7 A1 [
procedure Inc (aInt: integer);
! }% `- A& [$ X! r4 z
procedure Dec (aInt: integer);
8 x% e" {8 e: Z/ s
function  StrToInt (astr: string): integer;
0 U# c. i: @  O& V
function  IntToStr (aInt: integer): string;
/ R5 O  g" N  Q) ?7 a
procedure exit;; E8 @2 o6 T: Q/ ~
% ~# v5 m+ R+ g
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
% c$ \& l/ {6 A

% C2 R9 y9 T/ l" g% E* X
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
, I" C* |' f; B# ~! p
% S) }1 u: P0 B
//第二句的意思是当左键单击的时候响应,
1 y8 |- E8 q- v2 X
, G4 p! r( B. w& w
procedure OnGetResult (aStr : String);
$ G, n5 l" P+ r& f0 v3 N8 k8 D4 S
procedure OnLeftClick (aStr : String);9 J  O" r; |! G4 K

; d# G2 y8 ^- `. u) R* \  }0 }
//以上是脚本的头部,下面是脚本的主体部分, l: v8 O9 H/ P' G& X6 d  h" a

. \; h" M  @$ D) ~; A* d3 q4 k
implementation. b6 M2 e% O8 U3 l6 Y

1 T, {) M4 |0 A5 x' K
//当左键单击时
, v4 a# V! ^1 @

# y9 L6 U+ |* o  ^2 M
procedure OnLeftClick (aStr : String);% i- s& C3 u: L+ ]; j$ D- {

$ }2 N  u3 y$ N# v" T0 E; h) v
//声明变量的类型
( l, L" F/ {; e# ^1 K! I+ L
var
) B' E1 G- h- l: w

3 ~' b- |" p7 Q
//Str变量为字符串型
: l5 Z5 c$ K2 \: Y
   Str : String;5 W0 @$ U( E5 }% s  l
% o* l- t( S& A. N1 V
//Race变量为整型
# }& @! Z, _1 \4 |& O
   Race : Integer;" }6 E* `; H" ~/ }, C
begin$ z; l8 W3 [6 b, @
8 I  X" X: X0 ?" U- d( V/ w
//获取点击者的种族. v) E7 W, D. m
   Str := callfunc ('getsenderrace');
% r( K; t' g1 v+ z2 ?
# i2 F, u6 y0 s; F; ~
//将获取的值由字符串型转换成整型, h1 ]" S6 p7 ^& L/ s+ l
   Race := StrToInt (Str);
- ^# e2 v- x2 @, }" G

. `3 n& c/ ]' e1 R; T/ z. V
//如果种族为1,这里种族为1代表是玩家
3 u/ u: R. [  S8 @. [6 ]. O  y
   if Race = 1 then begin( P: C. l, k( M" ~" i5 B1 _$ {

& A1 A  F2 N( U( a. F
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种$ g1 N- n( m( ?; @
      Str := 'showwindow .\help\屠夫.txt 1';6 ]  \7 a$ M! K  L
      print (Str);( A0 Q/ ]  s1 V& z. Q3 r

/ M; N1 `! G: ?) b' N! G' A5 {
//小判断结束
1 }# {1 L" b6 Y1 H( g
      exit; * b- Y0 R( }# G( {8 X0 _8 |1 i
   end;0 I$ M% }. x. ]& N3 I, H' ?4 p

) {" w& a$ k  e8 {
//一个语句段结束
9 g* k5 ~' C* l; J. V
end;& b8 ^+ K; Z$ C# S2 P

8 }* T9 O2 Z$ s: o, K% ]2 e+ U' K
//另一个语句段开始# [( V: {) d: L% t* T2 x. a: Z6 }

1 X' I" R' ^" k* M
//当从Help文件里反馈回命令参数时,做出响应" x, N9 `- g5 w1 f$ [3 n

4 G' {, {8 H) K: u5 g2 ]
procedure OnGetResult (aStr : String);( H# {' Q2 ]1 D, L
var
( C. B9 B8 Y9 \2 L
   Str, Name : String;4 ~+ F0 A& v" K
begin
" K2 G8 [* Q3 W& a

8 \6 Y: \5 m5 L% \: ]; \2 B
//当反馈参数为close的时候就关闭对话框1 K, t7 Y7 e1 A( K  U2 P- a; V: |
   if aStr = 'close' then begin
8 `$ c# e, ~; Q& w- Y
      exit;
/ m4 ^: m, Z6 e: J. N
   end;
8 h3 p  C5 W$ C* G: @" M- g; L

  x3 E. E# ]* Q+ L' F6 @' Y) p
//当玩家选择niujiao 的命令时/ W1 n" C+ [, L! t. P

( \4 n$ y: M8 Q. E: \
   if aStr = 'niujiao' then begin% l0 g; v/ Y% G' P! N9 p9 q  C$ h

* f" H) k" h$ X' I6 w
//检测背包里是否有牛角' v0 x- l. @6 a( ~  U
      Str := callfunc ('getsenderitemexistence 牛角:1');7 ]  L" k! _+ e! _' ]
, r9 \  p. {7 d3 G* Z# e
//如果反馈信息为假,也就是没有& ~- u  i& n0 |$ k
      if Str = 'false' then begin% o# f; h9 E: W# s: J

! t5 ~1 p- B. ]7 w; e2 q2 L) ~
//屠夫说话2 `$ F, Y& v* I  A
         Str := 'say 快弄牛角再说';- z/ H6 L( e6 d3 G% z
         print (Str);4 `/ a' I. H& B: j% L
8 T. K5 a; \6 W; s6 z- G$ f* R
//检测结束& T6 n; e/ l3 M
         exit;
( \, r5 O0 ^. S$ x; k4 t
      end;7 Y, n2 p, z: R/ p
2 ]* f% z9 X8 M* i: E8 \
//如果有的话就继续执行下面的7 K4 C8 O3 T, s# q8 J3 b- [7 I

0 O& x( b- h: V: f
         if Str = 'true' then begin
, l2 M$ Y- D& W6 q1 K  s

0 [0 j  b/ i" c  o+ F7 W
//检测背包是否还有空位置
* b0 Y1 T7 [" B0 N% E/ D2 {! w
            Str := callfunc ('checkenoughspace');0 K/ A0 H7 ^: Q; a0 _9 L/ P7 M

/ N  o; F# n4 }% v3 d
//如果返回值为假,也就是没有, _- E$ K! ~% E
            if Str = 'false' then begin
/ r3 J9 Y$ A3 {
; ?- n4 I& Y$ h
//那么就提示物品兰已满7 H" [7 [/ W) T- {
               print ('say 物品栏已满');4 S$ k% w- B6 [% x; y! H

% q- a6 ?5 O$ v, F2 Z, o* L. x9 q2 |
//检测结束
7 O: Q( I6 C8 u/ o) v% j
               exit;
  ?) Y, |. Q! f
            end;, r* A% Q5 S* B3 H# T0 ^* U3 \

& E* k8 z% [: k- x$ S
//如果背包有空位置,那么继续
- W6 s; V- s1 G* e2 G0 ~9 L

2 _" X3 I2 h9 B/ f9 T) ?
//没收牛角
4 H! U6 w9 d  k; d- `* [
5 v0 x! v: i$ O0 O
            Str := 'getsenderitem 牛角:1';
  G3 b, S& ~! C7 a5 [
            print (Str);
) d4 u) {- u+ R
/ }0 m( Q# I! |' E0 ~+ c
//给牛俊弓服
0 e6 y- X: [0 l5 x. i8 ^
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
) ^4 d- x+ H% N# f
            print (Str);0 P7 A4 ]' b/ \/ G) ~
            Str := 'say 收好了..俺最喜欢的衣服~';+ m+ h% B. X( F5 d  `: ?4 n
            print (Str);- ?3 H  I0 ~# d
            exit;
$ j$ D+ u- {' e- k  ], [
         end;- G7 Y: C' @, g2 n( A& ]

9 b! f. ]0 w* h
//判断结束语句4 J3 u( U; W- u- b, J$ c
      end;
( s: Z' d! ?, s3 S6 o- G
      exit;
3 `' ~4 p/ R; [  l- ~" A" |
% w) d, T, X; s4 z9 U# ?
end;
, E- ~. p& F% f5 Z+ `. S8 X& v
6 w: ]2 m. f$ R2 z' J0 h0 Q
end.; a! _1 {5 W2 L7 {8 `

: S1 d( e9 v; X) m% \2 Q
end;
3 i2 S/ R$ {9 z  p6 ?' K$ h& t
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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