Para que serve o MapServerInfo.dat
O arquivo MuServer\Data\MapServerInfo.dat descreve os servidores de mapas e as rotas entre eles. Ele permite ao GameServer saber quais mapas atende localmente e para qual GameServer ou GameServerCS deve transferir um personagem ao mudar de mapa. É diferente do MapManager.txt, que define regras de jogo dentro de cada mapa.
O arquivo original do Genesys Plus cadastra dois códigos de servidor no mesmo grupo: 0 para o GameServer e 19 para o GameServerCS. O GameServerCS atende, entre outros, Castle Siege, Land of Trials e Crywolf. Mantenha uma configuração coerente para os dois processos.
Estrutura do arquivo
O arquivo tem duas seções numéricas, cada uma terminada por end:
0
// ServerCode MapServerGroup InitSetVal IpAddress Port
...
end
1
// ServerCode NotMoveOption NextMap NextServerCode
...
end
Comentários iniciados por // são ignorados. Os números de mapa são os mesmos usados em MapManager.txt, gates e movimentos.
Seção 0: servidores disponíveis
| Coluna | Significado |
|---|---|
ServerCode |
Identificador único do processo. Deve coincidir com ServerCode em GameServerInfo - Common.dat do GameServer ou GameServerCS correspondente. |
MapServerGroup |
Grupo ao qual o servidor pertence. Na configuração fornecida, ambos usam 0. Mantenha os processos que compartilham a mesma distribuição de mapas no grupo correto. |
InitSetVal |
Estado inicial dos mapas nesse servidor: 1 considera os mapas locais até que uma linha da seção 1 diga o contrário; 0 procura automaticamente um servidor responsável, podendo distribuir entre elegíveis; -1 também procura um responsável, mas sem essa escolha aleatória. Preserve os valores do arranjo original ao mudar apenas IPs ou portas. |
IpAddress |
Endereço usado no redirecionamento para o servidor de destino. Mantenha o prefixo S antes do IP, como em S192.0.2.10; o leitor remove o primeiro caractere. Use um endereço alcançável pelo cliente que fará a troca de servidor. |
Port |
Porta do processo correspondente. Deve coincidir com ServerPort em GameServerInfo - Common.dat e estar acessível no endereço configurado. |
O endereço 192.0.2.10 usado neste guia é apenas ilustrativo; substitua pelo endereço correto da sua rede. Não confunda a porta do GameServer com as portas de ConnectServer, JoinServer ou DataServer.
Seção 1: destino dos mapas
| Coluna | Significado |
|---|---|
ServerCode |
Servidor ao qual esta regra se aplica; deve ter sido cadastrado na seção 0. |
NotMoveOption |
1 marca NextMap como local nesse servidor. 0 define como procurar ou especificar outro servidor para esse mapa. |
NextMap |
Número do mapa de destino. Uma linha afeta somente esse mapa no ServerCode informado. |
NextServerCode |
Com NotMoveOption = 0, um código não negativo direciona ao servidor cadastrado com esse código; -1 procura automaticamente um servidor que atende o mapa; -2 também procura um servidor elegível sem escolha aleatória. Com NotMoveOption = 1, o valor usual é -1, pois o mapa foi marcado como local. |
No arquivo original, o servidor 0 encaminha determinados mapas ao servidor 19. O servidor 19 marca esses mesmos mapas como locais. Assim, ambos concordam sobre quem hospeda o mapa. Os demais mapas seguem o comportamento inicial indicado por InitSetVal.
Exemplo ilustrativo
0
// ServerCode MapServerGroup InitSetVal IpAddress Port
0 0 1 S192.0.2.10 55901
19 0 0 S192.0.2.10 55919
end
1
// ServerCode NotMoveOption NextMap NextServerCode
0 0 30 19
19 1 30 -1
end
Nesse exemplo, o mapa 30 sai do GameServer de código 0 e é atendido pelo GameServerCS de código 19. O exemplo mostra somente um mapa para explicar a relação; não substitua o arquivo original por ele.
Conferências antes de aplicar
- Faça uma cópia do arquivo e confira
ServerCodeeServerPortde cada processo em seuGameServerInfo - Common.dat. - Confira se o
IpAddresscom prefixoSaponta para o endereço adequado ao acesso dos jogadores e se a porta está disponível. Se o IP mudar, atualize também os demais arquivos e o cadastro da licença que usam esse endereço. - Para cada mapa transferido, confira a linha de encaminhamento no servidor de origem e a linha que torna o mapa local no destino. Verifique também se o mapa, os gates e os movimentos estão configurados.
- Aplique mudanças de topologia em manutenção planejada, reiniciando GameServer e GameServerCS. Existe reload de
MapServerInfo.datno menu, mas uma configuração inválida pode interromper o carregamento depois de limpar a tabela anterior; faça a validação antes de usar o reload. - Teste uma transferência real entre servidores e o retorno ao mapa anterior. Se o cliente perder a conexão ao trocar de mapa, confira o endereço e a porta anunciados para o destino.