Seltsame Textdraws

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
  • Hi,
    wenn ich mit meinem kollegen im DM beriech bei mir wenn, auch dort wenn die TextDraws
    angezeigt werden, kommt alle 3 Sekunden ( dort wo es eig aktuallisiert wird) immer die Zhal des anderen.
    Woran liegt das?



    Code:
    Kills = TextDrawCreate(464.000000, 343.000000, " ");
    TextDrawBackgroundColor(Kills, 255);
    TextDrawFont(Kills, 1);
    TextDrawLetterSize(Kills, 0.500000, 1.000000);
    TextDrawColor(Kills, -1);
    TextDrawSetOutline(Kills, 0);
    TextDrawSetProportional(Kills, 1);
    TextDrawSetShadow(Kills, 1);
    TextDrawUseBox(Kills, 1);
    TextDrawBoxColor(Kills, 255);
    TextDrawTextSize(Kills, 634.000000, 0.000000);


    new string[85],string2[85];
    new kills = sSpieler[playerid][dmkills];
    new deaths = sSpieler[playerid][dmdeaths];
    format(string,sizeof(string),"Deagle Kills: %d",kills,playerid);
    TextDrawSetString(Text:Kills, string);
    format(string2,sizeof(string2),"Deagle Deaths: %d",deaths,playerid);
    TextDrawSetString(Text:Deaths, string2);
    //
    TextDrawShowForPlayer(playerid, KillsuDeaths);
    TextDrawShowForPlayer(playerid, Kills);
    TextDrawShowForPlayer(playerid, Deaths);


    public dmtimer(playerid)
    {
    new string[85],string2[85];
    new kills = sSpieler[playerid][dmkills];
    new deaths = sSpieler[playerid][dmdeaths];
    format(string,sizeof(string),"Deagle Kills: %d",kills,playerid);
    TextDrawSetString(Text:Kills, string);
    format(string2,sizeof(string2),"Deagle Deaths: %d",deaths,playerid);
    TextDrawSetString(Text:Deaths, string2);
    return 1;
    }

  • Das liegt daran,dass du nur einen Textdraw für jeweils Kills und Deaths erstellst ( Insgesamt also 2 Textdraws ).
    Du benutzt aber den Kill-Textdraw sowohl um für Spieler A als auch Spieler B dessen Spielerbezogenen Informationen darauf darzustellen ( Spieler C , D usw.).
    Du überschreibst aber immer dessen Text:
    Spieler A Daten -> Spieler B Daten -> Spieler A Daten -> Spieler B Daten. Bei mehr Spielern natürlich ähnlich.


    So klappt es natürlich nicht, da es letztendlich nur 1 Textdraw für ALLE Spieler verwendest. Ein Textdraw kann halt nur 1 Text haben und nicht einen Text pro Spieler.


    Du könntest ein Textdraw für jeden Spieler mit TextDrawCreate anlegen oder direkt die Spielerbezogenen Textdraws erstellen mit CreatePlayerTextDraw. Letzteres ist vielleicht einfacher für das Verständnis.


    //edit:
    format(string,sizeof(string),"Deagle Kills: %d",kills,playerid); // playerid muss weg. Ist ja kein Platzhalter für da
    format(string2,sizeof(string2),"Deagle Deaths: %d",deaths,playerid); // playerid muss weg. Ist ja kein Platzhalter für da
    TextDrawSetString(Text:Kills, string); // Text: brauchst du nicht, sofern Kills schon als Tag "Text" verwendet.
    TextDrawSetString(Text:Deaths, string); // Text: brauchst du nicht, sofern Kills schon als Tag "Text" verwendet.