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, 开源项目, 技术参考, 数据修复, 数据导入, 数据导出, 数据库管理, 数据比对, 数据结构, 数据逆向工程, 文件处理, 文件格式转换, 模板化工具, 游戏开发, 游戏数据, 游戏模组, 游戏维护, 社区工具, 逆向工具