在提交您的问题反馈之前
相关环境信息
No response
问题描述
决战小关通关后,confirm_stage_clear 的 settle 循环中 symbol_get_ship 模板在决战地图页上被误匹配,导致代码不断点击右下角关闭按钮但无法真正关闭弹窗。最终小关结束后游戏画面停留在决战地图页,没有回到决战入口总览页,_handle_enter_map 的 detect_entry_status() 在地图页上寻找入口状态模板,抛出 TimeoutError。
复现方法
运行决战 Ex-1(或任意章节)
打完小关终止节点,进入 STAGE_CLEAR 阶段
confirm_stage_clear 执行两次 confirm_operation 后进入 settle 循环
settle 循环持续检测到 symbol_get_ship,不断点击 (0.953, 0.954)
12 秒 settle 超时,流程进入 ENTER_MAP
_handle_enter_map 调用 detect_entry_status() 在地图页上匹配入口状态模板
10 秒后超时:检测决战入口状态超时 (10.0s): 未匹配到任何状态模板
Log输出
22:55:18.881 | INFO | ops/decisive/handlers.py:423 | [决战] 节点 J 战斗结束, 等待地图加载
22:55:18.882 | INFO | ops/decisive/handlers.py:427 | [决战] 小关 2 终止节点 J 已到达
22:55:18.882 | DEBUG | ops/decisive/controller.py:124 | [决战] 阶段: STAGE_CLEAR | 小关: 2 | 节点: J
22:55:18.882 | INFO | ops/decisive/handlers.py:468 | [决战] 小关 2 通关!
22:55:22.658 | DEBUG | emulator/controller/scrcpy.py:417 | [Emulator] click(0.502, 0.846) → pixel(964, 914) res=1920x1080 ui/utils/navigation.py:292 in confirm_operation
22:55:22.719 | INFO | ui/utils/navigation.py:293 | [UI] 确认操作: 点击 'confirm_4' (0.5021, 0.8463)
22:55:24.370 | DEBUG | emulator/controller/scrcpy.py:417 | [Emulator] click(0.502, 0.846) → pixel(964, 914) res=1920x1080 ui/utils/navigation.py:292 in confirm_operation
22:55:24.421 | INFO | ui/utils/navigation.py:293 | [UI] 确认操作: 点击 'confirm_4' (0.5021, 0.8463)
22:55:32.421 | DEBUG | emulator/controller/scrcpy.py:417 | [Emulator] click(0.501, 0.568) → pixel(961, 613) res=1920x1080 ui/utils/navigation.py:292 in confirm_operation
22:55:32.486 | INFO | ui/utils/navigation.py:293 | [UI] 确认操作: 点击 'confirm_1' (0.5005, 0.5676)
22:55:36.242 | INFO | ui/decisive/map_controller.py:638 | [地图控制器] 结算阶段仍有奖励弹窗: 'symbol_get_ship'
22:55:36.245 | DEBUG | emulator/controller/scrcpy.py:417 | [Emulator] click(0.953, 0.954) → pixel(1829, 1030) res=1920x1080 ui/decisive/map_controller.py:639 in confirm_stage_clear
22:55:40.395 | INFO | ui/decisive/map_controller.py:638 | [地图控制器] 结算阶段仍有奖励弹窗: 'symbol_get_ship'
22:55:40.399 | DEBUG | emulator/controller/scrcpy.py:417 | [Emulator] click(0.953, 0.954) → pixel(1829, 1030) res=1920x1080 ui/decisive/map_controller.py:639 in confirm_stage_clear
22:55:43.918 | WARNING | ui/decisive/map_controller.py:650 | [地图控制器] 小关通关后未能确认已回到决战入口页
22:55:43.921 | DEBUG | ops/decisive/controller.py:124 | [决战] 阶段: ENTER_MAP | 小关: 2 | 节点: A
22:55:54.643 | ERROR | ops/decisive/controller.py:86 | [决战] 执行异常
Traceback (most recent call last):
File "F:\app\conda\Lib\threading.py", line 1015, in _bootstrap
self._bootstrap_inner()
│ └ <function Thread._bootstrap_inner at 0x0000024B05E98220>
└ <Thread(Thread-1 (_run_in_thread), started daemon 7324)>
File "F:\app\conda\Lib\threading.py", line 1044, in _bootstrap_inner
self.run()
│ └ <function Thread.run at 0x0000024B05E7BF60>
└ <Thread(Thread-1 (_run_in_thread), started daemon 7324)>
File "F:\app\conda\Lib\threading.py", line 995, in run
self._target(*self._args, **self._kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <Thread(Thread-1 (_run_in_thread), started daemon 7324)>
│ │ │ └ (<function _start_decisive.<locals>.executor at 0x0000024B3A208180>,)
│ │ └ <Thread(Thread-1 (_run_in_thread), started daemon 7324)>
│ └ <bound method TaskManager._run_in_thread of <autowsgr.server.task_manager.TaskManager object at 0x0000024B1A6D67B0>>
└ <Thread(Thread-1 (_run_in_thread), started daemon 7324)>
File "F:\AutoWSGR-GUI\python\site-packages\autowsgr\server\task_manager.py", line 160, in _run_in_thread
results = executor(task)
│ └ TaskInfo(task_id='task_37a622e4', task_type='decisive', status=<TaskStatus.RUNNING: 'running'>, created_at='2026-04-11T14:42:...
└ <function _start_decisive.<locals>.executor at 0x0000024B3A208180>
File "F:\AutoWSGR-GUI\python\site-packages\autowsgr\server\routes\task.py", line 308, in executor
result = controller.run()
│ └ <function DecisiveController.run at 0x0000024B3A1498A0>
└ <autowsgr.ops.decisive.controller.DecisiveController object at 0x0000024B3A1292B0>
> File "F:\AutoWSGR-GUI\python\site-packages\autowsgr\ops\decisive\controller.py", line 84, in run
return self._main_loop()
│ └ <function DecisiveController._main_loop at 0x0000024B3A14A2A0>
└ <autowsgr.ops.decisive.controller.DecisiveController object at 0x0000024B3A1292B0>
File "F:\AutoWSGR-GUI\python\site-packages\autowsgr\ops\decisive\controller.py", line 153, in _main_loop
handler()
└ <bound method DecisivePhaseHandlers._handle_enter_map of <autowsgr.ops.decisive.controller.DecisiveController object at 0x000...
File "F:\AutoWSGR-GUI\python\site-packages\autowsgr\ops\decisive\handlers.py", line 115, in _handle_enter_map
entry_status = self._battle_page.detect_entry_status()
│ │ └ <function DecisiveBattlePage.detect_entry_status at 0x0000024B38D8DA80>
│ └ <autowsgr.ui.decisive.battle_page.DecisiveBattlePage object at 0x0000024B3A12A120>
└ <autowsgr.ops.decisive.controller.DecisiveController object at 0x0000024B3A1292B0>
File "F:\AutoWSGR-GUI\python\site-packages\autowsgr\ui\decisive\battle_page.py", line 407, in detect_entry_status
raise TimeoutError(f'检测决战入口状态超时 ({timeout}s): 未匹配到任何状态模板')
└ 10.0
TimeoutError: 检测决战入口状态超时 (10.0s): 未匹配到任何状态模板
22:55:54.648 | WARNING | server/routes/task.py:314 | [Task] 决战第 1 轮终止: error
22:55:54.649 | INFO | server/task_manager.py:170 | [Task] 任务完成: task_37a622e4 (completed)
在提交您的问题反馈之前
相关环境信息
No response
问题描述
决战小关通关后,confirm_stage_clear 的 settle 循环中 symbol_get_ship 模板在决战地图页上被误匹配,导致代码不断点击右下角关闭按钮但无法真正关闭弹窗。最终小关结束后游戏画面停留在决战地图页,没有回到决战入口总览页,_handle_enter_map 的 detect_entry_status() 在地图页上寻找入口状态模板,抛出 TimeoutError。
复现方法
运行决战 Ex-1(或任意章节)
打完小关终止节点,进入 STAGE_CLEAR 阶段
confirm_stage_clear 执行两次 confirm_operation 后进入 settle 循环
settle 循环持续检测到 symbol_get_ship,不断点击 (0.953, 0.954)
12 秒 settle 超时,流程进入 ENTER_MAP
_handle_enter_map 调用 detect_entry_status() 在地图页上匹配入口状态模板
10 秒后超时:检测决战入口状态超时 (10.0s): 未匹配到任何状态模板
Log输出