风险页填的全是裸 ID,而「填了表里没有的 ID」是这类功能最常见的失败方式:
服务器照样回 returnCode: 1,客户端建池时静默跳过,看起来就是没生效。
- tools/gen_id_mapping.dart:读 Sinmai_Data/StreamingAssets/A0xx/<表>/<x>.xml,
按目录名升序合并、同 ID 后者覆盖(与 DataManager.LoadData 语义一致),
输出 data/id_mapping/{music,items,maps,gates,meta}.json。
ID 取 XML 的 <name><id>,不是目录名——目录名只是 dataName。
- 零依赖:自带一个只处理 XmlSerializer 那种规整结构的小扫描器,
不为此往依赖树里加 xml 包、也不搅动 pubspec.lock。
- 产物放 data/ 不放 assets/:目前没有运行时读取方,进 assets 会白白把
1.2MB 打进每个安装包。
用这份表顺手证实了三件事:musicId 11820 在曲表里根本不存在(11819、11821
也不在),所以它不是万花筒锁——lockType=4 的歌全表只有 6 首;角色 1001 同样
不存在,合法 ID 从 101 起;万花筒只有 gate 1~6,客户端 ForceAddMasterKey
写死的 gateId 7 在这份数据里没有对应行。
23 lines
359 B
JSON
23 lines
359 B
JSON
{
|
|
"generatedFrom": "G:/Package",
|
|
"dataDirs": [
|
|
"A000",
|
|
"A005",
|
|
"A011",
|
|
"A015"
|
|
],
|
|
"counts": {
|
|
"music": 1367,
|
|
"map": 168,
|
|
"gate": 6,
|
|
"course": 6,
|
|
"key": 6,
|
|
"itemKind1": 398,
|
|
"itemKind2": 3000,
|
|
"itemKind3": 1046,
|
|
"itemKind9": 983,
|
|
"itemKind10": 25,
|
|
"itemKind11": 345,
|
|
"itemKind12": 11
|
|
}
|
|
} |