【发布】L2 Editor —— 天堂2 l2jmobius服务端xml / 客户端dat数据桌面编辑器(AI翻译)
Tauri + Rust + React 打造,World 地图可视化编辑、技能 dat 往返加密、贴图提取一应俱全
GITHUB库地址
https://github.com/RumDum3/l2-editor
⚠ 使用前必读:先备份你的客户端和服务端!
L2 Editor 会 原地写回 你的 .dat 和 .xml 文件。程序已尽量做了防护(原子写入、保存时在 .dat 旁生成 .bak 备份),但 Bug 难免, 写入中断就可能把资源文件写坏。
? 把你的 system/ 和 data/ 文件夹先完整拷一份到安全地方,再拿编辑器去开它们。
? 这东西能干什么
| 模块 | 说明 | | 世界视图 | 浏览雷达地图,把服务端 Zone、NPC 刷新点、练级区按真实世界坐标叠在地图上 | | 几何编辑 | 直接在地图上拖拽刷新点、练级区标记、Zone 多边形顶点,拖完即生效 | | 技能编辑器 | 对 Skillgrp / SkillName / 技能树相关 dat 做往返编辑,保存时自动重新加密,不破坏文件 | | 通用 dat 编辑器 | 导入任意受支持的 .dat,按条件检索行,用定位器精准改字段再写回 | | Tier-2 dat | 练级区、职业树、技能附魔表、好友数据 | | 贴图提取 | 解密并解码 .utx 贴图(DXT / P8 / RGBA),供地图视图和查看器使用 |
? 兼容性:按版本(Chronicle)适配
自 0.2.0 起,内置 Prelude → Orc Village 共 42 个版本清单。客户端 dat、NPC 字段、技能校验规则都会按当前版本实际支持的内容开关;没测透的版本大多优雅降级,而不是直接崩。
① 各层覆盖情况
| 层级 | 覆盖情况 | | 加密 Cipher | 全部 Lineage2Ver 系列:111 / 120 / 121 / 411–414 / 611–614 / 811 / 821,横跨 C4 → Essence,由 dat_engine 负责 | | 服务端 XML(L2J data) | 与版本无关,L2J Mobius 各包格式一致,通吃所有 L2J | | 逐版本 dat 结构表 | dat_engine/data/structure/ 带 31 个版本 schema XML(C4 → Orc Village);C4 之前走尽力解析兜底 | | 技能校验规则库 | Helios 及以后准确完整;更早版本只做结构校验(枚举 / 处理器清单对不上老客户端) | | 骨骼网格查看器 | 仅 Superion v133 验证通过,其他版本大概率要调格式才能渲染 | | 协议探测 (-L2ProtocolVersion) | Ertheia 及以后可用;老客户端不认该参数,去设置里手动指定版本即可绕过 |
② 实测矩阵
| 环境 | 支持度 | | 客户端:Superion,协议 502 | ✅ 完整覆盖 | | 服务端:L2J Mobius Superion | ✅ 完整覆盖 | | Helios 之前(Awakening / Ertheia / Underground) | dat 编辑可用,技能校验自动关闭 | | Awakening 之前(C4 → High Five、Gracia 等) | 服务端 XML 正常;客户端 dat 为尽力解析 |
? 用到了上面没列的组合?开 issue,附一份 sample dat + 协议版本(或设置里选的版本),作者会考虑加支持。
? 技术栈
- 前端:React 19 · TypeScript · Vite · Tailwind · Leaflet
- 后端:Rust · Tauri 2 · rusqlite(缓存)· quick-xml · rayon
- 加解密 / 格式核心:dat_engine(独立 Rust crate,负责 Lineage2Ver 1xx/4xx/6xx/8xx 加密与 schema 驱动 dat 格式)
? 快速开始
环境要求:较新的 Rust 工具链 + Node 20+ + pnpm
- pnpm install
- pnpm tauri dev # 开发模式运行
- pnpm tauri build # 打包发布版二进制
复制代码
启动后,在 设置 里指定客户端目录和服务端数据目录,打开 World(世界) 标签页就能开始使用了。
? 致谢
- MobiusDevelopment/l2clientdat:客户端 dat 加解密与结构定义的原始参考实现,dat_engine 的 Rust 移植是它的直系后代。
- L2J / L2J Mobius 社区:服务端数据格式来源于这个生态的长期积累。
? 参与贡献
- 大改动先开 issue 讨论,别一上来就大重构。
- 代码风格:TS 用 Biome(pnpm check),Rust 用 cargo fmt,提交前跑一遍。
- 验证:暂无正式测试套件,PR 里请写清你是怎么验证的。
- 注释:代码尽量自解释,要留就一行说清。
- 提交信息:推荐约定式(不强制),如 feat: / fix: / world: ...
- git clone https://github.com/<你的fork>/l2_editor.git
- cd l2_editor
- pnpm install
- pnpm tauri dev
复制代码
? 许可证
GNU GPL v3.0
出于项目血统:dat_engine 移植自 MobiusDevelopment 团队早先以 GPL 发布的工作,L2J / L2J Mobius 同样采用 GPL-3.0。 参与贡献即表示你同意代码也以 GPL-3.0 提供。
项目状态:早期开发中,边角粗糙、可能有破坏性变更,生产环境慎用。
|