IRP:oprison(playerid, var[])
{
new user[32], string[128], file[32], time;
if(!Logged(playerid)) return NoLogin(playerid);
if(Player[playerid][pAdmin] < 3) return NoAuth(playerid);
if(sscanf(var, "s[32]is[128]", user, time, var)) return SendClientMessage(playerid, COLOR_WHITE, "** [Usage]: /oprison [playername] [time] [reason]");
if(RPIDFN(user) != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRAD2, "Player is connected to the server, use /prison instead.");
format(file, sizeof(file), "Accounts/%s.ini", user);
if(!dini_Exists(file)) return SendClientMessage(playerid, COLOR_GRAD2, "Player name not found.");
if(Player[playerid][pAdmin] < dini_Int(file, "Admin")) return SendClientMessage(playerid, COLOR_GRAD2, "Player has a higher admin level than you.");
format(string, sizeof(string), "AdmCmd: %s has been offline-prisoned by %s, reason: %s", user, GetName(playerid), var);
SendClientMessageToAll(COLOR_LIGHTRED, string);
format(string, sizeof(string), "AdmCmd: %s has been offline-prisoned by %s, reason: %s", user, GetName(playerid) , var);
// Prisoning
dini_IntSet(file, "pJail", 1);
// Prisonreason
dini_Set(file, "pJailReason", var);
dini_Set(file, "pJailBy", GetName(playerid));
dini_IntSet(file, "pJailTime", time);
return 1;
}
forward PrisonTimer();
public PrisonTimer()
{
foreach(Player, playerid)
{
new string[128];
if(Player[playerid][pPrisonTime] <=0)
{
if(Player[playerid][pPrison] == 1) // NG Prison
{
Player[playerid][pPrison] = 0;
Player[playerid][pPrisonTime] = 0;
SetPlayerInterior(playerid, 0);
SetPlayerFacingAngle(playerid, 87.1763);
SetPlayerColor(playerid, TRANSPARENT_WHITE);
SetPlayerPos(playerid, 1546.1428,-1675.4786,13.5617);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "You have served your prison time, try to be a better citizen.");
format(string, sizeof(string), "Prison: %s has been released as they served their prison time.", GetName(playerid));
foreach(Player, i)
{
if(IsACop(i) && IsFBI(i) && IsDOC(i))
{
SendClientMessage(i, COLOR_BLUE, string);
}
}
}
else if(Player[playerid][pPrison] == 2) // Admin Prison
{
Player[playerid][pPrison] = 0;
Player[playerid][pPrisonTime] = 0;
format(Player[playerid][pPrisonReason], 64, "");
format(Player[playerid][pPrisonBy], 32, "");
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerFacingAngle(playerid, 87.1763);
SetPlayerColor(playerid, TRANSPARENT_WHITE);
SetPlayerPos(playerid, 1546.1428,-1675.4786,13.5617);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "You have served your prison time, try to be a better player.");
}
}
else
{
if(!IsAFK[playerid])
{
Player[playerid][pPrisonTime] --;
format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~r~Prison Time Left: ~w~%d ~r~seconds", Player[playerid][pPrisonTime]);
GameTextForPlayer(playerid, string,1500, 3);
}
}
}
return 1;
}
IRP:oprison(playerid, var[])
{
new user[32], string[128], file[32], time;
if(!Logged(playerid)) return NoLogin(playerid);
if(Player[playerid][pAdmin] < 3) return NoAuth(playerid);
if(sscanf(var, "s[32]is[128]", user, time, var)) return SendClientMessage(playerid, COLOR_WHITE, "** [Usage]: /oprison [playername] [time] [reason]");
if(RPIDFN(user) != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRAD2, "Player is connected to the server, use /prison instead.");
format(file, sizeof(file), "Accounts/%s.ini", user);
if(!dini_Exists(file)) return SendClientMessage(playerid, COLOR_GRAD2, "Player name not found.");
if(Player[playerid][pAdmin] < dini_Int(file, "Admin")) return SendClientMessage(playerid, COLOR_GRAD2, "Player has a higher admin level than you.");
format(string, sizeof(string), "AdmCmd: %s has been offline-prisoned by %s, reason: %s", user, GetName(playerid), var);
SendClientMessageToAll(COLOR_LIGHTRED, string);
format(string, sizeof(string), "AdmCmd: %s has been offline-prisoned by %s, reason: %s", user, GetName(playerid) , var);
// Prisoning
dini_IntSet(file, "pJail", 1);
// Prisonreason
dini_Set(file, "pJailReason", var);
dini_Set(file, "pJailBy", GetName(playerid));
dini_IntSet(file, "pJailTime", time);
dini_Close(file);
return 1;
}
|
How often do you update Array values for Array Player? You do not in the command set Player[playerid][pPrison] = 1 etc, so I assume you update the array frequently?
|
IRP:oprison(playerid, var[])
{
new user[32], string[128], file[32], time;
if(!Logged(playerid)) return NoLogin(playerid);
if(Player[playerid][pAdmin] < 3) return NoAuth(playerid);
if(sscanf(var, "s[32]is[128]", user, time, var)) return SendClientMessage(playerid, COLOR_WHITE, "** [Usage]: /oprison [playername] [time] [reason]");
if(RPIDFN(user) != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRAD2, "Player is connected to the server, use /prison instead.");
format(file, sizeof(file), "Accounts/%s.ini", user);
if(!dini_Exists(file)) return SendClientMessage(playerid, COLOR_GRAD2, "Player name not found.");
if(Player[playerid][pAdmin] < dini_Int(file, "Admin")) return SendClientMessage(playerid, COLOR_GRAD2, "Player has a higher admin level than you.");
format(string, sizeof(string), "AdmCmd: %s has been offline-prisoned by %s, reason: %s", user, GetName(playerid), var);
SendClientMessageToAll(COLOR_LIGHTRED, string);
format(string, sizeof(string), "AdmCmd: %s has been offline-prisoned by %s, reason: %s", user, GetName(playerid) , var);
// Prisoning
dini_IntSet(file, "pJail", 1);
// Prisonreason
dini_Set(file, "pJailReason", var);
dini_Set(file, "pJailBy", GetName(playerid));
dini_IntSet(file, "pJailTime", time);
dini_Close(file);
return 1;
}
SetPlayerPos(playerid, x, y, z);