拓冰建站拓冰建站
首页 / 资讯中心 / 正文

MaaAssistantArknights 自动战斗(Copilot)完全指南:从抄作业、多作业连战到作业文件编写

MaaAssistantArknights 自动战斗Copilot完全指南从抄作业、多作业连战到作业文件编写【免费下载链接】MaaAssistantArknights《明日方舟》小助手全日常一键长草| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights本文围绕《明日方舟》小助手 MaaAssistantArknights 的自动战斗Copilot韩文文档中称为 자동지휘功能展开系统讲解其使用前提、抄作业导入作业文件流程、自动编队与多作业模式的操作细节并结合仓库源码与 战斗流程协议 深入剖析作业文件JSON的完整字段含义与编写方法帮助读者从会用进阶到会写真正掌握这套可视化自动战斗体系。功能定位与适用前提自动战斗是 MAA 的核心能力之一玩家只需在编队界面导入一份作业operation fileMAA 便会自动完成编队、部署干员、释放技能、调整倍速等一系列操作实现抄作业式的全自动推图。作业文件可以在作业分享站PRTS plus下载、上传与在线制作也可以由玩家参照本文所讲的协议自行编写。在开始之前必须先满足两个硬性前提否则自动战斗无法稳定运行。官方文档在 docs/ko-kr/manual/introduction/copilot.md 中给出了明确警告这一前提不仅适用于自动战斗也适用于自动集成战略肉鸽等所有涉及自动战斗的功能游戏帧数需保持在至少60 帧且必须稳定——帧率波动会直接导致图像识别与点击时序错乱触控模式必须设置为Minitouch、MaaTouch 或 MuMu 触控增强三者之一普通 ADB 触控无法满足高频精准操作的需求。使用作业从编队界面开始的完整流程自动战斗支持任意可编队关卡以及保全派驻Stationary Security Service模式的战斗。启动位置与作业导入本功能必须在存在开始行动按钮的编队选择界面启动运行。就位后在 MAA 界面左侧上部的输入框中通过以下两种方式之一导入作业导入本地 JSON 作业文件选择本机已保存的作业文件填写作业站神秘代码将作业分享站PRTS plus上作业对应的代码直接粘贴到输入框中。自动编队Auto Squad的行为细节自动编队功能会清空当前编队并根据作业文件里要求的干员自动完成编队。使用时需要注意以下边界情况作业需要的干员如果在你的干员列表中设置了特别关注自动编队将无法正常选中因此需要先取消对应干员的特别关注可根据个人养成情况为自动编队追加自定干员user_additional与补充低信赖干员add_trust前者用于补足作业之外的干员后者用于顺带刷信赖当需要借助好友助战Friend Support时应取消自动编队改为手动编队后再开始对「悖论模拟」关卡必须关闭自动编队手动选择技能后在存在**「开始模拟」**按钮的界面启动自动战斗对应源码实现为独立的 ParadoxCopilotTask对「保全派驻」关卡自动编队完全无效必须手动完成初始任务准备直到关卡详情出现**「开始部署」**按钮的界面才能启动自动战斗对应独立的 SSSCopilotTask。循环次数可设置循环次数loop_times例如保全派驻可以反复刷取。需要注意MAA 目前不会自动借用干员如果你的作业依赖助战干员请不要使用循环次数功能否则第二轮开始会因助战缺失而失败。多作业模式同一区域的自动连续战斗多作业模式Multi-Job Mode用于在同一区域内的多个关卡间自动连续战斗其底层由 MultiCopilotTaskPlugin 驱动。操作要点如下作业列表下方有三个按钮从左到右依次为批量导入一次性导入多个作业文件添加左键添加普通难度关卡右键添加突袭难度关卡清除左键清除所有关卡右键只清除未勾选的关卡。导入作业后作业列表下方会显示关卡名确认无误后再添加该关卡列表中的关卡支持拖拽调整顺序并通过勾选框控制是否执行开启多作业模式后启动位置变为关卡所在的地图界面——也就是通过左右滑动地图即可导航到目标关卡的界面而不是编队界面连战队列在以下三种情况下会自动停止理智不足、战斗失败、非三星结算三星检查由CopilotWaitUntilEndOfAction任务实现见 CopilotTask.cpp请确保列表中的所有关卡处于同一区域即仅通过左右滑动地图界面就能导航到否则无法自动切换。为优质作业点赞作业分享站存在评分机制。请务必为优质作业点赞以提高作业评分、激励作业制作者持续产出高质量攻略。从源码看自动战斗的执行链路自动战斗并非单一步骤而是一串精心编排的子任务。在 CopilotTask.cpp 的构造函数中可以看到完整的执行链路MultiCopilotTaskPlugin多作业模式调度插件单作业时禁用BattleStartPre点击进入编队准备界面可重试 3 次UseMedicine / BattleQuickFormation理智药使用默认关闭由use_sanity_potion参数控制见 CopilotTask.cpp并挂载MedicineCounterTaskPlugin计数BattleFormationTask自动编队BattleStartAll点击开始行动SkipForbiddenOperConfirm跳过以下干员出战后将被禁用的确认弹窗BattleProcessTask战斗中执行作业 actionsStop结算与收尾。其中set_params是参数解析的核心入口CopilotTask.cpp它负责把 MAA 界面上的选项映射为内部配置formation是否自动编队、formation_index选择第几个预设编队、add_trust补信赖、ignore_requirements忽略练度要求、user_additional追加自定干员、support_unit_usage/support_unit_name助战模式与指定助战干员、loop_times循环次数、copilot_list多作业列表等。若同时传入is_paradox字段则会直接报错并提示改用独立的悖论模拟任务——该字段自 v6.1.2 起已废弃。自动编队的实现位于 BattleFormationTask.cpp它会通过 OCR 识别编队页干员analyzer_opersBattleFormationTask.cpp按作业需求逐职业点击选中当仅缺一个干员组时会自动尝试从助战列表补齐BattleFormationTask.cpp编队失败时通过report_missing_operators上报缺失干员清单若与上一次作业编队完全相同则直接跳过编队步骤以节省时间compare_formation。编写作业核心字段与完整协议作业文件本质上是 JSON 格式的剧本。你可以使用作业分享站的在线作业编辑器制作也可以直接手写。完整、权威的字段说明请参见 战斗流程协议对应韩文版本为 docs/ko-kr/protocol/copilot-schema.md仓库运行时解析逻辑见 CopilotConfig.cpp。需要注意JSON 文件不支持注释协议文档中的注释仅用于演示说明实际文件中不得出现。顶层字段一览{ stage_name: 暴君, opers: [], groups: [], actions: [], minimum_required: v6.7.0, doc: {}, difficulty: 0 }字段必选说明stage_name是关卡名中文名、code、stageId、levelId 均可只要能保证唯一opers否指定干员列表每个干员单独成组groups否干员组组内干员任选其一自动编队时优先选择练度高的actions是战斗中的操作序列有序执行完成前一个才会执行下一个minimum_required是最低要求 MAA 版本号如v6.7.0、v6.8.0-beta.1doc否作业描述信息可包含title、title_color、details、details_colordifficulty否作业对应难度0缺省未设置1支持普通2支持突袭3支持普通与突袭opers指定干员与练度要求{ name: 重岳, role: guard, skill: 3, skill_usage: 2, skill_times: 5, requirements: { elite: 2, level: 90, skill_level: 10, module: 1, module_level: 3, potential: 1 } }role干员职业英文职业名大小写不限用于区分同名干员skill技能序号取值范围[0, 3]默认为 0。注意源码会对非法技能选择做兼容修正——例如稀有度不足 6 星的干员不能使用第 3 技能阿米娅除外、不足 4 星不能使用第 2 技能见 CopilotConfig.cppskill_usage技能用法默认 00不自动使用完全依赖actions中的指令1好了就用如棘刺 3 技能、桃金娘 1 技能2使用指定次数如山的 2 技能用 1 次、重岳 3 技能用 5 次次数由skill_times控制3自动判断使用时机预留功能全自动技能填0skill_times技能使用次数默认 1requirements练度要求自动编队时校验默认全部不校验-1elite精英化等级level干员等级skill_level技能等级当大于 7 时即专精源码会强制推导精英化至少为 2见 CopilotConfig.cppmodule模组编号0表示不使用模组1-4对应不同编号大于 0 时同样强制精英化至少为 2module_level与potential暂不支持请勿依赖。groups干员组备选池{ name: 任意正常群奶, opers: [ { name: 夜莺, skill: 3, skill_usage: 2 }, { name: 白面鸮, skill: 2, skill_usage: 2 } ] }组名可随意命名只需与下方actions中name字段对应。组内干员任选其一、无序自动编队时优先选择练度高的若使用指定时刻的skill_usage方式不同干员的技能 CD 可能不同编写时需留意。actions战斗操作序列作业的灵魂actions 是战斗时的操作剧本严格有序执行。核心字段如下{ type: 部署, kills: 0, costs: 50, cost_changes: 5, cooling: 2, elapsed_time: 1000, name: 棘刺, role: guard, location: [5, 5], direction: 左, skill_usage: 1, skill_times: 5, pre_delay: 0, post_delay: 0, timeout: 999999999, distance: [4.5, 0], doc: 下棘刺了, doc_color: orange }操作类型type中英文皆可源码ActionTypeMapping中二者等价见 CopilotConfig.cpp目前作业站发布仅支持英文英文中文说明Deploy部署默认类型费用不够时一直等待到费用够除非 timeoutSkill技能技能 CD 未转好时一直等待除非 timeoutRetreat撤退撤离干员SpeedUp二倍速可切换使用一次变二倍速再次使用恢复一倍速BulletTime子弹时间点击干员后的 1/5 慢速name或location必填一项随后任意 action 会恢复正常速度若下一个动作是技能/撤退需填相同干员SkillUsage技能用法动态修改某干员的技能用法如桃金娘先手打怪再自动开技能Output打印界面不显示该步骤仅用于输出doc内容如做字幕SkillDaemon摆完挂机只自动使用好了就用的技能其他什么都不做直到战斗结束MoveCamera移动镜头用于「引航者试炼」需额外填写distanceResetStopwatch重置全局计时器重置全局计时器配合elapsed_time使用DrawCard抽卡/调配干员支援模式下的调配操作CheckIfStartOver检查重开根据tool_men职业计数判断是否重开等待条件且关系 以下五个条件之间是且的关系未满足时 action 会一直等待除非 timeoutkills击杀数条件默认 0 直接执行costs费用条件默认 0。注意费用受潜能影响可能不准且仅在两位数是识别较准三位数可能识别错误对时间轴要求严格的战斗请改用cost_changescost_changes费用变化量条件默认 0。基准是开始执行本 action 时的费用即前一个 action 结束时支持负数如孑等吸费干员同样仅两位数识别较准coolingCD 中干员数量条件默认 -1不识别elapsed_time全局计时条件毫秒。必须先用type: ResetStopwatch的 action 重置计时器否则会卡住。执行目标与坐标name干员名或群组名。type为部署时必选技能/撤退时可选——正常部署的干员推荐用name开启技能/撤退而自动装置、多个同名召唤物则推荐不填 name、用location操作location部署位置坐标[x, y]部署时必选。坐标信息可在 PRTS.Map 查看将设置中坐标展示选为 MAA 即为 MAA 使用的坐标系direction干员朝向Left/Right/Up/Down/None或左/右/上/下/无中英文皆可部署时必选distanceMoveCamera专用[x 移动格子数, y 移动格子数]可为小数、可为负x 正为右移、y 正为上移。延时与超时pre_delay前置延时毫秒所有条件满足后开始计时计时结束才执行动作post_delay后置延时毫秒动作执行完成后计时结束才开始下一个 action源码同时兼容历史遗留的rear_delay字段见 CopilotConfig.cpptimeout超时时间毫秒默认 -1 不限制从条件满足与 pre_delay 完成后开始计时超时则放弃当前动作转下一个值为 0 时只检查一次已废弃的skip_if_not_ready字段即等价于timeout: 0且二者不可同时设置skill_usage/skill_times当type为技能用法时用于修改技能用法与次数doc/doc_color界面显示的说明文字与颜色red、orange、dark等无实际作用。地图坐标获取的三种途径编写作业时干员部署坐标的准确性直接决定作业成败。官方文档提供了三种获取坐标的方法在线编辑器取点在作业编辑器中填写关卡后左下角会自动加载可拖动、可缩放的坐标地图直接点选即可设置当前干员位置本地调试截图填写关卡并导出 JSON 后直接开始行动MAA 会在安装目录的debug\map文件夹中生成覆盖有坐标信息的地图截图可据此核对坐标。该 debug 目录同样用于保存其他调试图像参见 BattleFormationTask.cppPRTS.Map 站点在地图工具中进入设置将坐标展示切换为MAA即可直接读取 MAA 坐标系下的坐标值。实战建议与编写规范演习模式作业文件支持演习模式编写与调试阶段建议先以演习验证避免浪费理智署名与说明建议在作业描述doc.details中填写作者名署名、参考的攻略视频链接以及其他想说的话方便其他玩家评估可信度并维护作业生态练度校验自动编队会依据requirements校验干员练度练度不足的干员将被标记为 Unavailable若确实想强行使用可在 MAA 中勾选忽略干员属性要求ignore_requirements但脚本执行结果不保证版本兼容务必正确填写minimum_required确保使用者在足够新的 MAA 版本上运行避免协议字段不被解析。小结自动战斗Copilot是 MAA 使用频率最高的功能之一从编队界面导入作业即可自动完成整场战斗配合多作业模式还能在同一区域内连战刷取。若要进一步定制可参照 战斗流程协议 手写 JSON 作业并利用debug\map调试截图与 PRTS.Map 获取坐标。相关实现细节可继续阅读 CopilotTask.cpp、BattleFormationTask.cpp 与 CopilotConfig.cpp理解其内部行为后可编写出更稳定、更精准的作业文件。【免费下载链接】MaaAssistantArknights《明日方舟》小助手全日常一键长草| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门