Topgames
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[ Tutorial ] mapserverinfo.dat

Ir para baixo

[ Tutorial ] mapserverinfo.dat Empty [ Tutorial ] mapserverinfo.dat

Mensagem  Admin Ter Set 30, 2008 11:50 pm

Antes de tudo temos que ter em mente algumas coisas sobre os servidores de muonline que muita gente custa a entender:

O servidor de muonline não é feito por 1 servidor, e sim um conjunto deles, por isso uso os termos “servidor de conexão”, “servidor de autenticação” e etc no meu tutorial sobre os arquivos de um servidor de muonline. Originalmente, um servidor de muonline não funciona em apenas um computador, o servidor foi projetado para ter um computador controlando as conexões, outro computador controlando as autenticações, outro servidor controlando o banco de dados, outro computador controlando o servidor de jogo, e assim por diante, bem como os servidores de jogo principal, e servidor de jogo CS, que costumamos chamar de GS, e GS CS, (ou como eu gosto de chamar, servidor de jogo de serviço e servidor de jogo de eventos) foram projetados para trabalhar em computadores diferentes, com IPs diferentes, por isso temos que configurar IPs em tantos lugares diferentes, pois foram projetados para serem usados em computadores diferentes.
Com a evolução do tamanho de um servidor de muonline, a Webzen viu que concentrar todos os trabalhos de um servidor e todos os eventos em apenas um GS de serviço faria com que esse GS ficasse muito pesado pra trabalhar em um computador, daí veio a idéia de criar um outro servidor pra ser um extensão do GS de serviço, e foi assim que nasceu o GS CS, origialmente criado para suportar o evento Castle Siege para todos os servidores de um grupo de servidores de serviço(subservers). Esses novos servidores foram projetados para receber e enviar conexões de jogadores sem o uso de um novo login.

ATENÇÂO:
O GS CS, foi projetado para suportar os eventos Castle Siege, CryWolf, e os eventos da Season 2(maya etc, não sei o nome dos eventos), todos os seus NPCs, e suportar os mapas Land of Trials, Crywolf e Kantru, mas você deve prestar atenção no seu servidor, pois pode ser que o/os mapas de eventos estão adicionados “a força” no GS de serviço. de modo que estes mapas que foram adicionados a força, não devem ser considerados nesse arquivo a não ser que seja necessária uma configuração adicional para resolver problemas.

Tendo em mente o funcionamento do servidor acima, vamos ao assunto do tópico.

A função básica do arquivo mapserverinfo.dat é de transferir a conexão do usuário de um servidor de jogo para o outro, de modo que nele estará contido as informações necessárias para essa conexão, como IP, porta e código dos servidores, reparem que o servidor de conexão (connectserver, ou CS) recebe os mesmos tipos configurações.

O arquivo é composto por 2 blocos básicos de configuração, o primeiro bloco é referente as configurações de conexão do servidor, e ele tem 5 colunas de configuração:



QUOTE
// ServerCode MapServerGroup InitSetting IpAddress PortNum
0
X X X Sxxx.xxx.xxx.xxx XXXXX
X X X Sxxx.xxx.xxx.xxx XXXXX
X X X Sxxx.xxx.xxx.xxx XXXXX
End

ServerCode: é o código do servidor, ele identifica o servidor a ser configurado, de modo que se houver dois servidores sob um mesmo IP e porta, essa será a única forma de diferencia-los, o ServerCode de cada servidor é configurado no arquivo ServerInfo de cada servidor.

MapServerGroup: é o código do grupo de subservers a qual este servidor pertence, também serve como identificação para o servidor.

InitSetting (Initial map setting) : é uma coluna muito importante na configuração do servidor, essa coluna recebe apenas os valores 1 ou 0, o valor 1 determina que o servidor vai reconhecer todos os mapas nele contidos, o 0 vai dizer ao servidor, que ele vai ler apenas os mapas especificados no mapserverinfo.dat. Eu gosto de dizer que o InitSetting determina se o servidor é um servidor de serviço ou de eventos. Mais a frente entenderemos a influencia do InitSetting no mapserverinfo.dat

OBS: nos servidores piratas que utilizamos, o GS CS reconhece outros mapas que são adicionados por coders como o goe, a exemplo o mapa kantru, mas a configuração errada cria problemas como monstros que não atacam ou não aparecem, NPCs que não fazem nada e etc.

IpAddress: ip do servidor correspondente(esse ip deve conter o “S” na frente)
PortNum: porta do servidor correspondente.

Agora vamos às configurações para a transferência da conexão:
Levando em consideração um servidor de serviço com servercode “0”, e um servidor CS com o servercode “19” vejamos a configuralçao do segundo bloco de instruções do arquivo mapserverinfo.dat



QUOTE
// ServerCode MoveableOption Map DestinationServerCode
1
0 0 30 19
0 0 31 19
0 0 34 19

19 1 30 -1
19 1 31 -1
19 1 34 -1
End

ServerCode: Identificação do servidor

MoveableOption: em combinação com a coluna Map(numero do mapa) diz para o servidor se é necessário a transferência da conexão do usuário. Ele diz se o servidor lê o mapa ou não

Map: numero do mapa

DestinationServerCode: é o código do servidor de destino. Quando for necessária a transferência da conexão.

Agora vamos tentar entender como funciona isso tudo em conjunto:
Vamos pegar o exemplo de um jogador em lorencia, no GS de serviço, e pelo “M” ou pela gate de lorencia ele tenta entrar em Loren Canyon, ou Valley of Loren.
O servidor principal, suporta o mapa Valley of loren, porem não suporta o evento Castle Siege, seus NPCs ou configurações, de modo que se queremos ter o evento Castle Siege, devemos mudar o usuário de servidor, mover a conexão do usuário para o servidor que suporta o evento CS( o GS CS é claro).
Olhem a linha:



QUOTE
ServerCode MoveableOption Mapa ServerCode de destino
0 0 30 19

O Servidor de servercode “0”, vê que no MoveableOption “0”, que não suporta o mapa “30”, então ele deve mover o usuário para o servidor com o servercode de destino“19”.
Ou seja, no nosso caso, o servidor 19, é o GS CS.
Nesse momento, você vai ver no GS de serviço um “logout” do usuário, e o login do mesmo usuário no GS CS.
Ou seja, o usuário estava no servidor “0”(GS principal) e foi movido para o servidor “19”(GS CS).

Então houve a transferência da conexão do usuário de um servidor para o outro.
Agora imaginem que este mesmo usuário, que agora está no servidor CS, queira voltar para lorencia. Ai entra o InitSetting, quando o usuário tentar voltar para lorencia, o GS CS vai tentar enviar o usuário para um servidor que tenha o InitSetting com o valor 1.

O mesmo acontece com os mapas Land of Trials e CryWolf. Porem imaginem que este usuário não vai para lorencia, e sim para CryWolf.
Bom, o usuário está em Valley of Loren e está tentando ir para CryWolf, se queremos Crywolf como evento, teremos que configurar o mapserverinfo para fazer com que o usuário esteja no GS CS quando tentar entrar em Crywolf.
Olhem a linha:



QUOTE
19 1 34 -1

Se o usuário estiver em Valley of loren(servidor 19, GS CS), e tentar entrar em Crywolf, o servidor vai ver no MoveAbleOption, que este servidor suporta o mapa 34(Crywolf) então não é necessária a transferência da conexão do usuário, portanto a quarta coluna será ignorada, e recebe o valor -1, que significa que o usuário continuará no mesmo servidor.

Agora revejam o arquivo mapserverinfo.dat inteiro, e tentem entender aonde existe movimentação ou não.

É importante entender essa movimentação das conexões entre os servidores, para não haver problemas como NPCs que não funcionam, monstros que não atacam, eventos que não funcionam, travamento de tela, desconexão quando tenta mover entre esses maps, e inúmeros problemas que ocorrem pela configuração errada desse arquivo.

É interessante entender também que são divididas as tarefas, teoricamente, é possível fazer com que o servidor leia no GS principal alguns mapas, e no GS CS outros mapas, dividindo as tarefas.
Por exemplo:
Em um servidor com inúmeros spots, geralmente existe o problema do limite de monstros no servidor, esse problema pode ser amenizado utilizando o GS CS como suporte apenas configurando o mapserverinfo.dat. É possível fazer por exemplo, com que o GS CS leia o mapa Arena, lotado de monstros, dividindo o numero de monstros entre os servidores, retirando os monstros de arena do monstersetbase.txt do GS de serviço, e passsando para o monstersetbase.txt do GS CS, e fazendo a transferência das conexões.

Admin
Admin

Mensagens : 97
Data de inscrição : 28/09/2008

https://topgames.canadian-forum.com

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos