Hallo mein Unjail Befehl funktioniert derzeit nicht
ocmd:unjail(playerid, params[])
{
new time;
if(PlayerInfo[playerid][pLoggedIn]==false)return 1;
if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
new pID, string[128];
if(sscanf(params, "u", pID)) return SendClientMessage(playerid,COLOR_RED,"/unjail [ID][Zeit]");
{
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_BUSBLUE, "Dieser Spieler ist offline");
format(string,sizeof(string),"Du wurdest von %s aus dem Gefängnis entlassen",getPlayerName(playerid));
SendClientMessage(pID,COLOR_BUSBLUE,string);
PlayerInfo[pID][pJailTime]=0;
}
}
else
{
SendClientMessage(playerid, COLOR_BUSBLUE, "Du bist kein Polizist.");
}
return 1;
}
Der Timer wird immer wieder aufgerufen obwohl er eig gestoppt werden sollte.
Hiermit wird er gestartet
jailTimer[playerid] = SetTimerEx("SetPlayerUnjail", 1000, 1, "d",pID);
if(jailTimer[playerid] == -1) KillTimer(jailTimer[playerid]);
und gestoppt werden soll er hier
forward SetPlayerUnjail(playerid);
public SetPlayerUnjail(playerid)
{
PlayerInfo[playerid][pJailTime]--;
if(PlayerInfo[playerid][pJailTime]>0)
{
new string[128];
new Time = PlayerInfo[playerid][pJailTime], Min = Time/60, Sek = Time - Min*60;
format(string,sizeof(string),"%d Minuten %d Sekunden",Min,Sek);
GameTextForPlayer(playerid,string,2000,3);
}
else
{
GameTextForPlayer(playerid,"Versuche ein besserer Mensch zu sein",5000,3);
if(jailTimer[playerid] != -1)
KillTimer(jailTimer[playerid]);
jailTimer[playerid] = -1;
SetPlayerPos(playerid,1552.8430,-1675.3510,16.195);
SetPlayerInterior(playerid,0);
}
return 1;
}