[Tutorial] Textdraw Selecionбveis
#1

Textdraw Selecionбveis

Olб pessoal, venho atravйs deste tуpico ensinar a vocк que ainda nгo sabe a como criar uma textdraw clicбvel/selecionбvel, primeiramente vamos precisar de um editor de textdraw as textdraw pode ser criada manualmente mas nгo recomendбvel pois й muito trabalhoso ja que tem que saber as coordenadas da tela entгo vou recomendar alguns editores.. Zamaroth e iPLEOMAX's TextDraw Editor, eu utilizo o Zamaroth e ele supriu minhas necessidades ja o iPLEOMAX's ainda nгo utilizei porйm recomendo pois muitas pessoas usam e nгo tiveram problema algum.



PlayerTextDraw ou TextDraw normal ?

quando criamos uma textdraw selecionбvel deve-se utilizar PlayerTextDraw pois й criado pra cada player quando criamos uma textdraw selecionбvel й com o intuito de fazer alguma execuзгo/alteraзгo para o player, seja mostrar uma dialog ou mostrar a informaзгo especifica do player exemplo o score.. Textdraw normal й criada para todos entгo devemos utiliza-la quando queremos algo para todos os players como exemplo mostrar os players online... ela pode ser utilizada em qualquer ocasiгo que ela nгo sofra alteraзгo para mais informaзхes leia este tutorial.


Criando a textdraw:


primeiro vocк precisa ter o texto que quer deixar selecionбvel, crie uma box no texto, puxe a box para baixo do texto como na imagem com isso o TextDrawTextSize o eixo X ja vai estar no tamanho ideal restando consertar o Eixo Y.



depois vocк sу precisa deixar a box transparente se quiser. 00 no alpha.




agora sу exportar como PlayerTextDraw no zamaroth tem essa opзгo no iPLEOMAX's ja nгo sei.. se nгo tiver й sу vocк alterar manualmente. OBS: as bases pode ser em TextDraw normal como ja foi dito.

Код:
Textdraw0 = TextDrawCreate(310.000000, 140.000000, "test");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 2);
TextDrawLetterSize(Textdraw0, 0.390000, 2.100000);
TextDrawColor(Textdraw0, -1);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
TextDrawUseBox(Textdraw0, 1);
TextDrawBoxColor(Textdraw0, 0);
TextDrawTextSize(Textdraw0, 350.000000, 0.000000);
TextDrawSetSelectable(Textdraw0, 0);

vamos deixar a textdraw selecionбvel utilizando TextDrawSetSelectable:

Код:
TextDrawSetSelectable(ID_TEXTDRAW, true); 1 = selecionбvel 0 = nгo selecionбvel.
agora vamos focar em TextDrawTextSize й aonde podemos fazer com que fique clicбvel ..


TextDrawTextSize (Text:text, EixoX, EixoY);

Код:
EixoX equivale a esquerda e direita.
EixoY equivale a cima e baixo.
repare que o eixo Y esta zerado pra que fique clicбvel devemos aumentar, normalmente eu coloca 1 na frente do zero e ja й o bastante, funciona normalmente e ai sim a textdraw ira funcionar normalmente.

TextDrawTextSize(Textdraw0, 350.000000, 10.000000);


agora й sу mostrar a textdraw e ativar o ponteiro com SelectTextDraw, depois para cancelar CancelSelectTextDraw.

Код:
TextDrawShowForPlayer(playerid, Textdraw0);
SelectTextDraw(playerid, 0x00FF00FF);
cуdigo pronto e funcionando..

Код:
Textdraw0 = TextDrawCreate(310.000000, 140.000000, "test");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 2);
TextDrawLetterSize(Textdraw0, 0.390000, 2.100000);
TextDrawColor(Textdraw0, -1);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
TextDrawUseBox(Textdraw0, 1);
TextDrawBoxColor(Textdraw0, 0);
TextDrawTextSize(Textdraw0, 350.000000, 10.000000); // eixo y com 10.000000 diferente de 0.000000
TextDrawSetSelectable(Text:Textdraw0, true);// agora esta selecionavel.
quando se clica em uma textdraw й chamado uma callback, OnPlayerClickTextDraw para textdraw normal e OnPlayerClickPlayerTextDraw para PlayerTextDraw.

clickedid = ID DA TEXTDRAW CLICADA

Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == Textdraw0)
    {
         SendClientMessage(playerid, 0xFFFFFFAA, "You clicked on a textdraw.");
         CancelSelectTextDraw(playerid);
    }
    return 1;
}
Код:
if(clickedid == Text:INVALID_TEXT_DRAW) // OnPlayerClickTextDraw funciona.
if(playertextid ==  PlayerText:INVALID_TEXT_DRAW) // OnPlayerClickPlayerTextDraw nгo funciona.
quando o player aperta a tecla "ESC" automaticamente o ponteiro da textdraw some, para que nгo aconteзa isso devemos verificar se ele clicou em ESC utilizando INVALID_TEXT_DRAW, em OnPlayerClickTextDraw a tecla ESC retorna como INVALID_TEXT_DRAW, o ъnico problema й que a callback OnPlayerClickPlayerTextDraw nгo reconhece quando clicamos em ESC, por isso mesmo utilizando PlayerTextDraw devemos verificar se foi apertado ESC em OnPlayerClickTextDraw.


Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
	
    if(clickedid == Text:INVALID_TEXT_DRAW)
    {
	/* eu poderia tornar clicavel novamente ou esconder as textdraws */
    }
    return 1;
}
Reply


Messages In This Thread
Textdraw Selecionбveis - by Whoo - 27.08.2016, 21:15
Re: Textdraw Selecionбveis - by PetrickSchoba - 27.08.2016, 21:53
Re: Textdraw Selecionбveis - by Carlos001 - 27.08.2016, 21:59
Re: Textdraw Selecionбveis - by Ender_ - 27.08.2016, 22:00
Re: Textdraw Selecionбveis - by HaRdiiZin - 27.08.2016, 22:38
Re: Textdraw Selecionбveis - by Whoo - 28.08.2016, 18:18
Re: Textdraw Selecionбveis - by arakuta - 31.08.2016, 00:02
Re: Textdraw Selecionбveis - by Whoo - 31.08.2016, 01:01
Re: Textdraw Selecionбveis - by Ender_ - 08.09.2016, 03:00
Re: Textdraw Selecionбveis - by F1N4L - 08.09.2016, 13:11

Forum Jump:


Users browsing this thread: 1 Guest(s)