Textdraw Bug

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 habe ein Problem wenn ich auf mein Textdraw Klicke kommt ein Textdraw vom Login was aber eigentlich nicht so sein soll.

    Das Textdraw wird angezeigt ?




    Wenn ich das hier ausklammere geht es

    Code
    TextDrawShowForPlayer(playerid, JobcenterUnclicked[JobcenterListitem[playerid]]);
  • Deine TextDrawTextSize ist bei Y 0.000000.



    Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/TextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.



    Wenn es nach der Anpassung noch immer nicht geht, prüfe, ob der Code, der ausgeführt wird, von einem Textdraw stammt, dessen TextDrawTextSize auch falsch ist und passe diese dann an.

  • Code
    JobcenterUnclicked[1] = TextDrawCreate(196.000000, 120.000000, "Mechaniker");


  • Das passt.
    Lass dir mal bei OnPlayerClickTextDraw das hier ausgeben:
    printf("J:%d / S:%d / c:%d", JobcenterUnclicked[1], ServerNameBig[0], clickedid);


    Was steht dann im Server Log, wenn du das Textdraw (ServerNameBig) anklickst?


    Ist das zufällig das erste Textdraw das du im Code erstellst?

  • Ja das ServerNameBig erstelle ich als erstes unter OnGameModeInit als die anderen Textdraws.


    Was ist Aber nicht verstehe wenn ich auf Spielen drücke kommen 2 ? ( die ersten 2 )


    Code
    [29/06/2016 18:15:20] J:120 / S:0 / c:54
    [29/06/2016 18:15:20] J:120 / S:0 / c:65535
    [29/06/2016 18:15:28] J:120 / S:0 / c:65535
    [29/06/2016 18:15:33] J:120 / S:0 / c:120
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Dann ist wahrscheinlich eine der Variablen der Textdraws leer und zeigt daher ID 0 an.
    Das kannst du mit einem Dummy als ID 0 umgehen.
    Ändere
    ServerNameBig[0] = TextDrawCreate(0.000000, 09.000000, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~");
    zu:
    TextDrawCreate(0.000000, 0.000000, " "); //Textdraw-Dummy mit der ID 0
    ServerNameBig[0] = TextDrawCreate(0.000000, 09.000000, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~");

  • Das liegt daran, weil eines der 5 Textdraws, die beim Klick auf JobcenterUnclicked[1] angezeigt werden, wahrscheinlich nicht existiert, bzw. der Variablenwert 0 ist.
    Du kannst dir da ja mal alle IDs ausgeben lassen und schauen, welche davon 0 ist.

  • Ich weiß zwar nicht wieso aber


    Passwort Feld = 0
    Login = 0
    Spielen = 0
    Mechaniker = 0
    Aber ab den 2 Job kommt 66,67,68 ?