游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
9 _# u! }' b1 E& u出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!
' v! b. |/ @0 |4 \2 G9 V7 E# x' @来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍). `8 f; t5 p2 e* I" C
收集这些材料交给屠夫,他会奖励你东西
8 s- L$ F2 J2 @) V' W& v) p) w这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。, N- M  X8 ?7 x/ n: [' M
+ }% \, A, J) Y' V
目的:; S$ [5 a9 G1 U: e
体会最基本的活动都是怎么设计的
8 u  K8 _" ^. Z8 |
8 g" D. v3 y" Q- X- F* n, b0 e知识点:0 e3 ~8 y  @% Z
1、检测包裹里的物品
. I; }& p/ k6 z, b# }2、检测包裹空间- m1 ?0 T- T  n7 g6 y  D
3、给与物品
# N' a& x$ W" e& \1 [" @4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
6 l0 W' i% M2 E  C' R& N+ W
! e- Z( T  Q: p* w# b
unit 屠夫;
8 ^2 ?- a9 G+ i
5 G2 d2 p; y- `1 Q3 v+ J
//下面的是通用的调用程序内建的函数。每个脚本都有的。9 r5 P: q# L! m1 @8 D2 C
4 r& H9 F- q& b5 A6 m6 P3 b
inte**ce
5 I1 O6 A' [+ L" `6 \4 N
  r4 l9 K3 ^, _
function  GetToken (aStr, aToken, aSep : String) : String;  @8 a$ q! F: c; c
function  CompareStr (aStr1, aStr2 : String) : Boolean;; s0 W1 y0 J0 {" f, U! |
function  callfunc (aText: string): string;+ l/ M: K% U0 R- G3 R' Y
procedure print (aText: string);) V4 p; ]" a1 ?
function  Random (aScope: integer): integer;
& I! C' K- u( Q, F( f) ^
function  Length (aText: string): integer;7 _. g4 Y4 @6 L7 x+ w& t
procedure Inc (aInt: integer);
' w6 E# b/ I( b( S
procedure Dec (aInt: integer);+ ~* G4 v6 v+ u  M- |- J8 E" n
function  StrToInt (astr: string): integer;
0 s' `  V% w; J+ V# C
function  IntToStr (aInt: integer): string;1 J7 o# p5 U8 d
procedure exit;1 v* r7 T3 A, r6 C# ~: g; ?8 Z) V6 ?

1 Y! s+ F: w- j
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么
* }6 C6 `+ o5 ]7 S& L/ g# P

7 r5 L6 g: w+ J2 j. [
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou( a" K9 l; {- x  s1 S& I8 H

% }' L* E/ [* F9 J
//第二句的意思是当左键单击的时候响应,
: {8 w' W) D2 B' j; u- }1 t5 E/ j

' T5 e' c: P, F4 a8 u8 t  z
procedure OnGetResult (aStr : String);
: ~% m& M$ M$ A! N% i# p
procedure OnLeftClick (aStr : String);
9 o3 M0 |% ?  H
$ z3 I+ `. ]. }4 \1 a
//以上是脚本的头部,下面是脚本的主体部分
2 }; \) \# T( G+ k
" l' R: [. ?6 t* j2 Q
implementation
, z6 X3 x1 D& B% T- _! I) @
  x* y8 U( M* ^
//当左键单击时
* [3 Y4 _4 K! l; _

" F. f* f, u8 i  y/ Z
procedure OnLeftClick (aStr : String);% d7 F' T+ q; }1 L- c& v2 I
  O  I/ R% O3 j% H
//声明变量的类型9 M$ I+ a- b9 E! }- I# _, [1 N, y
var6 v; @- u$ H, p2 Y2 W: `: Q

- v, {9 a$ Z+ V. u) R$ B# T) l
//Str变量为字符串型
( x2 E) `% E* ?- }# m/ }8 B7 e# q7 Y9 c
   Str : String;
, K* u' E% S6 b2 n* Z6 L' o0 @

. l9 _# ~8 W% O
//Race变量为整型
9 j. q; i: O* K- T9 n+ @) A/ G
   Race : Integer;5 R! O# G5 E9 L. u$ v# n+ |( F
begin
! s6 K8 t$ T* O# ?9 ^
: t( u  Q8 O2 X$ k8 n: ~
//获取点击者的种族
7 F  M" k6 Z9 j7 d$ a5 K
   Str := callfunc ('getsenderrace');
& J2 k3 u4 f5 [& Y' w# d, O/ ~1 e

6 r0 `. I  h* P2 N
//将获取的值由字符串型转换成整型
& H6 l" I+ G0 i8 l% c
   Race := StrToInt (Str);) w& m8 t' ~  n( Y- D/ Y5 _

# n0 i; o+ U1 [3 [/ M: b
//如果种族为1,这里种族为1代表是玩家; D1 e  Y. B5 S4 K
   if Race = 1 then begin
2 R" b% {. c, P
3 V; _: t, M  s2 o6 x# R7 N' e6 o
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种; F. N$ V1 o8 O' h8 r" d' n
      Str := 'showwindow .\help\屠夫.txt 1';
2 H( y; J. l) ~2 V) O) v6 ~
      print (Str);( M/ H7 s( p% @; i+ U$ @9 T
0 T' `' v/ ]( ?8 j4 \9 I
//小判断结束
+ `$ R) M/ `& N1 \+ b3 N
      exit;
: |0 T( I% U; S9 X& a
   end;
6 g! D$ h+ B+ t/ I' u' ~
7 Z6 a1 U9 B4 F4 G9 y, t& q) ~
//一个语句段结束
  T( ~0 k% T: T* S
end;
7 j) @- S' r# X8 ~; e# F9 {: o
% ^- ^: O% m3 f8 c2 h7 W
//另一个语句段开始
& }$ Z8 k2 O, Y9 T* z9 S, C# ^
1 h3 b! W- r9 X) g* t
//当从Help文件里反馈回命令参数时,做出响应
4 o' Y* ~% v  y7 Y
# ?2 U4 E) F3 x. Q
procedure OnGetResult (aStr : String);* m6 a, d0 v( I5 {" @
var
7 W& v5 |) U+ V) b
   Str, Name : String;
+ \. u" g* ~- k
begin
  N0 D5 D9 h( A" D

, R# ^0 e" R/ n4 U6 O
//当反馈参数为close的时候就关闭对话框
: u' ?! h* e* W, B
   if aStr = 'close' then begin
  m; D/ l# D+ F6 D" \( m4 J
      exit;
( T) q) t- Y# f: i& @6 x
   end;
9 I" {9 q/ e. X6 ?& m8 D; W
: w/ i& y6 @( M8 W  n7 x
//当玩家选择niujiao 的命令时. L* Y, d0 r1 g

# l' r# w$ `: ?% V  _% H
   if aStr = 'niujiao' then begin* N+ p1 d' P8 t5 d4 X

5 |% N3 [" v4 v" ^( x
//检测背包里是否有牛角/ R' S( x. C' A* M- k9 b
      Str := callfunc ('getsenderitemexistence 牛角:1');3 w# a4 k6 E- P
9 [& E$ x2 D/ |
//如果反馈信息为假,也就是没有
7 [6 ~) K/ S6 P
      if Str = 'false' then begin
( Y6 l' t4 F+ c+ u: Q: |% h+ B; H7 r

$ ^9 O/ `! h+ {0 M+ u
//屠夫说话+ H5 d# J9 r6 f1 [) @0 [
         Str := 'say 快弄牛角再说';
6 `# K. J6 L! j" {/ Z
         print (Str);9 O- T7 [0 \! Z* L$ ~$ u# H
) u& A" {( e, J7 v9 l  u. ]$ N3 |
//检测结束
1 W! O- ?6 N/ Q5 Z4 a1 h* x
         exit;
7 g- [$ r: k9 {6 C) E2 y
      end;
5 G& c( |9 Q* r5 Y4 r! E3 U) |# v

2 [; O6 D" k( a( q( _6 v8 h
//如果有的话就继续执行下面的' A# N+ g7 [: J

# w" H0 G/ a, x0 m5 z1 H
         if Str = 'true' then begin& d" \& c+ b& J

- E% Z) q) y9 p2 E1 W4 l
//检测背包是否还有空位置
8 N, h1 h/ q& D$ E
            Str := callfunc ('checkenoughspace');
) w) J4 Y" f7 h' o  B
5 [# G- @' J9 d  v% z: R* r( _
//如果返回值为假,也就是没有; H- e/ n/ |4 ?: z9 }
            if Str = 'false' then begin
# Y% T! B( H7 B
6 F; b0 I0 O9 F9 M& t
//那么就提示物品兰已满9 A' E) Q- A& x; x
               print ('say 物品栏已满');' @  f! M' _; K! _" n. r

6 W: }. B: w5 a
//检测结束
# u! y" w0 i( t3 k4 C
               exit;& d) S1 T0 I  ~  p8 ?5 H  T: w7 N
            end;
- W# I8 n2 J4 K: `7 z9 D

5 L+ x( Z& M+ }7 Z5 Y7 C
//如果背包有空位置,那么继续
( X* N: ?/ O, z  r* u# L

% \$ y, z- V4 t7 r
//没收牛角
. K. B: E; k& m
' I6 \4 }! I" p+ N) Z9 q
            Str := 'getsenderitem 牛角:1';
2 B- \7 J% I7 A  T! N4 K, m$ y
            print (Str);, P8 w. p1 ]3 k' c
6 H2 M, n0 a# J! l+ o( |' v$ n
//给牛俊弓服; y' `. D3 r, u2 d% g6 R
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';# N% X2 J5 h3 x5 O. B3 R" ~1 v
            print (Str);
& b3 N) S8 V! v8 [' z! J- n" h
            Str := 'say 收好了..俺最喜欢的衣服~';
: a' V8 B* H* B! d+ U. [4 p
            print (Str);# X2 t  p( h; N: _9 }5 z3 M; O$ _
            exit;  q8 I0 F$ W8 Y( Z1 h3 @0 T
         end;! m1 y& h2 ]7 L

" k$ T0 L/ J- q: g% v! d( Y
//判断结束语句# t# T  S& s; G$ b. l% H
      end;) q. v$ d" S0 j: k: U  T7 V
      exit;% F  M: j/ ~) `4 Q/ g8 O

( A/ r  V7 n4 j0 d6 V6 u5 ^5 c
end;
( l' Z" S4 P7 i1 X, d% C; s

; U5 k) p7 I8 \1 O6 W
end.
# Z1 u( D+ X7 V5 i! G

" f# p" c+ ?) J) P( Z- C+ w
end;
' Y9 n  f& I9 J" ~9 x. M/ M
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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