Skip to content

决战恢复模式下战备舰队 OCR 识别为空,导致任务抛出 RuntimeError 中断 #417

@syokounya

Description

@syokounya

在提交您的问题反馈之前

  • 我已经阅读了 用户文档 并尝试自己解决问题,同时在社群中进行了讨论
  • 我无法找到任何 open issue 反馈了相同的问题

相关环境信息

  • 项目版本:AutoWSGR 2.1.9.post4
  • 任务类型: 决战 (decisive)
  • 章节: Ex-1
  • 状态: 恢复模式 (stage=2, node=A)

问题描述

在决战(Decisive)任务进入恢复模式后,当游戏弹出「战备舰队获取」(fleet_acquisition) overlay 时,OCR 未能识别出任何费用项,导致 _recognize_fleet_options_with_retry 认为界面已关闭,直接抛出 RuntimeError,整个决战任务因此中断。
首次崩溃后,后续新任务在导航到 PageName.DECISIVE_BATTLE 时持续失败(页面识别器无法匹配 event_map_page),形成循环失败,直到手动干预。

autowsgr_2026-04-12.debug.log

复现方法

  1. 配置并启动一个决战任务(如 Ex-1)。
  2. 确保该章节处于恢复模式(日志显示 stage=2, node=A)。
  3. 进入地图后,游戏自动弹出「战备舰队获取」界面。
  4. 等待脚本执行 OCR 识别。
  5. 预期结果:识别到可用分数和费用列表,并继续选择舰队或跳过。
    实际结果:OCR 识别到分数为 5,但费用列表为 [],随后抛出异常 RuntimeError: 战备舰队界面已关闭,无法继续在该界面重试 OCR,任务状态变为 error。

Log输出

00:32:24.546 | DEBUG    | ui/decisive/overlay.py:225 | [决战] 检测到 overlay: fleet_acquisition
00:32:24.599 | DEBUG    | ops/decisive/controller.py:124 | [决战] 阶段: CHOOSE_FLEET | 小关: 2 | 节点: A
00:32:24.601 | INFO     | ops/decisive/handlers.py:206 | [决战] 战备舰队获取
00:32:25.610 | DEBUG    | ui/decisive/fleet_ocr.py:98 | [舰队OCR] 开始识别战备舰队可选项
00:32:27.223 | DEBUG    | vision/ocr.py:222 | [OCR] recognize_number: '5' → 5
00:32:27.223 | DEBUG    | ui/decisive/fleet_ocr.py:111 | [舰队OCR] 可用分数: 5
00:32:28.243 | DEBUG    | ui/decisive/fleet_ocr.py:136 | [舰队OCR] 识别到 0 项费用: []
00:32:28.243 | INFO     | ui/decisive/fleet_ocr.py:166 | [舰队OCR] 舰队选项: {}
00:32:28.245 | ERROR    | ops/decisive/controller.py:86 | [决战] 执行异常
Traceback (most recent call last):
  ...
  File "autowsgr/ops/decisive/handlers.py", line 62, in _recognize_fleet_options_with_retry
    raise RuntimeError('战备舰队界面已关闭,无法继续在该界面重试 OCR')
RuntimeError: 战备舰队界面已关闭,无法继续在该界面重试 OCR
00:32:28.251 | WARNING  | server/routes/task.py:314 | [Task] 决战第 1 轮终止 error
00:32:28.252 | INFO     | server/task_manager.py:170 | [Task] 任务完成: task_2367891f (completed)
...
00:32:28.627 | INFO     | server/task_manager.py:148 | [Task] 启动任务: task_eb49e36d (decisive)
00:32:28.636 | DEBUG    | vision/matcher.py:257 | [Matcher] composite 'event_map_page' FAIL – 所有子签名 (2) 均未匹配
00:32:28.637 | DEBUG    | ui/page.py:74 | [UI] 当前页面: 无匹配(共 13 个注册页面)
...
00:32:33.898 | ERROR    | ops/navigate.py:134 | [OPS] 导航失败: 无法识别当前页面,导航中... (目标: PageName.DECISIVE_BATTLE)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions