- 桌面应用
- RPA
- 计算机视觉
【免费下载链接】ZenlessZoneZero-OneDragon
绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄
本篇文章聚焦开源项目 ZenlessZoneZero-OneDragon(绝区零一条龙)中「情报板」模块的完整自动化链路。该模块面向游戏内「情报板」玩法(恶名狩猎 / 专业挑战室的代行委托发布、代行挑战与奖励兑换),以每周为周期自动刷新动态委托板面并代行出战。读完本文,你将掌握情报板模块的三阶段基础流程(发布委托 → 挑战 → 接收奖励)、GUI 配置项与底层参数、源码级节点状态机实现,以及周重置记录与经验估算的完整原理。
情报板模块是什么
情报板(intel_board)是绝区零一条龙中的一个独立应用模块,注册信息位于 intel_board_const.py:
APP_ID = 'intel_board'、APP_NAME = '情报板'、DEFAULT_GROUP = True、PRIORITY = 1300、NEED_NOTIFY = True。
从模块注释看,其核心职责是:刷新/筛选动态情报板上的代行委托(恶名狩猎 / 专业挑战室),代行出战清理板面。值得注意的是,代行他人的委托不消耗自身电量(可获得贡献点),而这些玩法自行挑战时才消耗电量——这正是情报板模块与「体力计划」(charge_plan_app.py)存在互补关系的原因。
该模块的工程结构完整遵循「工厂 + 配置 + 运行记录 + 应用本体」的模式:
- 应用入口:intel_board_app.py
- 应用工厂:intel_board_app_factory.py
- 配置类:intel_board_config.py
- 周运行记录:intel_board_run_record.py
- 配置弹出框:intel_board_setting_flyout.py
基础流程:每周重置的三大阶段
情报板玩法以周为周期,模块基础流程(每周重置记录后执行)如下:
- 发布委托:在情报板发布恶名狩猎 / 专业挑战室委托,供其他玩家代行(或自己代行他人委托)。
- 挑战:在未达到周期上限时,按配置选择委托进行挑战(代行出战)。
- 接收奖励:接收委托奖励,并按配置优先级进行兑换。
1. 发布委托
1.1 恶名狩猎发布
发布恶名狩猎委托前,先进行 4 项跳过判断,任一命中即跳过发布:
- 开关未开启(模块总开关关闭);
- 达到委托并行上限(板面上并行委托数已满);
- 达到委托发布次数上限(本周可发布次数已用完);
- 电量不足。
随后进入发布选择,三选一:
- 按恶名狩猎计划发布:依据 notorious_hunt_config.py 中配置的恶名狩猎计划(
plan_list,含tab_name、category_name、mission_type_name、mission_name、level、predefined_team_idx、auto_battle_config、run_times、plan_times、notorious_hunt_buff_num、plan_id等字段)批量发布; - 按体力计划发布:接入「体力计划」(ChargePlan)体系,在计划执行到对应分类时顺带发布委托;
- 自定义次数发布:手动指定发布次数,不依赖计划列表。
1.2 专业挑战室发布
专业挑战室发布的跳过判断与恶名狩猎一致(开关未开启 / 达到委托并行上限 / 达到委托发布次数上限 / 电量不足),但发布选择为二选一:
- 按体力计划发布;
- 自定义次数发布。
从源码看,体力计划(charge_plan_app.py)覆盖的训练副本包括「实战模拟室 / 区域巡防 / 专业挑战室 / 恶名狩猎-深度追猎」,与情报板发布的两类委托高度对应,因此按体力计划发布是最省心的联动方式。
2. 挑战(代行出战)
在未达到周期上限时,模块按配置选择委托进行挑战。这里的「挑战」在实现上就是代行他人委托出战,具体节点链路见下文「源码实现」部分。
3. 接收奖励
- 接收委托奖励(通关结算后自动领取);
- 按配置优先级进行兑换(点数兑换入口位于情报板界面,对应界面区域见 intel_board.yml 中的「点数兑换」区域)。
源码实现:情报板应用的节点状态机
IntelBoardApp 继承自ZApplication,将上述三大阶段拆解为一条清晰的操作节点链,逐节点 OCR / 模板匹配 / 点击驱动。
入口与界面定位
- 初始化加载(起始节点):调用
self.ctx.lost_void.init_lost_void_det_model()预加载模型,失败即round_fail。 - 返回录像店:通过
Transport(self.ctx, '录像店', '房间')传送到录像店——这是情报板的入口场景。 - 打开情报板:先判断周期完成状态(
exp_complete或progress_complete,命中即返回「本周期已完成」),再点击大世界「功能导览」按钮进入功能面板。 - 点击情报板:对截图 OCR「情报板」文本并点击,进入板面。
发布与筛选(板面操作)
进入板面后,模块会维护一个「是否已筛选」标记(self.has_filtered):
- 刷新委托:若已筛选过,点击情报板「刷新按钮」(模板匹配,模板位于 assets/template/intel_board/refresh,对应区域定义在 intel_board.yml 的「刷新按钮」);否则返回「未筛选」状态。
- 打开筛选:先查找「点数兑换」区域确认板面就绪,再点击「筛选按钮」,最多重试 60 次。
- 重置筛选:在筛选弹层内 OCR「重置」并点击,清空历史筛选条件。
- 选择恶名狩猎 / 选择专业挑战室:在「搜索区域」内分别 OCR「恶名狩猎」或「专业挑战室」文本并点击,实现按委托类型筛选。
- 关闭筛选:点击「关闭筛选」区域,同时将
has_filtered置为True。
寻找委托与自我帖子规避
「寻找委托」节点是整个模块最有特色的部分:
- 对全屏做 OCR,收集文本为
恶名狩猎或专业挑战室(CommissionType枚举,定义见 intel_board_app.py)的委托条目,按 y 坐标排序; - 用模板匹配「Star」标记(模板位于 assets/template/intel_board/Star,阈值 0.8),识别自己发布的帖子(游戏内会打星标);
- 过滤与 star 在 x 轴重叠的委托(
expand_pixel = 30的扩展区间),避免点击自己发布的帖子造成无效代行; - 点击第一个有效委托;若当前屏没有,则在「搜索区域」内滚动(
scroll_times上限 5 次),翻页继续寻找,超过上限返回「无委托」。
接取委托与编队出战
- 接取委托:连续 OCR 匹配目标动作,「接取委托」「前往」为等待态,「委托代行中」为成功态。
- 下一步:识别「预备编队」页面确认进入编队环节;识别「接取失败」(
lcs_percent=0.75)则转入失败处理;否则持续点击「下一步」「无报酬模式」推进流程。 - 选择预备编队:若配置
predefined_team_idx == -1则跳过(使用游戏内配队),否则调用ChoosePredefinedTeam选择对应预备编队。 - 点击出战:OCR「出战」并点击进入战斗。
- 委托代行中弹窗:处理「至少选择1位代理人出战」与「委托代行中」两类弹窗;若未选择代理人,自动回退使用
ctx.team_config.team_list[0](第一支预备编队)重新出战。
自动战斗与结算
- 加载自动战斗指令:
predefined_team_idx == -1时使用模块配置auto_battle_config(默认「全配队通用」),否则使用所选预备编队的auto_battle配置,再通过auto_battle_context.init_auto_op加载。 - 等待战斗画面加载:识别「战斗画面-按键-普通攻击」或「按键-交互」区域确认进入战斗,最多重试 60 次。
- 战斗前移动:恶名狩猎调用
NotoriousHuntMove(self.ctx, 3)走位开怪;专业挑战室则向前移动 1.5 秒确保能开怪。 - 开始自动战斗 / 战斗中:启动自动战斗并轮询
check_battle_state,单节点超时 600 秒,依据battle_assistant_config.screenshot_interval控制截图间隔。 - 检查回到委托列表:OCR「周期内可获取」确认结算后回到列表,并累计计数(
notorious_hunt_count/expert_challenge_count)。 - 点击结算按钮:连续点击「完成 / 下一步 / 确认」直至回到委托列表。
周期完成判定与收尾
- 检查进度:OCR 读取情报板「进度文本」区域(intel_board.yml 中坐标约 322,1019-513,1061)的进度代币值,将
/归一化为/后解析;普通模式下代币值 ≥ 1000 即标记progress_complete完成;刷经验模式按见下节。 - 结束处理:汇总输出「完成 恶名狩猎: N, 专业挑战室: N, 累计经验: N」并触发通知(
NotifyTiming.CURRENT_DONE, detail=True)。 - 完成后返回大世界:调用
BackToNormalWorld回到大世界,整个周期流程结束。
配置项与 GUI 入口
情报板配置类 IntelBoardConfig 提供三个核心配置项:
| 配置键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
predefined_team_idx | int | -1 | 预备编队下标,-1代表不选择、使用游戏内配队;否则使用对应下标(idx)的预备编队 |
auto_battle_config | str | 全配队通用 | 自动战斗配置名称,仅在predefined_team_idx == -1时生效 |
exp_grind_mode | bool | False | 是否开启「刷满经验」模式;开启后按累计经验判断完成,而非情报板进度代币 |
GUI 配置弹出框位于 intel_board_setting_flyout.py,包含四个控件:
- 预备编队(下拉框):选项为「游戏内配队(-1)」加全部预备编队列表;
- 自动战斗(下拉框):由
get_auto_battle_op_config_list(sub_dir='auto_battle')加载自动战斗配置列表,且仅在选择「游戏内配队」时可见(联动_update_auto_battle_visibility); - 刷满经验(开关):对应
exp_grind_mode; - 重置进度(按钮):一键清空
progress_complete、notorious_hunt_count、expert_challenge_count、base_exp,方便手动提前开启新一轮。
工厂类 intel_board_app_factory.py 统一负责应用、配置与运行记录的创建,运行记录还注入了game_refresh_hour_offset(游戏内每天刷新的偏移小时数,来自账号配置),确保重置判定与游戏内时间对齐。
周重置记录:进度、次数与经验估算
IntelBoardRunRecord 是情报板的状态持久化核心,继承AppRunRecord并指定record_period=AppRunRecordPeriod.WEEKLY(周周期)。记录字段如下:
progress_complete:本周期进度是否已满(1000/1000);notorious_hunt_count:本周期恶名狩猎完成次数;expert_challenge_count:本周期专业挑战室完成次数;base_exp:根据 OCR 进度估算的基础经验值(计数为 0 时的历史经验)。
周重置机制
application_run_record.py 中的_should_reset_by_dt对周周期采用「周日零点」判断:get_sunday_dt(self.dt) != get_sunday_dt(current_dt)时触发重置。结合game_refresh_hour_offset换算游戏内时间,实现与游戏周刷新对齐的自动重置;同周未完成时只重置运行状态、保留周计数(见check_and_update_status)。
经验累计与估算逻辑
模块内固定经验常量:EXP_PER_NOTORIOUS_HUNT = 500、EXP_PER_EXPERT_CHALLENGE = 250、EXP_TARGET = 5000。累计经验公式:
total_exp = base_exp + notorious_hunt_count × 500 + expert_challenge_count × 250刷经验模式(exp_grind_mode)下的完成判定为total_exp >= 5000。当计数均为 0 但 OCR 读到进度代币current > 0时,按「专业挑战一次 70 代币 = 250 经验」的比例估算base_exp = ((current + 69) // 70) × 250,从而兼容「本周期开始前已有历史进度」的场景——这是 intel_board_app.py 中check_progress节点的关键推断逻辑。
关键场景速查
- 只想代行蹭贡献点、不耗电:保持普通模式,让模块自动刷新 / 筛选 / 代行,进度代币满 1000 后自动停止,等待下周重置。
- 想要刷满每周经验:开启「刷满经验」,模块会以 5000 经验为目标持续代行恶名狩猎(500 经验/次)与专业挑战室(250 经验/次),并在完成时输出累计经验。
- 多账号 / 多预备编队:为不同实例配置不同的
predefined_team_idx与自动战斗配置,运行记录按实例隔离(instance_idx)。 - 进度异常:在配置弹出框点击「重置进度」清空周记录即可重新开始。
相关文档与资源
- 模块状态机主实现:intel_board_app.py
- 配置与记录:intel_board_config.py、intel_board_run_record.py
- 界面区域定义:intel_board.yml
- 模板资源:assets/template/intel_board/Star、assets/template/intel_board/refresh
- 联动玩法:体力计划 charge_plan_app.py、恶名狩猎配置 notorious_hunt_config.py
- 桌面应用
- RPA
- 计算机视觉
【免费下载链接】ZenlessZoneZero-OneDragon
绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄
相关推荐
ZenlessZoneZero-OneDragon(绝区零一条龙)AI 编码协作入口与开发规范解析
ZenlessZoneZero OneDragon(绝区零一条龙)AI 编码协作入口与开发规范解析 本文以仓库根目录的 AGENTS.md https://li
桌面应用RPA计算机视觉DS2API Ollama兼容接口指南:3个接口让Ollama客户端直连DeepSeek模型
DS2API Ollama兼容接口指南:3个接口让Ollama客户端直连DeepSeek模型 DS2API 是一款 DeepSeek 兼容中间件接口,通过 Ol
桌面应用RPA计算机视觉绝区零一条龙(ZenlessZoneZero-OneDragon)迷失之地检测模型:来源、消费链路与发布规范深度解析
绝区零一条龙(ZenlessZoneZero OneDragon)迷失之地检测模型:来源、消费链路与发布规范深度解析 导读 迷失之地(Lost Void)是《绝
桌面应用RPA计算机视觉
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考