Este repositório contém a estrutura de banco e runtime para rodar o BMS v8 em Docker.
O servidor sobe no Docker, mas o login do cliente costuma travar se o cliente for aberto "cru" (sem injeção de patch). O fluxo validado de ponta a ponta foi:
- Subir servidor e banco no Docker.
- Compilar
client.dlleGameLauncher.exena pastaExtension. - Copiar os arquivos para a pasta do cliente.
- Criar
server.txt. - Abrir o jogo pelo
GameLauncher.exe(administrador).
Importante: no setup validado, o cliente utilizado foi o MapleStory.exe original.
Projeto baseado em engenharia reversa dos binários originais, com auxílio de ferramentas como IDA e SQL Profiler. Créditos aos devs que realizaram o trabalho original de reversão e preservação.
Instalador do cliente v08 (mssetup_v08):
https://archive.org/download/maplestory_all/
- Windows com Docker Desktop funcionando.
wingetfuncionando (para instalar Build Tools).- Cliente do Maple instalado (exemplo usado:
MapleStory.exeoriginal).
Server/DataSvrdeve conter os dados do servidor original, mantendo os arquivos de configuração deste repositório.Server/BinSvrdeve conter os binários originais do servidor.
A pasta docs/ é a fonte oficial de documentação deste repositório.
Índice principal:
docs/README.mddocs/guias/primeira-execucao-do-zero-windows.md(guia de instalacao do zero no Windows)
Organização por tema:
docs/guias-> procedimentos passo a passo (setup, build, operação).docs/referencias-> arquitetura, mapeamentos técnicos e consultas.docs/casos-> histórico de incidentes reais e correções aplicadas.docs/planos-> roadmap e evolução planejada.docs/tools-> análise das ferramentas externas (WZ/IMG e automação).
Regra prática da equipe:
- Mudou fluxo de operação? Atualize
docs/guias. - Descobriu comportamento técnico novo? Atualize
docs/referencias. - Ocorreu erro/incidente e foi resolvido? Registre em
docs/casos. - Planejou feature/refactor? Registre em
docs/planos.
No diretório raiz do projeto:
docker compose up -d
docker compose psComandos rápidos (start/status/stop):
# Iniciar servidor
docker compose up -d
# Ver status
docker compose ps
# Parar servidor
docker compose downPainel com 4 janelas:
.\Scripts\monitor\open-monitor.ps1 -StartServerModo janela única:
.\Scripts\monitor\open-monitor.ps1 -SingleWindowGuia completo:
docs/guias/subir-servidor-e-monitoramento.mddocs/guias/monitoramento-operacao.md
Comando validado:
winget install --id Microsoft.VisualStudio.2022.BuildTools -e --source winget --accept-package-agreements --accept-source-agreements --silent --override "--quiet --wait --norestart --nocache --installPath C:\BuildTools --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.v141.x86.x64 --add Microsoft.VisualStudio.Component.Windows10SDK.19041 --includeRecommended"No diretório raiz do projeto:
& "C:\BuildTools\MSBuild\Current\Bin\MSBuild.exe" "Extension\WvsApp.sln" /m /t:WvsCommon;WvsClient;WvsLauncher /p:Configuration=Release;Platform=Win32;WindowsTargetPlatformVersion=10.0.19041.0 /v:minimalSaídas esperadas:
Extension\Release\client.dllExtension\Release\GameLauncher.exe
Exemplo:
C:\Users\andre\Dropbox\games\ms_server\bms_v8\MapleStory
Copiar:
Extension\Release\client.dll->MapleStory\client.dllExtension\Release\GameLauncher.exe->MapleStory\GameLauncher.exe
Criar MapleStory\server.txt com 2 linhas:
MapleStory.exe
MapleStory.exe 127.0.0.1 8484Abrir sempre pelo launcher, com privilégios de administrador:
cd C:\Users\andre\Dropbox\games\ms_server\bms_v8\MapleStory
Start-Process -FilePath .\GameLauncher.exe -WorkingDirectory (Get-Location) -Verb RunAsImportante:
- Não abrir o jogo direto por
MapleStory.exepara o login final. GameLauncher.exeprecisa encontrarclient.dlleserver.txtna mesma pasta.
Criadas pelo seed SQL:
user / adminadmin / admin
Onde:
adminpossui GM (Admin = 255).useré conta normal.
Referência:
Database/8-Configure.sql
!fm-> teleporta para FM (910000000)!gmap-> teleporta para mapa GM (180000000)!exp <1-5>-> altera rate de EXP!drop <1-5>-> altera rate de drop!rs-> recarrega scripts
Referência:
Extension/WvsGame/CommandParser.cpp
temp/MSLog/Login_*.logcontémCenter socket connected successfully 127.0.0.1:9000.MapleStory/client.logmostra inicialização doclient.dll.
Exemplo de client.log válido:
Initializing client.dll, admin client: falseHook status: CREATEDClient initialized
- Scripts em
Server/DataSvr/Scripttem encoding misto (Windows-1252, EUC-KR/CP949 etc.). - Salvar com encoding errado pode quebrar texto e lógica.
Referências:
docs/guias/encoding-e-tags-script.mddocs/casos/sp-primeira-job-e-compensacao.md
Índice geral:
docs/README.mddocs/guias/rodar-em-windows-linux-macos.md(guia cross-platform: Windows/Linux/macOS)
Categorias:
docs/guias-> passo a passo operacionaldocs/referencias-> arquitetura e base técnicadocs/casos-> histórico de incidentes e aprendizadosdocs/planos-> roadmap e evolução futuradocs/tools-> ferramentas externas e como usar no projeto
Próxima fase já documentada:
docs/planos/proxima-fase-conteudo-e-comandos-sync.md
No PowerShell, use:
Start-Process -FilePath .\MapleStory.exe -ArgumentList '127.0.0.1','8484'start "" ... e sintaxe de cmd, não de PowerShell.
Obs.: para jogar, use GameLauncher.exe.
Se o log mostra apenas:
Connection acceptedClient socket disconnectedCheckPassword: 0 called
ha mismatch de handshake (cliente sem patch).
Confirme:
client.dll,GameLauncher.exeeserver.txtna pasta do cliente.- Execução via
GameLauncher.exe. - Launcher em modo administrador.
Após docker compose restart bms_server, aguarde o Center concluir o boot e ficar READY=YES.
Se S_SP está correto no SQL, mas o cliente continua com valor antigo:
- Feche o cliente.
- Limpe a sessão em
UserConnection.dbo.Connections. - Reinicie
bms_server. - Aguarde
READY=YES. - Entre novamente.
Referência:
docs/casos/sp-primeira-job-e-compensacao.md
Este setup e para estudo, pesquisa técnica e preservação de software antigo. E proibida a comercializacao, monetizacao ou qualquer uso com finalidade financeira deste material.