Frage zum /timeban Befehl

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



    Ich habe mal eine kleine Frage zu meinem /timeban Befehl.
    Nun ich hab vor das wenn man einen Spieler mit /timeban [Name/ID] [Zeit in Minuten] [Grund] Timebanen tut.
    Nur ist das Problem, er wird zwar Gebannt aber in der zwischen Zeit wo er Offline also nicht auf dem Server aktiv ist wird die Timeban zeit nicht abgezogen.
    Also sagen wir ich Banne einen für 2 Minuten wird diese nicht abgezogen, und wenn der Spieler Connecten möchte steht dort "Du bist noch für 156451316450 Minuten Gebannt" ( Weiß die zahl jetzt nicht genau :D)


    Ich selber weiß natürlich das man so etwas noch Scripten muss das er die Zeit abzieht aber wie genau stellt man dies an ?


    Also kurz Fassung:


    - Spieler wird Gebannt auf Zeit aber die Zeit wird nicht runtergezählt.
    - Und wenn der Spieler Connecten tut erscheint diese merkwürdige Zahl ""Du bist noch für 156451316450 Minuten Gebannt" ( Weiß die zahl jetzt nicht genau :D) "
    - Und ich benutze das Datei System (DINI)


    Hier habt ihr mal den Befehl:


    ocmd:timeban(playerid,params[])
    {
    if(GetPVarInt(playerid,"Tutorial") == 1)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen, da du im Tutorial bist.");
    if(GetPVarInt(playerid,"loggedin") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    new pID, time, grund[32];
    if(GetPVarInt(playerid,"Adminlevel") !=4 && GetPVarInt(playerid,"Adminlevel") != 1337 && GetPVarInt(playerid,"Adminlevel") != 2000)return SendClientMessage(playerid,DUNKELROT," Du hast kein Zugriff auf diesen Befehl!");
    if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,ORANGE,"Verwende: /timeban [Name/ID] [Zeit in Minuten] [Grund]");
    if(strlen(grund) > 32)return SendClientMessage(playerid,ORANGE,"Benutze: /timeban [Name/ID] [Zeit in Sekunden] [Timeban Grund darf Maximal nur 32 Zeichen beinhalten]");
    else
    if(playerid == pID) return SendClientMessage(playerid,DUNKELROT,"Du kannst dich nicht selber Timebannen.");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online.");
    {
    if(time>1||time<1000)
    {
    new string[128];
    format(string,sizeof(string),"Info: %s wurde für %i Sekunden vom Admin %s vom Server gebannt Grund: %s",SpielerName(pID),time,SpielerName(playerid),grund);
    SendClientMessageToAll(0xFF6347AA,string);
    new wert;
    wert=gettime()+(time);
    SetPVarInt(pID,"Timeban",wert);
    Kick(pID);
    return 1;
    }
    SendClientMessage(playerid,ROT,"Du musst einen wert von 1 bis 1000 Angeben");
    return 1;
    }


    }


    Hoffe ihr könnt mir da ein wenig weiter Helfen.


    Grüße

  • Gut, ich hab es nun Hinbekommen das die Zeit abgezogen wird.
    Nur ist das Problem jetzt wenn ich mich jetzt für 2 Minuten banne, werde ich zwar für 2 Minuten gebannt.
    Aber wenn ich wieder connecte mich einlogge steht dort (Kopiere es mal aus der Log) Das hier:


    [01:29:37] Du bist noch für 1382920448 Minuten gebannt.


    Eigentlich ist es ja richtig aber warum macht er eine so große Zahl raus ?




    Hoffe ihr könnt mir da irgendwie weiter helfen.