237 lines
6.1 KiB
Markdown
237 lines
6.1 KiB
Markdown
# AutoCommission 标准对话委托制作指南
|
||
|
||
> 欢迎加入开发!难度:★★★☆☆
|
||
> 感谢云闲vsv & 换苏伟u & 小鹰划船不用桨 & 塔台 & 未知_ 的共同开发
|
||
|
||
---
|
||
|
||
## 1 制作前检查
|
||
- 打开 [AutoCommission 开发进度表格](https://docs.qq.com/sheet/DWGRCTGtDUGVPa1h0?tab=BB08J2)
|
||
|
||
---
|
||
|
||
## 2 了解委托信息
|
||
- 名称:在任务界面看到的完整委托标题
|
||
- 地点:地图右上角名称
|
||
|
||
---
|
||
|
||
## 3 创建流程文件
|
||
路径规则 AutoEntrust\assets\process\{委托名称}\{委托地点}\process.json
|
||
- 使用 UTF-8 无 BOM 编码保存。
|
||
- 所有子流程(如 `取餐.json`)放在同一目录,方便相对路径引用。
|
||
|
||
---
|
||
|
||
## 4 流程文件格式总览
|
||
|
||
### 4.1 基本结构
|
||
```json
|
||
[
|
||
{
|
||
"type": "<步骤类型>",
|
||
"data": <任意类型>,
|
||
"note": "控制台日志,可选",
|
||
"run": "<子流程文件名,可选,仅分支步骤>"
|
||
}
|
||
]
|
||
```
|
||
|
||
### 4.2 支持的步骤类型
|
||
| type | 作用 | data 示例 | 备注 |
|
||
|---|---|---|---|
|
||
| 委托描述检测 | 按 J 打开任务界面并匹配委托详情 | `"取得制作好的餐品"` | 支持 `run` 跳转子流程 |
|
||
| 地址检测 | 检测玩家坐标与给定坐标差距 ≤15 | `[-667, 2285]` | 支持 `run` 跳转子流程 |
|
||
| 地图追踪 | 执行地图寻路脚本 | `"tracking1.json"` | 相对路径 |
|
||
| 键鼠脚本 | 执行键鼠脚本 | `"script1.json"` | 相对路径 |
|
||
| 对话 | 自动对话并优先选择指定选项 | 见下方详解 | |
|
||
| 按键 | 按一次键盘按键 | `"F"` 或 `{"action":"press","key":"E"}` | 复杂按键操作对象,包含 action (动作,如"down"、"up"、"press")和 key (按键值)|
|
||
| tp | 强制传送到坐标 | `[100,200,true]` | 已不常用 |
|
||
| 等待 | 自定义等待 | `3000`(毫秒) | 默认 5000 ms |
|
||
| 自动任务 | 开启/关闭 AutoSkip、AutoPick | 见下方详解 | |
|
||
| 等待返回主界面 | 判断返回主界面 | — | 无 data |
|
||
| 追踪委托 | 追踪NPC头顶图标 | data可以直接写npc的名字(字符串类型),也可以写成一个列表,name是npc的名字,iconType追踪的标,Bigmap大地图的委托图标,Question问号图标,Task任务图标(默认) | 好用 |
|
||
---
|
||
|
||
## 5 对话步骤详解
|
||
```json
|
||
{
|
||
"type": "对话",
|
||
"data": {
|
||
"skipCount": 5,
|
||
"priorityOptions": ["同意", "接受委托", "我来帮忙"],
|
||
"npcWhiteList": ["派蒙", "凯亚", "安柏"]
|
||
},
|
||
"note": "优先选“同意”等选项,且只与白名单 NPC 交互"
|
||
}
|
||
"skipCount"跳过的前置无选项的对话次数,"priorityOptions"对话中可选的内容,npcWhiteList可以对话的npc
|
||
```
|
||
|
||
---
|
||
|
||
## 6 自动任务步骤详解
|
||
#### 功能特点
|
||
- 动态启用/禁用自动任务
|
||
- 支持任务配置参数
|
||
- 统一的任务管理接口
|
||
|
||
#### 使用方法
|
||
|
||
**1. 启用自动拾取(默认配置)**
|
||
```json
|
||
{
|
||
"type": "自动任务",
|
||
"data": {
|
||
"action": "enable",
|
||
"taskType": "AutoPick"
|
||
},
|
||
"note": "启用自动拾取"
|
||
}
|
||
```
|
||
|
||
**2. 启用自动拾取(自定义配置)**
|
||
```json
|
||
{
|
||
"type": "自动任务",
|
||
"data": {
|
||
"action": "enable",
|
||
"taskType": "AutoPick",
|
||
"config": {
|
||
"forceInteraction": false
|
||
}
|
||
},
|
||
"note": "启用自动拾取,禁用急速拾取模式"
|
||
}
|
||
```
|
||
|
||
**3. 启用自动剧情**
|
||
```json
|
||
{
|
||
"type": "自动任务",
|
||
"data": {
|
||
"action": "enable",
|
||
"taskType": "AutoSkip"
|
||
},
|
||
"note": "开启自动剧情"
|
||
}
|
||
```
|
||
|
||
**4. 取消所有自动任务**
|
||
```json
|
||
{
|
||
"type": "自动任务",
|
||
"data": {
|
||
"action": "disable"
|
||
},
|
||
"note": "取消所有自动任务"
|
||
}
|
||
```
|
||
|
||
#### 参数详细说明
|
||
|
||
**action** (必需)
|
||
- 类型: string
|
||
- 可选值: "enable" | "disable"
|
||
- "enable": 启用自动任务
|
||
- "disable": 取消所有自动任务
|
||
|
||
**taskType** (启用时必需)
|
||
- 类型: string
|
||
- 可选值: "AutoSkip" | "AutoPick"
|
||
- "AutoSkip": 自动剧情
|
||
- "AutoPick": 自动拾取
|
||
|
||
**config** (可选)
|
||
- 类型: object
|
||
- 用于配置任务的具体参数
|
||
- 对于 AutoPick 任务:
|
||
- `forceInteraction`: boolean - 是否启用急速拾取模式
|
||
|
||
#### 支持的任务类型
|
||
|
||
| 任务类型 | 说明 | 支持的配置 |
|
||
|---------|------|----------|
|
||
| AutoSkip | 自动剧情 | 无特殊配置 |
|
||
| AutoPick | 自动拾取 | forceInteraction: 急速拾取模式开关 |
|
||
|
||
---
|
||
|
||
## 7 分支(条件跳转)机制
|
||
仅 `委托描述检测` 与 `地址检测` 支持 `run` 字段:
|
||
- 条件匹配 → 执行 `run` 指向的子流程,子流程使用process.json同样的写法
|
||
- 条件不匹配 → 跳过本步骤继续往下执行
|
||
|
||
示例:
|
||
```json
|
||
[
|
||
{
|
||
"type": "委托描述检测",
|
||
"data": "取得制作好的餐品",
|
||
"note": "分支名字正确的情况",
|
||
"run": "取餐.json"
|
||
},
|
||
{
|
||
"type": "地址检测",
|
||
"data": [-667, 2285],
|
||
"note": "距离目标 ≤15",
|
||
"run": "让纳西妲进尘歌壶.json"
|
||
}
|
||
]
|
||
```
|
||
|
||
---
|
||
|
||
## 8 完整示例
|
||
下面是一份可直接使用的 `process.json` 模板,含新功能:
|
||
```json
|
||
[
|
||
{
|
||
"type": "自动任务",
|
||
"data": { "action": "enable", "taskType": "AutoPick", "config": { "forceInteraction": false } },
|
||
"note": "启用自动拾取(非急速)"
|
||
},
|
||
{
|
||
"type": "地图追踪",
|
||
"data": "tracking1.json",
|
||
"note": "前往目标 NPC"
|
||
},
|
||
{
|
||
"type": "等待",
|
||
"data": 2000,
|
||
"note": "等待传送动画"
|
||
},
|
||
{
|
||
"type": "对话",
|
||
"data": {
|
||
"skipCount": 3,
|
||
"priorityOptions": ["确定", "好的"],
|
||
"npcWhiteList": ["鲁道夫"]
|
||
},
|
||
"note": "与鲁道夫对话"
|
||
},
|
||
{
|
||
"type": "自动任务",
|
||
"data": { "action": "disable" },
|
||
"note": "清理自动任务"
|
||
}
|
||
]
|
||
```
|
||
|
||
---
|
||
|
||
## 9 常见问题 FAQ
|
||
1. **坐标如何获取?**
|
||
进入游戏按 `M` → 调试 → 记录 X、Y 即可。
|
||
|
||
2. **地图追踪.json 如何生成?**
|
||
使用「地图追踪录制器」或手工编写。
|
||
|
||
3. **对话选项匹配不到怎么办?**
|
||
将选项写成最短可识别关键词,如「我来帮忙」→「帮忙」;确保与游戏文本完全一致。
|
||
|
||
4. **网络延迟高脚本失败?**
|
||
增加「等待」步骤时间,或开启「等待」默认值 5000 ms。
|
||
|
||
---
|
||
|
||
> 完成后把 `process.json` 及所有子流程文件打包发给审核即可。祝制作顺利! |