Compare commits

...

482 Commits

Author SHA1 Message Date
uye
23ad7fd301 Release v6.11.0-beta.2 (#16919) 2026-05-29 01:46:14 +08:00
uye
ed817cce19 fix: changelog 猪了 2026-05-29 01:45:36 +08:00
uye
854b9ec9b0 Release v6.11.0-beta.2 (#16916)
## Summary by Sourcery

通过将串口配置与命令执行分离,并对共享客户端实例的访问强制使用互斥锁保护,改进 ADB-lite 客户端管理。

改进内容:
- 添加锁定辅助工具,在执行 connect、shell、exec、push 和交互式 shell 命令之前,验证并保护对共享 ADB-lite
客户端的访问。
- 在 PlatformIO/AdbLiteIO 上引入可配置的 ADB
串口,并在客户端(重新)初始化时提供安全机制,同时在客户端创建失败时记录错误日志。
- 调整 ADB 释放逻辑,仅在存在 ADB-lite 客户端时才发出释放命令,从而减少不必要的操作。
- 连接 AdbController,将设备地址向下传递到平台 I/O 层,以在各类命令中实现 ADB-lite 客户端的一致使用。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve ADB-lite client management by separating serial configuration
from command execution and enforcing mutex-guarded access to the shared
client instance.

Enhancements:
- Add a locking helper to validate and guard access to the shared
ADB-lite client before executing connect, shell, exec, push, and
interactive shell commands.
- Introduce a configurable ADB serial on PlatformIO/AdbLiteIO with safe
client (re)initialization and error logging when client creation fails.
- Adjust ADB release logic to only issue release commands when an
ADB-lite client is present, reducing unnecessary operations.
- Wire AdbController to propagate the device address into the platform
I/O layer for consistent ADB-lite client usage across commands.

</details>
2026-05-29 01:42:01 +08:00
uye
b3eb6cbbc5 ai: changelog details 增加日期 2026-05-29 01:41:21 +08:00
uye
f4fafde9bf docs: changelog 2026-05-29 01:33:56 +08:00
github-actions[bot]
952c97d9a6 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26589446911

[skip changelog]
2026-05-28 17:00:23 +00:00
Loong
b2fa9a1c3e fix: 显式声明 adb-lite client 对应的 serial (#16853)
## 概述

- 在 `AdbController::connect` 确定目标 address/serial 后,通过
`PlatformIO::set_adb_serial` 显式声明当前 adb 设备。
- NativeIO 默认忽略该调用;AdbLiteIO 使用该 serial 初始化或切换内部 adb-lite client。
- adb-lite 的 `shell`、`exec-out`、`push` 和交互式 shell 只使用已声明的
client,不再从命令路径里隐式初始化 client。
- AdbLiteIO 内部集中校验 client/serial,并用 mutex 覆盖 `m_adb_client` /
`m_adb_serial` 以及对 adb-lite client 的调用,避免 `call_command` 与
`interactive_shell` 并发访问同一状态。

## 背景

#16850 已修复 `adb connect` 被跳过后 adb-lite client 未初始化的问题,并补充了内部锁保护。这个 PR
是后续调整:把 client 初始化入口从命令执行路径挪到连接生命周期中,让状态声明更明确。

## 修复方式

连接阶段已经知道当前 address/serial,所以在设置 connect/release 命令后调用:

```cpp
m_platform_io->set_adb_serial(address);
```

对 NativeIO 来说这是 no-op;对 AdbLiteIO 来说,这是初始化或切换 `adb::client` 的入口。

后续 adb-lite 命令路径通过 `lock_adb_client(serial)` 统一校验命令中的 `-s <serial>` 与当前
client 对应的 serial 一致,并在同一把锁仍然持有时调用 adb-lite client。这样避免在
`interactive_shell` 中隐式写入 client/serial 状态,也避免把 `m_adb_client` 暴露给无锁调用。

`set_adb_serial` 也改为先创建临时 `adb::client`,创建成功后再提交 `m_adb_serial` /
`m_adb_client` 状态;如果创建失败则记录错误并清空 adb-lite client 状态,避免 serial 已切换但
client 仍指向旧对象的不一致状态。

## 验证

- `git diff --check --cached`
- `cmake --build /private/tmp/maa-build-8599-core --parallel 8`
- `cmake --install /private/tmp/maa-build-8599-core --config
RelWithDebInfo`
- 本机 `maa` CLI + Android 35 arm64 AVD:
  - `maa run connect-only -p adb-lite-test --no-summary -vvv`
  - 日志显示 `Loading MaaCore from: /private/tmp/maa-test-data-8599/lib`
  - 日志显示 `Setting adb lite enabled to true`
  - 日志到达 `Connected`
  - 日志到达 `FastestWayToScreencap Encode`
  - 未出现 `adb client not initialized`
  - 未出现 `failed to create adb-lite client`
  - 未出现 `fallback to NativeIO`
2026-05-29 00:46:30 +08:00
uye
5a4c3fe7b4 fix: 修复开启基建退出提醒时无法退出基建
fix #16913
2026-05-29 00:04:39 +08:00
github-actions[bot]
e8a6d8b063 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26584047595

[skip changelog]
2026-05-28 15:22:16 +00:00
uye
6ed2275197 fix: 修复快捷切换在遇到 LoadingText 时无法跳出循环
fix #16910
2026-05-28 23:03:18 +08:00
github-actions[bot]
35a92857d1 chore: Auto Update Game Resources - 2026-05-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26559057935

[skip changelog]
2026-05-28 06:40:01 +00:00
uye
e6360ac8a8 Release v6.11.0-beta.1 (#16906)
## Summary by Sourcery

在提供的 resource/tasks/tasks.json
差异中看不到任何功能性更改;根据现有信息,此次发布似乎不包含代码、配置或文档方面的修改。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

No functional changes are visible in the provided diff for
resource/tasks/tasks.json; the release appears to contain no code,
config, or documentation modifications based on the available
information.

</details>
2026-05-28 14:07:30 +08:00
uye
046459acee fix: 信用收支卡在商店里 2026-05-28 14:05:56 +08:00
uye
50814459f0 Release v6.11.0-beta.1 (#16895)
## Sourcery 总结


为作战任务新增基于仓库库存的掉落目标模式,重做自动公招标签偏好及保留逻辑,改进任务队列交互体验和通知处理,并增强平台与文件系统工具的健壮性,同时更新配置处理方式和文档。

新功能:
- 为作战任务中指定掉落物新增“按仓库库存为目标”的模式,包括按核心任务的运行时追踪,以及展示当前库存和有效刷取数量的 UI。
- 新增对可配置公招标签(包括机器人)的保留支持,通过开关 UI 和回调实现,取代旧的“1 级干员跳过”行为。
- 允许在任务队列中通过新的复制操作来重复已有任务。
- 暴露通知可用状态,并在启动时以及启用通知时展示 toast 通知健康检查结果。
- 新增可复用的公招标签列表归一化工具,以及用于迁移旧版公招保留标签配置的 JSON 转换器。

缺陷修复:
- 在视觉辅助工具中避免出现无效的零大小 ROI:将全零矩形视为对整张图片的请求,并仅记录真正的空区域日志。
- 修复子进程中的 POSIX shell 命令执行行为,避免在 `exec` 失败后返回并破坏父进程状态。
- 通过使用错误码和受保护的目录遍历,使调试图像维护对权限与文件系统错误更加健壮。
- 确保任务索引在选择变更后保持一致,并在任务队列日志及 UI 绑定中统一使用正确的任务显示名称属性。
- 正确处理仓库识别更新和任务状态变化,使基于库存的掉落目标能正确刷新,同时在任务运行时避免修改配置。
- 在加载与序列化过程中对公招标签进行归一化,避免重复或空标签项。
- 在存在备用基础 URL 时,避免意外退回到使用缓存的 API 响应。

优化改进:
- 优化作战设置的用户体验:提供更清晰的中文 XML 注释,重命名拖拽状态属性,并改进掉落相关绑定的更新逻辑。
- 重做自动公招参数以支持偏好的 3★ 标签和独立的保留标签,调整 toast 行为,并将旧的 `skip_robot`
仅保留在协议层以保证向后兼容。
- 清理重复的布尔配置解析逻辑,在多个设置视图模型和服务中统一使用强类型的 `ConfigurationHelper.GetValue` 调用。
- 改进 tooltip 基础设施,以支持自定义 tooltip 内容、启用状态以及更丰富的绑定。
- 调整内部日志辅助工具和基础设施生产任务日志,使日志信息更清晰、更结构化,并统一日志记录器用法。
- 改善启动行为,将配置恢复和 toast 通知检查拆分为后台任务,并更新高级设置可见性逻辑。
- 收紧 adb-lite shell 封装及其他一些基础设施代码路径,使其更清晰和更健壮。

CI:
- 在多个工作流中将第三方 GitHub Actions(push 和 AI 分析)固定到具体的提交 SHA,以提升 CI 行为的可复现性。

文档:
- 更新所有支持语言的集成协议文档,弃用 `skip_robot`,记录新的 `skip_tags` 参数,并调整公招示例。
- 在所有支持语言中扩展回调模式文档,加入新的 `RecruitPreservedTag` 通知说明。
- 明确自动公招手册内容,描述偏好 3★ 标签、保留标签行为以及更新后的通知触发条件。

<details>
<summary>Original summary in English</summary>

## Sourcery 总结


为战斗任务引入基于仓库库存的目标掉落模式,重构自动公招偏好与保留标签配置,改进任务队列交互体验和通知健康检查,并加强平台、文件系统与配置处理的健壮性。

新特性:
- 为战斗任务新增“基于仓库库存的目标掉落模式”,包括按核心任务进行运行时追踪,以及在 UI 中展示当前库存和有效刷取数量。
- 为自动公招新增“偏好 3★ 标签”和“保留标签”配置,包含新的 UI 控件、核心支持和回调通知。
- 允许在任务队列中通过“复制”操作复用现有任务。
- 暴露 toast 通知的可用性,并向用户展示启动时的健康检查结果。
- 引入可复用的助手工具,用于公招标签列表的规范化处理以及旧版公招配置的迁移。

缺陷修复:
- 在视觉助手中避免出现无效的零尺寸 ROI:将全零矩形视为“全图请求”,只对真正为空的区域进行日志记录。
- 修复子进程中 POSIX Shell 命令执行的问题,确保 exec 失败会正确终止子进程,而不会破坏父进程状态。
- 通过受保护的目录遍历和支持错误码的日志记录,提高调试图像维护在面对文件系统和权限错误时的健壮性。
- 当选择变化时,保持任务队列模型、日志和绑定中的任务索引与显示名称一致。
- 修正仓库识别更新与任务状态变更的处理逻辑,确保基于库存的掉落目标能够正确刷新且不会在运行过程中修改配置。
- 在加载与序列化时规范化公招标签,避免出现重复或空标签项。
- 当为 Maa API 请求配置了备用基础 URL 时,避免回退到缓存的 API 响应。
- 改进基建任务中的产品变更与无人机使用流程,更好地处理产品识别不稳定和产品变更失败的情况,避免阻塞干员上岗。
- 确保肉鸽藏品刷取在退出“最后领奖”流程时正确重置配置标记。

改进与优化:
- 优化战斗设置相关的交互体验:提供更清晰的中文 XML 注释,重命名拖拽状态属性,并改进与运行时状态绑定的掉落绑定刷新逻辑。
- 重构自动公招参数,使其支持“偏好 3★ 标签”和“独立的保留标签”,同时将传统的 `skip_robot` 限制在协议层用于兼容旧版。
- 通过统一使用 `ConfigurationHelper.GetValue`
替代临时的布尔解析逻辑,实现强类型的集中化配置访问,覆盖各项设置与服务代码。
- 扩展工具提示(tooltip)基础设施,以支持自定义内容、启用状态以及更丰富的数据绑定。
- 精简内部日志助手工具,生成更清晰、更结构化的日志并简化日志记录调用方式。
- 调整启动流程,将配置恢复与 toast 通知检查放入后台任务执行,并优化高级设置的显示逻辑。
- 收紧 adb-lite shell 封装及相关平台代码,使执行路径更清晰、更可靠。
- 更新窗口、托盘、睡眠管理及其他 GUI 行为,以更稳定地遵循新的配置默认值。
- 改进基建产物与无人机插件的行为,提供更清晰的日志,并采用更严格的产品识别置信度阈值。

持续集成(CI):
- 将用于 push 和 AI 分析的第三方 GitHub Actions 固定到具体的提交 SHA,以提升 CI 行为的可复现性。

文档:
- 更新所有支持语言的对接协议文档,弃用 `skip_robot`,补充新的 `skip_tags` 参数,并刷新自动公招示例。
- 在所有支持语言中扩展回调协议文档,新增 `RecruitPreservedTag` 通知说明。
- 明确自动公招说明文档,对“偏好 3★ 标签”、保留标签的行为以及更新后的通知触发条件进行详细说明。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce inventory-based target drop mode for fight tasks, rework auto
recruitment preferences and preserved tags, improve task queue UX and
notification health checks, and harden platform, filesystem, and
configuration handling.

New Features:
- Add inventory-based target drop mode for fight tasks, including
runtime tracking per core task and UI display of current inventory and
effective farming quantity.
- Add preferred 3★ tag and preserved tag configuration for auto
recruitment, with new UI controls, core support, and callback
notifications.
- Allow duplicating existing tasks in the task queue via a copy action.
- Expose toast notification availability and surface a startup health
check to users.
- Introduce reusable helpers for recruitment tag list normalization and
migration of legacy recruitment configuration.

Bug Fixes:
- Prevent invalid zero-size ROIs in vision helpers by treating all-zero
rectangles as full-image requests and logging only truly empty regions.
- Fix POSIX shell command execution in child processes so exec failures
terminate the child without corrupting the parent process state.
- Harden debug image maintenance against filesystem and permission
errors through guarded directory traversal and error-code-aware logging.
- Keep task indices and display names consistent across task queue
models, logs, and bindings when the selection changes.
- Correct handling of depot recognition updates and task state changes
so inventory-based drop targets refresh correctly without mutating
configuration during runs.
- Normalize recruitment tags on load and serialization to avoid
duplicate or empty items.
- Avoid falling back to cached API responses when a fallback base URL is
configured for Maa API requests.
- Improve product change and drone-usage workflows in infrastructure
tasks to better handle weak product detection and product-change
failures without blocking staffing.
- Ensure roguelike collectible runs reset configuration flags correctly
when exiting last-reward handling.

Enhancements:
- Refine fight settings UX with clearer Chinese XML comments, renamed
drag state properties, and improved drop-binding refresh logic tied to
runtime state.
- Rework auto recruitment parameters to support preferred 3★ tags and
independent preserved tags while keeping legacy `skip_robot` only at the
protocol layer for backward compatibility.
- Centralize strongly typed configuration access by replacing ad-hoc
boolean parsing with `ConfigurationHelper.GetValue` across settings and
services.
- Extend tooltip infrastructure to support custom content, enabled
state, and richer bindings.
- Streamline internal logging helpers to produce clearer, more
structured logs and simplify logger usage.
- Adjust startup behavior to run config recovery and toast notification
checks in background tasks and refine advanced settings visibility.
- Tighten adb-lite shell wrapping and related platform code for clearer,
more robust execution paths.
- Update window, tray, sleep management, and other GUI behaviors to
respect new configuration defaults more reliably.
- Improve infrastructure production and drone plugins with clearer
logging and stricter product verification confidence thresholds.

CI:
- Pin third-party GitHub Actions used for pushes and AI analysis to
specific commit SHAs for more reproducible CI behavior.

Documentation:
- Update integration protocol docs in all supported languages to
deprecate `skip_robot`, document the new `skip_tags` parameter, and
refresh auto recruit examples.
- Extend callback schema documentation in all supported languages with
the new `RecruitPreservedTag` notification.
- Clarify auto recruitment manuals to describe preferred 3★ tags,
preserved tag behavior, and updated notification triggers.

</details>

</details>
2026-05-28 13:32:02 +08:00
uye
30925621f2 docs: changelog 2026-05-28 12:15:37 +08:00
Luhan Xiao
1bafad61dd feat(changelog): 记录 MaaMacGui 子仓库更新 (#16870)
* feat(changelog): 记录 MaaMacGui 子仓库更新

* fix(changelog): 修复 MaaMacGui 更新记录解析
2026-05-28 12:09:25 +08:00
H2O_MERO
a752f4b193 feat:为设置添加了搜索支持 (#16833)
* fix:修复了问题 只能在#nullable 注释上下文内的代码中使用可为 null 的引用类型的注释

* chore: Apply suggestion from @sourcery-ai[bot]

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* chore: 搜索框放到导航栏上方

* chore: UpdateSourceTrigger

* rft: 通过附加属性实现

* rft: 实时遍历可视树,结束搜索时还原展开状态

* perf: 雷霆边框

* chore: 等待界面更新后再搜索

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-05-28 12:08:07 +08:00
uye
c7f83cc154 chore: 删除多余标题 2026-05-28 08:11:18 +08:00
uye
f311cd9bcc ai: 调整 changelog skill 2026-05-28 08:06:35 +08:00
uye
98445b29e9 chore: 公告也改用 MarkdownDataHelper 2026-05-28 08:03:29 +08:00
uye
a9520e2298 feat: 新增 MarkdownDataHelper 2026-05-28 07:56:40 +08:00
github-actions[bot]
fe961feb75 docs: Auto Update Changelogs of v6.11.0-beta.1 (#16898)
* docs: Auto Generate Changelog of Release v6.11.0-beta.1

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-28 07:22:03 +08:00
uye
8f8d9bd6b2 i18n: 添加任务复制失败的本地化翻译 2026-05-28 06:56:52 +08:00
uye
1a4512976b docs: 补全 指定天数内的理智药 相关文档 2026-05-28 06:50:20 +08:00
uye
14157a9085 perf: 优化 FightTaskStageResetModeConverter 与 RecruitTaskHoldTagsConverter 嵌套逻辑 2026-05-28 06:41:06 +08:00
uye
1c0f5a985f chore: 调整静态视频路径的绑定 2026-05-28 06:36:07 +08:00
uye
b9cbfaa338 docs: skip_tags -> preserve_tags 2026-05-28 06:30:53 +08:00
uye
3f07db484f chore: 在 OnCustomToolTipChanged 中增加对 PART_Border 为空的防护,以避免在模板应用前出现空引用异常 2026-05-28 06:27:05 +08:00
uye
bf6654eb31 chore: 调整特定平台下的 IsNotificationAvailable 返回 2026-05-28 06:25:44 +08:00
github-actions[bot]
a9025a8c4b feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26541802412
[skip changelog]
2026-05-27 22:12:39 +00:00
github-actions[bot]
3039e41c3f chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26540052175
[skip changelog]
2026-05-27 21:35:27 +00:00
github-actions[bot]
49e660f3ea chore: Auto Update Game Resources - 2026-05-27
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26536825404

[skip changelog]
2026-05-27 20:29:04 +00:00
uye
a5a237f53f chore: 改漏了——
[skip changelog]
2026-05-28 03:41:42 +08:00
uye
fa11d62642 chore: 增加基建小房子切换兜底 2026-05-28 03:39:36 +08:00
uye
f64a353c14 fix: 使用小房子转跳后无法切换基建设施 2026-05-28 03:18:00 +08:00
uye
d763c9b152 chore: 添加主任务右键效果切换提示 2026-05-28 02:56:09 +08:00
uye
676c3bda4a chore: 加回右键菜单和单次运行
fix #16889
2026-05-28 02:44:16 +08:00
HY
92d939b36c chore: 繁中服「天想」主題 (#16893)
chore: 繁中服「孤星」主題
2026-05-28 01:54:33 +08:00
github-actions[bot]
b30112b5b7 chore: Auto Templates Optimization
Triggered by 70cd6d5324

[skip changelog]
2026-05-27 10:45:46 +00:00
HY
70cd6d5324 fix: 嘗試修復繁中服界園肉鴿無法放棄探索 (#16887) 2026-05-27 18:45:24 +08:00
Status102
2f14464a91 perf: NotificationImplWpf当Toast不可用时提示原因 (#16877)
* perf: NotificationImplWpf当Toast不可用时提示原因

* i18n: by uye

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>

* i18n: JP

* i18n: zh-tw

* i18n: KR

* i18n: machine translate

---------

Co-authored-by: Manicsteiner <Manicsteiner@outlook.com>
Co-authored-by: momomochi987 <45387477+momomochi987@users.noreply.github.com>
Co-authored-by: HX3N <scarlet7518@gmail.com>
2026-05-27 18:44:38 +08:00
status102
93af38fbe4 fix: Roi.height 越界 2026-05-27 16:03:56 +08:00
status102
9c91b666cb fix: 避免多次correct_rect后返回全图rect 2026-05-27 12:58:08 +08:00
status102
7a33b92d58 fix: 避免多次correct_rect后返回全图rect 2026-05-27 12:46:58 +08:00
status102
b48c640119 fix: LogWarn 等宏在 Release 下依旧输出scope导致额外间隔 2026-05-27 12:46:57 +08:00
Saratoga-Official
f50f67177f fix: 界园见钱问柳事件选择逻辑
fix #16879
2026-05-27 09:32:47 +08:00
github-actions[bot]
0c572e9f6c feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26478296389
[skip changelog]
2026-05-26 22:16:59 +00:00
github-actions[bot]
191e7035b6 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26476376564
[skip changelog]
2026-05-26 21:33:41 +00:00
github-actions[bot]
fda1cc3ff3 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26473080349

[skip changelog]
2026-05-26 20:25:29 +00:00
H2O_MERO
39e01179ce feat: 对一键长草列表进行了交互优化,并添加了复制按钮 (#16733)
* feat: 对一键长草列表进行了交互优化

* feat: 增加了删除和编辑两种矢量图标并使用

* fix:修复了按钮颜色没有及时恢复的问题

* feat:加入了复制按钮

* fix:修复了复制任务后部分任务丢失数据和出现渲染异常的问题

* refactor: 跟进和优化了引导界面的任务设置部分样式

* perf: 任务index设置

* perf:

* revert

* fix: NameDisplay -> NameOrTaskType

* fix: 额外的图标

* fix: GroupName

* rft: 提取通用属性,修复 RadioButton 绑定错误,非 Idle 时不显示对应操作按钮

* chore: 删除左键提示

* fix: 高亮背景色

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-27 02:38:59 +08:00
github-actions[bot]
d5a2e8efb9 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26464510177

[skip changelog]
2026-05-26 17:34:30 +00:00
uye
0289fa0381 feat: 公招保留指定词条 (#16586)
* feat: 保留指定词条

* chore: wpf 不再传递 skip_robot

* rft: 提取共用方法

* perf: 传参

* rft: 统一使用 PreserveTags

* fix: NameOrTaskType

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-27 00:46:02 +08:00
uye
5efdfa1b5c feat: 理智作战支持设定目标材料最大库存 (#16487)
* feat: 理智作战支持设定目标材料最大库存

* chore: 调整翻译绑定,修改运行时 IsEnable,移除无用属性

* chore: 调整描述

* chore: 调整缩进

* perf: 移除不必要的变更判断

* feat: 任务开始时刷新库存

* rft: rename

* chore: 运行时不刷新仓库数据,仅在进入任务时刷新一次

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-27 00:28:56 +08:00
uye
753547b5dd feat: 支持部分任务间通过导航栏切换 (#16869) 2026-05-27 00:28:22 +08:00
github-actions[bot]
2592b76569 chore: Auto Update Game Resources - 2026-05-26
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26460728688

[skip changelog]
2026-05-26 16:20:47 +00:00
Alex Gu
45aefd30d7 fix: filenum_ctrl SIGABRT (#16233) + PosixIO fork _exit + CI action SHA pin (#16502)
* fix: PosixIO::call_command 中 fork 后 child 缺少 _exit 导致 unwind 进 parent 代码

当 execlp 失败时,child 分支走 `return std::nullopt`,该子进程会从
PosixIO::call_command 一路 unwind 回 AdbController::call_command 及其
caller,跟 parent 同时跑:

- 在 child 地址空间副本中释放 m_callcmd_mutex(caller 处持有的 unique_lock)
- 后续命中 `kill(m_child, SIGTERM)` 时 child 视角 m_child==0
  → POSIX `kill(0, SIG)` 给整个进程组发信号 → 把 parent 一并杀掉
- 析构时双 close 同一 fd 号(kernel 已重用给别处)→ 关掉 parent 的
  socket / log fd → 后续 read/write 错乱

查看 git 历史发现回归引入于 #7748(perf: update PosixIO::call_command, 2023-12)。
当时 perf 重构把 child 分支结尾的 `::exit(exit_ret)` 替换成
`Log.error(...) + return std::nullopt`。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* ci: 将第三方 action 钉到 commit SHA,符合 GitHub 安全建议

https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: filenum_ctrl 中 std::filesystem 调用缺 error_code 导致 SIGABRT

Windows 上 debug 截图被另一进程占用时,std::filesystem 多个调用会抛 filesystem_error。
异常未被 filenum_ctrl / save_debug_image / AbstractTask::run 任一层
捕获,沿任务栈一路冒到 MaaCore 顶层(issue #16233)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: 清理 PosixIO 子分支 execlp 死赋值

按 Sourcery review 清掉死代码。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: restore release package workflow

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 22:20:33 +08:00
Jin Zhaonian
a5e3176e49 fix: 更新检查失败时优先尝试 api2 再使用缓存 (#16873) 2026-05-26 21:58:20 +08:00
uye
fd9f396f74 chore: MT 入口 2026-05-26 21:57:03 +08:00
uye
a4cb1e716d rft: 统一使用重载的 GetValue 替换 Convert.To (#16866) 2026-05-26 10:21:04 +08:00
uye
fb64c1164e feat: TouchMode ToolTip 添加视频演示 (#16812)
* feat: TouchMode ToolTip 添加视频演示

* style: 空行

* rft: 拓展 TooltipBlock 支持自定义 ToolTip
2026-05-26 10:15:44 +08:00
github-actions[bot]
6b5a021b2e feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26421831573
[skip changelog]
2026-05-25 22:14:07 +00:00
Luhan Xiao
0a7f6e272c fix(macOS): 降低 RA4 和 RA15 二倍速识别阈值 (#16860)
## 变更内容

- 在 macOS平台差异配置中,为 RA4 和 RA15 的二倍速识别节点补充 `templThreshold: 0.7`
- 与此前 macOS的 iOS 差异配置保持一致

## 修改位置

- `resource/platform_diff/iOS/resource/tasks.json`

## 原因

RA4 和 RA15 在 iOS/macOS 触控环境下识别二倍速按钮时也有用户反馈出现模板匹配分数偏低的问题,和此前 RA1 的情况类似。  
因此仅在 iOS 平台差异文件中降低对应节点阈值,避免影响通用任务配置和其他平台。

## 说明

本次未修改通用任务文件 `resource/tasks/RA/Reclamation3.json`。

## Summary by Sourcery

错误修复:
- 在 macOS/iOS 的 platform-diff 任务配置中,降低 RA4 和 RA15 的双倍速度模板匹配阈值,以减少漏检情况。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Lower the double-speed template matching threshold for RA4 and RA15 in
the macOS/iOS platform-diff task configuration to reduce missed
detections.

</details>
2026-05-26 02:24:24 +08:00
status102
81b71409a8 Revert "fix: 任务匹配进入onErrorNext时, cur_task_ptr错误置空"
This reverts commit c27cefa307.
2026-05-25 18:33:37 +08:00
status102
34d6e682be rft: 界园肉鸽弹窗Next关闭
招募卷关闭
2026-05-25 18:21:17 +08:00
status102
c27cefa307 fix: 任务匹配进入onErrorNext时, cur_task_ptr错误置空 2026-05-25 18:21:17 +08:00
status102
5495615247 perf: TaskQueue CheckBox与添加任务按钮对齐 2026-05-25 14:34:22 +08:00
status102
5a2d0401e4 perf: 优化TaskQueue选中任务时设置按钮表现以突出当前选中的选项 2026-05-25 14:33:25 +08:00
status102
4f39102526 rft: rename
[skip changelog]
2026-05-25 14:17:28 +08:00
Rin
7c628d25a5 fix: 处理界园司岁台分队招募券 NEXT 关闭 (#16806)
* fix: 改为复用原模板

* rft: 重构为JieGarden@Roguelike@CloseCollectionContinue2

* perf: 可读性优化

---------

Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
2026-05-25 11:31:40 +08:00
github-actions[bot]
6a286f05a3 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26373021279
[skip changelog]
2026-05-24 21:19:51 +00:00
uye
23e6245b89 Release v6.10.7 (#16851)
## Summary by Sourcery

更新 AdbLiteIO,以按设备序列号管理 adb 客户端,并改进线程安全的访问与释放行为。

增强点:
- 在 `adb shell`、`exec-out`、`push` 和交互式 shell 命令中,显式匹配并传递设备序列号,从而实现按设备管理
adb 客户端。
- 引入一个助手工具,以设备序列号为键延迟创建并复用 adb 客户端,并通过互斥锁进行保护,以支持 `call_command` 和
`interactive_shell` 的并发访问。
- 调整 adb 释放逻辑,在执行命令时避免持有客户端互斥锁,从而防止潜在的死锁。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update AdbLiteIO to manage adb clients per device serial and improve
thread-safe access and release behavior.

Enhancements:
- Match and pass device serials explicitly in adb shell, exec-out, push,
and interactive shell commands, allowing per-device adb client
management.
- Introduce a helper to lazily create and reuse adb clients keyed by
device serial, guarded by a mutex to support concurrent access from
call_command and interactive_shell.
- Adjust adb release logic to avoid holding the client mutex while
executing commands, preventing potential deadlocks.

</details>
2026-05-25 04:07:09 +08:00
uye
ab7e4f5a4f fix: Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-25 04:02:24 +08:00
uye
75feed058b docs: changelog
Updated version from 6.10.6 to 6.10.7 with highlights and fixes.
2026-05-25 03:54:39 +08:00
Loong
975981c568 fix: 修复 adb-lite 跳过 adb connect 后未初始化 client (#16850)
## 概述

- 在 adb-lite 处理 `shell`、`exec-out`、`push` 和交互式 shell 命令时,从 `-s <serial>`
参数懒初始化 adb-lite client。
- `adb connect <address>` 路径继续使用同一个 client 获取逻辑。
- 记录当前 adb-lite serial,在切换设备时重新创建 client。

## 问题原因

#15300 之后,`AdbController::connect` 会先检查 `adb devices`。如果目标设备已经在列表中,例如
`emulator-5554 device`,就会跳过 `adb connect <serial>`。

这个行为对普通 adb 路径是合理的,但 adb-lite 之前只在 `adb connect` 分支里初始化
`m_adb_client`。因此当设备已经在线、`adb connect` 被跳过时,后续的 `adb -s emulator-5554
shell ...` 会进入 adb-lite 路径,但此时 client 尚未初始化,日志中会出现:

```text
adb client not initialized
fallback to NativeIO
```

## 修复方式

把 adb-lite client 的初始化从 `adb connect` 分支中解耦出来。只要 adb-lite 收到带有 `-s
<serial>` 的 `shell`、`exec-out`、`push` 或交互式 shell 命令,就根据该 serial 获取或创建对应的
`adb::client`。

这样保留了 #15300 中“设备已在线时跳过 `adb connect`”的行为,同时也保证 adb-lite 不再依赖 `adb
connect` 作为唯一初始化入口。

## 验证

- 使用本机已安装的 maa-cli, MaaCore v6.10.6 和 Android 35 arm64 AVD 复现:
  - `adb devices` 返回 `emulator-5554 device`
  - 日志出现 `adb client not initialized`
  - 随后出现 `fallback to NativeIO`
- 编译并安装修复后的 Core:
  - 日志显示 `Setting adb lite enabled to true`
  - 日志到达 `Connected`
  - 日志到达 `FastestWayToScreencap Encode`
  - 未再出现 `adb client not initialized`
  - 未再出现 `fallback to NativeIO`

## Summary by Sourcery

确保 adb-lite 为每个设备序列号初始化并复用一个客户端,用于 shell、exec-out、push 和交互式 shell 命令,并且与
adb connect 的执行路径无关。

Bug 修复:
- 当已在线设备跳过 adb connect 时,防止 adb-lite 因客户端未初始化而失败。

增强功能:
- 追踪当前的 adb-lite 设备序列号,并在序列号变化时重新创建 adb 客户端,以支持多设备会话。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Ensure adb-lite initializes and reuses a client per device serial for
shell, exec-out, push, and interactive shell commands, independent of
the adb connect path.

Bug Fixes:
- Prevent adb-lite from failing with an uninitialized client when adb
connect is skipped for already-online devices.

Enhancements:
- Track the current adb-lite device serial and recreate the adb client
when the serial changes to support multiple device sessions.

</details>
2026-05-25 03:50:35 +08:00
uye
8ac6c4a593 Release v6.10.6 (#16846)
生息演算应该差不多了,之后发 6.11.0beta 了

## Summary by Sourcery

为 v6.10.6 版本优化生产环境自动化、连接处理、通知机制和文档。

Bug 修复:
- 改进基础设施生产中的产品识别与变更流程,包括重试、校验以及在不阻塞人员调度的前提下进行失败上报。
- 修复无人机使用逻辑,正确区分自定义基础设施配置与基于参数的设置,并确保在不同任务之间正确跟踪状态。
- 修正 RegionOCRer 的 ROI 处理方式,对整幅图像应用掩码,避免错误的坐标偏移。
- 收紧 ADB 连接行为,正确处理仅包含序列号的地址,并确保连接命令既被执行又能正确上报连接成功。
- 规范 Bark 和 Gotify 通知 URL,处理尾随斜杠,并稳健地构造消息端点。
- 确保在 WPF 任务队列视图模型中移除任务条目时,同时释放视图模型以解除事件订阅。
- 调整类 Roguelike 模式的最后奖励逻辑,在每次运行后始终重置可收集模式标志,而不受主题影响。

增强:
- 在基础设施任务中新增带置信度阈值保护的产品检测,并将新的变更流程接入无人机使用决策和 UI 日志。
- 在任务设置视图模型中引入可复用的 UI 刷新作用域辅助工具,并在多个任务队列设置面板中采用,以避免刷新状态不一致。
- 在所有支持的语言和集成协议文档中,更精确地记录 RA-4 回收算法的前置条件和流程。
- 明确并扩展关于 ADB 触控模式使用及建议的内部知识。
- 改进遮罩模板匹配器中的日志输出与缓存管理格式,以便更好地诊断问题。
- 新增对产品变更失败的上报支持,将其记录到 WPF UI 日志中。

CI:
- 使用脚本化的基于 wingetcreate 的流程替换 WinGet 发布 Action,通过 GitHub API
解析发布资源、验证工具哈希,并使用专用 Token 提交更新后的包清单。

文档:
- 更新所有语种的 RA-1/RA-4/RA-15 回收算法手册和集成协议文档,以反映新的 RA-4 策略流程、操作员要求以及建筑移除相关说明。
- 扩展内部问题日志分析知识库,增加关于 ADB 触控模式行为及使用建议的详细指引。

杂项:
- 新增内部 Cursor 技能定义,用于结构化的多模块代码评审报告流水线。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Refine infrastructure production automation, connection handling,
notifications, and documentation for the v6.10.6 release.

Bug Fixes:
- Improve product recognition and change flow in infrastructure
manufacturing, including retries, verification, and failure reporting
without blocking staffing.
- Fix drone usage logic to distinguish between custom infrastructure
configuration and parameter-based settings, and ensure correct state
tracking across tasks.
- Correct RegionOCRer ROI handling by applying the mask over the full
image and avoiding incorrect coordinate offsets.
- Tighten ADB connect behavior to properly handle serial-only addresses
and ensure the connect command both executes and reports a successful
connection.
- Normalize Bark and Gotify notification URLs to handle trailing slashes
and construct message endpoints robustly.
- Ensure task item removal in the WPF task queue view model disposes
view models to release event subscriptions.
- Adjust roguelike last reward logic to always reset collectible mode
flags after runs, regardless of theme.

Enhancements:
- Add confidence-threshold-guarded product detection in infrastructure
tasks and wire new change flows into drone usage decisions and UI
logging.
- Introduce a reusable UI refreshing scope helper in task settings view
models and adopt it across multiple task queue settings panels to avoid
inconsistent refresh state.
- Document RA-4 reclamation algorithm prerequisites and flow more
precisely across all supported languages and integration protocol docs.
- Clarify and expand internal knowledge about ADB touch mode usage and
recommendations.
- Improve logging and cache management formatting in masked template
matcher for better diagnostics.
- Add support for reporting product change failures to the WPF UI log.

CI:
- Replace the WinGet publishing action with a scripted
wingetcreate-based flow that resolves release assets via GitHub API,
verifies the tool hash, and submits updated package manifests using a
dedicated token.

Documentation:
- Update reclamation algorithm RA-1/RA-4/RA-15 manuals and integration
protocol docs in all locales to reflect the new RA-4 strategy flow,
operator requirements, and building removal notes.
- Extend internal issue log analysis knowledge base with detailed
guidance on ADB touch mode behavior and recommendations.

Chores:
- Add an internal Cursor skill definition for a structured, multi-module
code review report pipeline.

</details>

## Summary by Sourcery

完善用于 v6.10.6 版本的基础设施生产自动化、连接处理、通知端点、Roguelike 奖励标志以及回收算法文档。

Bug 修复:
- 通过在整张图像上应用掩码并避免错误的基于 ROI 的坐标偏移,修正 RegionOCRer 的掩码 OCR 处理。
- 收紧 ADB 连接处理,避免仅通过序列号发起的无效连接尝试,并确保 `connect` 命令既能正确执行,又能准确报告连接成功。
- 修复 WPF 任务队列项移除逻辑,以便在移除时释放任务项视图模型并注销事件订阅。
- 确保 Roguelike 可收集模式标志在每次运行后都会重置,而不受主题影响,从而使“烧水模式”能够正确恢复到用户设置。
- 规范 Bark 和 Gotify 通知 URL,以处理尾部斜杠,并稳健地构造消息端点。
- 调整基础设施无人机的使用方式,以区分基于参数的设置与自定义基础设施配置,避免在自定义模式下使用参数无人机。

增强:
- 在基础设施生产任务中引入带置信度阈值保护的产品检测,并将其接入产品变更逻辑和无人机使用决策。
- 改进基础设施产品切换流程,引入验证、重试与失败报告机制,同时在产品切换仍失败的情况下允许人员编排继续进行。
- 优化带掩码模板匹配器的缓存日志和布局,以便诊断信息更清晰。
- 将产品切换失败情况上报到 WPF UI 日志。
- 扩展关于 ADB 触控模式行为及推荐使用模式的内部知识库。

CI:
- 用基于脚本的 `wingetcreate` 流程替换 WinGet 发布 Action,通过 GitHub API
解析发布资源、验证工具哈希,并使用专用令牌提交更新后的包清单。

文档:
- 更新所有本地化版本中的 RA-1/RA-4/RA-15 回收算法手册和集成协议文档,以反映新的 RA-4
策略流程、前置条件、操作员配置和建筑移除说明。

杂项:
- 新增内部 Cursor 技能定义,以支持结构化的、多模块的代码审查报告流水线。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Refine infrastructure production automation, connection handling,
notification endpoints, roguelike reward flags, and reclamation
algorithm documentation for the v6.10.6 release.

Bug Fixes:
- Correct RegionOCRer masked OCR handling by applying masks over the
full image and avoiding incorrect ROI-based coordinate offsets.
- Tighten ADB connection handling to avoid invalid serial-only
connection attempts and ensure connect commands both execute and report
successful connections.
- Fix WPF task queue item removal to dispose task item view models and
release event subscriptions.
- Ensure roguelike collectible mode flags are reset after runs
regardless of theme so burn-water mode correctly reverts to user
settings.
- Normalize Bark and Gotify notification URLs to handle trailing slashes
and construct message endpoints robustly.
- Adjust infrastructure drone usage to distinguish between
parameter-based settings and custom infrastructure config, and avoid
using parameter drones in custom mode.

Enhancements:
- Introduce confidence-threshold-guarded product detection in
infrastructure production tasks and wire it into product change logic
and drone usage decisions.
- Improve infrastructure product change flows with verification, retry,
and failure reporting, while allowing staffing to proceed when product
changes still fail.
- Refine masked template matcher cache logging and layout for clearer
diagnostics.
- Report product change failures to the WPF UI log.
- Extend internal knowledge base on ADB touch mode behavior and
recommended usage patterns.

CI:
- Replace the WinGet publishing action with a scripted
wingetcreate-based flow that resolves release assets via GitHub API,
verifies the tool hash, and submits updated package manifests using a
dedicated token.

Documentation:
- Update RA-1/RA-4/RA-15 reclamation algorithm manuals and integration
protocol docs in all locales to reflect the new RA-4 strategy flow,
prerequisites, operator setup, and building removal notes.

Chores:
- Add an internal Cursor skill definition to support a structured,
multi-module code review report pipeline.

</details>
2026-05-24 22:51:25 +08:00
uye
ca687b3024 docs: changelog 2026-05-24 22:30:07 +08:00
status102
b09c0f0678 Revert "rft: IsRefreshingUI 自动化支持"
This reverts commit 8e239b8bc2.
2026-05-24 22:28:56 +08:00
status102
ae194cf412 fix: TaskItem事件 2026-05-24 22:28:55 +08:00
uye
95c1e7b724 docs: changelog 2026-05-24 22:24:44 +08:00
uye
cc09e5b216 fix: 傀影肉鸽烧水后无法前往指定难度
fix #16843
2026-05-24 20:54:52 +08:00
github-actions[bot]
aef75152fe feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26360469934
[skip changelog]
2026-05-24 11:52:00 +00:00
status102
9c49148d72 fix: RegionOCR use_raw = false时bounding_rect的扩展失效 2026-05-24 16:47:56 +08:00
status102
a0cc100a96 fix: 事件订阅泄露 2026-05-24 15:26:21 +08:00
MistEO
3f9c91efce ai: 全项目代码审查 - only cursor can do (指薅羊毛 2026-05-24 12:23:05 +08:00
Saratoga-Official
c8e3d38529 fix: RA1交付石材有可能识别不到 2026-05-24 12:19:03 +08:00
github-actions[bot]
dd01602870 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26344814115
[skip changelog]
2026-05-23 22:08:42 +00:00
github-actions[bot]
e06dfaacb8 chore: Auto Update Game Resources - 2026-05-23
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26344701306

[skip changelog]
2026-05-23 22:03:24 +00:00
Rin
60104dbd89 fix: 基建制造站切换产物流程稳定性提升 (#16747)
* fix: 基建制造站切换产物流程稳定性提升

* fix: 切换产物失败时向 GUI/Log报错

* refactor: 换产物失败后仍进入换人步骤,不停止任务链

*fix: 拆分自定义/params 无人机使用变量

* fix: 补充缺失产物任务配置的空指针保护。

---------

Co-authored-by: Roland125 <oroland125@outlook.com>
2026-05-24 05:41:11 +08:00
github-actions[bot]
a1f736a763 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26343777856
[skip changelog]
2026-05-23 21:18:46 +00:00
Loong
48424a68c5 fix: refactor ADB connection logic to only connect when needed (#15300)
优化 ADB 连接处理逻辑,避免不必要的连接尝试,并在连接不需要或无效时改进错误报告。
2026-05-23 16:24:49 +01:00
Kaleb Luedtke
c14685311b ci:请使用 wingetcreate 代替 winget-releaser (#16813)
* fix: Use wingetcreate instead of winget-releaser

* fix: Pin to a version and hash

* fix: Specify to use PowerShell

* fix: Use GitHub API for fetching the download URLs

* fix: Don't set GITHUB_TOKEN

* fix: Trim leading character from version

* fix: Anchor regex for safety

* chore: Use newer API version

* fix: Ensure terminating errors terminate
2026-05-23 22:33:14 +08:00
uye
4499a0b9c5 chore: inheritdoc 2026-05-23 22:25:34 +08:00
uye
b6126a7392 fix: 修复 Bark 与 Gotify 无法使用反代路径 2026-05-23 22:23:21 +08:00
github-actions[bot]
f716362e03 chore: Auto Templates Optimization
Triggered by 8d236d83c5

[skip changelog]
2026-05-23 13:47:57 +00:00
萨拉托加
8d236d83c5 fix: RA-4已知问题 (#16821)
## Summary by Sourcery

为 `Reclamation3.json` 更新 RA Reclamation3 任务配置。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update RA Reclamation3 task configuration for Reclamation3.json.

</details>
2026-05-23 21:47:38 +08:00
HX3N
7949869f2e chore: YostarKR UR ocr edit 2026-05-23 18:08:35 +09:00
status102
8e239b8bc2 rft: IsRefreshingUI 自动化支持 2026-05-23 16:27:09 +08:00
status102
53f1ac9e07 perf: 剿灭关使用代理卷后网络卡顿等待 2026-05-23 15:59:43 +08:00
status102
7f8f4bdfff fix: 自动战斗结束检测bypass 2026-05-23 11:08:59 +08:00
uye
b6dec3a403 ai: Update KNOWLEDGE.md with Connect.TouchMode information
Added details about Connect.TouchMode and its modes.
2026-05-23 06:31:40 +08:00
github-actions[bot]
c56bb31e19 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26312714696
[skip changelog]
2026-05-22 21:26:42 +00:00
uye
fb89bec322 Release v6.10.5 (#16807)
## Summary by Sourcery

为回收算法任务和配置添加 RA-4 支持,改进超时和停滞检测处理,并优化模板匹配缓存行为和 GUI 工具提示。

New Features:
- 在核心任务、配置、协议定义、UI 配置以及多语言文档中引入 RA-4 作为新的回收算法模式。
- 在运行时状态和游戏设置 UI 中开放启用/禁用停滞检测的配置。
- 为当前理智刷图阶段方案添加 UI 工具提示说明,包括自定义关卡代码的提示。

Bug Fixes:
- 在线索交换被禁用时,通过默认产品类型,确保接待任务能计算出有效效率。
- 修复支线剧情重新开启时的导航和关卡处理,避免超时和错误的任务终止。
- 通过使用依赖属性而不是计算属性来跟踪内容空与否,使 TooltipBlock 的提示文本支持数据绑定。
- 修正信用战斗的战斗后处理逻辑,确保正确等待动作完成。

Enhancements:
- 将 `MaskedCcoeffMatcher` 中的 DFT 方案缓存替换为受 LRU 限制的模板方案缓存,并改为每次调用计算
DFT,同时加入淘汰日志和缓存大小追踪。
- 限制与超时相关的配置值在安全范围内,以避免整数溢出和无效的定时器间隔。
- 更新支线剧情重新开启关卡的导航处理逻辑,改为使用专用导航任务,而不是简单禁用导航。
- 调整 RA-1 回收任务行为和文档,包括部署重试机制和动画等待时间的调优。

Documentation:
- 在所有支持的语言中记录 RA-4 回收算法模式、流程与需求。
- 在所有地区的协议集成文档中描述 RA-4 模式。
- 为版本 v6.10.5 更新变更日志,包含新特性、改进、修复及其他说明。

Chores:
- 移除未使用的战斗关卡设置,并清理相关 UI 绑定和布局。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add RA-4 support to Reclamation Algorithm tasks and configuration,
improve timeout and stall detection handling, and refine template
matching cache behavior and GUI tooltips.

New Features:
- Introduce RA-4 as a new Reclamation Algorithm mode across core tasks,
configuration, protocol definitions, UI configuration, and multilingual
documentation.
- Expose configuration for enabling or disabling stall detection in both
runtime state and game settings UI.
- Add UI tooltip guidance for the current sanity farming stage plan,
including hints for custom stage codes.

Bug Fixes:
- Ensure reception task computes valid efficiency when clue exchange is
disabled by defaulting the product type.
- Fix side story reopen navigation and stage handling to avoid timeouts
and incorrect task termination.
- Allow TooltipBlock tooltip text to be data-bound by tracking emptiness
via a dependency property instead of a computed property.
- Correct credit fight post-battle handling to wait properly for action
completion.

Enhancements:
- Replace the DFT plan cache in MaskedCcoeffMatcher with an LRU-limited
template plan cache and per-call DFT computation, including eviction
logging and cache size tracking.
- Clamp timeout-related configuration values to safe ranges to avoid
integer overflow and invalid timer intervals.
- Update stage navigation handling for sidestory reopen stages to use
dedicated navigation tasks rather than disabling navigation.
- Adjust RA-1 Reclamation task behavior and documentation, including
deployment retries and animation wait tuning.

Documentation:
- Document RA-4 Reclamation Algorithm mode, flow, and requirements in
all supported languages.
- Describe RA-4 mode in protocol integration documentation for all
locales.
- Update changelog for version v6.10.5 with new features, improvements,
fixes, and other notes.

Chores:
- Remove unused fight stage settings and clean up related UI bindings
and layout.

</details>
2026-05-23 02:00:58 +08:00
uye
29c5b0abb2 docs: changelog 2026-05-23 02:00:25 +08:00
uye
62ae9c56b6 fix: 选项显示内容错误 2026-05-23 01:52:26 +08:00
uye
bcd6bcf949 fix: 企鹅物流汇报 ID 始终显示 2026-05-23 01:51:22 +08:00
uye
ad810146df chore: 移除不必要的刷新 2026-05-23 01:44:41 +08:00
status102
cfe86445f8 fix: 自动战斗快速编队干员名roi 2026-05-23 01:27:58 +08:00
uye
9a491c0baa chore: 优化任务超时判断 2026-05-23 01:20:39 +08:00
uye
fef0e8f25b docs: Release notes for version 6.10.5
Updated CHANGELOG for version 6.10.5 with new features, improvements, and fixes.
2026-05-23 00:21:03 +08:00
uye
e4ab103f96 fix: 修复未开启线索交流时不计算会客室效率 2026-05-22 23:43:54 +08:00
Status102
0dec7ff8fc perf: 刷理智关卡选择提示当前任务将执行的关卡 (#16797)
* perf: 刷理智关卡选择提示当前任务将执行的关卡

* i18n: EN

* i18n: KR

* i18n: JP

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
Co-authored-by: HX3N <scarlet7518@gmail.com>
Co-authored-by: ManicSteiner <manicsteiner@outlook.com>
2026-05-22 22:54:03 +08:00
Aliothmoon
3db262c5ca fix: 移除dft路径下的缓存 & 补充缓存驱逐机制 (#16800)
* fix: 移除dft路径下的缓存

* feat: 使用LRU控制一下缓存上限

* fix: potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* feat: 驱逐缓存项时打印日志

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-22 22:52:50 +08:00
Status102
263eaf14c1 fix: TooltipBlock无法使用Binding进行绑定 (#16796)
* fix: TooltipBlock无法使用Binding进行绑定

* fix: review
2026-05-22 22:52:35 +08:00
github-actions[bot]
8d8e800c3b chore: Auto Update Game Resources - 2026-05-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26293837506

[skip changelog]
2026-05-22 14:38:19 +00:00
萨拉托加
4f094c68c9 feat: RA-4 (#16749)
* feat: RA-4

* fix: 修复一些问题

* fix: 继续优化改进

* fix: 继续优化改进

* feat: 添加 RA-4 入口与文档

* perf: 提取 baseTask

* chore: 调整描述

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-22 22:23:59 +08:00
uye
2882637c83 chore: 删除 (大型) 兽栏的描述 2026-05-22 22:16:47 +08:00
github-actions[bot]
0c3002380d chore: Auto Update Game Resources - 2026-05-22
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26285403922

[skip changelog]
2026-05-22 11:36:07 +00:00
status102
fe2bae6093 fix: SS复刻任务导航超时临时修复
等待重构拆分
2026-05-22 18:48:12 +08:00
status102
9c15e82ff8 fix: 删多了 2026-05-22 16:05:13 +08:00
status102
3ba810d1d5 rft: 移除FightTask不再使用的关卡设置 2026-05-22 14:55:23 +08:00
github-actions[bot]
294d1c52be chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26254266055
[skip changelog]
2026-05-21 21:32:08 +00:00
uye
ebe325a474 fix: RA-15 导致无法启动 2026-05-22 02:19:27 +08:00
github-actions[bot]
e52a41745f chore: Auto Update Game Resources - 2026-05-21
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26244718893

[skip changelog]
2026-05-21 18:18:17 +00:00
Michael Liu 刘嘉远
37d0fec568 fix: 生息演算RA15 bug fix (#16770)
* fix: 0520 bug fix

* fix: RA-15代码完善

* fix: 完善RA15
2026-05-22 01:52:53 +08:00
github-actions[bot]
ff9c7b8048 chore: Auto Update Game Resources - 2026-05-21
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26242308150

[skip changelog]
2026-05-21 17:31:45 +00:00
Luhan Xiao
c04dab8c05 fix(macOS): 为 PlayCover 生息演算 RA1 二倍速识别添加 iOS 模板和降低识别阈值 (#16779)
## 修改内容

为 iOS / PlayCover 差异资源中的 `RelaunchAnchor@RA@RA1-DoubleSpeed`
增加单独的模板匹配阈值:

```json
"RelaunchAnchor@RA@RA1-DoubleSpeed": {
    "templThreshold": 0.75
}
```

修改文件:

```text
resource/platform_diff/iOS/resource/tasks.json
```

## 问题背景

在 MacBook Air M4 + PlayCover 环境下执行生息演算 `Reclamation / RelaunchAnchor`
时,RA-1 流程会在部署采集基站后卡在:

```text
RelaunchAnchor@RA@RA1-WaitDoubleSpeed
```

游戏画面右上角实际已经出现二倍速按钮,但模板匹配分数只有约 `0.78`,低于默认阈值时不会进入 `RA1-DoubleSpeed`
点击节点,而是持续停留在 `RA1-WaitDoubleSpeed / DoNothing`。

相关问题背景可参考:#16775、#16778  
更完整的问题发现、排查、修改和本地测试闭环见:#16778

## 本地验证

本地先恢复了通用任务文件 `resource/tasks/RA/Reclamation3.json`,只在 iOS 差异文件中加入上述
`templThreshold` 配置后,重新启动 MAA 并测试。

日志中可以看到 iOS 差异资源被加载:

```text
load ../../../../../../../../Applications/MAA.app/Contents/Resources/resource/platform_diff/iOS/resource/template
load ret 1
```

原本卡住的位置可以成功识别并进入 `RA1-DoubleSpeed`:

```text
cur_task":"RelaunchAnchor@RA@RA1-WaitDoubleSpeed"
to_be_recognized":["RelaunchAnchor@RA@RA1-DoubleSpeed","RelaunchAnchor@RA@RA1-WaitDoubleSpeed"]

match_templ | RelaunchAnchor@RA@DoubleSpeed.png [optimized] score: 0.784211 rect: [ 1068, 24, 52, 63 ] roi: [ 1060, 20, 80, 70 ]
analyze | MatchTemplate RelaunchAnchor@RA@RA1-DoubleSpeed

"action":"ClickSelf"
"algorithm":"MatchTemplate"
"score":0.784211
"task":"RA1-DoubleSpeed"

Click with scaled coordinates (1094, 83) 1.5
PlayTools click: (1641, 124)
```

之后流程继续进入后续节点:

```text
RelaunchAnchor@RA@RA1-DeployGatheringBaseWait
RelaunchAnchor@RA@RA1-WaitCost
RelaunchAnchor@RA@RA1-Cost
RelaunchAnchor@RA@RA1-DeployOperatorSwipe
RelaunchAnchor@RA@RA1-DeployOperatorDirection
```

本地游戏内也确认可以正常继续执行,不再卡在 `RA1-WaitDoubleSpeed`。

## 说明

该修改没有改动通用 `resource/tasks/RA/Reclamation3.json`,只对 iOS / PlayCover
平台差异资源生效,用于兼容 PlayCover 环境下二倍速按钮模板匹配分数偏低的问题。
2026-05-22 00:57:29 +08:00
uye
a1047e9d33 perf: RA-1 增加迷迭香部署方向失败重试,增加过场动画过长时等待 2026-05-21 23:54:13 +08:00
uye
313b39a1e9 chore: 肉鸽分队添加 代理人分队 不支持描述 2026-05-21 23:54:13 +08:00
github-actions[bot]
1e84039f78 chore: Auto Update Game Resources - 2026-05-21
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26215064526

[skip changelog]
2026-05-21 08:37:21 +00:00
github-actions[bot]
c0c177d273 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26193227134
[skip changelog]
2026-05-20 22:18:27 +00:00
uye
5ec43a8ead chore: 优化界面布局 2026-05-20 23:27:21 +08:00
uye
bac1bbeb21 perf: 支持禁用日志停滞检测,优化数据绑定 2026-05-20 23:13:13 +08:00
github-actions[bot]
52a76b0386 chore: Auto Update Game Resources - 2026-05-20
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26150926055

[skip changelog]
2026-05-20 08:31:25 +00:00
status102
ad0295c83e fix: OF-1战斗失败错误结束
- link to #16748
2026-05-20 12:28:34 +08:00
uye
cf1137be3d Release v6.10.4 (#16743)
怎么 [issues-helper](https://github.com/actions-cool/issues-helper) 被 ban
了
2026-05-20 02:27:59 +08:00
uye
c0a5cf6b1f ci: Remove issue creation step on CI failure
Removed issue creation step on failure in CI workflow.
2026-05-20 02:21:50 +08:00
uye
a3b421f948 ci: Remove issue creation on OTA release failure
Removed failure issue creation steps for OTA releases on Windows and macOS.
2026-05-20 02:21:30 +08:00
uye
6d5fc774ce Release v6.10.4 (#16741)
## Summary by Sourcery

更新游戏自动化功能及文档,改进配置恢复行为,并优化关卡掉落处理与远程控制日志行为。

New Features:
- 在所有支持的语言中编写并公开新的迷你游戏自动化功能文档,包括活动商店与“再遗战地(Reclamation
Algorithm)”商店相关的自动化流程。
- 为“再遗战地·重启锚点(Reclamation Algorithm Relaunch Anchor)”主题添加支持与配置
schema,并加入 RA-1 和 RA-15 自动化模式。
- 为 YoStar EN/JP 服务器的 UR 关卡以及额外的“再遗战地”资源提供新的关卡/任务定义。

Bug Fixes:
- 放宽对剿灭作战关卡掉落的处理逻辑,对于缺失合成玉的情况不再强制停止任务,以避免在识别异常时提前终止。
- 改进配置加载逻辑,可从旧配置文件中恢复缺失或不匹配的配置,并在执行修复时通知用户。

Enhancements:
- 将 Android、Linux 和 macOS 设备连接指南重构为明确的步骤容器,并在所有支持语言中厘清 ADB 与 Python
的使用流程。
- 更新干员与仓库识别工具文档,统一列出支持的导出格式,并移除过时的 beta/alpha 标签。
- 明确“再遗战地”使用文档与集成协议,反映 Tales 默认主题、新的重启锚点模式以及不同主题的专有参数。
- 统一特殊文档容器命名,在各语言的文档规范中将 demo-wrapper 容器重命名为 window。
- 调整远程控制启动逻辑,通过其公共 API 而非反射来清理任务队列视图模型日志。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update game automation features and documentation, improve configuration
recovery behavior, and refine stage drop handling and remote control
logging behavior.

New Features:
- Document and expose the new mini-game automation feature across
supported languages, including event shop and Reclamation Algorithm shop
workflows.
- Add support and configuration schema for the Reclamation Algorithm
Relaunch Anchor theme with RA-1 and RA-15 automation modes.
- Provide new stage/task definitions for UR stages for YoStar EN/JP
servers and additional Reclamation Algorithm resources.

Bug Fixes:
- Relax annihilation stage drop handling so missing orundum no longer
forcibly stops the task, avoiding premature termination on recognition
anomalies.
- Improve configuration loading to recover missing or mismatched
configurations from old config files and notify the user when repairs
are applied.

Enhancements:
- Restructure Android, Linux, and macOS device connection guides into
explicit step containers and clarify ADB and Python usage flows in all
supported languages.
- Update operator and depot recognition tool docs to list supported
export formats consistently and remove obsolete beta/alpha labels.
- Clarify Reclamation Algorithm usage docs and integration protocol to
reflect the Tales default theme, new Relaunch Anchor modes, and
theme-specific parameters.
- Standardize special documentation containers by renaming the
demo-wrapper container to window in documentation guidelines across
languages.
- Adjust remote control startup to clear the task queue view model log
through its public API instead of reflection.

</details>
2026-05-20 01:19:39 +08:00
uye
b01281e0db docs: changelog 2026-05-20 01:15:19 +08:00
uye
50de6a25fb ai: Changelog skill 2026-05-20 01:14:38 +08:00
uye
8ad75a3760 perf: 优化配置异常弹窗 2026-05-20 00:48:51 +08:00
status102
e4b0acfe9a perf: 配置损坏记录 2026-05-20 00:25:37 +08:00
status102
ba4a998d0b fix: 修复潜在的空config 2026-05-20 00:21:46 +08:00
status102
d6872bc425 fix: 配置修复弹窗后自动退出 2026-05-20 00:15:43 +08:00
uye
079c64aba6 fix: 修复重复添加同名配置会删除上一个配置 2026-05-20 00:06:40 +08:00
uye
31d516f0e6 docs: Update docs/ko-kr/manual/device/macos.md
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-05-19 23:41:23 +08:00
github-actions[bot]
34f9e12f11 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26107648395
[skip changelog]
2026-05-19 15:34:29 +00:00
github-actions[bot]
e651f44425 chore: Auto Update Game Resources - 2026-05-19
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26107479502

[skip changelog]
2026-05-19 15:32:49 +00:00
status102
80c753b3d4 docs(wpf): 自动战斗右侧提示移除需要手动借助战的额外操作说明 2026-05-19 23:30:45 +08:00
uye
b06a824ae2 fix: 远控 LinkStart-* 子任务失败
fix #16740
2026-05-19 23:27:56 +08:00
uye
cb02b83f3d docs: 补充生息演算与小工具相关文档 2026-05-19 23:24:05 +08:00
Michael Liu 刘嘉远
fd10ca546c fix: 修复部分 RA-15 bug,优化逻辑 (#16725)
* fix: 修复部分ra15bug,优化逻辑

* fix: add stability

* fix: add stability
2026-05-19 22:17:49 +08:00
wryx166
212e9aa605 docs: 设备文档添加 steps/details容器,修复bat代码块格式,处理文档中demo-wrapper的废弃警告 (#16712)
* docs: 为设备文档添加步骤容器并修正代码块语言
  - 添加 `::: steps` 步骤容器
  - 将 Windows 批处理代码块修正为 `bat`,相应注释改为bat风格
  - i18n

  Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs: 处理文档中demo-wrapper的废弃警告
2026-05-19 20:51:37 +08:00
uye
8274c0b23a chore: RA-1 部署基站失败时尝试重新部署 2026-05-19 20:25:18 +08:00
uye
7ce44a2f2c chore: 生息演算增加基础设施识别,避免二次点击制造图标进入错误位置 2026-05-19 19:44:56 +08:00
HY
ed30b4011c fix: 補上繁中服漏掉的「擬態學者分隊」 (#16731)
fix: 補上漏掉的「擬態學者分隊」
2026-05-19 13:14:50 +08:00
status102
e13461f972 Revert "feat: SwitchConfig 检测到配置缺失尝试从当前配置复制恢复通知用户"
This reverts commit b8b25d7c20.
2026-05-19 13:08:59 +08:00
status102
2effcbb065 perf: 配置部分损坏提示 2026-05-19 13:08:04 +08:00
status102
0b28249453 perf: Config检查到缺失时, 统一使用当前config进行赋值 2026-05-19 12:58:46 +08:00
github-actions[bot]
87d64af26f chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26061417579
[skip changelog]
2026-05-18 21:27:58 +00:00
Roland125
9475e2f76a fix: 剿灭掉落识别不到合成玉时不停止任务 (#16726) 2026-05-19 01:38:40 +08:00
uye
7583758492 chore: 调整坐标 2026-05-19 01:28:02 +08:00
Manicsteiner
87faaf2cfd chore: Yostar UR stage navigation (#16723) 2026-05-18 23:09:08 +08:00
uye
2bf3c937d4 Revert "fix: 当新配置损坏时, 重新补充默认配置"
This reverts commit 5c7ab5c3cd.
2026-05-18 21:02:14 +08:00
uye
b8b25d7c20 feat: SwitchConfig 检测到配置缺失尝试从当前配置复制恢复通知用户 2026-05-18 21:02:14 +08:00
H2O_MERO
266ae1cda6 chore: 更新基建排班文档中过时的链接 (#16700)
把基建排班文档中的链接从master存档分支改到了v2分支

## Summary by Sourcery

文档:
- 更新基础调度模式文档(EN/JA/KO/ZH)中的示例 JSON 链接,使其引用 master-v2 分支中的资源。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Documentation:
- Update example JSON links in base scheduling schema docs (EN/JA/KO/ZH)
to reference the master-v2 branch resources.

</details>
2026-05-18 20:35:40 +08:00
status102
5c7ab5c3cd fix: 当新配置损坏时, 重新补充默认配置
fix #16691
2026-05-18 20:25:37 +08:00
uye
f1a3627dc0 Release v6.10.3 (#16701)
## Summary by Sourcery

更新回收任务模式的处理方式,使用统一的标志位(flags)风格枚举,并通过改进的验证和容错机制,收紧 JSON 枚举转换行为。

New Features:
- 引入统一的 `ReclamationMode` 枚举,使用标志位(flags)风格的取值来同时表示 Tales 和 Relaunch
Anchor 模式。
- 在宽容(tolerant)的 JSON 枚举转换器中,新增对标志位(flags)风格枚举组合以及作为字典键使用的支持。

Bug Fixes:
- 通过更改底层数字取值,确保 Relaunch Anchor 的回收模式值在 C# 与 C++ 配置之间保持一致。
- 在切换主题时,正确保留或重置回收清除存储(clear store)和模式设置,并验证所选模式与当前主题是否兼容。

Enhancements:
- 优化宽容枚举 JSON 转换器,通过预计算掩码和预定义集合来验证枚举值,并在出错时抛出带路径信息的
`JsonException`,而不是默默回退到默认值。
- 简化回收设置视图模型,将分离的模式列表统一为单一模式列表,并根据所选主题进行刷新。
- 明确容错根级转换行为,改为依赖具备路径信息的枚举转换错误来恢复无效属性。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update reclamation task mode handling to use a unified flags-style enum
and tighten JSON enum conversion behavior with improved validation and
fault tolerance.

New Features:
- Introduce a unified ReclamationMode enum with flags-style values to
represent both Tales and Relaunch Anchor modes.
- Add support for flags-style enum combinations and dictionary keys in
the tolerant JSON enum converter.

Bug Fixes:
- Ensure Reclamation mode values for Relaunch Anchor align between C#
and C++ configurations by changing the underlying numeric values.
- Preserve or reset reclamation clear store and mode settings correctly
when switching themes, and validate that the selected mode is compatible
with the current theme.

Enhancements:
- Refine the tolerant enum JSON converter to validate enum values via a
precomputed mask and defined set, and to throw JsonException with path
information instead of silently defaulting.
- Simplify reclamation settings view model by unifying separate mode
lists into a single mode list that is refreshed based on the selected
theme.
- Clarify fault-tolerant root conversion behavior to rely on path-aware
enum conversion errors for recovering invalid properties.

</details>
2026-05-18 12:57:48 +08:00
uye
39cb3fd32a docs: Bump version to v6.10.3 and update changelog
Updated version number to v6.10.3 and added highlights, improvements, and fixes.
2026-05-18 12:57:20 +08:00
uye
b20a05f2ea fix: review 2026-05-18 12:54:01 +08:00
uye
aa6ea24d8d fix: 不会现在还有人选沙中遗火吧 2026-05-18 12:42:20 +08:00
uye
8346706622 chore: 遇到无法转换的枚举值转换为带路径信息的 JsonException 2026-05-18 11:54:38 +08:00
Status102
ac3b826c55 rft: RA mode (#16697)
## Summary by Sourcery

围绕共享的 `ReclamationMode` 枚举统一回收任务模式处理方式,并相应更新 UI 和配置流程。

New Features:
- 引入共享的 `ReclamationMode` 枚举,在各类回收主题和任务中统一用于表示算法模式。

Bug Fixes:
- 确保 `RelaunchAnchor` 模式选择在使用新的基于位标志(bitflag)的模式值时,仍能正确映射到 `RA-1` 和
`RA-15`,并保持已序列化配置中的现有行为不变。

Enhancements:
- 更新回收设置视图模型,使其暴露统一的模式列表;该列表会根据当前选中的主题动态重建,同时在可能的情况下保留当前选择。
- 调整 `ReclamationTask` 及相关配置类,使用新的 `ReclamationMode` 枚举来替代原先按主题划分的整型模式值。
- 在主题或底层任务数据变更时刷新回收模式选项,以保持 UI 与模型的同步。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Unify reclamation task mode handling around a shared ReclamationMode
enum and update UI and config flows accordingly.

New Features:
- Introduce a shared ReclamationMode enum used across reclamation themes
and tasks to represent algorithm modes.

Bug Fixes:
- Ensure RelaunchAnchor mode selection correctly maps to RA-1 and RA-15
using the new bitflag-based mode values while maintaining existing
behavior in serialized configs.

Enhancements:
- Update reclamation settings view model to expose a unified mode list
that is dynamically rebuilt based on the selected theme while preserving
the current selection where possible.
- Adjust ReclamationTask and related config classes to use the new
ReclamationMode enum instead of theme-specific integer modes.
- Refresh reclamation mode options whenever the theme or underlying task
data changes to keep the UI and model in sync.

</details>

增强内容:
- 将原本分别使用整数和主题特定表示的回收模式,统一替换为在任务配置和视图模型中通用的 `ReclamationMode` 枚举。
- 更新回收设置的 UI,使其根据所选主题动态生成模式列表,并在主题变化时保持已选模式同步。
- 调整配置转换和任务序列化逻辑,使其使用新的枚举来读写回收模式,同时保持现有行为不变。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

围绕共享的 `ReclamationMode` 枚举统一回收任务模式处理方式,并相应更新 UI 和配置流程。

New Features:
- 引入共享的 `ReclamationMode` 枚举,在各类回收主题和任务中统一用于表示算法模式。

Bug Fixes:
- 确保 `RelaunchAnchor` 模式选择在使用新的基于位标志(bitflag)的模式值时,仍能正确映射到 `RA-1` 和
`RA-15`,并保持已序列化配置中的现有行为不变。

Enhancements:
- 更新回收设置视图模型,使其暴露统一的模式列表;该列表会根据当前选中的主题动态重建,同时在可能的情况下保留当前选择。
- 调整 `ReclamationTask` 及相关配置类,使用新的 `ReclamationMode` 枚举来替代原先按主题划分的整型模式值。
- 在主题或底层任务数据变更时刷新回收模式选项,以保持 UI 与模型的同步。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Unify reclamation task mode handling around a shared ReclamationMode
enum and update UI and config flows accordingly.

New Features:
- Introduce a shared ReclamationMode enum used across reclamation themes
and tasks to represent algorithm modes.

Bug Fixes:
- Ensure RelaunchAnchor mode selection correctly maps to RA-1 and RA-15
using the new bitflag-based mode values while maintaining existing
behavior in serialized configs.

Enhancements:
- Update reclamation settings view model to expose a unified mode list
that is dynamically rebuilt based on the selected theme while preserving
the current selection where possible.
- Adjust ReclamationTask and related config classes to use the new
ReclamationMode enum instead of theme-specific integer modes.
- Refresh reclamation mode options whenever the theme or underlying task
data changes to keep the UI and model in sync.

</details>

</details>
2026-05-18 11:42:29 +08:00
uye
b4d43cbfe3 perf: 优化 [Flags] 判断 2026-05-18 11:34:16 +08:00
uye
54f239411b fix: TolerantEnumConverter 支持 Flags 2026-05-18 11:14:45 +08:00
uye
82abc7e89a Release v6.10.2 (#16693)
## Summary by Sourcery

重构宽容枚举 JSON 转换器,以复用解析逻辑,并扩展对作为 JSON 属性名使用的枚举值的支持。

增强内容:
- 将通用的宽容枚举解析逻辑提取到一个辅助方法中,在字符串场景和属性名场景中复用。
- 为枚举序列化为 JSON 属性名时的宽容枚举处理添加读/写支持。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Refactor tolerant enum JSON converter to reuse parsing logic and extend
support to enum values used as JSON property names.

Enhancements:
- Extract shared tolerant enum parsing into a helper method reused
across string and property-name scenarios.
- Add read/write support for tolerant enum handling when enums are
serialized as JSON property names.

</details>
2026-05-18 10:09:15 +08:00
uye
c5722c0f9d docs: Update CHANGELOG for version 6.10.2
Updated version number to v6.10.2 and added highlights and fixes.
2026-05-18 10:09:04 +08:00
uye
9456d7a5da fix: 自定义枚举转换器无法处理枚举作为字典键 2026-05-18 10:07:33 +08:00
uye
b687e5887a Release v6.10.1 (#16689) 2026-05-18 09:15:45 +08:00
uye
072666f425 fix: 日志顺序 2026-05-18 09:14:30 +08:00
uye
5207c09929 docs: Update CHANGELOG for version 6.10.1
Add changelog entry for version 6.10.1 with a fix.
2026-05-18 09:11:22 +08:00
uye
8c72cac105 fix: 在遇到多个非法配置参数时会直接重置配置 2026-05-18 09:08:16 +08:00
github-actions[bot]
629cb81c64 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26002960944
[skip changelog]
2026-05-17 21:18:14 +00:00
uye
d4776b872e Release v6.10.0 (#16682)
## Summary by Sourcery

在改进更新流程、任务配置和 CI 行为的同时,增强文档与本地化格式化支持。

New Features:
- 新增对主题特定 Reclamation 模式的支持,包括针对 Tales 和 Relaunch Anchor 的独立模式,并更新相关 UI
绑定和提示信息。
- 引入重试机制,在回退到整包更新之前,等待 MirrorChyan OTA 包可用。
- 在多语言文档中补充说明嵌套容器、标记(markers)、隐藏文本、步骤、智能图片容器以及字段容器的使用方法。

Bug Fixes:
- 修复多处面向用户的消息,统一改为使用本地化格式化助手而非手动字符串格式化,避免在边缘场景中出现格式问题。
- 确保 MirrorChyan CDK 错误处理在网络或 JSON 解析错误发生时,能够正确记录上下文日志并更新获取失败状态。

Enhancements:
- 将 MirrorChyan 更新处理重构为专门的助手模块,用于 HTTP 获取、错误处理和 OTA 等待逻辑。
- 调整高级设置的可见性,使其依赖当前任务和 Reclamation 主题,并在主题变化时自动刷新。
- 在核心和 GUI 两侧优化 Reclamation 配置,通过将模式拆分为 Tales 和 Relaunch Anchor
变体,并按主题校验模式取值。
- 改进小游戏任务列表以及其他 UI 代码路径的可读性与行为细节。

Build:
- 将 GitHub Actions artifact 上传步骤升级到最新的 action 版本,并配置制品在存储时不进行压缩。
- 优化 PR 提交检查工作流,以区分无效标题与合并提交,提供更丰富的双语反馈,并避免重复发表评论。

CI:
- 优化 PR 校验,对无效的提交标题和合并提交给出结构化反馈,并在无效集合发生变化时清理或复用此前的机器人评论。

Documentation:
- 扩展并修正 zh-cn、zh-tw、en-us、ja-jp 和 ko-kr
各语言下的文档规范,包括嵌套容器规则、替代容器语法、特殊演示容器、标记、隐藏文本、步骤容器、智能图片网格以及字段容器等内容。
- 新增关于在现代 Windows 版本上处理与 DWM 相关问题的内部知识说明。

Chores:
- 将较旧的自定义基础设施布局 JSON 以版本化文件名方式归档,并更新与 Reclamation 相关的资源定义和本地化内容。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Refine update, task configuration, and CI behaviors while enhancing
documentation and localization formatting support.

New Features:
- Add support for theme-specific Reclamation modes, including distinct
modes for Tales and Relaunch Anchor with updated UI bindings and tips.
- Introduce a retry mechanism to wait for MirrorChyan OTA packages
before falling back to full-package updates.
- Extend documentation in multiple languages with guidance on nested
containers, markers, hidden text, steps, smart image containers, and
field containers.

Bug Fixes:
- Fix various user-facing messages to consistently use the localization
formatting helper instead of manual string formatting, preventing
formatting issues in edge cases.
- Ensure MirrorChyan CDK error handling correctly logs context and
updates fetch-failed state when network or JSON parsing errors occur.

Enhancements:
- Refactor MirrorChyan update handling into dedicated helpers for HTTP
fetching, error processing, and OTA waiting logic.
- Adjust advanced settings visibility to depend on the current task and
Reclamation theme, and refresh automatically when the theme changes.
- Refine Reclamation configuration on both core and GUI sides by
splitting modes into Tales and Relaunch Anchor variants and validating
mode values per theme.
- Improve mini-game task listing and other UI code paths with minor
readability and behavior tweaks.

Build:
- Upgrade GitHub Actions artifact upload steps to the latest action
version and configure artifacts to be stored without compression.
- Improve the PR commit checker workflow to distinguish invalid titles
from merge commits, produce richer bilingual feedback, and avoid posting
duplicate comments.

CI:
- Refine PR validation to give structured feedback on invalid commit
titles and merge commits, and clean up or reuse previous bot comments
when the invalid set changes.

Documentation:
- Expand and correct documentation guidelines across zh-cn, zh-tw,
en-us, ja-jp, and ko-kr, including nested container rules, alternative
container syntaxes, special demo containers, markers, hidden text, step
containers, smart image grids, and field containers.
- Add internal knowledge notes about handling DWM-related issues on
modern Windows versions.

Chores:
- Archive older custom infrastructure layout JSONs under versioned
filenames and update Reclamation-related resource definitions and
localizations.

</details>
2026-05-18 04:23:24 +08:00
uye
e6c48c40fa docs: changelog 2026-05-18 04:22:14 +08:00
uye
934bb62b7e chore: 为什么会叫这个名字呢? 2026-05-18 04:22:14 +08:00
github-actions[bot]
16c229002b chore: Auto Update Game Resources - 2026-05-17
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26000856514

[skip changelog]
2026-05-17 19:45:51 +00:00
uye
5c1f2dd080 chore: 调整 RA-15 滑动速度 2026-05-18 03:29:15 +08:00
github-actions[bot]
5adb91aad9 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/26000258597
[skip changelog]
2026-05-17 19:18:46 +00:00
uye
469df500cf chore: 修改描述 2026-05-18 03:13:48 +08:00
uye
4805557242 FIX: 特意删的 PNS 怎么又给加回来了 2026-05-18 03:08:03 +08:00
uye
3ca37f8f1c fix: build warning 2026-05-18 02:53:04 +08:00
uye
1c0440436a rft: 生息演算策略逻辑修改 (#16680)
* rft: 生息演算策略逻辑修改

* chroe: review

* feat: 支持禁用高级设置

* chore: Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-18 02:34:38 +08:00
Rbqwow
5787270eed docs: 修正嵌套容器说明
同时使用 LLM 同步文档 i18n
2026-05-18 02:27:40 +08:00
铃语
fd5ebb6670 perf: 更新 243 高配三队简化一天三换排班表(20260518 修订) (#16678)
* feat: 更新 243 高配三队简化一天三换排班表(20260518 修订)

* chore: move to old
2026-05-18 02:04:16 +08:00
铃语
485fb25fa0 perf: 更新 333 极限3队一天三换排班表(20260518 修订) (#16679)
* perf: 更新 333 极限3队一天三换排班表(20260518 修订)

* chore: move to old
2026-05-18 02:02:24 +08:00
github-actions[bot]
c66a2bc314 chore: Auto Update Game Resources - 2026-05-17
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25995257682

[skip changelog]
2026-05-17 15:42:14 +00:00
AnnAngela
0954959e00 ci: Set compression level to 0 for artifact uploads
Added compression-level parameter to artifact uploads for various platforms.
2026-05-17 23:21:13 +08:00
Michael Liu 刘嘉远
31805c16ef feat: 生稀盐酸-重启锚点 添加 RA15 支持 (#16667)
* feat: 新增生息演算「重启锚点」RA-15 关卡任务链

* feat: 生息演算 RA-1/RA-15 关卡选择 UI 及 Core 适配

新增 RelaunchAnchorStage 枚举,WPF 界面添加关卡选择下拉框,
C++ Core 根据 stage 参数加载对应的任务链入口。

* feat: 添加RA-15自己有初雪的版本

* fix: Delete resource/tasks/RA/Reclamation3-RA15-HaveCX.json

* fix: 增加识别已有初雪功能

* feat: 拆分 RA-1/RA-15 教程文本,根据关卡选择切换提示

* rft: 合并生稀盐酸文件,并抽取相同任务

* fix: MaaCore 为新盐酸修改为通用性入口

* fix: 生稀盐酸 wpfgui 提示文本选取逻辑优化

* chore: 修改生稀盐酸入口任务命名

* chore: 优化生稀盐酸提示文本

* fix: 重启锚点不再 fallback 关卡

* chore: 生稀盐酸目录结构优化

* chore: 移除旧任务入口

* fix: 修正提示描述

* chore: 优化key命名及选取逻辑

* chore: 修正翻译缩进

---------

Co-Authored-By: Michael Liu 刘嘉远 <walkerljy@163.com>
Co-authored-by: 晓丶梦丶仁 <74444214+Daydreamer114@users.noreply.github.com>
Co-authored-by: SherkeyXD <57581480+SherkeyXD@users.noreply.github.com>
2026-05-17 23:18:30 +08:00
AnnAngela
27c1e1117c revert: Rename artifact uploads in CI workflow 2026-05-17 20:33:27 +08:00
uye
ed9d5c408f perf: 优化木材数量正则 2026-05-17 19:09:50 +08:00
晓丶梦丶仁
0759748e4a ci: 优化 PR commit 检查评论逻辑 (#16671)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 19:07:32 +08:00
uye
f6b60c5aca perf: 优化木材数量识别,支持开局自带木材快速完成任务 2026-05-17 18:57:04 +08:00
dependabot[bot]
63d3e43eb6 ci: bump actions/upload-artifact from 6 to 7 in /.github/workflows in the github-actions group (#16642)
Co-authored-by: AnnAngela <naganjue@vip.qq.com>
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-17 17:37:29 +08:00
Saratoga-Official
dec1f6695b fix: 生息交付木材roi错误 2026-05-17 14:07:02 +08:00
status102
daa1aa4730 perf: 合并输出 2026-05-17 10:36:46 +08:00
uye
4401ede05e perf: 优化生息演算小猫费用识别 2026-05-17 08:05:23 +08:00
uye
f3700f5ef7 rft: 统一 LocalizationHelper GetString Format (#16658) 2026-05-17 07:43:14 +08:00
uye
524d892997 feat: 支持通过 Mirror酱 下载时若新版本无增量包则等待后重试 (#16656)
## Summary by Sourcery

为 MirrorChyan OTA 更新新增等待与重试支持:当初始仅有整包可用时,可以等待 OTA 包上线后再使用。同时重构
MirrorChyan 更新检查逻辑,以提升复用性和错误处理能力。

新功能:
- 支持在延迟一段时间后重试 MirrorChyan 更新检查,这样当 OTA 包变得可用时可以使用 OTA 包,而不是立即回退到整包。

改进:
- 将 MirrorChyan 的 HTTP 请求和 JSON 解析抽取到一个共享的辅助工具中,以集中管理日志与错误处理。
- 将 MirrorChyan 的错误码处理抽取到专用辅助工具中,以简化更新检查流程,并在不同分支中保持 toast 和设置更新行为的一致性。

文档:
- 更新本地化字符串,以支持在所有受支持语言中新增 MirrorChyan OTA 构建与重试相关的用户通知。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add support for waiting and retrying MirrorChyan OTA updates when only a
full package is initially available, while refactoring the MirrorChyan
update-check logic for better reuse and error handling.

New Features:
- Support retrying MirrorChyan update checks after a delay so that OTA
packages can be used when they become available instead of immediately
falling back to full packages.

Enhancements:
- Extract MirrorChyan HTTP request and JSON parsing into a shared helper
to centralize logging and error handling.
- Extract MirrorChyan error-code handling into a dedicated helper to
simplify the update check flow and keep toast/setting updates consistent
across paths.

Documentation:
- Update localized strings for the new MirrorChyan OTA-building and
retry user notifications across supported languages.

</details>
2026-05-17 07:20:48 +08:00
uye
ad67ac79b0 chore: 点击开始建设添加重试
fix: #16644
2026-05-17 06:24:03 +08:00
uye
f37285df6d ai: Add Abort DWM section to KNOWLEDGE.md
Added section on Abort DWM and its implications for Windows 8 and later.
2026-05-17 06:15:50 +08:00
uye
2b0a15fb6e Release v6.10.0-beta.4 (#16648)
## Summary by Sourcery

添加新的操作员框导出格式,并提升带掩膜模板匹配的精度和日志记录,同时进行一些配置和通知方面的小改动。

新功能:
- 为操作员框引入可配置的导出格式,包括剪贴板、JSON、Markdown 和 CSV,并持久化用户选择的选项。

改进:
- 通过使用带类型的枚举来表示导出格式,优化仓库导出处理逻辑。
- 通过使用更高精度的 DFT 缓冲区和方差处理,提高带掩膜的互相关模板匹配的数值稳定性和精度。
- 调整匹配日志和键生成的格式,使其更清晰易读。
- 优化“任务卡住”处理逻辑:始终显示本地 UI 通知,而外部通知则根据用户设置有条件触发。
- 在配置键中记录所选的操作员框导出格式。
- 在任务队列视图模型中记录招募确认次数的日志。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add new operator box export formats and improve masked template matching
precision and logging, along with minor configuration and notification
tweaks.

New Features:
- Introduce configurable export formats for the operator box, including
clipboard, JSON, Markdown, and CSV, with persistence of the selected
option.

Enhancements:
- Refine depot export handling by using typed enums for export formats.
- Improve numerical stability and precision of masked cross-correlation
template matching by using higher-precision DFT buffers and variance
handling.
- Adjust match logging and key generation formatting for clarity.
- Refine stalled task handling to always show local UI notifications
while making external notifications conditional on user settings.
- Track the selected operator box export format in configuration keys.
- Log recruit confirmation counts in the task queue view model.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

添加新的操作员框导出格式,并提升带掩膜模板匹配的精度和日志记录,同时进行一些配置和通知方面的小改动。

新功能:
- 为操作员框引入可配置的导出格式,包括剪贴板、JSON、Markdown 和 CSV,并持久化用户选择的选项。

改进:
- 通过使用带类型的枚举来表示导出格式,优化仓库导出处理逻辑。
- 通过使用更高精度的 DFT 缓冲区和方差处理,提高带掩膜的互相关模板匹配的数值稳定性和精度。
- 调整匹配日志和键生成的格式,使其更清晰易读。
- 优化“任务卡住”处理逻辑:始终显示本地 UI 通知,而外部通知则根据用户设置有条件触发。
- 在配置键中记录所选的操作员框导出格式。
- 在任务队列视图模型中记录招募确认次数的日志。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add new operator box export formats and improve masked template matching
precision and logging, along with minor configuration and notification
tweaks.

New Features:
- Introduce configurable export formats for the operator box, including
clipboard, JSON, Markdown, and CSV, with persistence of the selected
option.

Enhancements:
- Refine depot export handling by using typed enums for export formats.
- Improve numerical stability and precision of masked cross-correlation
template matching by using higher-precision DFT buffers and variance
handling.
- Adjust match logging and key generation formatting for clarity.
- Refine stalled task handling to always show local UI notifications
while making external notifications conditional on user settings.
- Track the selected operator box export format in configuration keys.
- Log recruit confirmation counts in the task queue view model.

</details>

</details>
2026-05-17 05:59:26 +08:00
uye
dacbe1acce docs: Update CHANGELOG for v6.10.0-beta.4
Added new features, improvements, and bug fixes for version 6.10.0-beta.4.
2026-05-17 05:57:53 +08:00
Aliothmoon
48d51fe310 fix: 修复 FFT 路径 masked TM_CCOEFF_NORMED 精度损失导致的误匹配 (#16652)
* fix: 修复 FFT 路径 masked TM_CCOEFF_NORMED 精度损失导致的误匹配

* fix: 修一下review问题
2026-05-17 05:53:54 +08:00
H2O_MERO
326fd03ccb feat: 为自动公招的输出日志增加已公招次数 (#16651)
* feat: 为自动公招的输出日志增加已公招次数

* chore: LocalizationHelper 有自带 Format 的 GetString

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-17 05:37:18 +08:00
uye
f0390d9c62 style: 换行 2026-05-17 03:00:29 +08:00
uye
0a6a142491 fix: 修复日志输出停滞功能在未开启外部通知时无法生效 2026-05-17 02:58:31 +08:00
uye
6b29393ff1 chore: AddLog 缺失 param 介绍 2026-05-17 02:55:25 +08:00
uye
0799977b74 perf: 干员识别本地化导出表头,添加类型化枚举 2026-05-17 02:49:16 +08:00
uye
057aed9d64 chore: 统一干员识别与仓库识别界面布局 2026-05-17 01:04:30 +08:00
github-actions[bot]
1a08936f67 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25967705810
[skip changelog]
2026-05-16 16:59:25 +00:00
H2O_MERO
131f2d248d feat: 干员识别支持导出 Json/Markdown/CSV,优化导出按钮布局与交互 (#16635)
### 新增  
1. 干员识别支持导出 Json/Markdown/CSV文件
2. 优化导出按钮布局与交互
3. 任务运行时也可以导出列表了  

### 截图 
<img width="783" height="662" alt="image"
src="https://github.com/user-attachments/assets/bc4536ba-1041-4ca3-b0a1-a5a321d55fde"
/>
  
### 重要事项
**我没有牛牛😭**

## Summary by Sourcery

为算子框识别结果新增多种导出格式和导出方式选择,并优化导出界面。

New Features:
- 支持将算子框识别数据导出为 JSON 文件。
- 支持将算子框识别数据导出为 Markdown 文件。
- 支持将算子框识别数据导出为 CSV 文件。
- 在配置中持久化上一次选择的算子框导出格式。

Enhancements:
- 通过用户可选择的导出格式,将单一导出操作路由到不同的导出方式,从而优化算子框导出交互。
- 通过对剪贴板导出和文件导出使用通知反馈,提升算子框导出时的用户反馈体验。
- 更新算子框工具箱的 UI 布局和本地化资源,以便在所有受支持语言中呈现新的导出选项。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add multiple export formats and selection for operator box recognition
results and refine the export UI.

New Features:
- Support exporting operator box recognition data as JSON files.
- Support exporting operator box recognition data as Markdown files.
- Support exporting operator box recognition data as CSV files.
- Persist the last selected operator box export format in configuration.

Enhancements:
- Refine the operator box export interaction by routing a single export
action through a user-selectable export format.
- Improve user feedback on operator box export by using notifications
for clipboard and file exports.
- Update operator box toolbox UI layout and localization resources to
surface the new export options across supported languages.

</details>
2026-05-17 00:58:14 +08:00
uye
c062705041 chore: 提高生息演算对话速度 2026-05-17 00:55:13 +08:00
github-actions[bot]
9af639ad10 chore: Auto Update Game Resources - 2026-05-16
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25967242037

[skip changelog]
2026-05-16 16:38:42 +00:00
uye
f720f900ae Revert "chore: 优化生息演算替换逻辑"
This reverts commit 6244e7fe6b.
2026-05-17 00:18:10 +08:00
github-actions[bot]
799e4754e7 chore: Auto Templates Optimization
Triggered by 6244e7fe6b

[skip changelog]
2026-05-16 16:14:38 +00:00
uye
6244e7fe6b chore: 优化生息演算替换逻辑 2026-05-17 00:14:07 +08:00
uye
88b4766b2b chore: 生息演算统一命名 2026-05-17 00:14:07 +08:00
uye
867bdc5696 perf: 生息演算增加部署费用、木头数识别,提升运行速度与稳定度 2026-05-17 00:14:07 +08:00
uye
c27855da44 chore: 生息演算拖动地图增加重试 2026-05-17 00:14:06 +08:00
HX3N
5a9c98041c chore: YostarKR UR stage navigation 2026-05-16 22:59:10 +09:00
github-actions[bot]
14d20b37aa chore: Auto Update Game Resources - 2026-05-16
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25959189397

[skip changelog]
2026-05-16 10:06:24 +00:00
Constrat
d66631e044 fix: Various IS encounter Regex 2026-05-16 11:43:47 +02:00
github-actions[bot]
4bfccbdc93 chore: Auto Templates Optimization
Triggered by 84df4ef79e

[skip changelog]
2026-05-16 09:37:35 +00:00
Rin
84df4ef79e fix: 界园深入探索模板 (#16626)
* fix: 新增界园深入探索专用图标

* perf: 简化

---------

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-05-16 17:37:13 +08:00
Constrat
c244314b5e fix: TimesChange event 2026-05-16 10:24:23 +02:00
Constrat
03ca096d9e chore: gitignore for C# dev kit vsc deo 2026-05-16 10:12:28 +02:00
Hao Guan
76cda416bd feat(mac): 生息演算:重启锚点 2026-05-16 11:47:25 +08:00
github-actions[bot]
a7dec56904 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25943784110
[skip changelog]
2026-05-15 22:10:13 +00:00
github-actions[bot]
b42e2d244c chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25942030629
[skip changelog]
2026-05-15 21:23:51 +00:00
uye
2d1740c255 Release v6.10.0-beta.3 (#16623)
## Summary by Sourcery

引入任务停滞检测与通知,增强成就界面交互,并接入相关设置和视图组件。

New Features:
- 为运行中的任务添加可配置的停滞超时检测,当检测不到输出活动时,重复发送提醒通知。
- 允许在任务停滞时发送外部通知,由一个新的设置项进行控制。
- 支持从 growl 通知直接导航到特定成就,以及在成就列表中通过 ID 搜索并跳转到对应成就。

Enhancements:
- 追踪并同步成就搜索文本,以便可以通过代码触发搜索,同时保持 UI 状态一致。
- 优化任务队列日志记录,使日志写入可以选择性地抑制用于停滞检测的活动通知。
- 添加一个 RootView 的 code-behind 类,用于初始化主 WPF 视图。

Chores:
- 引入用于停滞超时和停滞通知设置的新配置键和值绑定,并更新相关的 XAML 和本地化资源。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Introduce task stall detection and notifications, enhance achievement UI
interactions, and wire up supporting settings and view components.

New Features:
- Add configurable stall timeout detection for running tasks with
repeated reminder notifications when no output activity is detected.
- Allow external notifications to be sent when tasks are stalled,
controlled by a new setting.
- Enable navigating directly to a specific achievement from growl
notifications and by ID-based searching in the achievement list.

Enhancements:
- Track and synchronize achievement search text so searches can be
triggered programmatically while keeping the UI in sync.
- Refine task queue logging so log writes can optionally suppress
activity notifications used by stall detection.
- Add a RootView code-behind class to initialize the main WPF view.

Chores:
- Introduce new configuration keys and bindings for stall timeout and
stall notification settings, and update related XAML and localization
resources.

</details>
2026-05-16 04:25:00 +08:00
uye
86cf185d25 docs: Update CHANGELOG for v6.10.0-beta.3
Added new features and made adjustments in the changelog.
2026-05-16 03:19:49 +08:00
github-actions[bot]
fb6e08281c feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25936565851
[skip changelog]
2026-05-15 19:14:24 +00:00
H2O_MERO
edc6b85d50 feat: 点击成就横幅跳转至成就设置,自动打开成就列表并筛选对应成就 (#16537)
### 改动
可以通过点击右上角弹出的成就横幅跳转至成就设置,并自动打开成就列表并筛选对应成就

## Summary by Sourcery

为成就通知横幅添加导航功能,可跳转到对应的设置部分和成就列表条目。

New Features:
- 允许点击成就的提示(growl)横幅,以打开成就设置页面,并聚焦到相关成就。
- 使成就列表对话框在打开时或加载完成后,可以直接滚动到指定成就。

Enhancements:
- 跟踪提示(growl)通知,将其与特定成就关联起来,并绑定点击处理程序,同时不影响现有按钮的行为。
- 引入一个 `RootView` 代码隐藏文件,用于初始化根视图组件。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add navigation from achievement notification banners to the
corresponding settings section and achievement list entry.

New Features:
- Allow clicking achievement growl banners to open the achievement
settings page focused on the relevant achievement.
- Enable the achievement list dialog to scroll directly to a specific
achievement when opened or once loaded.

Enhancements:
- Track growl notifications to associate them with specific achievements
and wire up click handlers without interfering with existing buttons.
- Introduce a RootView code-behind file to initialize the root view
component.

</details>
2026-05-16 02:44:00 +08:00
H2O_MERO
24639a0fdd feat: 任务日志输出停滞时发送通知, 替换 任务超时通知 (#16511)
### 改动
1. 增加了“任务日志输出停滞时发送通知“功能,具体表现为:当任务日志在设定时间内没有发生更新时,进行日志输出和外部通知推送  
2. 修改了选项“任务超时时间(分钟)”的最小值为1  
3. 删除了旧有的通知方式

### 关联issue
#13271

## Summary by Sourcery

为停滞的任务日志输出添加可配置的检测与通知功能,并将其接入现有的运行状态与任务队列流程中。

新功能:
- 引入“停滞超时时间”设置:当任务日志输出在配置的时间段内没有更新时,触发警告和外部通知。
- 添加用户可配置开关:在任务发生停滞时,可选择在现有超时通知的基础上同时发送外部通知。

增强内容:
- 从任务队列中跟踪日志输出活动,以重置停滞检测计时器,避免误报的停滞告警。
- 将新的停滞超时和通知偏好持久化到配置中,并在游戏内及外部通知设置的 UI 中对其进行暴露。
- 调整超时通知处理逻辑,在记录日志和发送通知之前,先遵从对应的外部通知设置。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add configurable detection and notification for stalled task log output
and wire it into the existing running state and task queue flow.

New Features:
- Introduce a stall timeout setting that triggers warnings and external
notifications when task log output has no updates for a configured
period.
- Add a user-configurable switch to send external notifications on task
stalls alongside existing timeout notifications.

Enhancements:
- Track log output activity from the task queue to reset stall detection
timers and avoid false-positive stall alerts.
- Persist the new stall timeout and notification preferences in
configuration and expose them in the game and external notification
settings UI.
- Adjust timeout notification handling to respect the corresponding
external notification setting before logging and sending notifications.

</details>
2026-05-16 02:43:28 +08:00
uye
ea8a4ccb33 chore: 放宽对 RA-1 关卡名的检查
fix #16622
2026-05-16 02:37:08 +08:00
uye
24886bb695 chore: 添加拆除设施的描述 2026-05-16 02:02:07 +08:00
uye
6326ec2f35 chore: 删除辅助建设模式的描述 2026-05-16 00:56:57 +08:00
uye
38c94b5cd7 Release v6.10.0-beta.2 (#16619)
## Summary by Sourcery

文档:
- 阐明 MAA 旨在用于单账号场景,并说明针对多开与多账号管理的非官方解决方案以及对这类用法不予支持的立场。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Documentation:
- Clarify that MAA is designed for single-account use and outline the
unofficial workaround and non-support stance for multi-opening and
multi-account management.

</details>
2026-05-16 00:51:46 +08:00
uye
e741a81d0e docs: Update CHANGELOG for v6.10.0-beta.2 release 2026-05-16 00:51:33 +08:00
uye
fc4df3502a style: 文件尾空行 2026-05-16 00:46:23 +08:00
github-actions[bot]
adafc31adc feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25929745651
[skip changelog]
2026-05-15 16:43:38 +00:00
uye
437da1ac62 chore: 欠费下小猫 2026-05-16 00:41:52 +08:00
uye
d8552201d4 chore: 快速下小猫 2026-05-16 00:39:21 +08:00
uye
a66d5189a0 perf: 减少中间状态 2026-05-16 00:21:23 +08:00
uye
8cc109a934 chore: 加快下一轮循环 2026-05-16 00:17:45 +08:00
uye
5875cb1ba3 chore: 提升对话速度 2026-05-16 00:16:59 +08:00
uye
f74892dec5 chore: 添加描述 2026-05-16 00:09:25 +08:00
uye
ac45207903 feat: 生息演算支持不同分辨率 2026-05-16 00:09:25 +08:00
uye
b9aecb9469 ai: Add section on MAA multi-opening and account management 2026-05-15 22:57:11 +08:00
github-actions[bot]
c95b8373e3 chore: Auto Update Game Resources - 2026-05-15
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25917272423

[skip changelog]
2026-05-15 12:17:21 +00:00
uye
0e3bde1260 Release v6.10.0-beta.1 (#16611)
## Summary by Sourcery

为 Android 新增原生控制器支持,扩展自动化功能,并在工具箱、战斗和再收容系统中优化 UI 流程和日志记录。

New Features:
- 引入 Android 原生控制器后端及相关接线,使 MaaCore 能直接在 Android 设备上运行。
- 在现有剪贴板导出基础上,新增仓库导出为 Markdown 和 CSV 的选项。
- 新增再收容主题 “RelaunchAnchor”,并配套专用配置与 UI 行为。
- 在工具箱 UI 中提供分类的小游戏选择列表,并支持对每个条目进行独立绑定。
- 为仓库和干员盒子网格引入共享卡片宽度行为以及行/列展示辅助工具。

Bug Fixes:
- 修复战斗药剂过期处理问题,将负数过期天数视为无限,并正确校验 `medicine_expire_days`。
- 确保章节难度切换任务可以包含确认子任务,以处理选择后的弹窗。
- 通过使用 WPF Clipboard API 并加入基础重试逻辑与统一调用方式,稳定 WPF UI 中的剪贴板操作。
- 通过记录最近一次信号代码而不是存储原始字符串指针,避免陈旧的崩溃日志并改进信号处理。

Enhancements:
- 使用可复用的 FFT/稀疏实现优化带掩码的模板匹配,并改进匹配路径与方法的日志记录。
- 增强 Android 崩溃日志,加入原生栈回溯、信号/异常标记以及 logcat 集成。
- 更新 OCR 调试构建,在捕获图像上直接绘制边界框和分数。
- 优化 RunningState 变更通知,包含旧/新快照,并相应更新订阅方处理。
- 改进任务队列日志控制和启动小游戏流程,在新一轮运行时清空历史日志。
- 调整版本设置和错误对话框中的 UI 文本、裁剪效果和彩蛋行为,以提供更好的反馈。
- 明确再收容配置规则,对不兼容模式按主题强制收敛到受支持的默认配置。
- 扩展内部问题日志分析技能和知识文档,提供更清晰的工作流程和支援所需证据说明。
- 调整顶层和 MaaCore 的 CMake 配置,以适配 Android 构建、符号剥离和段优化。

Build:
- 新增 Android 构建预设和 CI 工作流,用于产出 MaaCore 的 Android 构建产物,并在发行版中集成
MaaFramework 原生控制单元。

CI:
- 新增专门的 GitHub Actions 任务,用于构建、打包并上传 Android 组件,并将其接入打标签发行流水线。

Documentation:
- 更新内部分析技能和知识文档,涵盖新的工作流程、明日方舟 PC 客户端相关注意事项,以及针对证据不足问题的轻量级“赛博占卜”式回复策略。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add Android native controller support, extend automation features, and
refine UI workflows and logging across toolbox, combat, and reclamation
systems.

New Features:
- Introduce an Android native controller backend and wiring to allow
running MaaCore directly on Android devices.
- Add depot export options for Markdown and CSV alongside existing
clipboard exports.
- Add a new Reclamation theme "RelaunchAnchor" with dedicated
configuration and UI behavior.
- Provide categorized mini‑game selection in the toolbox UI with
per‑item binding.
- Introduce shared card width behavior and row/column presentation
helpers for depot and operator box grids.

Bug Fixes:
- Fix fight medicine expiry handling to treat negative expiry days as
unlimited and validate medicine_expire_days correctly.
- Ensure chapter difficulty switching tasks can include confirmation
subtasks to handle post‑selection dialogs.
- Stabilize clipboard operations across the WPF UI by using WPF
Clipboard APIs with basic retry logic and consistent calls.
- Prevent stale crash logs and improve signal handling by tracking the
last signal code instead of storing raw string pointers.

Enhancements:
- Optimize masked template matching with a reusable FFT/sparse
implementation and improved logging of match paths and methods.
- Enhance Android crash logging with native stack traces,
signal/exception tagging, and logcat integration.
- Update OCR debug builds to render bounding boxes and scores directly
on captured images.
- Refine RunningState change notifications to include old/new snapshots
and update subscribers accordingly.
- Improve task queue logging control and start‑mini‑game flow by
clearing logs on new runs.
- Adjust UI texts, clipping, and Easter egg behavior in version settings
and error dialogs for better feedback.
- Clarify reclamation configuration rules so incompatible modes are
coerced to supported defaults per theme.
- Extend internal issue‑log analysis skills and knowledge docs with
clearer workflows and evidence requirements for support.
- Tweak top‑level and MaaCore CMake configuration for Android builds,
stripping, and section optimizations.

Build:
- Add Android build presets and CI workflow to produce MaaCore Android
artifacts and integrate MaaFramework native control units into releases.

CI:
- Introduce a dedicated GitHub Actions job to build, package, and upload
Android components, and wire it into the tagged release pipeline.

Documentation:
- Update internal analysis skill and knowledge documentation to cover
new workflows, Arknights PC client caveats, and lightweight "cyber
fortune" responses for low‑evidence issues.

</details>
2026-05-15 20:11:51 +08:00
github-actions[bot]
9e51cdfe65 docs: Auto Update Changelogs of v6.10.0-beta.1 (#16612)
* docs: Auto Generate Changelog of Release v6.10.0-beta.1

* docs: Update CHANGELOG with new features and fixes

Added new features, improvements, and bug fixes to the changelog. Updated entries for better clarity and organization.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-15 20:02:53 +08:00
github-actions[bot]
62ea1f2841 chore: Auto Templates Optimization
Triggered by 155f049cf6

[skip changelog]
2026-05-15 11:42:35 +00:00
uye
155f049cf6 feat: 初步支持 生息演算:重启锚点 新手刷代币与科技点策略 2026-05-15 19:42:05 +08:00
Aliothmoon
416ecca979 perf: 优化 masked TM_CCOEFF_NORMED 匹配性能 (#16593)
* perf: FFT/sparse fast path for masked TM_CCOEFF_NORMED

* perf: optimize masked ccoeff matching

* perf: tune masked ccoeff dispatcher and remove fixed overhead

- sync_cache_revision: atomic acquire/release double-check avoids
  taking the mutex on every preproc_and_match call. No-mask hot path
  no longer pays for the singleton at all (init hoisted into the
  FFT/sparse branch).

- should_fallback_to_opencv: pick whichever path is empirically
  faster instead of only catching dense-mask small-result cases:
  * result < 1000 && K < 2000: keep sparse (OpenCV setup dominates)
  * result < 12000 && K >= 500: fallback (covers GameStart 200x120/
    58x58 and 138x130/105x105 dead zones)
  * K*result < 25M: fallback (covers SmileyOnWork 880x80/20x21 and
    similar long-thin / small-template FFT-loses cases)

Windows MSVC x64 (min-of-2, n=803/1402):
  coverage: regressions 198 -> 50, mean 10.5ms -> 7.4ms (1.40x)
  perf:     regressions  86 ->  3, mean  854us ->  296us (2.90x)

Android arm64-v8a NEON (single run, n=803/1402):
  coverage: regressions   0, mean 125ms -> 80ms  (1.72x)
  perf:     regressions   1 (1.20x edge), mean 6.4ms -> 2.8ms (10.95x)

* perf(masked-matcher): merge 3-channel I² into a single FFT in σ_I² compute

σ_I²(x,y) = Σ_c [(M ⋆ I_c²) - (M ⋆ I_c)² / N]
          = Σ_c (M ⋆ I_c²)        - (1/N) Σ_c (M ⋆ I_c)²
            ↑ this term is linear in I_c², so by convolution linearity
              Σ_c (M ⋆ I_c²) = M ⋆ Σ_c I_c².

Precompute I_sq_sum = Σ_c I_c² in spatial domain and do a single
FFT + single IFFT instead of three. The second term Σ_c (M ⋆ I_c)²
still requires per-channel computation (squaring is non-linear).

Net: -2 FFTs and -2 IFFTs per match() call (15 → 11 transforms).

Validated min-of-3 runs on the 10 largest FFT-path cases per platform:
  windows: 8/10 cases -22%, 2 cases (66x41 templ) unchanged
  android: 8/10 cases -22%, 2 cases (66x41 templ) unchanged

The two unchanged cases have very small templates where FFT is not
the bottleneck (cvtColor / convertTo / split dominate). Correctness
preserved across 1800 iterations × 10 cases on both platforms.

* fix: 测试代码忘记删除了

* fix: make TemplResource::m_revision atomic

* chore: 调一下匹配参数

* feat: 在日志中标记匹配路径(优化实现 vs cv::matchTemplate)
2026-05-15 19:22:29 +08:00
github-actions[bot]
210b1aef22 chore: Auto Update Game Resources - 2026-05-15
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25910909078

[skip changelog]
2026-05-15 09:37:11 +00:00
github-actions[bot]
3c4aaf6e7e chore: Auto Templates Optimization
Triggered by 1e37310c4a

[skip changelog]
2026-05-15 08:16:06 +00:00
uye
1e37310c4a feat: 17 章导航 2026-05-15 16:15:33 +08:00
uye
592826aef3 fix: 15 章之后的难度切换 2026-05-15 16:15:26 +08:00
uye
889414d21b chore: 统一符号 2026-05-15 14:46:52 +08:00
github-actions[bot]
fc95c90f8f feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25888740056
[skip changelog]
2026-05-14 22:14:58 +00:00
github-actions[bot]
72234dcc93 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25886570116
[skip changelog]
2026-05-14 21:26:59 +00:00
HY
90bb4b78e3 fix: 繼續調整繁中服部分幹員名稱 OCR (#16600) 2026-05-14 22:45:17 +08:00
uye
b05a5a98ff ai: Update KNOWLEDGE.md with PC mouse rendering note
Add note about PC mouse rendering issues affecting recognition.
2026-05-14 22:37:20 +08:00
status102
3ee852928f fix: 理智药过期天数识别失败取消确认逻辑未生效
- link to #16548
2026-05-14 19:50:49 +08:00
status102
fc81cc3bbd fix: 临期理智药天数缺省值 2026-05-14 19:50:33 +08:00
github-actions[bot]
ae11a7ca6d feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25829555451
[skip changelog]
2026-05-13 22:15:51 +00:00
github-actions[bot]
2ede1dd544 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25827562446
[skip changelog]
2026-05-13 21:32:01 +00:00
uye
4517ef984c fix: 便捷功能列表滚动 2026-05-14 01:51:23 +08:00
uye
d20493a1b0 feat: 便捷功能提示文本自适应大小 2026-05-14 01:13:14 +08:00
uye
f5801a4d69 fix: 便捷功能 GroupStyle 2026-05-14 00:42:15 +08:00
uye
2aa92b0c1d perf: 调整 小工具-便捷任务 布局,调整日志输出 2026-05-13 23:56:58 +08:00
status102
3432050ff4 fix: 刷理智-理智药过期参数迁移输出Warning中参数名错误 2026-05-13 20:53:20 +08:00
SherkeyXD
a105eccd05 rft: 小游戏界面重构,添加分类并优化选择逻辑,添加日志显示 (#16499)
* rft: 小游戏界面重构,添加分类并优化选择逻辑,添加日志显示

* chore: 修复格式化问题和误删注释

* chore: 重命名小游戏

* fix: 不再硬编码日志内容

* i18n: EN

* i18n: zh-tw

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
Co-authored-by: momomochi987 <45387477+momomochi987@users.noreply.github.com>
2026-05-13 19:18:32 +08:00
status102
5e78b23157 perf: 避免不必要的new 2026-05-13 16:46:00 +08:00
Status102
de9f715e50 rft(wpf): RunningState更新 (#16585)
* rft(wpf): RunningState更新

* fix: 遗漏
2026-05-13 15:56:05 +08:00
github-actions[bot]
0c16c0b21d chore: Auto Update Game Resources - 2026-05-13
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25781860833

[skip changelog]
2026-05-13 06:13:45 +00:00
github-actions[bot]
2d794bc1c4 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25765378675
[skip changelog]
2026-05-12 22:15:16 +00:00
github-actions[bot]
1e0d66cf7d chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25763261294
[skip changelog]
2026-05-12 21:29:51 +00:00
status102
f148494230 perf: OCRer DEBUG下绘制匹配结果 2026-05-13 04:50:02 +08:00
uye
3d6e9364d5 fix: typo 2026-05-13 02:54:25 +08:00
uye
a68c24edc9 ai: Add Arknights PC Client information to KNOWLEDGE.md
Added section about Arknights PC Client, including functionality, maintenance, and user recommendations.
2026-05-13 02:47:46 +08:00
uye
2f22c0bde1 chore: 调整干员识别提示换行 2026-05-13 02:42:44 +08:00
H2O_MERO
7921672c07 feat: 仓库识别支持导出 Markdown/CSV,优化导出按钮布局与交互 (#16543)
* feat: 仓库识别支持导出 Markdown/CSV,优化导出按钮布局与交互

* feat: 优化仓库识别导出功能,支持下拉菜单选择并导出 Markdown/CSV

* rft: 提取独立的导出方法

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-13 02:37:00 +08:00
uye
31380e7bdf ai: Update KNOWLEDGE.md with PC announcement details
Added section on PC announcement handling and screenshot methods.
2026-05-13 02:28:27 +08:00
uye
28e3cbb59b chore: 调整图标阴影 2026-05-13 02:09:34 +08:00
uye
f4cc4610a3 chore: 采用 System.Windows 的剪贴板 2026-05-13 01:57:49 +08:00
Aliothmoon
c6f930a60d feat: support native android (#16179)
* feat: add android controller support

* feat: add android compile options and add core static options

* fix: add __ANDROID__ macro for Android platform

* fix: move switch break into macro conditional block

* ci: add Android CMake presets (arm64, x64)

* fix: add missing Android TouchMode handling

* fix: remove unnecessary pre-check in android

* fix: restore unnecessary modifications

* fix: unified use __ANDROID__

* refactor: use interpolate_swipe_with_pause in AndroidController

* feat: add Android crash logcat output and native backtrace

* feat: only copy once from external lib screencap

* feat: add Android JNI AttachThread/DetachThread to working_proc

* fix: break control in switch

* fix: update click interval & swipe interval

* ci: restore Android build job with MaaFramework download

* fix: remove thread attach

* ci: temporarily remove MaaAndroidNativeControlUnit.so

* feat(android-ctrl): SWIPE_WITH_PAUSE 由 InstanceOption DeploymentWithPause 控制

* feat: SWIPE_WITH_PAUSE 默认启用

* feat: add android compile options and add core static options

* feat: use maafw controll unit

* fix: minor adjustments

* refactor: adapt maafw android lib

* fix: remove screencap when connect

* chore: change maafw lib use

* feat: adapt maafw control unit click & click_key

* fix: address critical issues in Android native controller

- Restore InstanceOptionKey::ClientType case in set_instance_option,
  which was accidentally removed and broke client type setting on all platforms
- Enable libMaaAndroidNativeControlUnit.so copy step in CI (was commented out),
  so Android artifacts actually include the required control unit library
- Fail connect() early when screen_resolution is missing or invalid in config,
  preventing silent {0,0} resolution that would break swipe and screencap
- Check touch_down() return value in swipe() and abort on failure

* fix: correct bounds_check off-by-one and extract KEYCODE_ESCAPE constant

- bounds_check used <= which allowed coordinates equal to screen width/height
  (off-screen); use < to match the valid range [0, dimension-1]
- Extract magic number 111 into KEYCODE_ESCAPE constexpr in press_esc()

* fix: avoid heap allocation in noexcept terminate/signal handlers

format_signal_reason was returning std::string and using std::format in
its default branch. Called from noexcept custom_terminate_handler before
the outer try block, any allocation failure would throw std::bad_alloc,
triggering recursive std::terminate and aborting crash reporting.

- Change return type to const char* noexcept, returning string literals
- Replace std::format("Signal {}", sig) with "Unknown Signal" (only the
  four registered signals are ever passed, so this branch is unreachable)
- Change signal_info in custom_terminate_handler from std::string to
  const char*, eliminating all allocations on the pre-try path

* fix: suppress unused-variable warning for signal_reason on non-Android
2026-05-12 22:15:15 +08:00
uye
13fa72510a ai: 调整输出格式 2026-05-12 20:19:05 +08:00
uye
9660485e7e ai: 修改 ai-issue-analysis 2026-05-12 20:05:06 +08:00
uye
faf1db9b20 ai: 赛博道长 2026-05-12 19:37:26 +08:00
uye
eb663f9fb8 chore: 调整描述 2026-05-12 19:26:11 +08:00
uye
2d5b2110f5 perf: 干员识别与仓库识别支持虚拟化,大幅提高首次加载速度 (#16486)
https://github.com/user-attachments/assets/3a0722fb-b4c0-4864-9141-7d0200c117b8

## Summary by Sourcery

优化仓库和运营商卡片列表的展示方式,支持基于行的虚拟化以及共享的卡片宽度约束,从而实现更快的初始加载和更一致的布局。

新功能:
- 为虚拟化卡片列表添加共享卡片宽度行为,根据可用空间和列数保持一致的卡片宽度。

增强内容:
- 将仓库和运营商集合重构为基于行的可观察集合,并计算列数,以更好地支持虚拟化网格布局。
- 连接集合变更处理程序,以在仓库和运营商数据更新时保持行展示和列数的同步。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Optimize depot and operator card list presentation to support row-based
virtualization and shared card width constraints for faster initial
loading and more consistent layouts.

New Features:
- Add a shared card width behavior for virtualized card lists to
maintain consistent widths based on available space and column count.

Enhancements:
- Refactor depot and operator collections into row-based observable
collections with computed column counts to better support virtualized
grid layouts.
- Wire collection change handlers to keep row presentations and column
counts in sync when depot and operator data updates.

</details>
2026-05-12 18:28:20 +08:00
Status102
60470006c5 Release v6.9.5 (#16575)
## Summary by Sourcery

重构多 Copilot 阶段导航逻辑,并调整配置变更的日志级别。

增强内容:
- 将 `MultiCopilotTaskPlugin` 中的阶段导航逻辑提取为可复用的 `navigate_to_stage`
辅助函数,以集中管理 OCR 设置和任务执行。
- 将配置更新的日志级别从 debug 提升为 information,使变更在日志中更加醒目可见。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Refactor multi-copilot stage navigation and adjust configuration change
logging level.

Enhancements:
- Extract stage navigation logic in MultiCopilotTaskPlugin into a
reusable navigate_to_stage helper to centralize OCR setup and task
execution.
- Increase the log level for configuration updates from debug to
information to make changes more visible in logs.

</details>
2026-05-12 11:45:10 +08:00
github-actions[bot]
3516749cf1 docs: Auto Update Changelogs of v6.9.5 (#16576)
* docs: Auto Generate Changelog of Release v6.9.5

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-05-12 11:45:00 +08:00
status102
b9274e1904 perf: Wpf 新配置修改日志记录等级提升至 Info 2026-05-12 11:38:57 +08:00
status102
9dcfeb28fd rft: 自动战斗拆出导航 2026-05-12 11:38:36 +08:00
uye
e21a6630f4 Release v.6.9.4 (#16554)
PV minigame rerun.

cc @Manicsteiner @HX3N

## Summary by Sourcery

调整主线关卡难度后缀的处理方式,提高窗口/任务处理与日志记录的健壮性,并使文档、资源与本地化行为与 v6.9.4 的新特性保持一致。

New Features:
- 支持按章节感知的难度映射:使 `-NORMAL` / `-HARD` 后缀在第 10–14 章映射到 Standard/Adverse,在第
15 章及之后映射到 Normal/Raid,并在关卡前/后根据需要切换难度。
- 一旦配置完成后,总是启用集成策略中的 JieGarden 铜币兑换行为,而不再受投资模式限制。

Bug Fixes:
- 防止在 WPF 调度器开始关闭之后仍尝试显示或激活窗口,从而避免运行时异常。
- 限制战斗助手技能就绪检查的频率,避免因检查过于频繁被误判为触发限频,同时保证就绪日志记录的准确性。
- 在删除多余调试图片时,对文件系统错误进行优雅处理,而不是静默失败或抛出异常。
- 确保问题报告归档文件生成在持久化的报告目录下。
- 在通过远程控制启动任务时记录任务开始时间,以保持日志与追踪信息的一致性。
- 修复日志记录器作用域处理方式,使作用域在创建日志流时注入,而不是在各个不同严重级别的辅助方法中注入。
- 使用 Attach Window 时避免传递账号名,以匹配当前支持的客户端类型。

Enhancements:
- 优化关卡导航逻辑,通过章节号解析难度后缀,并可选在关卡选定后再切换难度。
- 将“公告顽固点击”恶搞成就的解锁推迟到第三个发布阶段,并略微提高“Lucky”成就的随机触发概率。
- 明确和强化 MAA 问题日志分析的内部规范,特别是有状态 UI 自动化和接待线索流程相关内容。
- 改进 Bark/AppImage 品牌呈现,切换到新版 v2 徽标图标资源。

Build:
- 更新 CI 中的 AppImage 打包配置,以下载新的 v2 徽标图标路径。

CI:
- 调整 CI 工作流中的资源路径,以适配更新后的品牌资源。

Documentation:
- 在手册和集成协议中,用所有支持的语言记录基于章节的 `-NORMAL` / `-HARD` 后缀映射规则。
- 从多语言集成策略 schema 文档中移除过时的 JieGarden 铜币兑换启用条件说明,并刷新相关术语。
- 扩展内部问题分析文档,补充有状态 UI 自动化与接待线索的必读资料和知识库。

Chores:
- 为第 17 章的困难关卡添加格子位置信息,并刷新关卡/任务/资源/版本元数据,以支持 v6.9.4 内容。
- 更新本地化资源和外部通知设置 UI,使其与新行为和图标 URL 保持一致。
- 添加内部工具和助手使用的上下文 JSON 及知识文件。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Adjust main story difficulty suffix handling, improve robustness of
window/task handling and logging, and align documentation, resources,
and localization with new behaviors for v6.9.4.

New Features:
- Support chapter-aware difficulty mapping so -NORMAL/-HARD suffixes
route to Standard/Adverse in chapters 10–14 and Normal/Raid from chapter
15 onward, with pre/post stage difficulty switching as needed.
- Always enable JieGarden copper exchange behavior once configured,
regardless of investment mode.

Bug Fixes:
- Prevent WPF windows from being shown or activated after the dispatcher
has begun shutdown, avoiding runtime exceptions.
- Throttle battle helper skill readiness checks to avoid misclassifying
frequent checks as rate-limited while keeping readiness logging correct.
- Handle filesystem errors gracefully when deleting excess debug images
instead of silently failing or throwing.
- Ensure issue report archives are generated under the persistent
reports directory.
- Record task start time when launching tasks via remote control to keep
logs and traces consistent.
- Fix logger scope handling so scopes are injected at stream creation
instead of in individual severity helpers.
- Avoid passing account names when using Attach Window, matching
supported client types.

Enhancements:
- Refine stage navigation to interpret difficulty suffixes by chapter
number and optionally switch difficulty after stage selection.
- Delay unlocking of the "announcement stubborn click" humorous
achievement to the third release phase and slightly increase the random
trigger rate of the "Lucky" achievement.
- Clarify and strengthen internal guidelines for MAA issue log analysis,
especially for stateful UI automation and reception clue flows.
- Improve Bark/AppImage branding by switching to updated v2 logo icon
assets.

Build:
- Update CI AppImage packaging to download the new v2 logo icon path.

CI:
- Tweak CI workflow resource paths for updated branding assets.

Documentation:
- Document the new chapter-based mapping of -NORMAL/-HARD suffixes
across all supported languages in manuals and integration protocols.
- Remove outdated enable-condition notes for JieGarden copper exchange
from multilingual integrated strategy schema docs and refresh related
terminology.
- Expand internal issue-analysis documentation with required reading and
knowledge base for stateful UI automation and reception clues.

Chores:
- Add tile position data for Chapter 17 hard stages and refresh
stage/task/resource/version metadata to support v6.9.4 content.
- Update localization resources and external notification settings UI to
match new behaviors and icon URLs.
- Add contextual JSON and knowledge files used by internal tooling and
assistants.

</details>

Bug Fixes(缺陷修复):
- 防止在 Dispatcher 已关闭或窗口正在关闭期间仍尝试显示或激活 WPF 窗口,以避免运行时异常。
- 避免战斗助手中过于频繁的技能就绪检查导致误记为限流,并确保日志消息记录正确。
- 在删除多余调试图片时优雅处理文件系统错误,而不是静默失败。
- 确保问题上报时生成报告使用持久化的报告目录来存放临时压缩包。
- 通过远程控制启动任务时记录任务开始时间,以保持日志与追踪信息准确。

Enhancements(功能增强):
- 优化主线关卡难度选择逻辑,使 NORMAL/HARD 后缀映射到章节特定的难度模式(第 10–14 章为
Standard/Adverse,第 15 章及之后为 Normal/Raid),并根据需要在关卡选择前或后切换难度。
- 简化肉鸽模式中结园铜钱兑换行为,移除仅在“投资模式”下启用的条件,使其在配置开启后始终可用。
- 将“公告点不动”类幽默成就的解锁条件延后到第三阶段发售,以优化节奏。

Documentation(文档):
- 在多语言说明书和集成协议文档中澄清 `-NORMAL` 与 `-HARD`
后缀在不同章节区间对应到哪些具体难度模式,并移除关于结园铜钱兑换启用条件的过时说明。
- 刷新本地化 UI 资源和文档字符串,使其与新行为和术语在所有支持语言中保持一致。

Chores(杂项):
- 为第 17 章困难关卡新增地块坐标数据,并更新若干资源和版本元数据文件,以支持 v6.9.4 内容。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

调整主线关卡难度后缀的处理方式,提高窗口/任务处理与日志记录的健壮性,并使文档、资源与本地化行为与 v6.9.4 的新特性保持一致。

New Features:
- 支持按章节感知的难度映射:使 `-NORMAL` / `-HARD` 后缀在第 10–14 章映射到 Standard/Adverse,在第
15 章及之后映射到 Normal/Raid,并在关卡前/后根据需要切换难度。
- 一旦配置完成后,总是启用集成策略中的 JieGarden 铜币兑换行为,而不再受投资模式限制。

Bug Fixes:
- 防止在 WPF 调度器开始关闭之后仍尝试显示或激活窗口,从而避免运行时异常。
- 限制战斗助手技能就绪检查的频率,避免因检查过于频繁被误判为触发限频,同时保证就绪日志记录的准确性。
- 在删除多余调试图片时,对文件系统错误进行优雅处理,而不是静默失败或抛出异常。
- 确保问题报告归档文件生成在持久化的报告目录下。
- 在通过远程控制启动任务时记录任务开始时间,以保持日志与追踪信息的一致性。
- 修复日志记录器作用域处理方式,使作用域在创建日志流时注入,而不是在各个不同严重级别的辅助方法中注入。
- 使用 Attach Window 时避免传递账号名,以匹配当前支持的客户端类型。

Enhancements:
- 优化关卡导航逻辑,通过章节号解析难度后缀,并可选在关卡选定后再切换难度。
- 将“公告顽固点击”恶搞成就的解锁推迟到第三个发布阶段,并略微提高“Lucky”成就的随机触发概率。
- 明确和强化 MAA 问题日志分析的内部规范,特别是有状态 UI 自动化和接待线索流程相关内容。
- 改进 Bark/AppImage 品牌呈现,切换到新版 v2 徽标图标资源。

Build:
- 更新 CI 中的 AppImage 打包配置,以下载新的 v2 徽标图标路径。

CI:
- 调整 CI 工作流中的资源路径,以适配更新后的品牌资源。

Documentation:
- 在手册和集成协议中,用所有支持的语言记录基于章节的 `-NORMAL` / `-HARD` 后缀映射规则。
- 从多语言集成策略 schema 文档中移除过时的 JieGarden 铜币兑换启用条件说明,并刷新相关术语。
- 扩展内部问题分析文档,补充有状态 UI 自动化与接待线索的必读资料和知识库。

Chores:
- 为第 17 章的困难关卡添加格子位置信息,并刷新关卡/任务/资源/版本元数据,以支持 v6.9.4 内容。
- 更新本地化资源和外部通知设置 UI,使其与新行为和图标 URL 保持一致。
- 添加内部工具和助手使用的上下文 JSON 及知识文件。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Adjust main story difficulty suffix handling, improve robustness of
window/task handling and logging, and align documentation, resources,
and localization with new behaviors for v6.9.4.

New Features:
- Support chapter-aware difficulty mapping so -NORMAL/-HARD suffixes
route to Standard/Adverse in chapters 10–14 and Normal/Raid from chapter
15 onward, with pre/post stage difficulty switching as needed.
- Always enable JieGarden copper exchange behavior once configured,
regardless of investment mode.

Bug Fixes:
- Prevent WPF windows from being shown or activated after the dispatcher
has begun shutdown, avoiding runtime exceptions.
- Throttle battle helper skill readiness checks to avoid misclassifying
frequent checks as rate-limited while keeping readiness logging correct.
- Handle filesystem errors gracefully when deleting excess debug images
instead of silently failing or throwing.
- Ensure issue report archives are generated under the persistent
reports directory.
- Record task start time when launching tasks via remote control to keep
logs and traces consistent.
- Fix logger scope handling so scopes are injected at stream creation
instead of in individual severity helpers.
- Avoid passing account names when using Attach Window, matching
supported client types.

Enhancements:
- Refine stage navigation to interpret difficulty suffixes by chapter
number and optionally switch difficulty after stage selection.
- Delay unlocking of the "announcement stubborn click" humorous
achievement to the third release phase and slightly increase the random
trigger rate of the "Lucky" achievement.
- Clarify and strengthen internal guidelines for MAA issue log analysis,
especially for stateful UI automation and reception clue flows.
- Improve Bark/AppImage branding by switching to updated v2 logo icon
assets.

Build:
- Update CI AppImage packaging to download the new v2 logo icon path.

CI:
- Tweak CI workflow resource paths for updated branding assets.

Documentation:
- Document the new chapter-based mapping of -NORMAL/-HARD suffixes
across all supported languages in manuals and integration protocols.
- Remove outdated enable-condition notes for JieGarden copper exchange
from multilingual integrated strategy schema docs and refresh related
terminology.
- Expand internal issue-analysis documentation with required reading and
knowledge base for stateful UI automation and reception clues.

Chores:
- Add tile position data for Chapter 17 hard stages and refresh
stage/task/resource/version metadata to support v6.9.4 content.
- Update localization resources and external notification settings UI to
match new behaviors and icon URLs.
- Add contextual JSON and knowledge files used by internal tooling and
assistants.

</details>

</details>
2026-05-12 03:21:25 +08:00
uye
fccaf06d6d docs: Update CHANGELOG for version 6.9.4
Updated changelog for version 6.9.4 with new features, improvements, fixes, and documentation updates.
2026-05-12 03:00:30 +08:00
github-actions[bot]
c99f05fbd9 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25690745565
[skip changelog]
2026-05-11 18:56:45 +00:00
HY
4ed401f1f4 chore: 繁中服「快速放入線索」與「一鍵贈送重複線索」 (#16562) 2026-05-12 02:55:28 +08:00
uye
c9c8e9751d chore: Lucky 的概率改为 0.0799% 2026-05-12 02:36:34 +08:00
uye
6119232486 chore: 使用 PC 端时不传账号 2026-05-12 01:57:45 +08:00
uye
c9085e7d23 ai: 增加 issue 分析知识库 2026-05-11 21:59:31 +08:00
HY
5814f1a6ca fix: 調整繁中服部分幹員名稱 OCR (#16561) 2026-05-11 21:28:56 +08:00
Constrat
c59397b377 fix: Notification icon 2026-05-11 14:43:56 +02:00
Constrat
cccbef1637 ci: fix icon post design structure change 2026-05-11 14:38:19 +02:00
CC-creator2026
1bcafbc718 fix: 繁中服肉鴿薩卡滋事件辨識 聚思成塔 (#16541)
fix: 繁中服薩卡滋事件辨識 "聚思成塔"

繁中服薩卡滋事件辨識 "聚思成塔"
會辨識成 "緊思成塔"

謝謝@momomochi987大佬提出建議
2026-05-11 10:26:41 +08:00
github-actions[bot]
c322b532be chore: Auto Templates Optimization
Triggered by 532e775359

[skip changelog]
2026-05-11 02:21:13 +00:00
Manicsteiner
532e775359 chore: restore JP StageAnnihilation.png 2026-05-11 10:20:17 +08:00
status102
8780642041 fix: LogWarn 等宏在 Release 下依旧输出scope导致额外间隔 2026-05-11 10:16:44 +08:00
github-actions[bot]
a1115031c0 chore: Auto Templates Optimization
Triggered by dad687c360

[skip changelog]
2026-05-11 01:29:56 +00:00
HX3N
dad687c360 chore: YostarKR PV minigame 2026-05-11 10:28:05 +09:00
github-actions[bot]
d3809b5b83 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25639990939
[skip changelog]
2026-05-10 21:17:25 +00:00
travellerse
b7da52dbe8 fix: 修复通宝交换/投钱任务链以适配交换通宝/投钱后获得藏品的情况 (#16553)
* fix: 修复通宝交换任务链

* fix: 修复重新投钱任务链

* fix: 更新重新投钱和交换通宝的状态机图参见信息

* fix: potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 01:48:35 +08:00
github-actions[bot]
fca1966320 chore: Auto Update Game Resources - 2026-05-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25635302243

[skip changelog]
2026-05-10 17:38:26 +00:00
github-actions[bot]
f3424510a2 chore: Auto Update Game Resources - 2026-05-10
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25634520722

[skip changelog]
2026-05-10 17:00:52 +00:00
Constrat
ce14b73f23 feat: use v2 version of icons (#16556)
* feat: use v2 version of icons

* docs: Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 00:01:51 +08:00
Manicsteiner
80d4856901 chore: fix JP time ocr (#16557) 2026-05-10 23:59:45 +08:00
Manicsteiner
48243c1990 chore: YostarJP PV templates and ocr (#16505)
## Summary by Sourcery

为新的与 PV 相关的自动化更新 YoStarJP 肉鸽和 PV 任务配置。

增强内容:
- 调整 YoStarJP 的 JieGarden 肉鸽任务配置。
- 优化 YoStarJP 的基础肉鸽任务设置。
- 更新 YoStarJP 的 PV 关卡任务定义,以支持新的 PV 流程。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Update YoStarJP roguelike and PV task configurations for new PV-related
automation.

Enhancements:
- Adjust JieGarden roguelike task configuration for YoStarJP.
- Refine base roguelike task settings for YoStarJP.
- Update PV stage task definitions to support new PV flows in YoStarJP.

</details>
2026-05-10 21:54:50 +08:00
Constrat
3f6fa475ff perf: optimize templates 2026-05-10 12:26:25 +02:00
Constrat
5960bcff7f chore: EN PV minigame 2026-05-10 12:26:20 +02:00
ce271403b9 fix: 外部通知设置界面调整 (#16552) 2026-05-10 16:47:16 +08:00
travellerse
2239a47229 fix: 界园肉鸽投资模式也启用通宝插件 (#16551)
fix: 界园肉鸽通宝拾取/交换不受 InvestWithMoreScore 限制
2026-05-10 16:41:05 +08:00
github-actions[bot]
28f588ec87 feat: Update Submodules MAAUnified, MaaMacGui, maa-cli
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25612950686
[skip changelog]
2026-05-09 22:04:42 +00:00
uye
5473b1ba94 fix: 修复窗体关闭过程中再次启动时报“关闭期间无法设置可见性或调用 Show/Close”的异常
fix #16542
2026-05-10 01:32:36 +08:00
uye
8815af5533 i18n: 修改手动输入关卡名的悬浮描述 2026-05-09 23:48:42 +08:00
uye
11e0836aa0 feat: 支持使用 -Normal/-Hard 切换 常规/险地 难度 2026-05-09 23:29:19 +08:00
AnnAngela
6b5c8af57e chore: Add context7.json with URL and public key 2026-05-09 23:28:49 +08:00
CC-creator2026
eb3d386014 fix: 繁中服肉鴿辨識 (#16535)
* fix: 繁中服界園關卡辨識 邙山地方志

繁中服界園關卡辨識 "邙山地方志"
會辨識成 "亡山地方志"

* fix: 繁中服界園通寶辨識 厲-恣狂情

繁中服界園通寶辨識 "厲-恣狂情"
會辨識成 "厲-憑狂情"

* fix: 繁中服薩卡滋事件辨識 魂靈見聞:以血還血

繁中服薩卡滋事件辨識 "魂靈見聞:以血還血"
會辨識成 "魂靈見聞:以血還血》"
2026-05-09 22:03:36 +08:00
uye
6c9b907ffe fix: 修复删除 debug 截图时因文件被占用导致应用闪退的问题 2026-05-09 22:01:04 +08:00
uye
1cd98d5c21 chore: 生成日志压缩包时的缓存目录改为本地 reports 目录 2026-05-09 21:50:25 +08:00
Constrat
c0e82a346e fix: IS6 encounter trailing o and -
fix #16525
2026-05-09 12:40:25 +02:00
github-actions[bot]
083e4338f4 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25580151885
[skip changelog]
2026-05-08 21:23:20 +00:00
uye
0e4d577add chore: 提前最小截图间隔的检查,小于间隔时跳过识别 2026-05-08 22:32:40 +08:00
HY
8bc39a22f5 docs: update zh-tw preview image (#16517) 2026-05-08 18:25:30 +08:00
github-actions[bot]
e529e5d934 chore: Auto Update Game Resources - 2026-05-08
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25545810041

[skip changelog]
2026-05-08 08:36:03 +00:00
March7th-OvO
d0f57f11c8 fix(wpf): 远程控制启动任务未记录开始时间 (#16522)
## 摘要

修复远程控制运行时完成弹窗的时长显示不正确的问题。

正常的 GUI 启动路径在 `AsstStart()` 成功后,会刷新 `AsstProxy.StartTaskTime`,但远程控制的
`LinkStart()` 路径没有。因此,完成弹窗可能会复用已过时的时间戳,并显示出类似 `16h` 这样不正确的时长。

## 修改内容

在以下文件中,于 `AsstStart()` 成功执行的分支里,添加 `Instances.AsstProxy.StartTaskTime =
DateTimeOffset.Now;`:

`src/MaaWpfGui/Services/RemoteControl/RemoteControlService.cs`

## 相关 issue

关闭 #16518

## Summary by Sourcery

Bug Fixes:
- 通过在远程控制的任务开始运行时设置 `StartTaskTime`,纠正完成弹出窗口的持续时间。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Correct completion popup duration by setting StartTaskTime when
remote-controlled tasks start running.

</details>
2026-05-08 12:03:34 +08:00
AnnAngela
1a848c4416 docs: 更新 wiki 文档,增强内容结构与描述
- 修改了多个 wiki 页面内容,确保使用简体中文,并优化了各部分的描述与结构。
- 增加了关于任务定义、资源加载、系统架构等方面的详细说明,以提升文档的可读性和实用性。

Co-authored-by: Copilot <copilot@github.com>
2026-05-08 10:24:33 +08:00
github-actions[bot]
ef96d2828b chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25522707840
[skip changelog]
2026-05-07 21:21:32 +00:00
uye
8a1ceafaa0 fix: 部分成就分期错误 2026-05-08 03:20:10 +08:00
HY
48e007035f chore: 繁中服界園肉鴿 DLC1 & sss 9 炭火安保派駐 (#16516)
* chore: 繁中服界園肉鴿 DLC1

* chore: sss9 保全派駐
2026-05-08 00:11:27 +08:00
HY
38c5e74404 chore: 繁中服「界園」主題與「齊聚」主題 (#16515) 2026-05-08 00:10:50 +08:00
Status102
77d6ac7118 Release v6.9.3 (#16513)
趁着没新feat赶紧发先

## Summary by Sourcery

为 UI 和版本显示实现一个伪更新流程,加强更新应用和视觉匹配的健壮性,并在构建和资源更新的同时,调整战斗和信用战任务的行为。

New Features:
- 添加 `FakeUpdateHelper`,并将伪更新模式集成到版本显示、更新对话框和窗口标题中,以在不需要实际发布的情况下模拟更新。

Bug Fixes:
- 在委托应用挂起更新时处理缺失的外部更新器可执行文件,并弹出清晰的错误对话框,而不是让安装停留在错误状态。
- 通过在没有捕获发生时正确重置运行状态,修复小游戏的终止流程。
- 当未配置 ROI 时提前返回,防止视觉分析器中的崩溃或无效处理。
- 当默认窗口标题配置被保留时,避免解锁标题自定义成就。
- 调整信用战的停止条件及其相应的 GUI 处理,使其依赖更新后的 copilots 任务管线,而不是旧的动作结束任务。

Enhancements:
- 使用带重试和实时图像刷新的 `PipelineAnalyzer` 改进战斗阵型验证,使阵型检查更加稳健。
- 通过始终从解压内容中准备更新器可执行文件并记录缺失更新器的场景,优化挂起更新的委托处理。
- 更新基础设施布局、全局版本元数据、任务以及本地化资源,以支持新版本发布。

Build:
- 增强本地安装脚本,通过临时 `global.json` 固定本地 .NET SDK, 在 `dotnet publish` 之前运行
`dotnet restore`,并在之后清理临时的 SDK 固定配置。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Implement a fake update flow for UI and version display, harden update
application and vision matching, and adjust battle and credit fight task
behaviors alongside build and resource updates.

New Features:
- Add a FakeUpdateHelper and integrate a fake update mode into version
display, update dialogs, and window title to simulate updates without
requiring real releases.

Bug Fixes:
- Handle missing external updater executables during delegated pending
update application and surface clear error dialogs instead of leaving
installs in a bad state.
- Fix mini-game termination flow by correctly resetting running state
when no catch occurs.
- Prevent crashes or invalid processing in vision analyzers by
early-returning when no ROI is configured.
- Avoid unlocking the title customization achievement when the default
window title configuration is preserved.
- Adjust credit fight stop conditions and corresponding GUI handling to
rely on the updated copilot task pipeline instead of the old
end-of-action task.

Enhancements:
- Improve battle formation validation by using PipelineAnalyzer with
retries and live image refresh, making formation checks more robust.
- Refine pending update delegation by always preparing the updater
executable from extracted content and logging missing-updater scenarios.
- Update infrastructure layouts, global version metadata, tasks, and
localization resources for the new release.

Build:
- Enhance the local-install script to pin a local .NET SDK via a
temporary global.json, run dotnet restore before publish, and clean up
the temporary SDK pin afterwards.

</details>
2026-05-07 20:00:48 +08:00
uye
d63e6d5d8d docs: Update CHANGELOG for version 6.9.3
Updated changelog for version 6.9.3 with new features, improvements, and fixes.
2026-05-07 19:58:11 +08:00
status102
5b8ae926c2 fix: Analyzer执行前未检查m_roi是否未空 2026-05-07 19:34:21 +08:00
github-actions[bot]
8289328484 chore: Auto Update Game Resources - 2026-05-07
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25492702308

[skip changelog]
2026-05-07 11:22:20 +00:00
uye
b117ace40e fix: 修复小游戏界面的开始按钮在连接模拟器失败时仍然发送开始信号 2026-05-07 18:53:03 +08:00
Manicsteiner
1efa4e2574 chore: YostarJP PV templates and ocr 2026-05-07 10:22:32 +08:00
github-actions[bot]
54e9bc97b9 chore: Auto Update Game Resources - 2026-05-06
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25456822699

[skip changelog]
2026-05-06 19:36:55 +00:00
uye
112b242020 feat: 优先使用更新包中的 updater 2026-05-06 21:51:15 +08:00
uye
792214af34 feat: 添加因为缺少 MAA.Updater.exe 导致更新失败的弹窗提示 2026-05-06 21:33:58 +08:00
github-actions[bot]
5295f63a27 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25402988047
[skip changelog]
2026-05-05 21:23:27 +00:00
status102
728f9ca077 fix: 自动战斗进入等待过长
#16391
2026-05-06 03:16:23 +08:00
status102
22f3175b42 fix: OF-1战斗后等待过长导致部分后续流程失败
#16444
2026-05-06 02:15:22 +08:00
status102
4bc96d57da perf: 自动战斗结束增加LoadingIcon等待项 2026-05-06 02:15:22 +08:00
uye
1d60c2363b chore: 调整 global.json 文件创建时机
[skip changelog]
2026-05-06 00:37:18 +08:00
uye
be568fbc1e perf: 优化进度显示
[skip changelog]
2026-05-06 00:28:24 +08:00
uye
505c8e9d10 fix: 修复部分成就判断条件错误 2026-05-06 00:04:17 +08:00
uye
26972c2769 chore: local-install 使用 ci 同款处理方法 2026-05-05 23:55:24 +08:00
Manicsteiner
3c88f16dde docs: update JP preview image (#16485) 2026-05-05 23:46:22 +08:00
uye
70235d7fd5 feat: fake update
[skip changelog]
2026-05-05 23:34:59 +08:00
github-actions[bot]
b38e1b46ba chore: Auto Templates Optimization
Triggered by 4083e21521

[skip changelog]
2026-05-05 12:58:42 +00:00
uye
4083e21521 docs: 更新 README 预览图片 2026-05-05 20:57:45 +08:00
uye
1d909ea38a feat: 更新 153-4 基建作业 2026-05-05 18:37:35 +08:00
Status102
e5365c1447 Release v6.9.2 (#16473)
## Summary by Sourcery

为 v6.9.2 版本发布做准备,更新文档、CI 中的 .NET SDK 配置,并修复运行时任务行为。

增强功能:
- 调整启动和阶段导航任务流程,包括处理特定的“annihilation”(歼灭/剿灭)场景,并改进账号切换日志记录。
- 整理 AutoRecruitTask 中 `recruit_result` 枚举的格式,使其更加一致。

CI:
- 配置 CI 工作流使用生成的 `global.json` 来锁定 .NET SDK 版本,而不是在配置中硬编码版本。

文档:
- 在中文手册中新增 FAQ 条目,描述 DLL 注入问题及其缓解步骤。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare v6.9.2 release by updating documentation, CI .NET SDK
configuration, and fixing runtime task behaviors.

Enhancements:
- Adjust startup and stage navigation task flows, including handling
specific annihilation scenarios and improving account switch logging.
- Tidy AutoRecruitTask recruit_result enumeration formatting for
consistency.

CI:
- Configure CI workflows to use a generated global.json to pin the .NET
SDK version instead of hardcoding it.

Documentation:
- Add FAQ entry describing DLL injection issues and mitigation steps in
the Chinese manual.

</details>
2026-05-05 14:47:10 +08:00
github-actions[bot]
4e35863be0 docs: Auto Update Changelogs of v6.9.2 (#16474)
* docs: Auto Generate Changelog of Release v6.9.2

* docs: changelog

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-05-05 14:46:59 +08:00
ocsin1
9d5ab6d7c5 docs: 添加 DLL 注入问题解决方案并优化 FAQ 描述 (#16404)
* docs: 添加 DLL 注入问题解决方案并优化 FAQ 描述

* docs: 大小写和 pangu

修正了 MAA 启动时 DLL 注入问题的描述,更新了链接格式。

^以上 Commit Message 是 Copilot 帮我写的

---------

Co-authored-by: Rbqwow <55343783+Rbqwow@users.noreply.github.com>
2026-05-05 09:52:39 +08:00
github-actions[bot]
469c1e670c chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25344285069
[skip changelog]
2026-05-04 21:25:03 +00:00
status102
c4c15ef103 rft: 剿灭入口检测支持代理卡耗尽情况 2026-05-05 05:01:59 +08:00
status102
3c20e21182 ci: 限定.Net SDK为10.0.203 2026-05-05 04:03:08 +08:00
status102
9a2d43ca7e fix: 开始唤醒流程 2026-05-05 03:27:45 +08:00
uye
f831d19c57 Release v6.9.1 (#16433)
## Summary by Sourcery

强化安装/更新安全检查,改进更新包处理和确认流程,优化自动公招、药剂使用、肉鸽以及副驾驶行为,并更新构建工具链与集成文档。

New Features:
- 为完整更新包新增手动确认流程,包括显示计划执行路径,并可复用用于本地丢弃包的检查结果。
- 为需要基于包名执行 ADB 命令的连接引入按实例配置的客户端类型选项。

Bug Fixes:
- 防止从不受支持的安装位置运行或更新,例如磁盘根目录、临时文件夹、Windows 和常见程序目录。
- 修复自动公招循环逻辑,不再统计或重试被跳过的槽位,并区分已确认、已跳过和失败的招募尝试。
- 修正药剂计数日志记录、理智 OCR 处理,以及对不过期药剂的优先级逻辑。
- 修复肉鸽支援干员计时器解析和投资上限比较逻辑。
- 确保精英等级分析在检测失败时回退到精英 0,并在视野矩形校正中防范空 ROI。
- 调整启动任务顺序,使账号切换只在启动成功后执行。
- 在使用附加的 PC 客户端窗口时跳过外部报告上传,并通过连接配置对某些依赖客户端类型的命令加以限制。
- 修复 Foldartal 获取中对 foldartal 类型过滤条件的问题,以及像素分析器灰度上限设置器。

Enhancements:
- 允许通过可复用的检查结果对本地完整更新包进行检查和注册,并在完整更新过程中保留额外的资源目录。
- 改进 WPF GUI 中与战斗相关的日志与命名一致性(理智/战斗报告、即将过期药剂日志、客户端类型处理)。
- 提高副驾驶与多副驾驶导航和停止任务的稳定性,加入新的“等待动作结束”行为,并增加重试次数。

Build:
- 增强本地安装脚本,支持并行构建、.NET 发布选项、通过 nbeauty2 进行资源补丁处理以及更好的错误处理。

CI:
- 更新资源更新工作流,以使用最新版本的 wait-for-jobs action。

Documentation:
- 在所有支持的语言的集成协议文档中记录新的 ClientType 实例选项。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Harden installation/update safety checks, improve update package
handling and confirmations, refine auto-recruit, medicine usage,
roguelike, and copilot behaviors, and update build tooling and
integration docs.

New Features:
- Add manual confirmation flow for full update packages, including
planned path display and reuse for dropped local packages.
- Introduce per-instance client type option for connections that need
package-name-aware ADB commands.

Bug Fixes:
- Prevent running or updating from unsupported install locations such as
drive roots, temp folders, Windows and common program directories.
- Fix auto-recruit loop to not count or retry skipped slots and
distinguish confirmed, skipped, and failed recruit attempts.
- Correct medicine counter logging, sanity OCR handling, and
non-expiring medicine prioritization logic.
- Fix roguelike support recruit timer parsing and investment limit
comparison logic.
- Ensure elite level analysis falls back to elite 0 when detection
fails, and guard against empty ROIs in vision rect correction.
- Adjust startup task sequencing so account switching runs only after
startup succeeds.
- Skip external report uploads when using attached PC client windows,
and gate certain client-type-dependent commands by connection config.
- Fix Foldartal gain foldartal-type filtering condition and pixel
analyzer gray upper bound setter.

Enhancements:
- Allow local full update packages to be inspected and registered via a
reusable inspection result, and preserve additional asset directories
during full updates.
- Improve fight-related logging and naming consistency in the WPF GUI
(sanity/fight reports, expiring medicine logs, client type handling).
- Increase robustness of copilot and multi-copilot navigation and stop
tasks with new wait-until-end-of-action behavior and higher retry
counts.

Build:
- Enhance local-install script with parallel builds, .NET publish
options, resource patching via nbeauty2, and better error handling.

CI:
- Update resource update workflow to use the latest version of the
wait-for-jobs action.

Documentation:
- Document the new ClientType instance option in integration protocol
docs for all supported languages.

</details>

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

强化安装/更新安全检查,改进更新包处理和确认流程,优化自动公招、药剂使用、肉鸽以及副驾驶行为,并更新构建工具链与集成文档。

New Features:
- 为完整更新包新增手动确认流程,包括显示计划执行路径,并可复用用于本地丢弃包的检查结果。
- 为需要基于包名执行 ADB 命令的连接引入按实例配置的客户端类型选项。

Bug Fixes:
- 防止从不受支持的安装位置运行或更新,例如磁盘根目录、临时文件夹、Windows 和常见程序目录。
- 修复自动公招循环逻辑,不再统计或重试被跳过的槽位,并区分已确认、已跳过和失败的招募尝试。
- 修正药剂计数日志记录、理智 OCR 处理,以及对不过期药剂的优先级逻辑。
- 修复肉鸽支援干员计时器解析和投资上限比较逻辑。
- 确保精英等级分析在检测失败时回退到精英 0,并在视野矩形校正中防范空 ROI。
- 调整启动任务顺序,使账号切换只在启动成功后执行。
- 在使用附加的 PC 客户端窗口时跳过外部报告上传,并通过连接配置对某些依赖客户端类型的命令加以限制。
- 修复 Foldartal 获取中对 foldartal 类型过滤条件的问题,以及像素分析器灰度上限设置器。

Enhancements:
- 允许通过可复用的检查结果对本地完整更新包进行检查和注册,并在完整更新过程中保留额外的资源目录。
- 改进 WPF GUI 中与战斗相关的日志与命名一致性(理智/战斗报告、即将过期药剂日志、客户端类型处理)。
- 提高副驾驶与多副驾驶导航和停止任务的稳定性,加入新的“等待动作结束”行为,并增加重试次数。

Build:
- 增强本地安装脚本,支持并行构建、.NET 发布选项、通过 nbeauty2 进行资源补丁处理以及更好的错误处理。

CI:
- 更新资源更新工作流,以使用最新版本的 wait-for-jobs action。

Documentation:
- 在所有支持的语言的集成协议文档中记录新的 ClientType 实例选项。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Harden installation/update safety checks, improve update package
handling and confirmations, refine auto-recruit, medicine usage,
roguelike, and copilot behaviors, and update build tooling and
integration docs.

New Features:
- Add manual confirmation flow for full update packages, including
planned path display and reuse for dropped local packages.
- Introduce per-instance client type option for connections that need
package-name-aware ADB commands.

Bug Fixes:
- Prevent running or updating from unsupported install locations such as
drive roots, temp folders, Windows and common program directories.
- Fix auto-recruit loop to not count or retry skipped slots and
distinguish confirmed, skipped, and failed recruit attempts.
- Correct medicine counter logging, sanity OCR handling, and
non-expiring medicine prioritization logic.
- Fix roguelike support recruit timer parsing and investment limit
comparison logic.
- Ensure elite level analysis falls back to elite 0 when detection
fails, and guard against empty ROIs in vision rect correction.
- Adjust startup task sequencing so account switching runs only after
startup succeeds.
- Skip external report uploads when using attached PC client windows,
and gate certain client-type-dependent commands by connection config.
- Fix Foldartal gain foldartal-type filtering condition and pixel
analyzer gray upper bound setter.

Enhancements:
- Allow local full update packages to be inspected and registered via a
reusable inspection result, and preserve additional asset directories
during full updates.
- Improve fight-related logging and naming consistency in the WPF GUI
(sanity/fight reports, expiring medicine logs, client type handling).
- Increase robustness of copilot and multi-copilot navigation and stop
tasks with new wait-until-end-of-action behavior and higher retry
counts.

Build:
- Enhance local-install script with parallel builds, .NET publish
options, resource patching via nbeauty2, and better error handling.

CI:
- Update resource update workflow to use the latest version of the
wait-for-jobs action.

Documentation:
- Document the new ClientType instance option in integration protocol
docs for all supported languages.

</details>

</details>
2026-05-05 02:16:43 +08:00
github-actions[bot]
d345466992 docs: Auto Update Changelogs of v6.9.1 (#16434)
* docs: Auto Generate Changelog of Release v6.9.1

* docs: Update CHANGELOG for versions 6.9.0 and 6.9.1

Add detailed highlights and improvements for version 6.9.1 and 6.9.0, including new features, fixes, and documentation updates.

* docs: Remove version 6.9.0 entry from CHANGELOG

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-05-05 02:15:26 +08:00
status102
4dc9a4ed27 chore: rename 2026-05-05 01:52:13 +08:00
Status102
736bab5427 rft: 重构战斗失败识别, 顺带支持沙盘战斗结束 (#16449) 2026-05-05 01:51:02 +08:00
status102
a8ceb64f16 fix: 理智药识别支持3位数库存 2026-05-05 01:49:52 +08:00
github-actions[bot]
3d4a3eb578 chore: Auto Update Game Resources - 2026-05-04
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25333746690

[skip changelog]
2026-05-04 17:40:48 +00:00
status102
38494fa461 perf: 给WSA也加个 2026-05-05 01:31:16 +08:00
status102
e3570d17e8 fix(wpf): 仅在应用宝连接时额外指定InstanceOption级的ClientType 2026-05-05 01:27:40 +08:00
uye
4c9c1d12ce feat: 增加使用完整包更新时的强制提示,安装在根目录时禁止启动与更新 (#16435)
* feat: 增加使用完整包更新时的强制提示

* feat: 安装在根目录时阻止启动与更新

* feat: 更新检测排除 achievement 与 background

* perf: 优化日志记录,优化根目录判断逻辑

* feat: 禁止在部分特殊目录的根目录启动

* chore: warning

* perf: 优化本地安装脚本

* perf: 优化 temp 文件夹检测
2026-05-05 01:03:33 +08:00
Roland125
a0588e7da6 fix: 绿票商店稳定性提升 (#16369)
fix: 添加1层ocr识别失败时备用逻辑
fix:2层只购买公招券和单抽券
2026-05-05 01:01:56 +08:00
uye
0404959bd1 fix: 调整信用商店识别区域,修复 4 位数信用识别问题
close #16395

Co-authored-by: ZiyinLin <xuanbing1464129430@gmail.com>
2026-05-05 00:55:52 +08:00
status102
a387d5f8a4 perf: 自动编队Elite 图标匹配失败时认为elite = 0 2026-05-04 23:25:09 +08:00
uye
d913335886 fix: 编队时无精英化的干员练度会被当成 <-1, -1>
fix: #16464
2026-05-04 23:07:38 +08:00
Roland125
08f71fcfc0 fix: 修改recruit_one的返回值,适配更精细的招募计数(#16355) (#16371) 2026-05-04 22:53:04 +08:00
uye
cac4c27bbc feat: pc 跳过数据上报 2026-05-04 20:40:02 +08:00
status102
3ef75d587c chore: remove debug code 2026-05-04 20:19:20 +08:00
Roland125
4a14245283 fix: 修复剿灭结算时,识别不到合成玉基线 (#16460)
<img width="508" height="175" alt="FABI(C}_VIB}7@N5KI51H R"
src="https://github.com/user-attachments/assets/1bb987c5-d0cc-41cd-92da-d31045490028"
/>
这是报告者的掉落图

<img width="630" height="166" alt="628X1BM7GI6$8 4(T%2}Q$0"
src="https://github.com/user-attachments/assets/8ecc8d6d-f44b-4540-93bd-8b73ef18f854"
/>
这是我本机的掉落图

明显看得出我本机的图,报酬二字上方那根线亮一些。

由于在我本机无法复现识别BUG,所以我只能用理论计算值来推断一个阈值。

根据反馈者的图提取出来的RGB值,算法计算出来的灰度是38.7(左)/44(右)。

均低于45的阈值,所以不可能有100像素长的线,于是合成玉基线被过滤掉了。

识别不到基线就不会识别对应的掉落物,就会触发无合成玉掉落导致的退出。

## Summary by Sourcery

将针对湮灭阶段的可选掉落识别处理置于仅调试用的宏之后进行控制,并在启用时将其接入自定义任务。

Enhancements:
- 当启用调试宏时,允许 `StageDropsTaskPlugin` 响应通用的动作结束任务。
- 在 `CustomTask` 中启用可选的 `StageDropsTaskPlugin` 注册,用于调试掉落识别问题。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Gate optional drop-recognition handling for annihilation stages behind a
debug-only macro and wire it into custom tasks when enabled.

Enhancements:
- Allow StageDropsTaskPlugin to respond to generic end-of-action tasks
when a debug macro is enabled.
- Enable optional registration of StageDropsTaskPlugin in CustomTask for
debugging drop recognition issues.

</details>
2026-05-04 19:35:35 +08:00
status102
b3122fbd94 fix: 肉鸽投资存款检测校验数据 2026-05-04 19:15:20 +08:00
uye
5445962a7b docs: 补全连接阶段的 ClientType 参数说明 2026-05-04 19:13:52 +08:00
Roland125
20d257f6f4 fix: 更新剿灭入口的图片资源 (#16458)
* fix:更新剿灭入口的图片资源

* fix: 重新截

---------

Co-authored-by: Saratoga-Official <1819530756@qq.com>
2026-05-04 13:43:38 +08:00
Saratoga-Official
7cc6cbf5ce fix: 凯尔希识别
fix #16455
2026-05-04 10:05:17 +08:00
github-actions[bot]
8f425bebf1 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25290991448
[skip changelog]
2026-05-03 21:16:07 +00:00
uye
aaa0818c45 fix: 修复设置指引-连接设置-每次重新检测的提示块隐藏错误 2026-05-04 03:26:50 +08:00
status102
2cb0be8630 fix: typo 2026-05-04 01:52:44 +08:00
status102
4ff7c5f01d fix: 自动战斗多作业模式导航retry_time 2026-05-04 00:59:13 +08:00
status102
0a5b8e66a7 perf: 理智药到期时间OCR高度增加 2026-05-04 00:58:35 +08:00
fireflysentinel
e644e10d80 fix: PixelAnalyzer::set_gray_ub 复制粘贴笔误写到了 m_ub (cv::Scalar) 而非 m_gray_ub
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: fireflysentinel <phoenix1203@uchicago.edu>
2026-05-03 12:45:53 +08:00
fireflysentinel
c75eeb93bc fix: RoguelikeRecruitSupportAnalyzer::analyze HH:MM:SS substr 偏移导致 hour 永为 0、sec 严重低估
```cpp
boost::regex_search(result.text, match_results, boost::regex("[0-9]{2}:[0-9]{2}:[0-9]{2}"))
const auto& match_str = match_results[0].str();              // 8 字节 "HH:MM:SS"
const auto& hour = std::atoi(match_str.substr(2).c_str());   // ":34:56" → 0
const auto& min  = std::atoi(match_str.substr(3, 2).c_str());// "34" ✓(碰巧)
const auto& sec  = std::atoi(match_str.substr(7, 2).c_str());// "6"   → 个位
```

`"12:34:56"` 字节索引 `0=1, 1=2, 2=:, 3=3, 4=4, 5=:, 6=5, 7=6`:
- `substr(2)` 从冒号开始,atoi 立即停 → `hour = 0`
- `substr(3, 2)` 偶然命中 `"34"` → `min = 34` ✓
- `substr(7, 2)` 只有最后 1 字节 `"6"` → `sec` 是个位数字而非两位

正确偏移应为 `(0,2)`、`(3,2)`、`(6,2)`。

不是游戏机制:regex 用的就是 `[0-9]{2}:[0-9]{2}:[0-9]{2}`(ASCII 半角冒号),
匹配成功时 `match_str` 必然是严格 8 字节 `HH:MM:SS` 格式;如果游戏改成
`12时34分56秒` 这种本地化格式,regex 根本不会匹配,函数会在 line 142 提前
`return false`,根本走不到这段 substr 代码。所以 substr 的偏移只看 8 字节
ASCII 格式本身。

实际场景:招募刷新 CD 比如 `01:23:45`,当前算 `0*3600 + 23*60 + 5 = 1385`
秒,正确应是 `5025` 秒——少算近 1 小时。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: fireflysentinel <phoenix1203@uchicago.edu>
2026-05-03 12:44:56 +08:00
fireflysentinel
ef0e4958bf fix: RoguelikeFoldartalGainTaskPlugin::gain_stage_award || 链恒为 true 导致装备误入密文板列表; correct_rect计算顺序
```cpp
if (foldartal != "雷达" || "留声机" || "景观" || "LUD" || "踢脚" || "自走车")
```

C++ 把这串解析成 `(foldartal != "雷达") || ("留声机") || ("景观") || ...`,
后面 5 个字符串字面量是 `const char*`,非空指针视为 `true`,整个表达式恒真。
注释 `// 深入调查调查装备也使用同一个入口,先分类` 已经说明意图是排除这 6
个装备名,不让它们被 `gain_foldartal` 当密文板存入 `foldartal_list`。

不是游戏机制:这 6 个名字是萨米肉鸽"深入调查"事件的装备奖励(不是密文板),
跟密文板使用流程不应该混在一起;注释自陈"先分类"明确意图是过滤,
不是有意把所有 OCR 文字都收进来。

改成 `&&` 链做逐项排除。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: fireflysentinel <phoenix1203@uchicago.edu>
2026-05-03 11:37:04 +08:00
status102
cfa3fedb0c fix: correct_rect在rect负方向完全越界时依旧输出非0宽度结果 2026-05-03 11:13:21 +08:00
status102
3b909f3959 chore: log迁移
[skip changelog]
2026-05-03 03:31:40 +08:00
Saratoga-Official
6d18eaa47c fix: GALLUS²识别 2026-05-03 02:31:23 +08:00
dependabot[bot]
0518c61e87 ci: bump yogeshlonkar/wait-for-jobs from 0 to 1 in /.github/workflows in the github-actions group (#16431)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-02 22:48:32 +08:00
status102
925ff331a1 fix: 临期理智药使用输出遗漏时间 2026-05-02 20:40:55 +08:00
status102
65a5566c9e fix: 理智药剩余日期识别前缀非数字字符移除 2026-05-02 19:41:53 +08:00
status102
a4e2b12e06 perf: 使用临期药品时, 如果存在时效识别失败的药品则取消本次吃药 2026-05-02 18:58:23 +08:00
status102
a7548d7612 fix: 移除不再生效的日服理智药roi覆盖 2026-05-02 15:02:57 +08:00
status102
a5d95e5fbe fix: 开始唤醒过早开始切换账号 2026-05-02 15:02:57 +08:00
1b2c
e83e49f61b fix: 部分场景下无法自动启动游戏 (#16422)
943a798b38 在 AdbConnectionContext::replace_cmd 的统一替换表中加入了 [PackageName],
导致 m_adb.start / m_adb.stop 在 connect 阶段就被提前替换。当调用方未通过
AsstSetInstanceOption(ClientType, ...) 设置 client_type 时(如 maa-cli 等不感知该
新选项的第三方调用方),m_conn_ctx.package_name 为空字符串,m_adb.start 中的
[PackageName] 被替换为空,后续 start_game(client_type) 内的运行时替换沦为 no-op,
最终启动命令缺失包名导致启动游戏失败。

将 [PackageName] 从统一替换表移除,恢复其作为运行时参数的语义;connect 阶段唯一
需要 [PackageName] 的位置(Androws 的 displayId 查询)改为就地显式替换。

Close #16392

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 13:24:54 +08:00
uye
bdffc8cd1a Release v6.9.0 (#16400)
## Summary by Sourcery

为 v6.9.0 版本发布准备 UI 样式和设置 XAML 文件。

增强内容:
- 更新 `CheckComboBox` 共享样式资源。
- 调整外部通知设置用户控件的布局或绑定。
- 调整 Roguelike 任务队列设置用户控件的布局或绑定。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Prepare UI styles and settings XAML files for the v6.9.0 release.

Enhancements:
- Update CheckComboBox shared style resources.
- Adjust external notification settings user control layout or bindings.
- Adjust roguelike task queue settings user control layout or bindings.

</details>
2026-05-02 12:14:58 +08:00
uye
9227357ea7 docs: Highlight 2026-05-02 12:13:46 +08:00
uye
540c8acbf5 perf: 优化伤害遮挡下的技能图标识别 2026-05-02 11:33:42 +08:00
status102
1c05ff9bc8 Revert "perf: 自动编队预编队后检查选中情况"
This reverts commit 2a5cdf24e7.
2026-05-02 02:49:49 +08:00
status102
6c6117ddb2 feat: 进入快捷编队页后校验清空状态 2026-05-02 02:49:49 +08:00
uye
013c899d34 perf: 优化 DEBUG_skill_ready 判断 2026-05-02 00:40:06 +08:00
uye
0df451b7d9 chore: 技能得分低也需要最小截图间隔 2026-05-01 23:47:11 +08:00
github-actions[bot]
0fab39caff chore: Auto Update Game Resources - 2026-05-01
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25220762971

[skip changelog]
2026-05-01 15:40:16 +00:00
uye
73f8ebb8f1 docs: changelog 2026-05-01 23:29:40 +08:00
uye
a99294ef90 fix: 生息演算 5.1 更新后无法使用无存档刷分 (#16402)
还没测过,不知道好不好使

## Summary by Sourcery

错误修复:
- 在 5.1 更新之后,恢复对在生息演算中进行无存档刷分运行的支持。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Bug Fixes:
- Restore support for running no-save score farming in 生息演算 after the
5.1 update.

</details>
2026-05-01 23:03:55 +08:00
Constrat
e884491a93 perf: optimize templates yostarkr SPA 2026-05-01 13:28:59 +02:00
Constrat
df0e271611 chore: YostarEN SPA 2026-05-01 13:28:46 +02:00
github-actions[bot]
edd564088b chore: Auto Update Game Resources - 2026-05-01
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25208910288

[skip changelog]
2026-05-01 09:02:14 +00:00
github-actions[bot]
2182951ed0 chore: Auto Update Game Resources - 2026-05-01
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25205158187

[skip changelog]
2026-05-01 06:33:13 +00:00
uye
cc0163edd9 ci: 调整资源更新环境 2026-05-01 14:31:27 +08:00
uye
a6523b01d5 ci: 任务排序支持 jsonc 2026-05-01 14:26:20 +08:00
uye
a8245441a3 chore: 统一 CheckComboBox 样式 2026-05-01 13:35:10 +08:00
uye
a34da437d0 fix: CheckComboBox 不显示标题 2026-05-01 13:24:22 +08:00
uye
094ff47873 fix: 3 星 tag 标题显示异常 2026-05-01 13:24:21 +08:00
uye
ffd98e800e Release v6.9.0-beta.3 (#16397)
## Summary by Sourcery

改进战场技能就绪状态分类流水线与调试图像处理逻辑,并在无法获取主模块信息时,使 BlueStacks 模拟器的终止流程更加健壮。

Bug 修复:
- 修复技能就绪状态分类中的 ONNX 输入张量形状错误问题,该问题将宽度和高度的顺序颠倒使用。
- 确保对技能就绪调试保存状态的并发访问是同步的,以避免在运行多个分类器时出现数据竞争。
- 允许在无法获取进程主模块或其文件路径时,仍可通过基于端口的逻辑继续关闭 BlueStacks 模拟器。

增强改进:
- 调整战场技能就绪分类器中的图像缩放与归一化逻辑,使其更好地匹配通道布局和模型预期。
- 扩展技能就绪调试捕获能力,使低置信度预测和长时间运行的会话能够更可靠地被捕获。
- 为技能就绪引入集中式调试图像保存机制,对每个目录使用队列,并自动清理较旧文件,以限制保留图像的数量上限。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Improve battlefield skill readiness classification pipeline and debug
image handling, and make BlueStacks emulator termination more robust
when main module information is unavailable.

Bug Fixes:
- Fix incorrect ONNX input tensor shape for skill readiness
classification that used width/height in reversed order.
- Ensure concurrent access to skill readiness debug saving state is
synchronized to avoid data races when running multiple classifiers.
- Allow BlueStacks emulator shutdown to proceed via port-based logic
even when the process main module or its file path cannot be retrieved.

Enhancements:
- Adjust image resizing and normalization logic in the battlefield skill
readiness classifier to better match channel layout and model
expectations.
- Extend skill readiness debug capture so that low-confidence
predictions and long‑running sessions are captured more reliably.
- Introduce centralized debug image saving for skill readiness with
per-directory queues and automatic cleanup of older files to cap
retained images.

</details>
2026-05-01 13:01:22 +08:00
uye
d504e074ce docs: Update CHANGELOG for v6.9.0-beta.3 release 2026-05-01 12:58:05 +08:00
uye
c7d1fe686d fix: 修复小游戏列表中下拉框偶现无法展开的问题 2026-05-01 12:57:42 +08:00
Shawn Sun
cf30d71067 fix: 修复蓝叠模拟器关闭失败的问题 (#16388)
fix: 修复模拟器关闭失败的问题

优化 EmulatorHelper 逻辑并升级 MailKit 依赖

优化了 EmulatorHelper 的异常处理和分支逻辑,提升对不同 BlueStacks 版本的识别与日志记录。将 MailKit 包从 4.15.1 升级至 4.16.0。
2026-05-01 12:43:30 +08:00
Copilot
2216175e5c feat: 适配七周年许愿墙 2026-05-01 12:24:29 +08:00
uye
a91286f41d perf: 大幅提升技能就绪识别准确率,优化技能截图保存策略 (#16393)
* feat: 技能截图默认保存 50 张,如存在 DEBUG_skill_ready.txt 时无限存储

* feat: maa 迎来大变

* fix: 修复技能截图保存的目录处理与并发安全

* perf: 写文件在锁外执行,init 在锁内执行
2026-05-01 12:14:12 +08:00
HX3N
2061050857 chore: YostarKR MiniGame SPA (#16364)
* i18n: kr

* chore: placeholder

* chore: template

* chore: remove GiveUp.png
2026-04-30 13:40:16 +02:00
Rememorio
a20351fcf1 fix: lower YoStarJP office mini threshold (#16390)
Made-with: Cursor
2026-04-30 16:25:04 +08:00
github-actions[bot]
84152a88f3 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25134605560
[skip changelog]
2026-04-29 21:24:20 +00:00
uye
9adf423aa4 Release v6.9.0-beta.2 (#16378)
## Summary by Sourcery

没有任何实际的代码或配置更改;此发布提交仅触及 `tasks.json` 资源文件,但未更改其内容。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

No effective code or configuration changes; this release commit only
touches the tasks.json resource file without altering its contents.

</details>
2026-04-30 00:30:15 +08:00
uye
426c964e59 docs: Add v6.9.0-beta.2 to CHANGELOG 2026-04-30 00:29:26 +08:00
uye
b1659e0a70 fix: 升级结算时闪退 2026-04-30 00:22:12 +08:00
uye
ef614156d0 Release v6.9.0-beta.1 (#16373)
## Summary by Sourcery

为更新程序提供更丰富的用户体验,改进连接与控制器行为,支持更多模拟器和客户端配置,并进行多项稳定性与文档更新。

New Features:
- 为外部更新程序新增 Windows 进度 UI,支持深色模式,包含双语状态文本和失败提示。
- 为更新程序新增可选的控制台输出,以及一个面向用户的设置,用于在委托更新时显示更新器控制台。
- 允许二次启动 MAA 时,通过命名事件激活已有实例窗口,而不是启动重复进程。
- 通过新的客户端类型实例选项支持解析客户端特定的 Android 包名,并从 WPF 前端一路接入核心控制器。
- 新增对腾讯安桌(Tencent Androws)模拟器的检测与配置支持,包括 ADB 路径自动发现以及所有支持语言的文档更新。
- 在关卡掉落识别与 UI 日志中暴露剿灭(Annihilation)每周进度和基于合成玉(orundum)的停止条件。

Bug Fixes:
- 修复 OCR 包标签路径比较问题,确保在加载模型时可以正确拾取已有的识别标签文件。
- 通过检查选项值而非选项数量,修正肉鸽遭遇回调校验逻辑。
- 通过以干员名称而非格子位置作为键,防止错误复用上一次技能时间戳。
- 确保 Minitouch 使用当前连接上下文(包括事件 ID 和显示 ID),而不是在本地重建 ADB 状态。
- 正确处理理智上限提升至新最大值的情况,避免将合法数值误判为超出范围。
- 避免在 C API 封装中在销毁阶段对同一个 AsstHandle 指针进行二次销毁。
- 通过使用解析后的坐标而不是逻辑点对象,修复 PlayTools 的滑动起点。
- 确保在识别标签路径更新时,只在标签文件真正变化时才重置 OCR 识别器。
- 仅在找到匹配任务时才更新最后任务名,保持进程任务状态一致性。

Enhancements:
- 改进更新程序日志,可选镜像输出到控制台,提供更结构化的消息以及双语控制台提示。
- 新增无模式、跟随主题的更新进度窗口,支持逐文件进度和高层状态阶段,并集成到更新流程中。
- 收紧多实例处理逻辑,引入哈希化的单实例键,并在退出时清理激活监听资源。
- 扩展 ADB 连接上下文,缓存配置、显示 ID、输入事件 ID 以及 netcat 地址/端口,以便在各控制器中复用。
- 为 Win32Controller 实现优雅的 stop_game:先发送 WM_CLOSE,如有需要再回退到进程终止。
- 优化后置动作行为,使 AttachWindow 模式在禁用不支持的 Android 端动作的同时保持 PC 端选项一致。
- 改进剿灭奖励处理逻辑,要求必定掉落合成玉后才继续,并在回调中暴露每周进度。
- 调整 copilot schema 文档和 minimum_required 版本说明,明确动作类型的语言支持情况。
- 更新多项任务与资源定义,包括 UI 主题任务布局、战斗数据、格子位置以及小游戏任务。
- 改进调试工具,将生成的 UI 主题图片重定向到正确的模板子目录中。

Build:
- 将更新程序链接到额外的 Windows 库(`comctl32`、`advapi32`、`dwmapi`),以支持新的进度 UI
和主题检测。

CI:
- 将 macOS 签名与配置相关的 GitHub Actions 升级到较新的主版本,用于发布构建。

Documentation:
- 在所有支持语言中补充腾讯应用商店 / 安桌模拟器的支持说明、连接细节与 ADB 配置文档。
- 明确 copilot schema JSON 的使用方式、版本策略以及动作类型的语言限制。
- 整理 GitHub issue 模板,移除过时占位内容,并明确日志上传说明。

Chores:
- 更新物品、任务、版本和格子位置等资源 JSON 文件,以匹配最新的游戏内容和 UI 主题。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Add richer updater UX, improved connection and controller behavior,
support for additional emulator and client configurations, and various
stability and documentation updates.

New Features:
- Introduce a Windows progress UI with dark mode support for the
external updater, including bilingual status text and failure prompts.
- Add optional console output for the updater and a user-facing setting
to show the updater console during delegated updates.
- Allow secondary MAA launches to activate the existing instance window
instead of starting a duplicate process via a named event.
- Support resolving client-specific Android package names via a new
client type instance option wired from the WPF front-end into the core
controller.
- Add detection and configuration support for Tencent Androws emulator,
including ADB path discovery and documentation updates for all supported
languages.
- Expose annihilation weekly progress and orundum-based stop conditions
in stage drop recognition and UI logging.

Bug Fixes:
- Fix OCR pack label path comparison so that existing recognition label
files are correctly picked up when loading models.
- Correct roguelike encounter callback validation by checking the choice
value instead of the option count.
- Prevent incorrect reuse of last-skill timestamps by keying battlefield
cooldowns by operator name rather than tile location.
- Ensure Minitouch uses the current connection context (including event
and display IDs) instead of a locally reconstructed ADB state.
- Handle sanity cap increases up to the new maximum to avoid
misclassifying valid values as out-of-range.
- Avoid destroying an AsstHandle pointer twice on teardown in the C API
wrapper.
- Fix PlayTools swipe starting point by using the resolved coordinates
instead of the logical point object.
- Ensure recognition label path updates only reset the OCR recognizer
when the label file actually changes.
- Keep process task state consistent by only updating last task names
when a match is found.

Enhancements:
- Improve updater logging to optionally mirror to the console with
better structured messages and bilingual console prompts.
- Add a modeless, theme-aware updater progress window with per-file
progress and high-level status phases, integrated into the update flow.
- Tighten multiple-instance handling by introducing a hashed
single-instance key and cleaning up activation listener resources on
exit.
- Extend ADB connection context to cache configuration, display ID,
input event ID, and netcat address/port for reuse across controllers.
- Implement graceful stop_game for Win32Controller by sending WM_CLOSE
and falling back to process termination if needed.
- Refine post-action behavior so AttachWindow mode disables unsupported
Android-side actions while keeping PC-side options consistent.
- Improve annihilation reward handling by requiring orundum drops before
continuing and exposing weekly process in callbacks.
- Adjust copilot schema docs and minimum_required version guidance,
clarifying language support for action types.
- Update various task and resource definitions, including UI theme task
layouts, battle data, tile positions, and mini-game tasks.
- Improve debug tooling by redirecting generated UI theme images into
the correct template subdirectory.

Build:
- Link the updater against additional Windows libraries (comctl32,
advapi32, dwmapi) required for the new progress UI and theme detection.

CI:
- Bump macOS signing and provisioning GitHub Actions to newer major
versions for release builds.

Documentation:
- Document Tencent App Store/Androws emulator support, connection
details, and ADB configuration across all supported languages.
- Clarify copilot schema JSON usage, versioning, and language
constraints for action types.
- Tidy GitHub issue templates by removing outdated placeholders and
clarifying log upload instructions.

Chores:
- Update resource JSON files for items, tasks, versions, and tile
positions to match the latest game content and UI themes.

</details>
2026-04-29 22:03:25 +08:00
github-actions[bot]
d56ecf73b9 docs: Auto Update Changelogs of v6.9.0-beta.1 (#16374)
* docs: Auto Generate Changelog of Release v6.9.0-beta.1

* docs: Update CHANGELOG for v6.9.0-beta.1

Updated changelog for version 6.9.0-beta.1 with new features, improvements, fixes, and documentation updates.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>
2026-04-29 21:58:01 +08:00
uye
b4429c4b6f feat: 重复启动时通过跨进程事件激活主窗口而非弹窗警告 (#16363)
* feat: 重复启动时通过跨进程事件激活主窗口而非弹窗警告

* perf: GetSingleInstanceKey 改用路径哈希
2026-04-29 21:33:08 +08:00
github-actions[bot]
719d04f53d chore: Auto Templates Optimization
Triggered by 5f2d547998

[skip changelog]
2026-04-29 13:22:47 +00:00
Manicsteiner
5f2d547998 chore: YostarJP MiniGame SPA (#16372) 2026-04-29 21:22:22 +08:00
Roland125
e9d8f6a844 fix: 修复剿灭后出现升级界面,导致无法继续任务的问题(#16255) (#16370) 2026-04-29 21:20:35 +08:00
status102
4215a05371 perf: 合并简化任务状态 2026-04-29 19:44:22 +08:00
github-actions[bot]
dd7ec5cd20 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25078413821
[skip changelog]
2026-04-28 21:24:51 +00:00
uye
a62258f74e feat: 在关卡没解锁代理/剿灭没使用全权代理时报错停止 (#16357)
* feat: 在关卡没解锁代理/剿灭没使用全权代理时报错停止

* chore: 添加最大循环次数
2026-04-28 23:45:24 +08:00
github-actions[bot]
de4476b545 chore: Auto Templates Optimization
Triggered by e6b3223e29

[skip changelog]
2026-04-28 12:13:55 +00:00
Roland125
e6b3223e29 feat: 增加 保存代理指挥记录 支持; 新增合成玉掉落检查, 0掉落结束 (#16356)
* fix: 增加在剿灭代理记录更新界面,点击确认按钮的任务和图片资源
fix: 增加剿灭模式下,对合成玉的掉落检测。不掉落合成玉时,结束战斗任务

* perf: 使用代理卡时不会更新记录

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>

---------

Co-authored-by: Status102 <102887808+status102@users.noreply.github.com>
2026-04-28 20:12:41 +08:00
github-actions[bot]
be77d7b1bc chore: Auto Update Game Resources - 2026-04-28
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25046601559

[skip changelog]
2026-04-28 10:04:06 +00:00
status102
34d1f8413a feat(wpf): 掉落物识别额外输出剿灭进度 2026-04-28 14:05:15 +08:00
status102
04a793e6ce rft: ProcessTask匹配命中状态更新统一化 2026-04-28 13:35:50 +08:00
status102
5619aefa10 fix: 干员使用技能间隔未能生效 2026-04-28 13:22:12 +08:00
github-actions[bot]
d2ee76d2f6 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/25020210469
[skip changelog]
2026-04-27 21:23:04 +00:00
uye
8f1b7fd087 feat: 新增 get_last_matched_task_name 方法;成功命中新节点时与 get_last_task_name 一致,在进入下一轮匹配后若未再命中新节点时,仍保留最近一次成功命中的任务名,避免误取空值 2026-04-28 00:49:06 +08:00
uye
ea22cbab4a chore: 支持打包日志文件后 GitHub 上传日志不再需要先关闭 MAA 2026-04-27 22:37:34 +08:00
dependabot[bot]
f733530b67 ci: bump the github-actions group in /.github/workflows with 2 updates (#16344)
Bumps the github-actions group in /.github/workflows with 2 updates: [apple-actions/import-codesign-certs](https://github.com/apple-actions/import-codesign-certs) and [apple-actions/download-provisioning-profiles](https://github.com/apple-actions/download-provisioning-profiles).


Updates `apple-actions/import-codesign-certs` from 6 to 7
- [Release notes](https://github.com/apple-actions/import-codesign-certs/releases)
- [Commits](https://github.com/apple-actions/import-codesign-certs/compare/v6...v7)

Updates `apple-actions/download-provisioning-profiles` from 5 to 6
- [Release notes](https://github.com/apple-actions/download-provisioning-profiles/releases)
- [Commits](https://github.com/apple-actions/download-provisioning-profiles/compare/v5...v6)

---
updated-dependencies:
- dependency-name: apple-actions/import-codesign-certs
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: apple-actions/download-provisioning-profiles
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-27 15:12:47 +08:00
github-actions[bot]
33885b1294 chore: Auto update by pre-commit hooks
https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/24967148430
[skip changelog]
2026-04-26 21:12:26 +00:00
uye
893793efff chore: 调整完整后 无其他 MAA 选项绑定逻辑,不再强制勾选退出模拟器 2026-04-27 02:02:13 +08:00
status102
8161976869 fix: 干员仓储识别手动指定术兔
临时修复
2026-04-27 01:37:56 +08:00
Jin Zhaonian
60cbc68e59 fear: PC 端支持 完成后退出明日方舟 (#16351)
* fix: 修复pc端任务完成后勾选自动关闭游戏但无法关闭的问题

* fix: IsWindow检查与WM_CLOSE关闭

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-27 01:36:19 +08:00
uye
b65b37fba8 chore: 调整选项 IsEnabled 2026-04-27 01:35:10 +08:00
Alex Gu
7d3f8bfa2d fix: 若干正确性问题修正(null check / race / clamp / retry 等 9 处) (#16332)
## 概述

代码 review 发现的一批正确性问题批量修正,都是 `src/MaaCore` 下单行 / 局部 logic 级别的
bug,彼此独立,按严重度从高到低逐条 commit。没有功能改动、没有 API 变化、没有 breaking behavior。

每个 commit 单独对应一条 bug,便于逐条 review 或按需
revert。下表也按严重度从高到低排序,附上「原问题」与「修法理由」。

### 发现来源

使用 Claude Code 新版 `/ultrareview` 多 agent review 扫了 `src/MaaCore` 源码(~58k
行),人工逐条核对后提 PR。另有 2 条(AvatarCacheManager 并发保护 / CopilotConfig
默认值语义)涉及设计决策或 breaking change,已单独提 issue 讨论,不在本 PR 内。

---

## Fix 列表(按严重度排序)

### 1. `Controller::back_to_home` 空指针解引用崩溃 — HIGH

**位置**:`src/MaaCore/Controller/Controller.cpp:137`

**原问题**:
```cpp
bool asst::Controller::back_to_home()
{
    m_controller->back_to_home();   // 无 null 检查
    return true;
}
```
未连接设备时 `m_controller == nullptr`,此处直接 segfault。同文件 `sync_params` /
`start_game` / `stop_game` / `click` 等所有公开方法都有 null 保护(前者用 `if
(!m_controller) return`,后者用 `CHECK_EXIST(m_controller, false)` 宏),**只有
`back_to_home` 漏了**。

**触发路径**:任务运行中 ADB 断连使 `m_controller` 被 reset 成 null → 调度走到"回主页"分支 → 崩溃。

**修法**:函数开头加 `CHECK_EXIST(m_controller,
false);`,与同文件其他方法保持一致。最小改动,零行为变化(未连接时 `back_to_home` 返回 `false` 而不是崩溃)。

---

### 2. `MumuExtras::screencap` reload 之后没有真正重试 — MEDIUM-HIGH

**位置**:`src/MaaCore/Controller/MumuExtras.cpp:54-83`

**原问题**:
```cpp
int ret = capture_display_func_(...);       // 第一次 capture
if (ret) {
    // Try reloading once before giving up.
    if (!reload()) { ... return std::nullopt; }
    if (ret) {                              // ← 检查的是同一个 ret,不是重试之后的
        LogError << "Failed to capture display, but reload before retrying capture was successful." ...;
        return std::nullopt;
    }
}
```
注释承诺"失败时 reload 后重试 capture",但第二个 `if (ret)` 检查的还是第一次调用写入的
`ret`,`capture_display_func_` **从未被重新调用过**。reload 成功或失败都必然返回
`std::nullopt`,注释里的"reload before retrying capture was
successful"日志其实**只是字面,retry 压根没发生**。

**后果**:MuMu 模拟器短暂 capture 失败(内存抖动 / 显示切换)时,原本 reload
应能恢复,但代码从不真正重试,上层看到的永远是「截图失败」。

**修法**:在两个 `if (ret)` 之间加上**真正的**重试:重新调用 `capture_display_func_` 并更新
`ret`。reload 可能改变设备状态,所以 `display_id` 也重新 `get_display_id()`
取一次。失败信息相应改为"Failed to capture display even after reload",语义准确。

---

### 3. `Controller` 中 `d_size` 被 `const static` 固化,分辨率变化后缩放错误 — MEDIUM

**位置**:`src/MaaCore/Controller/Controller.cpp:146` 和 `:438`(两处)

**原问题**:
```cpp
const static cv::Size d_size(m_scale_size.first, m_scale_size.second);
```
C++ 函数内 `static` 局部变量的初始化表达式**仅在第一次进入该函数时执行一次**。首次调用时 `m_scale_size`
的值被固化到 `d_size`,之后用户切换模拟器、改分辨率预设、连接新设备等导致 `m_scale_size` 变化时,**`d_size`
不会更新**。

**后果**:
- `cv::resize(..., d_size, ...)` 把图缩到错误的目标尺寸 → OCR / 模板匹配的坐标/尺寸都错
- 截图失败兜底路径 `m_cache_image = cv::Mat(d_size, CV_8UC3)` 也分配错误尺寸的空图
- 用户看到各种"识别不到 / 坐标偏移"但不崩溃,**只能通过重启 MaaCore 恢复**

**修法**:去掉 `static`,每次调用重新构造。`cv::Size` 就是两个
`int`,栈上构造基本无开销,不存在性能回归。两处都修。

---

### 4. `PlayToolsController::swipe` 起点钳制没有应用到 `toucher_down` —
MEDIUM-LOW

**位置**:`src/MaaCore/Controller/PlayToolsController.cpp:230`

**原问题**:
```cpp
int x1 = p1.x, y1 = p1.y;                          // 拷贝到局部变量
// ...
if (x1 < 0 || x1 >= width || y1 < 0 || y1 >= height) {
    x1 = std::clamp(x1, 0, width - 1);             // 只钳制了局部 x1/y1
    y1 = std::clamp(y1, 0, height - 1);
}
// ...
toucher_down(p1);                                  // ← 仍用原始的 const Point& p1
```
注释"起点不能在屏幕外,但是终点可以"已经说明了钳制意图,但钳制结果只存在局部 `x1/y1`,`toucher_down(p1)`
使用的还是未钳制的原始 `p1`。后续 `progressive_move` 用 `x1/y1` 所以中段 swipe 在屏幕内,**但首个
touch-down 事件发到屏幕外坐标**,iOS PlayTools 侧多半会被丢弃或忽略 → 整个手势无效。

**修法**:`toucher_down(p1)` → `toucher_down({ x1, y1 })`,用已钳制的坐标构造临时
`Point`。与同文件下方 `toucher_move({ x, y })` 的风格一致。

---

### 5. `Assistant::m_task_id` 非原子 static 导致跨实例数据竞争 — MEDIUM-LOW

**位置**:`src/MaaCore/Assistant.h:214`(声明)+
`src/MaaCore/Assistant.cpp:295-296`(使用)

**原问题**:
```cpp
// Assistant.h
inline static TaskId m_task_id = 0;                     // 进程级 static,非 atomic
mutable std::mutex m_mutex;                             // 实例级 mutex
inline static std::atomic<AsyncCallId> m_call_id = 0;   // 旁证:同文件另一个 static 是 atomic

// Assistant.cpp:295
std::unique_lock<std::mutex> lock(m_mutex);             // 锁的是当前实例的 mutex
int task_id = ++m_task_id;                              // 改的是进程共享的 static
```
`m_task_id` 是 static(**所有 Assistant 实例共享一个内存地址**),但 `m_mutex`
是每个实例各自的锁。两个不同实例并发 `++m_task_id` 时,各自 lock 各自的 mutex,彼此不互斥 ——
**数据竞争**,`++` 对非原子 `int` 是 RMW 三步,可能让两个实例拿到同一个 `task_id`。

单实例客户端(MaaWpfGui、MaaMacGui)触发不了;多实例 + 并发下任务的客户端(命令行批处理 / 自动化测试)会偶现任务 id
冲突,后续 `AsstSetTaskParams` / `AsstStop` 可能误中另一个实例的任务。

旁证:同文件 line 227 的另一个同类 static `m_call_id` 已经声明成
`std::atomic<AsyncCallId>`,一致性也对不上,显然是作者漏改。

**修法**:`TaskId m_task_id` → `std::atomic<TaskId>
m_task_id`。`++m_task_id` 靠 `std::atomic::operator++` 原子化,语法不变。`m_mutex`
原先是为紧跟的 `m_tasks_list.emplace_back` 服务的,继续保留。

---

### 6. `OcrPack::load` 复制粘贴导致 `rec_label` 变化检测用错字段 — LOW-MEDIUM

**位置**:`src/MaaCore/Config/Miscellaneous/OcrPack.cpp:61`

**原问题**:
```cpp
// 前两块都正确:当前保存路径 != 新路径 时才更新
if (exists(det_model_file) && m_det_model_path != det_model_file) { ... }
if (exists(rec_model_file) && m_rec_model_path != rec_model_file) { ... }
// 第三块:应该检查 m_rec_label_path,却写成了 m_rec_model_path
if (exists(rec_label_file) && m_rec_model_path != rec_label_file) {
    m_rec_label_path = rec_label_file;
    m_rec = nullptr;
}
```
模型路径以 `.onnx` 结尾,标签路径以 `.txt` 结尾,`m_rec_model_path != rec_label_file`
**恒为真**(只要标签文件存在)。结果每次调用 `load()` 都会:
- 无效地重新给 `m_rec_label_path` 赋同样的值
- 把 `m_rec` 置空 → 触发下一次 OCR 时 lazy 重载

不会导致正确性崩塌(`check_and_load` 路径会 lazy 重建
`m_rec`),但"路径没变则保留缓存"的设计目的完全失败,且多次 `load()` 会产生不必要的模型重载开销。

**修法**:`m_rec_model_path != rec_label_file` → `m_rec_label_path !=
rec_label_file`,与上面 `det` / `rec_model` 两块的模式对齐。

---

### 7. `RoguelikeStageEncounterConfig` `fallback_choices` 校验写错变量 — LOW


**位置**:`src/MaaCore/Config/Roguelike/RoguelikeStageEncounterConfig.cpp:77`

**原问题**:
```cpp
int option_num = pair_arr[0].as_integer();
if (option_num < 0) { ... return false; }               // 校验 option_num,OK
int choice = pair_arr[1].as_integer();
if (option_num < 0) {                                   // ← 重复检查 option_num
    Log.error(
        std::format(
            "RoguelikeEncounterConfig | callback choice for event {} with {} option(s) is less than zero",
            ...));
    return false;
}
```
错误信息本身已经说明是在校验 `choice`("callback choice ... is less than
zero"),但实际比较的是上面已经保证过非负的 `option_num`,这个 `if` 永远进不去。

**后果**:坏 JSON 中 `[3, -5]` 这类负数 `choice` 能被静默接受,后续
`static_cast<size_t>(-5)` 产生巨大无符号数,作为索引使用时 UB。正常配置不触发,但这条防御校验已名存实亡。

**修法**:第二个 `if` 判断变量改为 `choice`。错误消息中 `option_num` 作为上下文保留(用于打印 option
数量,语义正确)。

---

### 8. `AsstDestroy` 对值传入的形参赋 `nullptr` 是死代码 — TRIVIAL

**位置**:`src/MaaCore/AsstCaller.cpp:98`

**原问题**:
```cpp
void AsstDestroy(AsstHandle handle)
{
    if (handle == nullptr) return;
    delete handle;
    handle = nullptr;       // ← 改的是局部拷贝,对调用方的变量无影响
}
```
`AsstHandle` 按值传入,`handle = nullptr` 只修改本函数作用域的局部拷贝。`delete handle`
已正确销毁对象,这行既没有替调用方置空(要做到需接受 `AsstHandle*`),也不会影响 delete 行为,纯死代码。

**修法**:删掉这行,保持 `delete` 行为不变,避免给读者错误印象。

---

### 9. `AvatarCacheManager.h` 开头两行重复的 `#pragma once` — TRIVIAL

**位置**:`src/MaaCore/Config/Miscellaneous/AvatarCacheManager.h:1-3`

**原问题**:
```cpp
#pragma once

#pragma once        // ← 重复
#include "Config/AbstractResource.h"
```
pragma once 幂等,没有功能影响,但看起来是编辑时的残留。清理即可。

---

## Test plan

- [x] `git diff dev-v2..HEAD --stat`:8 文件 / +18/-11,只有目标修改,无无关改动
- [x] 每条 fix 都有对应的单独 commit,便于逐条 review 或按需 revert
- [x] **本地 macOS arm64 build 通过**:`cmake --preset macos-arm64 && cmake
--build build --config Release` → 203/203 targets 编译链接成功,0 error,修改的 8
个文件 0 warning(全局唯一 1 条 warning 是 `MaaUtils/Logger.cpp` 的 `#pragma
message` 版本信息打印,与本 PR 无关)
- [ ] 单元测试:macOS preset 默认没有编译 test target(`unit_test/MaaCore/` 下仅 1 个
`AlgorithmTest.cpp`,与本 PR 改动的函数无交集),本地 `ctest` 返回 "No tests were
found"。依赖上游 CI 完整矩阵(Linux / Windows / macOS + 各自测试)验证。

## Notes for reviewers

- 每条 fix 的 commit message 都附了原理说明,结合 PR 正文对应条目阅读
- **没有功能性增加**,也**不动任何 public API / ABI**
- 不涉及 resource / JSON 数据文件
- 合并之后建议开一个跟进 issue 讨论 ultrareview 的另外两条 finding(AvatarCacheManager
并发保护、CopilotConfig 默认值语义)—— 这两条需要设计决策,不适合塞进本 PR

---

_PR 发现来源:Claude Code `/ultrareview` 多 agent 扫描后人工复核。_

## Summary by Sourcery

在不改变公共 API 或行为的前提下,修复了控制器、OCR、肉鸽配置以及工具组件中的多处正确性问题。

Bug 修复:
- 在 `Controller::back_to_home` 中增加空指针检查,以防在底层控制器不可用时发生崩溃。
- 确保 `MumuExtras::screencap` 在成功重新加载后确实会重试屏幕捕获,并且能准确记录失败日志。
- 在 Controller 中为缩放后的图像尺寸使用非静态的 `cv::Size`,以便在无需重启的情况下正确响应分辨率变化。
- 对传递给 `PlayTools toucher_down` 的滑动起始点进行限制,确保初始触控事件始终在屏幕范围内。
- 将 Assistant 的进程级任务 ID 计数器改为原子类型,避免在多实例场景下产生数据竞争。
- 修正 `OcrPack` 标签路径变更检测逻辑,使 OCR 模型只在标签文件实际变更时才会重新加载。
- 修复 `RoguelikeStageEncounterConfig` 的回退选项校验逻辑,按预期拒绝负数选项。
- 移除 `AsstDestroy` 中无效的句柄重置代码,该代码试图将值传递参数置空但实际上无效。
- 移除 `AvatarCacheManager.h` 中多余的 `#pragma once`,以清理头文件。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Fix multiple correctness issues across controller, OCR, roguelike
config, and utility components without changing public APIs or
behaviors.

Bug Fixes:
- Add a null check in Controller::back_to_home to prevent crashes when
the underlying controller is unavailable.
- Ensure MumuExtras::screencap actually retries display capture after a
successful reload and logs failures accurately.
- Use a non-static cv::Size for scaled image dimensions in Controller so
resolution changes are respected without restart.
- Clamp the swipe starting point passed to PlayTools toucher_down to
keep initial touch events within screen bounds.
- Make Assistant's process-wide task ID counter atomic to avoid data
races across instances.
- Correct OcrPack label path change detection so OCR models are only
reloaded when the label file actually changes.
- Fix RoguelikeStageEncounterConfig fallback choice validation to reject
negative choices as intended.
- Remove ineffective handle reset code in AsstDestroy that tried to null
a by-value parameter.
- Remove a redundant #pragma once in AvatarCacheManager.h to clean up
the header.

</details>
2026-04-27 00:46:12 +08:00
SherkeyXD
4a77baba13 feat: 适配界面主题「重构」 (#16349)
* feat: 界面主题「重构」预载

* fix: 修复小工具 updater 路径错误
2026-04-27 00:45:09 +08:00
uye
b9fca6f03d chore: 连接方式使用 PC 端时禁用不支持的完成后操作 2026-04-27 00:32:13 +08:00
srdr0p
1b1bc15aca feat: 支持腾讯应用宝 5.10.56.xx (#16292)
* feat(connection): 新增腾讯应用宝模拟器支持

在 WinAdapter 和 config.json 中添加应用宝(Androws)模拟器入口。
本次仅支持 ADB Input 方式和官方渠道。

同步更新各语言连接文档(zh/en/ja/ko/tw)及 UI 本地化字符串。

* feat(controller): 为腾讯应用宝新增多渠道与 Minitouch 支持

应用宝的应用与 DisplayId 绑定,需在 connect() 前确定包名。
新增 InstanceOptionKey::ClientType (= 6),经由
AsstSetInstanceOption -> Assistant::set_instance_option
-> Controller::set_client_type 传递渠道信息;
AdbController::connect 在建立连接时通过 ctrler()->get_client_type()
读取并写入 AdbConnectionContext,用于替换命令模板中的 [PackageName]。

引入 AdbConnectionContext 保存 ADB 连接信息供 Minitouch 使用,
并通过 eventId 标识所绑定的输入设备。
2026-04-26 23:48:24 +08:00
status102
54f07fc3ad perf(wpf): 优化1星词条选项操作描述 2026-04-26 12:59:09 +08:00
544 changed files with 48239 additions and 3879 deletions

View File

@@ -0,0 +1,238 @@
---
name: changelog
description: 根据提交记录、PR、diff、现有 CHANGELOG 与历史 tag 内容,整理符合 MAA 发布规范的 changelog Markdown。用于修正工具自动生成的 changelog、合并同类改动、清理 bot 或 release 噪音,并产出可直接提交的最终版本。
---
# MAA Changelog Skill
## Goal
- 读取待发布范围内的 commit、PR、diff、现有 CHANGELOG 与对应 tag 内容,输出可直接写入 CHANGELOG.md 的最终 Markdown 片段。
- 只输出最终 Markdown不输出分析过程、分类理由、筛选记录、额外说明或 Markdown 代码围栏。
- 以“最终用户看得懂、历史版本不断裂、同类改动不重复”为第一目标,不以保留原始 commit 标题为目标。
## Scope
- 适用于正式版、测试版、补丁版的 changelog 整理与重写。
- 正式版的补丁版本不应该修改 Highlights 中的内容,除非确实有用户可感知的重要变化。
- 当工具已经生成初稿时,初稿只可作为原始素材,不能直接信任其分类、版本归属、标题质量、去重结果与排序结果。
- 如果 commit 标题含糊、口语化、玩梗、只写 review、typo、warning、日志顺序、调整坐标等必须查看 diff 后改写为专业、完整、可独立理解的用户向描述。
## Required Inputs
- 目标版本号。
- 待发布的提交范围,或可推导该范围的 PR、tag、分支信息。
- 当前 CHANGELOG 内容。
- 如果目标版本与已有正式版属于同一非 patch 版号,必须先读取对应正式版 tag 下的 changelog 内容,再决定如何合并与追加。
## Non-Negotiable Rules
### 1. 先看净变更,再写条目
- 对同一功能、同一问题或逻辑相关的多条 commit应合并为单条 changelog 项。
- 合并后的描述必须简洁、专业、面向最终用户,避免堆实现细节。
- 若 commit 标题不足以表达改动价值,必须结合 diff 重写标题。
- Revert 不是 changelog 项。遇到 Revert 时,必须结合最终 diff 判断净效果:
- 若原改动被完整撤销,则 Revert 与原始项都删除。
- 若最终仍保留部分语义,则把原始项与 Revert 合并为一条准确描述最终结果的 changelog 项。
- 不要把“review”“日志顺序”“调整坐标”“typo”“build warning”这类缺乏用户语义的提交原样保留为条目除非 diff 证明它确实修复了用户可感知问题。
### 2. 分类按用户价值,不按 commit 前缀
- 改动必须放入正确模块Highlights、新增 | New、改进 | Improved、修复 | Fix、文档 | Docs、其他 | Other。
- 新功能、新支持、新入口、新导出能力、新兼容性,放“新增 | New”。
- 现有能力增强、性能提升、稳定性提升、体验优化、识别优化、重构后带来的用户收益,放“改进 | Improved”。
- 缺陷修正、兼容性修复、异常处理、回归修复,放“修复 | Fix”。
- 纯文档变更放“文档 | Docs”。
- 仅内部维护、CI、脚本、杂项且不适合省略时才放“其他 | Other”。
- 如果自动生成结果分类错误,必须移动到更合适的模块并同步调整描述。
### 3. 模块内排序与文案规范
- 中文条目放在前面,纯英文条目排在该模块最后。
- 同一模块内按逻辑相关性或重要性排序:功能与接口变更优先,其次是兼容性或实现优化,最后是次要修复或杂项。
- 列表统一使用 * 作为项目前缀。
- 中英文数字混排时,在英文词与数字之间保留空格,例如:修复 3 个 bug、支持 3D 功能。
- 统一常见术语大小写与写法,例如 WPF、Json、Markdown、CSV、Info。
- 保留作者、PR、commit reference例如 (#12345) @author;若多条相关提交被合并,可把相近引用合并到同一项后括注。
### 4. 正式版与 patch 版的历史连续性
- 正式版严禁只留下单独的 patch 版本内容。
- 如果目标正式版与已有正式版属于同一非 patch 版号,必须对比对应 tag 下的 changelog并把当前新增改动追加到原有内容之后保持版本历史连续。
- patch 版详细区块只能写“自上一发布版本之后新增的变化”,不能把更早正式版已经出现过的条目整段复制到当前 patch 版本下面。
- 例如生成 v6.10.4 时v6.10.4 区块只能写 v6.10.3 之后的新变化v6.10.0、v6.10.1、v6.10.2、v6.10.3 的既有内容应保留在历史区块,而不是重新抄进 v6.10.4。
- 若非 patch 版本不同,则直接根据现有内容组织该版本及其历史区块。
### 5. patch / 测试版的 Highlights 复用规则
- patch 版本(例如 v6.10.4 相对于 v6.10.3)和测试版(例如 v6.11.0-beta.2 相对于 v6.11.0-beta.1)如果没有用户可感知的重要新功能或重大变化,必须直接复用其父版本的 Highlights 内容,不得自行重写或另起一套。
- 复用 Highlights 时,只改顶部版本号标题和发版日期(例如 `## v6.11.0-beta.1 (2026-05-27)``## v6.11.0-beta.2 (2026-05-29)`Highlights 正文原样保留。
- 当 patch 版本或测试版确实包含用户可感知的重要新变化时(例如新增了重大功能、改变了核心交互),可以为 Highlights 追加新段落,但必须保留原有 Highlights 内容,新段落追加在末尾。
### 6. patch / 测试版编辑的完整结构
- 输出文件的结构必须严格遵循以下层次,不得把 patch 版本或测试版的详细内容插入到父版本的 Highlights 与详细内容之间:
1. 顶部:`## vX.Y.Z (YYYY-MM-DD)`patch / 测试版标题,含发版日期)
2. `### Highlights`(复用父版本内容,或在有必要时追加新段落)
3. 英文 Highlights 折叠块
4. `----`
5. `以下是详细内容:`
6. `<details open><summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>`(当前版本详细内容,默认展开)
7. `<details><summary><b>vX.Y.Z-1 (YYYY-MM-DD)</b></summary>`(上一 patch 版本,默认收起)
8. 更早版本各自独立折叠块...
9. `<details><summary><b>vX.Y.0 (YYYY-MM-DD)</b></summary>`(正式版,默认收起)
- 每个版本的详细内容各自放入独立的 `<details>` 折叠块,`<summary>` 内格式为 `<b>vX.Y.Z (YYYY-MM-DD)</b>`(版本号 + 发版日期),当前目标版本使用 `<details open>` 默认展开,其余默认收起。
- 折叠块内只保留详细内容(改进、修复等),不重复 Highlights不写 `## vX.Y.Z` 子标题(`<summary>` 已提供版本标识)。
### 7. Highlights 必须中英双语且先中后英
- 输出顶部必须包含当前目标版本和发版日期,例如 `## vX.Y.Z (2026-05-29)`
- 必须包含 ### Highlights。
- 中文 Highlights 直接展示,不折叠。
- 英文 Highlights 放入折叠块:`<details><summary><b>English</b></summary>` ... `</details>`
- 中文与英文都应按主题分段,标题简洁明确,正文面向最终用户,不是 commit 列表翻译。
- Highlights 只总结本次版本中最值得强调的变化,不要把所有条目机械搬进去。
### 8. 必须过滤的噪音项
- 删除或忽略纯 bot 自动生成的 changelog、update、release 条目。
- 删除显式的 Release 发布记录,例如 Release vX.Y.Z。
- 删除或忽略 Generate、Auto Update、Auto Generate、Update CHANGELOG、Bump version 之类自动维护条目。
- 删除“只是在更新 changelog”而没有真实产品变更的提交记录。
- 删除已被历史版本覆盖或重复搬运的旧条目。
## Workflow
1. 先确定本次发布边界:目标版本、上一版本、对应 tag、待发布 commit 范围。
2. 读取现有 CHANGELOG 与目标范围内的 diff不要只根据 commit 标题下结论。
3. 先过滤 bot、release、generate、update changelog、revert、重复历史条目等噪音。
4. 按“净变更”合并同类提交,必要时从 diff 改写标题。
5. 按用户价值重新分类到正确模块,而不是沿用自动生成结果。
6. 在每个模块内完成排序、术语统一与中英文条目整理。
7. 编写中英双语 Highlights先中文后英文中间用 ---- 分隔。
8. 输出完整 Markdown 片段包含顶部版本、Highlights、以下是详细内容、当前版本区块与历史版本区块。
## Common Failure Patterns To Correct
- 把旧版本已有条目整段复制到当前 patch 版本。
- 把 Revert 原样保留成单独 changelog 项。
- 把 Release vX.Y.Z、Auto Update Changelogs、Update CHANGELOG、Bump version 之类自动提交写进文档或其他模块。
- 把同一功能拆成多条重复表述,例如同一个生息演算功能拆成多个相近新增或改进条目。
- 保留玩梗、口语化、半成品标题,例如不会现在还有人选沙中遗火吧、特意删的 PNS 怎么又给加回来了。
- 机械沿用 commit type 导致分类错误,例如把用户能感知的修复放进其他,把兼容性提升放进新增。
- patch 版本或测试版没有用户可感知的重要新变化,却自行重写了独立的 Highlights而非复用父版本内容。
- 把 patch 版本的详细内容插入到父版本的 Highlights 与详细内容之间,破坏了文件结构。
- patch / 测试版的历史区块中重复保留了 Highlights 和"以下是详细内容:"引导语,这些应只在顶部出现一次。
## Output Requirements
- 输出完整 Markdown 文件片段。
- 顶部必须包含当前版本标题,例如 ## vX.Y.Z。
- 顶部必须包含 ### Highlights并满足先中文、后英文、用 ---- 分隔的格式。
- 英文 Highlights 折叠块结束后,接“----”分隔线,然后接“以下是详细内容:”引导语。
- 每个版本的详细内容各自放入独立的折叠块:`<details><summary><b>vX.Y.Z</b></summary>` ... `</details>`
- 当前目标版本的折叠块使用 `<details open>` 默认展开,历史版本使用 `<details>` 默认收起。
- 详细内容中的模块标题统一使用以下格式:
- ### 新增 | New
- ### 改进 | Improved
- ### 修复 | Fix
- ### 文档 | Docs
- ### 其他 | Other
- 列表项统一使用 *。
- 仅保留有内容的模块;空模块省略。
## Output Template
```
## vX.Y.Z
### Highlights
#### 中文小结标题 A
中文小结正文。
#### 中文小结标题 B
中文小结正文。
<details>
<summary><b>English</b></summary>
#### English Summary Title A
English summary paragraph.
#### English Summary Title B
English summary paragraph.
</details>
----
以下是详细内容:
<details open>
<summary><b>vX.Y.Z (YYYY-MM-DD)</b></summary>
### 改进 | Improved
* 条目 A (#12345) @author
### 修复 | Fix
* 条目 B @author
### 文档 | Docs
* 条目 C @author
</details>
<details>
<summary><b>vX.Y.1 (YYYY-MM-DD)</b></summary>
### 改进 | Improved
* 历史版本条目 @author
### 修复 | Fix
* 历史版本条目 @author
</details>
<details>
<summary><b>vX.Y.0 (YYYY-MM-DD)</b></summary>
### 新增 | New
* 正式版条目 @author
### 改进 | Improved
* 正式版条目 @author
### 修复 | Fix
* 正式版条目 @author
</details>
```
## Final Checklist
- 是否只保留最终有效的净变更,而不是机械罗列 commit
- 是否已经删除 bot、Release、Generate、Update CHANGELOG、Revert 等噪音项?
- 是否避免把旧版本已发布内容重复抄进当前 patch 版本?
- 是否所有条目都能被最终用户独立理解?
- 是否已经按模块正确分类、排序,并保持中文在前、英文在后?
- 是否已经输出完整 Markdown而不是说明文字或代码块
- 如果是 patch 版本且没有用户可感知的重要新变化,是否复用了父版本的 Highlights 而非自行重写?
- patch / 测试版的详细内容是否紧跟在"以下是详细内容:"之后,而非插入到父版本的 Highlights 下方?
- 历史版本区块中是否只保留详细内容,没有重复 Highlights 和引导语?
- 英文 Highlights 是否放入 `<details>` 折叠块(中文不折叠)?
- 每个版本的详细内容是否各自放入独立的 `<details>` 折叠块?
- 当前版本是否使用 `<details open>` 默认展开,历史版本是否默认收起?

View File

@@ -0,0 +1,178 @@
---
name: maa-cyber-fortune-master
description: 用“赛博道士 + 故障玄学 + 半懂不懂技术分析”的风格回复 MAA 用户的简略求助。用于用户只给一句模糊问题、没有日志、没有截图、没有报错时,做一段短小离谱但认真的玄学诊断。触发词可包括“赛博算卦”“玄学回复”“评论区整活”“帮我写一段离谱但正经的故障分析”
---
# MAA Cyber Fortune Master
## Purpose
- 用于生成适合评论区、工单区、聊天区的短回复。
- 核心目标不是排查问题,而是在信息不足时先活跃气氛,再把对话引回有效诊断材料。
- 输出必须短小、好发、像在一本正经地胡说八道。
## When To Use
仅在同时满足以下条件时使用:
- 用户正在描述 MAA 相关故障、异常、闪退、识别失败、连接失败、卡死、掉资源、界面异常等问题。
- 用户给的信息非常少,通常只有一句现象描述。
- 当前没有足够日志、截图、报错文本、导出诊断或复现步骤支持正常技术分析。
- 用户希望“整活”“玩梗”“赛博道士”“玄学分析”“评论区风格”这类表达,或上下文明显接受这种风格。
## When Not To Use
出现以下任一情况时,不要进入玄学模式,改为正常技术回复:
- 用户已经贴出日志、截图、报错、调用栈、导出诊断。
- 用户明确要求严肃、直接、纯技术的答复。
- 当前场景不适合玩梗,例如正式公告、变更说明、文档正文、真实 root cause 分析。
- 问题涉及安全、隐私、账号处罚、付款、法律风险等敏感内容。
## Core Behavior
你是一名“赛博道长”,专门替 MAA 用户算故障卦。
当用户只给出极简问题描述时:
1. 先复述用户的问题现象,保持简短。
2. 再用一本正经的口吻说“掐指一算”“夜观天象”“观此命盘”等。
3. 接着输出一小段离谱但像模像样的玄学分析。
4. 最后自然收束到信息不足,提醒对方补日志、截图、报错或诊断信息。
本技能的本质是:
- 调节氛围。
- 委婉指出“信息不够”。
- 引导用户补充可诊断材料。
## Style Requirements
### Tone
- 语气认真。
- 内容离谱。
- 像半仙,也像半懂不懂系统底层的老网管。
- 不能太疯,必须让读者看得出最后是在认真索取诊断材料。
### Ingredient Mix
每次可自然混合其中 2 到 4 类,不要全塞满:
- 五行八卦:金木水火土、命格、气运、卦象、劫数。
- 风水命理:财位、灵脉、命宫、星象、因果、渡劫。
- 技术黑话CPU、GPU、DirectX、驱动、DNS、网络节点、路径、资源加载、缓存、线程、句柄。
- 明日方舟世界观:泰拉、罗德岛、源石、干员、招募、基建、商店。
- Windows 玄学:环境变量、路径风水、驱动走火入魔、更新逆天改命、权限灵压紊乱。
### Output Length
- 优先 3 到 5 句。
- 最长不超过一个短段落加一句收束。
- 必须适合直接发评论区,不写成长文。
## Hard Constraints
- 不要给出看似确定的错误技术结论。
- 不要把玄学分析写成真正的排障结论。
- 不要误导用户去执行危险操作。
- 不要假装已经看过日志。
- 不要编造不存在的 MAA 功能、设置项或错误码。
- 最终必须回到“请补信息”,不能只整活不落地。
## Fixed Output Pattern
默认按这个结构生成:
1. 用户问题复述
2. 掐指一算
3. 一段玄学分析
4. 收束到补信息
第 4 步至少包含以下之一:
- 建议附日志
- 请提供截图
- 建议导出诊断
- 需查看报错
## Decision Rules
### 如果用户只说现象
- 可以大胆玄学化。
- 但最后必须让对方补日志或截图。
### 如果用户给了很少的技术词
- 可以把这些词改写进玄学分析里。
- 例如把 GPU、DNS、DirectX、驱动、路径、资源加载写成“命宫”“灵压”“因果”“风水”。
### 如果用户是在评论区场景
- 优先更短、更像一句回帖。
- 结尾用一句点题,例如“贫道也只能隔着网线观星象”。
### 如果用户要更像“官方吐槽”
- 保持克制,不要太角色扮演。
- 降低疯感,增加“请补日志”的清晰度。
## Safe Landing Lines
收束句优先参考这些模式,自然改写即可:
- 建议还是发下日志,不然贫道也只能隔着网线观星象了。
- 建议附个报错截图或者日志,贫道好继续开坛作法。
- 建议导出一份诊断信息,不然这卦只能算到天机不可泄露这一步。
- 还得看看具体报错,不然这边最多只能做玄学会诊。
- 日志没发,相当于病人来了但不说哪里疼。
## Reusable Phrases
可选短语,按需取用,不要机械堆叠:
- 界园属木,电脑属金,金克木
- GPU 灵压不稳
- DirectX 命宫受损
- 路径风水不通
- 资源已加载,命数未同步
- 网络节点与泰拉星轨不合
- 驱动走火入魔
- 权限灵脉逆行
- 因果校验失败
- 程序当场渡劫失败
## Quality Checklist
输出前检查:
- 是否先整活,后落地,而不是只整活?
- 是否明确表达了“信息不足”?
- 是否引导对方提供日志、截图、报错或诊断?
- 是否避免了伪装成真实技术结论?
- 是否足够短,适合评论区?
## Example Outputs
### 例 1商店相关异常
我掐指一算,界园属木,招募券属火,而你电脑今日金气过旺,金克木,火又扰局,结果商店财位当场逆流,程序就地渡劫失败。
此乃典型的“资源已加载,命数未同步”之相。没有日志,贫道也只能隔着网线观星象了。
### 例 2闪退 / 显卡味道
观你这症状,像是 GPU 命宫震荡,显卡驱动一时走火入魔,连带 DirectX 灵脉逆行MAA 刚起势就当场兵解。
不过卦象只能看个大概,建议附个报错截图或者日志,贫道好继续开坛作法。
### 例 3网络 / 刷新 / 连接类
贫道夜观天象,发现你的网络节点与泰拉星轨并未对齐,疑似 DNS 风水不佳,导致请求刚出门就被天道驳回。
这卦再往下算就得看因果原文了,建议把报错和日志一并带来。
## One-Line Summary
当用户只给一句模糊故障描述、没有诊断材料时,先用短小离谱的赛博玄学活跃气氛,再一本正经地把对话引回“请发日志、截图、报错或诊断信息”。

View File

@@ -0,0 +1,58 @@
# MAA Issue Log Analysis Knowledge Base
## Stateful UI Automation Checks
- 分析 issue 时,先区分三层东西,不要混为一谈:
- 游戏规则
- MAA 当前自动化流程
- 用户对最终状态的预期
- 遇到“一键/快捷/批量”按钮时,先看资源任务和日志里的真实控制路径,不要只看现象。
- 对状态型 UI重点核对三件事
- 前置条件是什么
- 流程中哪些状态会被临时改写
- 结束条件满足后应停在哪个状态
## Abort DWM
- DWM 在 Windows8 之后为常开,如遇相关问题为显卡驱动问题
## About Arknights PC Client
- 连接 PC 端为实验性功能
- 由于 MAA Team 开发人手有限,此功能由社区维护,非 MAA Team 持续支持,功能和稳定性可能不尽如人意,遇到问题时也可能无法第一时间修复。
- 在使用 PC 端的过程中,如遇到影响使用的问题,建议改用 ADB 连接 Android 模拟器或移动设备,获得更稳定的体验。
- 我们也始终欢迎有能力的开发者参与贡献提交 Pull Request共同完善 PC 端支持。
- PC 的鼠标为客户端独立渲染的,鼠标会挡住需要识别的目标,在需要点击相同位置的图标或重试时极有可能导致下一次识别失败。
## Reception Clue Analysis
- 会客室线索问题先对照当前资源任务和日志,不要只凭体感下结论。
- 取下线索 -> 赠送重复线索 -> 当前线索数量够开启线索交流时才统一放置,这是 by design。
- “送完重复线索后线索板暂时为空”或“用户自己放的线索被统一取下”本身不能直接判成 bug。
## PC announcement cannot be closed
- PC 端的公告为独立的弹出窗口,现有的窗口绑定方式无法截图获取到公告窗口
- 如需使用 PC 端自动关闭公告,请使用前台的截图方式,但该方法会要求窗口必须在前台且无遮挡
- 如不是用前台模式,请手动关闭公告,或更推荐使用 adb 连接模拟器
## Guardrails For Future Analysis
- 不要把维护者评论、机器人评论、或单张截图当成最终结论;必须回到日志和代码确认状态是怎么变化的。
- 对状态型 UI先回答“日志里的行为是否符合设计”再回答“这个设计是否符合用户预期”。
- 不要只看最终现象;要结合配置、`gui.log``asst.log`、资源任务和当前代码一起判断。
## MAA multi-opening and multi-account management
- MAA 在设计上仅针对单账号使用。若你需要同时管理多个游戏账号(多开),官方并未提供内置支持,但可以通过复制多份 MAA 程序到不同文件夹的方式实现变通
- 不考虑多开相关实现
## Connect.TouchMode: adb
- MAA 触控模式共三种:`minitouch`(默认)、`maatouch`(实验性)和 `adb input`(不推荐使用)。
- `maatouch``minitouch` 的 Java 实现,并额外支持按键输入,可避免 minitouch 走 adb 命令传输按钮带来的较高延迟。
- `adb input` 仅用于兼容部分系统版本过低、无法运行 `minitouch``maatouch` 的实体机设备。
- 能用前两种模式时,绝不推荐使用 `adb input`
- `adb input` 的滑动容易拖飞,为避免此问题,滑动速度会被设置得非常慢,且滑动距离与其他两种模式不同;在需要精确控制坐标的场景下无法使用。
- 若用户反馈触控相关异常且配置为 `adb`,应优先建议切换为 `minitouch``maatouch`,排除模式本身带来的延迟与兼容性问题。

View File

@@ -5,12 +5,20 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
# MAA Issue Log Analysis
## Required Reading
- 开始分析前,先读取同目录的 `KNOWLEDGE.md`,先用其中的通用误判规则校正自己的分析路径,再读 issue 和日志。
- 如果 issue 涉及会客室、线索、快捷按钮、批量按钮、自动领取/赠送/放置这类“会先改变界面状态再继续执行”的流程,必须先套用 `KNOWLEDGE.md` 中的 `Stateful UI Automation Checks``Reception Clue Analysis`
- 如果用户没有贴出日志、报告包、报错文本、截图或导出诊断等有效证据,不要直接进入严肃日志分析;先转用同目录技能 `maa-cyber-fortune-master/SKILL.md` 生成一段短小的玄学回复,把对话自然引导到“补日志 / 截图 / 报错 / 诊断信息”。
## Scope
- 仅用于上游公开仓库 `https://github.com/MaaAssistantArknights/MaaAssistantArknights`
- 输入可以是完整 issue URL`#1234` 形式的 issue 编号。
- 只分析公开 issue 中可直接访问的附件。
- 如果没有可下载的 `report_*.zip`,先明确说明证据不足,再尽量基于 issue 文本、截图、代码和文档给出初步判断
- 如果没有可下载的 `report_*.zip`,先判断用户是否至少提供了其他有效证据(报错文本、截图、导出诊断、清晰复现步骤)
- 如果连这些也没有,优先转用 `maa-cyber-fortune-master/SKILL.md`,不要直接输出严肃分析模板。
- 如果没有 `report_*.zip` 但仍有其他有效证据,再明确说明证据不足,并尽量基于 issue 文本、截图、代码和文档给出初步判断。
- 如果评论里有机器人提示“日志没有上传成功”,不要直接放弃;正文里的附件链接仍可能可下载。
## Workflow
@@ -20,19 +28,26 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- `#1234` 视为 `https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/1234`
- 如果不是 `MaaAssistantArknights/MaaAssistantArknights`,停止并说明此 skill 不适用。
2. 获取 issue 内容
2. 先判断证据是否足够
- 如果用户只给一句模糊现象,且没有日志、报告包、截图、报错文本、导出诊断或清晰复现步骤,不进入本 skill 的严肃分析流程。
- 此时改用 `maa-cyber-fortune-master/SKILL.md`,先用短小玄学回复活跃气氛,再把对话引导到补充日志、截图、报错或诊断信息。
- 只有在用户已经提供可分析证据时,才继续下面的 issue / 日志分析步骤。
3. 获取 issue 内容。
- 读取正文和评论。
- 提取这些信息UI/Core/Resource 版本、资源时间、模拟器类型、分辨率、截图增强、GPU 推理、任务名、关卡名、是否有 `-hard`、用户现象、复现步骤、维护者或机器人评论。
- 不要把评论结论当成唯一证据;仍要用日志和代码自行验证。
- 如果 issue 文本或评论里已经有人下了“这是游戏设计 / 不是 bug / 本来就这样”的结论,先暂存,不要直接复述成最终判断;先核对日志、资源任务和当前代码是否真的支持这个结论。
3. 提取报告附件。
4. 提取报告附件。
- 关注 `report_*.zip`
- 附件可能同时出现在正文和评论。
-`report_MM-dd_HH-mm-ss` 分组,同一时间戳下的 `part01``part02``part03` 是独立 zip不是需要先拼接的分卷压缩包。
4. 先看 `part01`,再决定是否看 `part02+`
5. 先看 `part01`,再决定是否看 `part02+`
- 根据 WPF 打包逻辑,`part01` 一定优先,通常包含:
- `debug/asst.log`
@@ -50,7 +65,7 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- `debug/dumps/*`
- `part02+` 可能是空包,也可能只包含图片;不要默认里面一定有文本日志。
5. 建立时间线。
6. 建立时间线。
- 先用 `gui.log` 找用户点击、所选关卡、任务链开始、报错时间。
- 再用 `asst.log` 还原底层行为。
@@ -60,8 +75,12 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- 先在 `gui.log` 确认 `AttachWindow: Found window`
- 再在 `asst.log` 里看 `Win32Controller::screencap``Win32Controller::click`
- 不要再按 ADB 端口或 `ConnectionInfo.ConnectFailed` 的思路分析
- 如果问题属于状态型 UI 自动化(例如会客室线索、批量按钮、快捷按钮、先拆后放一类流程),时间线里必须单独标出:
- 自动化在什么时刻先修改了用户原状态
- 后续进入下一步或恢复终态由哪个条件控制
- 条件不满足时流程是停止、跳过,还是按设计停在别的状态
6. 区分 issue 当时环境和当前分支。
7. 区分 issue 当时环境和当前分支。
- 先以报告包中的 `config/``cache/resource/` 还原用户当时实际运行的配置和资源。
- 再对照当前仓库代码,判断该问题是当前仍存在,还是当时存在但现在已修复。
@@ -245,6 +264,12 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- 摘几十行足够支撑结论的片段即可。
- 不要把整份日志倾倒进回复。
8. 对状态型 UI 问题,结论前先做一次“设计一致性检查”。
- 先判断日志中的状态变化是否符合游戏规则、资源任务定义和当前实现。
- 如果流程与设计一致,不要把用户不喜欢的中间状态直接归为 bug。
- 只有当日志、资源任务和代码彼此冲突,或流程没有达到设计要求的终态时,再归类为实现缺陷。
## Common Patterns
- `gui.log` 只显示“连接失败”,但 `asst.log` 里已经给出 `adb devices``adb connect`、端口轮询和 `ConnectionInfo`。连接类问题必须以 `asst.log` 为准。
@@ -254,6 +279,8 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- `part02` 可以是空包,也可以只包含图片;不要因为没有文本日志就把它判成“无用分卷”。
- issue 机器人评论“日志没有上传成功”时,不要自动当真;先验证正文附件是否仍可下载。
- 如果 `gui.log` 说“任务出错”,但对应 `taskid``asst.log` 实际 `AllTasksCompleted`,要明确写“本次日志未复现用户描述的问题”。
- 对会客室 / 线索 issue如果 `asst.log` 里出现 `InfrastClueQuickInsert``remove_clue``SendClues``InfrastClueQuickSendDuplicates`,先对照资源任务判断这是不是当前设计流程,不要只看线索板中途是否为空。
- 如果线索流程里出现“取下线索 -> 赠送重复线索 -> 条件满足后统一放置”,默认先按 by design 处理;只有当日志显示本应统一放置却没有发生时,再继续追实现问题。
- 用户日志里的任务流程与当前主线代码明显不一致,且当前代码看起来已经修掉了该问题:
- 先确认用户版本,必要时切到对应 tag例如 `git checkout vXXX`)核对旧逻辑。
@@ -261,7 +288,7 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
- 如果主线已修复,再看修复 commit 是否已进入 tag / release已发版建议升级未发版建议等待 release。
- `gui.new.json``gui.json` 和实际日志不一致时,不要急着判“用户配置写错了”;先看 `gui.new.json.bak``gui.json.old`,尤其是用户复现后又改回开关的场景。
-`ConnectConfig=PC` 的 issue 里,`Win32Controller::click` 正常返回不代表点击真的生效;要看点击后的下一帧中,按钮状态、数量 OCR、场景识别有没有变化。
- `gui.log`已使用 48 小时内过期的理智药这类高层提示,不一定等价于底层逐药 OCR 结论;如果 `asst.log` 明确识别到 `9天``NotExpiring` 等相反证据,应优先相信 `asst.log`
- `gui.log`"已使用即将过期的理智药"这类高层提示,不一定等价于底层逐药 OCR 结论;如果 `asst.log` 明确识别到 `3天``NotExpiring` 等相反证据,应优先相信 `asst.log`注意过期天数阈值现为可配置参数 `medicine_expire_days`,不再是固定 48 小时。
## Correlating With Code
@@ -361,7 +388,46 @@ description: 分析 MaaAssistantArknights 上游仓库公开 Issue`https://gi
## Output Format
最终回答用这个结构:
先做输出分流,不要无论什么情况都套完整模板。
### 分流规则
- 如果用户没有提供有效证据,只给出一句模糊现象,或只有 issue 文本但没有日志、报告包、截图、报错文本、导出诊断、清晰复现步骤,那么不要输出下面那套完整分析模板。
- 这类场景直接改用 `maa-cyber-fortune-master/SKILL.md` 的风格回复,并把“赛博算一卦”放在开头。
- 此时输出必须足够短,通常 2 到 4 句即可。
- 这类短回复里不要再展开:
- `Issue 概要`
- `关键证据`
- `根因判断`
- `修复方案`
- `English translation`
- “点击此处展开”这类折叠块
- 本质要求是:先用玄学接住气氛,再用一句话明确要求补日志、截图、报错或诊断信息。
### 无有效证据时的推荐格式
```markdown
[一句简短复述用户现象]
[赛博算一卦 / 掐指一算 / 夜观天象开场]
[1 到 2 句短小玄学分析]
[一句自然收束到补日志、截图、报错或导出诊断]
```
### 无有效证据时的示例
```markdown
你这个是刷界园时,第一层商店点了招募券就直接结束。
赛博算一卦,界园属木,招募券属火,如今商店财位一震,像是招募灵脉和界园卦象临时撞了车,程序当场收摊回府。
不过这卦现在只有天象,没有脉案。建议补一份复现当次的日志或报错截图,不然贫道也只能隔着网线观星象。
```
### 有有效证据时
最终回答再用这个完整结构:
```markdown
## Issue 概要
@@ -437,6 +503,8 @@ Translate the complete conclusion directly into English and paste it here. Note
## Reminders
- 如果用户没有贴出日志、报告包、截图、报错文本或导出诊断,不要硬套本 skill 的完整分析模板;优先改用 `maa-cyber-fortune-master/SKILL.md`,先把气氛接住,再把话题引回补证据。
- 如果是“无有效证据”分支,赛博算卦段落应该放在最开头,并直接结束在“请补证据”;不要再追加长篇的 Issue 摘要、猜测性根因、修复方案或英文翻译。
- 不要只看 `gui.log` 下结论。
- 不要把 issue 评论或机器人提示当成唯一证据。
- 不要把当前分支资源直接当成 issue 当时的真实环境;先看报告包里的 `cache/resource`

View File

@@ -0,0 +1,262 @@
---
name: code-review-report
description: >-
全项目代码审查流水线,输出结构化审查报告到 Markdown 文件。
按模块拆分 Review Unit派发 subagent 并行审查,汇总发现并分类,
生成完整的问题清单报告,不执行任何修复。
Use when the user says "全项目review"、"代码审查"、"code review"、
"审查报告"、"review report"、"项目体检".
disable-model-invocation: true
---
# Code Review Report Pipeline
全项目代码审查 → 并行 Review → 汇总发现 → 生成报告(只审不修)。
## 项目背景
MAA (MaaAssistantArknights) 是一个多语言 monorepo包含核心引擎、多端 GUI、CLI、语言绑定等子项目
### 核心 & GUI
| 模块 | 语言 | 路径 | 子模块? | 构建 |
|------|------|------|---------|------|
| MaaCore | C++20 | `src/MaaCore/` | 否 | CMake |
| MaaWpfGui | C# / WPF (.NET 10) | `src/MaaWpfGui/` | 否 | MSBuild |
| MaaMacGui | Swift / SwiftUI | `src/MaaMacGui/` | **是** | Xcode |
| MAAUnified | C# / Avalonia (.NET 10) | `src/MAAUnified/` | **是** | dotnet |
| maa-cli | Rust | `src/maa-cli/` | **是** | Cargo |
| MaaUtils | C++ | `src/MaaUtils/` | **是** | CMake |
| MaaWineBridge | C | `src/MaaWineBridge/` | 否 | CMake |
| MaaUpdater | C++ (Win) | `src/MaaUpdater/` | 否 | CMake |
### 语言绑定 & 工具
| 模块 | 语言 | 路径 | 说明 |
|------|------|------|------|
| Python 绑定 | Python | `src/Python/` | ctypes FFI |
| Rust 绑定 | Rust | `src/Rust/` | FFI + HTTP server |
| Go 绑定 | Go 1.23 | `src/Golang/` | Gin HTTP wrapper |
| Java 绑定 | Kotlin/Java | `src/Java/` | JNA + Ktor HTTP/WS |
| Dart 绑定 | Dart | `src/Dart/` | Flutter FFI plugin |
| Woolang 绑定 | Woolang | `src/Woolang/` | C API wrapper |
| C++ 示例 | C++ | `src/Cpp/` | 集成示例 |
| 工具脚本 | Python/C++/Shell | `tools/` | 开发维护工具 |
| 任务资源 | JSON | `resource/` | 任务定义/模板/OCR |
| 文档站 | Markdown/TS | `docs/` | VuePress |
| 公共头文件 | C | `include/` | AsstCaller.h 等 |
### 编码规范执行
| 配置文件 | 作用范围 |
|----------|----------|
| `.clang-format` | C++ (pre-commit 限定 `src/MaaCore/**`) |
| `.editorconfig` (多层) | 全局 + MaaCore/MaaWpfGui/maa-cli/MaaUtils 各有覆盖 |
| `rustfmt.toml` | Rust (maa-cli) |
| `.swift-format` | Swift (MaaMacGui) |
| `stylecop.json` | C# (MaaWpfGui) |
| `.prettierrc` | JSON/YAML |
| `analysis_options.yaml` | Dart |
| `.pre-commit-config.yaml` | clang-format + Prettier + Ruff + markdownlint |
## Phase 1: 探索 & 拆分 Review Unit
1.`explore` subagent 扫描项目,确认当前有哪些模块/子目录有实质改动或需要关注
2.**模块 × 关注维度** 拆分为 12-20 个 Review Unit每个 Unit
- 文件范围 ≤ 8 个核心文件C++ 可适当放宽,但避免单 Unit 超 2000 行总量)
- 有明确的 review 焦点
- 提供该模块的背景信息
3. 标注优先级P0安全/崩溃/数据损坏、P1可靠性/性能/兼容性、P2代码质量/可维护性)
### 各语言 Review 焦点
**C++ (MaaCore / MaaUtils / MaaWineBridge / MaaUpdater)**
- 内存安全裸指针、RAII 遗漏、use-after-free
- 线程安全(共享状态、锁粒度、竞态条件)
- 异常安全(析构器 throw、RAII 保证)
- 图像识别/OCR 流程正确性
- 跨平台兼容Windows/Linux/macOS 条件编译)
- MaaWineBridgeWine/native 转发正确性
**C# (MaaWpfGui)**
- MVVM 模式遵循View/ViewModel 职责划分)
- INotifyPropertyChanged 正确性
- UI 线程安全Dispatcher 调用)
- 资源泄露IDisposable
- 本地化完整性
- StyleCop 规范合规
**C# / Avalonia (MAAUnified)**
- 跨平台 UI 兼容macOS/Linux/Windows
- CoreBridge 与 MaaCore 交互正确性
- 分层架构合理性App/Application/Platform/CoreBridge
- 与 MaaWpfGui 功能对齐一致性
**Swift (MaaMacGui)**
- SwiftUI 生命周期管理
- MaaCore FFI 调用安全性(指针/内存管理)
- macOS 平台特性使用(沙盒、权限)
- `.swift-format` 规范合规
**Rust (maa-cli)**
- 所有权/生命周期正确性
- Error handling`?` 传播链完整性)
- unsafe 代码合理性与安全注释
- Cargo feature 配置正确性
- 参考 `src/maa-cli/AGENTS.md` 的检查项
**语言绑定 (Python/Rust/Go/Java/Dart/Woolang)**
- FFI 调用安全性(指针、回调、生命周期)
- 资源释放Handle/Destroy 配对)
-`include/AsstCaller.h` 公共 API 的一致性
- 错误传播与异常处理
**Python (tools/)**
- 类型注解一致性
- 异常处理(不吞异常)
- 文件路径跨平台处理
**JSON (resource/)**
- Schema 合规性
- 模板匹配参数合理性
- 多语言/多服务器资源一致性
## Phase 2: 并行 Review
按优先级批次启动 subagent
```
第一批P0 Unit3-5 个并行)
第二批P1 Unit5-7 个并行)
第三批P2 Unit剩余全部
```
每个 review subagent 的 prompt 模板:
```
你是 MAA 项目的代码审查员。审查以下文件,找出:
1. Bug逻辑错误、边界条件、竞态、崩溃风险
2. 安全问题(缓冲区溢出、注入、信息泄露、不安全的反序列化)
3. 性能问题不必要的拷贝、内存分配热点、O(n²) 算法)
4. 跨平台兼容性(平台特定代码未条件编译、路径分隔符硬编码)
5. 可维护性(巨型函数、重复代码、缺少错误处理)
项目语言:{language}
文件范围:{files}
背景:{background}
重点关注:{focus_areas}
输出格式:按严重性排序的问题列表(最多 Top 8。每个问题包含
- 严重性Critical / Major / Minor
- 位置:文件名 + 行号范围
- 问题:一句话描述
- 影响:会导致什么后果
- 建议:修复方向(一句话)
- 代码片段:相关代码(可选,简短引用即可)
```
## Phase 3: 汇总 & 生成报告
收集所有 Unit 的发现,按以下步骤生成报告:
1. **去重合并**:同一 bug 在多个 Unit 被发现时,保留最详细的描述
2. **分类归类**
| 分类 | 含义 | 图标 |
|------|------|------|
| 崩溃/安全 | 可导致崩溃或被利用 | 🔴 |
| 可靠性 | 影响功能正确性 | 🟠 |
| 性能 | 影响运行效率 | 🟡 |
| 兼容性 | 跨平台/版本兼容问题 | 🔵 |
| 代码质量 | 可维护性与规范 | ⚪ |
1. **按模块和严重性排序**
2. **生成统计摘要**
### 报告模板
将报告输出到项目根目录的 `code-review-report.md`,使用以下模板:
```markdown
# MAA 代码审查报告
> 审查时间:{date}
> 审查范围:{modules_reviewed}
> Review Unit 数量:{unit_count}
## 摘要
| 严重性 | 数量 |
|--------|------|
| 🔴 Critical | {n} |
| 🟠 Major | {n} |
| 🟡 Minor | {n} |
| 总计 | {total} |
| 模块 | Critical | Major | Minor |
|------|----------|-------|-------|
| MaaCore (C++) | {n} | {n} | {n} |
| MaaWpfGui (C#) | {n} | {n} | {n} |
| MaaMacGui (Swift) | {n} | {n} | {n} |
| MAAUnified (C#/Avalonia) | {n} | {n} | {n} |
| maa-cli (Rust) | {n} | {n} | {n} |
| MaaUtils (C++) | {n} | {n} | {n} |
| MaaWineBridge (C) | {n} | {n} | {n} |
| 语言绑定 | {n} | {n} | {n} |
| tools (Python) | {n} | {n} | {n} |
| resource (JSON) | {n} | {n} | {n} |
## 🔴 Critical 问题
### [{序号}] {问题标题}
- **模块**{module}
- **文件**`{file}:{line_range}`
- **分类**{category}
- **描述**{description}
- **影响**{impact}
- **建议修复方向**{suggestion}
{code_snippet可选}
---
## 🟠 Major 问题
### [{序号}] {问题标题}
...
## 🟡 Minor 问题
### [{序号}] {问题标题}
...
## 审查覆盖范围
| Review Unit | 模块 | 焦点 | 优先级 | 文件数 |
|-------------|------|------|--------|--------|
| {unit_name} | {module} | {focus} | {priority} | {file_count} |
| ... | ... | ... | ... | ... |
## 附注
- 本报告仅列出发现,未执行任何修复
- 建议按 Critical → Major → Minor 顺序处理
- 部分问题可能需要跨模块协同修复
```
## 执行要点
- **只审不修**:本 skill 不修改任何代码,所有发现仅记录到报告
- **报告路径**:默认输出到 `code-review-report.md`,用户可指定其他路径
- **增量 vs 全量**:如用户指定范围(如"只看 MaaCore"),相应缩减 Unit 拆分
- **subagent 并行上限**:每批不超过 7 个,避免上下文竞争
- **代码片段引用**:报告中引用代码时使用 ` ```startLine:endLine:filepath ` 格式

View File

@@ -1,117 +1,212 @@
{
"repo_notes": [
{
"content": "【语言要求】所有 wiki 页面标题、正文、说明文字必须使用简体中文撰写。涉及到的外部链接如有中文版本,优先使用中文链接(如 https://docs.maa.plus/zh-cn/ 而非英文版)。仅在中文名不通用时保留英文术语(如 OCR、ADB、CLI、JSON 等缩写),其余一律使用中文。",
"author": "maintainer"
"content": "所有 wiki 页面标题、正文、说明文字必须使用简体中文;涉及外部链接时优先使用中文文档,如 docs.maa.pluszh-cn 页面;仅在中文名不通用时保留 OCR、ADB、CLI、JSON、API 等缩写。"
},
{
"content": "MAAMAA Assistant Arknights是一款基于图像识别的《明日方舟》自动化助手支持 Windows / Linux / macOS 三平台。核心部分 MaaCore 使用 C++20 编写,位于 src/MaaCore/Windows 图形界面 MaaWpfGui 位于 src/MaaWpfGui/C# + WPF命令行工具 maa-cli 位于 src/maa-cli/Rust子模块macOS 界面 MaaMacGui 位于 src/MaaMacGui/(子模块)。项目使用 CMake 构建,第三方依赖在 3rdparty/,对外 C 头文件在 include/。项目许可证为 AGPL-3.0-only。",
"author": "maintainer"
"content": "MAA 是基于图像识别的《明日方舟》自动化助手,仓库中的主要实现集中在 src/MaaCore、src/MaaWpfGui、resource、docs、tools、include文档应围绕这些主干说明系统关系。"
},
{
"content": "resource/ 目录包含游戏相关的识别资源与任务数据,体量很大,含大量 JSON 任务定义文件和模板图片。这是 MAA 功能实现的关键数据层——所有任务流程(作战、公招、基建等)的识别模板、任务流程 JSON 均在此目录下。需要重点说明 resource 的目录结构和任务 JSON 的编写规则。",
"author": "maintainer"
"content": "src/maa-cli、src/MaaMacGui、src/MAAUnified、src/MaaUtils、test、3rdparty/EmulatorExtras 是子模块或边界模块;说明它们与主仓库的集成关系即可,不要假设所有内部实现都在当前仓库。"
},
{
"content": "MAA 提供多语言集成接口Cinclude/AsstCaller.h、Pythonsrc/Python/、Javasrc/Java/、Rustsrc/Rust/、Golangsrc/Golang/、Dartsrc/Dart/、Woolangsrc/Woolang/)等。协议文档详见 https://docs.maa.plus/zh-cn/protocol/integration.html 。tools/ 目录包含丰富的内部工具脚本用于资源更新ResourceUpdater、OTA 打包OTAPacker、模板优化OptimizeTemplates、海外客户端适配OverseasClients、肉鸽相关工具等。",
"author": "maintainer"
"content": "MaaCore 需要按 Assistant、Controller、Vision、Task、Config 的协作关系来写,而不是仅按目录逐个罗列;重点说明任务调度、设备控制、视觉识别、任务执行和资源加载如何配合。"
},
{
"content": "docs/ 目录是基于 VuePress 的多语言文档站点https://docs.maa.plus包含用户手册、开发指南、协议文档等。.github/ 目录包含 CI/CD 工作流ci.yml、release-*.yml 等、Issue 模板、自动化机器人配置。test/ 为 Git 子模块 MaaTestSet用于回归测试。",
"author": "maintainer"
"content": "resource/tasks 目录是任务定义的主入口,加载时会递归合并目录内 JSON旧的 tasks.json 只是兼容旧结构的 deprecated fallback不应继续作为主要入口来描述。"
},
{
"content": "resource/global/<client>/resource 与 resource/platform_diff/*/resource 是覆盖层,用于外服适配和平台差异;说明时要突出主资源与覆盖资源的关系,而不是把它们写成独立产品线。"
},
{
"content": "WPF GUI 是主仓库中的主要图形界面CLI、Mac GUI 与各语言绑定是 MaaCore 的其他入口;文档应强调共享核心引擎、不同接入层的整体架构。"
},
{
"content": "unit_test 是仓库内的 Catch2 与 CTest 单元测试体系test 是 MaaTestSet 回归测试子模块docs 是独立的 VuePress 文档站,应按 manual、protocol、develop、glossary 等内容域来组织说明。"
},
{
"content": "interface.json 定义 controller 与 resource 变体package-definition.json 定义发布包形态;构建、发布和资源相关页面需要覆盖这两个入口文件的作用。"
}
],
"pages": [
{
"title": "项目总览",
"purpose": "介绍 MAA 项目的整体定位、核心功能(自动作战、基建换班、公招识别、肉鸽自动化等)、支持平台、许可证,以及仓库的高层目录结构概览。引用链接使用中文文档 https://docs.maa.plus/zh-cn/"
"purpose": "介绍 MAA 的产品定位、支持平台、许可证、顶层目录结构,以及 MaaCore、resource、前端入口、自动化功能和工程体系之间的阅读路径本页只做导航与高层概览不展开实现细节。",
"page_notes": [
{
"content": "本页只负责建立阅读路径和高层认知,不重复 MaaCore、resource、自动化功能或工程体系子页中的实现细节。"
}
]
},
{
"title": "系统架构",
"purpose": "描述 MAA 的整体系统架构MaaCoreC++ 核心库)作为后端引擎,通过 C 接口对外暴露功能;上层由 WPF GUI / macOS GUI / CLI 等前端调用。说明 Controller(连接控制)、Vision图像识别、Task任务流水线三大子系统的关系以及 resource 数据层如何驱动任务执行",
"parent": "项目总览"
"title": "MaaCore 引擎",
"purpose": "说明 src/MaaCore 的整体运行时结构,重点描述 Assistant、Controller、Vision、Task、Config 五个核心部分如何协作构成自动化引擎。",
"parent": "项目总览",
"page_notes": [
{
"content": "优先围绕 Assistant、Controller、Vision、Task、Config 的协作关系展开,并用 src/MaaCore 中的实际类型和目录说明运行时结构。"
}
]
},
{
"title": "MaaCore 核心库",
"purpose": "详细文档化 src/MaaCore/ 的内部结构包括Assistant 主类与任务调度、Controller 子系统ADB 连接、Minitouch/MaaTouch 触控、Vision 子系统模板匹配、OCR 识别、特征检测、Task 子系统任务流水线、AbstractTask 基类和各具体任务实现)。重点说明任务是如何由 JSON 定义驱动的",
"parent": "系统架构"
},
{
"title": "任务流水线与任务 JSON",
"purpose": "文档化 MAA 的任务流程协议resource/ 中的 tasks.json 文件如何定义识别-动作流程包括模板匹配TemplateMatch、OCR 识别OcrDetect、各种 action 类型、next/timeout/onError 跳转逻辑等。参考协议文档 https://docs.maa.plus/zh-cn/protocol/task-schema.html",
"parent": "MaaCore 核心库"
},
{
"title": "图像识别与 OCR",
"purpose": "文档化 src/MaaCore/ 中 Vision 子系统的实现OpenCV 模板匹配、PaddleOCR 文字识别、ONNX Runtime 推理加速、DirectML GPU 加速、特征点检测等。说明识别流程如何与任务流水线配合",
"parent": "MaaCore 核心库"
"title": "Assistant 与公共 API",
"purpose": "文档化 Assistant 的任务队列、线程模型和生命周期管理,以及 include/AsstCaller.h 暴露的公共 C 接口如何作为各类前端和绑定层的统一调用入口。",
"parent": "MaaCore 引擎"
},
{
"title": "设备连接与控制器",
"purpose": "文档化 Controller 子系统ADB 连接管理、截图方式screencap、触控方式MinitouchMaaTouch、ADB input、模拟器适配。涵盖 src/MaaCore/ 中 Controller 相关代码和 3rdparty/EmulatorExtras 子模块",
"parent": "MaaCore 核心库"
"purpose": "文档化 Controller 子系统,包括 ADB 连接、截图链路、触控链路、模拟器适配、MinitouchMaaTouch,以及控制器实现如何为任务执行提供设备 I/O。",
"parent": "MaaCore 引擎"
},
{
"title": "资源目录结构",
"purpose": "文档化 resource/ 目录的完整结构各客户端国服、国际服、日服、韩服、繁中服的资源组织方式、模板图片目录、tasks.json 的分层结构、基建数据、公招数据、关卡导航数据、肉鸽相关资源等",
"parent": "系统架构"
"title": "图像识别与 OCR",
"purpose": "文档化 Vision 子系统中模板匹配、OCR、特征检测、ONNX 推理和 PaddleOCR 等识别能力,以及各类分析器如何为任务执行提供决策输入。",
"parent": "MaaCore 引擎"
},
{
"title": "任务引擎与执行模型",
"purpose": "文档化 AbstractTask、PackageTask、InterfaceTask、ProcessTask、任务插件和流程控制机制说明任务定义如何转换为可执行的自动化流程。",
"parent": "MaaCore 引擎"
},
{
"title": "资源与配置系统",
"purpose": "说明 resource 目录与 MaaCore 配置加载体系的关系,概述任务数据、模板、模型、外服覆盖和专用数据包如何共同驱动自动化逻辑。",
"parent": "项目总览"
},
{
"title": "资源加载与覆盖规则",
"purpose": "文档化 ResourceLoader、TaskData、TemplResource 和 WPF 侧资源加载流程,说明主资源、缓存资源、外服资源和平台差异资源的搜索路径与叠加顺序。",
"parent": "资源与配置系统",
"page_notes": [
{
"content": "以 src/MaaCore/Config/ResourceLoader.cpp、src/MaaCore/Config/TaskData.cpp、src/MaaWpfGui/Main/AsstProxy.cs 和 interface.json 为主要事实锚点,明确目录优先、覆盖叠加和外服差异的加载规则。"
}
]
},
{
"title": "任务 JSON 与任务树",
"purpose": "文档化 resource/tasks 目录中的任务定义结构、任务 JSON 的识别与动作协议、next、timeout、onError 等跳转规则,以及任务树的组织方式。",
"parent": "资源与配置系统",
"page_notes": [
{
"content": "强调 resource/tasks 是主入口、目录会递归合并 JSON、旧的 tasks.json 是 deprecated fallback并说明任务树与模板资源之间的关系。"
}
]
},
{
"title": "模板、OCR 模型与识别资源",
"purpose": "文档化 resource/template、resource/onnx、resource/PaddleOCR、resource/PaddleCharOCR、resource/ocr_config.json、resource/battle_data.json 等识别资源的职责分工,以及它们如何支撑视觉分析。",
"parent": "资源与配置系统"
},
{
"title": "外服与平台差异资源",
"purpose": "文档化 resource/global 与 resource/platform_diff 的目录结构、覆盖逻辑与适配用途,说明国际服、日服、韩服、繁中服以及 PC 平台差异资源如何在主资源之上叠加。",
"parent": "资源与配置系统"
},
{
"title": "专用数据包与玩法资源",
"purpose": "文档化 resource/copilot、resource/custom_infrast、resource/roguelike、resource/Arknights-Tile-Pos、resource/recruitment.json、resource/infrast.json、resource/stages.json 等专用数据包的职责,以及它们与自动化功能页的关系。",
"parent": "资源与配置系统"
},
{
"title": "前端与集成",
"purpose": "概述 WPF GUI、CLI、Mac GUI 和多语言绑定等接入层如何共享 MaaCore以及本仓库实现与子模块边界之间的关系。",
"parent": "项目总览"
},
{
"title": "WPF 图形界面",
"purpose": "文档化 src/MaaWpfGui/结构:MVVM 架构(基于 Stylet 框架)、主要 ViewModelTaskQueueViewModel、SettingsViewModel 等)、界面功能模块(任务队列、设置页面、公招识别、远程控制等)、本地化与多语言支持",
"parent": "系统架构"
"purpose": "文档化 src/MaaWpfGui 的 MVVM 结构、主要 ViewModel 与 Services、界面功能模块、本地化资源以及它如何与 MaaCore 交互。",
"parent": "前端与集成"
},
{
"title": "命令行工具 maa-cli",
"purpose": "文档化 src/maa-cli/ 子模块Rust 实现的命令行工具,支持 Linux/macOS/Windows用于无 GUI 环境下运行 MAA 任务。说明其配置文件格式、任务调度方式、与 MaaCore 的集成方式。参考 https://docs.maa.plus/zh-cn/manual/cli/",
"parent": "系统架构"
"purpose": "文档化 src/maa-cli 子模块作为 Rust CLI 的定位、配置与调度角色,以及它与 MaaCore 和无 GUI 使用场景的关系。",
"parent": "前端与集成"
},
{
"title": "多语言集成接口",
"purpose": "文档化 MAA 对外提供的多语言 API 接口C 接口include/AsstCaller.h、Pythonsrc/Python/、Javasrc/Java/、Rustsrc/Rust/、Golangsrc/Golang/、Dartsrc/Dart/)等。说明回调消息协议和集成方法。参考 https://docs.maa.plus/zh-cn/protocol/integration.html",
"parent": "系统架构"
"purpose": "文档化 include/AsstCaller.h 作为统一接口入口,以及 src/Python、src/Java、src/Rust、src/Golang、src/Dart、src/Woolang 等绑定层如何在不同语言环境中接入 MaaCore。",
"parent": "前端与集成",
"page_notes": [
{
"content": "以 include/AsstCaller.h 为统一入口,按统一 C 接口加各语言封装层的方式组织内容,不按语言逐一展开成平行小页面。"
}
]
},
{
"title": "核心功能详解",
"purpose": "按功能模块分别介绍 MAA 的核心自动化能力包括自动作战关卡导航与掉落识别、智能基建干员效率计算与排班、自动公招标签识别与策略选择、肉鸽自动化Roguelike 策略与干员选择、自动抄作业Copilot JSON等"
"title": "自动化功能",
"purpose": "概述 MAA 主要自动化能力的功能分区与实现入口,包括作战、基建、公招、肉鸽、抄作业和专项玩法等主题。",
"parent": "项目总览"
},
{
"title": "自动作战与关卡导航",
"purpose": "文档化自动作战功能的实现:关卡选择导航、理智管理、代理指挥、掉落识别与数据上传(企鹅物流、一图流)。涵盖 MaaCore 中 FightTask 及相关代码",
"parent": "核心功能详解"
"purpose": "文档化 Fight 相关任务的关卡选择导航、理智管理、代理指挥、掉落识别与数据上传流程,以及对应的数据资源与任务链路。",
"parent": "自动化功能"
},
{
"title": "基建自动换班",
"purpose": "文档化基建功能的实现:干员效率计算、单设施最优解换班、自定义排班 JSON 支持。参考 https://docs.maa.plus/zh-cn/protocol/base-scheduling-schema.html",
"parent": "核心功能详解"
"purpose": "文档化 Infrast 相关任务的效率计算、排班与换班逻辑、自定义排班数据,以及基建资源与任务执行之间的关系。",
"parent": "自动化功能"
},
{
"title": "自动公招与标签识别",
"purpose": "文档化公招标签 OCR、标签组合策略、识别结果处理与 recruitment 数据的关系,以及公招自动化的主要任务链路。",
"parent": "自动化功能"
},
{
"title": "肉鸽自动化",
"purpose": "文档化肉鸽(Roguelike)自动化功能:自动刷源石锭和等级、烧水和凹直升策略、干员识别与练度评估、分队选择与招募逻辑。涵盖 MaaCore 中 Roguelike 相关代码和 resource 中的肉鸽资源数据",
"parent": "核心功能详解"
"purpose": "文档化 Roguelike 相关任务的主题配置、招募、练度识别、商店、遭遇、策略参数和不同主题之间的资源差异。",
"parent": "自动化功能"
},
{
"title": "自动抄作业",
"purpose": "文档化 Copilot(自动抄作业)功能:作业 JSON 格式、干员部署与技能释放逻辑、与 prts.plus 作业站的配合。参考 https://docs.maa.plus/zh-cn/protocol/copilot-schema.html",
"parent": "核心功能详解"
"purpose": "文档化 Copilot 作业数据格式、干员部署与技能释放逻辑、作业资源的组织方式,以及与外部作业站的关系。",
"parent": "自动化功能"
},
{
"title": "构建系统与 CI/CD",
"purpose": "文档化项目的构建配置CMake 构建系统、maadeps 依赖管理、各平台编译流程Windows/Linux/macOS、.github/workflows/ 中的 CI 工作流ci.yml、smoke-testing.yml、release-*.yml 等)、自动化发布流程"
"title": "专项玩法自动化",
"purpose": "文档化 SSS、Reclamation、MiniGame 等不适合并入主功能页的专项玩法任务族群,以及它们在 Task 与 resource 中的组织方式。",
"parent": "自动化功能"
},
{
"title": "工程体系",
"purpose": "概述构建、发布、测试、文档站、内部工具与子模块边界之间的工程协作关系。",
"parent": "项目总览"
},
{
"title": "构建系统、CI/CD 与发布包",
"purpose": "文档化 CMake 构建体系、依赖管理、跨平台构建流程、.github/workflows 中的持续集成流程,以及 package-definition.json 定义的发布包形态。",
"parent": "工程体系"
},
{
"title": "测试体系与回归资源",
"purpose": "文档化 unit_test 的 Catch2 与 CTest 单元测试体系、test 子模块的回归测试角色、suite 组织方式,以及 CI 中的测试选择逻辑。",
"parent": "工程体系",
"page_notes": [
{
"content": "必须显式区分 unit_test 与 test 子模块,分别说明它们的定位、运行方式与 CI 集成方式,避免混写为单一测试体系。"
}
]
},
{
"title": "内部工具集",
"purpose": "文档化 tools/ 目录下的开发与维护工具ResourceUpdater资源更新、OTAPackerOTA 打包、OptimizeTemplates模板优化、OverseasClients海外客户端适配、RoguelikeRecruitmentTool肉鸽招募工具、ImageCropper图片裁剪",
"parent": "构建系统与 CI/CD"
"purpose": "文档化 tools 目录下用于资源更新、模板优化、OTA 打包、海外客户端适配、肉鸽辅助和图像处理的内部工具及其维护用途。",
"parent": "工程体系"
},
{
"title": "外服适配",
"purpose": "文档化如何为国际服、日服、韩服、繁中服适配 MAA 功能:资源替换流程、截图与 JSON 修改方法、多客户端资源目录结构。参考 https://docs.maa.plus/zh-cn/develop/overseas-client-adaptation.html",
"parent": "核心功能详解"
"title": "文档站、协议与开发指南",
"purpose": "文档化 docs 目录作为 VuePress 文档站的结构,串联 manual、protocol、develop、glossary 等内容域,以及它们与外部中文文档站的关系。",
"parent": "工程体系",
"page_notes": [
{
"content": "优先使用 docs 目录内部结构解释文档体系,再引用 docs.maa.plus 中文页面;不要按不同语言版本重复讲述相同主题。"
}
]
},
{
"title": "开发指南",
"purpose": "面向贡献者的开发入门文档环境搭建、编译步骤、代码规范、Git 工作流dev-v2 分支、Issue Bot 使用、PR 流程。参考 https://docs.maa.plus/zh-cn/develop/development.html"
"title": "仓库结构与子模块边界",
"purpose": "文档化顶层目录、include、3rdparty、resource、docs、src 等入口的职责分工,并明确各个子模块或边界模块在仓库中的定位。",
"parent": "工程体系"
}
]
}

View File

@@ -45,8 +45,6 @@ body:
**若待上传压缩包大于 25MB请转而上传该压缩包同日期文件夹中的若干小压缩包**
**若为 MAA 闪退问题,如果 %LOCALAPPDATA%\CrashDumps 中存在 MAA.exe.dmp 文件,请一并上传**
若正在使用 macOS请点击屏幕左上角的“文件”点击“打开日志文件夹”
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea

View File

@@ -49,8 +49,6 @@ body:
**请在 MAA -> 设置 -> 问题反馈中找到生成日志压缩包按钮,点击并上传压缩包**
**请直接将完整的文件拖拽进来,而非自己裁切或复制的片段;若文件体积过大可压缩后再上传**
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea

View File

@@ -49,8 +49,6 @@ body:
**请在 MAA -> 设置 -> 问题反馈中找到生成日志压缩包按钮,点击并上传压缩包**
**请直接将完整的文件拖拽进来,而非自己裁切或复制的片段;若文件体积过大可压缩后再上传**
placeholder: |
请确认上传文件前已关闭 MAA
validations:
required: true
- type: textarea

View File

@@ -47,8 +47,6 @@ body:
**If the archive to upload is larger than 25MB, please upload smaller archives from the same date folder instead.**
**If the issue is related to MAA crashing, please upload the MAA.exe.dmp file found in %LOCALAPPDATA%\CrashDumps if it exists**
If you are using macOS, please click the "File" option in the top-left corner of the screen, then click "Open Log Folder".
placeholder: |
Please confirm that MAA is not running before uploading files.
validations:
required: true
- type: textarea

View File

@@ -41,7 +41,7 @@ jobs:
- name: Push changes
if: ${{ steps.check_changes.outcome == 'failure' }}
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@d30dc2d070765d7e509df00c34c5fa2dd636ff74 # master as of 2026-05-06
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}

View File

@@ -150,10 +150,15 @@ jobs:
cp MaaFramework-temp/bin/*Win32ControlUnit* install/
cp MaaFramework-temp/bin/*AdbControlUnit* install/
- name: Generate global.json
shell: bash
run: |
echo '{"sdk":{"version":"10.0.203","rollForward":"disable"}}' > global.json
- name: Setup .NET SDK
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.0.202'
global-json-file: global.json
- name: Cache .nuke/temp, ~/.nuget/packages
id: cache-nuget
@@ -203,6 +208,7 @@ jobs:
with:
name: MAAComponent-DebugSymbol-win-${{ matrix.arch }}
path: install/MAAComponent-DebugSymbol-${{ needs.meta.outputs.tag }}-win-${{ matrix.arch }}.zip
compression-level: 0
- name: Organize install files
shell: bash
@@ -225,6 +231,7 @@ jobs:
with:
name: MAA-win-${{ matrix.arch }}
path: install/MAA-*.zip
compression-level: 0
ubuntu:
name: Build for Ubuntu
@@ -302,7 +309,7 @@ jobs:
mkdir -pv release
mkdir -pv Maa.AppDir/usr/share/maa
cp -r install/* Maa.AppDir/usr/share/maa/
wget -c https://raw.githubusercontent.com/MaaAssistantArknights/design/main/logo/maa-logo_512x512.png -O Maa.AppDir/maa.png
wget -c https://raw.githubusercontent.com/MaaAssistantArknights/design/main/v2/icons/maa-logo_512x512.png -O Maa.AppDir/maa.png
mkdir -pv Maa.AppDir/usr/share/icons/hicolor/512x512/apps/
cp -v Maa.AppDir/maa.png Maa.AppDir/usr/share/icons/hicolor/512x512/apps/
cp -v appimage-maa Maa.AppDir/usr/share/maa/maa
@@ -343,6 +350,80 @@ jobs:
path: |
release/*.AppImage
release/*.tar.gz
compression-level: 0
android:
name: Build for Android
needs: meta
runs-on: macos-26
strategy:
matrix:
arch: [arm64, x64]
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
show-progress: false
- name: Fetch submodules
run: |
git submodule update --init --depth 1 src/MaaUtils
- name: Cache MaaDeps
id: cache-maadeps
uses: actions/cache@v5
continue-on-error: true
with:
path: ./src/MaaUtils/MaaDeps
key: ${{ runner.os }}-${{ matrix.arch }}-android-maadeps-${{ hashFiles('tools/maadeps-download.py') }}
- name: Bootstrap MaaDeps
if: steps.cache-maadeps.outputs.cache-hit != 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 tools/maadeps-download.py ${{ matrix.arch }}-android
- name: Setup Android NDK
id: setup-ndk
uses: nttld/setup-ndk@v1
with:
ndk-version: r29
- name: Configure, build and install
run: |
cmake -B build --preset 'android-publish-${{ matrix.arch }}' \
-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake \
-DMAA_HASH_VERSION='${{ needs.meta.outputs.tag }}'
cmake --build build --parallel $(sysctl -n hw.logicalcpu)
cmake --install build --prefix install
- name: Download MaaFramework
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
latest: true
fileName: "*android-${{ matrix.arch == 'arm64' && 'aarch64' || 'x86_64' }}*.zip"
extract: true
out-file-path: MaaFramework-temp
- name: Copy MaaAndroidNativeControlUnit
run: |
cp MaaFramework-temp/bin/libMaaAndroidNativeControlUnit.so install/
- name: Tar files
run: |
cd install
tar czvf $GITHUB_WORKSPACE/MAAComponent-${{ needs.meta.outputs.tag }}-android-${{ matrix.arch }}.tar.gz .
- name: Upload MAA to GitHub
uses: actions/upload-artifact@v7
with:
name: MAAComponent-android-${{ matrix.arch }}
path: MAAComponent-*.tar.gz
compression-level: 0
macOS-Core:
name: Build Core for macOS
@@ -440,14 +521,14 @@ jobs:
- name: Install Developer ID certificate
if: startsWith(github.ref, 'refs/tags/v')
uses: apple-actions/import-codesign-certs@v6
uses: apple-actions/import-codesign-certs@v7
with:
p12-file-base64: ${{ secrets.HGUANDL_SIGN_CERT_P12 }}
p12-password: ${{ secrets.HGUANDL_SIGN_CERT_PASSWD }}
- name: Download provisioning profiles
if: startsWith(github.ref, 'refs/tags/v')
uses: apple-actions/download-provisioning-profiles@v5
uses: apple-actions/download-provisioning-profiles@v6
with:
bundle-id: "com.hguandl.MeoAsstMac"
issuer-id: ${{ secrets.HGUANDL_APPSTORE_ISSUER }}
@@ -483,6 +564,8 @@ jobs:
with:
name: MAA-macos-runtime-universal
path: runtime/MAA-${{ needs.meta.outputs.tag }}-macos-runtime-universal.zip
compression-level: 0
- name: Build XCFramework
run: |
@@ -569,7 +652,7 @@ jobs:
release:
name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
needs: [meta, windows, ubuntu, macOS-Core, macOS-GUI]
needs: [meta, windows, ubuntu, android, macOS-Core, macOS-GUI]
runs-on: ubuntu-latest
steps:
- name: Download MAA from GitHub
@@ -609,11 +692,6 @@ jobs:
env:
GH_TOKEN: ${{ secrets.MISTEOWORKFLOW }}
- name: Create issue on failure
if: failure()
uses: actions-cool/issues-helper@v3
with:
actions: "create-issue"
title: "Errors occured during release ${{ needs.meta.outputs.tag }}"
body: |
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

View File

@@ -33,7 +33,7 @@ jobs:
# - https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/dev-v2/.claude/skills/maa-issue-log-analysis/SKILL.md
- name: Analyze issue with AI
id: analysis
uses: Misteo/ai-issue-analysis@main
uses: Misteo/ai-issue-analysis@c0b258aa9660a1efd7316c9ed6d9ef81f1ac734a # main as of 2026-05-06
with:
github-token: ${{ secrets.MAA_BOT_TOKEN }}
copilot-github-token: ${{ secrets.COPILOT_GITHUB_TOKEN }}

View File

@@ -104,7 +104,7 @@ jobs:
- name: Push changes
if: steps.check_push.outputs.is_pr != 'True' && steps.commit_changes.outputs.have_commits == 'True' && github.repository_owner == 'MaaAssistantArknights'
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@d30dc2d070765d7e509df00c34c5fa2dd636ff74 # master as of 2026-05-06
with:
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}
branch: ${{ github.ref }}

View File

@@ -10,24 +10,6 @@ jobs:
if: ${{ !github.event.pull_request.merged && github.base_ref != 'master-v2' }}
runs-on: ubuntu-latest
steps:
- name: Clean up previous comment
uses: actions/github-script@v9
with:
script: |
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number
});
const previousComment = comments.find(comment => comment.user.login === 'github-actions[bot]' && comment.body.includes('invalid commit(s)'));
if (previousComment) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: previousComment.id
});
}
- name: Check commits
uses: actions/github-script@v9
with:
@@ -40,20 +22,59 @@ jobs:
});
const regex = /^((build|chore|ci|docs?|feat!?|fix|perf|refactor|rft|style|test|i18n|typo|debug)[\:\.\(\,]|[Rr]evert|[Rr]elease|[Rr]eapply)/;
const invalidCommits = commits.filter(commit => !regex.test(commit.commit.message) || commit.parents.length > 1);
const badTitleCommits = commits.filter(commit => !regex.test(commit.commit.message) && commit.parents.length <= 1);
const mergeCommits = commits.filter(commit => commit.parents.length > 1);
const allInvalid = [...badTitleCommits, ...mergeCommits];
console.log(`Checked ${commits.length} commit(s)`);
console.log(`Checked ${commits.length} commit(s), ${badTitleCommits.length} bad title(s), ${mergeCommits.length} merge commit(s)`);
if (invalidCommits.length > 0) {
const invalidCommitNames = invalidCommits.map(commit => commit.commit.message);
const invalidCommitInfoList = invalidCommits.map(commit => `- ${commit.commit.message.split("\n")[0]} [\`${commit.sha.substring(0, 7)}\`](${commit.html_url})`).join("\n");
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number
});
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: `## ⚠️ Found ${invalidCommits.length} invalid commit(s):\n\n${invalidCommitInfoList}\n\n---\nPlease follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format, and **DO NOT** use merge commits.\n请遵循 [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) 格式,以及**不要**使用Merge Commit修改 Commit Message 无法绕过检测)。`
});
const previousComment = comments.find(comment => comment.user.login === 'github-actions[bot]' && comment.body.includes('invalid commit(s)'));
core.setFailed(`Found ${invalidCommits.length} invalid commit(s):\n${invalidCommitNames.join("\n-------------------\n")}`);
if (allInvalid.length > 0) {
const formatList = (list) => list.map(commit => `- ${commit.commit.message.split("\n")[0]} [\`${commit.sha.substring(0, 7)}\`](${commit.html_url})`).join("\n");
let bodySections = [];
if (badTitleCommits.length > 0) {
bodySections.push(`### 不合规提交名 | Invalid Commit Title(s):\n\n${formatList(badTitleCommits)}`);
}
if (mergeCommits.length > 0) {
bodySections.push(`### 不应使用 Merge Commit | Merge Commit(s) Detected:\n\n${formatList(mergeCommits)}`);
}
const newBody = `## ⚠️ 发现 ${allInvalid.length} 个不合规提交 | Found ${allInvalid.length} invalid commit(s):\n\n${bodySections.join("\n\n")}\n\n---\n请遵循 [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) 格式,以及**不要**使用Merge Commit修改 Commit Message 无法绕过检测)。\nPlease follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format, and **DO NOT** use merge commits.`;
if (previousComment && previousComment.body === newBody) {
console.log("Invalid commits unchanged, skipping comment update");
} else {
if (previousComment) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: previousComment.id
});
}
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: newBody
});
}
const allInvalidNames = allInvalid.map(commit => commit.commit.message);
core.setFailed(`Found ${allInvalid.length} invalid commit(s):\n${allInvalidNames.join("\n-------------------\n")}`);
} else {
if (previousComment) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: previousComment.id
});
}
}

View File

@@ -25,7 +25,7 @@ jobs:
- name: Commit and push changes
if: steps.pre-commit.outcome == 'failure' && github.repository_owner == 'MaaAssistantArknights'
uses: actions-js/push@master
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # master as of 2026-05-06
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
message: "chore: Auto update by pre-commit hooks

View File

@@ -206,10 +206,15 @@ jobs:
run: |
cp MaaFramework-temp/bin/*Win32ControlUnit* install/
- name: Generate global.json
shell: bash
run: |
echo '{"sdk":{"version":"10.0.203","rollForward":"disable"}}' > global.json
- name: Setup .NET SDK
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.0.202'
global-json-file: global.json
- name: Cache .nuke/temp, ~/.nuget/packages
id: cache-nuget

View File

@@ -139,15 +139,6 @@ jobs:
prerelease: ${{ fromJSON(needs.create-tag.outputs.prerelease) }}
overwrite: true
- name: Create issue on failure
if: failure()
uses: actions-cool/issues-helper@v3
with:
actions: "create-issue"
title: "Failed to make OTA release for Windows"
body: |
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
make-ota-mac:
name: Build and Upload OTA for macOS
needs: create-tag
@@ -192,15 +183,6 @@ jobs:
prerelease: ${{ fromJSON(needs.create-tag.outputs.prerelease) }}
overwrite: true
- name: Create issue on failure
if: failure()
uses: actions-cool/issues-helper@v3
with:
actions: "create-issue"
title: "Failed to make OTA release for macOS"
body: |
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
release:
name: Publish to Release Mirrors
needs:

View File

@@ -113,18 +113,53 @@ jobs:
env:
RELEASE_TAG: ${{ needs.meta.outputs.RELEASE_TAG }}
WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.MAABOT_WINGET_TOKEN }}
WINGET_CREATE_VERSION: 'v1.12.8.0'
WINGET_CREATE_SHA256: '8BD738851B524885410112678E3771B341C5C716DE60FBBECB88AB0A363ED85D'
steps:
- name: Upload MAA to WinGet
uses: vedantmgoyal9/winget-releaser@main
with:
identifier: MaaAssistantArknights.MaaAssistantArknights
version: ""
installers-regex: "-win-"
max-versions-to-keep: 0
release-tag: ${{ env.RELEASE_TAG }}
fork-user: MaaAssistantArknights
token: ${{ secrets.MAABOT_WINGET_TOKEN }}
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'
$RELEASE_TAG = "${{ env.RELEASE_TAG }}"
# Fetch the release assets from GitHub Releases API and resolve actual download URLs
$headers = @{
Accept = "application/vnd.github+json"
"X-GitHub-Api-Version" = "2026-03-10"
}
if ($env:WINGET_CREATE_GITHUB_TOKEN) {
$headers.Authorization = "Bearer $env:WINGET_CREATE_GITHUB_TOKEN"
}
$release = Invoke-RestMethod `
-Uri "https://api.github.com/repos/MaaAssistantArknights/MaaAssistantArknights/releases/tags/$RELEASE_TAG" `
-Headers $headers
$URL_x64 = $release.assets | Where-Object { $_.name -match "-win-x64.zip$" } | Select-Object -First 1 -ExpandProperty browser_download_url
$URL_arm64 = $release.assets | Where-Object { $_.name -match "-win-arm64.zip$" } | Select-Object -First 1 -ExpandProperty browser_download_url
if (-not $URL_x64 -or -not $URL_arm64) {
Write-Error "Failed to resolve release assets from GitHub API for tag '$RELEASE_TAG'."
exit 1
}
# Download winget-create
curl.exe -JLO "https://github.com/microsoft/winget-create/releases/download/$env:WINGET_CREATE_VERSION/wingetcreate.exe"
# Verify the hash of wingetcreate.exe
if ((Get-FileHash wingetcreate.exe).Hash -ne $env:WINGET_CREATE_SHA256) {
Write-Error "wingetcreate.exe hash does not match expected value. Aborting."
exit 1
}
# Update the package using wingetcreate
.\wingetcreate.exe update MaaAssistantArknights.MaaAssistantArknights `
--version $RELEASE_TAG.TrimStart('v') `
--urls "$URL_x64|x64" "$URL_arm64|arm64" `
--submit
maa_cos:
name: Upload to MAA COS

View File

@@ -204,7 +204,7 @@ jobs:
./tools/ResourceUpdater/res_updater
- name: Wait for resource cloning
uses: yogeshlonkar/wait-for-jobs@v0
uses: yogeshlonkar/wait-for-jobs@v1
with:
ignore-skipped: 'false'
jobs: |
@@ -235,10 +235,23 @@ jobs:
run: |
./tools/ResourceUpdater/res_updater
- name: Setup python
uses: actions/setup-python@v6
with:
python-version: "3.11"
cache: pip
cache-dependency-path: |
tools/TaskSorter/requirements.txt
tools/OptimizeTemplates/requirements.txt
- name: Install TaskSorter dependencies
run: |
python -m pip install -r tools/TaskSorter/requirements.txt
- name: Sort tasks
id: task_sorting
run: |
python3 tools/TaskSorter/TaskSorter.py
python tools/TaskSorter/TaskSorter.py
echo "gitdiff=$(echo $(git diff --name-only --diff-filter=ACM 2>/dev/null | grep '\.json$'))" >> $GITHUB_OUTPUT
- name: Run prettier
@@ -251,25 +264,10 @@ jobs:
run: |
sh ./tools/ResourceUpdater/version.sh
- name: Setup python
if: steps.update_version.outputs.contains_png == 'True'
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Cache python packages
if: always() && steps.update_version.outputs.contains_png == 'True'
id: cache_python
uses: actions/cache@v5
continue-on-error: true
with:
path: ${{ env.pythonLocation }}/Lib/site-packages
key: ${{ runner.os }}-pip-optimize-templates-${{ hashFiles('./tools/OptimizeTemplates/requirements.txt') }}
- name: Install dependencies
if: steps.cache_python.outputs.cache-hit != 'true' && steps.update_version.outputs.contains_png == 'True'
if: steps.update_version.outputs.contains_png == 'True'
run: |
pip install -r tools/OptimizeTemplates/requirements.txt
python -m pip install -r tools/OptimizeTemplates/requirements.txt
- name: Setup oxipng
if: steps.update_version.outputs.contains_png == 'True'
@@ -280,7 +278,7 @@ jobs:
- name: Optimize png images
if: steps.update_version.outputs.contains_png == 'True'
run: |
python3 tools/OptimizeTemplates/optimize_templates.py --no-cleanup -p resource/template/items/ resource/template/infrast/
python tools/OptimizeTemplates/optimize_templates.py --no-cleanup -p resource/template/items/ resource/template/infrast/
- name: Commit changes
if: steps.update_version.outputs.changes == 'True'
@@ -308,7 +306,7 @@ jobs:
- name: Push changes
if: steps.add_files.outputs.have_commits == 'True'
uses: ad-m/github-push-action@master
uses: ad-m/github-push-action@d30dc2d070765d7e509df00c34c5fa2dd636ff74 # master as of 2026-05-06
with:
branch: ${{ github.ref }}
github_token: ${{ secrets.MAA_RESOURCE_SYNC }}

View File

@@ -21,7 +21,7 @@ jobs:
run: bash ./.github/scripts/sync-optional-submodules.sh --remote src/MAAUnified src/MaaMacGui src/maa-cli
- name: Commit and push changes
uses: actions-js/push@master
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # master as of 2026-05-06
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
message: "feat: Update Submodules MAAUnified, MaaMacGui, maa-cli

4
.gitignore vendored
View File

@@ -416,12 +416,13 @@ FodyWeavers.xsd
# !.vscode/launch.json
# !.vscode/extensions.json
*.code-workspace
*.csproj.lscache
# Local History for Visual Studio Code
.history/
# Claude Code
.claude/
.claude/*
!.claude/skills/
# Windows Installer files from build outputs
@@ -486,3 +487,4 @@ install-*
# CMake user presets
CMakeUserPresets.json
.ace-tool/

View File

@@ -1,121 +1,93 @@
## v6.8.0
### 牛牛初体验 DeepSleep被吓到眩晕瘫坐那一刻就像看到原子弹爆炸 | Highlights
本次版本更新我们依旧专注于提升用户体验。我们将始终秉持长期主义的原则理念,在尝试与思考中踏实前行。
#### 独立更新器与本地拖入更新
我们优化了 MAA 的更新流程,将更新部分拆分成独立的 exe 文件,以增强更新过程的可靠性。
***\[仅 Windows\]*** 另外,我们为无法直接下载 OTA 更新包,但可以从群文件等其他渠道获取完整包或增量包的用户,提供了直接拖入更新的功能。你只需要将对应的压缩包直接拖入 MAA 主窗口,牛牛就会自动识别并执行更新。
请确保压缩包名称符合完整包命名规则(`MAA-v{新版本}-win-{架构}.zip`)或 OTA 包命名规则(`MAAComponent-OTA-v{旧版本}_v{新版本}-win-{架构}.zip`),且架构(`x64``arm64`)与版本链(`{旧版本}`)和当前安装的 MAA 完全匹配,否则更新将被拒绝。
##### 建议内测版用户执行一次完整包清理替换
在独立更新器的编写过程中,我们修复了一个自内测版发布之初就存在的问题:
内测版在与正式版或公测版切换更新时,旧版本残留文件可能无法被正确清理,从而影响更新结果。
建议所有内测版用户下载一次完整包,并拖入 MAA 主窗口执行清理替换。
通过完整包更新时MAA 会保留 debug、cache、data、config 文件夹,其余文件会移入回收站;若你有自行添加或修改过文件,建议提前备份。
#### 一键长草优化
我们优化了一键长草功能的理智作战部分,现在可以指定在活动结束前 48 小时吃当期过期的理智药,确保能将更多的理智药投入到当期活动中。
我们为自动肉鸽部分新增了界园肉鸽月度小队与深入调查的支持,你现在可以在自动肉鸽的策略选项选择对应的策略了。
#### 海外服专属优化
我们在这个版本新增了海外服的基建线索快速放置功能,以及 SideStory「雪山降临1101」小游戏“喀兰贸易技术研发部”资源、OCR 与本地化内容。
----
## v6.11.0-beta.2
### Highlights
This update continues our focus on improving user experience. We will always adhere to the principle of long-termism, steadily moving forward through experimentation and reflection.
#### 任务队列交互全面升级
#### Standalone Updater and Local Drag-and-Drop Update
一键长草列表新增悬停操作按钮(复制、重命名、删除),支持一键复制任务配置;游戏内新增任务间快速导航,部分跨页面任务可通过小房子导航栏直接跳转,减少页面切换耗时。
We have optimized the MAA update process, splitting the update portion into independent exe files to enhance the reliability of the update process.
#### 公招与理智作战功能增强
***[Windows Only]*** Additionally, for users who cannot directly download OTA packages but can obtain full or incremental packages from other sources, we have provided a drag-and-drop update function. You only need to drag the corresponding archive directly into the MAA main window, and MAA will automatically recognize and execute the update.
公招新增"保留指定词条"功能,识别到指定 Tag 时自动跳过当前槽位;理智作战新增目标材料最大库存模式,可参考仓库数据自动计算需刷取数量。
Please ensure that the archive name matches either the full-package convention (`MAA-v{new version}-win-{architecture}.zip`) or the OTA-package convention (`MAAComponent-OTA-v{old version}_v{new version}-win-{architecture}.zip`), and that the architecture (`x64` or `arm64`) and version chain (`{old version}`) fully match the currently installed MAA; otherwise, the update will be rejected.
#### 设置页面搜索支持
##### We recommend that beta users perform a full package cleanup and replacement.
设置页面新增搜索功能,支持关键词高亮与自动筛选,快速定位目标配置项。
During the development of the standalone updater, we fixed an issue that existed since the initial beta release:
<details>
<summary><b>English</b></summary>
When switching between beta builds and stable or public-preview builds, leftover files from the previous version may not be cleaned up correctly, which can affect the update result.
#### Task Queue Interaction Overhaul
We recommend that all beta users download the full package once and drag it into the MAA main window to perform a cleanup and replacement.
The farming list now shows hover action buttons (copy, rename, delete) for quick task management. In-game QuickSwitch navigation lets certain cross-screen tasks jump directly via the dock bar, reducing page-switching overhead.
When updating with the full package, MAA will retain the debug, cache, data, and config folders; other files will be moved to the recycle bin. If you have added or modified any files, we recommend backing them up beforehand.
#### Recruitment & Sanity Combat Enhancements
#### *Farming* Optimization
Recruitment now supports "preserve tags" — automatically skipping a slot when specified tags are detected. Sanity combat adds a target material inventory mode that calculates required runs based on depot data.
We've optimized the *Combat* of the *Farming*. You can now specify that using sanity potions that expire this week within 48 hours before the activity ends, ensuring more sanity potions are used in the current event.
#### Settings Page Search
We've added support for the *Monthly Squad* and *Deep Investigation* for *Sui's Garden of Grotesqueries* in the *Auto I.S.*. You can now select the corresponding strategy in the *Auto I.S.* options.
The settings page now features a search bar with keyword highlighting and section filtering for quick configuration lookup.
#### Overseas Server Exclusive Optimizations
In this version, we've added a quick Clue placement function for *Base* for overseas servers, as well as resources, OCR, and localized content for the minigame *Karlan Trade R&D* of the SideStory *Retracing Our Steps*.
</details>
----
以下是详细内容:
## v6.8.0
### 新增 | New
* 新增跨平台前端界面 MAAUnified V0.2,为后续多平台统一体验提供基础 (#16048) @Halo5082 @MistEO
* 新增可按指定过期天数使用理智药 (#13849) @soundofautumn @status102
* 新增界园肉鸽月度小队与深入调查支持 (#16271) @SherkeyXD
* 新增海外服线索快速放置,并在线索交流前自动清空已放置线索 (#14966) (#16054) @Constrat @travellerse
### 改进 | Improved
* 重构更新流程:支持拖入指定名称的压缩包执行更新,涉及 DLL 的更新改由独立更新器处理,并在启动时校验版本一致性 (#16308) (#16326) @ABA2396
* 更新器日志新增大小上限及文件移除、移动明细,提升更新问题排查体验 @ABA2396
* 干员数据重构,支持跨职业重名干员 (#16084) @status102
* 配置存储支持按条件写入,减少无效配置项并提升配置兼容性 (#15850) @status102
* 自动编队在预编队后会额外校验选中状态,降低误编队概率 @status102
* 作业版本号要求允许省略 patch 版本号 @status102
* 优化提示元素展示效果,并减少通知实现中的冗余 UI 线程切换 (#16196) @ABA2396 @EzraRT
* 优化算法性能与鲁棒性 (#16235) @lhhxxxxx
* 分辨率不支持时会输出当前分辨率,便于排查兼容问题 @ABA2396
* PC 端窗口绑定模式下禁用“完成后退出模拟器”,避免无效设置 @ABA2396
<details open>
<summary><b>v6.11.0-beta.2 (2026-05-29)</b></summary>
### 修复 | Fix
* 修复更新器的 UTF-8 解析与 removelist 误判问题,并在更新时额外保留 cache 文件夹,减少误删风险 @ABA2396
* 修复截图延迟极低时,更换产物或订单可能随机失败的问题 (#16330) @Roland125
* 修复定时任务触发时 UpdateStageList 的等待逻辑,以及 LinkStart 期间进入 SetFightParams 的死锁问题 @status102
* 非法 Enum 值现在会回退到属性默认值,避免异常配置继续传播 (#16138) @status102
* 修复旧主题变更导致的招募识别问题 @ABA2396
* 修复自动战斗鼠标长按分页时可能反复触发切换的问题 @status102
* 修复部分越界场景下的返回值与索引异常 @status102
* 修复基建开启设施无法保存的问题 @ABA2396
* 修复干员库存识别返回错误 ID 的问题 @status102
* 修复 macOS PlayTools/SCK 的若干兼容性问题 (#16276) @FireflySentinel
* 修复韩服 OSChapterToOS OCR 与 EN 服 IS 6 DLC 1 文本匹配问题 @Daydreamer114 @Constrat
* 修复 adb-lite 在连接阶段未正确绑定当前设备,减少切换设备或并发执行命令时的连接异常 (#16853) @wangl-cc
* 修复快捷切换在开启基建退出提醒时无法退出基建的问题 @ABA2396
* 修复快捷切换在遇到 LoadingText 时无法跳出循环的问题 @ABA2396
</details>
<details>
<summary><b>v6.11.0-beta.1 (2026-05-29)</b></summary>
### 新增 | New
* 新增 MarkdownDataHelper 统一公告数据读写 @ABA2396
* 一键长草列表新增任务复制、悬停操作按钮,替代原有右键菜单 (#16733) @H2O-MERO @status102 @ABA2396
* 公招支持保留指定词条,识别到指定 Tag 时自动跳过 (#16586) @ABA2396 @status102
* 理智作战支持设定目标材料最大库存,参考仓库数据自动计算刷取数量 (#16487) @ABA2396 @status102
* 游戏内新增任务间快速导航,部分跨页面任务可通过小房子导航栏直接跳转以减少切换耗时 (#16869) @ABA2396
* 触控模式下拉框新增 ToolTip 视频演示 (#16812) @ABA2396
### 改进 | Improved
* 设置页面新增搜索支持,支持关键词高亮与自动筛选 (#16833) @H2O-MERO @ABA2396
* 优化配置转换器嵌套逻辑 @ABA2396
* 启动时检测 WinRT Toast 通知可用性,不可用时在日志中显示具体原因 (#16877) @status102 @momomochi987
* 统一使用强类型 GetValue 重载替换 Convert.To 调用 (#16866) @ABA2396
* 优化任务队列选中状态的视觉表现,突出当前选中项 @status102
* 任务队列 CheckBox 与添加任务按钮对齐 @status102
### 修复 | Fix
* 修复通过小房子导航后无法切换基建设施的问题 @ABA2396
* 修复繁中服界园肉鸽无法放弃探索的问题 (#16887) @momomochi987
* 修复界园肉鸽"见钱问柳"事件选择逻辑 @Saratoga-Official
* 修复界园司岁台分队招募券连续 NEXT 弹窗无法关闭的问题 (#16806) @ZiyinLin @status102
* 修复 ROI 高度越界及多次坐标校正后返回全图区域的问题 @status102
* 修复 Release 构建下日志宏输出多余作用域信息的问题 @status102
* 修复调试图清理时异常导致 Core SIGABRT 的问题 (#16233) @FireflySentinel
* 修复 POSIX 平台 fork 后子进程 exec 失败时缺少 _exit 的问题 @FireflySentinel
* 更新检查失败时优先尝试备用 API 而非直接使用过期缓存 (#16873) @glimmertouch
* 降低 macOS 平台 RA4、RA15 二倍速识别阈值 (#16860) @ColdSpellhere
### 文档 | Docs
* 完善安装文档的多语言翻译 (#16214) @JasonHuang79 @HX3N @Manicsteiner @momomochi987 @Constrat
* 补充 Windows Defender 误报 FAQ 指引 (#16145) @Leo91314
* 补充 AVD 截图增强与手动更新相关文档说明 (#16031) @satgo1546 @Rbqwow @MistEO @ABA2396
* 补全理智药过期天数可配置参数的相关文档 @ABA2396
* 公招保留词条参数术语从 skip_tags 更新为 preserve_tags @ABA2396
### 其他 | Other
* 添加单元测试框架,并为角色分配算法补充测试用例 (#16245) @lhhxxxxx
* 更新保全派驻作业 @Saratoga-Official
* 补充怒潮凛冬相关肉鸽招募逻辑与基建技能数值 (#16217) (#16260) @Reverse0xCC @drway
* 补充 EN/JP/KR 服 OS 关卡、小游戏与 OCR 资源,并更新韩服过期理智药相关本地化 (#16267) (#16268) (#16283) @Manicsteiner @HX3N @Constrat
* 更新繁中服「次生方案」活动、宿舍截图及部分 OCR 资源 (#16216) (#16298) @momomochi987
* 繁中服「天想」主题 UI 模板 (#16893) @momomochi987
* CI GitHub Action 固定到 commit SHA 以加固安全性 (#16502) @FireflySentinel
</details>

View File

@@ -49,6 +49,13 @@ if(BUILD_WPF_GUI)
endif()
endif()
if (ANDROID)
add_library(stdc++fs INTERFACE)
add_compile_options(-Wno-unused-parameter)
add_compile_options(-ffunction-sections -fdata-sections)
add_link_options(-Wl,--gc-sections)
endif()
if(INSTALL_PYTHON)
install(DIRECTORY src/Python DESTINATION .)
endif()

View File

@@ -158,6 +158,39 @@
"CMAKE_OSX_ARCHITECTURES": "x86_64"
}
},
{
"name": "android-base",
"hidden": true,
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"$comment": [
"Base for Android presets; cross-compilation via NDK toolchain",
"CMAKE_TOOLCHAIN_FILE must be passed externally pointing to NDK's android.toolchain.cmake"
],
"cacheVariables": {
"CMAKE_SYSTEM_NAME": "Android",
"ANDROID_PLATFORM": "android-28",
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "android-arm64",
"inherits": "android-base",
"displayName": "Android arm64",
"cacheVariables": {
"ANDROID_ABI": "arm64-v8a",
"MAADEPS_TRIPLET": "maa-arm64-android"
}
},
{
"name": "android-x64",
"inherits": "android-base",
"displayName": "Android x64",
"cacheVariables": {
"ANDROID_ABI": "x86_64",
"MAADEPS_TRIPLET": "maa-x64-android"
}
},
{
"name": "publish-base",
"$comment": [
@@ -239,6 +272,22 @@
],
"displayName": "macOS arm64 Publish"
},
{
"name": "android-publish-arm64",
"inherits": ["publish-base", "android-arm64"],
"displayName": "Android arm64 Publish",
"cacheVariables": {
"INSTALL_PYTHON": "OFF"
}
},
{
"name": "android-publish-x64",
"inherits": ["publish-base", "android-x64"],
"displayName": "Android x64 Publish",
"cacheVariables": {
"INSTALL_PYTHON": "OFF"
}
},
{
"name": "smoke-test",
"$comment": [
@@ -400,6 +449,16 @@
"configurePreset": "macos-publish-arm64",
"configuration": "RelWithDebInfo"
},
{
"name": "android-publish-arm64",
"displayName": "Build Android arm64 Publish",
"configurePreset": "android-publish-arm64"
},
{
"name": "android-publish-x64",
"displayName": "Build Android x64 Publish",
"configurePreset": "android-publish-x64"
},
{
"name": "smoke-test",
"displayName": "Build macOS arm64 Smoke Test",

4
context7.json Normal file
View File

@@ -0,0 +1,4 @@
{
"url": "https://context7.com/maaassistantarknights/maaassistantarknights",
"public_key": "pk_jDwwiGY7WKDA3WnLQzoWX"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 138 KiB

View File

@@ -23,6 +23,8 @@ Our documentation is built on [vuepress](https://github.com/vuejs/vuepress) and
This theme provides support for custom containers such as tips, notes, info, warnings, alerts, and details. We can utilize this feature to emphasize certain content.
Note that if containers are nested within containers, the parent container should use one more colon `:` than the child container to differentiate them.
Usage of containers:
```markdown
@@ -31,6 +33,13 @@ Content you want to write
:::
```
Or use GitHub-style syntax:
```markdown
> [!Container Type]
> Content you want to write
```
Accepted container types and their default titles are as follows:
- `tip` Tips
@@ -39,6 +48,7 @@ Accepted container types and their default titles are as follows:
- `warning` Warning
- `danger` Caution
- `details` Details
- `window` ==Special Container==
### Container Examples
@@ -66,6 +76,190 @@ This is a danger container
This is a details container
:::
::: window
This is a very special container
:::
## Markers
You can use the marker syntax to highlight content and emphasize key points.
Usage: Use `==content=={color (optional)}` syntax to mark text. Note that spaces are required on both sides of the marks.
**Input:**
```markdown
MaaAssistantArknights is developed by ==many pigs==
```
**Output:**
MaaAssistantArknights is developed by ==many pigs==
The theme also has the following built-in color schemes:
- **default**: `==Default==` - ==Default==
- **info**: `==Info=={.info}` - ==Info=={.info}
- **note**: `==Note=={.note}` - ==Note=={.note}
- **tip**: `==Tip=={.tip}` - ==Tip=={.tip}
- **warning**: `==Warning=={.warning}` - ==Warning=={.warning}
- **danger**: `==Danger=={.danger}` - ==Danger=={.danger}
- **caution**: `==Caution=={.caution}` - ==Caution=={.caution}
- **important**: `==Important=={.important}` - ==Important=={.important}
## Hidden Text
For some reason, you may need to temporarily black out a section of the document. In this case, you can use the hidden text feature.
You can use the `!!content!!{config (optional)}` syntax, and the default effect is as follows:
!!I always feel like I'm reading MoeGirl (strikethrough!!
The following configurations are available:
::: window
Input:
```markdown
+ Mask effect + Mouse hover: !!Mouse hover to see me!!{.mask .hover}
+ Mask effect + Click: !!Click to see me!!{.mask .click}
+ Text blur effect + Mouse hover: !!Mouse hover to see me!!{.blur .hover}
+ Text blur effect + Click: !!Click to see me!!{.blur .click}
```
Output:
- Mask effect + Mouse hover: !!Mouse hover to see me!!{.mask .hover}
- Mask effect + Click: !!Click to see me!!{.mask .click}
- Text blur effect + Mouse hover: !!Mouse hover to see me!!{.blur .hover}
- Text blur effect + Click: !!Click to see me!!{.blur .click}
:::
## Steps
When writing a step-by-step tutorial, ordered lists may lose their hierarchy due to nesting. In this case, the `steps` container is the best choice.
Input:
````markdown
:::: steps
1. Step 1
```ts
console.log('Hello World!')
```
2. Step 2
Here is the content related to Step 2
3. Step 3
::: tip
Tip container
:::
4. End
::::
````
Output:
:::: steps
1. Step 1
```ts
console.log('Hello World!')
```
2. Step 2
Here is the content related to Step 2
3. Step 3
::: tip
Tip container
:::
4. End
::::
## Smart Image Container
We have wrapped an image container based on the functionality provided by the theme. This container can automatically display the corresponding image in light and dark themes, while supporting automatic layout.
You can use the `<ImageGrid>` component in the markdown body to invoke this method. The specific syntax and effects are as follows:
::: window
This is the syntax:
```markdown
<ImageGrid :imageList="[
{
light: 'images/zh-cn/readme/1-light.png',
dark: 'images/zh-cn/readme/1-dark.png'
},
{
light: 'images/zh-cn/readme/2-light.png',
dark: 'images/zh-cn/readme/2-dark.png'
},
{
light: 'images/zh-cn/readme/3-light.png',
dark: 'images/zh-cn/readme/3-dark.png'
},
{
light: 'images/zh-cn/readme/4-light.png',
dark: 'images/zh-cn/readme/4-dark.png'
}
]" />
```
This is the rendered result:
<ImageGrid :imageList="[
{
light: 'images/zh-cn/readme/1-light.png',
dark: 'images/zh-cn/readme/1-dark.png'
},
{
light: 'images/zh-cn/readme/2-light.png',
dark: 'images/zh-cn/readme/2-dark.png'
}
]" />
:::
## Field Container
This syntax is more complex. Please refer to the [official documentation](https://theme-plume.vuejs.press/guide/markdown/field/) for usage.
The effects are as follows:
:::: field-group
::: field name="theme" type="ThemeConfig" required default="{ base: '/' }"
Theme configuration
:::
::: field name="enabled" type="boolean" optional default="true"
Whether to enable
:::
::: field name="callback" type="(...args: any[]) => void" optional default="() => {}"
<Badge type="tip" text="Added in v1.0.0" />
Callback function
:::
::: field name="other" type="string" deprecated
<Badge type="danger" text="Deprecated in v0.9.0" />
Deprecated property
:::
::::
## Icons
This theme provides icon support, where you can use icons in the following places:

View File

@@ -201,7 +201,7 @@ strategy = "merge" # or "first" (default)
# use all expiring medicine on Sunday night
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"
conditions = [

View File

@@ -16,6 +16,7 @@ As of MAA v5.22.3, the following emulators and connection addresses are supporte
- LDPlayer 9: `emulator-5554/5556/5558/5560`, `127.0.0.1:5555/5557/5559/5561`
- NoxPlayer: `127.0.0.1:62001/59865`
- MEmu Play: `127.0.0.1:21503`
- Tencent App Store (after 5.10.56.xx): `127.0.0.1:5555`
If detection fails, try launching MAA with UAC administrator privileges and detect again. If it still fails, refer to the manual setup instructions below and verify that your emulator and connection address are included in the list above.
@@ -57,6 +58,7 @@ Emulators running on your local machine should use addresses like `127.0.0.1:<po
- [LDPlayer 9](https://help.ldmnq.com/docs/LD9adbserver) `emulator-5554`
- [NoxPlayer](https://support.yeshen.com/zh-CN/qt/ml) `127.0.0.1:62001`
- [MEmu Play](https://bbs.xyaz.cn/forum.php?mod=viewthread&tid=365537) `127.0.0.1:21503`
- [Tencent App Store](https://sj.qq.com/faq/3878): ADB port is fixed at `127.0.0.1:5555`. ADB path example: `C:\Program Files\Tencent\Androws\Application\<version>\adb.exe`.
For other emulators, refer to [Zhao Qingqing's blog](https://www.cnblogs.com/zhaoqingqing/p/15238464.html).

View File

@@ -26,6 +26,8 @@ Typical `16:9` resolutions include `3840x2160` (4K), `2560x1440` (2K), `1920x108
## Download and Run ADB Debug Tool to Connect Device
::: steps
1. Download [ADB](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) and extract it.
2. Open the extracted folder, clear the address bar, type `cmd`, and press Enter.
3. In the command prompt window that appears, type `adb`. If you see extensive help text, the command ran successfully.
@@ -36,6 +38,8 @@ Typical `16:9` resolutions include `3840x2160` (4K), `2560x1440` (2K), `1920x108
adb devices
```
:::
- When executed successfully, it will show connected USB debugging devices.
- Example of a successful connection:
@@ -114,23 +118,25 @@ It is strongly recommended to revert these changes **before the next device rebo
## Automate Resolution Changes
::: steps
1. Create two text files in the MAA directory with the following content:
```bash
# Adjust resolution to 1080p
```bat
:: Adjust resolution to 1080p
adb -s <target device serial number> shell wm size 1080x1920
# Lower screen brightness (optional)
:: Lower screen brightness (optional)
adb -s <target device serial number> shell settings put system screen_brightness 1
```
```bash
# Restore resolution
```bat
:: Restore resolution
adb -s <target device serial number> shell wm size reset
# Increase screen brightness (optional)
:: Increase screen brightness (optional)
adb -s <target device serial number> shell settings put system screen_brightness 20
# Return to home screen (optional)
:: Return to home screen (optional)
adb -s <target device serial number> shell input keyevent 3
# Lock screen (optional)
:: Lock screen (optional)
adb -s <target device serial number> shell input keyevent 26
```
@@ -139,6 +145,8 @@ It is strongly recommended to revert these changes **before the next device rebo
3. In MAA's `Settings` - `Connection Settings`, set `Start Script` to `startup.bat` and `End Script` to `finish.bat`.
:::
## Connect to MAA
### Wired Connection
@@ -157,6 +165,8 @@ Wired connections don't need IP addresses or ports - just the device serial numb
#### Using `adb tcpip` for Wireless Debugging
::: steps
1. In the command prompt, enable wireless debugging:
```bash
@@ -171,12 +181,16 @@ Wired connections don't need IP addresses or ports - just the device serial numb
3. Enter `<IP>:5555` in MAA's `Settings` - `Connection Settings` - `Connection Address`, e.g., `192.168.1.2:5555`.
4. Link Start!
:::
#### Using `adb pair` for Wireless Debugging
::: tip
`adb pair` wireless pairing (available in Android 11 and later via Developer Options) allows connection without a physical USB connection, unlike `adb tcpip`.
:::
::: steps
1. On your phone, go to Developer Options, tap `Wireless Debugging` and enable it. Tap `Pair device with pairing code` and keep the popup open until pairing completes.
2. Complete the pairing:
@@ -187,11 +201,17 @@ Wired connections don't need IP addresses or ports - just the device serial numb
3. Enter the IP address and port shown on your device screen into MAA's `Settings` - `Connection Settings` - `Connection Address`, e.g., `192.168.1.2:11451`. **This is different from the address used for pairing**.
4. Link Start!
:::
#### Using Root to Enable Wireless ADB
~~If you have access to root, why do you need to read this document~~
1. Download, install [WADB](https://github.com/RikkaApps/WADB/releases) and grant it root privileges. 2.
2. Open WADB and start wireless adb. 3.
::: steps
1. Download, install [WADB](https://github.com/RikkaApps/WADB/releases) and grant it root privileges.
2. Open WADB and start wireless adb.
3. Put the IP address and port provided by WADB into MAA `Settings` - `Connection` - `Connection Address`, such as `192.168.1.2:5555`.
4. Link Start!
:::

View File

@@ -19,7 +19,9 @@ The MAA WPF GUI can currently be run through Wine. MAA now uses self-contained d
#### Installation Steps
1. Install Visual C++ Redistributable:
:::: steps
1. Install Visual C++ Redistributable
Download and install [Visual C++ Redistributable](https://aka.ms/vc14/vc_redist.x64.exe):
@@ -31,7 +33,11 @@ The MAA WPF GUI can currently be run through Wine. MAA now uses self-contained d
`DependencySetup_依赖库安装.bat` relies on winget and Windows privilege escalation, which typically doesn't work properly in Wine, so manual installation of runtime libraries is required.
:::
2. Download the Windows version of MAA, extract it, and run `wine MAA.exe`.
2. Download MAA
Download the Windows version of MAA, extract it, and run `wine MAA.exe`.
::::
::: info Note
You need to set the ADB path to the [Windows version of `adb.exe`](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) in the connection settings.
@@ -66,52 +72,52 @@ Place the `MaaDesktopIntegration.so` generated by MAA Wine Bridge in the same di
### Using Python
#### 1. Installing MAA Dynamic Library
:::: steps
1. Download and extract the Linux dynamic library from the [MAA website](https://maa.plus/), or install from a software repository:
- AUR: [maa-assistant-arknights](https://aur.archlinux.org/packages/maa-assistant-arknights), follow the post-installation instructions
- Nixpkgs: [maa-assistant-arknights](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)
1. Install MAA Dynamic Library
1. Download and extract the Linux dynamic library from the [MAA website](https://maa.plus/), or install from a software repository:
- AUR: [maa-assistant-arknights](https://aur.archlinux.org/packages/maa-assistant-arknights), follow the post-installation instructions
- Nixpkgs: [maa-assistant-arknights](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)
2. Navigate to `./MAA-v{version}-linux-{architecture}/Python/` and open the `sample.py` file
2. Navigate to `./MAA-v{version}-linux-{architecture}/Python/` and open the `sample.py` file
::: tip
The precompiled version includes dynamic libraries compiled on relatively new Linux distributions (Ubuntu 22.04). If your system has an older libstdc++ version, you might encounter ABI incompatibility issues.
You can refer to the [Linux Compilation Tutorial](../../develop/linux-tutorial.md) to recompile or use a container solution.
:::
::: tip
The precompiled version includes dynamic libraries compiled on relatively new Linux distributions (Ubuntu 22.04). If your system has an older libstdc++ version, you might encounter ABI incompatibility issues.
You can refer to the [Linux Compilation Tutorial](../../develop/linux-tutorial.md) to recompile or use a container solution.
:::
2. ADB Configuration
1. Find the line [`if asst.connect('adb.exe', '127.0.0.1:5554'):`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/b4fc3528decd6777441a8aca684c22d35d2b2574/src/Python/sample.py#L62)
2. ADB Tool Configuration
- If using `Android Studio`'s `AVD` emulator, it comes with ADB. You can directly specify the ADB path to replace `adb.exe`, typically found in `$HOME/Android/Sdk/platform-tools/`, for example:
#### 2. ADB Configuration
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator's ADB address"):
```
1. Find the line [`if asst.connect('adb.exe', '127.0.0.1:5554'):`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/b4fc3528decd6777441a8aca684c22d35d2b2574/src/Python/sample.py#L62)
- For other emulators, first install ADB: `$ sudo apt install adb`, then either specify the path or simply use `adb` if it's in your `PATH` environment variable.
2. ADB Tool Configuration
- If using `Android Studio`'s `AVD` emulator, it comes with ADB. You can directly specify the ADB path to replace `adb.exe`, typically found in `$HOME/Android/Sdk/platform-tools/`, for example:
3. Getting the Emulator's ADB Address
- Use the ADB tool directly: `$ adb_path devices`, for example:
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator's ADB address"):
```
```shell
$ /home/foo/Android/Sdk/platform-tools/adb devices
List of devices attached
emulator-5554 device
```
- For other emulators, first install ADB: `$ sudo apt install adb`, then either specify the path or simply use `adb` if it's in your `PATH` environment variable.
- The returned `emulator-5554` is the emulator's ADB address. Replace `127.0.0.1:5555` with it, for example:
3. Getting the Emulator's ADB Address
- Use the ADB tool directly: `$ adb_path devices`, for example:
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator-5554"):
```
```shell
$ /home/foo/Android/Sdk/platform-tools/adb devices
List of devices attached
emulator-5554 device
```
4. Now you can test with `$ python3 sample.py`. If it returns "Connection successful," you're ready to proceed.
- The returned `emulator-5554` is the emulator's ADB address. Replace `127.0.0.1:5555` with it, for example:
3. Task Configuration
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator-5554"):
```
Custom tasks: Refer to the [Integration Documentation](../../protocol/integration.md) and modify the [`# Task parameters can be found in docs/integration.md`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54) section in `sample.py`
4. Now you can test with `$ python3 sample.py`. If it returns "Connection successful," you're ready to proceed.
#### 3. Task Configuration
Custom tasks: Refer to the [Integration Documentation](../../protocol/integration.md) and modify the [`# Task parameters can be found in docs/integration.md`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54) section in `sample.py`
::::
## Emulator Support

View File

@@ -13,6 +13,8 @@ Experimental support. Please submit issues if you encounter problems, and includ
Note: Due to macOS system limitations, screenshot issues may occur when minimizing the game window, switching to other windows while in Stage Manager, or moving the window to other desktops/screens. Related issue: [#4371](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/4371#issuecomment-1527977512)
::: steps
0. Requirements: MAA version v4.13.0-rc.1 or newer
1. Download and install the [forked version of PlayCover](https://github.com/hguandl/PlayCover/releases).
@@ -29,6 +31,8 @@ Note: Due to macOS system limitations, screenshot issues may occur when minimizi
7. Steps 3-5 only need to be done once. After that, just launch Arknights. After each Arknights client update, you'll need to repeat step 2.
:::
### ✅ [MuMu Emulator Pro](https://mumu.163.com/mac/)
Supported, but less thoroughly tested. Requires using a touch mode other than `MacPlayTools`. Related issue: [#8098](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8098)

View File

@@ -40,6 +40,11 @@ const fullySupport = [
note: 'Fully compatible. Need to turn on ADB Connectivity in the emulator `Settings``Advanced``Android Debug Bridge``Enable`. Known to be compatible with Hyper-V.\n\n- Recommended to download [Offline Installer](https://support.bluestacks.com/hc/en-us/articles/4402611273485-BlueStacks-5-offline-installer) to avoid slow and bundled installation; recommend installing [Android 11](https://support.bluestacks.com/hc/en-us/articles/4402611273485-BlueStacks-5-offline-installer#:~:text=To%20install%20BlueStacks%205%20Android%2011) version; to uninstall it, please use the official [Uninstall Tool](https://support.bluestacks.com/hc/en-us/articles/360057724751-How-to-uninstall-BlueStacks-5-BlueStacks-X-and-BlueStacks-Services-completely-from-your-PC) to get rid of residues.\n- If the ADB port number keeps changing irregularly and is different every time you start it, it may be because your computer has [Hyper-V](https://support.bluestacks.com/hc/en-us/articles/4415238471053-System-requirements-for-BlueStacks-5-on-Hyper-V-enabled-Windows-10-and-11) enabled. MAA will now try to automatically read the port number from the BlueStacks emulator configuration file. If this doesn\'t work, or you need to use multiple instances, or have installed multiple emulator cores, please refer to [Connection Settings](../connection.html#bluestacks-emulator-hyper-v-port-number-changes-every-startup) to make adjustments. Since Hyper-V runs as administrator, operations that don\'t involve ADB such as automatic emulator shutdown or connection detection also need MAA to run as administrator.',
},
...shuffleArray([
{
name: 'Tencent App Store',
link: 'https://sj.qq.com/',
note: 'Supports versions after 5.10.56.xx. Select `Tencent App Store` connection configuration in `Settings` - `Connection Settings`. Known to be compatible with Hyper-V.\n\n- ADB port is `127.0.0.1:5555`.\n- ADB path example: `C:\\Program Files\\Tencent\\Androws\\Application\\<version>\\adb.exe`.\n\n- You need to first [enable ADB debugging](https://sj.qq.com/faq/3878) in the app.',
},
{
name: 'Nox Player',
link: 'https://www.bignox.com/',

View File

@@ -40,7 +40,7 @@ icon: hugeicons:brain-02
Ensure you're on the stage details screen with the stage name and remaining sanity in the upper right and auto-deploy/start buttons in the lower right.
- If you're not on this screen, `Current/Last` will automatically enter the "last operation" stage shown on the bottom right of the terminal home screen.
- You can also enable `Manual entry of stage names` in `Task Settings` - `Sanity Farming` - `Advanced Settings` to manually input stage codes. Currently supported stages include:
- All main story stages. You can add `-NORMAL` or `-HARD` at the end to switch between normal and challenge modes.
- All main story stages. You can add `-NORMAL` or `-HARD` at the end to switch difficulty: Chapters 10-14 map to Standard/Adverse, while Chapters 15+ map to Normal/Raid.
- Resource stages like CE-6/LS-6 (LMD/EXP). Enter the exact code like `CE-6` or `LS-6`. MAA will automatically switch to level 5 if level 6 isn't available.
- Skill summary, voucher, and carbon stages (level 5 only). Enter exact codes like `CA-5`, `AP-5`, or `SK-5`.
- All chip stages. Enter complete stage codes like `PR-A-1`.

View File

@@ -7,15 +7,53 @@ icon: solar:streets-map-point-linear
Currently, support for Reclamation Algorithm is still in early stages and unattended operation is not recommended, as stability cannot be guaranteed at this time.
## Default Mode
## Tales Within the Sand
### Default Mode
1. You need to start the task from the Reclamation Algorithm main interface (navigation not yet implemented)
2. Cannot be used when you already have an existing save file (delete the existing save to use)
3. Cannot be used when operators are present in the Reclamation Algorithm squad (clear the current squad, especially after completing a wave)
## Manufacturing Points Farm
### Manufacturing Points Farm
1. You need to start from the page where you can see the base camp after entering Reclamation Algorithm
2. If no item name is specified, Glow Sticks will be crafted by default
3. Prerequisite: It must be the first day after settlement, with no enemy raids entering the base camp for the next three days
4. If the manufacturable quantity is exactly a multiple of 99, the process may get stuck. You can use up a small amount before saving; this issue will be fixed in the future
## Relaunch Anchor
### RA-1
- Income reference: ~159 tokens + coordination points per run, ~2 min 10 sec per cycle
- Operator requirement: None
- Prerequisite: Complete RA-1 in the main storyline
- Open RA-1 on the world map, start the task when "Start Construction" appears in the bottom-right corner
- Note: If you have unlocked technologies that grant extra starting items, please remove facilities that cause this (e.g. Food Supply Station, Drink Supply Station, Large Beast Pen, etc.)
- Task flow: Automatically executes intensive farming, construction, resource delivery, and settlement loop
### RA-4
- Reward estimate: ~417 tokens + coordination points per run, ~1 min 40 sec per round
- Operator requirement: Wis'adel (support unit allowed)
- Prerequisite:
1. Advance the main story until RA-4 is cleared.
2. Unlock Strategy Planning Management.
3. If you have your own Wis'adel, manually enter the stage and form a team once, ensuring any 5 operators with lower DP cost than Wis'adel + Wis'adel, and Wis'adel is in the 6th slot (i.e., the last one selected). Then confirm recruitment, abandon the current construction, and start from "Start Construction".
4. If using a support Wis'adel, ensure that Wis'adel is on the front page of sniper support units (consider using a friend). Manually enter the stage and add any 5 operators with lower DP cost than Wis'adel, select support Wis'adel for the 6th slot, then confirm recruitment, abandon the current construction, and start from "Start Construction" (ensure the first five slots have operators and the 6th slot is empty).
- Open RA-4 on the world map, start the task when "Start Construction" appears in the bottom-right corner
- Note: If you have unlocked technologies that grant extra starting items, please remove facilities that cause this (e.g. Food Supply Station, Drink Supply Station, Large Beast Pen, etc.)
- Task flow: Use the Gold from Strategy Planning Management to unlock areas, and use Wis'adel to complete the boss elimination mission.
### RA-15
- Income reference: ~500 tokens + coordination points per run, ~3 min per cycle
- Operator requirement: Civilight Eterna (can use support unit)
- Prerequisites:
1. Complete RA-15 in the main storyline
2. If you own Civilight Eterna, manually open the stage and set up the squad once: 5 Vanguards (no level requirement) + Civilight Eterna in the 6th slot, then save and exit
3. If using support Civilight Eterna, ensure she appears on the first page of Caster supports
- Open RA-15 on the world map, start the task when "Start Construction" appears in the bottom-right corner
- Note: If you have unlocked technologies that grant extra starting items, please remove facilities that cause this (e.g. Food Supply Station, Drink Supply Station, Large Beast Pen, etc.)
- Task flow: Complete the 60-kill mission with Civilight Eterna

View File

@@ -11,10 +11,14 @@ Auto Recruitment and [Recruitment Recognition](./tools.md#recruitment-recognitio
Supports automatic use of `Expedited Plans`, allows setting maximum recruitment times per task, and can be combined with `Auto use Expedited Plans` to quickly use up all recruitment permits.
Pop-up notifications will appear when 1★, 5★, or 6★ tags are detected.
Pop-up notifications will appear when preserved tags, 5★ tags, or 6★ tags are detected.
Recruitment tag data is automatically uploaded to [Penguin Statistics](https://penguin-stats.io/) and [Yituliu](https://ark.yituliu.cn/) when refreshing recruitment.
## Advanced Settings
`Auto confirm` means MAA automatically selects tags and performs recruitment, while `Manual confirm` means no automatic tag selection or recruitment is performed.
After enabling `Preferred 3★ tags`, you can choose which 3★ tags should be preferred. After enabling `Preserve selected tags`, you can choose which tags should keep the current slot untouched.
When any preserved tag is recognized, MAA skips the current recruitment slot and leaves it unchanged instead of confirming that recruitment.

View File

@@ -11,26 +11,32 @@ Open the Recruitment tag interface and click Start Recognition to initiate.
If you have previously run Operator Recognition, potential data will be displayed after the recognized operator's name.
## Operator Recognition (Beta)
## Operator Recognition
Can recognize lists of both owned and unowned operators, and identify potential levels to provide data for Recruitment Recognition.
## Depot Recognition (Beta)
Currently supports the following export formats:
- Clipboard
- JSON
- Markdown table
- CSV table
## Depot Recognition
Supports automatically entering the depot from the main page. If automatic navigation fails, please manually switch to the `Upgrade Materials` screen and **scroll all the way to the left** before starting the function.
Currently supports exporting to [Penguin Statistics Planner](https://penguin-stats.io/planner), [Arknights Toolbox](https://arkntools.app/#/material), and [Arknights | Planner](https://ark-nights.com/settings).
Currently supports the following export formats:
- [Penguin Statistics Planner](https://penguin-stats.io/planner) (ArkPlanner)
- [Arknights Toolbox](https://arkntools.app/#/material) (Lolicon)
- Markdown table
- CSV table
If you are the administrator of a data site, we welcome you to contact us to adapt your site's material JSON protocol!
More useful features may be added in the future. (Teaser)
## Task Video Recognition (Alpha)
Can recognize strategy videos and automatically generate operation files. Simply drag video files into the Auto Combat page to start.
Requires 16:9 aspect ratio with 720p or higher resolution, with no black borders, emulator frames, notched screen adaptations, or other interfering elements.
## Gacha
::: center
@@ -48,3 +54,15 @@ Want to see the world through MAA's eyes? Now you can!
MAA will attempt to take screenshots of the emulator at the target frame rate and display them in real-time in the window.
When the screenshot speed is significantly slower than the target frame rate, MAA will automatically reduce the target frame rate to match the screenshot speed. ~~Can be used as a stress test~~
## Mini Game
Used to automatically farm mini-games in events. Supports selecting names and switching between permanent and current limited-time activities in settings.
Built-in features include:
- Event shop exchange
- Green ticket shop exchange
- Yellow ticket shop exchange
- Reclamation Algorithm shop exchange
- Secret Front (supports selecting endings and event branches)

View File

@@ -137,6 +137,6 @@ Please note that JSON files do not support comments. The comments in this docume
## Example
[243_layout_3_times_a_day](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/resource/custom_infrast/243_layout_3_times_a_day.json)
[243_layout_3_times_a_day](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master-v2/resource/custom_infrast/243_layout_3_times_a_day.json)
[153_layout_3_times_a_day](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/resource/custom_infrast/153_layout_3_times_a_day.json)
[153_layout_3_times_a_day](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master-v2/resource/custom_infrast/153_layout_3_times_a_day.json)

View File

@@ -224,7 +224,7 @@ Todo
- `MedicineConfirm`
Use sanity potion
- `ExpiringMedicineConfirm`
Use sanity potion expiring within 48 hours
Use expiring sanity potion
- `StoneConfirm`
Use Originium Prime
- `RecruitRefreshConfirm`
@@ -355,6 +355,16 @@ Todo
}
```
- `RecruitPreservedTag`
Recruitment preserved tag detected
```json
// Corresponding details field example
{
"tag": "支援机械" // "Robot"
}
```
- `RecruitResult`
Recruitment recognition result

View File

@@ -829,14 +829,6 @@ For farming hidden Collapsal Paradigms, N10 difficulty is recommended, with the
MAA automatically handles copper pickup and exchange in JieGarden I.S.:
::: tip Enable Conditions
Copper exchange functionality is only enabled in the following modes:
- Investment Mode: Requires "Investment mode enable shopping, recruitment, advance 2 floors" option enabled
- Other Modes: Enabled by default
:::
1. **Pickup Dropped Coppers**: After battle ends, if copper drop selection interface appears, MAA will select the copper with highest `pickup_priority`
2. **Exchange Wallet Coppers**: When a newly picked copper needs to be exchanged with coppers in the wallet:

View File

@@ -118,7 +118,7 @@ Whether to enable this task.
Stage name, by default empty, recognizes current/last stage. Editing in run-time is not supported.
Currently supported stages for navigation include:
- All mainline stages. You can add `-NORMAL` or `-HARD` at the end of the stage to switch between standard or challenge mode.
- All mainline stages. You can add `-NORMAL` or `-HARD` at the end of the stage to switch difficulty: Chapters 10-14 map to Standard/Adverse, while Chapters 15+ map to Normal/Raid.
- For LMD and Battle Record stages 5/6, must input `CE-6` / `LS-6`. MAA will automatically switch to stage 5 if stage 6 cannot be delegated.
- Skill Summary, Voucher, and Carbon stage 5, must input `CA-5` / `AP-5` / `SK-5`.
- All chip stages. Must input complete stage code, e.g. `PR-A-1`.
@@ -134,8 +134,11 @@ Currently supported stages for navigation include:
::: field name="medicine" type="number" optional default="0"
Maximum number of Sanity Potions used.
:::
::: field name="expiring_medicine" type="number" optional default="0"
Maximum number of Sanity Potions expiring within 48 hours.
::: field name="medicine_expire_days" type="number" optional default="0"
Use Sanity Potions that expire within the specified number of days. `0` means no expiring potions will be used.
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
Deprecated since v6.8.0, please use `medicine_expire_days` instead.
:::
::: field name="stone" type="number" optional default="0"
Maximum number of Originite Prime used.
@@ -197,7 +200,7 @@ Currently supported stages for navigation include:
"enable": true,
"stage": "1-7",
"medicine": 1,
"expiring_medicine": 0,
"medicine_expire_days": 2,
"stone": 0,
"times": 10,
"series": 0,
@@ -259,7 +262,14 @@ Whether to use Expedited Plans.
Number of expedites, only effective when `expedite` is true. By default unlimited (until `times` limit is reached).
:::
::: field name="skip_robot" type="boolean" optional default="true"
Whether to skip when robot tag is recognized.
Deprecated and kept only for backward compatibility.
<br>
When `preserve_tags` is absent and this value is `true`, MAA skips on `支援机械` only; `元素` is no longer treated as the legacy 1★ tag.
:::
::: field name="preserve_tags" type="array<string>" optional
List of tag names that should preserve the current recruitment slot and skip this recruitment. Default is empty.
<br>
If any specified tag is recognized, MAA will keep that slot untouched and skip the current recruitment.
:::
::: field name="recruitment_time" type="object" optional
Tag ★ rarity (greater than or equal to 3) and corresponding desired recruitment time limit, in minutes, all default to 540 (i.e. 09:00:00).
@@ -300,7 +310,7 @@ Options: `CN` | `US` | `JP` | `KR`
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -911,32 +921,44 @@ Whether to enable this task.
::: field name="enable" type="boolean" optional default="true"
Whether to enable this task.
:::
::: field name="theme" type="string" optional default="Fire"
::: field name="theme" type="string" optional default="Tales"
Theme.
<br>
`Fire` - _Fire Within the Sand_
`Fire` - _Fire Within the Sand_ (Closed)
<br>
`Tales` - _Tales Within the Sand_
<br>
`RelaunchAnchor` - _Relaunch Anchor_
:::
::: field name="mode" type="number" optional default="0"
Mode.
Mode. Supported modes vary by theme:
<br>
`0` - Farm badges & construction pts (exiting the stage immediately).
**Tales:**
<br>
`1` - Fire Within the Sand: Farm Crude Gold (forging Gold at headquarter after purchasing water); Tales Within the Sand: Automatically craft items and load to earn currency.
`0` - No save, farm prosperity points by entering and exiting stages.
<br>
`1` - With save, farm currency by crafting support items.
<br>
**RelaunchAnchor:**
<br>
`16` (`RA1`) - RA-1, automatically execute intensive farming, construction, resource delivery, and settlement loop.
<br>
`32` (`RA15`) - RA-15, complete the 60-kill mission with Civilight Eterna.
<br>
`48` (`RA4`) - RA-4, Use the Gold from Strategy Planning Management to unlock areas, and use Wis'adel to complete the boss elimination mission.
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
Automatically crafted items. Suggested to fill in the substring.
Automatically crafted items. Suggested to fill in the substring. Only effective for Tales theme.
:::
::: field name="increment_mode" type="number" optional default="0"
Click type.
Click type. Only effective for Tales theme.
<br>
`0` - Rapid Click
<br>
`1` - Long Press
:::
::: field name="num_craft_batches" type="number" optional default="16"
Maximum number of craft batches per session.
Maximum number of craft batches per session. Only effective for Tales theme.
:::
::::
@@ -1160,4 +1182,7 @@ Whether to enable AdbLite or not. Options: "0" | "1". Enum value: 4.
::: field name="KillAdbOnExit" type="boolean" optional
Release Adb on exit. Options: "0" | "1". Enum value: 5.
:::
::: field name="ClientType" type="string" optional
Client channel. Most connection configs do not need this option. Set it before `AsstConnect` / `AsstAsyncConnect` only when the selected `config` uses `[PackageName]` in commands executed during connect. In the built-in configs, only `Androws` and `WSA` currently require it for `displayId` lookup. This does not replace the `client_type` task parameter used by StartUp / CloseDown tasks. Enum value: 6.
:::
::::

View File

@@ -23,6 +23,8 @@ icon: jam:write-f
このテーマでは、ヒント、ノート、情報、注意、警告、詳細などのカスタムコンテナをサポートしており、これらの機能を利用して特定のコンテンツを強調することができます。
コンテナ内にコンテナをネストする場合、親コンテナは子コンテナよりもコロン `:` を1つ多く記述する必要があります。
コンテナの使用方法:
```markdown
@@ -31,6 +33,13 @@ icon: jam:write-f
:::
```
または GitHub スタイルの構文を使用する方法:
```markdown
> [!コンテナの種類]
> 書きたい内容
```
受け入れられるコンテナの内容とデフォルトのタイトルは次のとおりです:
- `tip` ヒント
@@ -39,6 +48,7 @@ icon: jam:write-f
- `warning` 注意
- `danger` 警告
- `details` 詳細
- `window` ==特殊なコンテナ==
### コンテナの例
@@ -66,6 +76,190 @@ icon: jam:write-f
これは詳細のコンテナです
:::
::: window
これは特殊なコンテナです
:::
## マーカー
マーカー構文を使用して、強調したい内容にマークを付けることができます。
使用方法:`==マーカーの内容=={マーカーの色(オプション)}` の構文でマークを付けます。両端にスペースが必要な点に注意してください。
**入力:**
```markdown
MaaAssistantArknights は ==たくさんの豚== によって開発されました
```
**出力:**
MaaAssistantArknights は ==たくさんの豚== によって開発されました
テーマには以下のカラースキームが組み込まれています:
- **default**: `==Default==` - ==Default==
- **info**: `==Info=={.info}` - ==Info=={.info}
- **note**: `==Note=={.note}` - ==Note=={.note}
- **tip**: `==Tip=={.tip}` - ==Tip=={.tip}
- **warning**: `==Warning=={.warning}` - ==Warning=={.warning}
- **danger**: `==Danger=={.danger}` - ==Danger=={.danger}
- **caution**: `==Caution=={.caution}` - ==Caution=={.caution}
- **important**: `==Important=={.important}` - ==Important=={.important}
## 隠しテキスト
何らかの理由でドキュメントの一部を一時的に隠す必要がある場合、隠しテキスト機能を使用できます。
`!!隠したい内容!!{設定(オプション)}` の構文で使用でき、デフォルトの効果は以下の通りです:
!!なんかニコニコ大百科(仮)を読んでる気がする(取り消し線!!
以下の設定が使用できます:
::: window
入力:
```markdown
+ マスクエフェクト + マウスホバー:!!マウスホバーで見えます!!{.mask .hover}
+ マスクエフェクト + クリック:!!クリックで見えます!!{.mask .click}
+ テキストぼかしエフェクト + マウスホバー:!!マウスホバーで見えます!!{.blur .hover}
+ テキストぼかしエフェクト + クリック:!!クリックで見えます!!{.blur .click}
```
出力:
- マスクエフェクト + マウスホバー:!!マウスホバーで見えます!!{.mask .hover}
- マスクエフェクト + クリック:!!クリックで見えます!!{.mask .click}
- テキストぼかしエフェクト + マウスホバー:!!マウスホバーで見えます!!{.blur .hover}
- テキストぼかしエフェクト + クリック:!!クリックで見えます!!{.blur .click}
:::
## ステップ
ステップバイステップのチュートリアルを書くとき、番号付きリストはネストによって階層感を失うことがあります。そのような場合、`steps` コンテナが最善の選択です。
入力:
````markdown
:::: steps
1. ステップ 1
```ts
console.log('Hello World!')
```
2. ステップ 2
ステップ 2 の関連内容はこちら
3. ステップ 3
::: tip
ヒントコンテナ
:::
4. 終わり
::::
````
出力:
:::: steps
1. ステップ 1
```ts
console.log('Hello World!')
```
2. ステップ 2
ステップ 2 の関連内容はこちら
3. ステップ 3
::: tip
ヒントコンテナ
:::
4. 終わり
::::
## スマート画像コンテナ
テーマが提供する機能をベースに画像コンテナをラッパーしました。このコンテナはライト/ダークテーマに応じて対応する画像を自動的に表示し、自動レイアウトをサポートします。
Markdown 本文で `<ImageGrid>` コンポーネントを使用してこのメソッドを呼び出すことができます。具体的な構文と効果は以下の通りです:
::: window
構文:
```markdown
<ImageGrid :imageList="[
{
light: 'images/zh-cn/readme/1-light.png',
dark: 'images/zh-cn/readme/1-dark.png'
},
{
light: 'images/zh-cn/readme/2-light.png',
dark: 'images/zh-cn/readme/2-dark.png'
},
{
light: 'images/zh-cn/readme/3-light.png',
dark: 'images/zh-cn/readme/3-dark.png'
},
{
light: 'images/zh-cn/readme/4-light.png',
dark: 'images/zh-cn/readme/4-dark.png'
}
]" />
```
レンダリング結果:
<ImageGrid :imageList="[
{
light: 'images/zh-cn/readme/1-light.png',
dark: 'images/zh-cn/readme/1-dark.png'
},
{
light: 'images/zh-cn/readme/2-light.png',
dark: 'images/zh-cn/readme/2-dark.png'
}
]" />
:::
## フィールドコンテナ
この構文はやや複雑なため、[公式ドキュメント](https://theme-plume.vuejs.press/guide/markdown/field/)を参照して使用してください。
効果は以下の通りです:
:::: field-group
::: field name="theme" type="ThemeConfig" required default="{ base: '/' }"
テーマ設定
:::
::: field name="enabled" type="boolean" optional default="true"
有効かどうか
:::
::: field name="callback" type="(...args: any[]) => void" optional default="() => {}"
<Badge type="tip" text="v1.0.0 追加" />
コールバック関数
:::
::: field name="other" type="string" deprecated
<Badge type="danger" text="v0.9.0 廃止" />
廃止されたプロパティ
:::
::::
## アイコン
このテーマではアイコンがサポートされており、次の場所でアイコンを使用できます:

View File

@@ -199,7 +199,7 @@ strategy = "merge" # 或者 "first" (默认)
# 在周天晚上使用所有的将要过期的理智药
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"

View File

@@ -43,6 +43,7 @@ icon: mdi:plug
- [MuMu Pro](https://mumu.163.com/mac/function/20240126/40028_1134600.html) `16384`
- [逍遥](https://bbs.xyaz.cn/forum.php?mod=viewthread&tid=365537) `21503`
- [夜神](https://support.yeshen.com/zh-CN/qt/ml) `62001`
- [テンセントアプリストア](https://sj.qq.com/faq/3878) (5.10.56.xx 以降)ADB ポートは `127.0.0.1:5555` 固定。ADB パス例:`C:\Program Files\Tencent\Androws\Application\バージョン番号\adb.exe`
他のエミュレータについては[Zhaoqingqing's Blog](https://www.cnblogs.com/zhaoqingqing/p/15238464.html)を参照してください。

View File

@@ -3,7 +3,7 @@ order: 4
icon: mingcute:android-fill
---
# 物理的な**Android**デバイス
# 物理的な Android デバイス
::: warning
この方法は ADB デバッグを伴い、さらに PC との接続が必要なため、**初心者には非推奨**です。
@@ -25,6 +25,8 @@ icon: mingcute:android-fill
## adbデバッグ・ツールをダウンロードして実行し、デバイスに接続する
::: steps
1. [adb](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) をダウンロードし、解凍する。
2. 解凍したフォルダを開き、アドレスバーをクリアし`cmd` と入力しエンターキーを押します。
3. ポップアップしたコマンドプロンプトウィンドウに`adb`と入力し、英語のヘルプテキストがたくさん表示されれば、実行は成功です。
@@ -35,6 +37,8 @@ icon: mingcute:android-fill
adb devices
```
:::
- 実行に成功すると `USB デバッグ` デバイスが接続されたというメッセージが表示される。
- 成功した接続例:
@@ -113,31 +117,35 @@ icon: mingcute:android-fill
## 解像度の自動変更
::: steps
1. MAAディレクトリに2つの新しいテキストファイルを作成し、以下の内容で埋めてください。
```bash
```bat
:: 解像度を 1080p に調整する
adb -s <ターゲット・デバイスのシリアル番号> shell wm size 1080x1920
:: 画面の輝度を下げる(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell settings put system screen_brightness 1
```
```bash
```bat
:: 解像度の復元
adb -s <ターゲット・デバイスのシリアル番号>> shell wm size reset
adb -s <ターゲット・デバイスのシリアル番号> shell wm size reset
:: 画面の明るさを上げる(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell settings put system screen_brightness 20
:: ホームに戻る(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell input keyevent 3
:: ロック画面(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell input keyevent 26
adb -s <ターゲット・デバイスのシリアル番号> shell settings put system screen_brightness 20
:: ホームに戻る(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell input keyevent 3
:: ロック画面(オプション)
adb -s <ターゲット・デバイスのシリアル番号> shell input keyevent 26
```
2. 最初のファイルを `startup.bat` に、2番目のファイルを `finish.bat` にリネームする。
- リネーム後、拡張子を変更するための2回目の確認ダイアログボックスが表示されず、ファイルアイコンも変更されない場合は、Windowsでファイルの拡張子を表示する方法をご自身で検索してください。
- リネーム後、拡張子を変更するための2回目の確認ダイアログボックスが表示されず、ファイルアイコンも変更されない場合は、Windowsでファイルの拡張子を表示する方法をご自身で検索してください。
3. MAA の `設定` - `接続設定` - `スクリプトを使用して始めます` と `終了時にスクリプトを使用します` にそれぞれ `startup.bat` と `finish.bat` を記入してください。
:::
## MAAとの接続
### 有線接続
@@ -156,6 +164,8 @@ icon: mingcute:android-fill
#### `adb tcpip` を使用してワイヤレスポートをオンにします
::: steps
1. 先ほど開いたコマンドプロンプトウィンドウに以下のコマンドを入力し、ワイヤレスデバッグを有効にします。
```bash
@@ -170,12 +180,16 @@ icon: mingcute:android-fill
3. `<IP>:5555` を MAAの `設定` - `接続設定` - `接続先アドレス` に入力してください。例 `192.168.1.2:5555`。
4. Link Start!
:::
#### `adb pair` を使用してワイヤレスポートをオンにします
::: tip
`adb pair` ワイヤレス ペアリング、つまり Android 11 以降の開発者向けオプションで `ワイヤレスデバッグ` を使用すると、 `adb tcpip` と比較して有線接続が不要になります。
:::
::: steps
1. デバイスの開発者向けオプションに移動し、 `ワイヤレスデバッグ` をクリックしてオンにし、OKをクリックして、 `ペアリングコードでデバイスをペアリング` をクリックして、ペアリングが完了するまで表示されるポップアップウィンドウを閉じないでください。
2. ペアリングします。
@@ -186,11 +200,17 @@ icon: mingcute:android-fill
3. 現在のデバイス画面に表示される `<IP アドレスとポート>` を MAAの `設定` - `接続設定` - `接続アドレス` に入力します( `192.168.1.2:11451` など)、**さっき記入したものとは違うに違いない**。
4. Link Start!
:::
#### ルート権限でワイヤレスポートをオンにします
~~ルート権限を使用できますが、このドキュメントを読む必要がありますか~~
::: steps
1. [WADB](https://github.com/RikkaApps/WADB/releases) をダウンロードしてインストールし、ルート化します。
2. WADBを起動して、ワイヤレスadbを起動します。
3. WADBから提供された `<IP アドレスとポート>` を MAAの `設定` - `接続設定` - `接続アドレス` に入力します( `192.168.1.2:5555` など)。
4. Link Start!
:::

View File

@@ -19,7 +19,9 @@ MAA WPF GUI は現在 Wine を通じて実行できます。MAAは.NETランタ
#### インストール手順
1. Visual C++ Redistributable をインストールする:
:::: steps
1. Visual C++ Redistributable をインストールする
[Visual C++ 再頒布可能パッケージ](https://aka.ms/vc14/vc_redist.x64.exe) をダウンロードしてインストールします:
@@ -31,7 +33,11 @@ MAA WPF GUI は現在 Wine を通じて実行できます。MAAは.NETランタ
`DependencySetup_依赖库安装.bat` は winget と Windows の権限昇格機構に依存しているため、Wine では通常正常に動作しません。そのため、ランタイムライブラリは手動でインストールする必要があります。
:::
2. Windows 版 MAA をダウンロードし、解凍した後、`wine MAA.exe` を実行します。
2. MAA をダウンロード
Windows 版 MAA をダウンロードし、解凍した後、`wine MAA.exe` を実行します。
::::
::: info 注意
接続設定で ADB パスを [Windows 版 `adb.exe`](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) に設定する必要があります。
@@ -66,52 +72,52 @@ MAA Wine Bridge で生成された `MaaDesktopIntegration.so` を `MAA.exe` と
### Python を使用する
#### MAA 動的ライブラリのインストール
:::: steps
1. Linux ダイナミック ライブラリを [MAA ウェブサイト](https://maa.plus/) からダウンロードし、解凍します、または以下のソフトウェアリポジトリからインストールします:
- AUR[maa-assistant-arknights](https://aur.archlinux.org/packages/maa-assistant-arknights)、インストール後のプロンプトに従ってファイルを編集します
- Nixpkgs: [maa-assistant-arknights](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)
1. MAA 動的ライブラリのインストール
1. Linux ダイナミック ライブラリを [MAA ウェブサイト](https://maa.plus/) からダウンロードし、解凍します、または以下のソフトウェアリポジトリからインストールします
- AUR[maa-assistant-arknights](https://aur.archlinux.org/packages/maa-assistant-arknights)、インストール後のプロンプトに従ってファイルを編集します
- Nixpkgs: [maa-assistant-arknights](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ma/maa-assistant-arknights/package.nix)
2. `./MAA-v{バージョン}-linux-{アーキテクチャ}/Python/` ディレクトリに移動し、`sample.py` ファイルを開きます
2. `./MAA-v{バージョン}-linux-{アアーキテクチャ}/Python/` ディレクトリに移動し、`sample.py` ファイルを開きます
::: tip
プリコンパイル済みバージョンには、比較的新しいLinuxディストリビューション(Ubuntu 22.04)でコンパイルされた動的ライブラリが含まれており、システムに古いバージョンのlibstdc++がある場合、ABIの非互換性に遭遇する可能性があります。
[Linuxコンパイル・チュートリアル](../../develop/linux-tutorial.md) を参照して再コンパイルまたはコンテナを使用して実行できます。
:::
::: tip
プリコンパイル済みバージョンには、比較的新しいLinuxディストリビューション(Ubuntu 22.04)でコンパイルされた動的ライブラリが含まれており、システムに古いバージョンのlibstdc++がある場合、ABIの非互換性に遭遇する可能性があります。
[Linuxコンパイル・チュートリアル](../../develop/linux-tutorial.md) を参照して再コンパイルまたはコンテナを使用して実行できます。
:::
2. ADB 構成
1. [`if asst.connect('adb.exe', '127.0.0.1:5554'):`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L48) セクションを見つける
2. `adb` ツール呼び出し
- エミュレータが `Android Studio` に `avd` を使用している場合は、 `adb` が付属します。 `adb.exe` の欄に直接 `adb` パスを記入することができ、一般的には `$HOME/Android/Sdk/platform-tools/` で見つけることができます。例:
#### ADB 構成
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "エミュレータの adb アドレス"):
```
1. [`if asst.connect('adb.exe', '127.0.0.1:5554'):`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L48) セクションを見つける
- 他のエミュレータを使用する場合は、最初に `adb` をダウンロードして: `$ sudo apt install adb` 次に、パスを入力するか、 `PATH` 環境変数を使用して `adb` を直接入力します
2. `adb` ツール呼び出し
- エミュレータが `Android Studio` に `avd` を使用している場合は、 `adb` が付属します `adb.exe` の欄に直接 `adb` パスを記入することができ、一般的には `$HOME/Android/Sdk/platform-tools/` で見つけることができます。例:
3. エミュレータの `adb` パス取得
- adb ツールを直接使用できます `$ adbパス devices` 例:
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "エミュレータの adb アドレス"):
```
```shell
$ /home/foo/Android/Sdk/platform-tools/adb devices
List of devices attached
emulator-5554 device
```
- 他のエミュレータを使用する場合は、最初に `adb` をダウンロードして: `$ sudo apt install adb` 次に、パスを入力するか、 `PATH` 環境変数を使用して `adb` を直接入力します
- 返される `emulator-5554` はエミュレータのadbアドレスで、 `127.0.0.1:5555` を上書きします、例:
3. エミュレータの `adb` パス取得
- adb ツールを直接使用できます: `$ adbパス devices` ,例:
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator-5554"):
```
```shell
$ /home/foo/Android/Sdk/platform-tools/adb devices
List of devices attached
emulator-5554 device
```
4. この時点で、 `$ python3 sample.py` をテストでき、 `接続成功` が返されれば、基本的に成功です
- 返される `emulator-5554` はエミュレータのadbアドレスで、 `127.0.0.1:5555` を上書きします、例:
3. タスク構成
```python
if asst.connect("/home/foo/Android/Sdk/platform-tools/adb", "emulator-5554"):
```
カスタムタスク:必要に応じて [統合ドキュメント](../../protocol/integration.md) を参照し、`sample.py` の [`# タスクとパラメーターについては docs/integration.md 参照`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54) 欄を変更します
4. この時点で、 `$ python3 sample.py` をテストでき、 `接続成功` が返されれば、基本的に成功です
#### タスク構成
カスタムタスク:必要に応じて [統合ドキュメント](../../protocol/integration.md) を参照し、`sample.py` の [`# タスクとパラメーターについては docs/integration.md 参照`](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/722f0ddd4765715199a5dc90ea1bec2940322344/src/Python/sample.py#L54) 欄を変更します
::::
## エミュレータのサポート

View File

@@ -17,6 +17,8 @@ icon: basil:apple-solid
注: `macOS` の仕組みにより、ゲームウィンドウを最小化したり、ステージマネージャーで別のウィンドウに切り替えたり、ウィンドウを別のデスクトップ/画面に移動したりすると、スクリーンショットに問題が発生し、正しく実行されなくなります。 👉🏻️ [issue](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/4371#issuecomment-1527977512) を参照
::: steps
0. 要件: MAA バージョン v4.13.0-rc.1 以降
1. [PlayCover のフォークバージョン](https://github.com/hguandl/PlayCover/releases) をダウンロードしてインストールします。
@@ -33,6 +35,8 @@ icon: basil:apple-solid
7. ステップ 3-5 は一度だけ行う必要があり、その後はアークナイツをアクティブにするだけで済みます。アークナイツのクライアントを更新するたびに、手順2を再度実行する必要があります。
:::
### ✅ [MuMu エミューレータ Pro](https://mumu.163.com/mac/)
サポートされています、ただしテストは少なく、 `MacPlayTools` 以外のタッチモードが必要です。 関連する問題 [#8098](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8098)

View File

@@ -40,6 +40,11 @@ const fullySupport = [
note: 'サポートされています。エミュレーターの `設定` - `上位設定``Android Debug Bridge`をONにする必要があります。\n\n- ネットワーク環境が悪い場合は [オフラインパッケージ](https://support.bluestacks.com/hc/zh-tw/articles/4402611273485-BlueStacks-5-%E9%9B%A2%E7%B7%9A%E5%AE%89%E8%A3%9D%E7%A8%8B%E5%BC%8F)をダウンロードしてください。\n- adbポート番号が不規則に変化し続け、起動するたびに同じでない場合は、お使いのコンピュータが [Hyper-V](https://support.bluestacks.com/hc/ja/articles/4415238471053-BlueStacks-5-Hyper-V%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8BWindows-10%E3%81%A8Windows-11%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E8%A6%81%E4%BB%B6)を有効にしている可能性があります,\nこのような状況に対して、MAAはポート番号を自動的に取得する小さなバックドアを提供しています。この機能がは動作しません/複数のエミュレータが必要/複数のエミュレータコアがインストールされているの場合は [よくある質問](../よくある質問.html#blue-stackエミュレータが起動するたびにポート番号が異なるhyper-v) を参照して変更してください。Hyper-V は管理者として実行されるため、エミュレーターの自動シャットダウンや接続の自動検出など、adb を伴わない操作でも MAA を管理者として実行する必要があります。',
},
...shuffleArray([
{
name: 'テンセントアプリストア',
link: 'https://sj.qq.com/',
note: 'バージョン 5.10.56.xx 以降をサポートしています。`設定` - `接続設定` で `テンセントアプリストア` 接続設定を選択してください。Hyper-V との互換性が確認されています。\n\n- ADB ポートは `127.0.0.1:5555` です。\n- ADB パス例:`C:\\Program Files\\Tencent\\Androws\\Application\\バージョン番号\\adb.exe`。\n\n- 事前にアプリストアで [ADB デバッグを有効化](https://sj.qq.com/faq/3878) する必要があります。',
},
{
name: 'NOX',
link: 'https://www.yeshen.com/',

View File

@@ -40,7 +40,7 @@ icon: hugeicons:brain-02
画面は、右上にステージ名と残り理性、右下に自動指揮と作戦開始が表示されるステージ詳細に留めてください。
- この画面にいない場合、`現在/前回` は端末ホーム右下の「前回作戦」のステージへ自動で入ります。
- `作戦``高度な設定``ステージ名を入力する` を有効にし、手動でステージ番号を入力することもできます。現在ナビ可能なステージは以下の通りです:
- すべてのメインステージ。末尾に `-NORMAL` または `-HARD` を付けて標準/磨難を切り替え可能。
- すべてのメインステージ。末尾に `-NORMAL` または `-HARD` を付けて難易度を切り替え可能10〜14章は標準/厄難、15章以降は通常/険地)
- 龍門幣・作戦記録の 5 / 6 ステージ。ただし `CE-6` / `LS-6` を入力してください。6 が連戦不可の場合、自動で 5 に切り替えます。
- アーツ学・購買資格証・炭素材の第 5 ステージ。`CA-5` / `AP-5` / `SK-5` を入力してください。
- すべてのSoCステージ。`PR-A-1` のように完全な番号を入力してください。

View File

@@ -12,7 +12,7 @@ icon: ic:baseline-article
- ステージ選択に必要なステージがない場合ならば、MAAで `現在/前回` を選択し、ゲーム内で手動でステージを選択し、**任務開始**と**自動指揮**がゲーム画面に存在することを確認してください。
- 現在この画面が表示されていない場合、 `現在/前回` は自動的に端末のホームページの右下隅にある「前回の参加作戦へ」ステージに入ります。
- `タスク設定` - `作戦` - `高度な設定``ステージ名を入力する` を有効にすることで、ステージ番号を手動で入力することもできます。 現在サポートされているナビゲーションステージは以下の通りです:
- すべてのメインストーリーステージ。通常または厄難奮戦に切り替えるには、ステージ末尾に `-NORMAL` または `-HARD`追加します
- すべてのメインストーリーステージ。ステージ末尾に `-NORMAL` または `-HARD`付けて難易度を切り替え可能10〜14章は標準/厄難、15章以降は通常/険地)
- 龍門幣、作戦記録の5/6ステージ。ただし、 `CE-6` / `LS-6` を入力する必要があります。6ステージを実行できない場合は、自動的に5ステージに移行します。
- アーツ学、購買資格証、建築資材。 `CA-5` / `AP-5` / `SK-5` を入力する必要があります。
- SoCの場合のみ、完全なステージ番号を入力する必要があります。例 `PR-A-1`

View File

@@ -10,15 +10,53 @@ This page is outdated and maybe still in Simplified Chinese. Translation is need
:::
現在、生息演算のサポートはまだ初期段階にあり、自動攻略は推奨されず、現段階では安定性を保証できません。
## デフォルトモード
## 熱砂秘聞Tales
### デフォルトモード
1. 生息演算のメイン画面でタスクを開始する必要があります(ナビゲーションはまだ未実装)
2. すでにセーブデータがある状況では使用できません(既存のセーブデータを削除してください)
3. 生息演算の編成にオペレーターがいる状況では使用できません(生息演算の現在の編成をクリアしてください、特にウェーブを完了した後)
## 製造でポイント稼ぎ
### 製造でポイント稼ぎ
1. 生息演算内で駐屯地が見えるページから開始する必要があります
2. アイテム名が未記入の場合、デフォルトでグローライトを製造します
3. 前提条件現在が決算後の初日で、その後3日間敵襲による駐屯地への侵入がないこと
4. 製造可能数量がちょうど99の倍数の場合、フリーズします。セーブ前に少し使用することができます。これは後で修正予定です
## リローンチアンカーRelaunchAnchor
### RA-1
- 収益目安1周あたり約159トークン + 統籌ポイント、1周約2分10秒
- オペレーター要件:なし
- 前提条件ストーリーでRA-1をクリア済みであること
- ワールドマップでRA-1を開き、右下に「建設開始」が表示されたらタスクを開始すると自動ループします
- 注意:開始時に追加アイテムを持ち込むテクノロジーを解放している場合、該当施設(食品供給ステーション、飲料供給ステーション、大型獣檻など)を撤去してください
- タスクフロー:精耕細作→建設→資源納品→決算を自動ループ
### RA-4
- 収益目安1周あたり約417トークン + 統括ポイント、1周約1分40秒
- オペレーター要件:ヴィシャデル(サポート可)
- 前提条件:
1. メインストーリーを進めてRA-4をクリア済みの状態にする
2. 「計画経営」をアンロックする
3. 自分でヴィシャデルを持っている場合、手動でステージを開いて一度編成を行う。ヴィシャデルよりもコストが低い任意の5人のオペレーターヴィシャデルとし、ヴィシャデルを6番目最後に選択する枠に配置する。その後、勧誘を確定し、今回の建設を中止して「建設開始」から開始する。
4. サポートのヴィシャデルを使用する場合、ヴィシャデルがスナイパーサポートのトップページに表示されていることを確認するフレンドを考慮。手動でステージを開き、ヴィシャデルよりもコストが低い任意の5人のオペレーターを編成し、6番目にサポートのヴィシャデルを選択して勧誘を確定する。その後、今回の建設を中止して「建設開始」から開始する先頭5枠にオペレーターがおり、6番目が空いていることを確認する
- ワールドマップでRA-4を開き、右下に「建設開始」が表示されたらタスクを開始すると自動ループします
- 注意:開始時に追加アイテムを持ち込むテクノロジーを解放している場合、該当施設(食品供給ステーション、飲料供給ステーション、大型獣檻など)を撤去してください
- タスクフロー:「計画経営」で得た赤金を使ってエリアを解放し、ヴィシャデルでボス討伐を完了する
### RA-15
- 収益目安1周あたり約500トークン + 統籌ポイント、1周約3分
- オペレーター要件:シヴィライト・エテルナ(サポート可)
- 前提条件:
1. ストーリーでRA-15をクリア済みであること
2. シヴィライト・エテルナを所持している場合、手動でステージを開き編成を設定バンガード5体育成不要+ エテルナを6番目に配置、保存して退出
3. サポートのシヴィライト・エテルナを使用する場合、術士サポートの最初のページに表示されるよう調整
- ワールドマップでRA-15を開き、右下に「建設開始」が表示されたらタスクを開始すると自動ループします
- 注意:開始時に追加アイテムを持ち込むテクノロジーを解放している場合、該当施設を撤去してください
- タスクフローシヴィライト・エテルナで60撃破ミッションを達成

View File

@@ -11,10 +11,14 @@ icon: fluent:people-24-filled
`緊急招集票` の自動使用に対応し、1回のタスクあたりの最大募集回数を設定できます。`緊急招集票を自動的に使用` と併用すれば、一度に募集券を使い切ることができます。
1・5・6★タグを検出した場合は通知を表示します。
保留対象のタグ、5★タグ、6★タグを検出した場合は通知を表示します。
公開求人の更新時には、公開求人のタグデータを [ペンギン急便データ統計処理部門](https://penguin-stats.io/) と [ワンシート攻略](https://ark.yituliu.cn/) に自動アップロードします(**ご注意:「ワンシート攻略」は実質的に簡体字中国語のみのため、翻訳ツールと併用してください**)。
## 高度な設定
`自動的に確認する` は MAA が自動でタグを選択して募集を実行することを意味し、`手動的に確認する` は自動選択および自動募集を行わないことを意味します。
`3★タグ優先` を有効にすると、優先したい 3★タグを選択できます。`指定タグを保留` を有効にすると、保持したいタグを選択できます。
保留対象のタグを1つでも認識した場合、MAA はその公開求人枠を保持したまま今回の募集をスキップし、確認操作は行いません。

View File

@@ -15,12 +15,23 @@ icon: octicon:tools-16
所持/未所持のオペレーター一覧を認識し、潜在能力データを認識・保存して公開求人認識で表示に利用します。
現在、以下のエクスポート形式に対応しています:
- クリップボード
- JSON
- Markdown テーブル
- CSV テーブル
## 倉庫アイテム認識
ホーム画面から自動で倉庫へ移動できます。自動遷移に失敗した場合は、手動で倉庫の `素材` 画面へ切り替え、**いちばん左端までスワイプ** してから開始してください。
現在、MAAから以下のサイトへエクスポートに対応しています:
[ペンギン急便周回計画作成ツール](https://penguin-stats.io/planner)、[アークナイツツールボックス](https://arkntools.app/#/material)、[アークナイツ | 周回計画表](https://ark-nights.com/settings)。
現在、以下のエクスポート形式に対応しています:
- [ペンギン急便周回計画作成ツール](https://penguin-stats.io/planner)ArkPlanner
- [アークナイツツールボックス](https://arkntools.app/#/material)Lolicon
- Markdown テーブル
- CSV テーブル
データサイトを運営されている方は、貴サイトの素材JSON形式へのエクスポート対応についてもぜひご連絡ください。実装を検討いたします。
@@ -48,3 +59,15 @@ MAAの目を通して世界を見てみたいですか今、それが来ま
MAA が目標フレームレートに合わせてエミュレータのスクリーンショットを取得し、ウィンドウ中央にリアルタイム表示します。
スクショ取得速度が目標フレームレートに対して明らかに遅い場合、スクショ速度に合わせて目標フレームレートを自動で下げます。~~負荷テストにもどうぞ~~
## ミニゲーム
イベント内のミニゲームを自動的に周回します。名前の選択に対応し、設定で常設と当期限定イベントを切り替えられます。
内蔵機能:
- イベントショップ交換
- 緑チケットショップ交換
- 黄チケットショップ交換
- 生息演算ショップ交換
- シークレットフロント(エンディングとイベント分岐の選択に対応)

View File

@@ -147,6 +147,6 @@ JSONファイルはコメントをサポートしていません。テキスト
## サンプル
[243 有効率が最も高い 一日三回](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/resource/custom_infrast/243_layout_3_times_a_day.json)
[243 有効率が最も高い 一日三回](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master-v2/resource/custom_infrast/243_layout_3_times_a_day.json)
[153 有効率が最も高い 一日三回](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/resource/custom_infrast/153_layout_3_times_a_day.json)
[153 有効率が最も高い 一日三回](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master-v2/resource/custom_infrast/153_layout_3_times_a_day.json)

View File

@@ -227,7 +227,7 @@ Todo
- `MedicineConfirm`
理性回復剤使用確認
- `ExpiringMedicineConfirm`
48時間以内に期限切れ理性回復剤使用確認
期限切れ間近の理性回復剤使用確認
- `StoneConfirm`
純正源石使用確認
- `RecruitRefreshConfirm`
@@ -361,6 +361,16 @@ Todo
}
```
- `RecruitPreservedTag`
保留対象の公開求人タグの検出
```json
// 対応する詳細フィールドの例
{
"tag": "ロボット"
}
```
- `RecruitResult`
公開求人結果

View File

@@ -775,14 +775,6 @@ OCRで思わぬ遭遇イベントを認識しますが、選択肢は固定さ
MAAは界園テーマで通宝の拾取と交換を自動処理します
::: tip 有効条件
通宝交換機能は以下のモードでのみ有効:
- 投資モード「投資モードで購買、募集、2層進出を有効化」オプションを有効にする必要があります
- その他のモード:デフォルトで有効
:::
1. **ドロップ通宝の拾取**戦闘終了後、通宝ドロップ選択画面が表示された場合、MAAは `pickup_priority` に基づいて最も優先度の高い通宝を選択
2. **銭匣通宝の交換**:新しく拾った通宝を銭匣内の通宝と交換する必要がある場合:

View File

@@ -118,7 +118,7 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
ステージ名。デフォルトは空で、現在/最後のステージを認識します。実行中の設定はサポートされていません。
ナビゲーション対象のステージは以下の通りです:
- すべてのメイン ストーリー ステージ。ステージの最後`-NORMAL` または `-HARD`追加して、標準または困難なステージを切り替えることができます
- すべてのメイン ストーリー ステージ。ステージ末尾`-NORMAL` または `-HARD`付けて難易度を切り替えできます10〜14章は標準/厄難、15章以降は通常/険地)
- 龍門幣、作戦記録の 5/6 関。ただし `CE-6` / `LS-6` と入力する必要があります。MAA は 6 関が代理できない場合は自動的に 5 関に切り替わります。
- スキル本、購買資格証、碳素材の第 5 関。`CA-5` / `AP-5` / `SK-5` と入力する必要があります。
- すべてのチップ本。完全なステージ番号を入力する必要があります(例:`PR-A-1`)。
@@ -134,8 +134,11 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
::: field name="medicine" type="number" optional default="0"
理性回復剤の最大使用数。
:::
::: field name="expiring_medicine" type="number" optional default="0"
48 時間以内に期限切れになる理性回復剤の最大使用数
::: field name="medicine_expire_days" type="number" optional default="0"
指定日数以内に期限切れになる理性回復剤を使用します。`0` は期限切れの理性回復剤を使用しないことを意味します
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
v6.8.0 で非推奨になりました。代わりに `medicine_expire_days` を使用してください。
:::
::: field name="stone" type="number" optional default="0"
純正源石の最大使用数。
@@ -197,7 +200,7 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
"enable": true,
"stage": "1-7",
"medicine": 1,
"expiring_medicine": 0,
"medicine_expire_days": 2,
"stone": 0,
"times": 10,
"series": 0,
@@ -259,7 +262,14 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
緊急招集の回数。`expedite` が true の場合のみ有効です。デフォルトは制限なし(`times` の上限まで)です。
:::
::: field name="skip_robot" type="boolean" optional default="true"
ロボット タグが認識されたときにスキップするかどうか
非推奨です。旧パラメータ互換のためにのみ残されています
<br>
`preserve_tags` が指定されておらず、この値が `true` の場合は `支援机械` を認識したときのみスキップします。`元素` は旧来の 1★ タグとしては扱われません。
:::
::: field name="preserve_tags" type="array<string>" optional
現在の公開求人枠を保持したまま今回の募集をスキップしたい Tag 名の一覧です。デフォルトは空です。
<br>
指定した Tag のいずれかを認識した場合、MAA はその枠を保持して今回の募集をスキップします。
:::
::: field name="recruitment_time" type="object" optional
タグレベル3 以上)と対応する希望採用時間(分単位)。デフォルト値は 540つまり 09:00:00です。
@@ -300,7 +310,7 @@ Bilibili`张三`、入力可能:`张三`、`张`、`三`
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -910,32 +920,44 @@ Sarkaz テーマ、Investment モード、「破棘成金分隊」または「
::: field name="enable" type="boolean" optional default="true"
このタスクを有効にするかどうか。
:::
::: field name="theme" type="string" optional default="Fire"
::: field name="theme" type="string" optional default="Tales"
テーマ。
<br>
`Fire` - _砂中の火_
`Fire` - _砂中の火_(終了)
<br>
`Tales` - _熱砂秘聞_
`Tales` - _熱砂秘聞_
<br>
`RelaunchAnchor` - _リローンチアンカー_
:::
::: field name="mode" type="number" optional default="0"
モード。
モード。テーマごとにサポートするモードが異なります:
<br>
`0` - ポイント稼ぎと建造ポイント、戦闘に入って直接退出。
**Tales熱砂秘聞**
<br>
`1` - 沙中之火:赤金稼ぎ、連絡員から水購入後基地で鍛造;沙洲遗闻:支援アイテムを組み立てて生息ポイントを稼ぐ。
`0` - セーブなし、ステージ出入りで生息ポイントを稼ぐ。
<br>
`1` - セーブあり、支援アイテムを組み立てて生息ポイントを稼ぐ。
<br>
**RelaunchAnchorリローンチアンカー**
<br>
`16` (`RA1`) - RA-1、精耕細作→建設→資源納品→決算を自動ループ。
<br>
`32` (`RA15`) - RA-15、シヴィライト・エテルナで60撃破ミッションを達成。
<br>
`48` (`RA4`) - RA-4、「計画経営」で得た赤金を使ってエリアを解放し、ヴィシャデルでボス討伐を完了する。
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
自動製造品。サブストリング入力推奨。
自動製造品。サブストリング入力推奨。Tales テーマのみ有効。
:::
::: field name="increment_mode" type="number" optional default="0"
クリック型。
クリック型。Tales テーマのみ有効。
<br>
`0` - 連続クリック
<br>
`1` - 長押し
:::
::: field name="num_craft_batches" type="number" optional default="16"
単次最大製造バッチ数。
単次最大製造バッチ数。Tales テーマのみ有効。
:::
::::
@@ -1159,4 +1181,7 @@ AdbLite を使用するかどうか。可能な値:"0" または "1"。列挙
::: field name="KillAdbOnExit" type="boolean" optional
終了時に Adb プロセスをキルするかどうか。可能な値:"0" または "1"。列挙値5。
:::
::: field name="ClientType" type="string" optional
クライアント種別(ゲームチャネル)。ほとんどの接続設定では不要です。`AsstConnect` / `AsstAsyncConnect` に渡す `config` が、接続時に実行するコマンド内で `[PackageName]` を使用する場合にのみ、接続前に `AsstSetInstanceOption(..., ClientType, ...)` を設定してください。現在の組み込み設定では、`Androws``WSA``displayId` 取得のみがこの値に依存します。このオプションは StartUp / CloseDown などのタスクパラメータ `client_type` を置き換えるものではありません。列挙値6。
:::
::::

View File

@@ -21,6 +21,8 @@ icon: jam:write-f
이 테마는 팁, 주석, 정보, 주의, 경고 및 세부 정보를 사용자 정의하는 컨테이너를 지원합니다. 이 기능을 사용하여 내용을 강조할 수 있습니다.
컨테이너 안에 컨테이너가 중첩된 경우, 부모 컨테이너는 자식 컨테이너보다 콜론 `:` 을 하나 더 작성해야 합니다. 예: [단계(Steps) 컨테이너](#단계-steps)
컨테이너 사용 방법:
```markdown
@@ -44,7 +46,7 @@ icon: jam:write-f
- `warning` 주의
- `danger` 경고
- `details` 세부 사항
- `demo-wrapper` ==특수 컨테이너==
- `window` ==특수 컨테이너==
### 컨테이너 예시
@@ -72,7 +74,7 @@ icon: jam:write-f
이것은 세부 사항 컨테이너입니다
:::
::: demo-wrapper
::: window
이것은 매우 특별한 컨테이너입니다
:::
@@ -113,7 +115,7 @@ MaaAssistantArknights는 ==많은 돼지들== 에 의해 개발되었습니다
다음과 같은 설정을 사용할 수 있습니다:
::: demo-wrapper
::: window
입력:
```markdown
@@ -136,8 +138,6 @@ MaaAssistantArknights는 ==많은 돼지들== 에 의해 개발되었습니다
단계별 튜토리얼을 작성할 때, 순서가 있는 목록은 중첩으로 인해 계층 구조가 불분명해질 수 있습니다. 이럴 때 `steps` 컨테이너가 최고의 선택입니다.
이 컨테이너는 일반적인 컨테이너와 달리 시작과 끝을 표시하기 위해 4개의 콜론을 사용합니다.
입력:
````markdown
@@ -192,7 +192,7 @@ MaaAssistantArknights는 ==많은 돼지들== 에 의해 개발되었습니다
마크다운 본문에서 `<ImageGrid>` 컴포넌트를 사용하여 이 메서드를 호출할 수 있으며, 구체적인 구문과 효과는 다음과 같습니다.
::: demo-wrapper
::: window
구문:
@@ -292,7 +292,7 @@ icon: jam:write-f
- `color` css 스타일 색상 값을 받습니다. 예: `#fff`, `red` 등 (이 옵션은 svg 아이콘에만 유효함)
- `size` css 스타일 크기 값을 받습니다. 예: `1rem`, `2em`, `100px` 등
::: demo-wrapper 예시
::: window 예시
입력:

View File

@@ -196,7 +196,7 @@ strategy = "merge" # 또는 "first" (기본값)
# 일요일 저녁에는 모든 만료 임박한 약물을 사용
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"

View File

@@ -16,6 +16,7 @@ MAA v5.22.3까지 지원하는 감지 가능한 에뮬레이터 및 연결 주
- LDPlayer 9: `emulator-5554/5556/5558/5560`, `127.0.0.1:5555/5557/5559/5561`
- 逍遥(Xiaoyao): `127.0.0.1:62001/59865`
- 夜神(Yeshen): `127.0.0.1:21503`
- 텐센트 앱스토어 (5.10.56.xx 이후): `127.0.0.1:5555`
감지에 실패하면 UAC 관리자 권한으로 MAA를 시작하여 다시 감지해보세요. 여전히 실패한다면 아래 수동 설정을 참고하고, 에뮬레이터와 연결 주소가 위 목록에 포함되어 있는지 확인하세요.
@@ -59,6 +60,7 @@ MAA 폴더에 직접 압축을 푸는 것을 권장합니다. 그러면 ADB 경
- [LDPlayer 9](https://help.ldmnq.com/docs/LD9adbserver#edc3863750608062bcb3feea256413dc) `emulator-5554`
- [逍遥(Xiaoyao)](https://bbs.xyaz.cn/forum.php?mod=viewthread&tid=365537) `21503`
- [夜神(Yeshen)](https://support.yeshen.com/zh-CN/qt/ml) `62001`
- [텐센트 앱스토어](https://sj.qq.com/faq/3878): ADB 포트는 `127.0.0.1:5555` 고정. ADB 경로 예시: `C:\Program Files\Tencent\Androws\Application\버전번호\adb.exe`.
기타 에뮬레이터는 [赵青青의 블로그](https://www.cnblogs.com/zhaoqingqing/p/15238464.html)를 참고하세요.

View File

@@ -26,6 +26,8 @@ icon: mingcute:android-fill
## adb 디버깅 도구 다운로드 및 장치 연결
::: steps
1. [adb](https://dl.google.com/android/repository/platform-tools-latest-windows.zip)를 다운로드하고 압축을 해제합니다.
2. 압축 해제한 폴더를 열고 주소 표시줄을 지우고 `cmd`를 입력한 후 Enter 키를 누릅니다.
3. 나타나는 명령 프롬프트 창에 `adb`를 입력하고 많은 영어 도움말 텍스트가 표시되면 실행이 성공한 것입니다.
@@ -36,6 +38,8 @@ icon: mingcute:android-fill
adb devices
```
:::
- 성공적으로 실행되면 연결된 `USB 디버깅` 장치 정보가 표시됩니다.
- 예시:
@@ -115,16 +119,18 @@ icon: mingcute:android-fill
## 해상도 자동 변경
::: steps
1. MAA 폴더 아래에 두 개의 텍스트 파일을 생성하고 다음 내용을 입력합니다.
```bash
```bat
:: 해상도를 1080p로 조정
adb -s <대상 장치 시리얼 번호> shell wm size 1080x1920
:: 화면 밝기 낮추기 (선택 사항)
adb -s <대상 장치 시리얼 번호> shell settings put system screen_brightness 1
```
```bash
```bat
:: 해상도 복원
adb -s <대상 장치 시리얼 번호> shell wm size reset
:: 화면 밝기 높이기 (선택 사항)
@@ -140,6 +146,8 @@ icon: mingcute:android-fill
3. MAA의 `설정` - `연결 설정` - `시작 전 스크립트` 및 `종료 후 스크립트`에 각각 `startup.bat`과 `finish.bat`을 입력합니다.
:::
## MAA에 연결하기
### 유선 연결
@@ -158,6 +166,8 @@ icon: mingcute:android-fill
#### `adb tcpip`를 사용하여 무선 포트를 엽니다
::: steps
1. 방금 열린 명령 프롬프트 창에 다음 명령을 입력하여 무선 디버깅을 활성화합니다.
```bash
@@ -172,12 +182,16 @@ icon: mingcute:android-fill
3. MAA `설정` - `연결 설정` - `연결 주소에` `<IP>:5555`와 같이 현재 장치의 IP 주소를 입력합니다. (예: `192.168.1.2:5555`)
4. Link Start!
:::
#### `adb pair`를 사용하여 무선 포트를 엽니다
::: tip
`adb pair`는 안드로이드 11 이상에서 개발자 옵션의 `무선 디버깅`을 사용하여 페어링한 후 연결하는 것으로, 유선 연결을 안할 수 있습니다.
:::
::: steps
1. 휴대폰의 개발자 옵션으로 이동하여 `무선 디버깅`을 클릭하여 활성화하고 확인을 클릭한 후 `페어링 코드로 디바이스 페어링`을 클릭하고 페어링이 완료될 때까지 나타나는 팝업을 닫지 마세요.
2. 페어링을 시작합니다.
@@ -188,11 +202,17 @@ icon: mingcute:android-fill
3. 현재 장치 화면에 나타나는 `<IP 주소 및 포트>`를 MAA `설정` - `연결 설정` - `연결 주소`에 입력합니다. (예: `192.168.1.2:11451`), **이전에 입력한 것과 반드시 다르게 입력하세요.**
4. Link Start!
:::
#### 루트 권한을 사용하여 무선 포트를 엽니다
~~root를 했으면 이 문서를 더이상 보지 않아도 됩니다~~
::: steps
1. [WADB](https://github.com/RikkaApps/WADB/releases)를 다운로드하고 루트 권한을 부여하여 설치합니다.
2. WADB를 열고 무선 adb를 시작합니다.
3. WADB에서 제공하는 IP 주소 및 포트를 MAA `설정` - `연결 설정` - `연결 주소`에 입력합니다. (예: `192.168.1.2:5555`)
4. Link Start!
:::

View File

@@ -19,7 +19,9 @@ MAA WPF GUI는 현재 Wine을 통해 실행할 수 있습니다. MAA는 .NET 런
#### 설치 단계
1. Visual C++ Redistributable 설치:
:::: steps
1. Visual C++ Redistributable 설치
[Visual C++ 재배포 가능 패키지](https://aka.ms/vc14/vc_redist.x64.exe)를 다운로드하고 설치합니다:
@@ -31,7 +33,11 @@ MAA WPF GUI는 현재 Wine을 통해 실행할 수 있습니다. MAA는 .NET 런
`DependencySetup_依赖库安装.bat`는 winget 및 Windows 권한 상승 메커니즘에 의존하므로 Wine에서 정상적으로 작동하지 않습니다. 따라서 런타임 라이브러리를 수동으로 설치해야 합니다.
:::
2. Windows용 MAA 다운로드하고 압축을 푼 후 `wine MAA.exe`를 실행합니다.
2. MAA 다운로드
Windows용 MAA를 다운로드하고 압축을 푼 후 `wine MAA.exe`를 실행합니다.
::::
::: info 주의
연결 설정에서 ADB 경로를 [Windows용 `adb.exe`](https://dl.google.com/android/repository/platform-tools-latest-windows.zip)로 설정해야 합니다.

View File

@@ -13,9 +13,11 @@ icon: basil:apple-solid
참고: macOS 자체적인 문제로 인해 게임 창을 최소화하거나 배경으로 이동한 후 다른 창으로 전환하거나 창을 다른 데스크톱/화면으로 이동하는 경우 스크린샷이 문제가 발생하여 제대로 작동하지 않을 수 있습니다. 관련된 이슈 [#4371](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/4371#issuecomment-1527977512)
::: steps
0. 요구 사항: MAA 버전 v4.13.0-rc.1 이상
1. [fork버전의 PlayCover](https://github.com/hguandl/PlayCover/releases)를 다운로드하고 설치하세요.
1. [fork 버전의 PlayCover](https://github.com/hguandl/PlayCover/releases)를 다운로드하고 설치하세요.
2. [복호화된 명일방주 설치 파일](https://decrypt.day/app/id1454663939)을 다운로드하고 PlayCover에 설치하세요.
@@ -29,6 +31,8 @@ icon: basil:apple-solid
7. 3-5 단계는 한 번만 수행하면 됩니다. 이후 명일방주를 다시 업데이트한 후에는 2단계를 다시 수행해야 합니다.
:::
### ✅ [MuMu 에뮬레이터 Pro](https://mumu.163.com/mac/)
지원됩니다. 그러나 테스트는 적고 `MacPlayTools` 이외의 터치 모드를 사용해야 합니다. 관련된 이슈 [#8098](https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8098)

View File

@@ -40,6 +40,11 @@ const fullySupport = [
note: '완전히 호환됩니다. 에뮬레이터의 `설정` - `고급 설정`에서 `ADB 기능`을 켜야 합니다. Hyper-V와 호환되는 것으로 알려져 있습니다.\n\n- 느리고 번들로 제공되는 설치를 피하기 위해 [오프라인 설치 프로그램](https://support.bluestacks.com/hc/en-us/articles/4402611273485-BlueStacks-5-offline-installer)을 다운로드하는 것이 좋습니다; [Android 11](https://support.bluestacks.com/hc/en-us/articles/4402611273485-BlueStacks-5-offline-installer#:~:text=To%20install%20BlueStacks%205%20Android%2011) 버전 설치를 권장합니다; 제거하려면 공식 [제거 도구](https://support.bluestacks.com/hc/en-us/articles/360057724751-How-to-uninstall-BlueStacks-5-BlueStacks-X-and-BlueStacks-Services-completely-from-your-PC)를 사용하여 잔여물을 제거하세요.\n- adb 포트 번호가 계속 불규칙하게 변경되고 시작할 때마다 다르다면 컴퓨터에 [Hyper-V](https://support.bluestacks.com/hc/en-us/articles/4415238471053-System-requirements-for-BlueStacks-5-on-Hyper-V-enabled-Windows-10-and-11)가 활성화되어 있기 때문일 수 있습니다. MAA는 이제 BlueStacks 에뮬레이터 구성 파일 내에서 포트 번호를 자동으로 읽으려고 시도할 것입니다. 이 방법이 작동하지 않거나 다중 실행/둘 이상의 에뮬레이터 커널이 설치된 경우 [연결 설정](../connection.md#bluestacks-에뮬레이터-hyper-v-포트-번호-변경)을 참조하여 변경하세요. Hyper-V는 관리자로 실행되므로 에뮬레이터 자동 종료, 자동 연결 감지 등 adb와 관련 없는 작업도 MAA를 관리자로 실행해야 합니다.',
},
...shuffleArray([
{
name: '텐센트 앱스토어',
link: 'https://sj.qq.com/',
note: '5.10.56.xx 이후 버전을 지원합니다. `설정` - `연결 설정`에서 `텐센트 앱스토어` 연결 구성을 선택하세요. Hyper-V와 호환되는 것으로 알려져 있습니다.\n\n- ADB 포트는 `127.0.0.1:5555`입니다.\n- ADB 경로 예시: `C:\\Program Files\\Tencent\\Androws\\Application\\버전번호\\adb.exe`.\n\n- 먼저 앱스토어에서 [ADB 디버깅을 활성화](https://sj.qq.com/faq/3878)해야 합니다.',
},
{
name: 'Nox',
link: 'https://kr.bignox.com/',

View File

@@ -40,7 +40,7 @@ icon: hugeicons:brain-02
스테이지 이름, 정보, 소모 이성이 뜨고 오른쪽 하단에 대리지휘와 시작 버튼이 표시된 화면으로 가세요.
- 해당 화면이 아닌 경우 `현재/이전`은 자동으로 가장 최근에 실행한 스테이지로 이동합니다.
- 또는 작업 `설정` - `이성 사용` - `고급 설정`에서 `스테이지 코드 수동 입력`을 체크해 스테이지 코드를 직접 입력할 수 있습니다. 현재 내비게이션할 수 있는 스테이지는 다음과 같습니다:
- 모든 메인 스토리 스테이지. 표준 또는 어려움 난이도를 전환하려면 스테이지 코드 에 -NORMAL 또는 -HARD를 추가하세요.
- 모든 메인 스토리 스테이지. 스테이지 코드 `-NORMAL` 또는 `-HARD`를 추가해 난이도를 전환할 수 있습니다 (10-14장은 표준/재앙, 15장 이후는 일반/험지).
- 용문폐 혹은 작전 기록의 5/6스테이지는 `CE-6`/`LS-6`를 입력해야 합니다. MAA는 6스테이지가 대리 지휘가 불가능할 경우 자동으로 5스테이지로 전환합니다.
- 스킬 북, 구매 증명서, 카본 부품 5스테이지는 `CA-5`/`AP-5`/`SK-5`를 입력해야 합니다.
- 모든 칩 스테이지. 완전한 스테이지 코드를 입력해야 합니다. 예: `PR-A-1`.

View File

@@ -7,15 +7,53 @@ icon: solar:streets-map-point-linear
현재 생존 연산 기능은 초기 단계이며, 현재 단계에서는 안정성을 보장할 수 없습니다.
## 기본 모드
## 사막 이야기Tales
### 기본 모드
1. 생존 연산 메인화면에서 시작해야합니다
2. 기존 데이터(진행사항)가 있으면 사용할 수 없습니다.
3. 생존 연산의 편성창에 오퍼레이터가 있으면 안됩니다.
## 도구 제조 모드
### 도구 제조 모드
1. 생존 연산 주둔지가 보이는 화면에서 시작해야합니다.
2. 제작할 도구 이름 미작성시, 기본적으로 형광봉을 만듭니다.
3. 결산 후 첫 번째 날이어야 하며, 이 후 3일 이내에 적의 침입이 없어야 합니다.
4. 제조 가능한 수량이 99의 배수일 경우 멈출 수 있습니다. 저장하기 전에 재료를 약간 사용한 후에 다시 시도하세요.
## 리런치 앵커RelaunchAnchor
### RA-1
- 수익 참고: 약 159 토큰 + 통합 포인트, 1회 약 2분 10초
- 오퍼레이터 요구사항: 없음
- 전제 조건: 메인 스토리에서 RA-1 클리어 상태
- 월드맵에서 RA-1을 열고, 우하단에 "건설 시작"이 나타나면 작업을 시작하면 자동 루프됩니다
- 주의: 시작 시 추가 아이템을 가져가는 기술을 해금한 경우, 해당 시설(식품 공급소, 음료 공급소, 대형 우리 등)을 제거해 주세요
- 작업 흐름: 정경세작→건설→자원 납품→결산 자동 루프
### RA-4
- 수익 참고: 약 417 토큰 + 통합 포인트, 1회 약 1분 40초
- 오퍼레이터 요구사항: 비샤델 (서포트 사용 가능)
- 사전 조건:
1. 메인 스토리를 진행하여 RA-4를 클리어한 상태로 만듭니다.
2. "전략 계획 경영"을 해금합니다.
3. 자신이 비샤델을 보유한 경우, 수동으로 스테이지를 열고 한 번 편성합니다. 비샤델보다 코스트가 낮은 임의의 5명의 오퍼레이터 + 비샤델로 하고, 비샤델을 6번째 슬롯(마지막으로 선택하는 자리)에 배치합니다. 그 후 모집을 확정하고, 이번 건설을 포기한 후 "건설 시작"에서 시작합니다.
4. 서포트 비샤델을 사용하는 경우, 비샤델이 스나이퍼 서포트 첫 페이지에 있는지 확인합니다(친구 고려). 수동으로 스테이지를 열어 비샤델보다 코스트가 낮은 임의의 5명의 오퍼레이터를 편성하고, 6번째 슬롯에 서포트 비샤델을 선택한 후 모집을 확정합니다. 그 후 이번 건설을 포기하고 "건설 시작"에서 시작합니다 (앞의 5개 슬롯에 오퍼레이터가 있고 6번째는 비어 있는지 확인).
- 월드맵에서 RA-4를 열고, 우하단에 "건설 시작"이 나타나면 작업을 시작하면 자동 루프됩니다
- 주의: 시작 시 추가 아이템을 가져가는 기술을 해금한 경우, 해당 시설(식품 공급소, 음료 공급소, 대형 우리 등)을 제거해 주세요
- 작업 흐름: "경영 계획"으로 얻은 적금을 사용하여 지역을 해금하고, 비샤델로 보스 처치 임무를 완료합니다。
### RA-15
- 수익 참고: 약 500 토큰 + 통합 포인트, 1회 약 3분
- 오퍼레이터 요구사항: 시빌라이트 에테르나 (서포트 사용 가능)
- 전제 조건:
1. 메인 스토리에서 RA-15 클리어 상태
2. 시빌라이트 에테르나를 보유한 경우, 수동으로 스테이지를 열고 편성 설정: 뱅가드 5기(육성 불필요) + 에테르나를 6번째에 배치, 저장 후 퇴장
3. 서포트 시빌라이트 에테르나 사용 시, 술사 서포트 첫 페이지에 표시되도록 조정
- 월드맵에서 RA-15를 열고, 우하단에 "건설 시작"이 나타나면 작업을 시작하면 자동 루프됩니다
- 주의: 시작 시 추가 아이템을 가져가는 기술을 해금한 경우, 해당 시설을 제거해 주세요
- 작업 흐름: 시빌라이트 에테르나로 60킬 미션 달성

View File

@@ -11,10 +11,14 @@ icon: fluent:people-24-filled
`즉시 완료 허가증` 자동 사용을 지원하며, 1회 실행 시 `최대 모집 횟수`를 설정할 수 있습니다. `즉시 완료 허가증 자동 사용`과 연계하여 모집권을 한 번에 모두 소모할 수도 있습니다.
1★, 5★, 6★ 나오면 알림이 표시됩니다.
보류 대상으로 지정한 태그, 5★ 태그, 6★ 태그가 나오면 알림이 표시됩니다.
공개모집이 될 때마다 공채 태그 데이터가 자동으로 [펭귄 물류](https://penguin-stats.cn/) 및 [Yituliu](https://ark.yituliu.cn/)에 업로드 됩니다.
## 고급 설정
`자동 모집`은 MAA가 태그를 자동으로 선택하고 모집을 진행합니다. `수동 모집`은 자동 선택 및 모집을 하지 않습니다.
`3★ 태그 우선`을 켜면 선호하는 3★ 태그를 추가로 고를 수 있습니다. `선택한 태그 보류`를 켜면 유지하고 싶은 태그를 고를 수 있습니다.
보류 대상으로 지정한 태그 중 하나라도 인식되면 MAA는 현재 공개모집 슬롯을 유지한 채 이번 모집을 건너뛰며, 확인을 진행하지 않습니다.

View File

@@ -11,26 +11,32 @@ icon: octicon:tools-16
이전에 오퍼레이터 인식을 실행한 경우 인식이 완료된 오퍼레이터의 잠재력 데이터가 표시됩니다.
## 오퍼레이터 인식 (Beta)
## 오퍼레이터 인식
보유한 및 보유하지 않은 오퍼레이터 목록을 인식하고 공개모집 인식에 표시될 잠재력 데이터를 인식하여 저장할 수 있습니다.
## 창고 인식 (Beta)
현재 다음과 같은 내보내기 형식을 지원합니다:
- 클립보드
- JSON
- Markdown 표
- CSV 표
## 창고 인식
메인 페이지에서 자동으로 창고 화면으로 이동하는 기능을 지원합니다. 자동으로 이동하는데 실패하면 수동으로 `육성 재료` 화면으로 전환하고 왼쪽 끝까지 슬라이드하여 기능을 시작하세요.
현재 [펭귄 물류](https://penguin-stats.cn/planner), [Arknights Toolbox](https://arkntools.app/#/material), [Arknights | Planner](https://ark-nights.com/settings)로 내보내기 기능을 지원합니다.
현재 다음과 같은 내보내기 형식을 지원합니다:
- [펭귄 물류](https://penguin-stats.io/planner) (ArkPlanner)
- [Arknights Toolbox](https://arkntools.app/#/material) (Lolicon)
- Markdown 표
- CSV 표
JSON 프로토콜과 통합을 희망하는 경우 언제든지 문의해주세요.
앞으로 더 유용한 기능이 추가될 **가능성**이 있습니다.
## 영상 인식 (Alpha)
전술 비디오를 인식하고 자동으로 자동지휘 파일을 생성할 수 있습니다. 비디오 파일을 자동지휘 탭 페이지로 끌어다 놓으면 시작됩니다.
가로세로 비율이 16:9 이고 720p 이상의 해상도를 갖는 비디오만 지원됩니다. 비디오 내용에는 검은 테두리, 왜곡 보정, 에뮬레이터 테두리 또는 기타 요소가 없어야 합니다.
## 헤드헌팅 (가챠)
::: center
@@ -48,3 +54,15 @@ MAA의 눈을 통해 세상을 보고 싶나요? 이제 그것이 왔습니다!
MAA는 목표 프레임 레이트로 에뮬레이터에서 스크린샷을 시도하고, 실시간으로 창에 스크린샷을 표시합니다.
스크린샷 속도가 목표 프레임 레이트에 비해 현저히 느릴 때, MAA는 스크린샷 속도에 맞추기 위해 목표 프레임 레이트를 자동으로 낮춥니다. ~~스트레스 테스트로 사용할 수 있습니다~~
## 미니게임
이벤트의 미니게임을 자동으로 반복합니다. 이름 선택을 지원하며, 설정에서 상설과 현재 한정 이벤트를 전환할 수 있습니다.
내장 기능:
- 이벤트 상점 교환
- 초록 티켓 상점 교환
- 노란 티켓 상점 교환
- 생식연산 상점 교환
- 시크릿 프론트 (엔딩과 이벤트 분기 선택 지원)

View File

@@ -137,6 +137,6 @@ JSON 파일은 주석을 지원하지 않으므로, 텍스트 내의 주석은
## 예시
[243 극한 효율, 하루 3회 교대](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/resource/custom_infrast/243_layout_3_times_a_day.json)
[243 극한 효율, 하루 3회 교대](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master-v2/resource/custom_infrast/243_layout_3_times_a_day.json)
[153 극한 효율, 하루 3회 교대](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master/resource/custom_infrast/153_layout_3_times_a_day.json)
[153 극한 효율, 하루 3회 교대](https://github.com/MaaAssistantArknights/MaaAssistantArknights/blob/master-v2/resource/custom_infrast/153_layout_3_times_a_day.json)

View File

@@ -265,7 +265,7 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
- `MedicineConfirm`
이성 회복제 사용 확인
- `ExpiringMedicineConfirm`
48시간 내 만료되는 이성 회복제 사용 확인
만료 임박한 이성 회복제 사용 확인
- `StoneConfirm`
오리지늄 사용 확인
- `RecruitRefreshConfirm`
@@ -364,6 +364,15 @@ typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom
:::
::::
- `RecruitPreservedTag`
공개모집에서 보류 대상으로 설정된 태그를 식별했습니다. `details` 필드 내용은 다음과 같습니다:
:::: field-group
::: field name="tag" type="string" required
보류를 트리거한 태그 명칭, 예: `지원 기계`
:::
::::
- `RecruitResult`
공개모집 식별 결과. `details` 필드 구조는 다음과 같습니다:
- `tags` (array, required): 식별된 모든 태그, 현재 5개로 고정

View File

@@ -793,12 +793,6 @@ OCR로 이벤트 이름을 인식하지만, 선택지는 **고정된 위치**를
MAA는 쉐이 통합 전략에서 자동으로 주화를 줍고 교환합니다.
::: tip 활성화 조건
- 투자 모드: "투자 모드에서 쇼핑/모집/2층진입 켜기" 옵션 필요
- 기타 모드: 기본 활성화
:::
1. **주화 줍기**: 전투 종료 후 주화 드랍 창에서 `pickup_priority`가 가장 높은 것을 선택.
2. **주화 교환**: 주머니가 꽉 찼을 때 새 주화를 주우면:
- 주머니 속 주화들의 유형/이름/투척상태 식별

View File

@@ -119,7 +119,7 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
<br>
`"1-7"`, `"S3-2"` 등 모든 메인 스토리 스테이지 지원
<br>
스테이지명 끝에 `Normal`/`Hard`를 입력하여 일반/하드 난이도 전환 가능
스테이지명 끝에 `-NORMAL`/`-HARD`를 추가해 난이도 전환 가능 (10-14장은 표준/재앙, 15장 이후는 일반/험지)
<br>
섬멸 작전의 경우 반드시 `"Annihilation"` 입력
<br>
@@ -128,8 +128,11 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
::: field name="medicine" type="number" optional default="0"
이성 회복제 최대 사용 개수
:::
::: field name="expiring_medicine" type="number" optional default="0"
48시간 내 만료되는 이성 회복제 최대 사용 개수
::: field name="medicine_expire_days" type="number" optional default="0"
지정된 일수 이내에 만료되는 이성 회복제를 사용합니다. `0`은 만료 임박 이성 회복제를 사용하지 않음을 의미합니다.
:::
::: field name="expiring_medicine" type="number" optional default="0" deprecated
v6.8.0부터 폐기됨. 대신 `medicine_expire_days`를 사용하세요.
:::
::: field name="stone" type="number" optional default="0"
오리지늄 최대 사용 개수
@@ -184,7 +187,7 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
"enable": true,
"stage": "1-7",
"medicine": 1,
"expiring_medicine": 0,
"medicine_expire_days": 2,
"stone": 0,
"times": 10,
"series": 0,
@@ -248,7 +251,14 @@ Bilibili 서버: `张三`인 경우 `张三`, `张`, `三` 입력 가능
즉시 완료 사용 횟수, `expedite`가 true일 때만 유효. 기본값은 무제한(즉 `times` 상한까지)
:::
::: field name="skip_robot" type="boolean" optional default="true"
로봇 태그 인식 시 건너뛸지 여부
폐기 예정이며 구형 파라미터 호환용으로만 유지됩니다.
<br>
`preserve_tags`가 없고 이 값이 `true`이면 `支援机械` 인식 시에만 건너뜁니다. `元素`는 더 이상 구형 1★ 태그로 취급하지 않습니다.
:::
::: field name="preserve_tags" type="array<string>" optional
현재 공개모집 슬롯을 유지한 채 이번 모집을 건너뛸 Tag 이름 목록입니다. 기본값은 빈 배열입니다.
<br>
지정한 Tag 중 하나라도 인식되면 MAA는 해당 슬롯을 유지하고 이번 모집을 건너뜁니다.
:::
::: field name="recruitment_time" type="object" optional
태그 등급(3 이상)과 대응하는 희망 모집 시간(분 단위), 기본값은 모두 540(즉 09:00:00)
@@ -289,7 +299,7 @@ Yituliu 전송 ID, 기본값 비어 있음. `report_to_yituliu`가 true일 때
"set_time": true,
"expedite": false,
"expedite_times": 0,
"skip_robot": true,
"preserve_tags": ["支援机械"],
"recruitment_time": {
"3": 540,
"4": 540
@@ -899,32 +909,44 @@ Sarkaz 테마, Investment 모드, "연금술 분대" 또는 "지원 분대"일
::: field name="enable" type="boolean" optional default="true"
본 작업 활성화 여부
:::
::: field name="theme" type="string" optional default="Fire"
::: field name="theme" type="string" optional default="Tales"
테마
<br>
`Fire` - _모래 속의 불_
`Fire` - _모래 속의 불_(종료)
<br>
`Tales` - _사막 이야기_
`Tales` - _사막 이야기_
<br>
`RelaunchAnchor` - _리런치 앵커_
:::
::: field name="mode" type="number" optional default="0"
모드
모드. 테마마다 지원하는 모드가 다릅니다:
<br>
`0` - 점수 및 건설 포인트 파밍, 전투 진입 후 바로 포기
**Tales사막 이야기):**
<br>
`1` - 모래 속의 불: 적금 파밍, 연락원에게 물 구매 후 기지에서 주조; 사막 이야기: 자동 아이템 제작 및 로드 반복으로 화폐 파밍
`0` - 세이브 없음, 스테이지 반복으로 번영의 선물 획득。
<br>
`1` - 세이브 있음, 도구 제작으로 번영의 선물 획득。
<br>
**RelaunchAnchor리런치 앵커):**
<br>
`16` (`RA1`) - RA-1, 정경세작→건설→자원 납품→결산 자동 루프。
<br>
`32` (`RA15`) - RA-15, 시빌라이트 에테르나로 60킬 미션 달성。
<br>
`48` (`RA4`) - RA-4, "경영 계획"으로 얻은 적금을 사용하여 지역을 해금하고, 비샤델로 보스 처치 임무를 완료합니다。
:::
::: field name="tools_to_craft" type="array<string>" optional default="[&quot;荧光棒&quot;]"
자동 제작 아이템, 부분 문자열 입력 권장
자동 제작 아이템, 부분 문자열 입력 권장. Tales 테마에서만 유효
:::
::: field name="increment_mode" type="number" optional default="0"
클릭 유형
클릭 유형. Tales 테마에서만 유효
<br>
`0` - 연타
<br>
`1` - 꾹 누르기
:::
::: field name="num_craft_batches" type="number" optional default="16"
1회 최대 제작 배치 수
1회 최대 제작 배치 수. Tales 테마에서만 유효
:::
::::
@@ -1148,4 +1170,7 @@ AdbLite 사용 여부. 옵션: "0" 끄기, "1" 켜기. 열거값: 4
::: field name="KillAdbOnExit" type="boolean" optional
종료 시 ADB 프로세스 종료 여부. 옵션: "0" 끄기, "1" 켜기. 열거값: 5
:::
::: field name="ClientType" type="string" optional
클라이언트 종류(게임 채널). 대부분의 연결 설정에서는 필요하지 않습니다. `AsstConnect` / `AsstAsyncConnect` 에 전달하는 `config` 가 연결 단계에서 실행되는 명령에 `[PackageName]` 을 사용할 때만, 연결 전에 `AsstSetInstanceOption(..., ClientType, ...)` 를 호출해 설정해야 합니다. 현재 내장 설정 중에서는 `Androws``WSA``displayId` 조회만 이 값에 의존합니다. 이 옵션은 StartUp / CloseDown 등의 작업 파라미터 `client_type` 를 대체하지 않습니다. 열거값: 6
:::
::::

View File

@@ -21,6 +21,8 @@ icon: jam:write-f
该主题提供了关于提示、注释、信息、注意、警告和详情自定义容器的支持,我们可以利用这一特性来强调部分内容
需要注意的是,如果容器中嵌套了容器,则父级容器应比子集容器多写一个冒号 `:` 以进行区分,例如[步骤容器](#步骤)
容器的使用方法:
```markdown
@@ -44,7 +46,7 @@ icon: jam:write-f
- `warning` 注意
- `danger` 警告
- `details` 详情
- `demo-warpper` ==特殊容器==
- `window` ==特殊容器==
### 容器示例
@@ -72,7 +74,7 @@ icon: jam:write-f
这是详情容器
:::
::: demo-wrapper
::: window
这是一个很特殊的容器
:::
@@ -113,7 +115,7 @@ MaaAssistantArknights 是由 ==很多猪== 开发的
有以下配置可以使用
::: demo-wrapper
::: window
输入:
```markdown
@@ -136,8 +138,6 @@ MaaAssistantArknights 是由 ==很多猪== 开发的
当你正在写一个步骤化的教程时,有序列表可能会因为嵌套失去层次感,这种时候 `steps` 容器就是最好的选择
注意该容器用四个冒号来标记开始和结束,与常规的容器不同
输入:
````markdown
@@ -188,11 +188,11 @@ MaaAssistantArknights 是由 ==很多猪== 开发的
## 智能图片容器
我们基于主题提供的功能包装了一个图片容器。该容器能够在亮暗主题下自动显示对应主题的,同时支持自动布局
我们基于主题提供的功能包装了一个图片容器。该容器能够在亮暗主题下自动显示对应主题的图片,同时支持自动布局
你可以在 markdown 正文中使用 `<ImageGrid>` 组件来调用该方法,具体的语法和效果如下
::: demo-wrapper
::: window
这是语法:
@@ -292,7 +292,7 @@ icon: jam:write-f
- `color` 接受 css 风格的颜色值,如 `#fff``red` 等(该选项仅对 svg 图标有效)
- `size` 接受 css 风格的大小,如 `1rem``2em``100px` 等
::: demo-wrapper 案例
::: window 案例
输入:

View File

@@ -195,7 +195,7 @@ strategy = "merge" # 或者 "first" (默认)
# 在周天晚上使用所有的将要过期的理智药
[[tasks.variants]]
params = { expiring_medicine = 1000 }
params = { medicine_expire_days = 2 }
[tasks.variants.condition]
type = "And"

Some files were not shown because too many files have changed in this diff Show More