游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:; O! @$ G# e+ F, I$ H9 X
出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
) Z3 f. C" o- I) ^) S  u来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)+ L5 p6 o1 t8 i! e* u3 I# n# J' r6 ^
收集这些材料交给屠夫,他会奖励你东西
  A1 ]% q8 f* m' h5 G  {这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。8 I+ U9 S2 X4 L4 W$ `' K5 O, ]

; r7 M9 I9 z3 X6 L5 m目的:, r2 R; p8 o( r8 p
体会最基本的活动都是怎么设计的
% `! \" V( Z  Q1 ?8 p
2 j3 `; H4 k! w( k8 o知识点:
2 t0 i: x: \- P" ?2 y9 G6 `5 h: G1、检测包裹里的物品
9 U+ r" i! z1 c" n2、检测包裹空间) L. N6 |  C4 e8 @
3、给与物品
; N4 z- |; j, w% I9 u6 J4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
4 S" h) _7 z& l$ ?( X5 q* @

8 Y; _2 A3 I4 a8 X7 H! C" G
unit 屠夫;; w" c5 v% M, z2 U

8 n. o! X2 x) n1 N' |, r! s
//下面的是通用的调用程序内建的函数。每个脚本都有的。
* m# i4 [6 X! [- b6 I& n

2 }3 R/ V) A7 Y) k1 z+ ~
inte**ce0 D- b- j. u, m

, w$ _$ Q$ m7 o! g5 j' M3 _% q1 Q
function  GetToken (aStr, aToken, aSep : String) : String;
% p9 y9 y9 P- T2 l8 Y2 y6 l
function  CompareStr (aStr1, aStr2 : String) : Boolean;; p5 T$ Y, N) K6 [- e
function  callfunc (aText: string): string;
' ], B$ p5 d: W/ {. q6 Q6 i! k3 r3 i  B
procedure print (aText: string);2 L+ Q1 Y) x4 u+ m! S. \. I
function  Random (aScope: integer): integer;
( V0 e" `7 ~+ |
function  Length (aText: string): integer;
( N) W  E* g5 ]* c
procedure Inc (aInt: integer);
! n% c1 |. J1 O6 [5 h
procedure Dec (aInt: integer);( |* j; n+ p! X3 s
function  StrToInt (astr: string): integer;6 M. Y8 n. i( L* n9 G$ \0 [
function  IntToStr (aInt: integer): string;% G' i! q: z& i0 j+ X6 f) B0 P
procedure exit;0 @7 K  [4 @/ ^

& ^# q4 A* x5 x& ~4 m
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么: g8 e: R+ V4 i( k! n1 T
7 E1 i8 u; [1 M+ U( `/ {' Y; G
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou2 l( {! X/ z5 _

7 J! R. N6 T- t( o0 |9 e5 o
//第二句的意思是当左键单击的时候响应,4 d# v! e$ B+ Z2 X- x+ @
3 Z% H$ L- m# v
procedure OnGetResult (aStr : String);! L) G  Z* m, H3 z
procedure OnLeftClick (aStr : String);
: G- w# ~* o7 b3 |

8 Y3 H' ~; c; A7 x* U$ ~! k" o
//以上是脚本的头部,下面是脚本的主体部分% D4 E2 K1 j" \; ?! _1 w: s8 d

2 |6 Q$ @  `" [4 e
implementation' h* J6 B% r- t' h2 y- I
* ^( u  U  p7 m9 \
//当左键单击时
$ k* r# t7 L9 _" U( A) |( t0 I
* n) u5 _: P" B4 d/ y
procedure OnLeftClick (aStr : String);
( o8 w) b/ O3 m% B( |6 ?) D* \/ L

$ s+ Q( q, F4 r9 o6 s' `
//声明变量的类型5 H9 b( P8 m: m( M+ t1 C' ^% e
var8 R' D: a% b! k3 C# K2 b, C8 ?

" U& T( X! R$ Y
//Str变量为字符串型
6 W, t% x! ]( g: K1 v
   Str : String;( Y9 t' C3 l" _9 {2 t

/ d6 q, F- t& q5 v3 N' N
//Race变量为整型) m1 G6 a7 E) S! P, T
   Race : Integer;& z1 H( P6 l" H' e
begin
+ E1 G0 _4 N  ~/ L  V0 L
6 C4 M- ?, I" f3 H& u5 J
//获取点击者的种族
* ]5 q4 p' k) X; |' r: L
   Str := callfunc ('getsenderrace');
, O, m% M8 v: b+ ?+ {5 Z+ k
# P8 u& }( A3 \4 v( ]# L$ r
//将获取的值由字符串型转换成整型
" E( Q% I+ E0 a7 `! c0 _$ k7 R
   Race := StrToInt (Str);  {* f6 Z. o9 C2 D/ }3 t, a

% H6 B9 O3 @9 ^) `' i6 J
//如果种族为1,这里种族为1代表是玩家/ j  H3 E* z! z9 M/ d
   if Race = 1 then begin$ x. t7 y! d# d0 [& x7 {% i0 _- W

! x3 J6 D: D6 k1 D/ S8 f2 l1 R, w
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
% H6 w7 j+ b# g  U( t; p
      Str := 'showwindow .\help\屠夫.txt 1';
6 B9 c8 k5 s) ]. J
      print (Str);
; v# T9 z# i/ ^

. M1 ^- r& p5 z+ [
//小判断结束9 M, W* C1 }6 @  d3 ]
      exit;
; q6 w1 C3 f* H
   end;5 j4 x: A) g8 y+ I" [

& h9 G7 t9 x: v! ~( i* l
//一个语句段结束. Z8 N' k- f: P) V( H' s
end;
% T1 ]1 U) {, S5 ^4 k

+ d( u3 a4 _" }5 t* D% Y
//另一个语句段开始1 g6 x7 [; f. {' Q9 k2 j9 D0 ?

6 ~: M; n( D: f( S5 s
//当从Help文件里反馈回命令参数时,做出响应
! B0 g5 z4 M$ a; B+ ?
/ N5 z$ a$ |8 {/ A: ]: {, L, i+ N* w
procedure OnGetResult (aStr : String);2 ?- _  W+ I! e" V0 _" C. ^
var
/ i: d' g7 x# M. v
   Str, Name : String;
( }8 c( W7 o/ o( H! m/ ?& q1 U
begin
/ D; R1 I1 f: [/ p4 A
7 @  O2 C2 Y$ Y/ \" D: r
//当反馈参数为close的时候就关闭对话框
- D* y" g& n+ [6 u  N
   if aStr = 'close' then begin
/ d# [2 w" z5 [1 P) m
      exit;. R! T9 \) R; f4 _7 |
   end;
& y0 ]. \7 d8 L5 U

0 O# w* n3 N, m2 f
//当玩家选择niujiao 的命令时
- _9 o* W3 C" j
2 a/ n. [6 r/ V  f) P
   if aStr = 'niujiao' then begin
3 @1 D3 q+ c$ H6 g8 Y( E* Z. O
- U2 b! r' U1 z8 H& V
//检测背包里是否有牛角
% k5 b6 p- X. R7 a) e/ I  A, R1 I
      Str := callfunc ('getsenderitemexistence 牛角:1');
% B9 V$ Q2 m5 ?; I, {2 S

* J& Q: Z& Z# m' H) {
//如果反馈信息为假,也就是没有. y$ i- W2 b$ L; a( a! B$ m
      if Str = 'false' then begin4 K1 O5 J6 M  {* c; H
- w" @/ S. Q; A  A
//屠夫说话2 g: ?, b% Y* A& l& q  a
         Str := 'say 快弄牛角再说';/ |. x7 b* @8 Y  J
         print (Str);
5 t! Y7 R6 m4 l* W: p  O

9 `5 ~$ _1 H% i; @0 p( d2 M
//检测结束4 O5 E# L7 P  s9 K6 w8 j
         exit;
. n/ y( X9 [3 |* V, D5 U% O5 S
      end;
4 B- R+ F! L4 y1 w7 E: G/ E( f

# R% P# n) r- w  p* y3 T. O$ i
//如果有的话就继续执行下面的
; U8 y/ [4 {& |" X. w2 g
' ], r$ Y+ z8 b$ X* q
         if Str = 'true' then begin
1 H9 b0 l2 l/ |! u* g8 [
* X. |; m# r; X; Z' h0 T2 x! m
//检测背包是否还有空位置
& x2 y3 C# u$ E8 n
            Str := callfunc ('checkenoughspace');
0 A% N$ [! k4 o: Z: _* o

% L% n. M+ _2 Q+ g. r3 R6 c
//如果返回值为假,也就是没有2 ]  Z, M( Y) |& i
            if Str = 'false' then begin
9 n6 r: _! c0 y/ c" j* Z, p

4 m+ U* O) _# B: O! l# I& V
//那么就提示物品兰已满6 V: R. X, }( ?- V* C
               print ('say 物品栏已满');
" @( r" p* B$ _4 J) g; v
- P3 ?6 V$ [1 w. L
//检测结束8 _) k, V5 {& _/ J6 h8 f
               exit;
' F4 ~3 S0 u0 V1 w1 W! l) |
            end;6 p' R) ]0 S& e$ _' c$ y4 }
+ J; Y3 @0 }7 u
//如果背包有空位置,那么继续/ d9 T2 X0 A2 K  }. r
+ {! T+ A2 C4 a- e$ W( s
//没收牛角# |3 Z5 ]8 G. u9 `7 E4 F

/ L: @# {, C9 ^1 J. Z3 v  L. z  P
            Str := 'getsenderitem 牛角:1';
) ^* z# n7 A. x% F
            print (Str);1 y3 i1 G9 {9 @& p) o
! g+ _+ o/ v4 g3 V# w; k0 Z
//给牛俊弓服6 L! t& h, W) M2 \# }& _" e
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';
" B$ E- G: o* E6 v5 w6 S* M7 E
            print (Str);
  E5 B5 f% N( P# Q! ^
            Str := 'say 收好了..俺最喜欢的衣服~';( t+ D# j4 |2 ?
            print (Str);
" g$ _: q$ f( f- o
            exit;, \! J" |  E. C
         end;6 ^$ U2 O$ w4 s9 W( c

5 z9 i, X* X! F' ^; F  P
//判断结束语句3 A# ~8 r0 q. [
      end;
$ x( Q( e* s$ ^6 N# [2 Z# T- X4 N
      exit;  o/ v/ D4 I1 J4 i6 p# @

* [: o7 T2 r, [' c( R' P6 f
end;
+ X+ H! c( Q) `- _0 C
/ U" n; j5 g5 Q4 W9 s& G, F  e, v
end.5 {( t0 `) u' N. \4 ~2 q! w1 B! }- M
: _+ H+ u8 D9 u! u& q
end;

6 v; ]* X6 a  P
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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