Anklickbarer Textdraw ärgert mich

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
  • Abend,


    Und zwar hab ich mal wieder ein kleines Problem.
    Dieses mal bezüglich der Textdraws, und zwar habe ich vor Anklickbare Textdraws für mein Login/Register System zu machen.
    Problem nun an der Sache ist. Das die Textdraws mit dem Code PlayerTextDrawTextSize total verschoben sind.
    Nehme ich den Code raus sitzt alles perfekt, kann sie zwar auch anklicken aber wähle ich Textdraw 2 aus also "Registrieren" wählt er auch gleich "Einloggen" mit.
    Was ich im Grunde genommen will ist das man diese perfekt anklicken kann, nur wie bekomme ich es genau hin?
    Weil so wie ich es gemacht hab ist es ja total Verschoben bis auf das Obere.


    Hier mal ein Bild davon KLICK

  • PlayerTextDrawTextSize muss am X Wert größer werden.
    Du musst es so lange größer machen, bis der automatische Zeilenumbruch nicht mehr passiert.


    Nimm dir am besten einen Textdraw Editor.

    Ich habe einen(iPLEOMAX's) nur.. könntest du mir mal bitte ausführlich erklären wie GENAU man es hin bekommt.
    Das man genau den 'Anfangs Buchstaben von unten Links bis zum Buchstaben ende oben Rechts" gezogen bekommt und es dann auch so Anwählbar ist.
    Wäre wirklich Hammer nett von dir ^^




    Grüße

  • Ich würde es dir so raten, die Box für das Textdraw einzuschalten, und dann das Textdraw mit Box zu erstellen (dann siehst du den auswählbaren Bereich = die Box).
    Wenn du es dann in den Code packst, machst du die Box einfach aus, sprich auf 0.


    Diesen Editor habe ich selbst nie benutzt, daher kann ich dir nicht genau sagen wie und ob es damit geht, aber normalerweise sollte es gehen.

  • Ich würde es dir so raten, die Box für das Textdraw einzuschalten, und dann das Textdraw mit Box zu erstellen (dann siehst du den auswählbaren Bereich = die Box).
    Wenn du es dann in den Code packst, machst du die Box einfach aus, sprich auf 0.


    Diesen Editor habe ich selbst nie benutzt, daher kann ich dir nicht genau sagen wie und ob es damit geht, aber normalerweise sollte es gehen.

    Sag mir mal bitte mit welchem Editor du es gemacht hast?
    Bekomme es mit dem einfach nicht gebacken <.> ^^

  • Mit meinem eigenen. :D
    Aber versuch mal den, der ähnelt meinem: http://forum.sa-mp.com/showthread.php?t=290640


    Wenn du es nicht hinbekommst, dann poste das Textdraw so wie es jetzt ist, dann mache ich dir das morgen kurz richtig.

    Wäre Super nett wenn du es mir eben machen könntest.
    Schaue mir das später mal richtig an.


    Code:



    AccPasswort[playerid] = CreatePlayerTextDraw(playerid, 232.333374, 325.214477, "> Passwort vergessen");
    PlayerTextDrawLetterSize(playerid, AccPasswort[playerid], 0.340000, 1.558518);
    PlayerTextDrawAlignment(playerid, AccPasswort[playerid], 1);
    PlayerTextDrawColor(playerid, AccPasswort[playerid], -1);
    PlayerTextDrawSetShadow(playerid, AccPasswort[playerid], 0);
    PlayerTextDrawSetOutline(playerid, AccPasswort[playerid], 1);
    PlayerTextDrawBackgroundColor(playerid, AccPasswort[playerid], 51);
    PlayerTextDrawFont(playerid, AccPasswort[playerid], 2);
    PlayerTextDrawSetProportional(playerid, AccPasswort[playerid], 1);
    PlayerTextDrawSetSelectable(playerid, AccPasswort[playerid], true);
    //PlayerTextDrawTextSize(playerid, AccPasswort[playerid], 229.333328, 0.000000);
    PlayerTextDrawTextSize(playerid, AccPasswort[playerid], 800.0, 80.0 );


    AccLogin[playerid] = CreatePlayerTextDraw(playerid, 277.666473, 231.466857, "> Einloggen");
    PlayerTextDrawLetterSize(playerid, AccLogin[playerid], 0.340000, 1.558518);
    PlayerTextDrawAlignment(playerid, AccLogin[playerid], 2);
    PlayerTextDrawColor(playerid, AccLogin[playerid], -1);
    PlayerTextDrawSetShadow(playerid, AccLogin[playerid], 0);
    PlayerTextDrawSetOutline(playerid, AccLogin[playerid], -1);
    PlayerTextDrawBackgroundColor(playerid, AccLogin[playerid], 255);
    PlayerTextDrawFont(playerid, AccLogin[playerid], 2);
    PlayerTextDrawSetProportional(playerid, AccLogin[playerid], 1);
    PlayerTextDrawSetSelectable(playerid, AccLogin[playerid], true);
    PlayerTextDrawTextSize(playerid, AccLogin[playerid], 900.0, 60.0 );


    AccRegister[playerid] = CreatePlayerTextDraw(playerid, 233.666702, 277.925781, "> Registrieren");
    PlayerTextDrawLetterSize(playerid, AccRegister[playerid], 0.340000, 1.558518);
    PlayerTextDrawAlignment(playerid, AccRegister[playerid], 1);
    PlayerTextDrawColor(playerid, AccRegister[playerid], -1);
    PlayerTextDrawSetShadow(playerid, AccRegister[playerid], 0);
    PlayerTextDrawSetOutline(playerid, AccRegister[playerid], 1);
    PlayerTextDrawBackgroundColor(playerid, AccRegister[playerid], 255);
    PlayerTextDrawFont(playerid, AccRegister[playerid], 2);
    PlayerTextDrawSetProportional(playerid, AccRegister[playerid], 1);
    PlayerTextDrawSetSelectable(playerid, AccRegister[playerid], true);
    PlayerTextDrawTextSize(playerid, AccRegister[playerid], 800.0, 80.0 );

  • Equ:
    Tut mir Leid, ich bin gestern einfach nicht mehr dazu gekommen. Aber jetzt:


    Diesen Bereich kannst du nun auswählen:


    Es sieht so aus:


    Und das ist der Code:
    AccLogin[playerid] = CreatePlayerTextDraw(playerid, 233.666702, 231.466857, "> Einloggen");
    PlayerTextDrawLetterSize(playerid, AccLogin[playerid], 0.340000, 1.558518);
    PlayerTextDrawAlignment(playerid, AccLogin[playerid], 0);
    PlayerTextDrawColor(playerid, AccLogin[playerid], -1);
    PlayerTextDrawSetShadow(playerid, AccLogin[playerid], 0);
    PlayerTextDrawSetOutline(playerid, AccLogin[playerid], -1);
    PlayerTextDrawBackgroundColor(playerid, AccLogin[playerid], 255);
    PlayerTextDrawFont(playerid, AccLogin[playerid], 2);
    PlayerTextDrawSetProportional(playerid, AccLogin[playerid], 1);
    PlayerTextDrawSetSelectable(playerid, AccLogin[playerid], true);
    PlayerTextDrawUseBox(playerid,AccLogin[playerid],0);
    PlayerTextDrawTextSize(playerid, AccLogin[playerid], 322.0, 13.0 );


    AccRegister[playerid] = CreatePlayerTextDraw(playerid, 233.666702, 277.925781, "> Registrieren");
    PlayerTextDrawLetterSize(playerid, AccRegister[playerid], 0.340000, 1.558518);
    PlayerTextDrawAlignment(playerid, AccRegister[playerid], 0);
    PlayerTextDrawColor(playerid, AccRegister[playerid], -1);
    PlayerTextDrawSetShadow(playerid, AccRegister[playerid], 0);
    PlayerTextDrawSetOutline(playerid, AccRegister[playerid], 1);
    PlayerTextDrawBackgroundColor(playerid, AccRegister[playerid], 255);
    PlayerTextDrawFont(playerid, AccRegister[playerid], 2);
    PlayerTextDrawSetProportional(playerid, AccRegister[playerid], 1);
    PlayerTextDrawSetSelectable(playerid, AccRegister[playerid], true);
    PlayerTextDrawUseBox(playerid,AccRegister[playerid],0);
    PlayerTextDrawTextSize(playerid, AccRegister[playerid], 349.0, 13.0 );


    AccPasswort[playerid] = CreatePlayerTextDraw(playerid, 233.666702, 325.214477, "> Passwort vergessen");
    PlayerTextDrawLetterSize(playerid, AccPasswort[playerid], 0.340000, 1.558518);
    PlayerTextDrawAlignment(playerid, AccPasswort[playerid], 0);
    PlayerTextDrawColor(playerid, AccPasswort[playerid], -1);
    PlayerTextDrawSetShadow(playerid, AccPasswort[playerid], 0);
    PlayerTextDrawSetOutline(playerid, AccPasswort[playerid], 1);
    PlayerTextDrawBackgroundColor(playerid, AccPasswort[playerid], 255);
    PlayerTextDrawFont(playerid, AccPasswort[playerid], 2);
    PlayerTextDrawSetProportional(playerid, AccPasswort[playerid], 1);
    PlayerTextDrawSetSelectable(playerid, AccPasswort[playerid], true);
    PlayerTextDrawUseBox(playerid,AccPasswort[playerid],0);
    PlayerTextDrawTextSize(playerid, AccPasswort[playerid], 414.0, 13.0 );

  • RIESEN, RIESEN DANK!
    Funktioniert Perfekt! :thumbup:



    Du bei meinem Textdraw Editor gibt es eine Funktion womit man Textdraw Boxen erstellen kann.
    Und diese dann auch nach belieben anpassen kann, wie man gerad lustig ist. Sagen wir mal ich habe ein Text,
    und passe nun mit der Textdraw Box dem Text an, könnte ich nun die gewonnen Koordinaten daraus für den TextLetterSize verwenden?


    Und wirklich DICKES Danke an dir bist der Beste :3 :D


    Grüße

    Einmal editiert, zuletzt von Equ ()

  • Ja, allerdings musst du bei der Höhe der Box aufpassen, denn das kannst du nur während der Auswahl des Textdraws testen (die 13.0). Das ist die Zeilenhöhe die du angibst, die siehst du aber leider nicht, auch nicht mit der Box.
    Ich habe dir extra das "PlayerTextDrawUseBox" im Code gelassen, wenn du die Box sehen willst, setze das einfach auf 1. Wenn du dann die 13.0 zum Beispiel zu 20.0 änderst, wird der Text unten schon weit vor der unteren Grenze beim "hovern" markiert, die Box geht also noch 7 Punkte weiter (unsichtbar) nach unten. Da muss man eben etwas rumprobieren.


    Die LetterSize entspricht nicht der Höhe der Box, auch sowas wo man sich fragt wer denn auf die Idee gekommen ist.


    Den Rest kannst du aber genau so mit der Box anpassen.
    Also generell: Textdraw mit Box im Editor erstellen, die TextSize Y schätzen und später genau anpassen (die Box ändert sich hierbei nicht, sondern nur der auswählbare Bereich), dann die Box wieder entfernen.


    Ich hoffe das hilft dir, ist etwas blöd was zu erklären was man nicht sieht.

  • Ich Versuch mal mein bestes so schwer kann das ganze ja nicht sein ^^
    Danke dir wirklich nochmals für deine Mühe, das du mir extra die Textdraws richtig eingestellt hast.


    Danke :D