ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

绝区零影像店营业全自动方案解析:ZenlessZoneZero-OneDragon 的 RandomPlayApp 节点链与配置指南

绝区零影像店营业全自动方案解析:ZenlessZoneZero-OneDragon 的 RandomPlayApp 节点链与配置指南 桌面应用RPA计算机视觉【免费下载链接】ZenlessZoneZero-OneDragon绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄项目地址https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon点击查看免费下载本文讲解 ZenlessZoneZero-OneDragon绝区零一条龙如何自动化「影像店营业」录像店 Random Play 日常经营这一纯经营玩法覆盖脚本节点链、传送点选择、宣传员与录像带主题的识别匹配策略、RandomPlayConfig配置项以及已营业跳过的状态处理。读完本文你将掌握该功能从「传送进店 → 选宣传员 → 上架录像带 → 开始营业 → 返回大世界」的完整自动化实现原理并能在实际运行中正确配置与排查问题。1. 玩法与自动化的关系影像店营业是绝区零录像店「Random Play」澄辉坪的日常经营玩法不含战斗玩家每日需要选宣传员、为 3 个主题上架匹配录像带、开始营业来赚取丁尼经营收益。玩法机制的完整说明见 docs/game/gameplay/影像店营业.md画面识别细节见 docs/game/screens/影像店营业.md。自动化的目标是每日完成营业流程选宣传员 上架录像带 开始营业若已处于营业状态则跳过。脚本覆盖的子玩法及自动化角色如下表子玩法游戏含义详见 gameplay 文档脚本角色选宣传员派驻代理人影响营业效果按config.agent_name选择OCR 名称优先 头像模板兜底 滚动重试上架录像带为 3 个主题上架匹配录像带主题 OCR difflib匹配 16 个主题 上架筛选循环开始营业确认营业赚取丁尼点「开始营业」→ 确认 → 营业后确认已营业跳过处于「正在营业」态check_running检测 → 关闭经营页面 → 返回大世界2. 核心脚本流程RandomPlayApp 的 11 个操作节点自动化主逻辑由应用类RandomPlayApp实现位于 src/zzz_od/application/random_play/random_play_app.py。它继承自ZApplication通过operation_node装饰器组织为一条有向节点链节点间用node_from声明依赖与分支。整个流程共 11 个节点传送transport按config.transport_point选择传送点执行Transport操作若对话或经营画面加载失败会重试一次超限则返回失败状态进入经营画面失败重传送超限见 random_play_app.py。移动交互move_and_interactPOINT_1/POINT_3 需要turn_to_angle(0)转向正东move_w(press_time1)POINT_2 传送落点正对入口直接交互。交互前sleep(1)、交互按键press_time0.2防止交互失效节点最大重试 10 次见 random_play_app.py。交互对话handle_interaction_dialogPOINT_1 交互后没有选项对话直接放行POINT_2/POINT_3 优先用 OCR 点击「查看经营状况」未命中时盲点对话框标题区域推进对话针对 POINT_3 阿玖的无选项旁白见 random_play_app.py。等待经营画面加载wait_run每日首次会遇到「昨日账本」弹窗先点关闭按钮再回本节点重判防止残影或未关闭识别到「经营状况」文字则点击一次以保证落在该分支见 random_play_app.py。识别营业状态check_running检测「正在营业」→ 走「关闭经营页面」跳过检测「开始营业」→ 继续完整营业流程见 random_play_app.py。点击宣传员入口 → 选择宣传员choose_promoter若已选检测「换下」直接返回否则 OCR 名称优先、头像匹配兜底、找不到则滚动列表重试见 random_play_app.py。识别录像带主题check_video_theme对顶部 3 个主题区域做单行 OCR再用difflib.get_close_matches与内置 16 主题列表模糊匹配识别不足 3 个时自动补足见 random_play_app.py。点击录像带入口 → 识别推荐上架check_recommended检测「推荐上架」按钮则直接点击返回否则进入「上架筛选」分支见 random_play_app.py。上架筛选循环click_filter → choose_theme → choose_onshelf对 3 个主题逐一执行「点上架筛选 → 主题 OCR difflib 匹配选中主题 → 上架/下架状态切换点两次关闭筛选」见 random_play_app.py。返回 → 开始营业 → 确认营业 → 营业后确认back → start → confirm_business → confirm点「返回」回经营状况页依次点击「开始营业」「开始营业-确认」「营业后确认」见 random_play_app.py。返回大世界back_to_world通过BackToNormalWorld操作回到大世界见 random_play_app.py。该 app 的常量定义APP_ID random_play、APP_NAME 录像店营业、PRIORITY 400、NEED_NOTIFY True见 src/zzz_od/application/random_play/random_play_const.py。3. 传送点选择与设计决策RandomPlayTransportPoint枚举定义了 3 个传送点见 src/zzz_od/application/random_play/random_play_config.py传送点对应区域交互方式特点POINT_1录像店-柜台turn_to_angle(0)move_w interact交互后直接进入经营画面POINT_2澄辉坪-录像店营业点直接 interact传送落点正对入口直接出现「查看经营状况」选项最简、推荐POINT_3布亚斯特城区-录像店营业点turn_to_angle(0)move_w interact交互后先出现阿玖的无选项旁白对话需点对话框标题推进后再选「查看经营状况」设计决策为什么 POINT_2 推荐POINT_2 的传送落点正对入口直接 interact 即可无需转向和前移出错概率最低POINT_1/POINT_3 需要turn_to_angle(0)move_w组合多一步操作就多一分不稳定因素。三个传送点的交互后路径差异已在 docs/game/screens/影像店营业.md 中实拍建档。4. 宣传员选择OCR 名称优先 头像兜底 滚动重试choose_promoter节点random_play_app.py实现了稳健的多级选择策略已选检测先找「换下」按钮命中说明该位置已派驻宣传员直接返回经营状况页。随机模式配置为「随机」RANDOM_AGENT_NAME 随机时根据当前日期的末位数字奇偶int(dt[-1]) % 2 1在宣传员-1 / 宣传员-2 两个位置间轮换再点「确认」。指定代理人按agent_name_1/agent_name_2依次尝试_try_select_agent——先在宣传员列表区域用 OCR 匹配名称限定白色系color_range[(230,230,230),(255,255,255)]失败后调用get_pos_by_avatar用头像模板兜底通过AgentEnum找到对应代理人取其template_id_list在裁剪出的列表区域用predefined_team/avatar_{template_id}特征匹配定位并点击见 random_play_app.py。滚动兜底全部候选匹配失败则对宣传员列表区域执行向下滚动并重试重试达到 2 次以上仍未找到时退而求其次选择列表第一个位置并确认。这套「名称 OCR 优先 头像兜底 滚动」的降级链有效应对了名称 OCR 可能不准、列表需要翻页两类真实场景。5. 录像带主题识别与上架difflib 模糊匹配 16 主题经营画面顶部会显示当前需要的 3 个录像带主题。脚本内置了 16 个主题的完整候选表_all_video_themes见 random_play_app.py纪实、怀旧、冒险、幻想、喜剧、动作、惊悚、悬疑、访谈、都市、时尚、灾难、悲剧、亲情、广告、爱情识别与上架的关键实现check_video_theme对「录像带主题-1/2/3」三个区域分别做单行 OCR用difflib.get_close_matches(ocr_result, target_list, n1)与 16 主题做模糊匹配主题名 OCR 可能不准模糊匹配容忍字符差异若最终不足 3 个主题按候选表顺序自动补齐保证流程不被 OCR 偶发失败卡死。choose_theme点击「上架筛选」后对「主题筛选」区域做整区 OCR同样用difflib匹配只命中当前目标主题_need_video_themes[_current_idx - 1]才点击找不到时对筛选区域执行drag_to(startcenter, endcenterPoint(0,-100))向上拖拽翻页后重试见 random_play_app.py。choose_onshelf先检测「下架」判断是否已上架未上架时连点两次「上架」第一次上架、第二次关闭筛选面板并处理上架/下架/换下同位置状态切换的情况见 random_play_app.py。循环出口3 个主题全部处理完后click_filter返回STATUS_ALL_VIDEO_CHOOSE 已选择全部录像带随后走「返回」节点回经营状况页见 random_play_app.py。6. 营业状态识别与「已营业跳过」为避免重复营业check_running节点random_play_app.py在同一区域右下角1536,950-1792,998区分两种互斥状态命中「正在营业」→ 返回状态STATUS_ALREADY_RUNNING走「关闭经营页面」节点点击左上角返回按钮关闭再进「返回大世界」实现每日已营业直接跳过命中「开始营业」→ 继续选宣传员、上架、营业的完整流程。识别依据是经营状况页的文字锚定由于该画面所有 area 均为id_markfalse无精准匹配靠「经营状况」「正在营业」「开始营业」等文字 area 区分防止与共享返回模板的菜单 / 3D 地图 / 战斗-菜单等画面误判。7. 支持配置RandomPlayConfigRandomPlayConfig继承ApplicationConfig配置键对应三个属性见 src/zzz_od/application/random_play/random_play_config.py配置项说明默认值transport_point传送点POINT_1录像店-柜台/ POINT_2澄辉坪-录像店营业点/ POINT_3布亚斯特城区-录像店营业点POINT_1agent_name_1宣传员 1代理人名可选「随机」随机agent_name_2宣传员 2代理人名可选「随机」随机配置界面对应 src/zzz_od/gui/app_setting/random_play_setting_flyout.py传送地点使用下拉框绑定RandomPlayTransportPoint影像店代理人-1/影像店代理人-2使用可编辑下拉框选项由「随机」AgentEnum全部代理人名构成。应用设置类的注册见 src/zzz_od/application/random_play/random_play_app_setting.py。8. 画面识别基础screen_info 的 area 建模该功能的画面识别全部基于 assets/game_data/screen_info/random_play.ymlscreen_id: random_play、screen_name: 影像店营业按经营状况页的多子态建模了 25 个 area。关键要点全id_markfalse所有 area 不做 ID 精准标记依赖文字 area 与模板匹配命中经营状况1272,14-1552,84、正在营业/开始营业同区1536,950-1792,998lcs_percent0.75、推荐上架1320,1002-1516,1052是主要文字锚点入口与列表宣传员入口800,620-1000,892、宣传员-1/2532/744,144-422、宣传员列表530,140-1770,972、右侧选项区域1438,536-1914,830录像带区域录像带入口1106,618-1270,896、上架筛选1588,28-1816,78、主题筛选1124,104-1824,428、上架/下架/换下同区1628,1004-1816,1052lcs_percent1.0状态切换弹窗与确认昨日账本528,224-679,273按钮-关闭模板menu/btn_close、开始营业-确认1032,600-1232,656、营业后确认800,600-1050,656、确认1590,1004-1816,1054对话推进对话框标题880,800-1040,840text用于 POINT_3 阿玖无选项旁白的盲点推进已实拍验证点击(960,820)后对话推进到「查看经营状况」选项态。各子态的识别快照与全量 OCR 对照经营状况态、宣传员选择态、录像带上架态、开始营业-确认态、营业后确认态、昨日账本态、POINT_3 阿玖旁白态、查看经营状况选项态详见 docs/game/screens/影像店营业.md。9. 注意事项与已知边界每日首次的昨日账本弹窗过夜收益结算后首次进入经营画面会弹出「昨日账本」wait_run节点必须先点关闭再重判经营状况防止残影或未关闭导致后续识别错乱。interact 防失效move_and_interact中sleep(1)后再交互、interact(press_time0.2)是为了规避交互偶发失效问题关联 issue #2405 / #2395 / #2328代码注释已注明。跨画面操作transport使用Transport操作实现大世界传送back_to_world通过BackToNormalWorld返回大世界见 random_play_app.py。营业确认弹窗待补开始营业-确认 / 营业后确认两个弹窗的 fixture画面样本当前文档标注为待拍摄归档但 area 坐标已建模开始营业-确认1032,600-1232,656、营业后确认800,600-1050,656脚本已可正常运行后续仅需补图完善文档。10. 相关文档与代码索引玩法机制docs/game/gameplay/影像店营业.md画面识别与子态快照docs/game/screens/影像店营业.md主实现src/zzz_od/application/random_play/random_play_app.py配置模型src/zzz_od/application/random_play/random_play_config.py、src/zzz_od/application/random_play/random_play_const.py画面 area 定义assets/game_data/screen_info/random_play.ymlGUI 配置界面src/zzz_od/gui/app_setting/random_play_setting_flyout.py文档分工约定docs/develop/harness/doc_organization.md从源码结构看该功能是一个典型的「无战斗、纯经营」应用单个 screen 多子态、全id_markfalse的轻量识别配合「传送点选择 双级宣传员匹配 difflib 主题模糊匹配 状态互斥检测」的组合策略在兼顾稳定性的同时把每日影像店营业收益做到了全自动闭环。赞分享桌面应用RPA计算机视觉【免费下载链接】ZenlessZoneZero-OneDragon绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄项目地址https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon点击查看免费下载相关推荐绝区零一条龙「影像店营业」全自动化指南Random Play 日常经营的流程、识别与配置解析绝区零一条龙「影像店营业」全自动化指南Random Play 日常经营的流程、识别与配置解析 导读 本文围绕开源项目 ZenlessZoneZero OneD桌面应用RPA计算机视觉绝区零「随便观经营」玩法机制与 OneDragon 自动化方案全解析绝区零「随便观经营」玩法机制与 OneDragon 自动化方案全解析 本文基于 ZenlessZoneZero OneDragon绝区零一条龙仓库的玩法机制桌面应用RPA计算机视觉绝区零一条龙ZenlessZoneZero-OneDragonOperation 操作模块深度解析基于节点图状态机的游戏自动化执行引擎绝区零一条龙ZenlessZoneZero OneDragonOperation 操作模块深度解析基于节点图状态机的游戏自动化执行引擎 导读 Operat桌面应用RPA计算机视觉上一篇ESP32热敏打印机DIY指南从零打造你的智能便携打印工坊下一篇Vim插件自动化管理VAM让插件管理变得简单高效创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表