[Ajuda] PlayerToPoint
#1

Eae galera, sussa?

Pois bem, estou tentando localizar os carros mais prуximos ao player, e do geito que estou fazendo, sempre cai no mesmo carro.
o geito que eu estou tentando fazer й ver qual carro estб mais proximo do player e setar o checkpoint no carro

aguardo ajuda.

Codigo:
pawn Код:
for(new i=0; i<20;i++)//quantidade de carros existentes
        {
            new Float:x, Float:y, Float:z;
            GetVehiclePos(VipCar[i], x, y, z);
            if(PlayerToPoint(20.0, playerid, x,y,z))
            {
                SetPlayerCheckpoint(playerid, x, y, z,5.0);
                return SendClientMessage(playerid, -1, "{FF4500}-> {FFFFFF}Carro Vip Localizado!");
            }
            else if(PlayerToPoint(50.0, playerid, x,y,z))
            {
                SetPlayerCheckpoint(playerid, x, y, z,5.0);
                return SendClientMessage(playerid, -1, "{FF4500}-> {FFFFFF}Carro Vip Localizado!");
            }
        }
Reply
#2

Tente:
pawn Код:
for(new i=0; i<20;i++)//quantidade de carros existentes
        {
            new Float:x, Float:y, Float:z, Float:Dis;
           
            GetVehiclePos(VipCar[i], x, y, z);
            GetPlayerDistanceFromPoint(playerid,x,y,z,dis);

            if(IsPlayerInRangeOfPoint(playerid, dis, x,y,z))
            {
                SetPlayerCheckpoint(playerid, x, y, z,5.0);
                return SendClientMessage(playerid, -1, "{FF4500}-> {FFFFFF}Carro Vip Localizado!");
            }
        }
Reply
#3

deu essa warning

pawn Код:
warning 202: number of arguments does not match definition
Linha do warning

pawn Код:
GetPlayerDistanceFromPoint(playerid,x,y,z,dis);
Nao entendi esse dis ae '-'
Reply
#4

Isto deve funcionar.
pawn Код:
for(new i = 0; i !=MAX_VEHICLES;++i)
{
    new Float:x, Float:y, Float:z;
    GetVehiclePos(VipCar[i], x, y, z);
    if(IsPlayerInRangeOfPoint(playerid,50.0,x,y,z)
    {
        SetPlayerCheckpoint(playerid, x, y, z,5.0);
        return SendClientMessage(playerid, -1, "{FF4500}-> {FFFFFF}Carro Vip Localizado!");
    }
}
Reply
#5

vc so esqueceu de colocar um ) no fim de cada if

Mas tem uma coisa, e se 2 carros estiverem perto, como faзo pro checkpoint aparecer no mais perto de mim
Reply
#6

Tenta isso.
pawn Код:
for(new i = 0; i !=MAX_VEHICLES;++i)
{
    new Float:x, Float:y, Float:z,carro = 0;
    GetVehiclePos(VipCar[i], x, y, z);
    if(IsPlayerInRangeOfPoint(playerid,50.0,x,y,z))
    {
        carro++;
        if(carro == 1)
        {
          SetPlayerCheckpoint(playerid, x, y, z,5.0);
          return SendClientMessage(playerid, -1, "{FF4500}-> {FFFFFF}Carro Vip Localizado!");
        }
        else return 0;
    }
}
Reply
#7

leonardo, essa sua logica nao da certo, vai ser a mesma coisa que a anterior sua.

mas tipo, se tiver 2 carros pertos um do outro, como faзo pro checkpoint ficar no que estб mais perto do player
Reply
#8

Vocк jб testou? se sim, diga o porque que nгo funcionou que irei verificar onde foi meu erro.
Reply
#9

Espero que tenha entendido.
pawn Код:
for(new i = 0; i !=MAX_VEHICLES;++i) // criamos um loop, ele irб de 0 atй o numero que estб definido o MAX_VEHICLES(nгo lembro agora).
{// aqui recomeзar a funзгo, ele vai fazer tudo de novo, atй que o loop seja completo.
    new Float:x, Float:y, Float:z,carro = 0; // criamos variбveis, a variбvel carro servirб para contar quando veнculos estгo por perto.
    GetVehiclePos(VipCar[i], x, y, z);// pegando a posiзгo, de todos os carros definidos pela array vipcar.
    if(IsPlayerInRangeOfPoint(playerid,50.0,x,y,z)) // verificamos se o jogador estб perto de tais posiзхes.
    { // caso esteja, irб aumentar o valor de carro, que й 0 para 1.
        carro++; // na 2 segunda ver que executar, a var carro nгo serб um, serб 2 e assim por diante.
        if(carro == 1) // jб que a var estб um, que й para o primeiro carro ele irб executar a funзгo.
        {
          SetPlayerCheckpoint(playerid, x, y, z,5.0);
          return SendClientMessage(playerid, -1, "{FF4500}-> {FFFFFF}Carro Vip Localizado!");
        }
        else return 0; // caso seja diferente de 1, retornarб falso.
    }
    // aqui acaba a funзгo.
}
// caso nгo funcione, apenas criar a var carro fora do loop e reinicia-la caso a funзгo seja verdadeira.
Reply
#10

Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
Espero que tenha entendido.
pawn Код:
for(new i = 0; i !=MAX_VEHICLES;++i) // criamos um loop, ele irб de 0 atй o numero que estб definido o MAX_VEHICLES(nгo lembro agora).
{// aqui recomeзar a funзгo, ele vai fazer tudo de novo, atй que o loop seja completo.
    new Float:x, Float:y, Float:z,carro = 0; // criamos variбveis, a variбvel carro servirб para contar quando veнculos estгo por perto.
    GetVehiclePos(VipCar[i], x, y, z);// pegando a posiзгo, de todos os carros definidos pela array vipcar.
    if(IsPlayerInRangeOfPoint(playerid,50.0,x,y,z)) // verificamos se o jogador estб perto de tais posiзхes.
    { // caso esteja, irб aumentar o valor de carro, que й 0 para 1.
        carro++; // na 2 segunda ver que executar, a var carro nгo serб um, serб 2 e assim por diante.
        if(carro == 1) // jб que a var estб um, que й para o primeiro carro ele irб executar a funзгo.
        {
          SetPlayerCheckpoint(playerid, x, y, z,5.0);
          return SendClientMessage(playerid, -1, "{FF4500}-> {FFFFFF}Carro Vip Localizado!");
        }
        else return 0; // caso seja diferente de 1, retornarб falso.
    }
    // aqui acaba a funзгo.
}
// caso nгo funcione, apenas criar a var carro fora do loop e reinicia-la caso a funзгo seja verdadeira.

Eu sei o que voce comentou (pedi so o do carro kkkkkkkkkkk Sem ofensas amigo) , obrigado por isso, agora entendi o porque da variavel carro, pois ela serve de controle.

Testarei e em breve direi se funcionou ou nao =D


Quote:
Originally Posted by Victor'
Посмотреть сообщение
No GF eu acho que tem algo parecido na parte de guinchar/reparar carros.
Nao entendi isso amigo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)