Du müsstest die beiden Zeilen einfach löschen, weil du musst ja einen Timer starten um auch nach den gewissen Sekunden den Spieler automatisch aus dem Prison zu teleportieren.Mit zwei Variablen hat es sich ja nicht getan.
Spieler[pID][pPrisonCPsgegeben] = cps
Spieler[pID][pPrisonCPsgelaufen] = cps;
Die beiden löscht du einfach, pPrisonCPsgegeben und pPrisonCPsgelaufen kannst du dann aus dem Enum vom Spieler löschen. Nun startest du an Stelle dieser beiden Zeilen einfach diesen Timer. ("interval" auf 1000 und repeating auf 1 setzen)
[wiki]SetTimerEx[/wiki]
Zusätzlich musst du zu diesem Timer noch eine Variable setzen, um zu bestimmen wie viele Sekunden bzw. Minuten (gibst du aber in Sekunden an) der Spieler im Prison sein soll.
Die Variable setzt du für 2 Minuten dann z.B. so:
deineVariable = 120;
Die 120 sind dann für 120 Sekunden (= 2 Minuten).
Im public (callback) vom Timer musst du dann immer die Variable (deineVariable) um 1 subtrahieren (also immer ein abziehen [-= 1; // --;]) und dann abfragen ob deineVariable kleiner oder gleich 0 ist (<= 0), falls ja, dann kannst du den Spieler dort wieder raus teleportieren und den Timer deaktivieren ([wiki]KillTimer[/wiki]).
Bei Fragen kannst du diese ja hier gerne stellen. Versuch dich erst einmal ran.
Alles anzeigen
Denn Timer unter OnGameModeInit() setzen.
forward PrisonZeit(playerid);
SetTimerEx("PrisonZeit",99999,0,i,playerid);
forward PrisonZeit(playerid);
SetTimerEx("PrisonZeit",99999,0,i,playerid);
public PrisonZeit(playerid)
{
Variable = 99999;
return 1;
}
COMMAND:prison(playerid,params[])
{
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
new pID,cps,string[356],reason[31];
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,GRAU,"Du bist kein "#SERVERTAG" Teammitglied./Du hast nicht den jeweiligen Adminrang.");
if(sscanf(params,"uis[31]",pID,cps,reason))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /prison [playerid/Name][Time][Grund]");
if(strlen(reason) > 30)return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /prison [playerid/Name][Time][Grund darf maximal 30 Zeichen beinhalten]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,GRAU,"Der angegebene Spieler ist nicht eingeloggt!");
if(GetPVarInt(pID,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Der angegebene Spieler ist nicht eingeloggt!");
if(IsPlayerNPC(pID))return SendClientMessage(playerid,GRAU,"Das kannst du nicht!");
if(playerid != pID)
{
if(Spieler[pID][pAdmin] > Spieler[playerid][pAdmin])return SendClientMessage(playerid,GRAU,"Du kannst keine Ranghöherern Admins in Prison stecken!");
}
SendClientMessage(playerid,WRONGCMD,"BENUTZE: /prison [playerid/Name][Time][Grund]");
if(Spieler[pID][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Spieler ist bereits im Prison.");
format(string,sizeof(string),"AdminBefehl: Der Admin %s hat den Spieler %s für %i Minuten ins Prison Teleportiert. Grund: %s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,PrisonZeit,reason);
SendClientMessageToAll(LEUCHTENDESROT,string);
format(string,sizeof(string),"%s du wurdest für %i Minuten ins Prison gesteckt.\nDer Grund für das Prison von dem Admin %s war: %s.\nFalls du zu unrecht ins Prison gesteckt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\n"#SERVERFARBE""#SERVERNAME"{FFFFFF} Adminteam",Spieler[pID][pName],PrisonZeit,Spieler[playerid][pName],reason);
ShowPlayerDialog(pID,DIALOG_4ALL_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Prison",string,"Verlassen","");
Spieler[pID][pPrisonCPsgegeben] = PrisonZeit;
Spieler[pID][pInPrison] = 1;
Spieler[pID][pHandystate] = 0;
PlayerTextDrawHide(pID,HandyInfodraw[pID]);
KillTimer(AkkuTimer[pID]);
if(Spieler[pID][pCallHim] == 1)
{
new pID2 = Spieler[pID][pCall];
Spieler[pID][pCallHim] = 0;
Spieler[pID2][pCallHim] = 0;
Spieler[pID2][pCall] = -1;
Spieler[pID][pCall] = -1;
SetPlayerSpecialAction(pID,SPECIAL_ACTION_STOPUSECELLPHONE);
SetPlayerSpecialAction(pID2,SPECIAL_ACTION_STOPUSECELLPHONE);
SendClientMessage(pID2,GELB,"Der Gesprächspartner hat aufgelegt.");
PlayerTextDrawHide(pID,HandyCalldraw[pID]);
PlayerTextDrawHide(pID2,HandyCalldraw[pID2]);
PlayerPlaySound(pID,1077,0.0,0.0,0.0);
PlayerPlaySound(pID2,1077,0.0,0.0,0.0);
RemovePlayerAttachedObject(pID,8);
RemovePlayerAttachedObject(pID2,8);
}
SpawnPlayerEx(pID);
GameTextForPlayer(pID,"~w~Im ~r~Prison",1500,3);
format(string,sizeof(string),"Admin %s * Zielperson: %s * PrisonZeit %i * Grund: %s",Spieler[playerid][pName],Spieler[pID][pName],cps,reason);
Log("Prisonsqllog",string);
return 1;
}
So?