SA-MP Forums Archive
Jail - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Jail (/showthread.php?tid=326092)



Jail - davve95 - 16.03.2012

Hi!

I've made jails to my server.. But are there a easy way to put ppls in there?

Any ideas??.. And have a good reason to jail them and how you catch anyone know?...


Edit: I got ideas: If they are wanted you can type /jail or catch or something and they come to jail..

Need scripting help with that I'm a pretty beginner I'm not so skilled yet...

Or its easy?...


Re: Jail - T0pAz - 16.03.2012

You can do that with IsPlayerInRangeOfPoint and SetPlayerPos.


Re: Jail - Ronaldo_raul™ - 16.03.2012

After reading your post three times, i came to a conclusion that you want a command that can jail wanted persons.

So, this is easy and can be done by sscanf

Command :
pawn Код:
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;
}



Re: Jail - Outlaaw - 16.03.2012

Код:
	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));
}
if u write /prison, and if u are admin or correct for any given preferencies u will set the position of the closest guy to prison, but only if he s wanted
dont forget to set the coords and interior or virtualworld aswell


Re: Jail - davve95 - 16.03.2012

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


Re: Jail - Cameltoe - 16.03.2012

Quote:
Originally Posted by davve95
Посмотреть сообщение
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
pawn Код:
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;
}



Re: Jail - davve95 - 16.03.2012

Cameltoe thanks alot! there u have wrote the comment should I paste the teleport code there??.. How can I make so they come in random jail because I have like 7 jails..


pawn Код:
//I mean comment like this <<<



Re: Jail - davve95 - 16.03.2012

I still need help... Any reply?? :P.


Re: Jail - Cameltoe - 17.03.2012

pawn Код:
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]);



Re: Jail - davve95 - 17.03.2012

Cameltoe: Thanks alot I will give you repution ...