ShowPlayerBox Problem

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


    ich nutze eine Funktion, um Spielern eine Nachricht in Form dieser Infobox im Singleplayer anzuzeigen.


    Im grunde genommen funktioniert es auch, aber irgendwie auch nicht.


    Ab 22 Zeichen wird eine größere Box angezeigt, wo dann auch dementsprechend mehr Text drin sein darf.


    Wer eine elegantere Lösung findet, kann sie auch gerne hier posten.


    Die Nachricht "Hai" wird immer gesendet, sobald ich in der nähe einer Garage bin bzw vom Pickup.


    Die Nachricht "Press enter to..." wird irgendwie auch nur beim ersten mal komplett anzeigt, wenn


    ich die Garage wieder verlasse und wieder betrete, ist nur die hälfte zu sehen:


    sAcLqAD.png


    Hätte da jemand eine Idee?



    Code: https://pastebin.com/ir2bmLL5

    strreplace: https://pastebin.com/bXq4vYxr

    LG

  • Im Normalfall reicht es, wenn du bei einer Box die Größe angibst. Dann ist sie zwar in der Breite begrenzt, geht aber je nach Textlänge in die Tiefe. Dann brauchst du keine Zeilenumbrüche, die macht er dann automatisch. Deswegen würde ich mir das mit der Überprüfung direkt sparen - dann solltest du da auch keine Probleme mehr haben.

  • Du kannst dir das zweite Textdraw (boxtextdraw) sparen, und die Box direkt mit dem Text-Textdraw anzeigen.

    Nutze einfach im PlayerTextDraw die Funktionen

    PlayerTextDrawTextSize

    PlayerTextDrawUseBox

    PlayerTextDrawBoxColor


    Und von der TextSize so wie es Douq schon sagte, eine Größe angeben, die Höhe macht das System in der Regel automatisch, ohne dass du die Umbrüche steuern musst.

  • Habs mal ausprobiert


    Link


    Aber ich glaube irgendwie nicht, dass er die automatisch macht, beim PlayerTextDrawTextSize passt er ja anscheinend nur die Boxgröße an


    // PlayerTextDrawTextSize(playerid,PlayerBox[playerid], 212.000000, 0.000000);

    PlayerTextDrawTextSize(playerid,PlayerBox[playerid], 510.000000, 0.000000);

  • Bei mir funktioniert das einwandfrei.

    jAtr6z9.png


    Code: