Skip to content

开发规范

WARNING

开发统一使用分辨率:720x1280 dpi320

分辨率错误可能会导致各种匹配问题!

一、Pipeline JSON 文件管理规范

目录结构

所有 Pipeline JSON 文件统一存放在 /pipeline/ 目录下,按功能类型划分子文件夹:

bash
  /resource/                    
  ├── base/                     # 简中资源
  ├── pipeline/
   ├── autoformation/     # 自动编队相关基础节点
   ├── copilot/           # 抄作业相关基础节点
   ├── daily/             # 日常
   ├── dispatch/          # 派遣
   ├── pandorabox/        # 百宝箱
   └── sp/                # 限时活动
  └── ...
  ├── zh_tw/                    # 繁中资源
  ├── pipeline/
  └── ...                    # 同简中,下略

文件存放规范

  • daily文件夹:放置仅为完成日常而设定的任务
  • 其他文件夹:放置对应板块的任务

二、图片存放规范

目录结构

所有图片资源统一存放在 /image/ 目录下,按功能模块划分子文件夹:

bash
  /resource/                    
  ├── base/                     # 简中资源
  ├── image/
   ├── agent/             
   ├── baihu/             # 白鹄行动相关图片
   ├── banquet/           # (活动)华堂夜宴相关图片
   ├── base/              # 据点相关图片
   ├── BBQ/               # (活动)魂生一串相关图片
   ├── chujianri/         # (活动)初见日出游相关图片
   ├── copilot/           # 抄作业相关图片
   ├── deepdungeon/       # 地宫相关图片
   ├── han_ye_e_jing/     # (活动)寒夜厄境相关图片
   ├── house/             # 心纸居相关图片
   ├── huadenghui/        # (活动)花灯绘相关图片
   ├── login/             # 登录签到相关图片
   ├── mainmap/           # 主界面导航返回相关图片
   ├── mijiao2026/        # (活动)咪教模拟器相关图片
   ├── monopoly/          # (活动)广陵爱情故事相关图片
   ├── nanyang/           # (活动)躬耕南阳相关图片
   ├── stargaze/          # 观星相关图片
   ├── temp/              # 限时活动相关图片
   ├── wanli/             # (活动)江东万里船相关图片
   ├── wqfn/              # (活动)望祈丰年相关图片
   ├── yecheng/           # (活动)邺城之战相关图片
   ├── ym/                # (活动)云梦巫乡相关图片
   ├── yuanbao/           # 鸢报相关图片
   └── zhaoge/            # (活动)朝歌之战相关图片
  └── ...
  ├── zh_tw/                    # 繁中资源
  ├── image/
  └── ...                    # 同简中,下略

图片引用

在 JSON 文件中引用图片时,使用相对路径:

json
"通用-关闭获得奖励": {
    "recognition": {
      "type": "TemplateMatch",
      "param": {
        "template": "common_reward.png",
        "green_mask": true,
        "roi": [14, 23, 684, 597],
        "threshold": 0.5
      }
    },
    "action": {
      "type": "Click",
      "param": {
        "target": [633, 22, 19, 11]
      }
    },
    "pre_delay": 700,
    "post_delay": 1000
  }

CAUTION

简繁体通用的任务,要注意zh_tw目录下是否有对应的图片。

在用OCR识别时,尽量选取简繁体相同的字。如果实在没有,则用replace进行替换。如:

json
"recognition": {
     "type": "OCR",
     "param": {
       "expected": "活动",
       "roi": [287, 249, 142, 98],
       "replace": ["動", "动"]
     }
   },

三、MaaYuan格式化要求

MaaYuan 使用一系列的格式化工具来保证仓库中的代码和资源文件美观统一,以便于维护和阅读

请确保在提交之前已经格式化,或是启用 Pre-commit Hooks 进行自动格式化

格式化插件列表

目前启用的格式化工具如下:

文件类型格式化工具
JSON/Yamlprettier
MarkdownMarkdownLint

其中,prettier使用MaaFW的格式化小工具 | prettier-plugin-maafw-sort进行格式化。

Prettier 插件,按照生命周期顺序自动排序 pipeline 字段

sh
npm i -D @nekosu/prettier-plugin-maafw-sort

利用 Pre-commit Hooks 自动进行代码格式化

TIP

实际协作中,在 vscode 中开发,安装推荐的插件后,基本就可以完成自动格式化了,故该部分可跳过。

  1. 确保你的电脑上有 Python 与 Node 环境

  2. 在项目根目录下执行以下命令

    bash
    pip install pre-commit
    pre-commit install

如果pip安装后依然无法运行pre-commit,请确认pip安装地址已被添加到PATH

接下来,每次提交时都将会自动运行格式化工具,来确保你的代码格式符合规范

手动触发: pre-commit run --all-files

四、各种ROI、target

放置一点通用节点的roi、target参数,方便统一使用

详见日常行动通用模块其它通用模块

MaaYuan 为免费开源项目,欢迎前往 GitHub 关注文档更新。