Need help (SetVehicleToRespawn)
#1

When i do /REUNCARS it respawns all cars ... but it should only respawn UNOCCUPIED cars

it would be verry nice if someone can help

PHP код:
//RESPAWN ALL UNOCCUPIED CARS
    
if(!strcmp("/REUNCARS"cmdtexttrue))
    {
         new 
AdminChk AdminStatus(playerid);
        if(
AdminChk >= && AdminChk <= 7)
        {
            new 
PlayerName[P_MAX_NAMELEN], Message[100];
            
GetPVarString(playerid"P_JoinName"PlayerNamesizeof(PlayerName));
            for(new 
Veh 0Veh <= MAX_VEHICLESVeh++)
            {
                for(new 
Pla 0Pla <= S_MAX_PLAYERSPla++)
                {
                    if(!
IsPlayerInVehicle(PlaVeh))
                    {
                        
SetVehicleToRespawn(Veh);
                    }
                }
            }
            
format(Messagesizeof(Message),"ADMIN: %s(%i) Respawned all unoccupied cars"PlayerNameplayerid);
            
SndAdminMgs(Message2);
            return 
1;
         }
    } 
Reply
#2

Use IsVehicleOccupied or something to detect if it's occupied or not. Also, your code is very stretched out when it doesn't have to be so confusing, and stretched out because your not using a stock to detect if it's taken.

After a quick ****** search I found this:
pawn Код:
stock IsVehicleOccupied(vehicleid) // Returns 1 if there is anyone in the vehicle
{
    foreach(Player,i)
    {
        if(IsPlayerInAnyVehicle(i))
        {
            if(GetPlayerVehicleID(i)==vehicleid)
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
    }
}
Source: https://sampforum.blast.hk/showthread.php?tid=235783
Reply
#3

pawn Код:
//RESPAWN ALL UNOCCUPIED CARS
    if(!strcmp("/REUNCARS", cmdtext, true))
    {
        new AdminChk = AdminStatus(playerid);
        if(AdminChk >= 5 && AdminChk <= 7)
        {
            new PlayerName[P_MAX_NAMELEN], Message[100];
            GetPVarString(playerid, "P_JoinName", PlayerName, sizeof(PlayerName));
            for(new Veh = 0; Veh <= MAX_VEHICLES; Veh++)
            {
                if(UnoccupiedVehicle(Pla))
                {
                    SetVehicleToRespawn(Veh);
                }
            }
            format(Message, sizeof(Message),"ADMIN: %s(%i) Respawned all unoccupied cars", PlayerName, playerid);
            SndAdminMgs(Message, 2);
            return 1;
         }
    }
   
stock UnoccupiedVehicle(vehicleid)
{
    foreach(Player, i) if(IsPlayerInVehicle(i,vehicleid)) return 0;
    return 1;
}
Reply
#4

thanks ill try that
Reply
#5

pawn Код:
//RESPAWN ALL UNOCCUPIED CARS
if(!strcmp("/REUNCARS", cmdtext, true))
{
    if(5 <= AdminStatus(playerid) <= 7)
    {
        new PlayerName[P_MAX_NAMELEN], bool:VehUsed[MAX_VEHICLES char], Message[100];
        GetPVarString(playerid, "P_JoinName", PlayerName, sizeof(PlayerName));

        for(new Pla = 0; Pla < S_MAX_PLAYERS; Pla++)
            if(IsPlayerConnected(Pla) && GetPlayerVehicleID(Pla))
                VehUsed{GetPlayerVehicleID(Pla)} = true;

        for(new Veh = 1; Veh < MAX_VEHICLES; Veh++)
            if(!VehUsed{Veh})
                SetVehicleToRespawn(Veh);

        format(Message, sizeof(Message),"ADMIN: %s(%i) Respawned all unoccupied cars", PlayerName, playerid);
        SndAdminMgs(Message, 2);
        return 1;
    }
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)