Hallo,
ich habe mir ein Jail System, welches mit dem Wantedsystem zusammenarbeitet gebastelt. Dieses funktioniert wie folgt, wenn der Player 3 Sterne hat, wird er für 6 minuten ins Jail gebracht, da Wantedlevel * 2 , diese Zeit wird auch mit Dini gespeichert, funktioniert alles.
Ich habe diesem Timer daher eine ID zugewiesen, d.h. knastzeit = SetTimerEx... , leider wird diese Zeit nicht gespeichert, wenn sie runtergeht, also der PVar bleibt 6 obwohl ich schon >1 drin bin. Wie kann ich es machen, damit die zeit, die runtergeht gespeichert wird, also wenn ich eine minute drin bin, dass der PVar auf 5 geht??
ocmd:jail(playerid, params[])
{
new pID;
new Float:x,Float:y,Float:z;
new string[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_WHITE,"/jail [ID]");
GetPlayerPos(pID,x,y,z);
if(!IsPlayerInRangeOfPoint(pID,2,x,y,z)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in deiner Nähe!");
if(!IsPlayerInRangeOfPoint(pID,2,1526.9745,-1677.7667,5.8906)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in der LSPD Garage!");
if(!IsPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist kein Cop!");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht Online!");
if(GetPVarInt(pID,"Wantedlevel") <=1) return SendClientMessage(playerid,ROT,"Der Spieler hat keine Wanteds!");
//if(pID == playerid) return SendClientMessage(playerid,ROT,"Du kannst dich nicht selbst einsperren!");
SetPlayerPos(pID,264.5515,77.3523,1001.0391);
SetPlayerInterior(pID, 6);
ResetPlayerWeapons(pID);
GivePlayerMoney(playerid,500);
SetPlayerWantedLevel(pID, 0);
format(string, sizeof(string), "Du gehst für %i minuten in den Knast.",GetPVarInt(pID,"Wantedlevel")*2);
SendClientMessage(pID,COLOR_WHITE,string);
SendClientMessage(pID,ROT,"Geh nicht Off, Jail System speichert deine Knastzeit nicht! *WIRD GEFIXXT*"); //wenn entbuggt - zeile rausnehmen!
SendClientMessage(playerid,COLOR_WHITE,"** Spieler eingebuchtet + $500 Lohn. **");
knastzeit = SetTimerEx("knasttimer",GetPlayerWantedLevel(pID)*1000*60*2,false,"i",pID);
SetPVarInt(pID,"Knastzeit",knastzeit);
SetPVarInt(pID,"knast",1);
InKnast[playerid] = 1;
return 1;
}
ocmd:jailtime(playerid, params[])
{
new string[128];
if(InKnast[playerid] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht im Knast!");
format(string,sizeof(string),"* Du musst noch %iminuten deine Strafe absitzen!",GetPVarInt(playerid,"Knastzeit"));
SendClientMessage(playerid,COLOR_WHITE, string);
return 1;
}
public knasttimer(playerid)
{
if(GetPVarInt(playerid,"Knastzeit") == 0)
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1545.8807,-1675.3688,13.5612);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid,ROT,"[Knast Information]{FFFFFF} Du hast deine Haftstrafe abgesessen und verlierst 500€.");
InKnast[playerid] = 0;
//KillTimer(knastzeit);
SetPVarInt(playerid,"knast",0);
SetPVarInt(playerid,"Knastzeit",0);
SetPlayerWantedLevel(playerid,0);
GivePlayerMoney(playerid,-500);
}
return 1;
}
Hoffe ihr könnt mir bei diesem Problem helfen. Danke.