#include <a_samp>
#include <zcmd>
#include <sscanf2>
new PrisonTime[MAX_PLAYERS];
PrisonTime[Jeff] = 100; // Sets his prison time to 100 seconds/minutes depending on what you want it to be.
CMD:jail(playerid, params[])
{
return 1;
}
CMD:jail(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"ERROR: Only administrators may use this!");
return 1;
}
CMD:jail(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"ERROR: Only administrators may use this!");
new targetid, time;
if(sscanf(params,"ui",targetid,time)) return SendClientMessage(playerid,-1,"USAGE: /jail (playerid) (minutes)");
if(time == 0) return SendClientMessage(playerid,-1,"ERROR: You must prison the player for at least 1 minute.");
{
}
return 1;
}
CMD:jail(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"ERROR: Only administrators may use this!");
new targetid, time, string[128];
if(sscanf(params,"ui",targetid,time)) return SendClientMessage(playerid,-1,"USAGE: /jail (playerid) (minutes)");
if(time == 0) return SendClientMessage(playerid,-1,"ERROR: You must prison the player for at least 1 minute.");
{
SetPlayerPos(targetid,X,Y,Z); // Choose your own prison, find the coordinates and replace X, Y and Z.
SetPlayerInterior(targetid,INT); // Replace INT with the interior of where your prison is.
SetPlayerVirtualWorld(targetid,30); // Any random VW will do, so regular players cant see prisoners.
PrisonTime[targetid] = time;
}
return 1;
}
CMD:jail(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"ERROR: Only administrators may use this!");
new targetid, time, string[128], playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME];
if(sscanf(params,"ui",targetid,time)) return SendClientMessage(playerid,-1,"USAGE: /jail (playerid) (minutes)");
if(time == 0) return SendClientMessage(playerid,-1,"ERROR: You must prison the player for at least 1 minute.");
{
SetPlayerPos(targetid,X,Y,Z); // Choose your own prison, find the coordinates and replace X, Y and Z.
SetPlayerInterior(targetid,INT); // Replace INT with the interior of where your prison is.
SetPlayerVirtualWorld(targetid,30); // Any random VW will do, so regular players cant see prisoners.
PrisonTime[targetid] = time;
GetPlayerName(playerid,adminname);
GetPlayerName(targetid,playername);
format(string,sizeof(string),"%s has jailed %s for %i minutes.",adminname,playername,time);
SendClientMessageToAll(0xAA3333AA,string);
}
return 1;
}
CMD:unjail(playerid, params[])
{
return 1;
}
CMD:unjail(playerid, params[])
{
If(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"ERROR: Only administrators may use this!");
new targetid;
if(sscanf(params,"u",targetid)) return SendClientMessage(playerid,-1,"USAGE: /unjail (playerid)");
{
}
return 1;
}
CMD:unjail(playerid, params[])
{
If(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"ERROR: Only administrators may use this!");
new targetid;
if(sscanf(params,"u",targetid)) return SendClientMessage(playerid,-1,"USAGE: /unjail (playerid)");
{
if(PrisonTime[targetid] == 0) return SendClientMessage(playerid,-1,"ERROR: That player is not prisoned!");
}
return 1;
}
CMD:unjail(playerid, params[])
{
If(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"ERROR: Only administrators may use this!");
new targetid, string[128], playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME];
if(sscanf(params,"u",targetid)) return SendClientMessage(playerid,-1,"USAGE: /unjail (playerid)");
{
if(PrisonTime[targetid] == 0) return SendClientMessage(playerid,-1,"ERROR: That player is not prisoned!");
{
PrisonTime[targetid] = 0; // Set it to 0.
GetPlayerName(playerid,adminname);
GetPlayerName(targetid,playername);
format(string,sizeof(string),"%s has unjailed %s.",adminname,playername);
SendClientMessageToAll(0xAA3333AA,string);
SetPlayerPos(targetid,X,Y,Z); // Change X, Y and Z to the coords where you want them to go when they're unjailed.
SetPlayerInterior(targetid,0);
SetPlayerVirtualWorld(targetid,0);
}
}
return 1;
}
forward PrisonCounter(playerid);
CMD:jail(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"ERROR: Only administrators may use this!");
new targetid, time, string[128], playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME];
if(sscanf(params,"ui",targetid,time)) return SendClientMessage(playerid,-1,"USAGE: /jail (playerid) (minutes)");
if(time == 0) return SendClientMessage(playerid,-1,"ERROR: You must prison the player for at least 1 minute.");
{
SetPlayerPos(targetid,X,Y,Z); // Choose your own prison, find the coordinates and replace X, Y and Z.
SetPlayerInterior(targetid,INT); // Replace INT with the interior of where your prison is.
SetPlayerVirtualWorld(targetid,30); // Any random VW will do, so regular players cant see prisoners.
PrisonTime[targetid] = time;
GetPlayerName(playerid,adminname);
GetPlayerName(targetid,playername);
format(string,sizeof(string),"%s has jailed %s for %i minutes.",adminname,playername,time);
SendClientMessageToAll(0xAA3333AA,string);
PrisonCounter(targetid);
}
return 1;
}
public PrisonCounter(playerid) // REMEMBER: No ; at the end.
{
return 1;
}
public PrisonCounter(playerid) // REMEMBER: No ; at the end.
{
if(PrisonTime[playerid] == 0) // If their prison time is 0/null..
{
SetPlayerPos(playerid,X,Y,Z); // Change X, Y and Z to the coords where you want them to go when they're unjailed.
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SendClientMessage(playerid,-1,"You have served your time in admin jail.");
}
else if(PrisonTime[playerid] => 1) // If their prison time is the bigger or equal to 1..
{
}
return 1;
}
public PrisonCounter(playerid) // REMEMBER: No ; at the end.
{
if(PrisonTime[playerid] == 1) // If their prison time is 1..
{
SetPlayerPos(playerid,X,Y,Z); // Change X, Y and Z to the coords where you want them to go when they're unjailed.
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
PrisonTime[playerid] = 0;
SendClientMessage(playerid,-1,"You have served your time in admin jail.");
}
else if(PrisonTime[playerid] => 2) // If their prison time is the bigger or equal to 1..
{
SetTimerEx(PrisonCounter(playerid),60000,false,"u",playerid); // 60,000 is 60 seconds.
PrisonTime[playerid] -= 1; // Takes 1 from the current value, so if their prison time is 10 it sets it to 9.
}
return 1;
}
Tutorial
The Tutorial is nice and help fully for New scripters that makes RP Game mode. +Rep EDIT: Havr you think on if the player relog? Becuse the most newbies doesnt have a Automatic Position Saver and loader |
Like I said, they'll need to check a tutorial on a register/login system first. From there they could save the players prison time. All it would be is scripting a little beneath OnPlayerConnect, making it so if the players prison time is 1+ then it would send em to prison and begin the timer.
|