Jailtimer in Textdatei speichern, wie umsetzen?

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
  • Hallo ich habe eine kleine Frage und zwar ich würde gern wissen wie mann einen Timer Speichern also in einer .txt Datei ich möchte nämlich ein Jail Timer machen der die Zeit nach jeder Minute wieder in die .txt Datei speichert z.b


    Wir haben 100 Minuten und der Timer setzt die Zeit auf 99 und speichert die Zahl dan aber jetzt kommt es wie kann ich die zahl aus der txt Datei auslesen und in den Jailtimer setzten damit die zeit weiter runter geht es wehre echt nett wenn mir das einer sagen könnte


    M.F.G
    Blaizerado

  • Speichere besser den Timestamp, an dem der Jailtimer endet. So kannst du, wenn der Spieler online kommt, ganz einfach prüfen, ob er noch im Jail ist oder nicht.


    C
    SpielerInfo[playerid][pJailed] = gettime() + 60 * 100;


    Und dann entsprechend nach dem Laden (das Laden genau gleich, wie du auch die Kills/Deaths lädst):

    C
    if(SpielerInfo[playerid][pJailed] > gettime())
    {
        //Noch im Jail
    }


    Laden und Speichern genau wie die anderen Stats auch.

  • Mache bitte keine mehrfach Posts, nutze die Bearbeitungsfunktion.


    Zum Code:
    Du machst einen globalen Timer mit einer Schleife durch alle Spieler und nimmst die gleiche Abfrage. Einfach abfragen ob die Zeit noch kleiner ist als die Zeit des Entlassens. Falls nein, dann lässt du ihn raus.
    Versuche es mal. Wenn es nicht klappt, poste den Code den du bis dahin hast.

  • ich hätte es jetzt so gemacht ist halt meine schuld das ich mit stock abfragen arbeiten tu sry

    Code
    for(new i=0; i<GetMaxPlayers(); i++)
     {
       if(IsAnPlayerInJail(i,GetPVarInt(player,"Jailtime")))
        {
           //und dan die abfrage wie viele Sekunden der User noch im jail sitzt
        }
     }
  • Das kommt darauf an wie deine Funktion aussieht. Da ich das nicht weiß, versuche es so:

    C
    new str[145];
    for(new i=0; i<GetMaxPlayers(); i++)
    {
        if(gettime() < GetPVarInt(i,"Jailtime"))
        {
            format(str, sizeof(str), "[Jail] Du sitzt noch %d Minuten im Jail!", ((GetPVarInt(i,"Jailtime")-gettime()) / 60) + 1);
            SendClientMessage(i, 0xFF0000FF, str);
            //Hier dann SetPlayerPos in das Jail
        }
    }

    Unter der Annahme, dass in Jailtime die gettime-Zeit plus die Dauer drin steht, wie in meinem Beispiel oben.
    Die Berechnung im format hinten Berechnet die Anzahl in Minuten die noch übrig sind.