SA-MP Forums Archive
[Ajuda] IsPlayerInRangeOfPoint - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] IsPlayerInRangeOfPoint (/showthread.php?tid=581374)



IsPlayerInRangeOfPoint - Welconha - 12.07.2015

Й o seguinte, quando o player passar no icone da casa irб criar uma textdraw com as informaзхes, certo ?

Exemplo:
Код:
if( IsPlayerInRangeOfPoint( playerid, 3.0, CasaInfo[  ][ x ], CasaInfo[  ][ y ], CasaInfo[ ][ z ] ))
	        {
                       /// Chama textdraw tal, ok.
{
Mas aн a textdraw fica pra sempre, jб criei uma SetTimer sу que buga, dps do timer fica piscando a textdraw, jб tentei uma
Код:
else if( !IsPlayerInRangeOfPoint( playerid, 3.0, CasaInfo[  ][ x ], CasaInfo[  ][ y ], CasaInfo[ ][ z ] ))
mas nгo funfou, alguйm sabe me dizer um jeito de destruir a textdraw dps que o player sai da tal IsPlayerInRangeOfPoint ?
OBS: Jб tentei SetTimer, sу que buga a textdraw fica criando e excluiu, piscando muito rбpido, se o player continuar no icone da casa, me ajudem to comeзando agr


Re: IsPlayerInRangeOfPoint - ReDKiiL - 12.07.2015

Cria uma TextDraw para cada player, e quando ele entrar no range da casa vocк formata ela e mostra.
Quando ele sair vocк apenas da hide nela.


Re: IsPlayerInRangeOfPoint - Welconha - 12.07.2015

// Funзгo que chama quando estб no icone da casa
Quote:

format( gstring, 256, "~b~Casa ID ~w~%d - ~r~/Casa Info", CasaInfo[ c ][ CasaID] );
TextDrawSetString( CasaIDInfo, gstring );
TextDrawShowForPlayer( playerid, CasaIDInfo );
SetTimer( "OcultarIDInfo", 5000, false );

Quote:

forward OcultarIDInfo( playerid );
public OcultarIDInfo( playerid )
{
TextDrawHideForPlayer( playerid, CasaIDInfo );
return 1;
}

Sу que dps que passa os 5 segs, nгo estabiliza, fica piscando rapidamente a textdraw, eu quero q estabilize, fique fixa, sу destruir quando sair do icone.


Re: IsPlayerInRangeOfPoint - ReDKiiL - 12.07.2015

Vocк estб usando SetTimer, acho que vocк deveria usar SetTimerEx....


Re: IsPlayerInRangeOfPoint - Welconha - 12.07.2015

Deu no mesmo, continua piscando dps do tempo =\

Код:
SetTimerEx( "OcultarIDInfo", 5000, false, "d", playerid );
Estб certo ?


Re: IsPlayerInRangeOfPoint - ReDKiiL - 12.07.2015

Nгo sou um bom vidente, mais eu acho que vocк vai ter que colocar uma variavel para verificar se a textdraw jб estб a mostra! Eu acho que seu Timer que fica em loop esperando o player entrar no range, estб executando sempre mesmo quando jб estб aparecendo a TextDraw, e quando passa os 5seg ele mostra denovo.
Tenta colocar uma variavel para verificar se ele jб estб vendo a TextDraw e depois que passar os 5seg vocк reseta a variavel.


Re: IsPlayerInRangeOfPoint - Welconha - 12.07.2015

Acho que й isso mesmo que vocк disse, estб executando direto a textdraw direto, atй mesmo quando ela jб estб ativa.
Tem como me dar uma exemplo de como fazer a verificaзгo ?


Re: IsPlayerInRangeOfPoint - ReDKiiL - 12.07.2015

Vocк faz uma verificaзгo antes de mostrar a variavel! Exemplo: if(GetPVarInt(playerid,"tdshow") == 0)
Dai quando mostrar a TextDraw: SetPVarInt(playerid,"tdshow",1);
Dai quando ocultar SetPVarInt(playerid,"tdshow",0);


Re: IsPlayerInRangeOfPoint - Welconha - 12.07.2015

Demorei pra sanar, mas entendi e consegui, muito obrigado man
Dei +REP, nгo sei se vai constar, pq nгo entendo esse sistema de reputaзгo daqui .-.'