Skip to content

[Bug] 远距离章节导航(10→2)因最大尝试次数不足而超时失败 #446

@syokounya

Description

@syokounya

autowsgr_2026-04-16.debug.log


name: 🐛 问题反馈
type: Bug

相关环境信息

  • 操作系统: Windows 11
  • 模拟器: MuMu 模拟器 (1920×1080)
  • AutoWSGR 版本: main 分支 (commit 7a26b4e 附近)
  • 相关文件: �utowsgr/ui/map/panels/sortie.py, �utowsgr/ui/map/data.py

问题描述

当任务需要从第 10 章导航到第 2 章(或类似远距离)时,
avigate_to_chapter 会在走到第 4 章时就因超过 CHAPTER_NAV_MAX_ATTEMPTS = 12 而判定超时失败,导致整轮常规战被跳过。

根本原因是当前实现采用单步点击 + 逐轮 OCR 验证的策略。每次点击后,游戏页面动画过渡期间 OCR 会出现抖动(例如连续采样得到 [10, 10, 9] 或 [4, 4, 3]),程序检测到抖动后会本轮不点击,等下一轮重新验证。这导致每一章实际要消耗约 2 次尝试机会。从 10 → 2 需要跨越 8 章,理论上约需 8 × 2 = 16 次尝试,但上限只有 12,因此必然失败。

复现方法

  1. 当前地图页面处于出征面板,且 OCR 识别为第 10 章(如 10-1)。
  2. 启动一个目标为第 2 章的常规战任务(如 2-5)。
  3. 观察日志:章节导航从 10 → 9 → 8 → 7 → 6 → 5 → 4,随后触发 超过最大尝试次数 (12)。

Log输出

shell 14:30:08.232 | INFO | ui/map/panels/sortie.py:248 | [UI] 章节导航: 当前第 10 章 -> 目标第 2 章 14:30:08.233 | INFO | ui/map/panels/sortie.py:164 | [UI] 地图页面 -> 上一章 (y=0.358) 14:30:10.244 | WARNING | ui/map/panels/sortie.py:223 | [UI] 章节导航: OCR 抖动 [10, 10, 9],本轮不点击 14:30:12.402 | INFO | ui/map/panels/sortie.py:248 | [UI] 章节导航: 当前第 8 章 -> 目标第 2 章 14:30:14.449 | WARNING | ui/map/panels/sortie.py:223 | [UI] 章节导航: OCR 抖动 [8, 8, 7],本轮不点击 14:30:18.416 | WARNING | ui/map/panels/sortie.py:223 | [UI] 章节导航: OCR 抖动 [7, 7, 6],本轮不点击 14:30:22.635 | WARNING | ui/map/panels/sortie.py:223 | [UI] 章节导航: OCR 抖动 [6, 6, 5],本轮不点击 14:30:26.943 | WARNING | ui/map/panels/sortie.py:223 | [UI] 章节导航: OCR 抖动 [5, 5, 4],本轮不点击 14:30:31.284 | WARNING | ui/map/panels/sortie.py:223 | [UI] 章节导航: OCR 抖动 [4, 4, 3],本轮不点击 14:30:31.787 | WARNING | ui/map/panels/sortie.py:269 | [UI] 章节导航: 超过最大尝试次数 (12), 目标第 2 章 14:30:31.916 | ERROR | ops/normal_fight.py:301 | [OPS] 地图章节导航失败: 无法导航到第 2 章 14:30:31.918 | WARNING | ops/normal_fight.py:302 | [OPS] 已放弃本轮常规战,尝试返回主页面以继续后续队列

建议的优化方向

  1. 提高 CHAPTER_NAV_MAX_ATTEMPTS:从 12 提升到 20,确保能覆盖 10 → 1 的最远距离。
  2. 远距离批量点击策略:当目标距离当前章节 > 2 章时,改为一次性连续点击若干章(如最多 4 章),然后统一等待动画完全结束后再 OCR 验证,减少过渡态抖动导致的轮空等待。
  3. 近距离保持单步:当距离 ≤ 2 章时继续单步点击,避免过冲,保证精度。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions