doc:update 3.5-肉鸽辅助协议.md

This commit is contained in:
Lancarus
2023-08-07 10:58:53 +08:00
committed by GitHub
parent cbe7036a2a
commit 5632c500e2

View File

@@ -1,6 +1,9 @@
# 将你的肉鸽理解灌注给牛牛--集成战略协议
## 1.肉鸽资源存放位置
## 肉鸽资源存放位置
---
- `resource/roguelike/`下按照主题存放各个肉鸽的作业资源
- 主题文件夹:`Phantom/` 为傀影肉鸽资源,`Mizuki/` 为水月肉鸽资源,`Sami/` 为萨米肉鸽资源
@@ -10,7 +13,10 @@
- `recruitment.json` 干员招募逻辑
- `shopping.json` 商店购买藏品逻辑
## 2.肉鸽第一步--干员招募
## 肉鸽第一步--干员招募
---
`resource/roguelike/主题名/recruitment.json` 描述了干员招募的逻辑
@@ -27,9 +33,9 @@
```
### 1. 干员分类
### 干员分类
按照你的游戏理解将干员分成不同的 ***groups*** (群组,相关概念参考 3-3 战斗流程协议)
按照你的游戏理解将干员分成不同的 ***groups*** (群组,相关概念参考 [3.3-战斗流程协议](3.3-战斗流程协议.md)
```jsonc
{
@@ -55,44 +61,44 @@
}
```
#### a. 已有群组介绍
1. 已有群组介绍
以傀影肉鸽的作业为例:主要将干员分为了
| 分组 | 主要考量 | 主要包括职业 | 举例干员 |
| :--- | :--- | :--- | :--- |
| ***地面阻挡*** | 站场和清杂 | 重装、近卫 | 奶盾、基石、羽毛笔、山、M3、令和稀音的召唤物、斑点、重装预备干员 |
| ***地面单切*** | 单独对战精英怪 | 处决者特种 | 史尔特尔、异德、夜刀x、M3、红 |
| ***高台C*** | 常态和决战输出 | 狙击、术士 | 假日威龙陈、澄闪、艾雅法拉、肥鸭 |
| ***高台输出*** | 对空和常态输出 | 狙击、术士 | 空弦、能天使、克洛丝、史都华德 |
| ***奶*** | 站场和清杂能力 | 治疗、辅助 | 凯尔希、浊心斯卡蒂、芙蓉、安赛尔 |
| ***回费*** | 回复cost | 先锋 | 桃金娘、伊内丝、芬、香草 |
| ***炮灰*** | 吸收炮弹、再部署 | 特种、召唤物 | M3、红、桃金娘、预备干员 |
| ***高台预备*** | 有一定输出能力 | | 梓兰、预备干员 |
以傀影肉鸽的作业为例:主要将干员分为了
| 分组 | 主要考量 | 主要包括职业 | 举例干员 |
| :--- | :--- | :--- | :--- |
| ***地面阻挡*** | 站场和清杂 | 重装、近卫 | 奶盾、基石、羽毛笔、山、M3、令和稀音的召唤物、斑点、重装预备干员 |
| ***地面单切*** | 单独对战精英怪 | 处决者特种 | 史尔特尔、异德、夜刀x、M3、红 |
| ***高台C*** | 常态和决战输出 | 狙击、术士 | 假日威龙陈、澄闪、艾雅法拉、肥鸭 |
| ***高台输出*** | 对空和常态输出 | 狙击、术士 | 空弦、能天使、克洛丝、史都华德 |
| ***奶*** | 站场和清杂能力 | 治疗、辅助 | 凯尔希、浊心斯卡蒂、芙蓉、安赛尔 |
| ***回费*** | 回复cost | 先锋 | 桃金娘、伊内丝、芬、香草 |
| ***炮灰*** | 吸收炮弹、再部署 | 特种、召唤物 | M3、红、桃金娘、预备干员 |
| ***高台预备*** | 有一定输出能力 | | 梓兰、预备干员 |
#### b. 需要特殊操作的群组
2. 需要特殊操作的群组
除了上面那些比较笼统的分组,我们有时候需要对一些干员或者干员种类进行一些定制的精细化操作,比如
| 分组 | 包括干员 | 主要特点 |
| :--- | :--- | :--- |
| 棘刺 | 棘刺、号角 | 地面远程输出,有些图有非常适配的位置 |
| 凯尔希 | 棘刺、号角 | 自带地面阻挡,有的图需要优先部署,毒雾图部署优先度比正常奶低 |
| 情报官 | 晓哥、伊内丝 | 既可以回费、又可以阻挡、还可以单切 |
| 浊心斯卡蒂 | 浊心斯卡蒂 | 低压时奶量尚可,但是范围特殊,一些图有比较适配的位置 |
| 银灰 | 银灰、玛恩纳 | 地面决战输出可以针对boss进行部署 |
| 史尔特尔 | 史尔特尔 | 由于精二后固定携带3技能这时站场能力几乎为零需要阻挡位的部署优先度极低 |
| 骰子 | 骰子 | 水月肉鸽中的骰子需要单独操作 |
除了上面那些比较笼统的分组,我们有时候需要对一些干员或者干员种类进行一些定制的精细化操作,比如
| 分组 | 包括干员 | 主要特点 |
| :--- | :--- | :--- |
| 棘刺 | 棘刺、号角 | 地面远程输出,有些图有非常适配的位置 |
| 召唤类 | 凯尔希、令、稀音 | 自带地面阻挡,有的图需要优先部署,召唤物可以当阻挡也可以当炮灰 |
| 情报官 | 晓哥、伊内丝 | 既可以回费、又可以侧面输出、还可以单切 |
| 浊心斯卡蒂 | 浊心斯卡蒂 | 低压时奶量尚可,但是范围特殊,一些图有比较适配的位置 |
| 银灰 | 银灰、玛恩纳 | 地面大范围决战输出可以针对boss进行部署 |
| 史尔特尔 | 史尔特尔 | 由于精二后固定携带3技能这时站场能力几乎为零需要阻挡位的部署优先度极低 |
| 骰子 | 骰子 | 水月肉鸽中的骰子需要单独操作 |
#### c. 需要注意的地方
3. 需要注意的地方
**目前固定将未识别到的地面干员归入倒数第二个编组后面,未识别到的高台干员归入倒数第一个编组后面**
**目前固定将未识别到的地面干员归入倒数第二个编组后面,未识别到的高台干员归入倒数第一个编组后面**
### 2. 预设阵容--阵容完备检测
### 预设阵容--阵容完备检测
在你预计能够通关或者打到高层的队伍中,哪些干员是比不可少的?又需要几个?
在你预计能够通关或者打到高层的队伍中,哪些干员属于基本核心阵容?是比不可少的?又需要几个?
**注意目前脚本的招募逻辑是在阵容未满足阵容完备度之前只招募0希望和key干员存希望给高星key干员**
**所以不要设置太多完备度数字建议所有需要的干员数量加起来在4-8**
**所以不要完备度数字设置太高,建议所有需要的干员数量(基本核心阵容)加起来在4-8**
```jsonc
{
"theme": "Phantom", //肉鸽主题
@@ -119,13 +125,13 @@
]
}
```
### 3. 调整干员招募参数
### 调整干员招募参数
#### a. 群组内的顺序代表部署检测的优先度
1. 群组内的顺序代表部署检测的优先度
#### b. 群组内干员各个字段的意思和脚本相关的逻辑
```jsonc
{
2. 群组内干员各个字段的意思和脚本相关的逻辑
```jsonc
{
"theme": "Phantom",
"priority": [
"name": "地面阻挡", // 群组名
@@ -161,51 +167,54 @@
"team_complete_condition": [
...
]
}
```
#### c. 按照你的理解新增群组和干员
}
```
3. 按照你的理解新增群组和干员
新增群组后,你可以从已有的群组中复制干员过来,参考大佬们已有的评分,在此基础上修改
新增群组后,你可以从已有的群组中复制干员过来,参考大佬们已有的评分,在此基础上修改
## 2.肉鸽第二步--战斗逻辑
## 肉鸽第二步--战斗逻辑
---
`resource/roguelike/主题名/autopilot/关卡名.json` 描述了每个关卡的作战策略
### 1. MAA肉鸽基本战斗逻辑--牛牛高血压之源
### MAA肉鸽基本战斗逻辑--牛牛高血压之源
#### a. 根据地图上格子类型进行基本的战斗操作
1. 根据地图上格子类型进行基本的战斗操作
MAA会根据地图上的格子是蓝满还是红门是高台还是地面能不能被部署来进行基本的战斗操作
- MAA会根据地图上的格子是蓝满还是红门是高台还是地面能不能被部署来进行基本的战斗操作
但是不会判断地图上无法确定的格子的情况,比如`驯兽小屋`的祭坛位置,`从众效应`是从左边还是从右边出怪
- 但是不会判断地图上无法确定的格子的情况,比如`驯兽小屋`的祭坛位置,`从众效应`是从左边还是从右边出怪
所以你需要尽量设计一套能够应付一张地图不同情况的战斗逻辑,小心被大家挂到issue上说这张图操作高血压哦
所以你需要尽量设计一套能够应付一张地图不同情况的战斗逻辑,小心被大家挂到issue上说这张图操作高血压哦
#### b. MAA的基本作战策略--堵蓝门
2. MAA的基本作战策略--堵蓝门
i.地面干员会优先部署在蓝门的点上或者周围,方向朝向红门(自动计算),
1. 地面干员会优先部署在蓝门的点上或者周围,方向朝向红门(自动计算),
ii.优先部署地面,然后部署治疗干员和高台干员,一圈一圈的由蓝门向四周部署,
2. 优先部署地面,然后部署治疗干员和高台干员,一圈一圈的由蓝门向四周部署,
iii.会不停的按照上面的逻辑部署可以部署的东西(干员和召唤物)
3. 会不停的按照上面的逻辑部署可以部署的东西(干员和召唤物)
### 2. 优化基本战斗策略
### 优化基本战斗策略
#### a. 蓝门替代方案
1. 蓝门替代方案
仅仅把干员堆在蓝门门口显然不太聪明,有些关卡有格子是一夫当关万夫莫开,防守在这里显然效率很高,
仅仅把干员堆在蓝门门口显然不太聪明,有些关卡有格子是一夫当关万夫莫开,防守在这里显然效率很高,
或者有些关卡有多个蓝门MAA不知道哪个蓝门对应哪个红门也会胡乱部署
或者有些关卡有多个蓝门MAA不知道哪个蓝门对应哪个红门也会胡乱部署
这个时候你需要打开[地图wiki](https://map.ark-nights.com/areas)一边对着地图一边在脑海里指挥作战了
这个时候你需要打开[地图wiki](https://map.ark-nights.com/areas)一边对着地图一边在脑海里指挥作战了
首先在`设置`里将`坐标展示`切换为`MAA`
首先在`设置`里将`坐标展示`切换为`MAA`
然后根据你的经验寻找需要优先防守的点的坐标和朝向写入到json的`"replacement_home"`里面
然后根据你的经验寻找需要优先防守的点的坐标和朝向写入到json的`"replacement_home"`里面
```jsonc
{
```jsonc
{
"stage_name": "蓄水池", // 关卡名
"replacement_home": [ // 重要防守点至少需要填写1个
{
@@ -219,15 +228,17 @@ iii.会不停的按照上面的逻辑部署可以部署的东西(干员和召
"direction": "left"
}
],
```
```
#### b. 部署格子黑名单
2. 部署格子黑名单
有优先防守的点就有优先不部署干员的点比如大火球经过的位置boss脚底下一些不好输出的位置
有优先防守的点就有优先不部署干员的点比如大火球经过的位置boss脚底下一些不好输出的位置
这个时候我们引入了`"blacklist_location"`将不想让他部署干员的格子加到黑名单里
这个时候我们引入了`"blacklist_location"`将不想让他部署干员的格子加到黑名单里
```jsonc
**注意:**这里加入的格子,就算在后面的部署策略里面写进去的话,也是没法部署的
```jsonc
...
"blacklist_location_Doc": "这里是用法举例,不是说蓄水池这个图需要 ban 这两个点",
"blacklist_location": [ // 禁止程序进行部署的位置
@@ -240,23 +251,23 @@ iii.会不停的按照上面的逻辑部署可以部署的东西(干员和召
1
]
],
```
#### c. 其他地图策略
```
4. 其他地图策略
比如水月肉鸽中如果蓝门进怪了是不是要用骰子,缓解堆怪压力
比如水月肉鸽中如果蓝门进怪了是不是要用骰子,缓解堆怪压力
```jsonc
```jsonc
"not_use_dice_Doc": "蓝门干员撤退时是否需要用骰子不写默认false",
"not_use_dice": false,
```
```
### 3. 还是高血压?是时候展现你真正的而技术了--定制作战策略!
### 还是高血压?是时候展现你真正的而技术了--定制作战策略!
使用`"deploy_plan"`和`"retreat_plan"`实现定制化操作
#### a. 使用各个群组部署干员
```jsonc
"deploy_plan": [ // 部署逻辑,按从上到下、从左到右的顺序进行检索,并尝试部署找到的第一个干员,如果没有就跳过
1. 使用各个群组部署干员
```jsonc
"deploy_plan": [ // 部署逻辑,按从上到下、从左到右的顺序进行检索,并尝试部署找到的第一个干员,如果没有就跳过
{
"groups": [ "百嘉", "基石", "地面C", "号角", "挡人先锋" ],//这一步从这些群组中寻找干员
"location": [ 6, 4 ], //遍历百嘉群组、基石群组、地面C群组等等群组
@@ -274,10 +285,10 @@ iii.会不停的按照上面的逻辑部署可以部署的东西(干员和召
}
]
},
```
#### b. 在某个时间点部署干员
```jsonc
"deploy_plan": [
```
2. 在某个时间点部署干员
```jsonc
"deploy_plan": [
{
"groups": [ "异德", "刺客", "挡人先锋", "其他地面" ],
"location": [ 5, 3 ],
@@ -291,22 +302,22 @@ iii.会不停的按照上面的逻辑部署可以部署的东西(干员和召
"condition": [ 6, 10 ]
},
...
```
#### c. 在某个时间点撤退干员
```jsonc
"retreat_plan": [ // 在特定时间点撤退目标
```
3. 在某个时间点撤退干员
```jsonc
"retreat_plan": [ // 在特定时间点撤退目标
{
"location": [ 4, 1 ],
"condition": [ 7, 8 ] // 在击杀数为7-8时撤去位置[4,1]的干员,没有就跳过
}
]
```
#### d. 在某个时间点释放技能to do
```
4. 在某个时间点释放技能to do
#### e. 一些其他的字段(不推荐使用)
5. 一些其他的字段(不推荐使用)
```jsonc
```jsonc
"role_order_Doc": "干员类型部署顺序,未写出部分以近卫,先锋,医疗,重装,狙击,术士,辅助,特种,召唤物的顺序补全,输入英文",
"role_order": [ // 不推荐使用请配置deploy_plan字段
"warrior",
@@ -350,8 +361,8 @@ iii.会不停的按照上面的逻辑部署可以部署的东西(干员和召
"direction": "left"
}
],
```
### 4. 对某个干员打法有特殊理解?--精细化操作特定干员
```
### 对某个干员打法有特殊理解?--精细化操作特定干员
请将这位干员单独分组
@@ -364,11 +375,14 @@ iii.会不停的按照上面的逻辑部署可以部署的东西(干员和召
参考例子1.傀影肉鸽的棘刺 2.水月肉鸽的异德 3.萨米肉鸽的焰苇
## 4.肉鸽第三步--不期而遇类节点逻辑
## 肉鸽第三步--不期而遇类节点逻辑
---
`resource/roguelike/主题名/encounter.json` 描述了不期而遇事件选择的策略
### 1. MAA现有对不期而遇的判断方法
### MAA现有对不期而遇的判断方法
OCR识别不期而遇事件但是选项是操作固定的位置
@@ -376,7 +390,7 @@ OCR识别不期而遇事件但是选项是操作固定的位置
一般只需要微调或者不调整(大佬都写好了嘛)
### 2. 优化不期而遇选项的优先度
### 优化不期而遇选项的优先度
请结合prts查看各个事件的选项效果注意选项不一定固定
@@ -408,9 +422,12 @@ OCR识别不期而遇事件但是选项是操作固定的位置
...
```
### 3. 根据队伍情况动态调整某些选项的优先度(TODO)
### 根据队伍情况动态调整某些选项的优先度(TODO)
## 5.肉鸽第四步--商店藏品的优先度
## 肉鸽第四步--商店藏品的优先度
---
`resource/roguelike/主题名/shopping.json` 描述了商店购买藏品(和战斗后选择藏品?)的策略
@@ -459,15 +476,18 @@ OCR识别不期而遇事件但是选项是操作固定的位置
...
```
## 6.希望实现的逻辑(todo)
### 1.自动编队逻辑
#### a.可以根据不同地图设置不同的地图阵容完备性检测和技能优先度
## 希望实现的逻辑(todo)
---
#### b.可以根据现有阵容避开一些难度高的作战
### 自动编队逻辑
### 2.优化寻路算法
1. 可以根据不同地图设置不同的地图阵容完备性检测和技能优先度
2. 可以根据现有阵容避开一些难度高的作战
### 优化寻路算法
比如可以实现前三层多战,后面的少战,这样发育会更好