Textdraw Problem (INVALID TextDrawID)

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 ein Proble das ich mir nicht erklären kann. Vielleicht habe ich was übersehen... jedenfalls zum Problem:


    Ich will TextDraws einfügen die nach Bedarf den Spielern angezeigt werden soll wenn sie in ein entsprechendes fahrzeug sich befinden.


    Code
    new Text:Taxameter[MAX_VEHICLES][6];


    und in Gemodeinit

    Weiter n OnPlayerStateChange wo er die TextDrwas anzeigen sol, brauche ich denke mal sowieso nicht zeigen da ich die TextDraws ID geprintet habenach dem erstellen der Textdraws. Alle haben die ID 65535 (Nach meinem Wissen ist das die ID für INVALID_ID).


    Meine Frage:
    Warum ist es Invalid & was habe ich verkehrt gemacht und wie kann ich es beheben?


    Liebe Grüße
    palwal

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Du erstellst MAX_VEHICLES (2000) mal 6 Textdraws, sprich 12.000 Textdraws.
    Das Limit liegt bei 2048.
    https://wiki.sa-mp.com/wiki/Limits


    Bei den ersten ~300 Fahrzeugen müsste es klappen, danach nicht mehr.


    Wie machst du es besser?
    Erstelle 1 Player-Textdraw pro Spieler (wenn er online kommt), und zeige ihm dort die Informationen des Fahrzeugs an, das er sich anschaut. Er sieht ja immer nur die Informationen eines Autos, daher reicht 1 Textdraw pro Spieler.

  • Aber wie speichere ich die Informationen für bestimmte Cars in TextDraw? Weil man müsste ja pro Fahrzeug ne Array haben um die Infos des richtigen Fahrzeugs zu bekommen..oder sehe ich es falsch?


    Vielleicht könntest du n Beispiel machen, wie du es lösen würdest. Wäre lieb :love:


    Ach' und eigentlich funktioniert es bei KEINEN Fahrzeug. Laut Prints hat jede TextDraw davon eine Invalide ID....

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Ach' und eigentlich funktioniert es bei KEINEN Fahrzeug. Laut Prints hat jede TextDraw davon eine Invalide ID....

    Eventuell bist du schon über dem Limit durch andere Textdraws.



    Weil man müsste ja pro Fahrzeug ne Array haben um die Infos des richtigen Fahrzeugs zu bekommen..oder sehe ich es falsch?

    Das bleibt genau so wie du es aktuell auch machen würdest. Die Daten die du ins Textdraw schreiben willst hast du ja irgendwo gespeichert, wenn du das Textdraw aktualisierst.
    Sprich du hast ein ganz normales enum mit MAX_VEHICLES, in dem die Infos stehen. Wenn dem Spieler das Textdraw angezeigt wird, weißt du ja für welches Fahrzeug und kannst die Daten mit [wiki]PlayerTextDrawSetString[/wiki] setzen.




    Vielleicht könntest du n Beispiel machen, wie du es lösen würdest. Wäre lieb

    Das Beispiel zum Textdraw aktualisieren ist im Link. Versuche mal ob du damit klar kommst. Poste dann eventuell deinen bis dahin vorhandenen Code, falls du nicht weiter kommst, auf der Basis kann ich dir dann besser helfen.

  • Vielen Dank Jeffry, scheint wirklich an den Limits zu liegen, das ich locker leicht über 2048 TextDraws dank Tacho komme.


    So wird mein Tacho konzeptiert. Hab es mal geprintet, kommt locker das 2 fache über den Limit heraus. Wie könnte ich es machen das jedes Fahrzeug einen Tacho hat aber ich unter dem Limit bleibe?^^


    Ich habe eine Idee...Wenn ein Fahrzeug erstellt wird (Serverseitig oder Ingame) das erst dann die dazugehörigen Textdraws erstellt werden... ginge das? Oder hast du noch ein besseren Optimerungsvorschlag?


    Die Lösungen werde ich dann auch beim Taxameter anwenden, dann denke ich, sollte es funktionieren...

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Arbeite auch hier mit PlayerTextDraws. Ein Spieler kann ja immer nur den Tacho eines Fahrzeugs sehen, somit kannst du den Tacho pro Spieler erstellen, mit PlayerTextDraws bei OnPlayerConnect und die Textdraws immer entsprechend dem Fahrzeug in dem er ist, aktualisieren.

  • Jeffry ich habe es jetzt in Player Text Draw umgeschrieben. Bekomme aber jetzt einen Array Fehler & Warnings...


    Code
    C:\Users\Patrick\Desktop\Server2\gamemodes\selfmade.pwn(3548) : warning 213: tag mismatch



    Und habe es so gemacht:


    Code
    new Text:PlayerSpeedo[MAX_PLAYERS][13];


    Code
    PlayerTextDrawUseBox(playerid, PlayerSpeedo[playerid][7], 1);


    Also Variablen stimmt alles, verstehe den Fehler nicht......

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen