THE KINGDOM CODEX · 挂机工具

IKOK 脚本语言:段、变量与控制指令

从第一个示例学会场景、变量、循环、条件判断与跳转,逐段对照完整代码。

攻略指南历史公告与活动查看来源反馈勘误
我的笔记笔记输入即保存;标签离开输入框后保存。内容只保存在当前浏览器,可在随身笔记中导出。
展开法典
18
行前准备与路线5 步导读 · 展开查看
脚本语言:从段与变量起步 · 原创意象
脚本语言:从段与变量起步原创意象
THE FIELD GUIDE

脚本语言:从段与变量起步

段名在同一脚本里必须唯一,begin 是起始入口;命令行中间那一段可以留空,需要按回包缩短等待或重试时再填。

出发前,放入行囊勾选仅记录你的准备进度。
  1. 01
    照抄第一个示例

    命令行格式是「执行后等待时间:行为控制段名:游戏指令」,%scene 定义段、begin 是入口。

  2. 02
    分清命令与保留字

    say、cast 是发给游戏的命令,% 开头的段声明、if、for、loop、wait 由脚本引擎处理。

  3. 03
    遍历数组

    foreach 已经推进数组,不用再写 %ia;固定次数的 loop2 要自己决定何时推进。

  4. 04
    写条件判断

    If…endif 后面的那句不是 else 分支,条件成立与否都会执行。

  5. 05
    选跳转方式

    单纯切换任务用 jump 或 goto;需要回到原流程时用 call 配 return。

本篇收录 6 节1,392 字与表格内容
查看本篇的全部关联

01第一个脚本:发送后再等待

IKOK脚本是普通文本,可以用文本编辑器编写,再载入机器人。%scene定义一个具名正文段,begin是保留的起始入口;同一脚本中的段名必须唯一。旧手册将IKOK称为模仿ZKOK的非脱机工具,后来的2.x已经另有脱机版,语法演进见版本说明。

原手册第一个脚本:发送say,再等1秒。
2 行原文
%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以后又明确类型与下标语法,应按所用版本选写法。

原手册的数组声明。
5 行原文
输入后定位命中行
%variable a
aaaa
bbbb
%variable b
aaaa

04遍历数组与固定次数循环

foreach依次读取数组;原片段未单列scene入口。
8 行原文
输入后定位命中行
%variable a
aaaa
bbbb

foreach a
1::say %va
loop
1::say 结束

依次发送aaaa、bbbb、结束。foreach已经推进数组,不需要再写一次%ia。固定次数的loop2则要自己决定何时推进:

原手册固定两次的片段;%ia是产生同样输出的关键。
8 行原文
输入后定位命中行
%variable a
aaaa
bbbb
loop2
1::say %va
::%ia
endloop
1::say 结束
单独等待10秒;与发送命令后的等待区别开。
1 行原文
wait10

05条件判断与移动

原片段:最后的sing在条件块外。
4 行原文
If ( %m<100 )
1::sing 没魔了
endif
1::sing 有魔

MP小于100时,先唱“没魔了”,之后仍会唱“有魔”;MP大于或等于100时只执行后一句。第二句并不是else分支。

原手册的移动示例,照录其略写形式。
3 行原文
do (%sx!=1 || %sy!=1 )
run 1,1
1::say 跑到了

06jump、goto与call返回

原手册:低MP时跳到ddd段。
7 行原文
输入后定位命中行
%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