Respawn All Command..
#1

Here is my command. I've no idea whats wrong with it, I've tried multiple times to fix it...

pawn Код:
CMD:respawnall(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
        for(new v=0; v<MAX_VEHICLES; v++)
        {
            if(!IsVehicleOccupied(v))
            {
                new string[128];
                SetVehicleToRespawn(v);
                format(string, 256, "[AdmCmd] %s has respawned all unoccupied vehicles", GetPlayerNameEx(playerid));
                SendGlobalMessage(COLOR_ADMIN, string);
                return 1;
            }
        }
    }
    else {
        SendClientMessage(playerid, COLOR_RED, "You are not allowed to use this command.");
    }
    return 1;
}
pawn Код:
stock IsVehicleOccupied(vehicleid)
{
    new playerstate;
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerConnected(i))
        {
            playerstate = GetPlayerState(i);
            if(playerstate == PLAYER_STATE_DRIVER || playerstate == PLAYER_STATE_PASSENGER)
            {
                if(IsPlayerInVehicle(i,vehicleid))
                {
                    return 1;
                }
            }
        }
    }
    return 0;
}
Reply
#2

pawn Код:
CMD:respawnall(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 2) return SendClientMessage(playerid, COLOR_RED, "You are not allowed to use this command.");
    for(new v=0; v<MAX_VEHICLES; v++)
    {
        if(!IsVehicleOccupied(v))
        {
            new string[128];
            SetVehicleToRespawn(v);
            format(string, 256, "[AdmCmd] %s has respawned all unoccupied vehicles", GetPlayerNameEx(playerid));
            SendGlobalMessage(COLOR_ADMIN, string);
        }
    }
    return 1;
}
pawn Код:
forward IsVehicleOccupied(vehicleid);
public IsVehicleOccupied(vehicleid)
{
    for(new i=0;i<MAX_PLAYERS;i++)
    {
        if(IsPlayerInVehicle(i,vehicleid)) return 1;
    }
    return 0;
}
Reply
#3

Was the problem that I was using a stock heading rather than public?
Reply
#4

Didn't work.
Reply
#5

pawn Код:
CMD:respawnall(playerid, params[])
{
    new string[128];
    if(PlayerInfo[playerid][pAdmin] >= 2) return SendClientMessage(playerid, COLOR_RED, "You are not allowed to use this command.");
    format(string, 256, "[AdmCmd] %s has respawned all unoccupied vehicles", GetPlayerNameEx(playerid));
    SendGlobalMessage(COLOR_ADMIN, string);
    for(new v=0; v<MAX_VEHICLES; v++)
    {
        if(!IsVehicleOccupied(v))
        {

            SetVehicleToRespawn(v);
            //format(string, 256, "[AdmCmd] %s has respawned all unoccupied vehicles", GetPlayerNameEx(playerid));
            //SendGlobalMessage(COLOR_ADMIN, string); This would spam you for evey vehicle
        }
    }
    return 1;
}
I cant see anything wrong with your command and the IsVehicleOccupied that Clive posted, works pefrect. However I found something that would spam you.
Reply
#6

Add print messages throughout the command and see which ones print and which do not. If one does not print, you know the code near it is the problem.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)