CMD:jail ( playerid , params [] )
{
if ( !IsPlayerAdmin ( playerid ) ) return SendClientMessage ( playerid , -1 , "Your not admin! Dumbass" ) ;
new TargetID , Reason[128];
if ( sscanf ( params , "us[128]" , TargetID , Reason ) ) return SendClientMessage ( playerid , -1 , "Usage : /jail [ID] [REASON]" ) ;
if( !IsPlayerConnected ( TargetID ) ) return SendClientMessage ( playerid , -1 , "Invalid ID" ) ;
if ( TargetID == playerid ) return SendClientMessage ( playerid , -1 , "You cannot jail yourself" ) ;
else
{
//SetPlayerPos(player , Float:x , Float:y , Float:z ) ;
new pName[MAX_PLAYER_NAME] , IDName[MAX_PLAYER_NAME];
GetPlayerName ( playerid , pName , MAX_PLAYER_NAME ) ;
GetPlayerName ( TargetID , IDName , MAX_PLAYER_NAME ) ;
new str[128];
format ( str , 128 , "%s Has been Jailed by Administrator %s. [Reason : %s ]" , IDName , pName , Reason ) ;
SendClientMessageToAll ( -1 , str ) ;
new str2[128];
format ( str2 , 128 , "You have been Jailed by Administrator %s. [Reason : %s ]" , pName , Reason ) ;
SendClientMessage ( TargetID , -1 , str2 ) ;
}
return 1;
}
if(strcmp(cmd, "/prison", true) ==0) { if(IsPlayerAdmin(playerid)>1) { new suspect = GetClosestPlayer(playerid); if(GetPlayerWantedLevel(suspect)>1) { if(IsPlayerConnected(suspect)) { if(GetDistanceBetweenPlayers(playerid,suspect) < 5) { GetPlayerName(suspect, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "* You were prisoned by %s.", sendername); SendClientMessage(suspect, COLOR_BLUE, string); format(string, sizeof(string), "* You prisoned %s.", giveplayer); SendClientMessage(playerid, COLOR_BLUE, string); SetPlayerInterior(suspect,JAILINTERIOR); SetPlayerPos(suspect,JAILX,JAILY,JAILZ); } else { SendClientMessage(playerid, COLOR_GREY, "None near you!"); return 1; } } } else { SendClientMessage(playerid, COLOR_GREY, "You can only prison wanted persons!"); } } return 1; } forward GetClosestPlayer(p1); public GetClosestPlayer(p1) { new x,Float:dis,Float:dis2,player; player = -1; dis = 99999.99; for (x=0;x<MAX_PLAYERS;x++) { if(IsPlayerConnected(x)) { if(x != p1) { dis2 = GetDistanceBetweenPlayers(x,p1); if(dis2 < dis && dis2 != -1.00) { dis = dis2; player = x; } } } } return player; } forward Float:GetDistanceBetweenPlayers(p1,p2); public Float:GetDistanceBetweenPlayers(p1,p2) { new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2; if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2)) { return -1.00; } GetPlayerPos(p1,x1,y1,z1); GetPlayerPos(p2,x2,y2,z2); return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2)); }
Thanks but it shoulden't be a admin command it just so you can jail ppls when they have done a crime/s
Or can't I done like this: GetPlayerWantedLevel and then if they have wanted level he can teleport to jail.. If a cop writes /jail id |
command(jail, playerid, params[])
{
new pID = -1;
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, 0x0, "Usage: /jail [playerid]");
if(!IsPlayerConnected(pID) || pID == -1 || pID == playerid) return SendClientMessage(playerid, 0x0, "You are either trying to jail yourself, or this player is yourself.");
if(GetPlayerWantedLevel(pID) < 1) return SendClientMessage(playerid, 0x0, "This player is not wanted..");
// tele to jail here
// remove wanted level
return 1;
}
//I mean comment like this <<<
enum posInfo
{
Float: X,
Float: Y,
Float: Z,
}
new JailZones[][posInfo] = {
{X, Y, Z}, // change X, Y, Z to the cordinates of jail 1
{X, Y, Z}, // change X, Y, Z to the cordinates of jail 2
{X, Y, Z}, // change X, Y, Z to the cordinates of jail 3
{X, Y, Z}, // change X, Y, Z to the cordinates of jail 4
{X, Y, Z}, // change X, Y, Z to the cordinates of jail 5
{X, Y, Z}, // change X, Y, Z to the cordinates of jail 6
{X, Y, Z} // change X, Y, Z to the cordinates of jail 7
};
// Now to choose a random cordinate just do:
new RandomJail = random(sizeof(JailZones));
// Then :
SetPlayerPos(playerid, JailZones[RandomJail][X], JailZones[RandomJail][Y], JailZones[RandomJail][Z]);