[Ajuda] Por que isso nгo funciona?
#1

Bom, criei esse Timer para verificar quando o player chegar perto da coordenada especificada e ai ele teleportar... Ai criei essa variбvel para que ele nгo fique saindo e entrando infinitamente, mas acontece que nгo estб funcionando, se alguйm puder ajudar eu agradeзo.
PHP код:
// OnPlayerConnect
LiberarES[playerid] = 0;
public 
TimerEntradas(playerid)
{
    if(
PlayerToPoint(1.0playerid1481.0116, -1771.419118.7958) && LiberarES[playerid] == 0)
    {
        if(!
IsPlayerInAnyVehicle(playerid))
        {
            
SetPlayerPos(playerid, );
            
SetPlayerInterior(playerid, );
            
SetCameraBehindPlayer(playerid);
            
LiberarES[playerid] = 1;
            
GetPlayerPos(playeridpEntradaX[playerid], pEntradaY[playerid], pEntradaZ[playerid]);
        }
    }
    else if(!
PlayerToPoint(3.0playeridpEntradaX[playerid], pEntradaY[playerid], pEntradaZ[playerid]))
    {
        if(
LiberarES[playerid] == 1)
        {
            
LiberarES[playerid] = 0;
        }
    }
    return 
1;

Reply
#2

Tenta trocar o playertopoint para:

https://sampwiki.blast.hk/wiki/IsPlayerInRangeOfPoint
Reply
#3

Continua a mesma coisa... Nгo to entendendo por que essa merd* nгo funciona.
Reply
#4

Quote:
Originally Posted by WiliHacking
Посмотреть сообщение
Continua a mesma coisa... Nгo to entendendo por que essa merd* nгo funciona.
Como o Scorpion disse, tente trocar
PHP код:
(PlayerToPoint(rad,playerid,X,Y,Z
por
PHP код:
IsPlayerInRangeOfPoint(playeridrad2695.6880, -1704.630011.8438
Essa funзгo que vc esta usando, й meio que "ultrapassada", e lembre-se da ordem dos parвmetros(playerid,raio,coords).Ali na sua funзгo o raio e o playerid estгo trocados.
Uma pergunta, onde e como vc esta chamando este Timer?
Reply
#5

Troquei o PlayerToPoint por IsPlayerInRangeOfPoint
Ai fiz alguns testes... Quando estб assim:
Com a coordenada do Interior que eu teleportei, funciona de boas, quando estou no Range fala que estou dentro e quando estou fora fala que estou fora.
PHP код:
if(!IsPlayerInRangeOfPoint(playerid2.01494.41991304.19591093.2891))
{
    
SendClientMessage(playerid, -1"EU ESTOU FORA");
}
else 
SendClientMessage(playerid, -1"EU ESTOU DENTRO"); 
Agora quando estб assim:
Com o pEntradaX[playerid], pEntradaY[playerid], pEntradaZ[playerid] ao invйs das coordenadas, o negуcio fica totalmente bugado, quando eu teleporto pela primeira vez fala que estou Dentro, ai depois acusa que estou fora, mesmo eu estando perto do Range... E removi o Timer para fazer o teste e coloquei um comando.
PHP код:
if(!IsPlayerInRangeOfPoint(playerid2.0pEntradaX[playerid], pEntradaY[playerid], pEntradaZ[playerid]))
{
    
SendClientMessage(playerid, -1"EU ESTOU FORA");
}
else 
SendClientMessage(playerid, -1"EU ESTOU DENTRO"); 
Reply
#6

Verifique os valores das variбveis, crie um comando e use isso, dps olhe no console quais й os valores use printf("%f %f %f", pEntradaX[playerid], pEntradaY[playerid], pEntradaZ[playerid]);
Reply
#7

Jб fiz isso ai mano, acho que descobri o problema... Quando seta o player em um interior e usa o GetPlayerPos meio que buga o IsPlayerInRangeOfPoint, eu retirei o sistema do player entrar no interior para testes e funcionou de boas, entгo tive a ideia de setar o Player no Interior e congelar ele e depois de 1 segundo descongelar ele e pegar a posiзгo, parece que estб funcionando... mas vou fazer mais alguns testes.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)