arrest player who is near not by id
#1

can anyone help me? convert this command into no id needed when he arrest player, and it will arrest a player with wanted and only who is near him? + rep to people who help

My Command
pawn Код:
dcmd_arrest(playerid,params[])
{
 new string[128];
    new ID;
    if(sscanf(params, "u", ID))
    {
        SendClientMessage(playerid,COLOR_ERROR,"AeroBot: /arrest (Player Name/ID)");
        return 1;
    }
    if(IsSpawned[playerid] != 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You must be alive and spawned in order to be able to use this command.");
        return 1;
    }
    if(IsKidnapped[playerid] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You are kidnapped. You cannot use this command.");
        return 1;
    }
    if(IsFrozen[playerid] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You have been frozen by a Server Administrator. You cannot use this command.");
        return 1;
    }
    if(gTeam[playerid] != TEAM_COP && gTeam[playerid] != TEAM_ARMY && gTeam[playerid] != TEAM_CIA)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Only law enforcement can arrest wanted suspects.");
        return 1;
    }
    if(!IsPlayerConnected(ID))
    {
        format(string,sizeof(string),"The player ID (%d) is not connected to the server. You cannot arrest them.",ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,ID) > 4)
    {
        format(string,sizeof(string),"%s(%d) is too far away. You cannot reach him to arrest him.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(IsCuffed[ID] == 0)
    {
        format(string,sizeof(string),"%s(%d) is not cuffed. You have to place the suspect in cuffs before attempted to arrest them.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot arrest a suspect while in a vehicle. Exit the vehicle first.");
        return 1;
    }
    if(GetPlayerState(ID) == PLAYER_STATE_DRIVER || GetPlayerState(ID) == PLAYER_STATE_PASSENGER)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot arrest a suspect they are in a vehicle. Get them to exit the vehicle first.");
        return 1;
    }
    if(InAdminMode[ID] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command on this player because they are in Administrator mode.");
        return 1;
    }
    if(playerid == ID)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot arrest yourself, why would you do that anyway?");
        return 1;
    }
    if(IsSpawned[ID] != 1)
    {
        format(string,sizeof(string),"%s(%d) is not spawned. You arrest dead people ..",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(IsFrozen[ID] == 1)
    {
        format(string,sizeof(string),"%s(%d) is frozen by a Server Administrator. You cannot arrest them.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(GetPlayerWantedLevel(ID) < 4)
    {
        format(string,sizeof(string),"%s(%d)'s wanted level is too low. You cannot jail them. Use /ticket (Player ID).",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,ID) <= 4)
    {
        SendClientMessage(ID,COLOR_DEADCONNECT,"[[_Arrested_]]");
        format(string,sizeof(string),"You have been sent to San Fierro Prison by Law Enforcement Officer %s(%d)",PlayerName(playerid),playerid);
        SendClientMessage(ID,COLOR_LIGHTBLUE,string);

        //Give the Police Officer Reward
        IncreasePlayerScore(playerid,2);

        //Others
        ResetPlayerWeapons(ID);

        //Send the suspect to jail
        if(GetPlayerWantedLevel(ID) >= 4 && GetPlayerWantedLevel(ID) <= 10)
        {
            format(string,sizeof(string),"[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the low wanted suspect %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            SendClientMessageToAll(COLOR_ORANGE,string);
            format(string,sizeof(string),"7[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the low wanted suspect %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            IRC_GroupSay(gGroupID,IRC_CHANNEL,string);

            //Give the police officer reward
            format(string,sizeof(string),"You have recieved $5000 for sending the low wanted suspect %s(%d) to prison.",PlayerName(ID),ID);
            SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
            GivePlayerMoney(playerid,5000);

            new rnd = random(sizeof(JailSpawnPoints));
            JailTime[ID] =60;
            IsCuffed[ID] =0;
            CuffTime[ID] =0;
            TotalJailTime[ID] =60;
            SetPlayerInterior(ID,10);
            SetPlayerPos(ID,JailSpawnPoints[rnd][0],JailSpawnPoints[rnd][1],JailSpawnPoints[rnd][2]);
            SetPlayerFacingAngle(ID,JailSpawnPoints[rnd][3]);
            TogglePlayerControllable(ID,1);
            StopLoopingAnim(ID);
            SetPlayerWantedLevel(ID,0);
            SetPlayerToTeamColour(ID);
            return 1;
        }
        if(GetPlayerWantedLevel(ID) >= 11 && GetPlayerWantedLevel(ID) <= 19)
        {
            format(string,sizeof(string),"[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the wanted suspect %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            SendClientMessageToAll(COLOR_ORANGE,string);
            format(string,sizeof(string),"7[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the wanted suspect %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            IRC_GroupSay(gGroupID,IRC_CHANNEL,string);

            //Give the police officer reward
            format(string,sizeof(string),"You have recieved $8000 for sending the wanted suspect %s(%d) to prison.",PlayerName(ID),ID);
            SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
            GivePlayerMoney(playerid,8000);

            new rnd = random(sizeof(JailSpawnPoints));
            JailTime[ID] =100;
            IsCuffed[ID] =0;
            CuffTime[ID] =0;
            TotalJailTime[ID] =100;
            SetPlayerInterior(ID,10);
            SetPlayerPos(ID,JailSpawnPoints[rnd][0],JailSpawnPoints[rnd][1],JailSpawnPoints[rnd][2]);
            SetPlayerFacingAngle(ID,JailSpawnPoints[rnd][3]);
            TogglePlayerControllable(ID,1);
            StopLoopingAnim(ID);
            SetPlayerWantedLevel(ID,0);
            SetPlayerToTeamColour(ID);
            return 1;
        }
        if(GetPlayerWantedLevel(ID) >= 20 && GetPlayerWantedLevel(ID) <= 29)
        {
            format(string,sizeof(string),"[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the wanted suspect %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            SendClientMessageToAll(COLOR_ORANGE,string);
            format(string,sizeof(string),"7[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the wanted suspect %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            IRC_GroupSay(gGroupID,IRC_CHANNEL,string);

            //Give the police officer reward
            format(string,sizeof(string),"You have recieved $10000 for sending the wanted suspect %s(%d) to prison.",PlayerName(ID),ID);
            SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
            GivePlayerMoney(playerid,10000);

            new rnd = random(sizeof(JailSpawnPoints));
            JailTime[ID] =120;
            IsCuffed[ID] =0;
            CuffTime[ID] =0;
            TotalJailTime[ID] =120;
            SetPlayerInterior(ID,10);
            SetPlayerPos(ID,JailSpawnPoints[rnd][0],JailSpawnPoints[rnd][1],JailSpawnPoints[rnd][2]);
            SetPlayerFacingAngle(ID,JailSpawnPoints[rnd][3]);
            TogglePlayerControllable(ID,1);
            StopLoopingAnim(ID);
            SetPlayerWantedLevel(ID,0);
            SetPlayerToTeamColour(ID);
            return 1;
        }
        if(GetPlayerWantedLevel(ID) >= 30 && GetPlayerWantedLevel(ID) <= 39)
        {
            format(string,sizeof(string),"[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the most wanted suspect %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            SendClientMessageToAll(COLOR_ORANGE,string);
            format(string,sizeof(string),"7[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the most wanted suspect %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            IRC_GroupSay(gGroupID,IRC_CHANNEL,string);

            //Give the police officer reward
            format(string,sizeof(string),"You have recieved $15000 for sending the most wanted suspect %s(%d) to prison.",PlayerName(ID),ID);
            SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
            GivePlayerMoney(playerid,15000);

            new rnd = random(sizeof(JailSpawnPoints));
            JailTime[ID] =140;
            IsCuffed[ID] =0;
            CuffTime[ID] =0;
            TotalJailTime[ID] =140;
            SetPlayerInterior(ID,10);
            SetPlayerPos(ID,JailSpawnPoints[rnd][0],JailSpawnPoints[rnd][1],JailSpawnPoints[rnd][2]);
            SetPlayerFacingAngle(ID,JailSpawnPoints[rnd][3]);
            TogglePlayerControllable(ID,1);
            StopLoopingAnim(ID);
            SetPlayerWantedLevel(ID,0);
            SetPlayerToTeamColour(ID);
            return 1;
        }
        if(GetPlayerWantedLevel(ID) >= 40)
        {
            format(string,sizeof(string),"[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the maniac %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            SendClientMessageToAll(COLOR_ORANGE,string);
            format(string,sizeof(string),"7[POLICE ACTION] Law Enforcement Officer %s(%d) has sent the maniac %s(%d) to San Fierro Prison.",PlayerName(playerid),playerid,PlayerName(ID),ID);
            IRC_GroupSay(gGroupID,IRC_CHANNEL,string);

            //Give the police officer reward
            format(string,sizeof(string),"You have recieved $20000 for sending the maniac %s(%d) to prison.",PlayerName(ID),ID);
            SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
            GivePlayerMoney(playerid,20000);

            new rnd = random(sizeof(JailSpawnPoints));
            JailTime[ID] =160;
            IsCuffed[ID] =0;
            CuffTime[ID] =0;
            TotalJailTime[ID] =160;
            SetPlayerInterior(ID,10);
            SetPlayerPos(ID,JailSpawnPoints[rnd][0],JailSpawnPoints[rnd][1],JailSpawnPoints[rnd][2]);
            SetPlayerFacingAngle(ID,JailSpawnPoints[rnd][3]);
            TogglePlayerControllable(ID,1);
            StopLoopingAnim(ID);
            SetPlayerWantedLevel(ID,0);
            SetPlayerToTeamColour(ID);
            SetPlayerVirtualWorld(playerid,0);
            return 1;
        }
        return 1;
    }
    return 1;
}
Reply
#2

Hmm you must add it in Onplayerupdate
Reply
#3

Quote:
Originally Posted by [HRD]Mar1
Посмотреть сообщение
Hmm you must add it in Onplayerupdate
Add what? i only want the command to be converted 'arrest player who is near police/army/cia/fbi'
Reply
#4

Quote:
Originally Posted by pds2012
Посмотреть сообщение
Add what? i only want the command to be converted 'arrest player who is near police/army/cia/fbi'
Look you must check if player moving man! that what i mean
Reply
#5

its nothing about OnPlayerUpdate. anyone?
Reply
#6

pawn Код:
new nearestwanted[4];

for(new i;i<MAX_PLAYERS;i++) if(GetDistanceBetweenPlayers(i, playerid) <= 4 && GetPlayerWantedLevel(i) > 0) format(nearestwanted, sizeof(nearestwanted), "%i", i);

//'nearestwanted' is now a integrer holding the ID of the nearest wanted player in a region of 4 coords.

Arrest(nearestwanted); //or something
Reply
#7

Quote:
Originally Posted by [HRD]Mar1
Посмотреть сообщение
Hmm you must add it in Onplayerupdate
Oh yeah really?

........

You have to for loop and get distance between the all connected player
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)