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

快速入门——现在就能试的五件事

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

上周刚在 GOG 上买了 TA,五分钟前才装好 kbot,不知道从哪儿下手?试试这五条命令——每条用时不到一分钟,各自展示一种不同的格式。

以下命令都假定你已把 TA 安装目录注册为 kbot 上下文(见 kbot ctx):

kbot ctx add /path/to/total-annihilation --alias ta --game totala

1. 在网页浏览器中浏览游戏自带的每一个文件

kbot mount --server

在 http://localhost:8090 打开。随便点点——不用离开浏览器,就能预览 TNT、GAF、PCX、3DO 和 FNT。COB 脚本有语法高亮和控制流查看器。TDF/FBI/OTA 文件显示为可折叠的节树。

为什么值得一试:本指南中的其他每条命令,都只是资源浏览器功能中有针对性的一部分。从这里开始,等需要写脚本时再转到命令行。


2. 渲染一张战役地图

kbot tnt preview "maps/sub hunting.tnt" -t /tmp/sub-hunting.png
open /tmp/sub-hunting.png      # macOS — use `xdg-open` on Linux

它把地图物件精灵图(树木、岩石、金属矿点)合成到图块拼接图上,并根据配套的 .ota 画出带编号的起始位置标记。生成的 1.7 MB PNG 比内嵌的 252×252 小地图丰富得多。

格式细节见 tnt.md——每个字节都有交代。


3. 看看一个单位究竟做了什么

把编译后的字节码反编译回可读的 BOS 源码:

kbot cob decompile scripts/armkrog.cob | head -80

……这就是 Krogoth 的动画脚本。行走循环、武器后坐、死亡序列——全在里面。要看操作码级别的细节,就反汇编:

kbot cob disassemble scripts/armkrog.cob -s Walk -a

-a 参数会在相互对应的 JUMP / JUMP_IF_FALSE 指令之间画出 ASCII 箭头,让循环结构一目了然。

见 cob.md,包括完整的操作码参考和 get_unit_value 端口表。


4. 从任意压缩包中提取单个文件

无需展开整个游戏:

kbot hpi extract totala1.hpi -p "units/ARMCOM.FBI" -t /tmp/out
cat /tmp/out/units/ARMCOM.FBI | head

-p 接受通配符模式:-p "units/*.fbi" 取出所有 FBI;-p "*.bos" 抓取所有脚本源码。目标目录在需要时会自动创建。

连文件在哪个压缩包里都不知道的时候,就去问解析器:

kbot mcp --game-data $(kbot ctx path) &     # if MCP is configured
# or use the web UI's search box

见 hpi.md——其中包括对一个小压缩包逐字节的完整十六进制解析。


5. 把标准的 TA 调色板导出成一张可以留存的 PNG

kbot pal swatch palettes/palette.pal -o /tmp/ta-palette.png --cell 24
open /tmp/ta-palette.png

一个 16 × 16 的网格,包含游戏中的每一种颜色。在制作单位皮肤或挑选 HUD 颜色索引时,可以作为快速参考。左上角带阴影线的格子是索引 0(黑色),加阴影线是为了让它醒目;游戏在地形和背景中把它画成普通的黑色,精灵图则每帧各自选择自己的透明色键。

见 pal.md;关于横扫千军:王国如何通过 1×1 的 PCX 载体分发调色板,见 pcx.md。


下一步做什么?

  • 制作单位模组——跟着模组教程,大约 20 分钟就能发布一个自定义的 Arm Flash 变体。
  • 认识这一大堆文件——从格式参考索引开始。
  • 编写工具——每种格式都有 Go API。每个格式页面的“自己试试”提示框都给出了 formats/<x> 的导入路径。
  • 接入 AI 助手——kbot mcp 通过 MCP 把以上所有功能提供给 Claude Code、Claude Desktop、Cursor 等。见 README 中的 MCP 一节。