Textdraws richtig erstellen

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
  • Hey, ich frage mich im moment ob ich Textdraws richtig erstelle, denn ich bin mir nicht im klaren ob ich damit irgendwie den Limit schädige. Also wenn ich Textdraws für Spieler erstelle mache ich das so:



    new Text:test[MAX_PLAYERS];


    OnGameModeInit:


    for(new i; i<MAX_PLAYERS; i++)
    {
    test[i] = TextDrawCreate(501.000000, 102.000000, "");
    TextDrawBackgroundColor(test[i], 419891199);
    TextDrawFont(test[i], 2);
    TextDrawLetterSize(test[i], 0.519999, 2.100000);
    TextDrawColor(test[i], -546045441);
    TextDrawSetOutline(test[i], 0);
    TextDrawSetProportional(test[i], 1);
    TextDrawSetShadow(v[i], 1);
    }


    //Dann kann ich halt
    TextDrawShowForPlayer(playerid,test[playerid]);
    //machen


    Jetzt ist die frage, ist das normal wie ich das erstelle?

  • Naja, bei playertextdraw erstellst du ein Textdraw direkt für playerid's.
    Ich verstehe auch nicht wirklich, warum du oben für MAX_PLAYERS definierst, und dann nachher noch eine Schleife durch ziehst sodass es für alle Spieler angezeigt wird.
    Bei playertextdraws ersparst du dir das ganze. Dort kann man auch eigentlich nichts falsch machen wenn man nach wiki geht.
    Wofür soll das Textdraw sein?

    KleineHilfe 2.0

  • Es gibt zwei Arten von Textdraws:
    - Player Textdraws
    - globale Textdraws


    Limites: (hier)
    Player Textdraws: 256
    Globale Textdraws: 2048


    Wenn du beispielsweise 100 Spieler hast, kannst du, wenn du für jeden Spieler einen globalen Textdraw erstellst,
    folgende Anzahl an verschiedenen Textdraws erstellen:


    Code
    2048 / 100 = 20,48


    Deswegen ist es von Vorteil die Playertextdraws zu verwenden.
    Diese erstellst du bei OnPlayerConnect.
    Soviel ich weiß werden die beim Verlassen des Servers selbstständig zerstört.


    Und für die Textdraws, die bei jedem gleich sind, verwendest du globale ;)


  • Man kann aber auch globale textdraws zu playertextdraws definieren mit schleifen etc, was noch viele machen.
    Total sinnlos, aber naja.

    KleineHilfe 2.0

  • Man kann aber auch globale textdraws zu playertextdraws definieren


    Das ist etwas komisch ausgedrückt...


    Du hast die Möglichkeit für jeden User einen globalen Textdraw zu machen.
    2048 globale Textdraws stehen dir da zur Verfügung.


    Wenn du das aber machst, sind 100 der 2048 Textdraws belegt.
    Also du kannst nurnoch 1948 globale Textdraws benutzen.

  • Eine frage, wenn ich MAX_PLAYERS auf 500 eingstellt habe, und dann es so erstelle, werden dann 500 Textdraws erstellt von den 2000? oder wird nur 1 erstellt?


    Es werden 500 erstellt, daher nehm am besten Player Textdraws, ich mach es sogar noch genauer.


    Wenn ich ein Speedo oder ähnliches erstelle, so sind alle Texte, Boxen,Sprites die bei allen user Gleich sind ein globales Textdraw und alles was von spieler zu spieler unterschiedlich ist, sind Player textdraws.
    SO nutzt du die Limits Optimal aus.


  • Es werden 500 erstellt, daher nehm am besten Player Textdraws, ich mach es sogar noch genauer.


    Wenn ich ein Speedo oder ähnliches erstelle, so sind alle Texte, Boxen,Sprites die bei allen user Gleich sind ein globales Textdraw und alles was von spieler zu spieler unterschiedlich ist, sind Player textdraws.
    SO nutzt du die Limits Optimal aus.


    Es ist dann bei jeden Unterschiedlich wenn ich es für jeden Spieler mache also wie ich, jedoch ist die Frage
    wenn ich 500 MAX_PLAYERS habe und ein Textdraw auf meine Weise erstelle, erstelle ich dann 500 Textdraws?