总则
- 一行一条指令,以换行分隔。
#开头为注释行,引擎忽略;# === 分段名 ===用作大段分隔。- 缩进只影响可读性,不影响逻辑。
- 简写指令与完整写法可以在同一脚本中混用。
- 中文全角符号与英文半角符号都能识别,推荐用英文半角。
头部配置
写在脚本最顶部,全部可选。不写则使用全局默认值。
#脚本: 野外刷怪
#绑定: 账号池
#模式: 轮询
#默认重试: 3
#默认等待: 0.5~1.5秒
| 配置项 | 说明 | 默认值 |
|---|---|---|
#脚本: | 脚本名称,仅作备注 | 无 |
#绑定: | 绑定的数据源名称 | 无 |
#模式: | 单账号 或 轮询 | 单账号 |
#默认重试: | 所有指令的默认重试次数 | 3 |
#默认等待: | 动作后的默认随机等待 | 0.5~1.5秒 |
单条指令内写的
重试: / 等待: 会覆盖头部默认值。简写指令
简写指令把「前置识别 → 执行动作 → 后置校验」封装成一行,引擎自动展开为完整三步闭环。
点击
点击 <识别目标> [直到 <校验条件>]
| 写法 | 自动展开 |
|---|---|
点击 yolo:close_btn | 前置 yolo:close_btn → 点击 → 校验目标消失 |
点击 ocr:"确认" | 前置 ocr:"确认" → 点击 → 校验文字消失 |
点击 yolo:monster 直到 ocr:"战斗中" | 点击怪物,以进入战斗作为校验 |
点击 yolo:skill_btn 直到 yolo:skill_cd | 点技能,以技能进入 CD 作为校验 |
不写 直到 时:YOLO 目标默认校验「消失」,OCR 文字默认校验「消失」。
长按
长按 <识别目标> <时长>秒 [直到 <校验条件>]
示例:长按 yolo:skill_btn 2秒 直到 ocr:"蓄力完成"
滑动
滑动 从(<x1>,<y1>)到(<x2>,<y2>) <时长>秒 [直到 <校验条件>]
示例:滑动 从(500,1200)到(500,400) 1.2秒 直到 yolo:target_item
滑动默认使用二次贝塞尔曲线,先加速后减速,控制点带随机偏移。
输入文字
输入 <输入框目标> 内容 "<文本>" [直到 <校验条件>]
输入 yolo:input_account 内容 "${account}" | 点击账号框输入账号,校验输入框显示内容 |
输入 ocr:"密码" 内容 "${password}" | 用文字定位输入框并输入密码 |
输入 yolo:chat_box 内容 "你好" 直到 ocr:"你好" | 输入后校验文字已出现在画面 |
引擎自动展开:识别输入框 → 点击聚焦 → 逐字符输入(每字 50~150ms 随机)→ 后置校验。
等待
等待 <识别条件> [最长N秒]
等待 <N>秒
等待 <N>~<M>秒
| 写法 | 说明 |
|---|---|
等待 ocr:"战斗胜利" | 一直等到出现该文字 |
等待 yolo:monster 置信>0.7 最长10秒 | 最多等 10 秒,出现即继续 |
等待 2秒 | 固定等待,不推荐,尽量改用识别等待 |
等待 1~3秒 | 随机等待,模拟真人停顿 |
等待 内部同样走三步闭环:等待目标出现(前置)→ 无动作 → 确认目标存在(后置)。
「等待识别条件」比「等待固定秒数」稳定得多,优先使用。
摇杆
摇杆 <方向> 持续<时长>秒
方向可选:上 下 左 右 左上 右上 左下 右下。
示例:摇杆 右上 持续1.5秒
完整写法
简写无法满足时(需要自定义前置条件或特殊校验)使用多行写法。
前置识别: yolo:monster 置信>0.7
执行: 点击 @monster
后置校验: ocr:"战斗中"
重试: 5
等待: 1.0~2.0秒
| 字段 | 必需 | 说明 |
|---|---|---|
前置识别 | 是 | 动作前画面必须满足的条件,不满足则不执行 |
执行 | 是 | 具体触控动作;无动作 表示只等待不操作 |
后置校验 | 是 | 验证操作是否生效,不通过则整行重试 |
重试 | 否 | 覆盖头部配置,默认 3 |
等待 | 否 | 动作后到校验前的随机等待,默认 0.5~1.5 秒 |
@目标名 引用前置识别中已定位的目标坐标,避免重复识别。
识别条件
YOLO
yolo:monster 置信>0.7
不存在 yolo:close_btn
OCR
ocr:"战斗胜利" # 精确匹配
ocr_contains:"网络" # 包含匹配
不存在 ocr:"确认" # 反向条件
VL 大模型
vl:"角色血量是否低于30%,只回答是或否"
VL 调用间隔不短于 5 秒,且仅作为兜底手段。
组合条件
yolo:login_btn 置信>0.6 且 ocr:"登录"
控制流
条件分支
如果 ocr:"账号或密码错误"
标记失败
跳过
否则
标记成功
结束如果
循环
循环 5 次
<指令块>
结束循环
循环
<指令块>
结束循环
数据源轮询循环
循环(轮询)
<登录 + 业务 + 登出切号>
结束循环
引擎自动管理:取出账号 → 执行循环体 → 登出 → 取下一条,直到数据源无待执行账号。
账号控制与状态标记
| 指令 | 说明 |
|---|---|
标记成功 | 把当前账号状态写回数据源为「成功」 |
标记失败 | 把当前账号状态写回数据源为「失败」 |
跳过 | 标记跳过,直接取下一条账号 |
停止 | 立即停止整个脚本 |
状态: <名称> | 状态节点标记,不执行操作 |
引擎用
状态: 构建脚本状态表。当游戏画面与脚本进度不匹配时(例如中途掉线回到登录页),
会自动回退到最近的匹配状态节点继续执行,这是脚本能长期无人值守运行的关键。
变量
| 变量 | 作用域 | 说明 |
|---|---|---|
${account} | 仅登录阶段 | 当前数据源行的账号 |
${password} | 仅登录阶段 | 当前数据源行的密码 |
变量在执行时替换为当前账号对应的值。登录成功后的脚本行再使用变量,语法检查会标红警告。密码在日志中掩码显示。
完整脚本示例
单账号野外刷怪,全简写:
#脚本: 野外刷怪
#默认等待: 0.8~1.8秒
循环
点击 yolo:monster 直到 ocr:"战斗中"
等待 ocr:"战斗胜利" 最长30秒
点击 yolo:loot
如果 ocr:"网络断开"
停止
结束如果
结束循环
更多完整脚本见 脚本示例。