gogomoa-patch-server
Predecessor do halk-patch-server. Implementação minimalista em PHP de um servidor de patch do MHF — serve os arquivos que o launcher precisa para atualizar o jogo.
Foi substituído pelo halk-patch-server, que adiciona suporte a pre-release, API administrativa, versionamento e edição de arquivos do jogo.
Como funciona
O launcher faz requisições HTTP para um único endpoint (mhf_file.php) com query params que indicam qual arquivo quer:
| Query param | Arquivo retornado | Descrição |
|---|---|---|
?key | key.txt (como MHFUP_00.DAT) | Metadados e checksums dos arquivos do jogo |
?chk | chk.txt | Mensagem de verificação estática do jogo |
Arquitetura
Launcher → nginx:8080 → PHP-FPM:9000 → mhf_file.php
O nginx roteia as requisições para o PHP-FPM, que lê e serve os arquivos diretamente do disco com readfile().
Geração do key.txt
O key.txt é gerado pelo script genMhfKey.py, que percorre a pasta mhfdat/ e para cada arquivo calcula:
- CRC32 do conteúdo
- Timestamp no formato Windows FILETIME
Saída por linha:
CRC32,FILETIME_HIGH,FILETIME_LOW,dat\arquivo.dat,SIZE,0
Comparação com halk-patch-server
| gogomoa | halk | |
|---|---|---|
| Linguagem | PHP | Rust |
| Release / Pre-release | Não | Sim |
| API administrativa | Não | Sim (porta 5000) |
| Versionamento de patches | Não | Sim |
| Edição de itens/monstros | Não | Sim |