Zian Wen 7746f07fc4 fix: 修正多作业 H 关 OCR 替换 / correct H-stage OCR replacement (#17326)
## 说明

多作业模式进入 H10-1 关卡详情页后,OCR 可能会把关卡名识别为 `H1O-1`。现有替换规则没有将它还原为 `H10-1`,而是处理成了
`-1`,导致关卡校验失败并重新开始导航。

本 PR 将 `ClickStageName` 和 `ClickedCorrectStage` 中的 `$010` 改为
`${1}0`,明确区分捕获组 1 和后面的字符 `0`。

## 原因

原规则的本意是保留捕获组 1,再补一个 `0`:

```json
["(H\\d+)O(?=-)", "$010"],
["(-\\d+)O", "$010"]
```

OCR 后处理使用 `boost::regex_replace`。这里的 `$010` 会被解析为捕获组 10,而不是捕获组 1 后接
`0`。这两个正则都没有第 10 个捕获组,因此 `H1O-1` 最终被处理成 `-1`。

修改后的规则使用无歧义写法:

```json
["(H\\d+)O(?=-)", "${1}0"],
["(-\\d+)O", "${1}0"]
```

## 验证

- `resource/tasks/tasks.json` 可以正常解析。
- 四处相关替换均已改为 `${1}0`,`git diff --check` 通过。
- 使用 MAA `v6.14.1`、明日方舟 PC 端、2560 × 1440 分辨率测试 H10-1 多作业导航。

修复前:

```text
CharOcr: H1O-1
Proceed: -1
confirm stage name failed after retrying 3 times, stage name: H10-1
```

修复后,同样的 OCR 输入可以正确进入编队流程:

```text
[2026-07-12 14:12:08.499][TRC] CharOcr: H1O-1
[2026-07-12 14:12:08.499][TRC] Proceed: H10-1
[2026-07-12 14:12:09.545][INF] task: BattleStartPre, text: 开始行动
[2026-07-12 14:12:11.670][INF] SubTaskStart: BattleFormationTask
```

本次测试中没有再出现 `confirm stage name failed`。

<details>
<summary>English</summary>

## Summary

In multi-copilot mode, the stage name on the H10-1 detail panel may be
recognized as `H1O-1`. The existing replacement rules turn it into `-1`
instead of restoring `H10-1`, so stage confirmation fails and navigation
starts over.

This PR changes `$010` to `${1}0` in both `ClickStageName` and
`ClickedCorrectStage`, making the boundary between capture group 1 and
the literal `0` explicit.

## Root cause

The original rules were intended to preserve capture group 1 and append
a literal `0`:

```json
["(H\\d+)O(?=-)", "$010"],
["(-\\d+)O", "$010"]
```

OCR post-processing uses `boost::regex_replace`, where `$010` is parsed
as capture group 10 rather than capture group 1 followed by `0`. Since
these expressions do not contain a tenth capture group, `H1O-1` is
reduced to `-1`.

The replacement now uses the unambiguous `${1}0` form.

## Verification

- Parsed `resource/tasks/tasks.json` successfully.
- Confirmed all four affected replacements use `${1}0`; `git diff
--check` passes.
- Tested H10-1 multi-copilot navigation with MAA `v6.14.1` on the
Arknights PC client at 2560 × 1440.
- The same `H1O-1` OCR result was corrected to `H10-1`, after which MAA
clicked `BattleStartPre` and entered `BattleFormationTask`.
- No `confirm stage name failed` entry was produced during the post-fix
attempt.

</details>

Refs #16888
2026-07-12 15:18:15 +08:00
2026-07-09 00:49:02 +08:00
2026-03-16 21:01:39 +08:00
2026-03-07 19:08:15 +08:00
2026-07-08 13:19:24 +08:00
2026-07-11 16:24:42 +08:00
2026-07-11 16:29:24 +08:00
2024-05-26 06:02:12 +08:00
2021-11-07 23:46:24 +08:00
2024-05-26 06:02:12 +08:00
2025-12-11 12:22:22 +08:00

LOGO

MAA


C++ platform
license commit
stars GitHub all releases
Ask DeepWiki
MaaAssistantArknights%2FMaaAssistantArknights | Trendshift

简体中文 | 繁體中文 | English | 日本語 | 한국어

MAA 的意思是 MAA Assistant Arknights

一款明日方舟游戏小助手

基于图像识别技术,一键完成全部日常任务!

绝赞更新中 ✿✿ヽ(°▽°)ノ✿

下载与安装

请阅读 文档 后前往 官网Releases 下载,并参考 新手上路 进行安装。

亮点功能

  • 理智作战,掉落识别及上传 企鹅物流一图流
  • 智能基建换班,自动计算干员效率,单设施内最优解;同时也支持 自定义排班
  • 自动公招,可选使用加急许可,一次全部刷完!公招数据自动上传 企鹅物流一图流
  • 支持手动识别公招界面,方便对高星公招做出选择 (你的这个高资回费出的是推王呢还是推王呢)
  • 支持识别干员列表,统计已有和未有干员及潜能,并在公招识别显示
  • 支持识别养成材料,并导出至 企鹅物流刷图规划明日方舟工具箱ARK-NIGHTS 干员培养表
  • 访问好友、收取信用及购物、领取日常奖励等,一键全日常自动长草
  • 肉鸽全自动刷源石锭和等级,自动烧水和凹直升,智能识别干员及练度
  • 选择作业 JSON 文件,自动抄作业, 视频演示
  • 支持 C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP 等多种接口,方便集成调用,自定义你的 MAA
话不多说,看图! zh1 zh2 zh3 zh4

使用说明

功能介绍

请参阅 用户手册

外服支持

目前国际服(美服)、日服、韩服、繁中服的绝大部分功能均已支持。但由于外服用户较少及项目人手不足,很多功能并没有进行全面的测试,所以请自行体验。
若您遇到了 Bug或对某个功能有强需求欢迎在 Issues讨论区 催更;或加入我们一起建设 MAA请参阅 外服适配教程

CLI 支持

MAA 支持命令行界面CLI操作支持 LinuxmacOS 和 Windows可用于自动化脚本或在无图形界面的服务器上使用。请参阅 CLI 使用指南

加入我们

主要关联项目

多语言 (i18n)

MAA 以中文(简体)为第一语言,翻译词条均以中文(简体)为准。

参与开发

请参阅 开发指南

API

外服适配

请参阅 外服适配教程,对于国服已支持的功能,绝大部分的外服适配工作仅需要截图 + 简单的 JSON 修改即可。

Issue bot

请参阅 Issue Bot 使用方法

致谢

开源库

数据源

贡献/参与者

感谢所有参与到开发/测试中的朋友们,是大家的帮助让 MAA 越来越好! (*´▽`)

Contributors

声明

  • 本软件使用 GNU Affero General Public License v3.0 only 开源,并附带额外 用户协议
  • 本软件 logo 并非使用 AGPL 3.0 协议开源,耗毛、vie 两位画师及软件全体开发者保留所有权利。不得以 AGPL 3.0 协议已授权为由在未经授权的情况下使用本软件 logo不得在未经授权的情况下将本软件 logo 用于任何商业用途。
  • 本软件开源、免费,仅供学习交流使用。若您遇到商家使用本软件进行代练并收费,可能是设备与时间等费用,产生的问题及后果与本软件无关。

DirectML 支持说明

本软件支持 GPU 加速功能,其在 Windows 平台上依赖于 Microsoft 提供的独立组件 DirectML。DirectML 并非本项目的开源部分,也不受 AGPL 3.0 的约束。为方便用户,我们随安装包附带了一个未经修改的 DirectML.dll 文件。如果您无需 GPU 加速功能,可安全删除该 DLL 文件,软件的核心功能仍可正常运行。

广告

用户交流 QQ 群:MAA 使用 & 粥游交流 QQ 群
Discord 服务器: 邀请链接
用户交流 TG 群:Telegram 群
自动战斗 JSON 作业分享:prts.plus
Bilibili 直播间:MrEO 直播间 直播敲代码 & MAA-Official 直播间 游戏/杂谈

技术群(舟无关、禁水):内卷地狱!(QQ 群)
开发者群:QQ 群

如果觉得软件对你有帮助,帮忙点个 Star 吧!~(网页最上方右上角的小星星),这就是对我们最大的支持了!

Description
MAA镜像
Readme AGPL-3.0 Cite this repository 1.2 GiB
Languages
C++ 46.2%
C# 39.2%
Python 5.5%
C 5%
CMake 0.8%
Other 3.2%