원클릭으로
maa-punish-pipeline-guide
// MAA_Punish 任务流水线 JSON/JSONC 编写与审查指南。含 Pipeline 速查表(识别类型、动作类型、节点字段默认值、JumpBack/Anchor、Custom)。基于 MaaFramework 协议与本仓库 protocol-3.1-task-pipeline.md。在编写或审查 pipeline、排查超时/on_error、或使用 TemplateMatch/OCR/Custom 时使用。
// MAA_Punish 任务流水线 JSON/JSONC 编写与审查指南。含 Pipeline 速查表(识别类型、动作类型、节点字段默认值、JumpBack/Anchor、Custom)。基于 MaaFramework 协议与本仓库 protocol-3.1-task-pipeline.md。在编写或审查 pipeline、排查超时/on_error、或使用 TemplateMatch/OCR/Custom 时使用。
| name | maa-punish-pipeline-guide |
| description | MAA_Punish 任务流水线 JSON/JSONC 编写与审查指南。含 Pipeline 速查表(识别类型、动作类型、节点字段默认值、JumpBack/Anchor、Custom)。基于 MaaFramework 协议与本仓库 protocol-3.1-task-pipeline.md。在编写或审查 pipeline、排查超时/on_error、或使用 TemplateMatch/OCR/Custom 时使用。 |
| 需求 | 优先看 |
|---|---|
| 速查表(本节下方) | 识别/动作/字段默认值/节点属性 |
| 完整语义与边界情况 | 仓库根目录 protocol-3.1-task-pipeline.md |
| 上游原文 | 3.1-PipelineProtocol |
| JSON Schema 校验 | deps/tools/pipeline.schema.json、custom.*.schema.json |
| 自动战斗专项 | docs/自动战斗框架开发指南.md |
| Python 自定义实现 | assets/MPAcustom/recognition/、assets/MPAcustom/action/ |
"recognition": "TemplateMatch",参数字段与节点平级混写(老写法)。"recognition": { "type": "TemplateMatch", "param": { ... } },action 同理;除 recognition/action 外的字段(next、timeout、pre_delay 等)仍在节点根上,与协议一致。roi / box / target(易混)| 字段 | 含义 |
|---|---|
roi | 识别搜索区域 [x,y,w,h],可与 roi_offset 叠加 |
box | 识别命中结果区域(运行时产生) |
target | 动作作用区域;默认 true 表示用当前识别结果的 box |
以下为协议常见内置默认(节点未写时使用;实际可能被 assets/resource/**/default_pipeline.json 覆盖,见下节)。
| 字段 | 典型默认 | 说明 |
|---|---|---|
rate_limit | 1000 ms | 每轮识别间隔下限 |
timeout | 20000 ms | 本节点 next 整轮识别超时;-1 表示无限等 (v5.5) |
pre_delay / post_delay | 200 ms | 识别→动作前、动作→截下一帧前;易引入隐性等待,按需显式写 0 |
pre_wait_freezes / post_wait_freezes | 0 | 画面静止再前进;对象形式见协议「等待画面静止」 |
repeat | 1 | 动作重复次数 (v5.3) |
repeat_delay / repeat_wait_freezes | 0 | 重复间隔 (v5.3) |
inverse | false | 反转识别结果 |
enabled | true | false 时其他节点 next 里会跳过该节点 |
max_hit | 无限制 | 命中次数上限 (v5.1) |
pre_wait_freezes → pre_delay → action(及 repeat 分支)→ post_wait_freezes → post_delay → 截图 → 识别 next。
next / on_error| 机制 | 说明 |
|---|---|
next | 按顺序尝试子节点识别,第一个命中则执行其 action 并进入该子节点上下文 |
| 全未命中 | 循环等待直到 timeout(或无限),再进当前节点的 on_error |
| 动作失败 | 进命中子节点的 on_error(若写了) |
| 任务结束 | next 为空且无需 JumpBack;或 StopTask;或外部 post_stop |
| 写法 | 作用 |
|---|---|
[JumpBack]节点名 或 { "name": "节点名", "jump_back": true } | 子链跑完后回到父节点,从父 next 头再扫;用于弹窗/加载。在 on_error 路径上不回跳 (v5.9) |
[Anchor]锚点名 | 解析为最后一次被赋值的锚点指向的节点;anchor 字段可在节点上设为字符串 / 数组 / 对象 (v5.7) |
recognition.type(v2)或 v1 的 recognition 字符串。
| 类型 | 用途提要 | 关键 param(节选) |
|---|---|---|
| DirectHit | 不识别,直接当命中 | roi |
| TemplateMatch | 模板找图 | template(image/ 相对路径)、roi、threshold(默认 0.7)、method(如 5 常用)、green_mask、index / order_by |
| FeatureMatch | 特征点匹配,透视/尺度变化 | template、count、detector(如 SIFT) |
| ColorMatch | 找色 | method(如 40=HSV)、lower、upper、count、connected |
| OCR | 文字 | expected(可正则)、model、only_rec、color_filter(引用 ColorMatch 节点名)v5.8 |
| NeuralNetworkClassify | 固定区域分类 | model(model/classify)、labels、expected(类下标) |
| NeuralNetworkDetect | 检测框 | model(model/detect)、expected、threshold |
| And v5.3 | 逻辑与 | all_of(节点名字符串 v5.7 或内联识别)、box_index |
| Or v5.3 | 逻辑或,首个命中即停 | any_of |
| Custom | 自定义识别(本项目为 Python 注册) | custom_recognition、custom_recognition_param、roi |
action.type(v2)或 v1 的 action 字符串。
| 类型 | 用途提要 | 关键 param(节选) |
|---|---|---|
| DoNothing | 无操作 | — |
| Click | 点击 | target(true / 节点名 / [Anchor]名 / 坐标 / 区域)、target_offset、contact、pressure v5.0 |
| LongPress | 长按 | duration、target 等同 Click |
| Swipe | 滑动 | begin、end(支持折线列表)、duration、only_hover |
| MultiSwipe | 多指滑动 | swipes[]:begin/end/starting/… |
| TouchDown / TouchMove / TouchUp v5.0 | 细分触控 | contact、target |
| Scroll v5.1 | 滚轮(Win/mac 等) | target、dx、dy(建议 Win 下取 120 倍数) |
| ClickKey / LongPressKey | 按键 | key(虚拟键码) |
| KeyDown / KeyUp v5.0 | 组合键时序 | key |
| InputText | 文本 | input_text |
| StartApp / StopApp | 启停应用 | package |
| StopTask | 停止当前任务链 | — |
| Command | 外部进程 | exec、args(支持 {ENTRY} {NODE} {IMAGE} 等占位) |
| Shell v5.3 | ADB shell | cmd、shell_timeout(原 timeout v5.8 改名) |
| Screencap | 保存截图到 log 目录 | filename、format、quality |
| Custom | 自定义动作(本项目 Python) | custom_action、custom_action_param、target |
assets/resource/**/pipeline/**/*.jsonc;图片相对各自 bundle 的 image/ 等目录。assets/resource/base/default_pipeline.json 会与框架 default_pipeline.json 机制合并;改全局默认时注意多 bundle 加载顺序(见协议「多 Bundle」)。"MyStep": {
"recognition": {
"type": "Custom",
"param": {
"custom_recognition": "YourRecoName",
"custom_recognition_param": {},
"roi": [0, 0, 1280, 720]
}
},
"action": {
"type": "Custom",
"param": {
"custom_action": "YourActionName",
"custom_action_param": {},
"target": true
}
},
"next": ["NextNode"]
}
注册名必须与 assets/MPAcustom 内实现一致;调试看 custom.log 或 debug/custom_*.log。
next 覆盖分支(含弹窗、加载、异常界面)。*_wait_freezes;需要「无等待」时对默认敏感字段显式 0。deps/tools/pipeline.schema.json。next / on_error 覆盖主要分支;JumpBack 用于可恢复中断assets/interface.json、assets/tasks 一致protocol-3.1-task-pipeline.md(权威细节)docs/自动战斗框架开发指南.mddeps/tools/pipeline.schema.json*.jsonc(如 Role_Selection.jsonc)分析用户给出的本地日志目录或日志文件路径,结合 MAA_Punish(MaaFramework + Python 自定义 + MFW-cfa)仓库定位任务卡死、识别失败、Pipeline 与自定义逻辑问题。主日志为 gui.log(cfa 图形界面)、custom.log(Python/MPAcustom 自定义)、debug/maa.log(框架运行时)。不下载或解压 zip;在用户给出日志路径、贴日志片段、反馈 bug、排查识别或流水线问题时使用。
Generate precise git commit messages for this repository from staged or working tree diffs. Use when the user asks for commit messages, 提交信息, 提交说明, commit 文案, git commit, staged changes, or wants to summarize code changes in this project's existing style.