---
name: rosh-replay-oficial
description: Quando todas as métricas batem certo e o jogador continua a ver defeito, repetir os bytes do oficial numa entidade separa as hipóteses
metadata:
  type: feedback
---

Em 28/08/2026 corrigiram-se seis defeitos medidos no movimento dos monstros e **todas** as
métricas passaram a bater com o oficial — passo, intervalo, rumo, rectidão, buracos, alcance.
O jogador continuou a ver o bicho a chacoalhar. Estive a horas de começar a descompilar o
cliente à procura da interpolação.

O que resolveu foi outra coisa: `tools/extrair_replay.py` tira uma sequência real de `04 01`
de uma captura do oficial e o servidor põe **uma** entidade a repeti-la byte a byte —
posições, tempos, z e campo do rumo tal como vieram do fio, sem nada recalculado
(`ENTIDADES_REPLAY` em `entity_sim.py` desliga até o recálculo do rumo para essa entidade).

O jogador olha para as duas ao lado uma da outra:
- replay liso, simulado a tremer → a diferença está **nos nossos pacotes**, e comparam-se
  campo a campo até aparecer
- as duas a tremer → a diferença **não está nos pacotes**; é entrega, latência ou máquina

Deu o primeiro caso, e a diferença apareceu num campo só: o `dz`. O oficial muda de altura em
77% dos pacotes, nós em 23% — porque a altura vinha da célula de 25 u e o passo é 6,66.

**Why:** quando as medições todas concordam e o olho discorda, medir mais do mesmo não
avança. É preciso uma experiência que **separe** hipóteses, não que junte mais dados.

**How to apply:** montar o replay antes de partir para engenharia reversa do cliente. Custa
umas dezenas de linhas e responde em minutos. Ver [[medir-nao-adivinhar]] e
[[rosh-emulador-karos]].
