TA 与横扫千军:王国——格式差异
本页汇总了《横扫千军》(1997)与《横扫千军:王国》(1999)之间哪些相同、哪些相似、哪些不同。在两款游戏之间移植成果,或者决定你的工具需要支持哪款游戏时,它都能派上用场。
Tip
一句话总结。 TA:K 保留了 TA 的大部分容器格式(HPI、GAF、TDF、COB),但简化了外层封装(HPI v2 没有 XOR,没有单独的 weapons/ 目录,没有 2×3 的建造网格),并在此之上引入了全新的东西(4 个阵营、mogrium 经济、以施法为“武器”、按任务划分的 .kmp 压缩包)。
速查矩阵
| 格式 | TA | 横扫千军:王国 | kbot 中的状态 |
|---|---|---|---|
| HPI / UFO / CCX / GP3 压缩包 | v1——XOR 加密,每个文件多个块,块 ≤64 KiB | v2——明文封装,每个文件一个 SQSH 块,约 32 字节的文件头 | ✅ 两者均可读取;✅ 可写出 v1;❌ 不能写出 v2 |
.kmp 战役压缩包 |
不适用 | 改了扩展名的 HPI v2;打包每个任务的地图 + 脚本 + GAF | ✅ 可读取 |
| GAF / TAF 精灵图动画 | .gaf,调色板取自 palettes/palette.pal |
带调色板的 .taf(二进制格式相同),调色板取自按阵营区分的 .pcx;另有一种真彩色 .taf/.tsf 变体(16 位 ARGB,见 taf.md) |
✅ 全部可读取;✅ 可写出 GAF 和真彩色 TAF/TSF |
| PCX 图像 | unitpics/<name>.pcx 用作单位头像(96×96,带调色板) |
用作 .taf 旁边的 1×1 调色板载体 |
✅ 可读写 |
| PAL / ALP / LHT / SHD | 全局 TA 调色板 + 查找表 | 按阵营和按地形区分的调色板,大多放在 PCX 载体中;palettes/ 还为几乎每一个调色板都配有布局相同的 .alp(65,536 字节)和 .shd / .lht(8,192 字节)(共 41 套) |
✅ 两者均支持(kbot pal lookup --palette 接受 .pal 或 .pcx) |
| FNT 位图字体 | fonts/*.fnt,1bpp 字形 |
格式相同,字形集通常更大 | ✅ 可读取 |
| SCT 地图区块 | sections/<biome>/*.sct,供 TAE 编辑器使用的可复用图块块 |
不使用——TA:K 的图块系统不同 | ✅ TA;TA:K 不适用 |
| TNT 地图地形 | IDVersion == 0x2000,图块网格 + 高度图 + 地图物件 + 小地图 |
IDVersion == 0x4000(变体);总体结构相同,图块解码器不同 |
✅ TA;⚠️ TA:K(能读文件头,图块未解码) |
| TA:K 地图附属文件 | 不适用 | .ota(TDF 元数据)、.txt(描述)、.crt(二进制,用途未知) |
✅ .ota;— .crt/.txt |
| 3DO 模型 | 层级结构,各面使用调色板索引色或纹理 | 类似,但蒙皮模型不同;每个图元有一些额外字段 | ✅ TA;⚠️ TA:K(能加载,但运动学不同) |
| COB / BOS 单位脚本 | scripts/*.cob;基于栈的字节码 |
字节码格式和操作码相同;新增了一些 GET_UNIT_VALUE 端口 |
✅ 两者均支持 |
| TDF / FBI / OTA 文本配置 | 同一种 INI 结构的语法 | 语法相同 | ✅ 两者均支持 |
| 内联武器定义 | 否——武器放在 weapons/*.tdf 中,按名称引用 |
是——每个单位 FBI 中的 [WEAPON1]/[WEAPON2]/[WEAPON3] 子节 |
✅ 两者均通过 documentor 支持 |
| AI 配置文件 | ai/*.txt,使用 plan/weight/limit 指令 |
ai/*.txt,只有光秃秃的 weight/limit(没有 plan 块) |
✅ 两者均支持 |
| 建造菜单 | 静态的 gamedata/sidedata.tdf [CANBUILD] + 动态叠加的 download/*.tdf [MENUENTRY] |
按建造者划分的目录 canbuild/<builder>/<unit>.tdf,每个文件带 [Menu].Priority |
✅ 两者均支持 |
| 建造菜单网格 | 每页 2 列 × 3 行(BUTTON 0–5) | 每个建造者一个线性列表,按 Priority 排序 | — |
| 音效库关联 | 三层:FBI SoundCategory → gamedata/sound.tdf → sounds/*.wav |
soundclass= / soundcategory= 字段,解析方式不同 |
✅ TA 的关联方式;⚠️ TA:K 的关联方式有待撰写 |
| Smacker / ZRB 视频 | data/*.zrb(改了扩展名的 .smk) |
同样的 Smacker 格式,扩展名不同 | ✅ 两者均支持 |
| GUI 菜单 | .gui(格式与 TA:K 不同) |
.gui 以空白分隔的控件树;见 takgui.md |
⚠️ 只描述了 TAK;TA 的 .gui 尚未涵盖 |
图例: ✅ 完整支持 · ⚠️ 部分支持 · ❌ 不支持 · — 不适用或无计划
真正共通的部分
字节相同,解析器相同,Go 类型也相同:
- HPI 标记(
'HAPI')——每个压缩包容器都以它开头。 - TDF 语法——两款游戏都用同一个解析器解析 FBI/OTA/武器 TDF。字段名不同,但语法完全一致。
- COB 字节码——操作码、栈模型、信号掩码,以及 cob.md 中编目的每一个
0x10xxxxxx值,在两款游戏中都有效。 - Smacker 视频——
.smk/.zrb逐位相同;只是文件扩展名变了。 - 3DO 的层级概念——两款游戏都使用由命名部件组成的父/子/兄弟树、定点数坐标,以及按名称引用纹理的图元。
细微的差异(请仔细阅读)
- HPI 文件头布局。 v1 共 20 字节(5 × uint32)。v2 是 8 字节的前导部分 + 24 字节的子文件头。两者的前 8 个字节完全相同(标记 + 版本号),所以只支持 v1 的读取器能成功校验魔数,然后在其余部分上崩溃。见 hpi.md 中的 HPI v2。
- FBI 的经济字段。 TA:
BuildCostMetal=+BuildCostEnergy=。TA:K:单一的buildcost=(mogrium)。documentor 通过Unit.BuildMetal/BuildEnergy(TA)和Unit.BuildCost(TA:K)处理两者——见 types.go。 - 阵营代码。 TA:
ARM/CORE。TA:K:ARA/TAR/VER/ZON+CRE(Iron Plague)+MON/LIF/NPC。 - 武器原型。 TA:一堆布尔字段(
ballistic=1、lineofsight=1、guidance=1、beamweapon=1……)。TA:K:单一的type=Ballistic/Missile/Magical/Melee字符串。 - 伤害建模。 两者都在武器下使用一个
[DAMAGE]子节,带一个default=加上针对各个目标的覆盖值。TA:K 还在每个单位上使用damagecategory=(Human、Building、Magical)对大类抗性进行建模。
只有 TA 才有的
- HPI 压缩包中的多块文件载荷(“≤64 KiB 的块 + 大小表”模型)。
- HPI 的 XOR 加密(按位置变化的种子 + 变换后的密钥)。
download/*.tdf的[MENUENTRY]叠加,无需派生 sidedata.tdf 就能添加建造菜单条目。- 2×3 的建造菜单网格,
BUTTON取 0–5(从左上到右下)。 - 单独的
weapons/目录,存放按名称引用的 TDF。 - SCT(区块)编辑器格式——TAE 专用。
- 一个全局调色板(
palettes/palette.pal),所有资源都用它绘制,外加一套.alp/.shd/.lht表。横扫千军:王国则为每个阵营和每套地形各配一个调色板,其中大多数都带有布局相同的表。
只有横扫千军:王国才有的
- HPI v2,文件载荷简化为单个块。
- 用于建造菜单注册的
canbuild/<builder>/<unit>.tdf目录树(线性,没有网格)。 - FBI 中的内联
[WEAPONn]武器定义。 - mogrium 单一资源经济(
buildcost=,不分金属/能量)。 - 放在 1×1 PCX 空壳文件中的按阵营调色板,与
.taf动画文件放在一起。 - 魔法 / 施法单位(
arapries、vermage、zonsham),它们的武器是法术。 - 四(+1)个阵营: Aramon、Taros、Veruna、Zhon——外加《Iron Plague》资料片中的 Creon。
anims/buildpic/*.jpg——以 64×48 JPG 存放的单位头像(TA 用的是unitpics/中的 PCX)。.kmp战役任务 HPI v2 压缩包,把每个任务的地图与任务脚本打包在一起。- 加载大多数改过的文件时必须使用命令行参数
-disablecavedogverification。
各页面的差异——在哪里找到每款游戏的内容
凡是涉及 TA:K 特有内容的格式页面,都有一个明确标注的“横扫千军:王国”小节。速查索引:
| 页面 | TA:K 小节 |
|---|---|
| hpi.md | 横扫千军:王国 HPI v2,完整的十六进制解析见附录——Jersey.hpi |
| ai.md | 横扫千军:王国——没有 plan 的配置文件 |
| takgui.md | 整页都只讲 TA:K |
| takmap.md | 整页都只讲 TA:K |
参考目录位于单独的仓库中:
coreprime/reference-ta——278 个单位、199 种武器、45 个建造者。coreprime/reference-tak——203 个单位、198 种武器、32 个建造者。
另见
internal/documentor——负责两款游戏数据提取的 Go 包。- 常见陷阱——各游戏特有的坑,集中在一处。
- 模组教程——目前只涵盖 TA;TA:K 的内容是已知的空白。
- 术语表——跨游戏的术语参考。