MaaAssistantArknights 自动肉鸽完全指南:主题选择、推荐开局与战斗策略原理
2026/9/13 1:57:03 网站建设 项目流程

MaaAssistantArknights 自动肉鸽完全指南:主题选择、推荐开局与战斗策略原理

【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights

MAA(MaaAssistantArknights)的「自动肉鸽」功能可以接管《明日方舟》集成战略的整局流程:选择主题与分队、招募干员、执行内置关卡作业、商店购物,并在卡死时自动重开。本篇基于 MAA 官方中文手册的《自动肉鸽》文档,结合src/MaaCore/Task/Roguelike/下的任务插件源码,系统讲解自动肉鸽的运行前提、推荐开局配置、战斗策略的底层实现(定制作战优先、通用兜底、超时撤退),以及卡关时的异常检测与排障方式。读完后你将知道如何为不同肉鸽主题配置最稳的开局,并理解 MAA 在战斗循环中每一步的决策依据。

运行前提与注意事项

所有涉及自动战斗的功能(包括但不限于自动战斗和自动肉鸽)都有两条硬性前提:

  • 至少 60 帧的稳定游戏帧数;
  • 触控模式为 Minitouch、MaaTouch 或 MuMu 触控增强。

帧数不足或触控模式不对,会导致截图与点击时序错乱,是自动肉鸽各类诡异问题的最常见根源。MAA 的 WPF 前端也会对截图耗时过长的连接给出明确警告(见 zh-cn 本地化资源 中FastestWayToScreencapWarningTip对应的提示文案:截图用时较长时自动肉鸽可能表现异常,建议为 MuMu、雷电等模拟器启用截图增强预设)。

除此之外,官方手册还列出若干必须遵守的操作约束:

  • MAA 默认选择傀影主题,可在自动肉鸽-肉鸽主题中更改目标主题;
  • 请在游戏内将对应肉鸽主题置顶在终端处。虽然目前也可以自动导航,但不保证长期可用性;
  • 请提前手动结束非目标主题的探索,确保目标主题当前可开始探索;
  • 设置中可选择主题、难度、分队、开局干员(仅单个干员名)等;
  • MAA 可以使用助战干员开局:需先在常规设置开局干员中填写目标干员名,再启用高级设置「开局干员」使用助战
  • 在新安装的客户端中首次游玩时,进入大地图等界面后会出现新手教程,请在阅读后手动将其关闭。

推荐开局

以下为官方维护的推荐开局配置(最后更新于 2026/8/18),难度推荐综合考虑了敌人难度希望消耗得分倍率等因素,在高练度测试时比较稳定,可根据实际情况和需求自由调整:

| 主题 | 难度 | 分队 | 职业组 | 干员 | | - | - | - | - | - | | 傀影 | 正式调查·2 | 指挥分队 / 突击战术分队 | 取长补短 | 丰川祥子 / 棘刺 | | 水月 | 波涛迭起·3~10 | 以人为本分队 / 心胜于物分队 | 稳扎稳打 | 维什戴尔 | | 萨米 | 挑战自然·4~10 | 特训分队 / 远程战术分队 | 稳扎稳打 | 维什戴尔 | | 萨卡兹 | 直面魂灵·4~10 | 蓝图测绘分队 / 远程战术分队 | 稳扎稳打 | 维什戴尔 | | 界园 | 请君入园·3~10 | 指挥分队 / 远程战术分队 | 稳扎稳打 | 维什戴尔 | | 黑流树海 |暂无(保密等级·0~15) | 特勤分队 / 堡垒战术分队 | 稳扎稳打 / 坚不可摧 | 机械师(精二) |

各主题的注意事项(摘自原文档):

| 主题 | 备注 | | - | - | | 傀影 |正式调查·3及更高难度开局可能获得减希望藏品,导致开局无法招募六星干员。 | | 水月 |波涛迭起·4及更高难度招募六星干员希望消耗 +1,使用心胜于物分队开局可能无法招募六星干员。以人为本分队适合账号练度较高的情况,心胜于物分队需要赌运气。 | | 萨米 |挑战自然·6及更高难度招募六星干员希望消耗 +1,使用特训分队开局可能无法招募六星干员。 | | 萨卡兹 |直面魂灵·15及更高难度招募六星干员希望消耗 +1;若未升级历史重构中的蓝图测绘分队强化Ⅱ,使用蓝图测绘分队开局可能无法招募六星干员。选择蓝图测绘分队会采用避战策略,可快速获取魂灵书签,但基本无法通关结局。使用刷源石锭策略且开局分队为点刺成锭分队时,会启用刷新商店策略加速流程。 | | 界园 |请君入园·15及更高难度招募六星干员希望消耗 +1,使用指挥分队开局可能无法招募六星干员。难度为请君入园·3及以上、使用刷源石锭策略且开局分队为指挥分队时,会使用时光之末跳关策略加速流程。 | | 黑流树海 | 自动战斗等策略尚在编写中,相关决策由通用策略决定。当前策略需要机械师招募精通Ⅱ在解锁效果提升Ⅱ后被进阶时获得的结构性原理;该精通解锁难度较低,推荐先行解锁。仅解锁效果提升Ⅰ仍然可行但效率大幅降低。若未解锁上述效果提升,则必须使用其他无召唤物的强力干员开局,且仅推荐使用刷源石锭策略。使用刷等级策略且未勾选投资源石锭时,将会跳过商店。 |

开局干员与分队是如何被执行的

文档中「分队、职业组、开局干员」这些设置项,在源码中由 RoguelikeCustomStartTaskPlugin.cpp 以“劫持”(hijack)的方式落地,共对应四类定制点:

  • 分队(Squad)hijack_squad()最多滑动 7 屏,用 OCR 逐屏识别目标分队名(如突击战术分队),命中后直接点击;识别失败则回滑并判负。若未设置分队,走Roguelike@SquadDefault(默认指挥分队,无需滑屏)或随机分队;
  • 职业组(Roles)hijack_roles()逻辑相同,对职业组名称做 OCR 滑屏匹配后点击;
  • 开局干员(CoreChar)hijack_core_char()先通过BattleData.get_first_role()查干员职业,OCR 点击职业入口再重试进入选择界面;该定制仅在配置了core_char时生效;
  • 刷开局奖励(Reward)hijack_reward()collectible_mode_start_list指定的顺序(热水壶、盾、源石锭、希望、随机奖励,以及水月的钥匙/骰子、萨卡兹的构想、界园的票券)识别并点击,若未获得期望物品则置位“烧水”标志并退出重开。

这些参数由插件的load_params()从任务 JSON 读入:squadcollectible_mode_squad(刷源石锭模式专用分队)、core_char(开局干员名)、roles(开局职业组)、use_support(开局干员是否为助战)与use_nonfriend_support(是否允许非好友助战)。这与文档中「先在常规设置填写开局干员,再启用助战开关」的两步流程一一对应——use_support开关本身就存储在肉鸽配置中,见 RoguelikeConfig.h 的set_use_support/get_use_supportm_core_char字段。

此外,RoguelikeConfig.h 中的RoguelikeMode枚举定义了 MAA 支持的全部肉鸽模式,可帮助你理解设置界面里「刷等级 / 刷源石锭 / 刷开局」等选项的取值:

| 模式 | 值 | 说明 | | - | - | - | |Exp| 0 | 刷经验,尽可能稳定地打更多层数,不期而遇采用激进策略 | |Investment| 1 | 刷源石锭,第一层投资完就退出,不期而遇采用保守策略 | |Ending| 3 | 尝试通关,激进策略(TODO) | |Collectible| 4 | 刷开局,以获得热水壶或演讲稿开局,或只凹直升 | |CLP_PDS| 5 | 萨米专用:刷隐藏坍缩范式,以增加坍缩值为最优先目标 | |Squad| 6 | 月度小队,尽可能稳定地打更多层数 | |Exploration| 7 | 深入调查,尽可能稳定地打更多层数 | |FastPass| 10001 | 萨卡兹专用:快速通过第一层 | |FindPlaytime| 20001 | 界园专用:刷常乐节点,找不到需要的节点就重开 | |BlackFlowBabyAnimal| 30001 | 黑流树海专用:刷襁褓动物 |

RoguelikeTheme类则固定了六个主题标识:Phantom(傀影)、Mizuki(水月)、Sami(萨米)、Sarkaz(萨卡兹)、JieGarden(界园)、BlackFlow(黑流树海),is_valid_mode()会校验主题与模式的组合合法性(例如黑流树海只允许刷等级、刷源石锭与刷襁褓动物)。

战斗策略:内置作业 + 通用兜底

MAA 在肉鸽内的一切操作都是预设的策略,所有关卡战斗都是调用内置的作业文件;当对应关卡作业不存在时,会使用并不聪明的通用决策树进行战斗。完整的作业文件格式请参阅 肉鸽辅助协议。文档中提到的两项能力,在源码中同样有直接对应:

  • 自动识别干员及练度,并自动选择较优干员及技能:战斗插件在部署前调用update_deployment()持续识别待部署区干员,并结合RoguelikeRecruit配置中的recruit_priorityskillskill_usageskill_times等字段决定用谁、放哪、开什么技能;
  • 识别商店物品,优先购买更强力的收藏品:由 RoguelikeShoppingTaskPlugin.cpp 配合resource/roguelike/主题名/shopping.json中的藏品优先度列表执行。

以战斗插件 RoguelikeBattleTaskPlugin.cpp 为主线,一场肉鸽战斗的完整决策流程如下。

关卡信息与作业加载

calc_stage_info()先用 OCR 反复识别关卡名(尝试ISW-NO/ISW-DF/ISW-DU/ISW-SP等前缀码匹配地图数据),得到地图尺寸、可部署格子(蓝门/红门/地面/高台)与撤退按钮位置。随后按关卡名向RoguelikeCopilot请求该关卡的作战策略(萨米刷坍缩范式模式下会优先查找关卡名_collapse.json,找不到再退回普通作业),一次性装载replacement_home(蓝门替代防守点)、blacklist_location(部署黑名单)、deploy_plan/retreat_plan(定制部署与撤退计划)等字段。若没有任何作业提供replacement_home,则自动取地图上所有蓝门格作为防守点,并套用默认的role_order(近卫 → 先锋 → 医疗 → 重装 → 狙击 → 术士 → 辅助 → 特种 → 召唤物)。

这印证了协议文档中的一句话:当 MAA 无法找到当前关卡对应的定制作战策略时,会自动执行通用作战策略;而对关卡名称识别失败的情况则直接报错退出(回调StageInfoError)。

主循环:定制部署优先,通用逻辑兜底

_run()进入逐帧循环后,每一帧执行do_once(),其内部顺序为:

  1. check_drone_tiles():将超时未被识别的召唤物占用地块释放回可用状态;
  2. use_all_ready_skill():按skill_usage自动释放技能(首帧部署前除外);
  3. 处理auto_retreat:记录部署时间,特种/投锋类干员到点自动撤退;
  4. update_deployment()刷新待部署区识别,update_cost()/update_kills()更新费用与击杀数;
  5. 先尝试do_best_deploy()(执行deploy_plan定制计划),失败再落入通用策略。

do_best_deploy()的实现在 do_best_deploy 函数 中可以看到:它把所有干员在deploy_plan中出现的指令扁平化成带坐标与序号的列表并按优先级排序,再逐一检查「该坐标未被占用且不在黑名单中、对应干员已可用(不处于等费状态)」,满足即执行部署。这正对应协议文档里「MAA 会将所有部署指令扁平化后执行最优先级部署操作」的描述,也解释了为什么同一位置干员倒下后会优先补回原位而非下一行指令。

通用兜底逻辑(do_once的 else 分支)体现的则是文档中“堵蓝门”策略的代码形态:

  • check_urgent()检测某个防守点上的阻挡/治疗干员阵亡,把该蓝门标记为紧急,优先补位,且允许在紧急时使用骰子(m_allow_to_use_dice由作业的use_dice_stage字段控制,对应协议中的not_use_dice);
  • calc_best_oper()role_order与当前需求(缺阻挡 / 缺治疗 / 需要补对空)挑选干员,同职业内费用高的优先;
  • calc_best_loc()在距离当前蓝门最近的若干候选格中,以「朝向推荐方向的攻击覆盖」打分并叠加距离惩罚选出落点;
  • 若场上可用干员过少且冷却未过半,会主动“等等费用”而不是乱放人。

超时保护:8 分钟撤退、10 分钟放弃

文档中「战斗时长超过 8 分钟会自动撤退所有地面单位,超过 10 分钟会自动放弃当局战斗,避免互相刮痧耗时」在 战斗主循环 中一目了然:

if (!timeout && duration > 8min) { timeout = true; Log.info("Timeout, retreat!"); // 超时了,一般是某个怪被干员卡住了,一直不结束。 all_melee_retreat(); } else if (timeout && duration > 10min) { Log.info("Timeout again, abandon!"); // 超时撤退了还一直卡着,只能放弃了 abandon(); break; }

all_melee_retreat()遍历所有已占用格子,把所有地面/全地形格上的干员逐个撤退;若撤退后战斗仍未结束,则放弃当局战斗(上层控制插件随后会重开本局)。另外,do_once()还受RoguelikeFightScreencapInterval配置约束:每帧截图之间强制留足最小间隔,防止程序侧消耗过高(见 GeneralConfig.h 中的roguelike_fight_screencap_interval字段)。

异常检测与排障

文档「异常检测」一节给出的行为,对应的工程实现如下:

  • 任务出现问题自动放弃当次探索并重试:肉鸽由一系列AbstractRoguelikeTaskPlugin子类插件(招募RoguelikeRecruitTaskPlugin、商店RoguelikeShoppingTaskPlugin、不期而遇RoguelikeStageEncounterTaskPlugin、结算RoguelikeSettlementTaskPlugin等)串成任务链,任一步失败会向控制插件上报,由控制层触发整局重置(RoguelikeResetTaskPlugin)后重开;
  • 战斗超时自动撤退/放弃:如上所述,8 分钟与 10 分钟两级保护均已实现在战斗插件中;
  • 排障材料:如果多次在同一个位置卡住,请按文档要求提交 Issue 并附带日志和debug/Roguelike文件夹中相关截图(OCR 识别失败时 MAA 也会把调试图像落盘到debug目录,例如未识别的通宝会写入debug/roguelike/coppers/unknown)。

延伸阅读

  • 肉鸽辅助协议:resource/roguelike/下各主题资源(autopilot/encounter/recruitment.jsonshopping.json等)的完整字段说明,以及萨米密文板/坍缩范式、界园通宝等特殊机制的配置方式;
  • 肉鸽任务插件目录:包含RoguelikeConfig(主题/模式/难度/分队/开局参数)、RoguelikeBattleTaskPlugin(战斗决策)、RoguelikeCustomStartTaskPlugin(分队与开局劫持)等全部肉鸽相关实现;
  • 肉鸽配置头文件:RoguelikeThemeRoguelikeMode枚举与局内状态(希望、生命值、层数、藏品、萨米密文板、萨卡兹负荷、界园票券等)的定义。

【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询