恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
绝区零「锄大地」世界巡逻全自动刷怪:玩法机制、路线配置与源码实现解析
首页
资讯中心
/
绝区零「锄大地」世界巡逻全自动刷怪:玩法机制、路线配置与源码实现解析
绝区零「锄大地」世界巡逻全自动刷怪:玩法机制、路线配置与源码实现解析
发布时间:2026/10/2 17:30:43
桌面应用RPA计算机视觉【免费下载链接】ZenlessZoneZero-OneDragon绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄项目地址https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon点击查看免费下载导读「锄大地」是 ZenlessZoneZero-OneDragon绝区零一条龙中负责在空洞内按预设路线自动跑图清怪的功能全自动完成传送起点 → 沿路线移动 → 遇敌自动战斗 → 循环等待刷新的完整闭环。本文以其设计文档 docs/develop/zzz/application/world_patrol.md 为主线结合仓库源码与真实路线配置讲解它的核心玩法设定、脚本主流程、全部可配置项、路线名单机制以及底层的小地图定位与脱困容错实现。读完本文你既能理解每 30 分钟刷一轮、刷满当日上限即止的挂机策略也能知道路线文件怎么写、遇到卡死和界面消失时系统会如何处理。1. 功能定位与设计前提根据设计文档锄大地功能按任务、奖励全清后的地图状态进行实现。也就是说它面向的是已经推进到任务与奖励都处理完毕的账号状态——此时大世界上不再有任务追踪气泡、奖励点等干扰元素小地图画面干净适合依赖小地图识别来稳定定位与寻路。对应到应用层该功能在 world_patrol_const.py 中被定义为APP_ID world_patrol APP_NAME 锄大地 DEFAULT_GROUP True PRIORITY 1500 NEED_NOTIFY True其应用类WorldPatrolApp的类注释也直接说明了定位世界巡逻按路线自动跑图清怪、开传送点。无体力消耗耗时较长。两个关键信息无体力消耗收益来自野怪掉落与日常上限而非体力副本耗时较长一轮路线跑完通常需要数分钟且每天要跑多轮。2. 核心玩法空洞内按路线刷怪30 分钟刷新、每日上限设计文档对玩法的定义非常简洁在空洞内按指定路线刷怪怪物30 分钟刷新每天有一定上限。因此自动化策略就是每 30 分钟运行一次路线直到上限为止。这个上限在源码中由配置项daily_loop_count每天循环次数表达默认值为 1。围绕这一设定world_patrol_app.py 在初始化阶段做了三件事self.run_record.total_rounds self.config.daily_loop_count self.run_record.set_routes_per_round(len(self.route_list)) # 基于当日已完成轮数计算起始轮次使重启任务能从下一轮继续 self.run_record.current_round self.run_record.completed_rounds 1也就是说total_rounds是当日总轮数来自每天循环次数配置routes_per_round是每轮要跑的路线条数等于加载出的路线总数current_round会基于当日已完成轮数恢复任务中途停止再重启时会从下一轮继续而不是从头再来如果current_round total_rounds直接打印锄大地当日已完成 X/Y 轮无需再跑并跳过。配合 world_patrol_run_record.pyWorldPatrolRunRecord当日进度会被持久化记录从而支撑跨重启续跑与当日上限即止两个核心行为。3. 脚本主流程从取消任务追踪到轮次循环设计文档给出的脚本流程只有两步取消任务追踪避免污染小地图根据选择的路线列表运行。在源码中这两步被展开成一个完整的状态机。WorldPatrolApp的主流程节点依次为节点作用源码位置初始化加载自动战斗配置、路线数据计算轮次与路线列表init_world_patrol开始前返回大世界无论当前在哪先回到大世界back_at_first前往绳网检测大世界是否有任务追踪有则去绳网goto_inter_knot停止追踪点击停止追踪找不到则跳过stop_tracking停止追踪后返回大世界回到大世界准备跑图back_after_stop_tracking执行路线逐条执行路线含重试/脱困/界面消失处理run_route轮次结束判定判断当日已满、进入等待还是开始下一轮decide_next_round传送回录像店轮间等待前离开野怪刷新点goto_video_shop轮间等待按剩余秒数 1 秒粒度轮询等待wait_between_rounds准备下一轮清空 finished、重置时间字段进入下一轮prepare_next_round3.1 取消任务追踪的完整逻辑goto_inter_knot与stop_tracking合起来实现了避免污染小地图在大世界画面查找任务追踪区域找不到说明没有任务追踪直接跳过状态无任务追踪找到则前往绳网界面尝试点击停止追踪按钮如果没找到停止追踪但找到了追踪按钮说明当前本就没在追踪直接成功跳过两者都没找到代码注释认为不可能则重试最终即使失败也仍返回大世界继续流程。设计文档强调取消任务追踪避免污染小地图是因为后续的路线寻路严重依赖小地图画面详见第 6 节任务追踪的路径指引会覆盖在小地图上干扰坐标计算。3.2 轮次循环与 30 分钟间隔的实现每 30 分钟运行一次路线并不是简单的定时器而是按轮次耗时动态计算等待时长。在 decide_next_round 中loop_interval_seconds self.config.loop_interval_seconds round_duration time.monotonic() - self.run_record.round_start_time self.run_record.round_wait_seconds max(0.0, loop_interval_seconds - round_duration)即等待时长 轮间隔配置 - 本轮实际耗时。如果一轮跑了 25 分钟就只等 5 分钟如果一轮已经超过 30 分钟则等待 0 秒直接进入下一轮。loop_interval_seconds默认 1800即 30 分钟与怪物 30 分钟刷新的设定严格对应。轮间等待前会先传送回录像店代码注释说明原因轮间等待前先离开野怪刷新点离开勘域以避免怪物刷新后攻击我们。goto_video_shop等待节点wait_between_rounds以 1 秒为粒度轮询并通过round_wait让暂停/停止信号能及时响应而不是阻塞式 sleep。4. 支持配置详解设计文档列出的支持配置只有两项路线名单、每天循环次数但仓库中的WorldPatrolConfigworld_patrol_config.py已扩充为 8 个配置项。在 GUI 中由 world_patrol_combined_setting_interface.py 提供设置界面。配置项类型/默认值说明auto_battlestr默认全配队通用使用的自动战斗配置方案route_liststr默认选用的路线名单路线列表名称空表示跑全部路线ui_disappear_actionstr默认silent_fail界面消失疑似掉线/弹窗盖住画面时的处理动作ui_disappear_secondsint默认 10上限 999判定界面消失卡死的累计秒数阈值route_retry_timesint默认 1同一条路线允许传送回路线起点重跑的最大次数route_retry_actionstr默认skip_on_stuck_again重试时再次卡住的处理方式跳过或继续重试daily_loop_countint默认 1每天循环次数即设计文档中的每天上限loop_interval_secondsint默认 1800轮间隔秒数默认对应怪物 30 分钟刷新4.1 界面消失处理ui_disappear_action这是长时间挂机最容易遇到的异常画面突然被其他界面盖住如弹窗、断线提示导致既没有战斗信号、也没有交互按键提示、还没有小地图。WorldPatrolConfig定义了三种策略UI_DISAPPEAR_SILENT_FAIL silent_fail # 静默失败终止任务 UI_DISAPPEAR_RESTART_SKIP restart_and_skip # 重开游戏后跳过该路线 UI_DISAPPEAR_RESTART_RETRY restart_and_retry # 重开游戏后重试该路线未超过重试上限在 run_route 中当单条路线返回STATUS_UI_DISAPPEARED疑似界面消失卡死时silent_fail停止自动战斗与移动终止整个任务其余两种先调用_restart_game_for_ui_disappeared关闭游戏并重新进入见 world_patrol_app.py再按策略选择跳过或重试该路线。4.2 路线卡死重试route_retry_times/route_retry_action每条路线执行时若出现坐标计算长时间失败或有坐标但原地卡住系统会尝试脱困。若脱困无效并返回重启当前路线状态则重试次数未达route_retry_times上限传送回当前路线起点重跑该路线超过上限跳过该路线并记录失败原因route_retry_action决定重试态下再次卡住时是否还执行脱困skip_on_stuck_again默认表示再次卡住直接跳过、不再浪费脱困时间避免在同一处反复重启。4.3 与设计文档每天循环次数的对应设计文档指出不同路线的怪数量不一致需要自己测试运行多久。这正是daily_loop_count需要手动调整的原因每天可获得的清怪收益有上限不同路线单轮时间不同用户需要根据自己的路线组合实测一天跑几轮才能恰好把当天额度用满、又不至于超时干等。5. 路线名单机制白名单与黑名单设计文档中的路线名单对应源码中的WorldPatrolRouteListworld_patrol_route_list.py它有两种类型class RouteListType(StrEnum): WHITELIST whitelist # 白名单 BLACKLIST blacklist # 黑名单白名单whitelistroute_items中列出的路线才运行黑名单blacklist排除route_items中列出的路线其余全部运行。在应用初始化阶段world_patrol_app.py如果配置了route_list会先加载全部路线再按名单类型过滤route_id_list config.route_items.copy() if config.list_type RouteListType.BLACKLIST: self.route_list [route for route in self.route_list if route.full_id not in route_id_list] elif config.list_type RouteListType.WHITELIST: self.route_list [route for route in self.route_list if route.full_id in route_id_list]名单的序列化格式to_dict/from_dict为name: 名单名称 list_type: whitelist # 或 blacklist route_items: - lemnian_hollow_former_employee_community_01 - ...route_items中的元素是路线的full_id它由区域全名 路线序号组成与路线文件的存放位置一一对应。6. 路线文件格式与真实示例路线数据存放在 config/world_patrol_route/system 下目录结构为系统名/区域名/序号.yml由 world_patrol_service.py 中的area_route_dir拼接得到config/world_patrol_route/system/{entry_id}/{area_full_id}/。以仓库内真实路线 config/world_patrol_route/system/lemnian_hollow/former_employee_community/01.yml 为例idx: 1 op_list: - data: - 1335 - 304 op_type: move - data: - 1352 - 353 op_type: move - data: - 1376 - 340 op_type: move tp_area_id: former_employee_community tp_name: 职工宿舍北区字段含义idx路线序号也是文件名01.yml对应idx: 1加载后按idx排序tp_area_id传送目标区域 idtp_name传送点名称用于在大地图图标中匹配传送点op_list路线指令列表op_type: move的data是 [x, y] 目标坐标大地图坐标系。WorldPatrolRoute与WorldPatrolOpType定义在 world_patrol_route.py路线文件读写保存/删除/序号管理统一由 world_patrol_service.py 完成。目前仓库自带的系统路线集中在勘域lemnian_hollow覆盖职工宿舍北区、旧研究院、东侧厂房、西侧厂房、厂房天台、粗加工中心等区域每个区域包含 16 条路线文件。7. 路线执行引擎小地图定位、脱困与自动战斗设计文档未展开的实现部分正是锄大地能够稳定全自动跑图的关键集中在 world_patrol_run_route.py。单条路线的执行流程为传送起点从大世界按tp_area_id/tp_name通过 3D 地图传送到路线起点并记录当前路线起点坐标循环移动裁剪小地图 → 计算当前坐标 → 过滤异常跳变和方向偏离的候选 → 折算并下发转向 → 到达途径点后点刹校准并继续前进 → 到达终点推进指令下标战斗接管小地图被战斗遮挡时进入自动战斗战斗结束后切回行走位校准视角并继续路线全部指令完成交回上层应用由上层记录完成路线或处理失败重试。7.1 定位原理图标优先、道路掩码兜底锄大地不依赖全屏 OCR 或坐标外挂而是靠小地图在区域大地图上的模板匹配定位入口是 WorldPatrolService.cal_poscal_pos_by_iconworld_patrol_service.py先找出大地图搜索范围内出现的图标传送点、NPC 等再在小地图上用图标模板匹配反推小地图中心在大地图上的坐标多个候选时用道路掩码重叠面积比较相似度。这是当前最有效的方法cal_pos_by_roadworld_patrol_service.py无图标可用时用区域道路掩码road_mask与截取的小地图道路掩码做模板匹配作为兜底。配套资源由 world_patrol_area.py 中的road_mask_path道路掩码图与icon_yaml_path图标清单指向区域数据从 assets/game_data/map_area_all.yml 加载world_patrol_service.py。7.2 小地图动态裁剪小地图裁剪优先按当前大世界类型普通/勘域复用缓存的动态裁剪区域没有缓存时通过匹配地图按钮图标按小地图坐标 地图坐标 - DELTA的固定偏移计算裁剪区域匹配失败则回退到静态配置区域world_patrol_service.py。源码注释特别提醒2.8 版本后勘域小地图比普通小地图更靠下 17px静态框来源于勘域小地图。7.3 卡住检测、回溯与脱困运行器内置了多层容错状态变量见 world_patrol_run_route.py坐标计算失败no-pos分时间档处理先停止盲走再尝试脱困仍未恢复则返回重启当前路线状态有坐标但原地卡住stuck优先回溯到上一个路线点backtrack_target回溯不可用或超时后再执行脱困动作向stuck_move_direction方向移动距离判定统一使用REACH_DISTANCE 10的到达半径world_patrol_run_route.py重试同一路线时若再次卡住按route_retry_action决定是否跳过不再脱困避免在同一处反复重启。7.4 自适应转向与战斗打断转向使用AngleTurnCompensatorworld_patrol_run_route.py做自适应校准只用上一轮的转向样本校准本轮下发幅度战斗打断后清理样本但不重置已学到的比例候选过滤会先按本轮合理位移上限拒绝异常跳变长时间 no-pos 后上限随搜索窗口放宽再检查移动方向是否落在上一帧朝向 上一次转向指令的允许范围内。8. 迭代方向与已知限制设计文档明确写了两条迭代方向这也是使用与二次开发时需要特别注意的边界路线应尽量避开电梯目前只要接近电梯就只能完全卡死。这是已知的硬限制——电梯区域的地图/导航逻辑与普通跑图不同规划自定义路线时应绕开电梯。30 分钟限制决定路线名单不需太多怪物 30 分钟刷新一次、每天循环次数有限因此路线名单不需要贪多后续需要维护一份建议的路线名单帮助用户直接选用经过验证的高效组合。对于想自建路线的开发者仓库 docs/运维指南/锄大地.md 提供了完整的录制指南先录制区域大地图黑白 2 通道road_mask.png用大地图录制界面调整缩放比例、叠加小地图确认重合再到各特殊点截图定位→合并最后为传送点图标mm_icon_01填写传送点名称。路线录制方面则提醒目前路线只能尽量走有图标的地方对于没有图标的地方只能看运气——这与第 7.1 节图标优先、道路掩码兜底的定位策略完全对应。9. 关键源码索引设计文档docs/develop/zzz/application/world_patrol.md应用状态机src/zzz_od/application/world_patrol/world_patrol_app.py配置定义src/zzz_od/application/world_patrol/world_patrol_config.py路线执行引擎src/zzz_od/application/world_patrol/operation/world_patrol_run_route.py3D 地图传送src/zzz_od/application/world_patrol/operation/transport_by_3d_map.py数据服务与小地图定位src/zzz_od/application/world_patrol/world_patrol_service.py路线名单src/zzz_od/application/world_patrol/world_patrol_route_list.py每日运行记录src/zzz_od/application/world_patrol/world_patrol_run_record.py系统内置路线config/world_patrol_route/system/lemnian_hollow录制指南docs/运维指南/锄大地.md小结锄大地是一套挂机向的自动刷怪方案它利用空洞怪物 30 分钟刷新与每日收益上限的机制以每天循环次数 × 30 分钟轮间隔为节奏自动完成取消任务追踪、按路线名单逐条跑图、遇敌自动战斗、卡死回溯脱困、界面消失重开游戏等一系列操作。设计文档虽短但仓库源码已把玩法设定落实为完整的配置体系8 个配置项与稳健的执行引擎图标优先 道路掩码兜底的双重定位、多层容错重试。理解轮次循环 路线名单 容错策略这三条主线就能灵活配置出适合自己账号的刷怪方案也为后续避开电梯、沉淀建议路线名单的迭代方向留出了清晰的扩展空间。赞分享桌面应用RPA计算机视觉【免费下载链接】ZenlessZoneZero-OneDragon绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄项目地址https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon点击查看免费下载相关推荐绝区零 OneDragon 锄大地世界巡游大地图与路线录制全指南从道路掩码到图标坐标的实践详解绝区零 OneDragon 锄大地世界巡游大地图与路线录制全指南从道路掩码到图标坐标的实践详解 本文基于仓库内运维文档 锄大地.md https://li桌面应用RPA计算机视觉绝区零式舆防卫战全解析玩法机制与 OneDragon 全自动通关实现剧变节点自动化绝区零式舆防卫战全解析玩法机制与 OneDragon 全自动通关实现剧变节点自动化 本篇技术指南以 ZenlessZoneZero OneDragon绝桌面应用RPA计算机视觉绝区零「随便观经营」玩法机制与 OneDragon 自动化方案全解析绝区零「随便观经营」玩法机制与 OneDragon 自动化方案全解析 本文基于 ZenlessZoneZero OneDragon绝区零一条龙仓库的玩法机制桌面应用RPA计算机视觉创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考