Servidores de Jogos

Callbacks essenciais: OnPlayerConnect, OnPlayerSpawn e cia.

Callbacks essenciais: OnPlayerConnect, OnPlayerSpawn e cia.

Callbacks são funções que o servidor chama automaticamente quando algo acontece. Todo gamemode é construído em torno deles.

Ciclo do servidor

public OnGameModeInit()
{
    SetGameModeText("Roleplay BR");
    // conectar ao banco, carregar casas, veículos, configurações
    return 1;
}

public OnGameModeExit()
{
    // salvar tudo e fechar conexões
    return 1;
}

Ciclo do jogador

OnPlayerConnect

Quando o jogador conecta — antes de spawnar. Ideal para zerar variáveis e iniciar o login.

public OnPlayerConnect(playerid)
{
    ResetarDadosJogador(playerid);
    VerificarConta(playerid);
    return 1;
}

OnPlayerDisconnect

Quando sai. Salve os dados aqui.

public OnPlayerDisconnect(playerid, reason)
{
    SalvarJogador(playerid);
    return 1;
}

OnPlayerRequestClass / OnPlayerRequestSpawn

Seleção de classe/skin e pedido de spawn — muito usados para bloquear o spawn até o login.

OnPlayerSpawn

Quando o jogador aparece no mundo: posição, skin, armas, vida.

OnPlayerDeath

Quando morre — registre mortes, aplique regras (RDM), defina o hospital.

Comandos e texto

  • OnPlayerText: mensagens de chat (filtros, chat de proximidade);
  • OnPlayerCommandText: comandos (ou use um processador como Pawn.CMD).

Diálogos

  • OnDialogResponse: resposta do jogador a um diálogo (login, menus). Veja o post sobre diálogos.

Veículos

  • OnPlayerEnterVehicle / OnPlayerExitVehicle;
  • OnPlayerStateChange: mudou de a pé para motorista, passageiro etc.;
  • OnVehicleDeath: veículo destruído.

Áreas

  • OnPlayerEnterCheckpoint / OnPlayerEnterRaceCheckpoint;
  • Com o Streamer: callbacks de áreas dinâmicas (entrar/sair de uma área).

Atualização contínua

  • OnPlayerUpdate: chamado com muita frequência para cada jogador. Evite código pesado aqui — é um dos principais causadores de lag.

Dicas

  • Retorne o valor correto (1/0) conforme a documentação de cada callback — em alguns, o retorno muda o comportamento;
  • Em gamemodes grandes, use hooks (como os do YSI) para que vários módulos tratem o mesmo callback de forma organizada.

Hospede seu servidor com a VittHost

Nos planos OPENMP-BR da VittHost, você acompanha o comportamento do seu gamemode no console em tempo real do painel Pterodactyl. Servidores no Brasil, proteção DDoS, MySQL incluso, compatibilidade total com scripts SA-MP e teste grátis de 3 dias.

Compartilhar:

Pronto para hospedar seu próximo projeto?

VPS com painel pré-instalado em 1 clique. Ativação imediata.

Ver planos VPS