Prison System umbauen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag,


    Ich möchte mein Checkpoint Prison zu Prison zeit umänderen.


    hier mal mein CP Prison, Wie soll ich dieses Prison System umbauen zu einem Zeit Prison?



    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][Checkpoints][Grund]");
    if(strlen(reason) > 30)return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /prison [playerid/Name][Checkpoints][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!");
    }
    if(cps<1||cps>3000)return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /prison [playerid/Name][Checkpoints 1-3000][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 CP´s ins Prison geschickt. Grund: %s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,cps,reason);
    SendClientMessageToAll(LEUCHTENDESROT,string);
    format(string,sizeof(string),"%s du wurdest für %i CP´s 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],cps,Spieler[playerid][pName],reason);
    ShowPlayerDialog(pID,DIALOG_4ALL_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Prison",string,"Verlassen","");
    Spieler[pID][pPrisonCPsgegeben] = cps;
    Spieler[pID][pPrisonCPsgelaufen] = cps;
    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 * Checkpoints: %i * Grund: %s",Spieler[playerid][pName],Spieler[pID][pName],cps,reason);
    Log("Prisonsqllog",string);
    return 1;
    }


    Kann man dies ihr geht wie umbauen...


    Mit freundlichen Grüßen,
    Fronix_


    @shoxinat0r

  • Hey Fronix_,
    kannst du den Code bitte einmal so formatieren, dass man da was erkennen kann? So können wir dir schwer helfen.

    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][Checkpoints][Grund]");
    if(strlen(reason) > 30)return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /prison [playerid/Name][Checkpoints][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!");
    }
    if(cps<1||cps>3000)return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /prison [playerid/Name][Checkpoints 1-3000][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 CP´s ins Prison geschickt. Grund: %s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,cps,reason);
    SendClientMessageToAll(LEUCHTENDESROT,string);
    format(string,sizeof(string),"%s du wurdest für %i CP´s 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],cps,Spieler[playerid][pName],reason);
    ShowPlayerDialog(pID,DIALOG_4ALL_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Prison",string,"Verlassen","");
    Spieler[pID][pPrisonCPsgegeben] = cps;
    Spieler[pID][pPrisonCPsgelaufen] = cps;
    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 * Checkpoints: %i * Grund: %s",Spieler[playerid][pName],Spieler[pID][pName],cps,reason);
    Log("Prisonsqllog",string);
    return 1;
    }


    Kann mans jetzt erkennen.
    Wie ich das in diesem Code sehe muss man doch eigendlich nur die cps durch die Zeit ersetzen, Also anders defineren.

  • Ja genau, siehst du richtig. Es reicht, einfach die Stellen, an denen die CPs gesetzt und gespeichert werden, zu löschen und einen Timer zu setzen.Kriegst du das hin?

    Ich wollte dies jetzt mal so Probieren.



    Spieler[pID][pPrisonCPsgegeben] = cps
    Spieler[pID][pPrisonCPsgelaufen] = cps;

    Diese " cps " durch Zeit ersetzen und wo die cps defininiert sind einfach noch eine neue hin machen mit der Zeit.
    Und diese pPrisonCPsgegeben / pPrisonCPsgelaufen durch die Zeit ersetzen.

  • Diese " cps " durch Zeit ersetzen und wo die cps defininiert sind einfach noch eine neue hin machen mit der Zeit.
    Und diese pPrisonCPsgegeben / pPrisonCPsgelaufen durch die Zeit ersetzen.

    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.



    C
    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.

  • 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?

  • Nein, nicht ganz.
    1.) Der Timer muss in deinem Command (/prison) rein.
    2.) Der Timer muss so aussehen: SetTimerEx("PrisonZeit",1000,1,playerid);
    3.)


    Arbeite das erst einmal ab. ;)

  • Hey Fronix_,
    kannst du den Code bitte einmal so formatieren, dass man da was erkennen kann? So können wir dir schwer helfen.


    Nein, nicht ganz.
    1.) Der Timer muss in deinem Command (/prison) rein.
    2.) Der Timer muss so aussehen: SetTimerEx("PrisonZeit",1000,1,playerid);
    3.)

    Arbeite das erst einmal ab. ;)

    für Prison rausholen hab ich schon einen befehl


    @_Marvin



    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,PrisonZeit,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,PrisonZeit,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","");
    SetTimerEx("PrisonZeit",1000,1,playerid);
    Variable[playerid] = -1;
    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],PrisonZeit,reason);
    Log("Prisonsqllog",string);
    return 1;
    }


    @shoxinat0r könntest du dir das mal angucken.

    2 Mal editiert, zuletzt von SyroX. ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wo liegt jetzt gerade das Problem? Bitte einmal ein Reassessment: was muss getan werden?

    Könntest du mal bitte einmal drüber gucken ob das so gehen würde.



    forward PrisonZeit(playerid);


    public PrisonZeit(playerid)
    {
    new pID;
    Variable[playerid] -= 1;
    if(Variable[playerid] <= 0)
    {
    Spieler[pID][pInPrison] = 0;
    return 1;
    }
    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,PrisonZeit1,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,PrisonZeit1,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,PrisonZeit1,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],PrisonZeit1,Spieler[playerid][pName],reason);
    ShowPlayerDialog(pID,DIALOG_4ALL_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Prison",string,"Verlassen","");
    SetTimerEx("PrisonZeit",1000,1,playerid);
    Variable[playerid] = -1;
    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],PrisonZeit1,reason);
    Log("Prisonsqllog",string);
    return 1;
    }

  • Beitrag von LoRiX ()

    Dieser Beitrag wurde von Developer aus folgendem Grund gelöscht: spam ().