fix: 装备属性面板避让逻辑 + 多项功能更新
- item_tooltip_view.gd: 新增 avoid_rect 属性,tooltip 与装备窗口重叠时自动推到左侧 - inventory_ui.gd: 悬停装备时传入窗口矩形作为避让区域 - 包含其他累积的功能开发和测试文件
This commit is contained in:
@@ -862,7 +862,9 @@
|
||||
仍未完成:
|
||||
|
||||
- [ ] 真实 TCP E2E 证明两次游戏连接,以及第二次连接确实命中 `GC_LOGIN_SUCCESS4` 的槽地址;
|
||||
- [ ] 移除 `MT_CLASSIC_ENTER_DELAY` 定时发送,改为 Loading/游戏窗口完成初始化后的明确发送点;
|
||||
- [x] 移除 `MT_CLASSIC_ENTER_DELAY` 定时发送;Classic Loading 在收到
|
||||
`GC_MAIN_CHARACTER` 后按 `GameWindow.LoadData() -> SendEnterGamePacket()` 的明确事件边界发送
|
||||
`CG_ENTERGAME`,并由 `m_entergame_sent` 保证重复主角包不会重复发送;
|
||||
- [ ] 真实服务器验证第二次 Warp TCP 连接、目标地址、重连后的 `GC_MAIN_CHARACTER` 定位和旧场景
|
||||
节点无残留;受限环境下 localhost bind 子测试自动 skip。
|
||||
- [ ] 地图 BGM / 天气配置、飞行物和 EffectLib 实例的完整按图清理与重建(当前已覆盖基础场景 / UI)。
|
||||
@@ -1023,10 +1025,10 @@ PHASE_LOGIN, PHASE_SELECT, PHASE_LOADING, PHASE_GAME, PHASE_DEAD}`
|
||||
- `Stage::Connecting`(HandShake)不发 `phase_changed` 给选人 UI;
|
||||
- `Stage::CharSelect` 一进入就自动推进到 `Stage::Loading`(等价
|
||||
`PythonNetworkStreamPhaseSelect.cpp:28` 的 `SetLoadingPhase`),
|
||||
当前仍保留 `set_auto_entergame_delay(1500)` 的兼容性定时发送,**这一步尚未完成**;
|
||||
后续应改为 Loading/游戏窗口完成初始化后的明确发送点;
|
||||
已移除兼容性定时发送;现在由 `GC_MAIN_CHARACTER` 对齐 Loading/游戏窗口完成初始化后的
|
||||
明确发送点;
|
||||
- `Stage::Loading` 入口清 `m_direct_enter`(等价 `PhaseLoading.cpp:190`)。
|
||||
5. `MT_CLASSIC_ENTER_DELAY` 环境变量连同 `m2_client.cpp` 的兼容性注入仍未删除——参考端
|
||||
5. `MT_CLASSIC_ENTER_DELAY` 环境变量及 `m2_client.cpp` 的兼容性注入已删除;参考端
|
||||
`CG_ENTERGAME` 的时机是 Python `game.py:207 net.SendEnterGamePacket()`,即
|
||||
**游戏窗口 Open() 的最后一步**,不是定时器。
|
||||
|
||||
|
||||
+5
-4
@@ -1306,15 +1306,15 @@
|
||||
> 选人 / 登录 / 进场发送结果已透传,未知 header 不再 Loading 启发式重同步,已知未处理包不再
|
||||
> 静默成功;已建立游戏连接后的断线回到 LOGIN。`net_classic_stream_test`、
|
||||
> `net_classic_session_test`、`netbridge_test`、`p10_test` 已通过(受限环境下本地 TCP bind 子测试自动
|
||||
> skip)。真实双连接 E2E、
|
||||
> `MT_CLASSIC_ENTER_DELAY` 移除和版本包 `0xf1` 仍未完成。
|
||||
> skip)。真实双连接 E2E 仍未完成;`MT_CLASSIC_ENTER_DELAY` 定时发送已移除,当前按
|
||||
> `GC_MAIN_CHARACTER` 事件发送 `CG_ENTERGAME`,版本包 `0xf1` 仍需真实服务端验收。
|
||||
> - **2026-09-02 增量 47(W0/W2 公共基础第一批实现)**:Classic `GC_WARP` 已改为严格按
|
||||
> `lAddr:wPort` 重连,不再用 `addr==0` 推断“同服原地移动”;连接会保留 login key / 已选角色槽,
|
||||
> 新增 `world_reset` 信号,并在 Godot 侧清理网络实体、地面掉落、PVP / 决斗、目标、交互窗和
|
||||
> 地图局部状态后重建地图、HUD 小地图、Atlas、环境和玩家位置。`net_entity_test`、
|
||||
> `net_classic_session_test`、`gamescene_test`、`p9_test`、`p2b_test`、`netbridge_test`、
|
||||
> `p8_test` 已通过;受限环境下 localhost TCP 目标测试仍自动 skip。真实 40250 换图 / 第二次
|
||||
> 连接 E2E、地图 BGM 选择和 `MT_CLASSIC_ENTER_DELAY` 仍待完成。
|
||||
> 连接 E2E 和地图 BGM 选择仍待完成;`MT_CLASSIC_ENTER_DELAY` 定时发送已移除。
|
||||
> - **2026-09-02 增量 50(Phase 1 W1)**:落地 `CLIENT-GAP-FIX.md` §1.5 / §1.10 / §2.2。
|
||||
> §1.5:`ClassicSession::send_client_version()` 改为 locale 分支——EUROPE(本项目 locale)发
|
||||
> `CG_CLIENT_VERSION2`(header `0xf1`,`CGClientVersion2` 67B,timestamp 固定 `"1215955205"`),
|
||||
@@ -2106,7 +2106,8 @@ Python 脚本;文档中出现的 `assets/root/*.py` 均属于本工程迁移
|
||||
1. **Classic DirectEnter 已接入,但仍未完成真实双连接验收。** 登录入口仍是 Auth → Game;
|
||||
角色列表保存每槽 `lAddr/wPort` 后,`M2Client.enter_game(index)` 会断开第一条游戏连接,
|
||||
按角色槽地址重连,并在 DirectEnter 的 SELECT 阶段发送 `CG_CHARACTER_SELECT`。
|
||||
`MT_CLASSIC_ENTER_DELAY` 和真实两次 TCP 连接验收仍待完成。见
|
||||
真实两次 TCP 连接验收仍待完成;`CG_ENTERGAME` 已改为在
|
||||
`GC_MAIN_CHARACTER -> GameWindow.LoadData()` 事件边界发送。见
|
||||
[`classic_session.cpp`](/Users/shenlei/Work/mt/metin2-client/extension/src/net/classic/classic_session.cpp)、
|
||||
[`m2_client.cpp`](/Users/shenlei/Work/mt/metin2-client/extension/src/net/m2_client.cpp)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user