## 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>
MAA
简体中文 | 繁體中文 | English | 日本語 | 한국어
MAA 的意思是 MAA Assistant Arknights
一款明日方舟游戏小助手
基于图像识别技术,一键完成全部日常任务!
绝赞更新中 ✿✿ヽ(°▽°)ノ✿
下载与安装
请阅读 文档 后前往 官网 或 Releases 下载,并参考 新手上路 进行安装。
亮点功能
- 理智作战,掉落识别及上传 企鹅物流,一图流
- 智能基建换班,自动计算干员效率,单设施内最优解;同时也支持 自定义排班
- 自动公招,可选使用加急许可,一次全部刷完!公招数据自动上传 企鹅物流,一图流
- 支持手动识别公招界面,方便对高星公招做出选择
(你的这个高资回费出的是推王呢还是推王呢) - 支持识别干员列表,统计已有和未有干员及潜能,并在公招识别显示
- 支持识别养成材料,并导出至 企鹅物流刷图规划、明日方舟工具箱、ARK-NIGHTS 干员培养表
- 访问好友、收取信用及购物、领取日常奖励等,一键全日常自动长草
- 肉鸽全自动刷源石锭和等级,自动烧水和凹直升,智能识别干员及练度
- 选择作业 JSON 文件,自动抄作业, 视频演示
- 支持 C, Python, Java, Rust, Golang, Java HTTP, Rust HTTP 等多种接口,方便集成调用,自定义你的 MAA!
使用说明
功能介绍
请参阅 用户手册。
外服支持
目前国际服(美服)、日服、韩服、繁中服的绝大部分功能均已支持。但由于外服用户较少及项目人手不足,很多功能并没有进行全面的测试,所以请自行体验。
若您遇到了 Bug,或对某个功能有强需求,欢迎在 Issues 和 讨论区 催更;或加入我们一起建设 MAA!请参阅 外服适配教程
CLI 支持
MAA 支持命令行界面(CLI)操作,支持 Linux,macOS 和 Windows,可用于自动化脚本或在无图形界面的服务器上使用。请参阅 CLI 使用指南
加入我们
主要关联项目
- 全新框架:MaaFramework
- 作业站 前端:zoot-plus-frontend
- 作业站 后端:ZootPlusBackend
- 官网:前端
- 深度学习:MaaAI
多语言 (i18n)
MAA 以中文(简体)为第一语言,翻译词条均以中文(简体)为准。
参与开发
请参阅 开发指南。
API
- C 接口:集成示例
- Python 接口:集成示例
- Golang 接口:集成示例
- Dart 接口
- Java 接口:集成示例
- Java HTTP 接口
- Rust 接口:HTTP 接口
- TypeScript 接口
- Woolang 接口:集成示例
- 集成文档
- 回调消息协议
- 任务流程协议
- 自动抄作业协议
外服适配
请参阅 外服适配教程,对于国服已支持的功能,绝大部分的外服适配工作仅需要截图 + 简单的 JSON 修改即可。
Issue bot
请参阅 Issue Bot 使用方法
致谢
开源库
- 图像识别库:opencv
文字识别库:chineseocr_lite- 文字识别库:PaddleOCR
- 深度学习部署库:FastDeploy
- 机器学习加速器:onnxruntime
关卡掉落识别:企鹅物流识别- 地图格子识别:Arknights-Tile-Pos
- C++ JSON 库:meojson
- C++ 运算符解析器:calculator
C++ base64 编解码:cpp-base64- C++ 解压压缩库:zlib
- C++ Gzip 封装:gzip-hpp
- 安卓触控事件器:Minitouch
- 安卓触控事件器:MaaTouch
- WPF MVVM 框架:Stylet
- WPF 控件库:HandyControl -> HandyControls
- C# 日志:Serilog
- C# JSON 库:Newtonsoft.Json & System.Text.Json
下载器:aria2
数据源
公开招募数据:明日方舟工具箱干员及基建数据:PRTS Wiki- 关卡数据:企鹅物流数据统计
- 游戏数据及资源:明日方舟客户端素材
- 游戏数据:《明日方舟》Yostar游戏数据
贡献/参与者
感谢所有参与到开发/测试中的朋友们,是大家的帮助让 MAA 越来越好! (*´▽`)ノノ
声明
- 本软件使用 GNU Affero General Public License v3.0 only 开源,并附带额外 用户协议。
- 本软件 logo 并非使用 AGPL 3.0 协议开源,耗毛、vie 两位画师及软件全体开发者保留所有权利。不得以 AGPL 3.0 协议已授权为由在未经授权的情况下使用本软件 logo,不得在未经授权的情况下将本软件 logo 用于任何商业用途。
- 本软件开源、免费,仅供学习交流使用。若您遇到商家使用本软件进行代练并收费,可能是设备与时间等费用,产生的问题及后果与本软件无关。
DirectML 支持说明
本软件支持 GPU 加速功能,其在 Windows 平台上依赖于 Microsoft 提供的独立组件 DirectML。DirectML 并非本项目的开源部分,也不受 AGPL 3.0 的约束。为方便用户,我们随安装包附带了一个未经修改的 DirectML.dll 文件。如果您无需 GPU 加速功能,可安全删除该 DLL 文件,软件的核心功能仍可正常运行。
广告
用户交流 QQ 群:MAA 使用 & 粥游交流 QQ 群
Discord 服务器: 邀请链接
用户交流 TG 群:Telegram 群
自动战斗 JSON 作业分享:prts.plus
Bilibili 直播间:MrEO 直播间 直播敲代码 & MAA-Official 直播间 游戏/杂谈
技术群(舟无关、禁水):内卷地狱!(QQ 群)
开发者群:QQ 群
如果觉得软件对你有帮助,帮忙点个 Star 吧!~(网页最上方右上角的小星星),这就是对我们最大的支持了!



