[Ajuda] IsPlayerInRangeOfPoint
#1

Й 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
Reply
#2

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.
Reply
#3

// 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.
Reply
#4

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

Deu no mesmo, continua piscando dps do tempo =\

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

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.
Reply
#7

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 ?
Reply
#8

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);
Reply
#9

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 .-.'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)