MAA 理智使用模块全解析终止条件、关卡导航、连续代理与掉落统计《明日方舟》小助手【免费下载链接】MaaAssistantArknights《明日方舟》小助手全日常一键长草| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights《明日方舟》小助手MAAMaaAssistantArknights的「理智使用」模块负责自动刷取关卡的全流程从判定何时停止、如何选择与导航关卡到设置连续代理倍率、识别掉落并上传统计再到异常情况自动处理。本文以 docs/ko-kr/manual/introduction/combat.md韩文版与 英文版 Sanity Farming 对应为骨架结合src/MaaCore/Task/Fight/与src/MaaCore/Task/Interface/FightTask.cpp的源码实现逐项讲解「理智使用」的通用设置、高级设置与底层运行原理帮助你精确配置出符合自己需求的自动刷关任务。一般设置四种终止条件与「或」关系「理智使用」任务的一般设置中存在四个相互独立的终止条件只要满足其中任意一个任务即停止理智恢复剂使用이성 회복제 사용使用指定次数的理智恢复剂来恢复理智可以连续使用多瓶纯源石使用순오리지늄使用指定次数的纯源石一颗一颗使用。只要还有理智恢复剂就不会动用源石次数限制횟수 제한指定所选关卡要通关多少次例如「通关 15 次后停止」掉落限制드롭 제한指定获取多少个特定材料后停止例如「获得 5 个装置后停止」。它支持两种计数模式掉落数드롭 수以本次任务中该材料的掉落数量为目标目标库存목표 재고参考 仓库识别 保存的库存数据刷到设定库存为止。使用前需要先通过 数据更新 或 仓库识别 获取库存数据。该模式由 UI 层实现Core 仅支持掉落数模式。从源码看Core 层的参数解析位于 FightTask::set_paramsmedicine恢复剂次数、stone源石次数、times战斗次数会分别通过set_times_limit施加到MedicineConfirm、StoneConfirm、StartButton1/StartButton2等任务节点上而掉落限制则通过drops参数item_id - quantity的映射传给StageDropsTaskPlugin::set_specify_quantity。也就是说Core 层的「掉落限制」对应的是「掉落数」模式这正是文档注明「目标库存模式由 UI 实现」的原因。需要特别注意的三个要点掉落限制与关卡选择互相独立드롭 제한只是一把「以材料数量为准停止任务」的开关指定了材料并不会自动帮你导航到掉落该材料的关卡关卡仍需手动选择。目标库存模式与仓库维护共享启动判定任务启动时会用最新库存重新计算不足数量如果已经达标则直接跳过该任务。此外如果本次队列运行中已经有战斗上报过理智且按上报时刻推算的当前理智每 6 分钟恢复 1 点不足 6 分钟按 6 分钟计上限为理智上限低于该关卡单次出击的最低消耗同时该任务没有恢复剂/源石预算、48 小时内到期的恢复剂也已耗尽判定条件详见 仓库维护 · 48 小时内到期的理智恢复剂的使用也同样跳过。这两种情况都不会进入关卡。源石只在恢复剂之后判定MAA 只在没有理智恢复剂时才用源石补理智。因此勾选纯源石时务必把理智恢复剂的使用次数设置得大于你持有的恢复剂数量例如直接填一个大数否则恢复剂会一直阻断源石的使用。如果需要同时管理多种材料的库存目标应改用 仓库维护 任务它支持按顺序自动刷取多个计划。配置示例速查表下面组合示例直接给出「恢复剂 / 源石 / 次数限制 / 掉落限制」四种参数在不同取值下的实际行为恢复剂源石次数限制掉落限制结果————消耗当前理智后停止2———消耗当前理智后使用2次恢复剂然后停止9992——消耗当前理智后用完全部恢复剂再使用2次源石然后停止——2—指定关卡重复2次后停止———2获得2个指定材料后停止2—4—尝试作战4次理智不足时最多使用2个恢复剂2——4获得4个指定材料后停止理智不足时最多使用2个恢复剂2—48尝试作战4次在作战结束前若已获得8个材料则提前停止理智不足时最多使用2个恢复剂9994816使用全部恢复剂与4个源石但完成8次作战即停止若在此之前获得16个材料也立即停止—2——使用2个源石消耗完全部理智后停止24——使用2个恢复剂之后使用4个源石理智耗尽后停止注最后两行属于「恢复剂全部耗尽后再使用源石」的完整链路行为表格中_999_表示设置为一个大数、实际以持有量为准。作战开始关卡选择与手动代码导航使用「当前 / 最近」如果目标关卡不在下拉列表中可以在 MAA 中选择현재/최근当前/最近然后在游戏内手动进入关卡请停留在关卡详情页左上角显示关卡名与剩余理智右下角显示代理指挥与开始按钮的画面若不是该画面현재/이전当前/上一关会自动进入终端主页右下角显示的「最近作战」关卡。手动输入关卡代码在작업 설정任务设置—이성 사용理智使用—고급 설정高级设置中勾选스테이지 코드 수동 입력手动输入关卡代码即可直接输入关卡代码。当前支持导航的关卡包括全部主线关卡在关卡代码末尾追加-NORMAL或-HARD切换难度第 10–14 章为标准/磨难第 15 章起为普通/险地龙门币/作战记录资源本的第 5、6 关输入CE-6/LS-6。当第 6 关无法代理指挥时MAA 会自动降级到第 5 关技能书、采购凭证、碳的第 5 关输入CA-5/AP-5/SK-5全部芯片关卡需输入完整关卡代码例如PR-A-1常驻开放的活动关卡直接输入如OF-1/OF-F3当前开启的 Side Story 活动的最后三个关卡从 StageActivityV2 API 自动下载更新后显示在界面底部复刻的 Side Story 活动输入SSReopen-关卡前缀可一口气刷完该活动的 XX-1 ~ XX-9 全部关卡例如SSReopen-IC。底层实现关卡代码如何被解析关卡代码的解析逻辑位于 StageNavigationTask.cpp 的set_stage_name若关卡代码在tasks.json中已存在Task.get(stage_name)命中则走「直接任务」分支复用配置好的任务链否则用正则^([A-Za-z]{0,3})(\d{1,2})-(\d{1,2})(?:-?(\w))*$拆解10-1、JT8-2、H10-1-Hard这类代码得到前缀、章节号、关卡序号与难度后缀章节通过Episode前缀映射到对应任务如Episode10难度则区分两种模式第 10–14 章走ChapterDifficultyNormal/Hard选关前切换标准/磨难第 15 章起走ChangeToRaidDifficulty/ChangeToNormalDifficulty系列选关后切换险地/普通找到关卡后优先使用关卡模板图片做模板匹配无模板时回退到 OCR 识别关卡名见swipe_and_find_stage。SSReopen-前缀则由 FightTask.cpp 识别当stage以SSReopen-开头且长度为 11 时交给 SideStoryReopenTask 按活动名如IC依次进入各关卡并执行战斗。歼灭模式섬멸 모드MAA 通过终端主页右上角的歼灭按钮进入所选的歼灭作战需已解锁전권 위임全权委托并持有足够的PRTS 섬멸 작전 대리권PRTS 歼灭代理权仅建议在已达成该作战 400 击杀里程碑后使用自动歼灭导航过程中若找不到歼灭入口MAA 会认为本周歼灭已完成并直接结束任务不视为失败导航时会检查전권 위임扫荡是否可用不可用则任务失败退出运行过程中不会持续检查扫荡券余量若中途扫荡券不足后续可能退回普通代理作战耗时明显变长结算时会识别本周合成玉进度例如1800 / 1800达到周上限后自动停止。源码中由StageDropsTaskPlugin的m_annihilation_weekly_processcurrent/total维护该进度识别歼灭是常驻关卡在关卡选择/替代关卡中一旦选中歼灭后续替代关卡将不再被识别与执行歼灭掉落不会上报至企鹅物流与一图流若想让歼灭优先执行可以单独添加一个「只勾选歼灭」的理智使用任务并拖到已有理智使用任务上方再在高级设置中开启周计划、只勾选周一即可只在周一执行。高级设置替代关卡대체 스테이지替代关卡按「当日是否开放」决定实际出战的关卡MAA 会从列表中选择第一个当日开放的关卡。它更接近一张排期表而不是「首选关卡失败后的备份」——如果排到的关卡未解锁代理指挥任务会直接失败。示例替代关卡设置为용문폐-6/5龙门币-6/5、1-7、경험치-6/5经验-6/5当日용문폐-6/5开放 → 进入该关卡1-7与경험치-6/5均不执行若玩家未解锁该关代理任务失败当日용문폐-6/5未开放 → 进入1-7경험치-6/5不执行若1-7未解锁代理同样失败1-7是常驻开放关卡且排在列表前面因此其后的경험치-6/5永远不会被选中同理替代列表中一旦选中歼灭等常驻关卡后面的关卡不再被识别。周计划주간 일정在작업 설정—이성 사용—고급 설정中开启该功能由 UI 层实现开启后可以勾选周日~周六中哪些游戏内星期执行该理智使用任务星期按游戏内时间计算各服务器时区 每天 4:00 重置而不是设备日历。例如 CN 服在当地 3:59 仍按前一天计算任务启动时若周计划开启且当天未勾选该理智使用任务会被跳过日志显示任务被跳过不视为失败后续任务继续执行不启用周计划则每天都会尝试执行该任务启用周计划会同时关闭并禁用「隐藏未开放关卡」典型用法单独添加只勾选歼灭的理智使用任务周计划只勾选周一实现每周一自动清剿详见上文 歼灭模式。连续战斗次数연속 전투 횟수MAA 会按照用户设置的连续代理倍率推进战斗共有三种模式AUTO0自动选择倍率根据剩余次数不超过关卡支持的最大倍率调整使用恢复剂时会自动减少用量以防理智溢出源石则按设定一颗一颗使用当该倍率一次的理智不足时按设置恢复理智恢复剂优先其次源石没有设置或已耗尽则结束任务。数字模式CN 服 1~10海外服 1~6严格按设定倍率进行连续代理当设定倍率的单次理智不足例如只够 5 倍却设成 6 倍时按设置恢复理智恢复剂优先其次源石没有设置或已耗尽则结束任务。禁用模式-1不修改游戏内的倍率当游戏内当前倍率的单次理智不足时按设置恢复理智恢复剂优先其次源石没有设置或已耗尽则结束任务。从源码看倍率与战斗次数的控制在 FightTimesTaskPlugin 中实现它会通过视觉识别当前理智/最大理智analyze_sanity_remain、关卡理智消耗analyze_sanity_cost、当前倍率analyze_stage_series以及倍率列表analyze_series_list并根据每个倍率项的StatusAvailable/NeedMedicine/NeedStone决定是直接出击、补药还是碎石。FightTask.cpp 对series做了合法性校验小于 -1 非法新倍率列表下大于 10 非法旧列表下大于 6 非法且只有 AUTOseries 0时才会启用「超上限自动减少用药」set_reduce_when_exceed。指定次数횟수 제한 的进阶行为MAA 最多执行到指定次数为止但实际战斗次数会按代理倍率向下取整实际次数 floor(指定次数 / 代理倍率) × 代理倍率它不会为了凑满指定次数而单独拆出一次不足整倍率的战斗AUTO 模式除外见下。示例当前理智 100、关卡消耗 6、关卡最大代理倍率 10指定次数 12、倍率 5开始行动 2 次 × 5 倍 10 次战斗floor(12 / 5) × 5 10消耗理智 10 × 6 60。若再打一次 5 倍会达到 15 次、超过 12因此停在 10 次指定次数 12、倍率 AUTO先取「剩余次数」与「当前可用最大倍率」的较小值以 10 倍打 10 次剩余 2 次再用 2 倍补齐合计 12 次消耗理智 12 × 6 72。掉落识别드롭 인식自动识别材料掉落并统计随后上报至企鹅物流Penguin Statistics与一图流Yituliu两家掉落统计站可以手动设置企鹅物流的用户 IDpenguin_id以便数据归属到个人账号。对应的实现是 StageDropsTaskPluginrecognize_drops负责结算画面识别check_specify_quantity负责「掉落数量达标即停止」的判定upload_to_penguin/upload_to_yituliu负责异步上报各自对应一个ReportDataTask。可在 FightTask.cpp 看到对应参数report_to_penguin、penguin_id、report_to_yituliu、yituliu_id以及区分服务器的server默认CN。异常情况检测대처自动勾选代理指挥即使未勾选대리 지휘代理指挥MAA 也会自动勾选后再开始升级处理战斗中途升级会自动处理任务不中断作战失败若任务失败则中止当前理智使用任务。此外FightTask.cpp 还定义了一个特殊约定times 0视为跳过本任务例如仓库维护判定无需进图时此时会禁用全部子任务——队列中未开始时瞬间以成功结束已开始时则在当前子任务的节点边界优雅中断保证任务队列的健壮性。小结「理智使用」是 MAA 中最常用也最讲究配置的模块之一一般设置的四种终止条件以「或」逻辑协同工作高级设置中的替代关卡与周计划实现了「按天排期」的自动刷图连续战斗次数与指定次数共同决定了实际战斗的粒度而掉落识别与上报则为数据党提供了完整的掉落统计闭环。结合 FightTask.cpp、StageNavigationTask.cpp、FightTimesTaskPlugin.h、MedicineCounterTaskPlugin.h、StageDropsTaskPlugin.h 等源码你可以清楚看到每个 UI 选项对应的 Core 参数与底层识别逻辑从而在「掉落数/目标库存」「源石/恢复剂优先级」「AUTO/固定倍率」之间做出最贴合自身理智规划的配置。【免费下载链接】MaaAssistantArknights《明日方舟》小助手全日常一键长草| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考