Files
bd2/GAME_CONFIGURATION.md
T

52 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 服务端游戏规则配置
`game.json` 是服务端统一的游戏规则配置入口。后续可配置的游戏规则在此按功能分组扩展;认证、资源源、版本清单仍分别使用现有配置文件。
发布部署时,将文件放在 `bd2server.exe`(Linux/macOS 为 `bd2server`)旁。开发入口读取仓库根目录的同名文件。可修改的规则在重启后生效,起始章节只在首次初始化时选择。客户端无需配置此文件。发布包只在服务端包中提供 `game.json` 和本指南。
默认内容:
```json
{
"schema_version": 1,
"story": {
"start_pack_id": 21
},
"gacha": {
"include_collaboration_ur_weapons": false
}
}
```
## 联动 UR 专武
`gacha.include_collaboration_ur_weapons` 必须是 JSON 布尔值:
| 值 | UR 必得装备券的结果 |
|---|---|
| `false`(默认) | 使用当前 GameData 的原始 UR 必得装备券池。 |
| `true` | 在原池中加入 14 种联动角色 UR 专武(装备 ID `943200` 至 `943213`)。 |
开关仅作用于 UR 必得装备券。新增装备沿用同星级原有装备的单件权重,原有星级权重规则保持不变;加入候选后,同星级内的概率按扩展后的权重总和计算。该设置只改变券池候选,不会直接发放装备。专武绑定角色,同一角色的多个服装共用专武。
## 服务器的起始章节
`story.start_pack_id` 接受整数 `21` 或 `1`,省略时默认 `21`。
| 值 | 本服玩家的开局 |
|---|---|
| `21`(默认) | 从当前客户端默认的店长篇开始,使用该篇的任务和教学流程。 |
| `1` | 从旧主线第一章开始,使用当前 GameData 中该章的开场剧情、初始任务及购卡奖励。 |
请在服务器首次启动前确定此值。第一次成功初始化时,服务端会在 SQLite 中持久保存服务器的起始章节;此后配置必须与保存值一致。改成另一个章节会拒绝启动,并在日志中明确提示原值与配置值,不会覆盖原设置或玩家进度。首次启动失败并回滚时不会锁定选择,可以修正配置后重试。
这项限制只针对 `story.start_pack_id`;其他游戏规则仍可修改。升级和恢复服务器时应一起保留配置与数据库,不能通过删除数据库来切换开局,这会删除玩家存档。
后续官方若将旧主线与店长篇重构合并为一条剧情线,再重新评估此限制与迁移方案。重构发布日期尚未确认。
## 校验与升级
`schema_version` 当前必须为 `1`。字段拼写错误、未知字段、错误类型(例如字符串 `"true"`)、`null`、格式错误或文件末尾多出的 JSON 都会使服务端拒绝启动,并在错误中给出文件路径。省略 `gacha` 或此布尔开关时使用 `false`。
旧安装缺少整个文件时使用默认规则,服务端不会自动写入或覆盖文件。升级服务端时保留服主已经修改的 `game.json`;新发布包中的文件可用于比对新增字段。Docker 部署可将自定义文件只读挂载到 `/app/game.json`,重启容器后生效。