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 Docs 为免费开源项目,欢迎前往 GitHub 关注文档更新。