Quote:
Originally Posted by Bruno13
O que F1NAL apresentou й um dos mйtodos, mas acho que hб maneiras melhores de nгo se utilizar tanto processamento...
PHP код:
static
bool:spawned[MAX_PLAYERS],
bool:playerInPlace[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
spawned[playerid] = false;
return 1;
}
public OnPlayerSpawn(playerid)
{
if(!spawned[playerid])
{
spawned[playerid] = true;
playerInPlace[playerid] = false;
SetTimerEx("CheckPlayerInPlace", 2000, false, "i", playerid);
}
return 1;
}
forward CheckPlayerInPlace(playerid);
public CheckPlayerInPlace(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 7.0, 0.0, 0.0, 0.0))
{
if(!playerInPlace[playerid])
{
playerInPlace[playerid] = true;
//Mostra o TD
}
}
else if(playerInPlace[playerid])
{
playerInPlace[playerid] = false;
//Oculta TD
}
}
Na lуgica acima, verificarб de 2 em 2 segundos se o jogador estб no local indicado, logo, caso esteja, a TextDraw serб mostrada apenas uma vez, e quando sair, a TextDraw serб ocultada tambйm uma ъnica vez.
Altere o intervalo do timer a seu gosto, mas creio que 2 segundos seja suficiente.
|
Na verdade, no exemplo do F1NAL criaria apenas um time para ver se estб ou nгo na бrea. No seu caso, criaria mais de um.