Principais funções:
- Código:
Função Explicação
TextDrawShowForPlayer Serve para mostrar o textdraw somente ao player.
TextDrawShowForAll Mostra-rá para todos
TextDrawHideForPlayer Desligara o textdraw somente para o do Player (playerid)
TextDrawHideForAll Desligará o TextDraw De Todos
TextDrawDestroy Apagará o TextDraw,isto é mais usado no OnPlayerDisconnect
Brasil=TextDrawCreate criará um novo text draw
TextDrawAlignment definirá se vai ser no Centro ou nos Lados
TextDrawBoxColor definirá se vai ter uma caixa no textdraw
TextDrawBackgroundColor definirá cor de fundo do textdraw
TextDrawFont Nem Preciso dizer que é a fonte do TextDraw
TextDrawLetterSize define o tamanho da letra do textdraw
TextDrawColor define a cor do textdraw
TextDrawSetOutline define se usará uma estrutura
TextDrawSetProportional define a escala do texto se será desproporcional ou não
TextDrawSetShadow Sombra do textdraw
TextDrawUseBox Se o textdraw usará Um BOx ou não
TextDrawSetString Define uma string no textdraw
Para nós criarmos qualquer textdraw, devemos primeiro criar uma variável aonde irá armazenar o ID do nosso textdraw
- Código:
new Text:Brasil; //
A Função TextDrawCreate cria um textdraw. quando o textdraw é criado ela é armazenada na variável Brasil o ID dela, para nós termos total controle sobre ela.
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
return 1;
}
Quando determinamos que nosso textdraw não tem mais utilidade, precisaremos deletar ele para liberar a memória armazenada na variável Brasil
- Código:
public OnPlayerDisconnect(playerid, reason)
{
TextDrawDestroy(Brasil);
return 1;
}
Para que nosso textdraw possa ser enxergado para todos, devemos exibi-la podendo usar duas funções, TextDrawShowForPlayer aonde é exibida somente para um jogador ou TextDrawShowForAll aonde é exibido há todos ao mesmo tempo:
- Código:
public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid,Brasil);
TextDrawShowForAll(Brasil);
}
Obsevação: Quando deletamos um textdraw, ela não pode ser mais usada
Quando queremos esconder um textdraw há um jogador, usamos a função TextDrawHidForPlayer, quando queremos esconder de todos os jogadores, usamos a função TextDrawHideForAll:
- Código:
if (strcmp("/desligar", cmdtext, true) == 0)
{
TextDrawHideForPlayer(playerid,Brasil);
TextDrawHideForAll(Brasil);
return 1;
}
Observação: Quando escondemos uma textdraw, ela não é deletada
Com a função TextdrawAlignment, podemos alinhar nosso texto ao tamanho dele
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawAlignment(Brasil, 2); //
return 1;
}
Já a função TextdrawBoxColor gera uma "Caixa" atrás do nosso textraw:
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawBoxColor(Brasil,0x000000FF);
return 1;
}
A Função TextDrawBackgroundColor modifica a "sombra" de nosso textraw.
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawUseBox(Brasil,1);
TextDrawBackgroundColor(Brasil, 0xFFFFFFFF);//branco
return 1;
}
A Função TextDrawFont, define o estilo da fonte que iremos exibir na tela do jogador, tendo disponível 3 estilos:
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawFont(Brasil,1);
return 1;
}
A Função TextDrawLetterSize define o tamanho do nosso texto. Quando utilizamos algum texto para ser clicado, devemos sempre definir essa função.
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawLetterSize(Brasil, 3.2 ,5.1);
return 1;
}
A Função TextDrawColor modifica a cor do texto da nossa textdraw, podendo ser usado números hexadecimais ou decimais e também cores da função GameTextForPlayer:
- Código:
~n~ Nova linha
~r~ Vermelho
~g~ Verde
~b~ Azul
~w~ Branco
~y~ Amarelo
~p~ Roxo
~l~ Preto( L em minúsculo )
~h~ Deixa seu texto mais claro(não funciona na cor preto).
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao ~r~H~h~e~h~x~~h~a");
TextDrawColor(Brasil,0xFFFFFFFF);//branco
return 1;
}
A Função TextDrawSetOutline define o contorno nosso textdraw.
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawSetOutline(Brasil,1);//Define a espessura do Contorno
return 1;
}
A Função TextDrawSetProportional deixa todas as letras em tamanho iguais e proporcionais ao resto da frase
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawSetProportional(Brasil,1);//booleano que indica se o TextDraw é proporcional
return 1;
}
Com a função TextDrawSetShadow, é possível definir o tamanho da sombra no textdraw
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawSetShadow(Brasil,1);//O tamanho da sombra
return 1;
}
A Função TextDrawUseBox habilita uma "caixa" atrás do nosso textdraw
- Código:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawUseBox(Brasil,1);
TextDrawBackgroundColor(Brasil, 0xFFFFFFFF);//branco
return 1;
}
A Função TextDrawSetString modifica o texto original de uma textdraw, normalmente essa função é utilizada
- Código:
new texto;
forward TrocarTexto();
public TrocarTexto(){
if(texto == 0) TextDrawSetString(Brasil, "Santa Catarina");
if(texto == 1) TextDrawSetString(Brasil, "Sao Ludgero");
if(texto == 2) TextDrawSetString(Brasil, "Braco do Norte");
if(texto == 3) TextDrawSetString(Brasil, "Orleans");
if(texto == 4) TextDrawSetString(Brasil, "Criciuma");
texto ++;
return SetTimer("TrocarTexto", 5000, false);
}
Novas funções:
Todos os exemplos citados acima podem ser usados para PlayerTextDraw, a única diferença é que em cada função é adicionado um "Player":
- Código:
Função Explicação
CreatePlayerTextDraw Cria um textdraw
PlayerTextDrawAlignment Define um alinhamento em nossa textdraw.
PlayerTextDrawBackgroundColor Muda acorda da sombra de nosso textdraw
PlayerTextDrawBoxColor Modifica acorda "caixa" de nosso textdraw
PlayerTextDrawColor Define acordo nosso textdraw
PlayerTextDrawDestroy Destrói a textdraw
PlayerTextDrawFont Definea fonte do textdraw
PlayerTextDrawHide Esconde a textdraw
PlayerTextDrawLetterSize Modificao tamanho do nosso textdraw
PlayerTextDrawSetOutline Habilita contorno de nosso textdraw
PlayerTextDrawSetProportional Modifica a escaladas letras, tornando todas alinhadas
PlayerTextDrawSetShadow Define a sombra em nosso textdraw
PlayerTextDrawSetString Modifica a frase do nosso textdraw
PlayerTextDrawShow Exibe o Textdraw para o jogador
PlayerTextDrawTextSize Modifica o tamanho do texto da nossa textdraw
PlayerTextDrawUseBox Habilita uma "Caixa" atrás do nosso textdraw
PlayerTextDrawSetSelectable Define se a nossa textdraw pode ser clicada
PlayerTextDrawSetPreviewModel Define um modelo 3D para ser exibido em textdraw
PlayerTextDrawSetPreviewRot Define a rotação de nosso textdraw 3D
PlayerTextDrawSetPreviewVehCol Modifica acordo nossoTextdraw 3D
As funções "PlayerTextdraw" são basicamente as mesmas que as citadas no início do tópico, exceto que algumas funções foram adicionadas como PlayerTextDrawSetSelectable aonde ativa um textdraw que pode ser clicado.
Como criar um textdraw clicável
Para fazer este feito, primeiro devemos criar um textdraw qualquer, neste exemplo vamos usar para o PlayerTextdraw:
Para fazer este feito, primeiro devemos criar um textdraw qualquer, neste exemplo vamos usar para o PlayerTextdraw:
- Código:
#include <a_samp>
new PlayerText:BemVindo[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
// Criando um textdraw, com as funções do nosso tutorial
BemVindo[playerid] = CreatePlayerTextDraw(playerid, 10.000000, 141.000000, "MyTextDraw");
PlayerTextDrawTextSize(playerid, BemVindo[playerid], 60.000000, 20.000000);
PlayerTextDrawAlignment(playerid, BemVindo[playerid],0);
PlayerTextDrawBackgroundColor(playerid, BemVindo[playerid],0x000000ff);
PlayerTextDrawFont(playerid, BemVindo[playerid], 1);
PlayerTextDrawLetterSize(playerid, BemVindo[playerid], 0.250000, 1.000000);
PlayerTextDrawColor(playerid, BemVindo[playerid], 0xffffffff);
PlayerTextDrawSetProportional(playerid, BemVindo[playerid], 1);
PlayerTextDrawSetShadow(playerid, BemVindo[playerid], 1);
// Habilitando que este textdraw é clicável
PlayerTextDrawSetSelectable(playerid, BemVindo[playerid], 1);
// Exibindo para o jogador
PlayerTextDrawShow(playerid, BemVindo[playerid]);
return 1;
}
Segundo o código acima, quando o jogador conectar ao seridor será criado um PlayerTextdraw aonde será definido várias configurações sobre nossa textdraw inclusive a função PlayerTextDrawSetSelectable. Se você testar o código em seu servidor, notará que aparecera "MyTextDraw" na tela e você pode clicar nele porém não irá acontecer nada!
Para nós criar uma "reação" para nosso textdraw, vamos usar a callback própria dele chamada OnPlayerClickPlayerTextDraw
Para nós criar uma "reação" para nosso textdraw, vamos usar a callback própria dele chamada OnPlayerClickPlayerTextDraw
- Código:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid == BemVindo[playerid])
{
SendClientMessage(playerid, 0xFFFFFFAA, "Você clicou no textdraw!");
CancelSelectTextDraw(playerid);
}
return 1;
}
Quando o jogador entrar no servidor, será criado um textdraw com todas as definições na callback OnPlayerConnect e quando o jogador clicar na textdraw automaticamente será mandado uma mensagem e a opção de selecionar será desativada.