示例一:英雄没有闪 — 公会任务日常
自动完成每日 5 次公会任务 + 公会悬赏 + 公会讨伐 BOSS,共六个阶段。 使用前需要针对该游戏训练好 YOLO 模型(类别清单见文末)。
公会任务日常.dsl
#脚本: 英雄没有闪-公会任务日常
#绑定: 英雄没有闪
#默认重试: 3
#默认等待: 0.8~1.8秒
# ============================================
# 阶段一:从主城进入公会界面
# ============================================
状态: 主城
等待 ocr:"主城" 最长10秒
# 点击公会入口按钮(底部菜单栏或主城建筑)
点击 yolo:guild_entry 直到 ocr:"公会"
# ============================================
# 阶段二:公会捐献(每日必做)
# ============================================
状态: 公会主界面
等待 ocr:"公会" 最长10秒
# 点击捐献按钮
点击 yolo:donate_btn 直到 ocr:"捐献"
# 基础捐献(1000奥术结晶)
状态: 捐献界面
点击 yolo:basic_donate 直到 ocr:"捐献成功"
# 关闭捐献弹窗
点击 yolo:close_btn 直到 ocr:"公会"
# ============================================
# 阶段三:公会任务(每日5次,SABC难度)
# ============================================
状态: 公会主界面
# 进入公会任务界面
点击 yolo:guild_task_btn 直到 ocr:"公会任务"
状态: 公会任务列表
等待 ocr:"公会任务" 最长10秒
# 循环5次任务
循环 5 次
# --- 3.1 刷新任务到S级(有S就不刷)---
如果 不存在 ocr:"S级"
# 还有免费刷新次数就刷
点击 yolo:refresh_btn 直到 ocr:"刷新"
等待 1~2秒
结束如果
# --- 3.2 接取任务(点击第一个任务)---
状态: 接取任务
点击 yolo:task_first 直到 ocr:"前往" 或 ocr:"提交"
# --- 3.3 判断任务类型并执行 ---
# 类型A:挑战类(需要打怪/通关副本)
如果 ocr:"前往"
状态: 执行挑战任务
点击 ocr:"前往" 直到 ocr:"挑战"
点击 yolo:challenge_btn 直到 ocr:"战斗中" 或 ocr:"扫荡"
# 如果有扫荡按钮直接扫荡
如果 ocr:"扫荡"
点击 ocr:"扫荡" 直到 ocr:"完成"
否则
# 手动战斗等待结束
状态: 战斗中
等待 ocr:"胜利" 最长120秒
结束如果
# 战斗结算,点击任意处继续
等待 ocr:"胜利" 最长30秒
点击 (500,800) 直到 ocr:"公会任务" 或 ocr:"提交"
结束如果
# 类型B:提交类(提交道具/材料)
如果 ocr:"提交"
状态: 提交任务
点击 ocr:"提交" 直到 ocr:"确认"
点击 ocr:"确认" 直到 ocr:"完成"
点击 yolo:close_btn 直到 ocr:"公会任务"
结束如果
# --- 3.4 领取任务奖励 ---
状态: 领取奖励
如果 ocr:"领取"
点击 ocr:"领取" 直到 ocr:"获得"
点击 yolo:close_btn 直到 ocr:"公会任务"
结束如果
# --- 3.5 异常:任务次数用完 ---
如果 ocr:"次数不足" 或 ocr:"明日再来"
停止
结束如果
等待 1~2秒
结束循环
# ============================================
# 阶段四:公会悬赏赛(如果活动开启)
# ============================================
状态: 返回公会主界面
点击 yolo:close_btn 直到 ocr:"公会"
# 进入悬赏大厅
如果 ocr:"悬赏" 或 yolo:bounty_entry
点击 yolo:bounty_entry 直到 ocr:"悬赏大厅"
状态: 悬赏大厅
等待 ocr:"悬赏大厅" 最长10秒
# 接取传奇悬赏(4星优先)
循环 3 次
如果 yolo:bounty_4star 置信>0.6
点击 yolo:bounty_4star 直到 ocr:"接取"
点击 ocr:"接取" 直到 ocr:"前往"
点击 ocr:"前往" 直到 ocr:"挑战"
点击 yolo:challenge_btn 直到 ocr:"战斗中"
等待 ocr:"胜利" 最长120秒
点击 (500,800) 直到 ocr:"悬赏大厅"
否则
# 没有4星就做3星
如果 yolo:bounty_3star 置信>0.6
点击 yolo:bounty_3star 直到 ocr:"接取"
点击 ocr:"接取" 直到 ocr:"前往"
点击 ocr:"前往" 直到 ocr:"挑战"
点击 yolo:challenge_btn 直到 ocr:"战斗中"
等待 ocr:"胜利" 最长120秒
点击 (500,800) 直到 ocr:"悬赏大厅"
结束如果
结束如果
# 悬赏次数用完
如果 ocr:"次数不足"
停止
结束如果
结束循环
结束如果
# ============================================
# 阶段五:公会讨伐 BOSS(每日3次)
# ============================================
状态: 返回公会主界面
点击 yolo:close_btn 直到 ocr:"公会"
# 进入公会讨伐
如果 ocr:"讨伐" 或 yolo:boss_entry
点击 yolo:boss_entry 直到 ocr:"公会讨伐"
状态: 公会讨伐
等待 ocr:"公会讨伐" 最长10秒
循环 3 次
如果 ocr:"挑战" 或 yolo:challenge_btn
点击 yolo:challenge_btn 直到 ocr:"战斗中"
等待 ocr:"胜利" 最长180秒
点击 (500,800) 直到 ocr:"公会讨伐"
等待 1~2秒
否则
# 次数用完
停止
结束如果
结束循环
结束如果
# ============================================
# 阶段六:返回主城,脚本结束
# ============================================
状态: 返回主城
点击 yolo:home_btn 直到 ocr:"主城"
等待 2秒
# 全部完成
停止
六个阶段
| 阶段 | 内容 | 关键识别 |
|---|---|---|
| 一 | 主城 → 进入公会 | guild_entry、ocr:"公会" |
| 二 | 公会捐献 | donate_btn、basic_donate |
| 三 | 公会任务 ×5(自动刷 S 级) | guild_task_btn、task_first、refresh_btn |
| 四 | 公会悬赏赛(4 星优先) | bounty_entry、bounty_4star |
| 五 | 公会讨伐 BOSS ×3 | boss_entry、challenge_btn |
| 六 | 返回主城 | home_btn |
任务类型自动判断
- 出现
ocr:"前往"→ 挑战类任务,自动进入战斗或扫荡 - 出现
ocr:"提交"→ 提交类任务,自动提交道具 - 出现
ocr:"领取"→ 领取任务奖励 - 出现
ocr:"次数不足"→ 提前终止,避免无意义重试
状态节点与自动回退
脚本标记了 12 个状态节点:主城 → 公会主界面 → 捐献界面 → 公会任务列表 → 接取任务 → 执行挑战任务 → 战斗中 → 提交任务 → 领取奖励 → 悬赏大厅 → 公会讨伐 → 返回主城。
当画面因为弹窗、掉线、切后台发生变化时,引擎会自动匹配最近的状态节点回退继续执行,
而不是从头重跑。这是长期无人值守的关键。
示例二:野外刷怪(极简)
#脚本: 野外刷怪
#默认等待: 0.8~1.8秒
状态: 野外
循环
点击 yolo:monster 直到 ocr:"战斗中"
等待 ocr:"战斗胜利" 最长30秒
点击 yolo:loot
如果 ocr:"网络断开"
停止
结束如果
结束循环
示例三:多账号轮询
在脚本头部加登录与登出切号,用轮询循环包住业务逻辑,即可自动跑完整个账号池:
#脚本: 英雄没有闪-公会任务-多账号
#绑定: 英雄没有闪
#模式: 轮询
#默认重试: 3
#默认等待: 0.8~1.8秒
循环(轮询)
# === 登录阶段 ===
状态: 登录页
等待 ocr:"登录" 最长10秒
输入 yolo:input_account 内容 "${account}"
输入 yolo:input_password 内容 "${password}"
点击 yolo:login_btn 直到 ocr:"主城"
# === 上面示例一的阶段一到阶段六 ===
# === 登出切号 ===
状态: 登出
点击 yolo:setting_btn 直到 ocr:"退出登录"
点击 ocr:"退出登录" 直到 ocr:"登录"
标记成功
结束循环
需要训练的 YOLO 目标
示例一中用到的类别名,需要在模型里一一对应标注,否则识别不到。
| 类别名 | 说明 | 建议标注量 |
|---|---|---|
guild_entry | 主城公会入口按钮 / 建筑 | 30~50 张 |
donate_btn | 公会捐献按钮 | 20~30 张 |
basic_donate | 基础捐献按钮 | 20 张 |
guild_task_btn | 公会任务入口 | 20~30 张 |
task_first | 任务列表第一个任务 | 30 张(覆盖不同任务样式) |
refresh_btn | 任务刷新按钮 | 20 张 |
challenge_btn | 挑战 / 开始战斗按钮 | 30~50 张 |
close_btn | 关闭 / 叉号按钮 | 50 张(各种弹窗样式) |
bounty_entry | 悬赏大厅入口 | 20 张 |
bounty_4star | 4 星悬赏任务 | 20~30 张 |
bounty_3star | 3 星悬赏任务 | 20~30 张 |
boss_entry | 公会讨伐入口 | 20 张 |
home_btn | 返回主城按钮 | 20 张 |
OCR 文字不需要训练,引擎内置通用 OCR 直接识别。但脚本里 ocr:"..." 的文字必须与游戏内实际文字一致。
使用前检查清单
- YOLO 模型已训练并导入 App,类别名与脚本完全一致
- 游戏已登录,停在主城界面
- 背包中有足够的提交类任务材料
- 体力充足(挑战类任务需要体力)
- 悬浮状态条已开启,可观察执行进度
- 先用单步调试跑一遍,确认每个按钮识别准确,再开启全自动