01第一个脚本:发送后再等待
IKOK脚本是普通文本,可以用文本编辑器编写,再载入机器人。%scene定义一个具名正文段,begin是保留的起始入口;同一脚本中的段名必须唯一。旧手册将IKOK称为模仿ZKOK的非脱机工具,后来的2.x已经另有脱机版,语法演进见版本说明。
%scene begin
1::say hello world!命令行格式是“执行后等待时间:行为控制段名:游戏指令”。中间的行为控制段可以留空;需要根据回包缩短等待或重试时再填写。原讲解中出现sya,代码实际为say。手册第一节题记提到不产鸡翅的肯德基(kfc),第二节提到没有小火车的多多岛(ddd)。
02分清游戏命令与脚本指令
say、cast等是发给游戏的命令;%开头的段声明、if、for、loop、wait等则由脚本引擎处理。不要把游戏指令随意改写为这些保留字。老手册提醒一秒内超过三条命令,第四条可能被服务器忽略;这是当时限速,不是所有服务器永久适用的保证。
将每个scene用于一个相对独立的功能。作者建议当一段超过约50行、重复操作使阅读困难时,把公共操作提成新段,再用jump或call调用;50行是编写建议,不是语法长度上限。
03数组、数字和匹配结果
| 种类 | 声明与读取 | 原手册示例 |
|---|---|---|
| 数组 | %variable a声明,%va读取当前值;%ia前进,%za复位。 | a依次保存aaaa、bbbb时,首次%va为aaaa,%ia后变bbbb,%za后回aaaa。 |
| 单值数组 | 只有一项时,前进或复位仍指向这一项。 | 原例b只含aaaa;正文把复位误写为%za,应区分a与b。 |
| 数值 | 不需预声明;%ic递增,%vc读取,%zc清零。 | 适合记录次数,读取本身不增加计数。 |
| 匹配结果 | %b把捕获结果保存到%0~%9。 | 最多十个捕获槽,常用于收到私聊后收人、开除。 |
手册声明变量名a~z,建议小写;0~9是系统匹配槽。后续IKOK2.1.8的scene支持多字母变量,2.6.6以后又明确类型与下标语法,应按所用版本选写法。
%variable a
aaaa
bbbb
%variable b
aaaa04遍历数组与固定次数循环
%variable a
aaaa
bbbb
foreach a
1::say %va
loop
1::say 结束依次发送aaaa、bbbb、结束。foreach已经推进数组,不需要再写一次%ia。固定次数的loop2则要自己决定何时推进:
%variable a
aaaa
bbbb
loop2
1::say %va
::%ia
endloop
1::say 结束wait1005条件判断与移动
If ( %m<100 )
1::sing 没魔了
endif
1::sing 有魔MP小于100时,先唱“没魔了”,之后仍会唱“有魔”;MP大于或等于100时只执行后一句。第二句并不是else分支。
do (%sx!=1 || %sy!=1 )
run 1,1
1::say 跑到了06jump、goto与call返回
%scene begin
If(%m<100)
Jump ddd
endif
1::sing 有魔
%scene ddd
1::sing 没魔jump与goto都直接转到目标段;call记录调用位置,子段遇return才返回。需要回到原流程时用call/return,单纯切换任务用jump或goto。作者偏好少绕的流程,不把这一偏好写成禁止嵌套调用的规则。
DOCX在此结束,并预告下一节bc段,但附件没有该后续章节。反馈匹配、内置变量和坐标已在《IKOK脚本进阶》整理。
↗来源与版本
飞梦/17KOK、渔夫与2001年典藏版出现数值或机制冲突时,以飞梦所记相应服务器的后续有效规则为正文依据;同站更新按明确生效日期处理。旧规则保留年代与服别,未明日期的差异就近说明;原资料对照用于追溯。
对照原资料
查看 1 份来源与保存记录
ikok代码手册.docx
查看保存记录
- 来源编号
1tO-vteL3ZdalQZENfNxfufPojgkyb6n7- 资料集
- 台湾渔夫公开资料附件
- 保存时间
- 2026-09-07
- 原始位置
- ikok代码手册.docx
