Records the root/uiscript/locale comparison: npclist, msm contents and motion/combo registration match; msm location differs; item_proto and mob_proto use a different record layout and TEA instead of XChaCha20, so proto.cpp cannot read them; pack contents not yet compared. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
42 lines
2.8 KiB
Markdown
42 lines
2.8 KiB
Markdown
# 40250 1:1 移植队列
|
||
|
||
路线与决定见 `docs/PORT-PLAN.md`,工作方法见 `.agents/skills/metin2-40250-parity-audit/SKILL.md`。本文件只放批次和队列,不写每轮叙述(每轮结果记在
|
||
`audit/port-map/**` 和 `audit/history.jsonl`)。2026-09-22 之前的按分支修复记录见本文件的 git 历史。
|
||
|
||
实时剩余量与下一批候选:
|
||
|
||
```bash
|
||
python3 .agents/skills/metin2-40250-parity-audit/scripts/port_map.py status
|
||
python3 .agents/skills/metin2-40250-parity-audit/scripts/port_map.py queue --limit 20
|
||
```
|
||
|
||
## 批次
|
||
|
||
| 批次 | 内容 | 状态 |
|
||
| --- | --- | --- |
|
||
| 0 | 工具:参考根解析、缺失文件报错、`port_map.py`、构建/测试入口 | 完成 2026-09-22 |
|
||
| 1 | 删除只被自身测试引用的 `project/*_system.gd` 与其 `test_*_parity.gd`,清除 manifest 中对应证据 | 完成 2026-09-22(106+106 个文件) |
|
||
| 2 | P0 角色/移动单元,移植到 `extension/src/port/<Lib>/<File>`(并行 worktree) | 未开始 |
|
||
| 2P | CPython 2.7.18 静态编入 libmtgodot(macOS → Android APK → iOS),见 `docs/PYTHON-EMBED-EVAL.md` | 未开始(Android 独立程序已验证 b02c49bb) |
|
||
| 2D | 数据源切到 40250:msm 路径、proto(TEA + `TItemTable`)、EPK 解包比对、切资源根,见 `docs/PORT-PLAN.md` 第 5 节 | 未开始 |
|
||
| 3 | P1 战斗/技能 → P2 游戏阶段封包 → P3 物品;Python 层按 2P 的结论进行 | 未开始 |
|
||
| 4 | `NEEDS_LIVE` 真服验证批 | 未开始 |
|
||
|
||
## 批次 2 单元(互不共享实现文件的可并行)
|
||
|
||
实现位置一律是镜像文件 `extension/src/port/<Lib>/<File>.{h,cpp}`;下面列出的是需要删减旧逻辑的迁移来源。
|
||
第一个单元负责建立 `extension/src/port/` 与 `extension/src/platform/` 目录和 CMake 目标。
|
||
|
||
- [ ] `UserInterface/PythonPlayerEventHandler.cpp`(OnMove/OnMoving/OnStop 已在 `net_play.gd` 对齐,需迁到镜像文件;OnWaiting DIVERGENT)— `net_play.gd`
|
||
- [ ] `UserInterface/InstanceBaseMovement.cpp` + `UserInterface/InstanceBase.cpp`(同一 owner,串行)— `player_controller.gd`、`entity_store.cpp`
|
||
- [ ] `UserInterface/PythonPlayerInput.cpp` + `PythonPlayerInputKeyboard.cpp` + `PythonPlayerInputMouse.cpp` — `player_controller.gd`(与上一项串行)
|
||
- [ ] `GameLib/ActorInstanceMotion.cpp` + `ActorInstanceEvent.cpp` — 动作/事件
|
||
- [ ] `GameLib/ActorInstance.cpp` + `ActorInstancePosition.cpp` + `ActorInstanceRotation.cpp` + `ActorInstanceCollisionDetection.cpp`
|
||
- [ ] `UserInterface/PythonCharacterManager.cpp` — `net_world.gd`、`entity_store.cpp`
|
||
- [ ] `UserInterface/PythonPlayer.cpp`
|
||
|
||
## 已知参考位置
|
||
|
||
- Python UI 以 40250 的 `Client/Eternexus/root`(打包为 `pack/root.epk`,90 个文件)为准;仓库内 `assets/root`
|
||
是另一版本(m2dev),与 40250 有实质差异(如 `uitarget.py` 按钮表),不能作为参考。
|