所有格式页面 ↓
教程与参考

TA 与横扫千军:王国——格式差异

来自 coreprime/kbot @ 0ab97bf · 在 GitHub 上编辑

本页汇总了《横扫千军》(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

参考目录位于单独的仓库中:


另见