27.08.2016, 21:15
(
Последний раз редактировалось Whoo; 08.09.2016 в 17:56.
)
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.
TextDrawTextSize (Text:text, EixoX, EixoY);
Код:
EixoX equivale a esquerda e direita. EixoY equivale a cima e baixo.
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);
Код:
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.
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.
Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid) { if(clickedid == Text:INVALID_TEXT_DRAW) { /* eu poderia tornar clicavel novamente ou esconder as textdraws */ } return 1; }