分享
向下
Admin
文章數 : 45
注冊日期 : 2017-09-28
檢視會員個人資料http://gkkhk.666forum.com

ZKOK各种语句的用法

于 周二 4月 24, 2018 11:48 pm
多数的用法在zkok帮助中有,只有个别的没有。 
1 重启后的连接 

shutdown <数> 
比如: 
shutdown 300 
就是五分钟后重连。注意数不能为0 

"shutdown"(无参数)或"shutdown 0" 
则表示中止GKK的运行,不再重连。 

%public_bc 
restart::@restart 
shutdown:600:萬王之王的世界將在 1 分鐘後重新啟動。 

利用restart还可以不由begin开始运行。 
如 
restart:second_begin:@restart 

2 if应用 
当hp大于400 
if (%h > 400) 
....(這裡是你要執行的指令) 
.... 
endif 
当mp大于1000就不执行下一条命令 
if (%m < 1000) 
...(這裡當你的mp少於1000時便執行的指令, 多過1000便不執行) 
endif 


3 替换的应用 

收人要求站在特定的位置: 
%public_bc 
call:banish:%b%+(%$)告诉你 : %*开我%* 
call:banish:%b【换成你的城市名】%+(%$)%*开我%* 
call:banish:%b【换成你的城市名】%+(%$)%*开除%* 
call🉑%*向你申请户籍 ! 

%scene banish 
::banish %1 
return next 
%scene accept 
20:test_bc:accept ?????? 问号就是指定的位置不要说你不懂 
return next 

要解释一下: 
call:banish:%b%+(%$)告诉你 : %*开我%* 
其中:%b表示把匹配的内容用%0~%9替换 
%+为第一个匹配,替换为%0 
%$为第二个匹配,替换为%1 
前一个%*为第三个匹配,替换为%2 
后一个%*为第四个匹配,替换为%3 


4 关于小写替换 

用例子说明一下: 

%scene begin 
100:wait_bc: 

%bc wait_bc 
call:pot:%b%*(%*)告诉你:加潜能 
call:pot:%b%*(%*)回答你:加潜能 

%scene pot 
50:pot_bc:Cast pote??? on %{%1%} 
return retry 

在%{和%}之间的任何%替换内容中的大写字母都会被替换成小写。 
注意下面的区别 
%{%VA%}: 替换成变量a的右值,如果值中有大写,则替换成小写 
%{VA%}:VA不是%替换值,所以维持原状。 

5 trap的应用 

trap可以加在任一正文段中,设置之后一直有效。 
例如: 
%scene begin_trap_hp 
trap hp 200, 300 
return 
遇到下面的情况取消对hp的trap 
restart 
或 
trap hp 
(后面没有参数) 

因为帮助文档不详,这个问题好多人问,我今天刚刚研究出来,贴给大家看,呵呵。 
另外,自动恢复法力(吸魂等)的原理是一样的,只要改成mplow即可。 
%public_bc 
call:drink:@hplow 

%scene begin 
trap hplow 350,400 

%scene drink 
0.1:drink_bc:drink potion 
return 

%bc drink_bc 
stop::What? 

6 run的运算 

@&run 
ZKok有更新,终于加上了字符串运算(早就要加,一直懒得写), 这样可以实现了。 
注意表达式要用()括起来 
50:run_bc:("@&run [" + (%sx - 3) + "," + (%sy - 3) + "]") 

7 关于变量的使用 
"a - z" 26个变量,都可以使用, 如果变量没有被%variable定义,直接赋值,否则用变量的值数量取模 

如果变量没有被%variable定义 
(a = 10) %oa: 10, %va: 10 
($a = "abc") %oa:???, %va: abc 

如果 
%variable a 
xxx 
yyy 
abc 
(a = 10) %oa: 1, %va = yyy (10 %3 = 1) 
($a = "abc") %oa:2, %va=abc 
($a = "sadf") %oa:??? %va:??? 


8 ZRobot 3.0的行为控制段 

行为控制段也可以增加条件判断 

%bc stun_bc 
retry::你上一个动作.... 
... 
on (%m > 300) 
retry::%i0你... 
on (%m <= 300) 
next::%i0你... 

%scene begin 
50:stun_bc:cast stun on %v0 
50:storm_bc:cast mind_storm on %v0 

9 ZRobot 3.0的循环 

1. do/loop 
%scene ... 
... 
do 表达式 
... # 循环内容 
loop 表达式 
... 
说明: do / loop后面跟的表达式结果不为0时, 继续循环. 
表达式可以省略, 表示条件永为真. 
2. foreach/loop 
%variable x 
... 
%scene ... 
... 
foreach x 
... # 循环内容 
loop 
... 
使用foreach/loop, 就不用主动使用变量的加一操作了. 
foreach 后面跟变量名 

3. 在循环中可以用break或continue来控制 
break和continue也可以放在行为控制段中. 

%bc xxx_bc 
break::你的身体状况不好.... 

10 进行坐标判断 

do ((%sx != 67) || (%sy != 108)) 
1:: 
loop 


如果要跑到[50,100], 可采用的几种方法: 
  
1. 在[50,100]处设置地面信息 
2. 用%sx, %sy, %sc等来判断 
  ::@&run [50,100] 
  do 
    1:: 
  loop ((%sx != 50) || (%sy != 100)) 
3. 使用trap 
  %scene ... 
    trap position (50,100) 
    50:run_bc:@&run [50,100] 
  
  %bc run_bc 
    next::@position 

11 改额点的命令: 

setup dex -n 
setup con n 
n=你的额点数 

dex=敏捷,con=体质,int=智慧,str=力量 

12 自启动功能 

C:\StartKok.txt 
那么只要运行 
....\ZTerm.exe C:\StartKok.txt 
即可, (可以做成个快捷方式) 
自启动文件的格式 
帐号名:帐号密码:角色名:角色密码:服务器 
帐号名:帐号密码:角色名:角色密码:服务器 
... 
帐号名:帐号密码:角色名:角色密码:服务器 

我们使用机器人或者外挂,目的无非是练级和打钱,zkok是专为zkk设计的,所有也是最好的,这要感谢jet2k。 
第一课:zkok的安装运行,帮助文件已经很清楚,如果有不明白的请提出来,下面以牧系练功代码为例,一步一步的解释。 
%variable s 
# 这是变量段,每个变量段定一个变量,ZRobot只允许有26个变量,变量名可以是"a"-"z"("A"-"Z", "0"-"9"),这里是定义变量s。 
(0,2) 
(0,3) 
(1,2) 
(1,3) 
(2,2) 
(2,3) 
(7,3) 
(8,2) 
(8,3) 
(9,2) 
(9,3) 
(10,2) 
(0,20) 
(0,19) 
(1,20) 
(1,19) 
(2,20) 
(2,19) 
(7,19) 
(8,20) 
(8,19) 
(9,20) 
(9,19) 
(10,20) 
# 以上是npc的相对坐标,zkk的相对坐标是以你为中心,所能看到的屏幕分成10x20的方格,左上为(0,0)右下为(10,20)注意必须是小括号,如果你是大臣打开网格就明白了。 
%variable a 
[72,152] 
[52,150] 
# 以上是定义变量a为用罗盘测出的坐标,必须用中括号,这里是两个坑的中心坐标(就是站在骷髅头上的坐标) 
%scene begin 
#每一个代码必须有的,也是从这里开始运行代码的。 
::%ia 
# 变量a内的值加1,例如,原来变量a是[72,152],执行这个命令后成为[52,150] 
20::@&run %va 
# @&run 是跑的指令,后面可以是坐标和相对坐标,%va是变量a的内容,20是执行@&run [52,150]命令20秒,就是向第2个坑跑20秒,跑不到?就改成30秒 
goto kill 
# goto 跳转到指定标号或指定正文段,这里是转到%scene kill 

%scene kill 
# 定义正文段kill,zkok可以存在多个正文段 
1:kill_bc:@&kill (0,2) 
1:kill_bc:@&kill (0,3) 
1:kill_bc:@&kill (1,2) 
1:kill_bc:@&kill (1,3) 
1:kill_bc:@&kill (2,2) 
1:kill_bc:@&kill (2,3) 
1:kill_bc:@&kill (7,3) 
1:kill_bc:@&kill (8,2) 
1:kill_bc:@&kill (8,3) 
1:kill_bc:@&kill (9,2) 
1:kill_bc:@&kill (9,3) 
1:kill_bc:@&kill (10,2) 
1:kill_bc:@&kill (0,20) 
1:kill_bc:@&kill (0,19) 
1:kill_bc:@&kill (1,20) 
1:kill_bc:@&kill (1,19) 
1:kill_bc:@&kill (2,20) 
1:kill_bc:@&kill (2,19) 
1:kill_bc:@&kill (7,19) 
1:kill_bc:@&kill (8,20) 
1:kill_bc:@&kill (8,19) 
1:kill_bc:@&kill (9,20) 
1:kill_bc:@&kill (9,19) 
1:kill_bc:@&kill (10,20) 
# @&kill (0,2)是镖相对坐标(0,2)处的npc,kill_bc是根据行为控制段%bc kill_bc的内容,来决定镖完了作什么 
100:holy_word_bc:cast holy_word on 
# 放圣言,然后停100秒后执行下一个命令,如果holy_word_bc跟对应的行为控制段%bc holy_word_bc匹配的话,执行匹配的命令。 

%bc kill_bc 
# 定义行为控制段kill_bc 
goto:begin:这里没有任何生物。 
# 跟前面的镖npc的命令对应,如果镖npc,屏幕显示:这里没有任何生物。那么执行goto begin 

%bc holy_word_bc 
# 定义行为控制段holy_word_bc,跟放圣言对应 
retry::你正忙著呢 ! 
# 当放圣言的指令发出后,屏幕显示:你正忙著呢 !重新执行放圣言的指令 
retry::但是什麽事也没发生。 
# 当放圣言的指令发出后,屏幕显示:但是什麽事也没发生。重新执行放圣言的指令 
retry::你的法力不够 !! 
retry::你上一个动作没有完成, 不能施法! 
retry::你在胸口画出一个神圣的印记,结束了你的圣祷。 
goto:run:你现在不在战斗中。 
# 当放圣言的指令发出后,屏幕显示:你现在不在战斗中。跳转到 run,这里的作用是用圣言杀死npc后跳转到净化段。 

%scene purify 
#定义purify 
foreach s 
# foreach 和loop 配合使用,执行它们中间的命令,遇到loop ,foreach 后面跟着的变量加1 
100:purify_bc:purify %ps 
# 净化相对坐标处的尸体 
loop 

%bc purify_bc 
next::你面无表情地将%*的尸体埋葬, 并安抚他的亡灵, 眼中流露出难得一见的慈悲。 
# 净化指令发出后,屏幕显示:你面无表情地将%*的尸体埋葬, 并安抚他的亡灵, 眼中流露出难得一见的慈悲。执行下一个命令,就是净化下一个。(%*可以代替任意字符) 
next::一个朦胧的灵魂从你眼前飘过, 向你微笑後, 散入无尽的天空。 
next::你现在还不能处理这具尸体。 
goto:begin:这里并没有需要净化的灵魂。 
# 净化完了,重新开始。
回頂端
這個論壇的權限:
可以 在這個版面回復文章