游客您好
  • 点击联系客服

    在线时间: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 |# b" k( U! J5 x$ z+ Q% c出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!6 K* n  a- }6 q% [- n
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
/ N$ c' d: K7 ~2 a: }5 A, y收集这些材料交给屠夫,他会奖励你东西, o, `8 i6 m% R( s
这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。
. k  }. M/ T7 e! U8 ~3 Y5 E( k) E+ b* _% k" B
目的:
& c$ J. ?" L' C' ]0 c体会最基本的活动都是怎么设计的8 E4 s2 w% Q7 K0 j: E( _

% X: S$ C0 N& L9 T: u知识点:
1 ^9 B8 P$ }! |( X" ?4 c. _. U3 k1、检测包裹里的物品
' F! M6 {6 U4 C( c2、检测包裹空间) j& Z6 m4 X9 ]& F
3、给与物品
' E' q" i9 r# I( e3 a" Y& g. T4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。7 M1 D* A. q( ?; j" v) d0 A( x

! ?7 k. C8 X1 }5 p
unit 屠夫;
) b0 p4 c$ f1 i6 c
6 @* K; y5 M% ]$ t. z! @
//下面的是通用的调用程序内建的函数。每个脚本都有的。9 N( H. ]. ]9 b- X$ q8 i

3 r* V6 L2 ~0 T1 E& ?
inte**ce
5 d9 X% A* {" ?  I2 Q1 G

0 a' [; ~% V" U: p8 g
function  GetToken (aStr, aToken, aSep : String) : String;
* O! L4 a) S; {4 L2 _7 F
function  CompareStr (aStr1, aStr2 : String) : Boolean;
% b% V9 Q- q/ P' S% Y6 ~% R
function  callfunc (aText: string): string;
# Z7 n! y1 d# J! V# A4 e% K
procedure print (aText: string);
) L7 d+ h% w( a
function  Random (aScope: integer): integer;* S7 l% s2 i, a3 G- C
function  Length (aText: string): integer;
4 V  k% N: Y0 v% H) ~' }3 b6 e
procedure Inc (aInt: integer);
7 X+ K2 R* V( P: x0 g# F
procedure Dec (aInt: integer);
0 ?3 [# K, L8 G+ ~
function  StrToInt (astr: string): integer;  t" o# z6 r- t
function  IntToStr (aInt: integer): string;
& t0 r+ M6 J% V+ K* P4 m+ S  J
procedure exit;( M# R: r, ^: G. c. h) q
5 A7 u' n2 o+ ^& y. G
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么( ^# j6 H1 u; f

& w5 d. S. H) ^8 j7 s
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
& D  p0 Y! h. G3 k8 y
' M" A: Y! {5 {  C/ K- v  w) W3 R7 l
//第二句的意思是当左键单击的时候响应,
* u/ X6 U* F5 U+ T* C( {

( Q$ S1 {7 P) J& |1 A2 ]
procedure OnGetResult (aStr : String);. `) q  P3 @9 M- ]" i8 @8 i
procedure OnLeftClick (aStr : String);3 p; ^2 I& b% e! N6 z; p9 Y
  ?0 C0 ~# B+ C5 i
//以上是脚本的头部,下面是脚本的主体部分
/ ~8 ~  P+ o, x
2 `3 L' Y( y2 J0 f; }, ?. b
implementation6 A+ T' Q1 Q5 E- e: E$ }- y
8 @7 X. A# C4 P: m. p+ C
//当左键单击时
* {& t0 a: P/ h% g! d" r
6 y- I; \) a3 I+ `
procedure OnLeftClick (aStr : String);$ [* }" C5 F. _$ Y3 D

! H( g$ \; \5 I) F  S' j
//声明变量的类型1 E  Z" H# n9 P6 Y
var0 N/ }( {- E* o; q
; w1 d: y- `% z) o9 M# j
//Str变量为字符串型
/ x; ?. r8 x: C
   Str : String;- T. e5 d; _! j& X2 U) A3 a9 }5 \0 }

9 h3 Y1 |3 y- K3 S
//Race变量为整型
$ \6 K2 p* F' l, ~% F
   Race : Integer;
0 a8 z5 d( ]" g( D+ K8 {( @
begin
) W, j' g0 w4 K) P

- B# p6 x$ |8 ^6 c- W4 c) d3 n9 I
//获取点击者的种族8 P; o! B) H6 {# {
   Str := callfunc ('getsenderrace');. Q2 p9 c' z, \$ P2 S1 J0 d- [0 r
5 W. W9 n1 x) g) n
//将获取的值由字符串型转换成整型; V/ @( ]# p$ y1 ~  _# Q/ X
   Race := StrToInt (Str);
9 b# c$ Z4 _' Y) C, a

' J8 w6 o( [6 e9 C4 E8 V
//如果种族为1,这里种族为1代表是玩家
9 o; q3 J, A: j
   if Race = 1 then begin
6 D& M/ V5 b# A

/ J% N# @& A3 u- x. b' _9 L
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种8 ?  `: u( p! q
      Str := 'showwindow .\help\屠夫.txt 1';9 Q% Q5 D- ?& }4 N% i# q
      print (Str);
6 N3 U2 e# f3 j" R, }0 m
: d+ {; h' x  @, [' G
//小判断结束" F8 ^. r7 @- P# C
      exit;
* K- O1 V5 \/ x$ U6 p
   end;
' I' ^9 }1 N+ s5 J/ k; @8 r3 {- O0 ]
* ~7 T4 S# h2 m4 |( T
//一个语句段结束
, E5 J4 H: ?& s+ I! k/ X3 T
end;
" Z5 C# t# x, x0 E7 m" v  w  ^

0 M0 e  g* k4 p6 [6 n  d
//另一个语句段开始. @& P4 E* Z/ t/ K6 S7 ]" b: p, T

0 b; t' }. r2 k* W
//当从Help文件里反馈回命令参数时,做出响应# [- Z. r, u: b# k4 U; r9 H
' j& N* U* _2 L' m. x" W  g( |
procedure OnGetResult (aStr : String);
  C& r% l. v" f% ?6 c" ^" w
var0 }, X+ Q7 i) F& E: I
   Str, Name : String;
% d2 @, v1 J9 z6 J# V6 c$ s4 s; t
begin
+ v2 _/ r, T! Z8 g5 {& P
6 n: S2 C, \( O3 _0 O% Z8 c6 l
//当反馈参数为close的时候就关闭对话框5 w( d& h* Z5 i! R5 x* a3 G
   if aStr = 'close' then begin5 Z. I$ L3 R" Y% s2 S# q
      exit;
2 i$ M: A- m- e/ Y# {
   end;
3 }- W; \8 E7 p: A7 z/ V( a% h
6 z$ C% @1 V4 t) c' P- k
//当玩家选择niujiao 的命令时
$ E5 o" s: i" a. ], y* H$ N5 W1 U: e

) s, ~. i# x0 u7 Y
   if aStr = 'niujiao' then begin6 k% Y0 T. [9 a. N. Z% L9 f) u

5 N* x9 L" a( w
//检测背包里是否有牛角+ g7 X' W2 b( V; L7 Y- E
      Str := callfunc ('getsenderitemexistence 牛角:1');
9 V# K5 q% _; _0 {

# e4 F0 C4 a8 L8 Z2 |+ e% p
//如果反馈信息为假,也就是没有
; T4 l5 X3 N0 C# m
      if Str = 'false' then begin' g& y) _* d. {$ f- @

$ P; M6 ^0 L1 n+ \/ i6 d! e, f
//屠夫说话9 O7 b+ M& L) n7 }( i/ w0 n
         Str := 'say 快弄牛角再说';" U9 k' `- K/ K
         print (Str);( \  j3 ~" t2 e5 P

7 e* g4 j. s1 ?6 o5 D8 E
//检测结束
8 e. l, P% X; _/ c5 ^9 h3 R7 E
         exit;6 P% {! L: i8 B
      end;/ V: ^! n: t6 n6 Q) n! E# Z6 ]0 A7 j
, {' u1 d  Y) L( ]. R2 e1 _& _7 k" B
//如果有的话就继续执行下面的: Q. q/ L) Z/ D* K

3 z# r$ m, I1 b9 I& Z
         if Str = 'true' then begin
2 v: L' d4 O+ b
; x9 N. T& ]7 b: N1 K# p
//检测背包是否还有空位置
- ^' h, |8 z1 W/ k
            Str := callfunc ('checkenoughspace');
" y2 p1 q8 Y$ Y1 e5 c( ~

; E% p( k- `+ a" a3 p
//如果返回值为假,也就是没有5 O. f8 t  d2 e
            if Str = 'false' then begin& K7 C) [4 V& Z
% q) {' @4 Q* d1 F) Q4 D) Z# `/ J& r
//那么就提示物品兰已满
1 Y- N- P' v7 Z! J: @1 C4 s) N
               print ('say 物品栏已满');
6 i0 |; U  q: A7 G* z/ a" M
! w: B6 J# p7 |6 O8 Y
//检测结束
- e$ x8 E$ g7 p! J# ^+ m5 U! y
               exit;
) e& a  E# t, u& M/ l) u6 f0 }! Q
            end;( k1 _; k6 s. h  a
3 f3 q+ f7 M3 s$ k
//如果背包有空位置,那么继续
. E& B* e& ^, @% D- n

$ k$ ?# ~+ B4 O0 E5 Y) j. P$ q, ?
//没收牛角: Z- }3 }* a' }' n' a0 f& g3 s
" b  h, |5 p( ^4 y, J
            Str := 'getsenderitem 牛角:1';
+ p( R) k9 [3 [; w
            print (Str);& b1 B" L- S$ C4 |) U& a

: \0 q4 `9 t- ~# W1 j
//给牛俊弓服
; b1 i  o, T+ H  H4 @2 f) Y+ V! [0 m
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';% |8 y* x- x, y% m9 E$ E; S
            print (Str);, d, e: W' }% _
            Str := 'say 收好了..俺最喜欢的衣服~';
+ X1 \, W3 Y, B( [6 }
            print (Str);
: c" K7 W0 L( d. f- V
            exit;6 C/ F& V/ p, n
         end;
+ J8 X( _$ L; C& Q
, A5 _, [9 U7 n; F, k+ \2 |
//判断结束语句
! U' z  P: H9 N+ x9 }1 k$ W% D( C
      end;# g" p6 e( W9 H1 J
      exit;. h+ y- c: w& x' w

# _, i" ]9 }7 ~9 E
end;" F6 f- @, X; O1 @, E
) S. ]+ p- J6 y/ J
end.
+ t; l6 O! K) t. q3 Y0 G* d% F

3 s" X1 X- M6 ^  l0 e
end;
6 A+ p6 V0 {1 v% v- Z* g% Y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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