SubHealth Timer

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
  • Moin, der gute public hier soll in Verbindung mit einen bei OnGameModeInit gestarteten, sich alle 2 Min Wiederholenden Timer diesen Code ausführen.
    Mir wird dennoch keine Energie abgezogen, warum?
    public SubHealthTimer()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    new Float:health,save[40],pName[MAX_PLAYER_NAME];
    GetPlayerName(i,pName,sizeof pName);
    format(save,sizeof(save),"/Spieler/%d.ini",pName);
    GetPlayerHealth(i,health);
    SetPlayerHealth(i,health-5);
    dini_FloatSet(save,"pHealth",GetPlayerHealth(i,health));
    }
    }
    }

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • Kann geschlossen werden. Ich bin nicht mehr der hellste um diese Uhrzeit. Es lag anfangs daran das ich floatround und floatset vergaß.


    Vielleicht kann man das ganze als Tutorial umbauen? :D


    public SubHealthTimer()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    new Float:Health,save[40],pName[MAX_PLAYER_NAME]; // Erstellt unsere Variablen
    GetPlayerName(i,pName,sizeof pName); // Ermittelt den Spielernamen und packt ihn in die Variable pName
    format(save,sizeof(save),"/Spieler/%d.ini",pName); // Formatiert unsere Zeichenkette mit dem Dateipfad.
    GetPlayerHealth(i,Health); // Ermittelt die aktuelle Energie und speichert sie in der Variable Health
    SetPlayerHealth(i,Health-5); // Setzt die Energie auf den ermittelten Wert in der Variable Health und zieht -5 ab
    GetPlayerHealth(i,Health); // Wir ermitteln nun nochmals die aktuelle Energie
    sInfo[i][pHealth] = floatround(Health, floatround_round); // Wir weisen unseren Variablen an, dass sie den Wert abrunden sollen
    dini_FloatSet(save,"pHealth", sInfo[i][pHealth]); // Schlussendlich tragen wir gleich den Wert in die Userdatei ein.
    }
    }


    Edit: Kann mir jemand erklären warum er die aktuellen Energie nicht in die Datei schreibt? Erst bei meinem Disconnect schreibt er die Health rein. In Health verwende ich ganz normal playerid statt i.

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

    Einmal editiert, zuletzt von Addickted ()