pawn Code:
CMD:ajail(playerid,params[])
{
if(pInfo[playerid][pAdminlevel]> 1 ) return 0;
new id,time,reason[100],PlayerName[MAX_PLAYER_NAME],GPlayerName[MAX_PLAYER_NAME];
new szString[100];
if(sscanf(params,"uds[100]",id,time,reason)) return SendClientMessage(playerid, COLOR_RED1, "[ ! ] USAGE: /ajail <playerid> <time> <reason>");
if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "[ ! ] Invalid Player ID !");
if(Jailed[id] == 1) return SendClientMessage(playerid, COLOR_RED, "[ ! ] Player is already in Jail !");
GetPlayerName(id, PlayerName, sizeof(PlayerName));// the jailed person id
GetPlayerName(playerid, GPlayerName, sizeof(GPlayerName));
format(szString, sizeof(szString), "[ ! ] %s has been jailed by %s for %d seconds for %s", PlayerName, id, playerid, time, reason);
SendClientMessageToAll(COLOR_WS, szString);
SetPlayerInterior(id, 3);//sets player interior
SetPlayerVirtualWorld(id, 10);//sets player vw
SetPlayerFacingAngle(id, 360.0);//player angle
SetPlayerPos(id, 197.5662, 175.4800, 1004.0);//player pos
SetPlayerHealth(id, 9999999999.0);//player cannot be killed
ResetPlayerWeapons(id);//resets his weapons
Jailed[id] = 1;
JailTimer[id] = SetTimerEx("Unjail",time*1000, false, "i", id); // Changed 60000 to 1000.
return 1;
}
What Konstantinos said + you forgot to set the Jailed variable to 1 after jailing, your sscanf format was "dds" when it should have been "uds[100]" and your jail time is in minutes because you used time * 60000, so if you jail a player for 60 seconds, he will be unjailed after 1 hour.