20.11.2015, 13:47
jail is working fine and releasing players after the time which admin set for player. but anyone can make gametext for players like if i jailed a player for 1 minutes one gametext appear for player like 60,59,58,
sorry for my bad english i hope u understand
sorry for my bad english i hope u understand
PHP код:
enum
JailTime,
PHP код:
new JailTimer[MAX_PLAYERS];
PHP код:
if(PlayerInfo[playerid][Jailed] == 1) KillTimer( JailTimer[playerid] );
PHP код:
CMD:jail(playerid,params[]) {
if(PlayerInfo[playerid][LoggedIn] == 1) {
if(PlayerInfo[playerid][Level] >= 1) {
new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
if(isnull(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid] [minutes] [reason]");
new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
player1 = strval(tmp);
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
if(PlayerInfo[player1][Jailed] == 0) {
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
new jtime = strval(tmp2);
if(jtime == 0) jtime = 9999;
CMDMessageToAdmins(playerid,"JAIL");
PlayerInfo[player1][JailTime] = jtime*1000*60;
SetTimerEx("JailPlayer",5000,0,"d",player1);
SetTimerEx("Jail1",1000,0,"d",player1);
PlayerInfo[player1][Jailed] = 1;
PlayerPlaySound(player1,1057,0.0,0.0,0.0);
if(jtime == 9999) {
if(!strlen(params[strlen(tmp2)+1])) format(string,sizeof(string),"Administrator %s has jailed %s ",adminname, playername);
else format(string,sizeof(string),"Administrator %s has jailed %s [reason: %s]",adminname, playername, params[strlen(tmp)+1] );
} else {
if(!strlen(tmp3)) format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes",adminname, playername, jtime);
else format(string,sizeof(string),"Administrator %s has jailed %s for %d minutes [reason: %s]",adminname, playername, jtime, params[strlen(tmp2)+strlen(tmp)+1] );
}
return SendClientMessageToAll(blue,string);
} else return SendClientMessage(playerid, red, "Player is already in jail");
} else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
} else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
}
CMD:unjail(playerid,params[]) {
if(PlayerInfo[playerid][LoggedIn] == 1) {
if(PlayerInfo[playerid][Level] >= 1) {
new tmp[256], Index; tmp = strtok(params,Index);
if(isnull(params)) return SendClientMessage(playerid, red, "USAGE: /jail [playerid]");
new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
player1 = strval(tmp);
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
if(PlayerInfo[player1][Jailed] == 1) {
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
format(string,sizeof(string),"Administrator %s has unjailed you",adminname); SendClientMessage(player1,blue,string);
format(string,sizeof(string),"Administrator %s has unjailed %s",adminname, playername);
JailRelease(player1);
return SendClientMessageToAll(blue,string);
} else return SendClientMessage(playerid, red, "Player is not in jail");
} else return SendClientMessage(playerid, red, "Player is not connected or is the highest level admin");
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
} else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
}
PHP код:
forward Jail1(player1);
public Jail1(player1)
{
TogglePlayerControllable(player1,false);
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
SetPlayerCameraPos(player1,x+10,y,z+10);SetPlayerCameraLookAt(player1,x,y,z);
Jail2(player1);
}
forward Jail2(player1);
public Jail2(player1)
{
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
SetPlayerCameraPos(player1,x+7,y,z+5); SetPlayerCameraLookAt(player1,x,y,z);
if(GetPlayerState(player1) == PLAYER_STATE_ONFOOT) SetPlayerSpecialAction(player1,SPECIAL_ACTION_HANDSUP);
GameTextForPlayer(player1,"~r~Busted By Admins",3000,3);
Jail3(player1);
}
forward Jail3(player1);
public Jail3(player1)
{
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z);
SetPlayerCameraPos(player1,x+3,y,z); SetPlayerCameraLookAt(player1,x,y,z);
}
forward JailPlayer(player1);
public JailPlayer(player1)
{
ResetPlayerWeapons(player1);
SetPlayerInterior(player1, 3);
TogglePlayerControllable(player1,true);
SetPlayerPos(player1,197.6661,173.8179,1003.0234);
SetCameraBehindPlayer(player1);
JailTimer[player1] = SetTimerEx("JailRelease",PlayerInfo[player1][JailTime],0,"d",player1);
PlayerInfo[player1][Jailed] = 1;
}
forward JailRelease(player1);
public JailRelease(player1)
{
KillTimer( JailTimer[player1] );
PlayerInfo[player1][JailTime] = 0; PlayerInfo[player1][Jailed] = 0;
SetPlayerInterior(player1,0); SetPlayerPos(player1, 0.0, 0.0, 0.0); SpawnPlayer(player1);
PlayerPlaySound(player1,1057,0.0,0.0,0.0);
GameTextForPlayer(player1,"~g~Released ~n~From Jail",3000,3);
}