[Ajuda] Verificar se o veнculo estб ocupado
#1

Criei um evento de corrida queria que cada jogador fosse colocado em um veiculo que nao esteja ocupado tentei fazer mas nao da certo tem hora que o player e setado em um veiculo que ja estб ocupado.

pawn Код:
new Carro[20];


    if(dialogid == 666)
    {
        if(response == 0)
        {
            SendClientMessage(playerid, COR_RED, "Voce Optou por nao ir no Evento!");
            TrazerKart[playerid] = 0;
            return 1;
        }
        if(response == 1)
        {
            if(PlayerInfo[playerid][pJailed] != 0)
            {
                SendClientMessage(playerid,COR_RED,"ERRO* voce esta preso e nao pode ir no Evento!");
                TrazerKart[playerid] = 0;
                return 0;
            }
            new tmp[128];
            new plo, world;
            plo = ReturnUser(tmp);
            world = GetPlayerVirtualWorld(playerid);
            new tmpcar = GetPlayerVehicleID(playerid);
            SetPlayerVirtualWorld(plo,world);
            RemovePlayerFromVehicle(tmpcar);
            SetVehicleToRespawn(GetPlayerVehicleID(playerid));
            SetPlayerVirtualWorld(plo,world);
            ResetPlayerWeaponsEx(playerid);
           PlayerInfo[playerid][pTrazerKart] = 1;
            SendClientMessage(playerid,COR_RED,"Bem vindo ao evento!");
            for(new i=0; i<MAX_PLAYERS; i++)
            {
                if(PlayerInfo[i][pTrazerKart] == 1)
                {
                   if(!IsPlayerInVehicle(i, Carro[random(20)]))
                   {
                      SetPlayerInterior(i,0);
                      PutPlayerInVehicle(i, Carro[random(20)], 0);
                      Jogadoreskart++;
                      EVENTO[i] = 1;
                      SetPlayerRaceCheckpoint(i,1,-1341.8914,-671.3342,1055.9453,0.0,0.0,0.0,10.0);
                   }
                }
             }
         }
         return 1;
    }
Reply
#2

ai tens a funcao que verifica

pawn Код:
stock IsVehicleOccupied(vehicleid) // Returns 1 if there is anyone in the vehicle
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerInAnyVehicle(i))
        {
            if(GetPlayerVehicleID(i)==vehicleid)
                return 1;
        }
    }
    return 0;
}
Reply
#3

Quote:
Originally Posted by PT
Посмотреть сообщение
ai tens a funcao que verifica

pawn Код:
stock IsVehicleOccupied(vehicleid) // Returns 1 if there is anyone in the vehicle
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerInAnyVehicle(i))
        {
            if(GetPlayerVehicleID(i)==vehicleid)
                return 1;
        }
    }
    return 0;
}
Obrigado man, mas como faзo pra colocar ela pra verificar os veiculos ->> Carro[random(20) ?
Reply
#4

fazes um if tipo isto:
pawn Код:
if(vehicleid == Carro[random(20))
isto verifica se o veiculo onde o jogador i estб й o mesmo que o carro[random(20)] ou seja a seguir a isto vem a linha de codigo para o caso do carro estiver ocupado, mas isto jб deves saber.
Reply
#5

Quote:
Originally Posted by Kimossab
Посмотреть сообщение
fazes um if tipo isto:
pawn Код:
if(vehicleid == Carro[random(20))
isto verifica se o veiculo onde o jogador i estб й o mesmo que o carro[random(20)] ou seja a seguir a isto vem a linha de codigo para o caso do carro estiver ocupado, mas isto jб deves saber.
Tentei colocar assim mas ta do mesmo geito tem hora que vai parar 2 players em 1 veiculo :S.

pawn Код:
for(new i=0; i<MAX_PLAYERS; i++)
            {
                if(PlayerInfo[i][pTrazerKart] == 1)
                {
                    new vehicleidx = GetPlayerVehicleID(i);
                    if(!vehicleidx && Carro[random(2)])
                    {
                      SetPlayerInterior(i,0);
                      PutPlayerInVehicle(i, Carro[random(2)], 0);
                      Jogadoreskart++;
                      EVENTO[i] = 1;
                      SetPlayerRaceCheckpoint(i,1,-1341.8914,-671.3342,1055.9453,0.0,0.0,0.0,10.0);
                    }
                }
            }
         }
         return 1;
    }
Reply
#6

ja falei uma vez a funcao para vc.

pawn Код:
stock IsVehicleOccupied(vehicleid)
{
    for(new zPT = 0; zPT < MAX_PLAYERS; zPT++)
    {
        if(IsPlayerInAnyVehicle(zPT))
            if(GetPlayerVehicleID(zPT) == vehicleid)
                return 1; // retorna 1 caso esteja
    }
    return 0; // retorna 0 caso nao esteja
}
como usar-la?

pawn Код:
if(variavel dos carros do evento)
{
    if(!IsVehicleOccupied(carroid))
        PutPlayerInVehicle(playerid, carroid, 0);
}
eu deixei tudo mais ou menos explicado, e facil entender, mas para vc pegar todos os carros do evento usa um loop

p.s: respondi pq vc mando PM, pq eu ja lhe tinha dado o que precisa
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)