# Levar o emulador para outra máquina

Backup feito em 03/09/2026. São dois ZIPs em `D:\RoshEmulator\backups\`:

| arquivo | o que traz | tamanho |
|---|---|---|
| `rosh_20260903_1725.zip` | `server/`, `tools/`, `docs/`, o banco em `.bak`, e a memória do Claude | 8,4 MB |
| `axion_cliente_20260903_1725.zip` | o cliente patchado e os originais para reverter | 222 MB |

O primeiro também já está em `G:\Meu Drive\RoshBackup\`. O segundo não — ele é grande e muda
raramente, por isso fica só local; copie à mão.

## O que a máquina nova precisa ter

Windows 10 ou 11, sem VM nem Docker. **Não é preferência, é requisito de duas coisas:** o
`db.py` liga-se ao banco com `Trusted_Connection=yes`, que é autenticação do Windows (em
Linux exigiria Kerberos com domínio), e o cliente é DirectX 9 nativo.

- **SQL Server Express** chega. O banco `Rosh` tem 208 MB e o limite do Express é 10 GB.
- **ODBC Driver 18** para SQL Server.
- **Python 3.11 ou mais recente**, com `pyodbc`.
- O cliente **Axion já instalado** em `C:\Games\Axion` — o ZIP do cliente só traz o que
  mudou, não o jogo inteiro.

## Passos

1. Descompactar `rosh_*.zip` para `D:\RoshEmulator` (ou outro caminho — ver o passo 4).
2. Restaurar o `.bak` do banco no SQL Server, com o nome `Rosh`.
3. Descompactar `axion_cliente_*.zip` **por cima** de `C:\Games\Axion`.
4. Corrigir os três caminhos abaixo. **Nenhum deles dá erro claro quando está errado** —
   por isso estão listados um a um.

## Os três sítios que partem calados

**`server/entity_sim.py`, linha 44** — `TEMPLATE_PATH` aponta para
`D:\RoshEmulator\captures\appear_template.bin`, e todos os moldes derivam dele. Com o caminho
errado o servidor sobe na mesma e os monstros aparecem mal.

Do `captures/` só são precisos cinco itens, 60 KB no total: `appear_template.bin`,
`molde_golpe_05_00.bin`, `molde_dano_05_02.bin`, `molde_drop_06_04.bin` e a pasta
`npc_appear/`. O resto da pasta são 22 GB de material de medição que não vai no backup.

**`server/login_server.py` linha 75 e `server/channel_server.py` linha 39** — têm o IP
`144.217.65.115`, que é o público desta VPS. Com o IP errado o jogo prende na seleção de
personagem, sem mensagem nenhuma.

**Não ponha `127.0.0.1`**: já foi medido que o cliente não faz a ligação automática para
loopback. Use o IP real da máquina na rede.

**`server/iniciar.ps1`** — tem `D:\RoshEmulator\server` e os caminhos dos logs escritos à mão.

## Depois de mudar

Ficou combinado pôr esses três valores num arquivo de configuração, para a próxima mudança
ser uma linha em vez de quatro edições. Ainda não foi feito.

## O cliente patchado

O que está no `Axn.exe` que veio no ZIP, e que se refaz com as ferramentas caso precise
partir de um cliente limpo:

- **segunda senha** — `tools/patch_segunda_senha.py --aplicar --auto`. Tem `--reverter`, e
  o original está em `Axn.exe.bak_2asenha`.
- **refinos +14 a +18** — `tools/mesclar_itemattr.py --aplicar` e
  `tools/mesclar_itemenchant.py --aplicar`, depois `tools/atualizar_checkfilelist.py`.
- **brilho de refino nas armas** — `tools/brilho_refino_armas.py`, com `--reverter` pelos
  `.bak13`.

O `ServerList.ten` também vai no ZIP, com as variantes `.emulador` e `.orig_backup`.
