KiroZYH/tfm2db-field-notes

GitHub: KiroZYH/tfm2db-field-notes

为《英雄联盟:激斗峡谷》2模组开发者提供模板化的CSV数据转换和数据库反向工程工具。

Stars: 1 | Forks: 0

# TFM2DB 实地笔记 TFM2DB 的实地笔记和小的 CSV 往返工具,用于 Teamfight Manager 2 `.tfm2db` 反向工程。 此存储库旨在为模组工具作者提供一个小型技术参考。这些工具是基于模板的修补程序,而不是完整的数据库生成器。 ## 内容 ``` TFM2DB_FIELD_NOTES_FOR_MODDERS.md Field layout notes and offset details tools/template_roundtrip/ Template-based CSV export/import tools ``` 往返工具包括: ``` tools/template_roundtrip/tfm2db_to_csv.py tools/template_roundtrip/csv_to_tfm2db.py ``` `tfm2db_to_csv.py` 写入: ``` players.csv teams.csv coaches.csv ``` ## 使用方法 ``` cd tools/template_roundtrip python tfm2db_to_csv.py path/to/template_database.tfm2db original_csv python csv_to_tfm2db.py path/to/template_database.tfm2db original_csv edited_csv output.tfm2db --dry-run python csv_to_tfm2db.py path/to/template_database.tfm2db original_csv edited_csv output.tfm2db ``` `csv_to_tfm2db.py` 比较 `original_csv` 与 `edited_csv`,将受支持的固定宽度字段修补回原始模板数据库,然后更新 TFM2 包装器的 gzip 长度和 CRC32。 编辑后的 CSV 应基于匹配的模板数据库和模板 CSV 导出。不要更改未经测试的结构化字段,例如记录计数、名称、名称长度、标志字符串或语言向量长度。这些可能需要重建偏移量,并且故意位于此第一个导入器之外。 ## 主要注意事项 - 已知的记录类型: - `kind = 5`:运动员/玩家 - `kind = 3`:工作人员/教练 - `kind = 19`:团队 - 运动员/玩家尾部字段应从动态偏移量中读取,因为语言/沟通向量长度可能不同。 - 导出器解码可见的玩家统计数据、角色适应性、沟通适应性、动态潜力字段、粉丝、团队分配、年龄、KRW 的原始每周薪资和合同日期字段。 - 导出器还包括具有角色、年龄、KRW 的原始每周薪资、合同日期、命名教练统计数据和原始 KRW 团队财务列的教练行。 - 导入器可以从编辑后的 CSV 文件中修补受支持的玩家、教练和团队字段回匹配的模板 `.tfm2db`。 这些笔记基于本地反向工程和游戏编辑器比较。请将启发式部分视为参考资料,而不是正式的文件格式规范。 ## 致谢 感谢 [eminyilmazz/tfm2-real-teams-and-rosters](https://github.com/eminyilmazz/tfm2-real-teams-and-rosters) 发布他们的 TFM2DB 模组工具。他们的 Go `unpack`、`repack` 和 `validate` 工作流程是包装器/gzip 处理、基于 CSV 的阵容编辑、标题长度/CRC 更新、LPString 扫描、自定义标志验证和通用工具结构的有用参考点。 他们的运动员解析代码也有助于将此项目指向包含角色适应性、语言/沟通值、合同日期、类似薪资的值和年龄的玩家尾部区域。然后,此存储库中的字段布局与受控游戏编辑器编辑进行了重新核对,这导致了在此处用于语言向量、潜力值、粉丝、原始每周薪资值和相关字段的动力偏移模型。 ## 许可证 MIT。请参阅 `LICENSE`。
标签:CRC校验, CSV工具, DNS解析, gzip压缩, Teamfight Manager 2, 开源项目, 技术参考, 数据修复, 数据导入, 数据导出, 数据库管理, 数据比对, 数据结构, 数据逆向工程, 文件处理, 文件格式转换, 模板化工具, 游戏开发, 游戏数据, 游戏模组, 游戏维护, 社区工具, 逆向工具