Por que isso nгo funciona? -
WiliHacking - 26.03.2019
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.0, playerid, 1481.0116, -1771.4191, 18.7958) && LiberarES[playerid] == 0)
{
if(!IsPlayerInAnyVehicle(playerid))
{
SetPlayerPos(playerid, );
SetPlayerInterior(playerid, );
SetCameraBehindPlayer(playerid);
LiberarES[playerid] = 1;
GetPlayerPos(playerid, pEntradaX[playerid], pEntradaY[playerid], pEntradaZ[playerid]);
}
}
else if(!PlayerToPoint(3.0, playerid, pEntradaX[playerid], pEntradaY[playerid], pEntradaZ[playerid]))
{
if(LiberarES[playerid] == 1)
{
LiberarES[playerid] = 0;
}
}
return 1;
}
Re: Por que isso nгo funciona? -
Scorpion659 - 26.03.2019
Tenta trocar o playertopoint para:
https://sampwiki.blast.hk/wiki/IsPlayerInRangeOfPoint
Re: Por que isso nгo funciona? -
WiliHacking - 26.03.2019
Continua a mesma coisa... Nгo to entendendo por que essa merd* nгo funciona.
Re: Por que isso nгo funciona? -
MtPlayerZ - 26.03.2019
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(playerid, rad, 2695.6880, -1704.6300, 11.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?
Re: Por que isso nгo funciona? -
WiliHacking - 27.03.2019
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(playerid, 2.0, 1494.4199, 1304.1959, 1093.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(playerid, 2.0, pEntradaX[playerid], pEntradaY[playerid], pEntradaZ[playerid]))
{
SendClientMessage(playerid, -1, "EU ESTOU FORA");
}
else SendClientMessage(playerid, -1, "EU ESTOU DENTRO");
Re: Por que isso nгo funciona? -
Felipealves - 27.03.2019
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]);
Re: Por que isso nгo funciona? -
WiliHacking - 27.03.2019
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.