Altbackendes Problem mit selektierbaren Texdraws

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 Community,


    ich habe das altbekannte Textdraw Problem, dass der selektierbare Bereich komplett durcheinander geraten ist und einige Textdraws sich sogar
    verschoben haben.


    Ich weiß schon, dass ich den selektierbaren Bereich verändern soll, jedoch habe ich nach Stunden keine Ideen mehr, da sich bei meinen
    Versuchen alles verzerrte und komplett durcheinander war.


    Dieser Codeabschnitt beinhaltet alle relevanten Details:



    Ihr habt da bestimmt eine Idee! ;)


    SCREENSHOT:

    Learn from yesterday, live for today, hope for tomorrow.
    - Anonymous

  • https://wiki.sa-mp.com/wiki/TextDrawTextSize
    TextDrawTextSize wird die Lösung deines Problems sein es sitzt die größe der anklickbaren box

    Danke für deine Antwort.
    Jedoch war ich dessen schon bewusst.
    Mein Problem ist nur, dass ich nicht weiß ich herausfinde, welche genauen coordinaten dort hinschreiben muss.


    Das ganze basiert ja auf 640x480 aber wie genau weiß ich, welche TextSize ich brauche?

    Learn from yesterday, live for today, hope for tomorrow.
    - Anonymous

  • Das ganze basiert ja auf 640x480 aber wie genau weiß ich, welche TextSize ich brauche?

    Das ist ziemlich schwer zu ermitteln. Ich habe das immer mit iPleomax Textdraweditor gemacht.


    Irgendwie ist das so, dass man bei der X-Koordinate die Größe angeben muss, wie breit der Text ist. Also beispielsweise 60px.
    Und bei der Y-Koordinate muss man die asbolute Position von den 480px angeben. Also wenn dein Text bis ganz unten angrenz: 480px.
    Ok, anscheinend genau andersherum ^^


    Irgendwie ganz komisch, so war das bei mir zumindest immer ^^

    Einmal editiert, zuletzt von H4rd_B4se ()

  • Das ist ziemlich schwer zu ermitteln. Ich habe das immer mit iPleomax Textdraweditor gemacht.
    Irgendwie ist das so, dass man bei der X-Koordinate die Größe angeben muss, wie breit der Text ist. Also beispielsweise 60px.
    Und bei der Y-Koordinate muss man die asbolute Position von den 480px angeben. Also wenn dein Text bis ganz unten angrenz: 480px.


    Irgendwie ganz komisch, so war das bei mir zumindest immer ^^

    Hm... also die Textdraws habe ich auch mit dem Editor von iPleomax erstellt, aber wie bist du auf die genauen Werte gekommen? :)

    Learn from yesterday, live for today, hope for tomorrow.
    - Anonymous

  • Wenn du die TextDrawSize mit dem Editor veränderst, stehen die Koordinaten auf dem Bildschirm und später im Script.
    Außerdem kannst du ja im Editor sogar testen wie sie sich anklicken lassen. (Wenn ich mich recht erinnere)

  • Wenn du die TextDrawSize mit dem Editor veränderst, stehen die Koordinaten auf dem Bildschirm und später im Script.
    Außerdem kannst du ja im Editor sogar testen wie sie sich anklicken lassen. (Wenn ich mich recht erinnere)

    Naja, mit dem Editor geht es quasi, aber testen kann man es nicht und man muss auch dort Koordinaten eingeben, da das verändern mit der Maus schwachsinnig ist, denn man sieht ja nichts X(

    Learn from yesterday, live for today, hope for tomorrow.
    - Anonymous

  • Falls es sich wirklich um die TextSize handelt, habe damals für mein Textdraw System ein paar Berechnungen durchgeführt.


    Wenn dein Text Linksbündig ist, dann wie folgt:


    TextDrawTextSize(Textdraw, x-4+width, 10.000000f);
    Legende:
    x = x-Koordinate deines Textdraws
    -4 = die Korrektur wegen eines Bugs des Textdraws (gefunden durch Probieren)
    +width = die gewünschte Breite des Hintergrundes
    10.0f basiert auf die LetterSize aber sollte als Standardwert gehen.

  • Ich hatte das mal ausprobiert, aber funktioniert hat es nicht.
    Wie würdest du das für dieses Textdraw machen:



    [*]LoginButt = TextDrawCreate(42.666660, 176.213394, "Login");
    [*] TextDrawLetterSize(LoginButt, 0.449999, 1.600000);
    [*] TextDrawAlignment(LoginButt, 1);
    [*] TextDrawColor(LoginButt, -2147483393);
    [*] TextDrawSetShadow(LoginButt, 0);
    [*] TextDrawSetOutline(LoginButt, 1);
    [*] TextDrawBackgroundColor(LoginButt, 255);
    [*] TextDrawFont(LoginButt, 3);
    [*] TextDrawSetProportional(LoginButt, 1);
    [*] TextDrawSetSelectable(LoginButt, true);

    Learn from yesterday, live for today, hope for tomorrow.
    - Anonymous

  • TextDrawTextSize(LoginButt, 95.0,10.0);
    hinzufügen

    genau so, musst aber natürlich die Breite noch anpassen (Dazu einen anderen Wert für die 95.0 eintragen). :)


    Im Wiki stand alles:
    "

    • When used with TextDrawAlignment of alignment 3 (right), the x and y are the coordinates of the left most corner of the box. For alignment 2 (center) the x and y values need to inverted (switch the two) and the x value is the overall width of the box. For all other alignments the x and y coordinates are for the right most corner of the box.
    • The TextDraw box starts 10.0 units up and 5.0 to the left as the origin (TextDrawCreate coordinate).
    • This function defines the clickable area for use with TextDrawSetSelectable, whether a box is shown or not.

    " (SAMP.com Wiki)


    Also beachte, dass falls du den Text des Buttons zentrierst, du auch die beiden Werte in 'TextDrawTextSize' vertauschen musst


    @H4rd_B4se
    Naja so unrecht hast du nicht, immerhin hat er ca. 56 Units für 5 Zeichen, das müsste eig sogar richtig gut passen :)