Todas as páginas de formatos ↓
Tutoriais e referência

Início rápido — cinco coisas para experimentar agora

Fonte: coreprime/kbot @ 0ab97bf · Editar no GitHub

Comprou o TA na GOG semana passada e instalou o kbot há cinco minutos, mas não sabe por onde começar? Experimente estes cinco comandos: cada um leva menos de um minuto e mostra um formato diferente.

Todos partem do princípio de que a sua instalação do TA está registrada como um contexto do kbot (veja kbot ctx):

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

1. Navegar no navegador por todos os arquivos que vêm com o jogo

kbot mount --server

Abre em http://localhost:8090. Explore à vontade: dá para pré-visualizar TNTs, GAFs, PCXs, 3DOs e FNTs sem sair do navegador. Os scripts COB têm realce de sintaxe e um visualizador do fluxo de controle. Os arquivos TDF/FBI/OTA aparecem como árvores de seções recolhíveis.

Por que vale a pena: todos os outros comandos deste guia são um recorte específico do que o explorador faz. Comece por aqui e passe para a linha de comando quando quiser automatizar alguma coisa com um script.


2. Renderizar um mapa da campanha

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

Sobrepõe os sprites dos elementos (árvores, rochas, jazidas de metal) ao mosaico de blocos e desenha os marcadores numerados das posições iniciais a partir do .ota que acompanha o mapa. O PNG de 1,7 MB gerado mostra muito mais do que o minimapa embutido de 252×252.

Veja tnt.md para os detalhes do formato — cada byte tem seu lugar.


3. Ver o que uma unidade realmente faz

Descompile o bytecode compilado de volta para código-fonte BOS legível:

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

…esse é o script de animação do Krogoth. Ciclo de caminhada, recuo das armas, sequência de morte: está tudo ali. Desmonte o script para ver os detalhes no nível dos opcodes:

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

A opção -a desenha setas ASCII entre as instruções JUMP / JUMP_IF_FALSE correspondentes, de modo que a estrutura dos laços fica visível num relance.

Veja cob.md, incluindo a referência completa de opcodes e a tabela de portas de get_unit_value.


4. Extrair um único arquivo de qualquer arquivo compactado

Sem desempacotar o jogo inteiro:

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

-p aceita padrões glob: -p "units/*.fbi" extrai todos os FBI; -p "*.bos" pega o código-fonte de todos os scripts. A pasta de destino é criada se for preciso.

Quando você nem sabe qual arquivo compactado contém o arquivo, pergunte ao resolvedor:

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

Veja hpi.md, que inclui um percurso hexadecimal completo, byte a byte, de um arquivo compactado pequeno.


5. Exportar a paleta canônica do TA para um PNG que você pode guardar

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

Uma grade de 16 × 16 com todas as cores do jogo. É útil como referência rápida quando você trabalha na textura de uma unidade ou tenta escolher o índice de uma cor para o HUD. A célula hachurada no canto superior esquerdo é o índice 0 (preto), hachurada para se destacar; o jogo a desenha como um preto comum no terreno e nos fundos, e os sprites escolhem a própria cor transparente em cada quadro.

Veja pal.md e, para saber como o TA: Kingdoms distribui paletas em PCX de 1×1 que servem de portadores, pcx.md.


E agora?

  • Modificar uma unidade: siga o tutorial de modding para lançar uma variante personalizada do Flash ARM em uns 20 minutos.
  • Entender o zoológico de arquivos: comece pelo índice da referência de formatos.
  • Criar uma ferramenta: todo formato tem uma API em Go. O quadro "Experimente você mesmo" de cada página de formato mostra o caminho de importação formats/<x>.
  • Conectar assistentes de IA: kbot mcp expõe tudo o que foi visto acima ao Claude Code, ao Claude Desktop, ao Cursor etc. via MCP. Veja a seção sobre MCP no README.