Ir para conteúdo

Login Server com vários mundos.


Oneshot

Posts Recomendados

Login Server com Vários Mundos

1. Introdução

Olá, pessoal. Já vi diversas vezes, sendo uma delas muito recente, uma dúvida bastante pertinente sobre a configuração do sistema de vários mundos para um único IP de servidor.

Sim, tem muita gente que não sabe fazer isso e acaba tendo que criar vários IPs, por exemplo:


sv1.fulanoot.com.br
sv2.fulanoot.com.br


Sim, é mais fácil fazer isso, mas perde toda a graça, pois o Tibia oficial, é dividido em mundos e com um único servidor de login.

1.1 Servidor de Login?

Sim, existe um servidor responsável por aceitar o login dos jogadores e distribuir o login nos servidores secundários, ou mundos, a ele damos o nome de servidor de login.

Para entender como funciona, olhe a seguinte imagem:

4egc4ka.png

O jogador conecta no servidor de login, pode ir para o Mundo 1 que é o próprio servidor de login, ou ir para outros mundos como na imagem, já que conectado no primeiro servidor, ele pode ser direcionado para lá.

2. Como configurar

A configuração desse sistema é muito simples, primeiro tenha em mente que você irá precisar separar seus vários servidores, que se comportarão como mundos, em pastas diferentes. Cada executável com sua própria pasta, config.lua, pasta data/ e afins.

O primeiro servidor, que será o nosso login server, precisará ser compilado com um parâmetro a mais, OU SEJA, você precisa ter acesso as sources do seu servidor.

O parâmetro que você deverá adicionar é:




-D__LOGIN_SERVER__


ATENÇÃO, você só deve compilar o primeiro executável, o primeiro servidor, com esse parâmetro, os outros não devem ser compilados assim.

Servidores compilados, organizados em suas pastas, configure os servidores para acessar o banco de dados MySQL (não testei com SQLite, acredito que não funciona.)


Abra o servers.xml no diretório data/XML do nosso login server, ele vai estar assim, provavelmente:

<?xml version="1.0" encoding="UTF-8"?>
<servers>
    <server id="0" name="Example" versionMin="860" versionMax="860" address="127.0.0.1" port="7171"/>
</servers>

Configure seus servidores aqui, por exemplo:

<?xml version="1.0" encoding="UTF-8"?>
<servers>
    <server id="1" name="Caramelo" versionMin="860" versionMax="860" address="127.0.0.1" port="7172"/>
    <server id="2" name="Biscoito" versionMin="860" versionMax="860" address="127.0.0.1" port="7173"/>
    <server id="3" name="Chocolate" versionMin="860" versionMax="860" address="127.0.0.1" port="7174"/>
</servers>

No campo address, você irá colocar o IP do servidor (Não testei com redirecionamento, IP fixo), e no campo port, todas as portas diferentes de 7171, ou seja vá aumentando de 1 em 1 para cada servidor/mundo.

Depois de configurado, vamos ao config.lua.

É mais simples, no config.lua de cada servidor, você vai mudar o campo:

worldId = 0

Para cada valor que você colocou no servers.xml. Nosso login server pode ter o valor 1 por exemplo e os outros os valores 2 e 3.

Você vai mudar também:

gamePort = 7172

Para todas as portas que usou no servers.xml, ou seja, 7172 para o primeiro servidor, 7173 para o segundo e assim em diante.

Em todos os outros servidores, com exceção do login server, você vai mudar:

loginOnlyWithLoginServer = false

Para:

loginOnlyWithLoginServer = true

Lembrando, com exceção do login server.


Depois é só desbloquear as portas 7171 e 7172 e, outras que você usar, abrir todos os executáveis (não esquecendo do que compilamos como login server) e correr para o abraço.

T5JdFgD.png

Não vou ensinar como configurar Account Manager para selecionar o mundo do personagem, pois são edições trabalhosas, talvez isso fique para outro release. Há também edições C++ que você pode fazer para poder deixar todos servidores em uma única pasta.

Abraços,

Oneshot

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 4 months later...
×
×
  • Criar Novo...