40250 classic: G1 integrate W4 (§9.1 map BGM selection, §9.2 background volume save/restore)
Doc conflicts resolved by W0: all four 增量 50 change-log bullets kept, W4 C.5 batch record appended. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014yvAPqPivoY7vmBbzgqK4W
This commit is contained in:
+17
-1
@@ -59,7 +59,7 @@
|
||||
| W1 协议 / 账号会话 | 🟡 | 增量 50:§1.5 版本包按 locale 分支(EUROPE 发 `CG_CLIENT_VERSION2` 0xf1 + `"1215955205"`,其余发 0xfd + `MT_BUILD_TIMESTAMP`)、可执行名 setter;§1.10 `text_codec.h` UTF-8 安全定长文本裁剪 + `net_text_codec_test`,会话侧所有定长 name/sign/comment 填充改走 `to_wire()`;§2.2 `GC_CHARACTER_ADD` 按 invisible-race 丢弃 / PC·NPC 暂存 `m_pending_actor` / 其余即时 `mut_spawn`(名字取自 npclist.txt),`GC_CHAR_ADDITIONAL_INFO` 无暂存则记录并丢弃、命中则合并 9 字段 `mut_spawn_full` 后清表 | 真实 locale codepage 转码、真实双连接、enter delay;GDScript 名称长度校验统一(G1 已收) |
|
||||
| W2 实体 / 世界 / 战斗 | 🟡 | §2.1 两层模型(`EntityStore` 纯数据层 + `net_world.gd` 每帧 `_update_visibility()` 按 `CHAR_STAGE_VIEW_BOUND` / `AFFECT_SHOW_ALWAYS` / `IsWall` 建 / 淡出节点)、§2.3(`mut_spawn`→`mut_spawn_full` 整行替换 + 节点销毁重建 + 上下坐骑保坐标)、§2.4(点数快照截断 / 尾部清零 + 单索引边界)、§2.5(`mut_affect_flags` 两段拼装 + 参考调用序节点刷新)已落地并回归(增量 50) | 远服 40250 端到端可见性 / VID 复用 / affect 表现验收;`state_flags` 表现层枚举与眩晕 / 隐身等表现 |
|
||||
| W3 玩法 UI / 输入 | 🟡 | 多数窗口、背包 / 任务 / 社交、键位和输入已有首版;§8.6 数字键 / F1–F4 / Ctrl+数字入口已收敛;**§8.3 帮助窗(`help_ui.gd` = `helpwindow.py` uiscript + `uiScriptLocale.HELP_*` 逐字,`H` 键 / ESC 菜单 `help_button` 入口,`help_ui_test` 绿)已落地** | §8.6 剩余逐行键位与表情包;帮助窗视觉 / `.sub` 贴图与真服未验证 |
|
||||
| W4 渲染 / 资产 / 音频 | 🟡 | GR2 / `.msa` / `.mse`、地图 / 水体 / 天气 / BGM 部分链路已有;`bgm_director.gd` 消费点已就位 | §9.1 地图 BGM 曲目解析 + 音量、§9.2 后台恢复曲目、§9.3 生命周期单一属主 |
|
||||
| W4 渲染 / 资产 / 音频 | 🟡 | 增量 50:§9.1 地图 BGM 选曲(服务端名优先 / 回落 `musicInfo.fieldMusic` / 默认音量 0.02 / `world_reset` 重跑)在 `bgm_director.gd` 落地,新增 `musicinfo.gd`;§9.2 `Audio.save_volume/restore_volume` + `app_lifecycle.gd` 后台静音存恢复(不清 `_bgm_name`);§9.3 设计已确认、落地推迟到 Phase 2;`bgm_test` + 3 项回归全绿 | §9.3 由 W0 在 Phase 2 落地(`AppFlow` 单一属主);BGM 真服验收待 40250 服务端 |
|
||||
| W5 打包 / 发布 / 验收 | ⬜ | 已有 Godot 导出配置和构建入口 | 自包含资源包、Intel / Apple Silicon、签名和 Mac App 验收 |
|
||||
|
||||
### 进度同步是交付条件
|
||||
@@ -178,6 +178,22 @@
|
||||
> `system_menu_ui_test` / `gamescene_test` / `ui_test`(附加 `system_option_ui_test` /
|
||||
> `char_status_ui_test`)全绿;本 worktree 无 `build/`,未跑 C++ `ctest`。视觉 / `.sub` 贴图
|
||||
> 与真服未验证。
|
||||
> - **2026-09-02 增量 50(Phase 1 W4:地图 BGM / 音频 / 生命周期)**:落地
|
||||
> [`CLIENT-GAP-FIX.md`](CLIENT-GAP-FIX.md) §9.1 §9.2,§9.3 仅确认设计。§9.1:`bgm_director.gd`
|
||||
> 补齐「地图 → 曲目」解析——服务端 `bgm_changed(name, volume)` 名非空即播;名为空回落
|
||||
> `musicInfo.fieldMusic`(`METIN2THEMA = "M2BG.mp3"`);`volume < 0`(服务端未下发,
|
||||
> `GC_MAIN_CHARACTER3_BGM`)用默认 `1/5*0.1 = 0.02`,否则用服务端值;应用音量在
|
||||
> `play_bgm()` 淡入之前(对标 `game.py:190` 先 `SetMusicVolume/SetSoundVolume` 再
|
||||
> `FadeInMusic`);连 `M2Client.world_reset` 在换图时重跑选曲。新增 `musicinfo.gd`
|
||||
> (`METIN2THEMA / loginMusic / createMusic / selectMusic / fieldMusic` 五常量 +
|
||||
> `save/load_last_play_field_music` → `user://BGM/lastplay.inf`)。§9.2:`Audio` 新增
|
||||
> `save_volume() / restore_volume()`(字段名对齐参考 `m_fBackupMusicVolume /
|
||||
> m_fBackupSoundVolume`)与 `set_music_volume()`;`app_lifecycle.gd` 进后台改为
|
||||
> `save_volume()` + 静音(不再 `stop_bgm()`),回前台 `restore_volume()`,`_bgm_name`
|
||||
> 全程不清空,同一首继续播。§9.3:`AppLifecycle` 目前由 `GameScene` 自建、`M2Client`
|
||||
> 自带 `NOTIFICATION_*`;目标设计(`AppFlow` 单一属主、`M2Client` 只留 `suspend/resume`)
|
||||
> 已确认,落地推迟到 Phase 2 / W0。新增 `bgm_test.gd`;`bgm_test`、`gamescene_test`、
|
||||
> `netplay_test`、`p9_test` 全绿;无 C++ 改动。真服 BGM 验收待 40250 服务端。
|
||||
> - **2026-09-02 增量 49(W0 接口冻结批次)**:为 Phase 1 的 4 个并行工作流一次性落地跨工作流
|
||||
> 共享文件的骨架,冻结接口后再拆分。`EntityStore`:`Entity` 补 `empire / affect_flags /
|
||||
> owner_vid / state_flags` 字段;新增 `mut_spawn_full()`(§2.3 两包合并的单次落地入口)、
|
||||
|
||||
Reference in New Issue
Block a user