23.09.2013, 19:10
Hello,
I'm working on a jail system which doesn't allow players to quit during the time of there jail. However, for some reason my function SendPlayerToJail doesn't work correctly, I've tried tickcount, gettickcount and gettime, could someone please have a look? When switching operators, the code is rather ineffective or, releases the player immediately, I do have debug results if anyone needs to see them.
Thanks in advance.
I'm working on a jail system which doesn't allow players to quit during the time of there jail. However, for some reason my function SendPlayerToJail doesn't work correctly, I've tried tickcount, gettickcount and gettime, could someone please have a look? When switching operators, the code is rather ineffective or, releases the player immediately, I do have debug results if anyone needs to see them.
pawn Код:
public SendPlayerToJail(playerid, seconds)
{
TogglePlayerControllable(playerid, 0);
new rand = random(3);
switch(rand)
{
case 0: SetPlayerPos(playerid, 262.9825,77.4500,1001.0391);
case 1: SetPlayerPos(playerid, 193.6294,161.8236,1003.2417);
case 2: SetPlayerPos(playerid, 190.8504,161.0375,1003.2417);
}
SetPlayerInterior(playerid, 7);
GameTextForPlayer(playerid, "~r~JAILED", 3000, 6);
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailSeconds] = gettime()+seconds;
print(PlayerInfo[playerid][pJailSeconds]);
new String[70];
format(String, sizeof(String), "%s (ID: %d) has been jailed.", ReturnPlayerName(playerid), playerid);
SendClientMessageToAll(COLOR_YELLOW, String);
TogglePlayerControllable(playerid, 1);
return 1;
}
pawn Код:
public OnPlayerUpdate(playerid)
{
if(PlayerInfo[playerid][pJailed] == 1)
{
printf("Player Jailed, time remaining: %d", PlayerInfo[playerid][pJailSeconds]);
if(gettime() - PlayerInfo[playerid][pJailSeconds] < PlayerInfo[playerid][pJailSeconds])
{
ReleasePlayer(playerid);
print("Releasing Player\n");
return 1;
}
}
return 1;
}
Thanks in advance.