docs: 更新肉鸽文档 (#10807)

This commit is contained in:
晓丶梦丶仁
2024-10-21 00:41:11 +08:00
committed by GitHub
parent 587b4537c1
commit 1439b2663f

View File

@@ -12,7 +12,7 @@ icon: ri:game-fill
## 肉鸽资源存放位置
- `resource/roguelike/` 下按照主题存放各个肉鸽的作业资源
- 主题文件夹:`Phantom/` 为傀影肉鸽资源,`Mizuki/` 为水月肉鸽资源, `Sami/` 为萨米肉鸽资源
- 主题文件夹:`Phantom/` 为傀影肉鸽资源,`Mizuki/` 为水月肉鸽资源, `Sami/` 为萨米肉鸽资源`Sarkaz/` 为萨卡兹肉鸽资源
- `autopilot/` 内是各个关卡的作战 json
- `关卡名.json` 关卡的作战逻辑
- `encounter/` 内是不期而遇类(所有非战斗和商店节点)事件逻辑
@@ -21,15 +21,16 @@ icon: ri:game-fill
- `recruitment.json` 干员招募逻辑
- `shopping.json` 商店购买藏品逻辑
- 特别地,在`Sami/`下的
- `foldartal.json`表示萨米肉鸽密文板的使用逻辑
- `collapsal_paradigms.json`表示萨米肉鸽坍缩范式的类型
- 特别地,在 `Sami/` 下的
- `foldartal.json` 表示萨米肉鸽密文板的使用逻辑
- `collapsal_paradigms.json` 表示萨米肉鸽坍缩范式的类型
- `autopilot/关卡名_collapse.json` 关卡的作战逻辑(刷坍缩范式模式)
- `encounter/collapse.json` 刷坍缩范式模式不期而遇逻辑
## 肉鸽第一步——干员招募
`resource/roguelike/主题名/recruitment.json` 描述了干员招募的逻辑
`tools/RoguelikeRecruitmentTool``tools/RoguelikeOperSearch` 中有辅助工具来帮助查看和编写
```json
{
@@ -94,7 +95,7 @@ icon: ri:game-fill
| :--- | :--- | :--- | :--- |
| **_地面阻挡_** | 站场和清杂 | 重装、近卫 | 奶盾、基石、羽毛笔、山、M3、令和稀音的召唤物、斑点、重装预备干员 |
| **_地面单切/处决者_** | 单独对战精英怪 | 处决者特种 | 史尔特尔、异德、麒麟 R 夜刀、M3、红 |
| **_高台 C_** | 常态和决战输出 | 狙击、术士 | 假日威龙陈、澄闪、艾雅法拉、肥鸭 |
| **_高台 C_** | 常态和决战输出 | 狙击、术士 | 维什戴尔、逻各斯、假日威龙陈、澄闪 |
| **_高台输出_** | 对空和常态输出 | 狙击、术士 | 空弦、能天使、克洛丝、史都华德 |
| **_速狙_** | 物理输出,标准射程 | 狙击 | 艾拉、能天使、跃跃、克洛丝 |
| **_术师_** | 法术输出,标准射程 | 单法 | 艾雅法拉、逻各斯、史都华德 |
@@ -138,7 +139,7 @@ icon: ri:game-fill
| 情报官 | 晓歌、伊内丝 | 既可以回费、又可以侧面输出、还可以单切 |
| 浊心斯卡蒂 | 浊心斯卡蒂 | 低压时奶量尚可,但是范围特殊,一些图有比较适配的位置 |
| 焰苇 | 焰影苇草 | 萨米肉鸽常用开局干员,兼具治疗和输出,一些图有比较适配的位置 |
| 银灰 | 银灰、玛恩纳 | 地面大范围决战输出,可以针对 boss 进行部署 |
| 玛恩纳 | 玛恩纳、银灰 | 地面大范围决战输出,可以针对 boss 进行部署 |
| 史尔特尔 | 史尔特尔 | 由于精二后固定携带 3 技能,这时站场能力几乎为零,需要阻挡位的部署优先度极低 |
| 骰子 | 骰子 | 水月肉鸽中的骰子需要单独操作 |
@@ -146,6 +147,11 @@ icon: ri:game-fill
目前固定将未识别到的地面干员归入倒数第二个编组后面(其他地面),未识别到的高台干员归入倒数第一个编组后面(其他高台)
:::
::: tip
新实装的干员需要手动加入各个肉鸽的 `recruitment.json`,而开发者不一定能想起来要做适配
如果你发现了的话可以发 issue 提醒开发者,也可以直接进行 pr
:::
### 预设阵容——阵容完备检测
在你预计能够通关或者打到高层的队伍中,哪些干员属于基本核心阵容?是比不可少的?又需要几个?
@@ -154,11 +160,15 @@ icon: ri:game-fill
目前脚本的招募逻辑是在阵容未满足阵容完备度之前,只招募 0 希望(暂时只有三星)和 key可以理解为白名单干员存希望给高星 key 干员
(目前的实现方式是给高强度干员和三星干员手动标为 key 干员,招募的时候只招 key 干员TODO: 识别 0 希望干员)
作战编队时也会优先编入满足阵容完备度的干员,剩下的空位按鹰序。这里因为没有验证干员是否重复(有重复会点两下反而不编入),所以阵容完备度检测的组中尽量不要有重复干员
所以不要将完备度数字设置太高,建议所有需要的干员数量(基本核心阵容,一般是 1 核心2 地面1-2 奶1 高台)加起来在 4-8 位
所以需要尽量让完备度总数合适,建议所有需要的干员数量(基本核心阵容,一般是 1 核心2 地面1-2 奶1 高台)加起来在 4-8 位
在队伍满足阵容完备度检测之后,每次拿到招募券会按照干员的评分和精二优先度进行招募,所以为了避免希望浪费,不希望招募的干员可以不设置评分或者设置在同职业三星/预备队员评分以下
(对于一定要和完全不想要的干员,可以特殊地赋予极高和极低的分数,详见 `Sami` 中的 `止颂`
作战编队时会先对干员选择界面的默认排序(从上到下、从左到右)进行有序读取和存储
基于这个顺序,保持相对顺序地将最先出现的满足阵容完备度的干员提到开头,直到阵容完备度被全部满足或不存在满足阵容完备度的干员
然后将预备干员移至最末,形成新的顺序,按照新的顺序进行选择
特别地由于六星临时招募干员在编队时默认位于最开头所以实际编队中很容易编入六星临时招募干员TODO排除无法使用的精一临时招募干员
对于萌新号:在 10 次招募没有满足半队 key 干员的情况下,会放弃完备度检测,按照评分有啥用啥,所以没练三星的萌新号会出现只拿了两三个六星,剩下拿了一堆预备干员的情况
:::
@@ -170,13 +180,13 @@ icon: ri:game-fill
...
],
"team_complete_condition": [ //阵容完备度检测
{
{ //一个策略组 (condition)
"groups": [ //需要哪些群组中的干员
"高台C"
"高台输出" //这里表示需要高台输出组的干员1名
],
"threshold": 1 //这些干员需要多少数量
}, //这里表示需要高台C组的干员1名
{
},
{ //可以有多个策略组
"groups": [
"棘刺", //这里表示棘刺、地面阻挡、地面单切、炮灰分组的干员最少需要2个
"地面阻挡",
@@ -185,14 +195,28 @@ icon: ri:game-fill
],
"threshold": 2
},
{
"groups": [
"奶" //这里表示需要奶组的干员1名
],
"threshold": 1
}
...
]
}
```
::: caution
当一个干员出现在多个干员组时,只进行一次计数
比如:干员 `棘刺` 可能同时出现在干员组 `棘刺``地面阻挡` 中,在这个策略组内,只对干员 `棘刺` 计入一次
但每个策略组分别计数
比如:干员 `焰影苇草` 可能同时出现在干员组 `高台输出``奶` 中,此时两个策略组都可以计入干员 `焰影苇草`
:::
### 调整干员招募参数
1. 群组内的顺序代表部署该组时的优先度
1. 群组内的干员顺序代表作战部署该干员组时选择干员的优先度
2. 临时招募干员会在原有的评分基础上加 600 分
@@ -221,7 +245,8 @@ icon: ri:game-fill
"promote_priority": 600, // 进阶优先级数字越大优先级越高900以上属于有希望就精二400以下招募优先级低于招募普通三星干员
// 小技巧:当你将招募优先度压低或者不写,拉高一些精二优先度,实际上就是在拉高临时招募到这些干员的精二优先度
"is_key": true, // true为key关键干员false或省略为非key干员。在阵容完备检测未通过时仅招募key干员与0希望干员保存希望。
"is_start": true, // true为开局选择干员false或省略为非开局干员。在队伍中没有start干员时仅招募start干员与0希望干员用户填写的干员会强制未start干员
"is_start": true, // true为开局选择干员false或省略为非开局干员。在队伍中没有start干员时仅招募start干员与0希望干员
// 与用户图形界面的开局干员绑定且用户手动填写的干员会强制设为start干员
"auto_retreat": 0, // 部署几秒后自动撤退,整数,大于 0 时生效主要用于特种干员和投锋由于肉鸽一般是2倍速推荐设置为技能持续时间/2
"recruit_priority_when_team_full": 850, // 无需单独设置,满足阵容完备度时,招募优先级,默认招募优先级-100
"promote_priority_when_team_full": 850, // 无需单独设置,满足阵容完备度时,进阶优先级,默认精二优先级+300
@@ -262,18 +287,21 @@ icon: ri:game-fill
`resource/roguelike/主题名/autopilot/关卡名.json` 描述了每个关卡的作战策略
### MAA 肉鸽基本战斗逻辑——牛牛高血压之源
### MAA 肉鸽通用战斗逻辑——牛牛高血压之源
(在关卡名对应作战逻辑文件不存在时生效)
1. 根据地图上格子类型进行基本的战斗操作
- MAA 会根据地图上的格子是蓝门还是红门,是高台还是地面,能不能被部署来进行基本的战斗操作
- MAA 仅根据地图名称或者编号决定使用哪份作业,不会判断地图的**普通**、**紧急**、**路网**、**密文板使用**等情况
- MAA 不会判断**作战中地图上无法确定的格子的情况**,比如`驯兽小屋`的祭坛位置,`从众效应`是从左边还是从右边出怪
所以在后面,你需要尽量设计一套能够应付一个地图名**所有不同情况**(上面提到的几种情况)的战斗逻辑,小心被大家挂到 issue 上说这张图操作高血压哦(笑)
2. MAA 的基本作战策略--堵蓝门
2. MAA 的通用作战策略--堵蓝门
1. 地面干员会优先部署在蓝门的格子上(为什么是格子上,请往下看)或者周围,方向朝向红门(自动计算),
@@ -312,6 +340,10 @@ icon: ri:game-fill
],
```
::: tip
蓝门替代方案会在 `deploy_plan` 全部完成但待部署区仍有干员的情况下生效,逻辑同通用作战策略
:::
2. 部署格子黑名单
有优先防守的点就有优先不部署干员的点比如大火球经过的位置boss 脚底下,一些不好输出的位置,
@@ -350,7 +382,7 @@ icon: ri:game-fill
使用`"deploy_plan"`和`"retreat_plan"`实现定制化操作
定制化策略优先与基本战斗策略,当定制化策略中的所有步骤都尝试执行完毕后,下的干员或者倒下再部署的干员会按照基本战斗策略不断部署
定制化策略优先于通用战斗策略,当定制化策略中的所有步骤都尝试执行完毕后,下的干员或者倒下再部署的干员会按照通用战斗策略不断部署
有时候不需要设置太多的定制策略,完成关键步骤后再交给 MAA二者结合可能效果更好
@@ -380,6 +412,8 @@ icon: ri:game-fill
MAA 会将所有部署指令扁平化后,执行最优先级部署操作
例:在[6,4]部署[ "百嘉", "基石", "地面 C"],在[6,3]部署[ "基石", "地面 C"],那么 MAA 会将部署指令扁平化成附带坐标的[ "百嘉", "基石", "地面 C""基石", "地面 C"]
如果在战斗中[6,4]位置的"百嘉"组干员倒下,手里有有可部署的“基石”组干员,会优先布置到[6,4]而不是[6,3]
这意味着从宏观上来看,每次执行完部署动作之后都会从头开始检查可执行的策略(当前步骤的位置没有已经放置的干员,且待部署区有干员属于此步骤的干员组)
:::
::: tip
@@ -393,9 +427,9 @@ icon: ri:game-fill
:::
2. 在某个时间点部署干员
::: tip
适用于某些单切干员或者需要炮灰的使用场景
:::
::: tip
适用于某些单切干员或者需要炮灰的使用场景
:::
```json
"deploy_plan": [
@@ -416,8 +450,8 @@ icon: ri:game-fill
```
3. 在某个时间点撤退干员
::: tip
有时候炮灰过强站住场或者需要部署位腾挪阵容怎么办,撤退!
::: tip
有时候炮灰过强站住场或者需要部署位腾挪阵容怎么办,撤退!
同一位置的部署和撤退命令的 condition 数字尽量不要重叠,否则会秒上秒下
:::
@@ -481,6 +515,12 @@ icon: ri:game-fill
],
```
::: info 注意
当 maa 无法找到当前关卡对应的定制作战策略时,会自动执行通用作战策略
当 maa 对当前关卡名称识别失败后,不会执行任何作战逻辑
:::
### 对某个干员打法有特殊理解?——精细化操作特定干员
请将这位干员单独分组
@@ -491,7 +531,7 @@ icon: ri:game-fill
仅使用一位干员也是可行的!使用 MAA 来凹单人通关吧(由于其他逻辑的不完善,可能性很低)
参考例子1.傀影肉鸽的棘刺 2.水月肉鸽的异德 3.萨米肉鸽的焰
参考例子1.傀影肉鸽的棘刺2.水月肉鸽的异德3.萨米肉鸽的焰影苇草/维什戴尔4.萨卡兹肉鸽的维什戴尔
## 肉鸽第三步——不期而遇类节点逻辑
@@ -503,9 +543,11 @@ icon: ri:game-fill
OCR 识别不期而遇事件名称,但是选项是操作固定的位置
没有识别到时间的话会点最下面的选项
事件名识别失败的话会点击选项类型图标(若有),或点最下面的选项
般只需要微调或者不调整(大佬都写好了嘛)
个常见的卡死原因就是选项类型的图标存在但选项不可选TODO
改进肉鸽逻辑时,一般只需要微调或者不调整(大佬都写好了嘛)
### 优化不期而遇选项的优先度
@@ -700,7 +742,7 @@ OCR 识别不期而遇事件名称,但是选项是操作固定的位置
- 焰影苇草 + 梓兰 + 泡普卡;
- 提丰 + 斑点 + 史都华德。
## 希望实现的逻辑(todo
## 希望实现的逻辑(TODO
### 自动编队逻辑
@@ -712,6 +754,8 @@ OCR 识别不期而遇事件名称,但是选项是操作固定的位置
比如可以实现前三层多战,后面的少战,这样发育会更好
比如识别节点间的连线来判断更优路径
### 技能保留
某格部署的干员,技能转好后等待 x 秒再开,方便对轴;可以写 Deploy_plan 下的 Skill_hold也可以写 Skill_hold_plan