Docs Referência

De onde vêm os dados

A origem e a precisão de cada tipo de dado. Quando algo “parecer errado”, comece por esta página.

DadoOrigemPrecisão
Unidades, recursos, ordens, habilidades, buffs, inventárioBloco do mundo enviado pelo runtime a cada 50 msPeríodo de publicação (ajustável até 16 ms)
Eventos de dano e abateRegistrados pelo runtime na thread do jogo, a cada golpeImediata
Outros eventos (aparecer, morrer, trocar de ordem, subir de nível…)Comparação entre duas publicações consecutivasPeríodo de publicação
Tabela de produção (treino / pesquisa / construção / melhoria)Campos de tempo da habilidade de produção do motor + tempo decorrido acumulado pelo runtimeCerca de ±0.2 segundo de jogo
Atributos de combate, tabela de countersTabelas de dados do próprio jogo (extraídas do jogo na sua máquina)Sem os modificadores de itens, auras e buffs
CaminhosTransitabilidade do terreno no motor (células de 128) + árvores + área ocupada por construções, A* no lado do SDKUma célula; passagens mais estreitas que uma célula contam como bloqueadas
Horário do jogoJASS GetFloatGameState(GAME_STATE_TIME_OF_DAY)Período de publicação
VisibilidadeMáscara de visibilidade por jogador que o runtime calcula para cada unidadePeríodo de publicação
Contagem de tecnologia, viabilidade, ouro restante na minaConsulta pela via rápida, direto ao motorImediata

Os dados do jogo não são distribuídos com o código

Tabelas de unidades, habilidades, itens, heróis, buffs, tabela de dano por tipo etc. vêm dos arquivos de jogo da Blizzard e não entram no repositório. Depois que você define a pasta do jogo na “Central de controle” do Farsight, eles são extraídos automaticamente do seu próprio jogo; também dá para rodar manualmente:

python data/tools/extract_game_data.py

O resultado fica em data/game/ (fora do git): os arquivos originais .slk / .txt e os arquivos organizados units.json, names.json, skills.json, items.json, heroes.json, buffs.json.

Alguns números concretos

GrandezaValor
Um dia480 segundos de jogo (240 segundos de dia e 240 de noite); uma hora = 20 segundos de jogo; a partida começa às 8 da manhã
Dia6:00 ~ 18:00
Coeficiente de armadura0.06 (da tabela de dados do jogo)
Capacidade do bloco do mundo16 jogadores, 1024 unidades, 256 detalhes de unidade, 256 itens no chão, 128 produções
ÁrvoresAté 4096 destrutíveis, atualizados a cada 2 segundos
Anel de eventos8192 entradas; se a leitura for lenta demais, há perda (o SDK detecta)
Grade do mapa128 unidades de jogo por célula, até 256 × 256

Exemplos calibrados com medições reais

  • Tempo de produção: Camponês 14.9, Fazenda 34.9, Iron Forged Swords 59.9 segundos de jogo, iguais aos enviados pelo runtime (erro menor que 0.2 segundo);
  • Atributos de combate conferidos com o painel do jogo: Paladino com 650 de vida, 255 de mana, 3.9 de armadura e ataque 24 ~ 34; Soldado com a primeira melhoria de ataque, 13 ~ 15;
  • O dano antes da armadura nos eventos de dano do motor (14 / 15 / 15) cai dentro do intervalo calculado por stats();
  • Caminhos: em Echo Isles, 116 × 88 células; distância por terra até o edifício principal do outro lado, 10642 (em linha reta, 9856); montar a grade leva 18 ms, e um A* cerca de 1 ms.