游客您好
  • 点击联系客服

    在线时间: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 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
任务策划:
" c% n7 I" m0 e2 w出入江湖,当然要证明自己的实力。什么??实力?还是先证明你的力量吧!! F- f, r0 `( g# R
来到新手村杀牛,牛爆牛皮、牛肉、牛角(有点残忍)
- w% s( p3 k' |7 N' G收集这些材料交给屠夫,他会奖励你东西
& c: F6 e) U) }1 k这里,我们设计用牛皮换金币,牛肉换银币,牛角换牛俊弓服。+ g. c/ r' t" t3 k
- M: w+ e; [; K2 o4 ~2 J& M, S- N
目的:
- z  r* A* }$ C2 `! w体会最基本的活动都是怎么设计的
" h; C/ }* Q% f! M8 \/ m7 n8 d
# D9 W6 w* J( b知识点:( `8 e( A3 p& V" J7 ^5 Q$ R
1、检测包裹里的物品* ~6 ~) [: J# H1 J
2、检测包裹空间
5 r2 R; q  O3 {( ?, |4 v/ U9 f/ P3、给与物品4 T0 [. w! k( P+ i/ {) A  k7 a
4、没收物品
//这部分先声明脚本的名字。如果脚本出错,tgs会做一个错误纪录,文件名就是我们声明的这个。
& C6 L: O# |! n% b& b" x/ Z& z- U
! ~2 g/ K9 R3 q
unit 屠夫;# q: p5 U% c! N0 l: f/ k
5 f! K% F* h  A5 T! N
//下面的是通用的调用程序内建的函数。每个脚本都有的。; M! U. C, u% [* G1 o) W) t
+ n- A6 f3 A9 a+ j( R: D% Y
inte**ce
! o  P2 u8 ], q+ B- d1 ?7 D

8 W- T& Q/ E. o! M
function  GetToken (aStr, aToken, aSep : String) : String;
2 J" i9 _& D4 c7 H# X" }% p: f2 g& {
function  CompareStr (aStr1, aStr2 : String) : Boolean;7 m3 ]4 X, K7 x/ Y. _( x5 h
function  callfunc (aText: string): string;- [2 K( v( o* B6 [% r0 W) h- ]
procedure print (aText: string);2 ?$ R2 M0 m! ^5 V. b
function  Random (aScope: integer): integer;. d0 W  ~* _& H/ n
function  Length (aText: string): integer;
. ?& x, N' v- \7 g
procedure Inc (aInt: integer);
+ o3 `. ]2 L  s+ k2 a" x( {7 {9 J' I
procedure Dec (aInt: integer);+ C4 ^$ ^! e# c0 p& ~0 d( j0 r
function  StrToInt (astr: string): integer;0 r' g2 `- e2 P- N4 Q& K+ \
function  IntToStr (aInt: integer): string;
6 q- f* k0 q# Y5 [
procedure exit;
3 \3 p( n6 _* q7 H, z: C

* T0 K0 g$ S  J0 c
//下面的就是针对本脚本的函数了。注意,用到什么就在这里声明什么2 j9 q! ?9 Z3 {/ a

8 G; L- p& _4 p4 Q. z
//第一句的意思是当反馈参数的时候响应,比如牛肉换东西,我们弄个参数niurou
) Q( d0 p" S, D! i% s

" s6 m: y6 R# [
//第二句的意思是当左键单击的时候响应,
7 l7 R8 J5 M9 B) R0 {& r% Q

; p) G) m8 S* Q
procedure OnGetResult (aStr : String);
+ H' t4 ?! L) {
procedure OnLeftClick (aStr : String);
. g  v8 o; j( w6 {  O
9 k0 E& f+ ?7 f# [1 C
//以上是脚本的头部,下面是脚本的主体部分" J2 @4 K6 P. i- R. r2 J

8 c7 d( J% n7 M: M7 G
implementation
5 Q1 p& a9 s6 S& I

% c8 O" l3 {; K( |
//当左键单击时7 T4 M8 }! R& D( W+ o) |, y( y- D4 z

; p# k2 `/ H3 N
procedure OnLeftClick (aStr : String);
5 Z- ], L; y& d
2 C$ g- E, A- U
//声明变量的类型+ \4 S: X1 x2 f: [3 U( g
var
. i8 M9 K$ {6 S; q7 b

, _4 U  W& \( [7 S6 J: |
//Str变量为字符串型
3 j( C1 L2 Q) Y% m- k, h9 e5 {
   Str : String;
+ b1 e# M; N& l% ?

- _$ V' d5 _( T; N0 ~6 `
//Race变量为整型
! C: f2 h) g( h0 U
   Race : Integer;
+ M; u2 b' c# \+ _8 `' X0 \
begin
9 `% {. a9 j1 V) p$ R
7 ^* x) e% e3 a- ?
//获取点击者的种族
. Q& i& A- c  Q) A$ A0 P
   Str := callfunc ('getsenderrace');
4 o! z+ p0 p3 t" G% |+ A# s

- x) o- t  P* t+ g( z! [
//将获取的值由字符串型转换成整型' z2 _5 Y9 U0 m2 W
   Race := StrToInt (Str);
2 l% Q/ Z$ Z: W1 n

; Y" n* _5 _; U3 x( {9 [+ x/ K
//如果种族为1,这里种族为1代表是玩家
2 l/ y( t# ~0 @) \& W$ B; `5 G
   if Race = 1 then begin! V8 e: n) s' n
0 Z+ A& H2 E: Z4 Z
//那么调出Help文件夹下的对话框 注意,这里对话框的类型是1 也就是不带滚动条的那种
% ^$ L- i$ m( c9 c
      Str := 'showwindow .\help\屠夫.txt 1';
" X9 ?  f/ z+ `) _: [7 ?2 R( G) v
      print (Str);5 N0 s0 M1 S/ a( f0 t/ ?! \; r

; i, U6 c' p8 ?( a( x
//小判断结束/ g. W' o( o: \$ z6 x: H
      exit; ) I4 l4 e. k2 ]; N
   end;; K& f! i6 a. \8 z  c
1 g' R7 \7 x/ }0 [
//一个语句段结束$ o1 S% l! @+ W/ s' n; @# F! @
end;& F8 n- t2 ]; R  Z

" Z3 m/ D1 i" f, f" a+ }$ j. T; ]) h" d% q
//另一个语句段开始
' \* ^. l* h9 B9 z) t- k
. V! l' i; X! q" u/ u+ q2 n1 ?2 T9 ^
//当从Help文件里反馈回命令参数时,做出响应
! R& }% E: O! c0 \/ f9 f
/ S3 K( `1 e, R( s+ t
procedure OnGetResult (aStr : String);$ h  ~& I7 w2 _( O0 n/ \9 ]6 I
var
$ P! X' Q* N5 e8 C! ^6 V: ?
   Str, Name : String;/ i) i; ^7 f% \/ c) V- p
begin8 ]9 t( b5 g* `/ s+ w9 \

3 f9 {. Q7 f4 p7 }- G/ c
//当反馈参数为close的时候就关闭对话框
" I9 e3 o- ]% L
   if aStr = 'close' then begin: f3 b( g& [( s$ w* B8 V: u
      exit;8 B3 k. k4 a" }2 h
   end;) o0 o: u  e; a* }* n$ u

9 F3 F/ F0 I# C, ?9 P
//当玩家选择niujiao 的命令时
0 Z% x; P7 q3 R1 Q  E0 d
" m) H+ c! t" I* e+ t+ C
   if aStr = 'niujiao' then begin
- L/ f) |( ?$ M" ?$ n- _
0 I# u3 b  G6 J2 r+ I# ^
//检测背包里是否有牛角5 z7 |5 x  a  u& g: {
      Str := callfunc ('getsenderitemexistence 牛角:1');' V' V: O; D* N
6 j; a& {. U4 [$ e2 T
//如果反馈信息为假,也就是没有7 b! }4 E, P+ c  N# f$ U/ d, b
      if Str = 'false' then begin
7 }& J! s1 F: C% B1 o

0 H: F( L$ s6 K8 A4 F
//屠夫说话# Z/ K! V  N( t& Z; e0 R7 N# m, F
         Str := 'say 快弄牛角再说';
8 A( y' i  g8 s6 a% t2 Y! ?4 K
         print (Str);- y! a+ f, S* f0 r- _

# g; T/ R) A: \! S9 B7 n
//检测结束, z! Z' v; H) \% D7 G
         exit;
( M" [" `2 D! r9 U/ Y8 o
      end;
% r  Y  n; a% g1 {4 F5 d
+ Q$ }) z9 n' A5 Z! n
//如果有的话就继续执行下面的
6 }- D! X# v3 F$ W3 ^/ \

! A- U0 Q$ H3 Q, V- M
         if Str = 'true' then begin3 U2 K$ h9 a3 p7 g$ {2 F4 D

* X8 b: E9 K4 ]8 ]6 o* c) `# T
//检测背包是否还有空位置, |& U% `$ Y2 p2 }3 E, L; \
            Str := callfunc ('checkenoughspace');  p2 r  d5 i0 l3 y
- M8 f+ K8 J6 [
//如果返回值为假,也就是没有
" f9 o) ~5 h/ O, I
            if Str = 'false' then begin  I8 k! \( k8 t: x

; V) F2 B, B) H5 E8 G* ?7 P8 |
//那么就提示物品兰已满6 m- O: {/ r! ]
               print ('say 物品栏已满');
7 M1 n7 {' ^; f) A( y' _
1 n/ x5 p3 z# T# ^
//检测结束# o9 s+ V! K: k0 o; l
               exit;: ]) g: u: J% G; J1 {. H* K3 U
            end;
; R' k% ^( f% _6 Z0 O

7 T0 b* R" q0 f9 e9 u) J) W
//如果背包有空位置,那么继续/ k% K' O6 @% ]) g% m
6 r( z- T" Q3 Q3 m
//没收牛角( v3 N) q' M% s

: ^" w3 @. j+ ^5 ~1 Z- f1 Q4 q
            Str := 'getsenderitem 牛角:1';
1 c( f- A* [3 V6 J% d4 T
            print (Str);3 [( a' D7 s% n' i
, R; z1 {  e9 n) c7 j$ |1 Y
//给牛俊弓服* [) ^2 W8 V; [' k- h" q
            Str := 'putsendermagicitem 牛俊弓服:1 @屠夫 4';) k! b7 M* u$ ^" N" k' R0 L
            print (Str);' e3 M1 n9 g6 d6 Z
            Str := 'say 收好了..俺最喜欢的衣服~';
2 N6 G5 ^0 O% _: C: s( R
            print (Str);
1 x( ^& ~; T. K5 l" \
            exit;
' d6 ?- R* n8 v+ I6 K1 K( Z5 O
         end;
" G* s  _) Y" k; }) b
, Y. n& H6 B+ k+ M1 a3 j
//判断结束语句( k& b" L# x- \' _  H& t
      end;
' Y4 \, W+ b2 g# }2 G2 F' v
      exit;" T" z6 @6 [7 I5 |* z) ]$ c
! e) w0 n2 U8 i" r6 [+ D3 Y6 i2 H" {
end;6 ~9 k+ q" y" O' Y9 U8 H. N( N

) Z1 C5 {) K! ]+ N+ ]. ?4 L! u
end.( B& s4 e4 M. W! h% x' Z/ m4 f2 C9 k9 ]
4 ^/ s  ]3 p1 B1 j! K
end;

/ }  c% j& X5 C9 w; j# }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

三千游戏官方客服

扫一扫二维码

添加qq客服

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