Hi,
dank Bluefire habe ich nun ein kleines Knastsystem.
Das Problem ist nur, dass man nicht frei kommt.
Der Timer läuft, aber bei 0 passiert nichts. Wieso?
dcmd_arrest(playerid, params[])
{
new id, price, time;
if(sscanf(params, "uii", id, price, time)) SendClientMessage(playerid, COLOR_RED, "Benutze /arrest [SpielerID] [Strafe] [Zeit]");
else if(gTeam[playerid] != 1) SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist!");
else if(id == INVALID_PLAYER_ID || id == playerid || IsPlayerNPC(id)) SendClientMessage(playerid, COLOR_RED, "Ungültiger Spieler");
else if(!IsPlayerInRangeOfPoint(playerid, 8.0, 267.6492,78.5978,1001.0391)) SendClientMessage(playerid, COLOR_GREY, "Du bist nicht beim Gefängnis.");
else if(gTeam[id] == 1) SendClientMessage(playerid, COLOR_RED, "Du kannst keinen Polizisten einsperren!");
else if(price < 1 || price > 2000) SendClientMessage(playerid, COLOR_RED, "Die Strafe muss zwischen 1 und 2000 liegen!");
else if(time < 1 || time > 60) SendClientMessage(playerid, COLOR_RED, "Die Zeit muss zwischen 1 und 60 Minuten liegen!");
else
{
new Float:sX, Float:sY, Float:sZ;
GetPlayerPos(id, sX, sY, sZ);
if(IsPlayerInRangeOfPoint(id, 6.0, sX, sY, sZ))
{
new str[256];
ResetPlayerWeapons(id);
GivePlayerMoney(id, -price);
format(str, sizeof(str), "Du wurdest für %d$ und %d Minuten in den Knast gesperrt!",price, time);
SendClientMessage(id, COLOR_RED, str);
SendClientMessage(playerid, COLOR_GREEN, "Spieler erfolgreich eingesperrt.");
GameTextForPlayer(id, str, 5000, 5);
pInfo[id][pJail] = 1;
pInfo[id][pJailTime] = time*60000;
pInfo[id][pWanted] = 0;
SetPlayerInterior(id, 6);
SetPlayerPos(id, 264.6373,77.3694,1001.0391);
SetPlayerWantedLevel(id, 0);
format(str, sizeof(str), "~r~K~w~nast...");
if(GetPlayerWantedLevel(id) <= 0 || pInfo[id][pWanted] <= 0)
{
SendClientMessage(playerid, COLOR_RED, "Der Spieler hat keine Wanteds!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Der Spieler ist nicht in deiner Nähe!");
return 1;
}
}
return 1;
}
//1000ms Timer
if(pInfo[i][pJail] == 1 && pInfo[i][pJailTime] >= 0)
{
pInfo[i][pJailTime]-1;
if (pInfo[i][pJailTime] <= 0)
{
pInfo[i][pJail] = 0;
SetPlayerPos(i, 268.6285,85.9074,1001.0391);
SetPlayerInterior(i, 6);
GameTextForPlayer(i, "~g~Frei~w~heit!", 5000, 5);
}
}
Eigentlich ist doch alles da oder?
Jede Sekunde wird geprüft ob der Spieler im Knast sitzt, wenn ja wird jede Sekunde eine Sekunde abgezogen.
Wenn 0 erreicht ist soll er Frei kommen...
//Eingerückt