[Ajuda] Destruir apenas carros criado por Players
#1

Estou criando meu Servidor de Freeroam usando de base o Gamemode The Brasil Drift, quando eu uso /destruircarros, todos os carros do servidor sгo destruidos, queria que apenas os que foram criado pelos players fossem destruidos, mas nгo entendo o comando.

pawn Код:
if(strcmp(cmd, "/DestruirCarros", true) == 0)
    {
        new string[148];
        new sendername[MAX_PLAYER_NAME];
        GetPlayerName(playerid, sendername, sizeof(sendername));
        if(pDados[playerid][Admin] < 1 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, CINZA, "{00FF00}[TMF] {FFFFFF}Somente Administrador Level 1 ou superior.");
        format(string, sizeof(string), "{A9A9A9}[Administraзгo] O Admin {FF0000}%s {A9A9A9}Deletou todos os carros vazios", sendername);
        SendClientMessageToAll(0x00FF00FF, string);
        new bool:vehicle[MAX_VEHICLES];
        for(new j = 0; j < MAX_VEHICLES; ++j)
        {
            vehicle[j] = false;
            for(new p = 0; p < MAX_PLAYERS; ++p)
            {
                if(!IsPlayerInAnyVehicle(p) || !IsPlayerConnected(p)) continue;
                if(IsPlayerInVehicle(p, j))
                {
                    vehicle[j] = true;
                    break;
                }
            }
            if(!vehicle[j]) DestroyVehicle(j);
        }
        return 1;
    }
Meu servidor tem no GM 122 Veнculos, entгo Id dos veнculos vгo atй 121 eu acho. Como faзo para esses carros nгo serem destruidos?
Reply
#2

Cria uma variбvel per-vehicle

PHP код:
new bool:PlayerVehicle[MAX_VEHICLES]; 
Quando um jogador criar um veнculo:

PHP код:
new id CreateVehicle...
PlayerVehicle[id] = true
E entгo para destruir, passe um loop por todos os veнculos, verificando qual й de Player...

PHP код:
for(new iMAX_VEHICLES; ++i)
{
    if(
PlayerVehicle[i])
    {
        
PlayerVehicle[i] = false;
        
DestroyVehicle(i);
    }

Reply
#3

Agora estou com outro problema, como faзo para deletar apenas carros vazio?
Reply
#4

Faзa uma verificaзгo, se algum player estб dentro dele:

PHP код:
stock IsVehicleOccupied(vehicleid)
{
    for(new 
iMAX_PLAYERS; ++i)
    {
        if(
IsPlayerConnected(i))
        {
            if(
IsPlayerInVehicle(i,vehicleid))
                return 
1;
        }
    }
    return 
0;

entгo vocк pode aplicar dentro do primeiro loop que te passei

PHP код:
if(PlayerVehicle[id] && !IsVehicleOccupied(id)) 
Reply
#5

Funcionou, +Rep
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)