Textdraw Selecionбveis - Whoo - 27.08.2016
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;
}
Re: Textdraw Selecionбveis -
PetrickSchoba - 27.08.2016
Valeu... Eu sempre gostei de Textdraw Selecionбveis, Jб fiz uns 3 e depois nunca mais consegui pegar as coordenadas corretas do box... isso tirou uma grande dъvida e.... Jб vou fazer um novo aqui rsrs
Re: Textdraw Selecionбveis - Carlos001 - 27.08.2016
Muito bom!! Ajudara muitos novatos
Re: Textdraw Selecionбveis - Ender_ - 27.08.2016
Nice !!
bom tutorial cara, vai ajudar muita gente.. inclusive eu u.u hehe
+REP @EDIT, ja dei reputaзгo em outro post ;-; ai n da +
Re: Textdraw Selecionбveis -
HaRdiiZin - 27.08.2016
Tutorial legal, apesar de eu nгo fazer dessa maneira.
Parabйns pela iniciativa..
Re: Textdraw Selecionбveis - Whoo - 28.08.2016
Quote:
Originally Posted by PetrickSchoba
Valeu... Eu sempre gostei de Textdraw Selecionбveis, Jб fiz uns 3 e depois nunca mais consegui pegar as coordenadas corretas do box... isso tirou uma grande dъvida e.... Jб vou fazer um novo aqui rsrs
|
Quote:
Originally Posted by Carlos001
Muito bom!! Ajudara muitos novatos
|
Quote:
Originally Posted by Ender_
Nice !!
bom tutorial cara, vai ajudar muita gente.. inclusive eu u.u hehe
+REP @EDIT, ja dei reputaзгo em outro post ;-; ai n da +
|
Quote:
Originally Posted by HaRdiiZin
Tutorial legal, apesar de eu nгo fazer dessa maneira.
Parabйns pela iniciativa..
|
que bom que vai ser ъtil
, acredito que haja outras maneiras.
Re: Textdraw Selecionбveis -
arakuta - 31.08.2016
Bom tutorial, mas nгo hб necessidade de usar box.
Re: Textdraw Selecionбveis - Whoo - 31.08.2016
Quote:
Originally Posted by arakuta
Bom tutorial, mas nгo hб necessidade de usar box.
|
vlw, boa observaзгo sу utilizando
TextDrawTextSize ja ira funcionar.
Re: Textdraw Selecionбveis - Ender_ - 08.09.2016
@Whoo
bom.. eu gostaria de tirar uma duvida .. que acho atй muito importante..
Eu estou fazendo meu Login/Registro em textdraw clicaveis .. e percebi que ..
se eu sair do servidor .. e entrar novamente, a textdraw nгo aparece mais ..
porque isso estб acontecendo ?
o TextDrawShowForPlayer estб na == public OnPlayerConnect(playerid)
entгo.. ele deveria aparecer quando o player se conectar ..
( como n aparece.. fico necessбrio a reiniciar o GM sempre )
tem alguma soluзгo ?
Re: Textdraw Selecionбveis -
F1N4L - 08.09.2016
Cria o TD para o player.
https://sampwiki.blast.hk/wiki/PlayerTextDrawShow