TextDraw ID's doppelt und dreifach?

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
  • Tag,
    mir ist häufiger aufgefallen das sich meine TextDraw's vermischen und z.B. die Fahrzeuge Schadensanzeige mit der Uhr einfach mal getauscht wird, bzw. die Uhr als Schadensanzeige dient - ohne Funktion. Dies ist unabsichtlich, und ich habe mal die TextDraw ID's ermittelt - und herrausgefunden das sehr viele TextDraw's die ID 2 haben, beim Tacho sogar jedes zweite Textdraw. Wie kann ich das ändern, den ich meine o. denke dadurch entstehen ungewollte Fehler. Die TextDraw's werden beim Verbinden eines Spielers erstellt (OnPlayerConnect), beim trennen der Verbindung gelöscht (OnPlayerDisconnect). Hier mal die Textdraw ID's: (Kurzform meiner Frage: Wie behebe ich, das sich die TextDraw's vermischen u./o. das die TextDraw's die selben ID's haben?)



    Erstellt werden die TextDraws in folgendem Schema:


    Irgendwo im Script:
    Text:TD_Werbung[MAX_PLAYERS][3],


    OnPlayerConnect: (Koordinaten sind richtg, nur hier im Post geändert!)
    TD_Werbung[playerid][0]=TextDrawCreate(123.000000,456.000000,"www.German-Roleplay.net");
    TD_Werbung[playerid][1]=TextDrawCreate(123.000000,456.000000,"San Andreas");
    TD_Werbung[playerid][2]=TextDrawCreate(123.000000,456.000000,"Stunt/Deathmatch/Race");


    Zum ein/ausblenden bei Verwendung:
    TextDrawShowForPlayer(playerid,TD_Werbung[playerid][0]);
    TextDrawShowForPlayer(playerid,TD_Werbung[playerid][1]);
    TextDrawShowForPlayer(playerid,TD_Werbung[playerid][2]);
    TextDrawHideForPlayer(playerid,TD_Werbung[playerid][1]);
    TextDrawHideForPlayer(playerid,TD_Werbung[playerid][2]);


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Vieleicht solltest du diese in ein enum packen wie es bei mir auch ist:


    enum e_textdraw
    {
    Text:textdraw[MAX_PLAYERS],
    Text:textdraw2[MAX_PLAYERS],
    Text:textdraw3[MAX_PLAYERS]
    }
    new TXD[MAX_PLAYERS][e_textdraw];


    und benutzen dann über z.B. TXD[playerid][textdraw2]

  • Zcelo12: Werde ich mal ausprobieren, bereits Dankeschön für die Hilfe mit Beispiel für Umsetzung.


    Folgendes Problem folgt, ich verstehe den Fehler kaum:
    TXDEDAD[playerid][TD_Medalie[0]]=TextDrawCreate(314.000000,150.000000,"Box2");
    //Zeile 745 : error 028: invalid subscript (not an array or too many subscripts): "TD_Medalie"


    Der Enumerator:
    enum e_textdraw
    {
    Text:TD_Killstreek[5],
    Text:TD_Countdown[4],
    Text:TD_Medalie[17],
    Text:TD_Werbung[3],
    Text:TD_Respawn[4],
    Text:TD_Wanteds[2],
    Text:TD_Adminnews,
    Text:TD_Tacho[22],
    Text:TD_Drift[7],
    Text:TD_Datum[2],
    Text:TD_Linie
    }
    new TXDEDAD[MAX_PLAYERS][e_textdraw];


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


    Einmal editiert, zuletzt von Pablo Borsellino ()

  • In einem enum kann man das so nicht machen.
    Am besten, da du ja mehrere Textdraws für jede Variable hast, machst du für jede ein enum.


    Beispiel:


    enum e_Killstreek
    {
    TextKillstreek1[MAX_PLAYERS],
    Text:Killstreek2[MAX_PLAYERS],
    Text:Killstreek3[MAX_PLAYERS]
    }
    new KS[MAX_PLAYERS][Killstreek1];
    wäre übersichtlicher für dich ;)

  • Ja Zcelo12, deins mag funktionieren mache das auch gerade - dauert ziemlich ;) Doch seins hat immernoch ein array, und so funktioniert es laut deiner Aussage nicht.


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Aber wie du mitbekommen hast, bekommt man dadurch Probleme mit den TextdrawIDs,
    an der Vorgehenswiese im 1. Post ist zwar nichts falsch aber die Probleme mit den IDs tauchen dadurch doch auf ;)

  • Zcelo12: Das meinte ich garnicht, nur das was Pain gepostet hat war schachsinn ;)


    Achja, es klappt nun:


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.