[Ajuda] Respawn Carros
#1

Bom galera o meu comando de respawncarros (carros sem uso) funciona, mais ele respawna os trailers tambem.Como faзo para ele nгo respawnar os trailers em uso.Obg.
pawn Код:
COMMAND:respawncarros(playerid, params[])
{
SendAdminText(playerid, "/respawncarros", params);
if (APlayerData[playerid][PlayerLevel] < 3) return 0;
ResetarVeiculos();
new Msg[300], Name[24];
GetPlayerName(playerid, Name, sizeof(Name));
format(Msg, 300, "{00BFFF}O Adminstrador {FFFFFF}%s {00BFFF}resetou todos os veiculos desocupados.",Name);
SendClientMessageToAll(0xFF99AADD, Msg);
return true;
}
stock ResetarVeiculos()
{
    new inVeh;
    for( new i = 0; i < MAX_VEHICLES; i++ )
    {
        inVeh = false;
        for( new j = 0; j < GetMaxPlayers(); j++ )
        {
            if(IsPlayerInVehicle( j, i ))
            {
                inVeh = true;
                break;
            }
        }
        if(!inVeh)
        {
            SetVehicleToRespawn(i);
        }
    }
    return true;
}
Reply
#2

Acho que й isso: IsTrailerAttachedToVehicle


PS: diminui o 'new Msg[300]' pra 128 (ou menos) vocк nгo usa mais que isso ._.
Reply
#3

@edit2 eu nгo sabia o que era trailer, pra mim era um carro, nгo gosto de caminhoneiro kk' Faz o que o dono do BCF falou
Reply
#4

Poderia dar um exemplo do 1є metodo?
Reply
#5

Isto deve resolver o seu problema :


pawn Код:
stock ResetarVeiculos()
{
    static bool:TrailerEmUso[MAX_VEHICLES];
    new Ciclo = 1;
    for(new x = 1; x <= MAX_VEHICLES; x++)
    {
        switch(Ciclo)
        {
            case 1:
            {
                if(IsTrailerAttachedToVehicle(x))
                {
                    TrailerEmUso[GetVehicleTrailer(x) - 1] = true;
                }
            }
            case 2:
            {
                new bool:Ocupado;
                for(new y = 0, z = GetMaxPlayers(); y != z; y++)
                {
                    if(IsPlayerInVehicle(y, x))
                    {
                        Ocupado = true;
                    }
                }
                if(!Ocupado && !TrailerEmUso[x - 1])
                {
                    SetVehicleToRespawn(x);
                }
            }
            case 3:
            {
                TrailerEmUso[x - 1] = false;
            }
        }
        if(x == MAX_VEHICLES && Ciclo < 3)
        {
            x = 0;
            Ciclo++;
        }
    }
    return true;
}


Espero ter ajudado .
Reply
#6

Vlw rjjj funciono perfeitamente +REP
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)