Servidores de Jogos

Textdraws: criando interfaces no open.mp

Textdraws: criando interfaces no open.mp

Textdraws são textos e caixas desenhados na tela do jogador. Com eles você cria HUDs de fome e sede, velocímetros, logotipos, telas de login e até menus clicáveis.

Globais x por jogador

  • Textdraw global (TextDrawCreate): igual para todos, como o logo do servidor ou o relógio;
  • Player textdraw (CreatePlayerTextDraw): individual, como o dinheiro do banco ou a velocidade do veículo.

Use textdraws globais sempre que o conteúdo for o mesmo para todos. Eles economizam recursos.

Exemplo: logo do servidor

new Text:Logo;

public OnGameModeInit()
{
    Logo = TextDrawCreate(500.0, 5.0, "MEU SERVIDOR RP");
    TextDrawFont(Logo, TEXT_DRAW_FONT_2);
    TextDrawLetterSize(Logo, 0.3, 1.2);
    TextDrawColour(Logo, 0xFFFFFFFF);
    TextDrawSetOutline(Logo, 1);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    TextDrawShowForPlayer(playerid, Logo);
    return 1;
}

Nomes de funções e constantes podem variar entre os includes do SA-MP e do open.mp (por exemplo, Color e Colour). O open.mp costuma manter aliases de compatibilidade. Confira a documentação da sua versão.

Exemplo: velocímetro por jogador

new PlayerText:Velocimetro[MAX_PLAYERS];

// ao conectar
Velocimetro[playerid] = CreatePlayerTextDraw(playerid, 550.0, 400.0, "0 km/h");

// no timer do velocímetro
PlayerTextDrawSetString(playerid, Velocimetro[playerid], texto);

Atualize o texto só quando o valor mudar e com intervalos razoáveis. Atualizações excessivas geram tráfego de rede sem necessidade.

Textdraws clicáveis

  1. Marque o textdraw como selecionável (TextDrawSetSelectable);
  2. Ative o cursor com SelectTextDraw(playerid, cor);
  3. Trate o clique em OnPlayerClickTextDraw ou OnPlayerClickPlayerTextDraw;
  4. Desative com CancelSelectTextDraw.

Assim você monta lojas, seleção de personagem e menus de celular.

Limites

Existem limites de textdraws globais e por jogador. Gamemodes com muitas interfaces devem criar e destruir textdraws conforme a tela aberta, em vez de manter tudo carregado.

Boas práticas

  • Teste em resoluções diferentes. As coordenadas são relativas a uma tela virtual de 640x480;
  • Use ferramentas visuais (editores de textdraw da comunidade) para posicionar os elementos;
  • Evite poluir a tela, porque o jogador precisa ver o jogo.

Hospede seu servidor com a VittHost

Nos planos OPENMP-BR da VittHost, seus jogadores veem as interfaces com resposta rápida graças aos servidores no Brasil. Painel Pterodactyl, 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