* feat: 不重启切换语言 * feat: 部分文本与列表更新 * feat: 右键图标菜单、关卡提示、牛杂、关卡列表、指定材料 * chore: Stage 刷新 * feat: LocalizedList * chore: SettingsViewModel * chore: ConnectSettingsUserControlModel * chore: GameSettingsUserControlModel * chore: VersionUpdateSettingsUserControlModel * chore: InfrastSettingsUserControlModel * chore: RecruitSettingsUserControlModel * chore: RoguelikeSettingsUserControlModel * chore: UserDataUpdateSettingsUserControlModel * chore: LastSyncTime * chore: 设置指引重叠 * chore: PerformanceUserControlModel * chore: GPU 绑定 * chore: FightSettingsUserControlModel * chore: GuiSettingsUserControlModel * style: FightSettingsUserControlModel * chore: ReclamationSettingsUserControlModel * feat: 干员识别/仓库识别 支持动态切换语言 * feat: 干员名称显示语言 * perf: 优化 IsLocalizationDictionary 判断 * style: 空行 * chore: UnInitializePropertyDependencies / GC.SuppressFinalize(this); * chore: PropertyDependsOnUtility 增加锁 * chore: 移除未使用 using * chore: 更新时序 * chore: 在 UI 线程 Reload * fix: OperNameLanguageModeList 去重 * chore: LocalizedList -> LocalizedObservableList * fix: 修复 TaskItemViewModel.Name 绕过 _name 字段导致 SetAndNotify 变更检测失效 getter 改为复用 BaseTask.NameOrTaskType(与原构造参数语义一致), 移除已成为死代码的 _name 字段;setter 写配置后显式 NotifyOfPropertyChange, 确保外部重命名后 UI 能收到通知。 * fix: UnInitializePropertyDependencies 清理孤儿外部实例避免处理器累积 当某 externalInstance 的 propMap 完全清空后,移除该键并反订阅其 externalHandler,避免 TaskItemViewModel 反复创建/销毁时 _externalHandlers 外壳持续累积(虽不产生错误通知,但持有空字典浪费内存)。 * rft: 提取 RefreshInverseModeText 消除 InverseMode 自赋值 hack 原 LanguageChanged 回调用 InverseMode = InverseMode 触发 setter 内的 本地化文本刷新,依赖 SetAndNotify 不 early-return 的副作用,语义脆弱。 提取 RefreshInverseModeText() 方法供 setter 和回调共用。 * rft: UseStoneString 改用 SuppressMessage 替代 #pragma 将 #pragma warning disable CA1822 改为 [SuppressMessage], 并补充 Justification 说明必须保持实例成员以支持 PropertyDependsOn 反射触发通知。 * docs: 补充 LanguageChanged 订阅单例约定注释 在 LanguageChanged 事件声明处补充订阅约定(必须是 IoC 单例, 非单例需 Dispose 时清理跨实例依赖);在 ToolboxViewModel(Stylet IoC 单例) 订阅处标注无需取消订阅。 * rft: 删除 TaskItemViewModel 构造函数的 name 参数 Name getter 已改为从配置动态读取 NameOrTaskType,构造时传入的 name 不再有任何作用,删除该参数及三处调用点的实参。 * chore: 简化绑定 * fix: 修复语言切换时 PropertyDependsOn 回调读到旧字典的时序竞态 原先 Language setter 里先 SetAndNotify 再 Reload,导致同步通知链中 PropertyDependsOn(Language) 回调执行时 ResourceDictionary 尚未替换, LocalizationHelper.GetString 拿到的是旧语言文本。 调整为先 Reload(内部先替换字典再触发 LanguageChanged),再更新 _language 字段并触发 PropertyChanged,确保两条通知链路 (LanguageChanged 订阅者 + PropertyDependsOn 回调)读到的都是新语言。 * refactor: LocalizedObservableList 内部支持增删,消除 Zip 脱节隐患 将 _entries 从 readonly array 改为可变 List,新增 Add/Remove/RemoveAt/ Insert/Clear 方法同步维护 _entries 与 Items,确保两者始终一一对应。 此前 RefreshLocalization 用 Zip 遍历,对运行时动态添加的项(如 OperNameLanguageForce)不会刷新 Display,需调用方手动补偿。现在动态项 也纳入 _entries,RefreshLocalization 改为索引遍历,覆盖全部条目。 同步修正类头 XML 注释:去掉不实的 INotifyPropertyChanged 声明与 '转发 item 属性变更'描述(item 的 PropertyChanged 由 WPF 直接监听)。 调用方 GuiSettingsUserControlModel 改用 Add/Remove API,移除 RefreshLocalization 里的手动补偿逻辑。 * fix: 任务排序/增删后 Index 变化时自动刷新 Name TaskItemViewModel.Name 的 getter 依赖 Index 从配置读取,但此前只声明了 对 Language 的跨实例依赖,拖拽排序/增删任务导致 Index 变化时 Name 不会被 通知刷新,自定义名任务可能短暂显示错位。 将 PropertyDependsOnAttribute 的 AllowMultiple 改为 true,为 Name 额外声明 [PropertyDependsOn(nameof(Index))],使 Index 变化时自动触发 Name 刷新。 Utility 的 GetCustomAttributes 循环已原生支持多 attribute,无需改动。 * chore: 图标 Unloaded 时取消 LanguageChanged 订阅 * fix: Pormpt1/Pormpt2 小提示刷新
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 吧!~(网页最上方右上角的小星星),这就是对我们最大的支持了!



