Lebensanzeige als Zahl. (Problem)

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 mir eine Anzeige erstellt, die zeigt wie viel Leben man noch hat.
    Das funktioniert auch alles, nur wenn ein zweiter Spieler auf den Server kommt wird auch im sein Leben bei mir angezeigt.
    Ich weiß auch wo dran das Problem liegt, aber ich weiß nicht wie ich es lösen kann.


    Wenn der Spiele Spawnt wird ihm angezeigt wie viel Leben er hat.

    SetTimerEx("UpdateLeben", 100, true, "i", playerid);
    TextDrawShowForPlayer(playerid, Lebensanzeige);


    Dann wir jede 100 Millisekunden die Anzeige geupdatet.

    public UpdateLeben(playerid)
    {
    new Float:lebenvonplayer;
    GetPlayerHealth(playerid, lebenvonplayer);
    new string[256];
    format(string, sizeof(string)," %.1f",lebenvonplayer);
    TextDrawSetString(Lebensanzeige,string);
    }

    Und hier ist auch schon das Problem, sobald ein zweiter Spieler auf den Server kommt wird sein Leben wie bei mir auch im string gespeichert.
    Deswegen sieht man von beiden das Leben.
    Meine Frage ist jetzt, wie kann ich es machen das jeder sein eigenes Leben sieht.
    Ich hoffe ihr könnt mir helfen.


    Mit freundlichen Grüßen
    KleinerTeufel

  • Du musst die TextDraws in Arrays packen.


    new hpTextDraw[MAX_PLAYERS];


    und dann eben immer hpTextDraw[playerid] benutzen, beim setzen und anzeigen.


    Edit: Die Anzeige solltest du imho nicht mit nem 100ms Timer umsetzen, das frisst unmengen ressourcen. Füge das UpdateLeben lieber an den relevanten Stellen wie
    OnPlayerDeath, OnPlayerTakeDamage und deinen /eat /essen Befehlen etc :)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • SetTimerEx("UpdateLeben", 100, true, "i", playerid);
    TextDrawShowForPlayer(playerid, Lebensanzeige[playerid]);


    public UpdateLeben(playerid)
    {
    new Float:lebenvonplayer;
    GetPlayerHealth(playerid, lebenvonplayer);
    new string[256];
    format(string, sizeof(string)," %.1f",lebenvonplayer);
    TextDrawSetString(Lebensanzeige[playerid],string);
    }



    und das new Lebenanzeige;


    in


    new Lebensanzeige[MAX_PLAYERS];


    ersetzen.


    Außerdem musst du das Textdraw nun unter public OnPlayerConnect(playerid)


    erstellen und alle TextDraw definitionen die sich Lebensanzeige nennen in Lebensanzeige[playerid]


    umbenennen!