/jail help
#1

Hi there, sorry but I need help whit this:

PHP Code:
dcmd_jail(playeridparams[])
{
      new 
jailedidstring[128];
      if(
sscanf(params"u"jailedid)) return SendClientMessage(playerid, -1"/jail <playerid>");
      if(
jailedid == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1"Player is not online.");
      if(
Jailed[playerid] == true) return SendClientMessage(playerid, -1"Player is already jailed.");
    
Jailed[playerid]=true;
     
SetTimerEx("unjail"180000false"d"jailedid);
      
format(stringsizeof(string), "%s has been jailed 3 minutes"GetPlayerNameEx(jailedid));
     
SendClientMessageToAll(COLOR_REDstring);
     
SetPlayerPos(jailedid, -27.14552321.164824.3034);
     
SetPlayerInterior(jailedid0);
     
SendClientMessage(jailedidCOLOR_RED,   "You are jailed by an administrator");
     
SendClientMessage(jailedidCOLOR_RED"Please read /rules");
     
SendClientMessage(jailedidCOLOR_RED,   "....................................");
     return 
1;

PHP Code:
forward unjail(playerid);
public 
unjail(playerid)
{
  new 
string[128];
  
SendClientMessage(playeridCOLOR_GREEN"You're free!");
  
SetPlayerPos(playerid, -20.88892334.466324.1406);
  
SetPlayerInterior(playerid0);
  
format(stringsizeof(string), "%s now is free"GetPlayerNameEx(playerid));
  
SendClientMessageToAll(COLOR_GREENstring);
  
Jailed[playerid] = false;
  return 
1;

but when he imprisoned someone who finishes his sentence 3 minutes to try again imprisoned not let me and says "Player is already jailed"

Help please, regards!!
Reply
#2

In your jail command you're setting playerid Jailed to 1 instead of JailedID.

pawn Code:
Jailed[playerid]=true;
to
pawn Code:
Jailed[jailedid]=true;
Reply
#3

Quote:
Originally Posted by The__
View Post
In your jail command you're setting playerid Jailed to 1 instead of JailedID.

pawn Code:
Jailed[playerid]=true;
to
pawn Code:
Jailed[jailedid]=true;
You're semi-right, He'll be setting the value to {X} where the value of {X} being his/the players current ID.
Reply
#4

This.

PHP Code:
if(Jailed[playerid] == true) return SendClientMessage(playerid, -1"Player is already jailed.");
//
Jailed[playerid]=true
The correct way would be:

PHP Code:
if(Jailed[jailedid] == true) return SendClientMessage(playerid, -1"Player is already jailed.");
//
Jailed[jailedid]=true
This will work better

PHP Code:
dcmd_jail(playeridparams[])
{
    if(
sscanf(params"u"params[0]))
        return 
SendClientMessage(playerid, -1"/jail <playerid>");
    if(
params[0] == INVALID_PLAYER_ID)
        return 
SendClientMessage(playerid, -1"Player is not online.");
        
    if(
Jailed[params[0]] == true)
        return 
SendClientMessage(playerid, -1"Player is already jailed.");
    new 
string[83];
    
SetTimerEx("unjail"180000false"d"params[0]);
    
format(stringsizeof(string), "%s has been jailed 3 minutes"GetPlayerNameEx(params[0]));
    
SendClientMessageToAll(COLOR_REDstring);
    
    
SetPlayerInterior(params[0], 0);
    
SetPlayerPos(params[0], -27.14552321.164824.3034);
    
    
SendClientMessage(params[0], COLOR_RED,   "You are jailed by an administrator");
    
SendClientMessage(params[0], COLOR_RED"Please read /rules");
    
SendClientMessage(params[0], COLOR_RED,   "....................................");
    
    
Jailed[params[0]] = true;
    return 
true;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)