Update Live-streaming code (auto-daily features)
This commit is contained in:
+179
@@ -0,0 +1,179 @@
|
||||
# 自动每日与队伍管理
|
||||
|
||||
本功能要求 BetterGI `0.63.0` 或更高版本,系统会通过以下命令行入口启动托管的一条龙配置:
|
||||
|
||||
```text
|
||||
BetterGI.exe startOneDragon <配置名称>
|
||||
```
|
||||
|
||||
## 弹幕指令
|
||||
|
||||
```text
|
||||
自动每日
|
||||
自动每日 秘境 <秘境正式名称或俗称>
|
||||
自动每日 地脉 <经验|摩拉> <国家>
|
||||
自动每日 委托
|
||||
|
||||
切换队伍 <队伍名称>
|
||||
更换队伍 <队伍名称>
|
||||
修改队员 <队员1> <队员2> <队员3> <队员4>
|
||||
更换队员 <队员1> <队员2> <队员3> <队员4>
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```text
|
||||
自动每日
|
||||
自动每日 秘境 风本
|
||||
自动每日 秘境 少女套
|
||||
自动每日 地脉 经验 蒙德
|
||||
自动每日 地脉 摩拉 枫丹
|
||||
自动每日 委托
|
||||
切换队伍 永冻队
|
||||
修改队员 神里绫华 申鹤 枫原万叶 珊瑚宫心海
|
||||
修改队员 神里绫华、申鹤、枫原万叶、珊瑚宫心海
|
||||
```
|
||||
|
||||
队员支持空格、英文或中文逗号、顿号、斜杠分隔。连续输入四个角色名时,只有能够唯一拆分为四名已知角色才会执行。角色必须存在于 BGI 的 `AutoSwitchRoles` 角色数据中,且四人不能重复。新版脚本同时支持 `combat_avatar.json` 中维护的角色别名。
|
||||
|
||||
## 每日流程
|
||||
|
||||
每日流程固定为:
|
||||
|
||||
```text
|
||||
领取邮件 > 合成树脂 > 可选其他任务 > 领取尘歌壶奖励 > 领取每日奖励
|
||||
```
|
||||
|
||||
- 直接发送 `自动每日` 时不插入其他任务。
|
||||
- 秘境模式一直执行到树脂耗尽或 BGI 报错。
|
||||
- 地脉模式默认在执行前合成树脂,然后一直执行到树脂耗尽或 BGI 报错。
|
||||
- 委托模式执行配置组“每日委托”。
|
||||
- 委托启用“使用当前队伍”时,正式任务启动前会先读取游戏当前队伍预设名,并写入 AutoCommissionNova 的战斗与元素采集队伍配置;该准备步骤不进入正式计费任务。
|
||||
- 其他任务报错时,由 BetterGI 一条龙继续执行后面的尘歌壶和每日奖励任务。
|
||||
- 一条龙完成后复用现有配置组的计费、三分钟保留队列和任务结算规则。
|
||||
|
||||
当 `daily.ley_line_craft_resin_before` 设为 `false` 时,只有地脉模式会跳过“合成树脂”;其他每日模式仍会执行该步骤。
|
||||
|
||||
## 项目配置
|
||||
|
||||
`config/config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"daily": {
|
||||
"one_dragon_template": "默认配置",
|
||||
"managed_one_dragon_name": "直播系统自动每日",
|
||||
"ley_line_craft_resin_before": true,
|
||||
"commission_use_current_party": true,
|
||||
"current_party_read_timeout_sec": 45
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| `one_dragon_template` | BGI `User/OneDragon` 中作为来源的一条龙配置名,不含 `.json` |
|
||||
| `managed_one_dragon_name` | 系统每次覆盖生成并通过命令行启动的配置名 |
|
||||
| `ley_line_craft_resin_before` | 地脉模式执行前是否插入“合成树脂” |
|
||||
| `commission_use_current_party` | 委托模式是否读取游戏当前队伍名并覆盖 AutoCommissionNova 的战斗与元素采集队伍 |
|
||||
| `current_party_read_timeout_sec` | 读取当前队伍名称的超时时间,限制为 10 至 120 秒 |
|
||||
|
||||
托管配置每次执行都会从模板重新生成。模板中的合成地区、冒险家协会地区、战斗队伍、好感队和尘歌壶设置会保留,系统会强制把完成动作设为“无”,防止任务结束后退出游戏或关机。
|
||||
|
||||
秘境俗称维护在 `config/domain_aliases.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"铭记之谷": ["风本", "少女套"]
|
||||
}
|
||||
```
|
||||
|
||||
键必须是当前 BGI `AutoDomain/settings.json` 中存在的正式秘境名。值是俗称列表。同一俗称不能指向多个秘境;文件在每次指令执行时读取,修改后无需重启本项目。
|
||||
|
||||
## BetterGI 配置
|
||||
|
||||
### 1. 一条龙模板
|
||||
|
||||
在 BetterGI 中创建一条龙配置,名称与 `daily.one_dragon_template` 相同,默认是“默认配置”。在模板中配置:
|
||||
|
||||
- 合成浓缩树脂使用的地区。
|
||||
- 领取每日奖励使用的冒险家协会地区。
|
||||
- 自动秘境和自动地脉需要的战斗队伍、好感队及其他树脂选项。
|
||||
- 尘歌壶进入方式和奖励领取设置。
|
||||
|
||||
模板的任务勾选和顺序不会直接采用,系统会按固定流程重新生成托管配置。
|
||||
|
||||
### 2. 自动秘境
|
||||
|
||||
- 安装并配置 BGI 的 `AutoDomain` 脚本。
|
||||
- 在 BGI 自动战斗配置中选择可用战斗策略,并确保策略文件存在于 `User/AutoFight`。
|
||||
- 系统会关闭一条龙周计划覆盖并写入解析后的正式秘境名。
|
||||
- 系统会永久将 `User/config.json` 中 `autoDomainConfig.specifyResinUse` 修正为 `false`,以树脂耗尽为停止条件。
|
||||
|
||||
### 3. 自动地脉花
|
||||
|
||||
- 在 BGI 中配置自动地脉花使用的战斗策略和队伍。
|
||||
- 系统会把地脉类型和国家写入星期一至星期日的全部字段。
|
||||
- 系统会开启树脂耗尽模式,并关闭“运行次数取小值”。
|
||||
- 系统会永久将 `autoLeyLineOutcropConfig.isGoToSynthesizer` 修正为 `false`。是否在地脉前合成树脂只由本项目的 `ley_line_craft_resin_before` 控制。
|
||||
|
||||
支持国家:蒙德、璃月、稻妻、须弥、枫丹、纳塔、挪德卡莱。
|
||||
|
||||
### 4. 每日委托配置组
|
||||
|
||||
在 BetterGI 的配置组页面创建“每日委托”,加入并启用实际完成每日委托所需的项目。系统不会自动创建此配置组,缺失或没有可执行项目时会拒绝启动自动每日,且不会停止当前任务。
|
||||
|
||||
使用 `AutoCommissionNova` 时,首次必须在 BetterGI 中手动运行并完成配置面板,至少保存用户配置和战斗策略。启用“使用当前队伍”后,战斗队伍与元素采集队伍都可以留空;未启用时,这两个队伍名称都必须保存。确认生成以下文件后,再关闭“启动时显示配置面板”:
|
||||
|
||||
```text
|
||||
User/JsScript/AutoCommissionNova/Data/user-config.json
|
||||
```
|
||||
|
||||
系统会在启动“自动每日 委托”前校验该文件。启用当前队伍后,项目会自动同步自维护脚本:
|
||||
|
||||
```text
|
||||
integrations/LiveCurrentParty
|
||||
```
|
||||
|
||||
系统自动生成并覆盖托管配置组“直播系统读取当前队伍”,通过请求 ID 对应的 `status.json` 获取游戏当前队伍预设名,然后只修改:
|
||||
|
||||
```text
|
||||
AutoCommissionNova/Data/user-config.json
|
||||
party.global.battleTeamName
|
||||
party.global.elementTeamName
|
||||
```
|
||||
|
||||
不会修改 `AutoCommissionNova` 的任何源码,因此第三方脚本更新不会覆盖本项目逻辑。两个字段使用同一次 OCR 得到的当前队伍预设名。
|
||||
|
||||
### 5. 切换队伍配置组
|
||||
|
||||
在 BetterGI 创建配置组“切换队伍”,加入并只启用一个文件夹名为 `AcceleratedEditionSwitchParty` 的 JavaScript 项目。系统会在执行前更新该项目的 `jsScriptSettingsObject.partyName`。
|
||||
|
||||
### 6. 修改队员配置组
|
||||
|
||||
在 BetterGI 创建配置组“修改队员”,加入并只启用一个文件夹名为 `AutoSwitchRoles` 的 JavaScript 项目。系统会按顺序读取:
|
||||
|
||||
```text
|
||||
User/JsScript/AutoSwitchRoles/settings.json
|
||||
User/JsScript/AutoSwitchRoles/combat_avatar.json
|
||||
```
|
||||
|
||||
旧版脚本会从 `settings.json` 的下拉选项读取角色;`AutoSwitchRoles 6.7.0+` 的位置参数是文本框,系统会改为读取 `combat_avatar.json` 中的正式名称和别名。校验后更新配置组中的 `position1` 到 `position4`。
|
||||
|
||||
## 权限与计费
|
||||
|
||||
`daily`、`switch_party`、`edit_party` 默认权限与 `run` 相同:一级超管和已完成上号的二级队首。可以在后台“规则”页修改启停状态、别名和允许角色。
|
||||
|
||||
三个新功能都复用现有排队和计费规则。切换队伍与修改队员分别执行配置组“切换队伍”和“修改队员”,并按普通配置组的三分钟完成规则结算。
|
||||
|
||||
## 排障
|
||||
|
||||
- 提示找不到一条龙模板:检查 `User/OneDragon/<模板名>.json` 是否存在,且模板名与配置完全一致。
|
||||
- 提示秘境未知:检查 BGI `AutoDomain/settings.json` 和 `config/domain_aliases.json` 的正式名称。
|
||||
- 提示战斗策略不存在:在 BetterGI 中重新选择策略,并确认对应文件位于 `User/AutoFight`。
|
||||
- 提示配置组缺少 JavaScript 项目:检查配置组名称、项目的 `folderName` 和启用状态。
|
||||
- 提示 AutoCommissionNova 未完成首次配置:在 BGI 中打开配置面板并保存用户配置与战斗策略;关闭“使用当前队伍”时还需保存战斗队伍和元素采集队伍。
|
||||
- 提示读取当前队伍失败:确认当前场景允许打开配队界面;若 OCR 返回多个候选,查看 BetterGI 日志中的“当前队伍名称候选”记录。
|
||||
- 提示角色未知或有歧义:检查 `AutoSwitchRoles/settings.json` 或 `combat_avatar.json`,使用其中唯一对应的名称或别名,并用空格明确分隔四人。
|
||||
- BGI 启动失败:确认版本为 `0.63.0+`、`bettergi.exe_path` 和 `bettergi.work_dir` 正确,并查看 BetterGI 日志。
|
||||
- 一条龙执行中子任务报错:查看 BetterGI 日志确认后续“领取尘歌壶奖励”和“领取每日奖励”是否继续;本项目只在整条一条龙完成标记出现后结算。
|
||||
Reference in New Issue
Block a user