Logikproblem

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 bin gerade dabei ein Höhen Textdraw zu machen. Es ist ein Balken, der wenn ich mich in die Höhe bewege, sich auch nach oben bewegen soll. Aber ich weiß nicht so recht, wie ich es angehen soll. Ich könnte zwar unter OnPlayerUpdate immer die Höhe überprüfen, aber dann müsste ich ja für jeden Meter eine Textdrawposition festlegen. Kann ich es irgendwie machen, dass sich allgemein z.B das Textdraw um einen Centimeter nach oben bewegt, wenn ich einen Meter in die Höhe bin. Wie soll ich die Sache am besten angehen?

  • Textdraw Position ist die Start position.
    Die TextBox ist die Höhe des balkens (Musst also ein nach der höchsten höhe erstellen).
    Dann die Box-Texdraw/Höhe rechnen diesen Wert dann wieder zu den Textdraw Wert (Y) addieren und du hast deine Höhe.

    RFT

  • Die Rechnung habe ich dir genannt. Höhe ist der Wert Y des Textraws.
    Und bei der GetPlayerPos Funktion der Wert Z


    Habe das schonmal unter OnPlayerUpdate gepackt. Ich kapiere das mit der Rechnung nur nicht ganz.
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    //Hier halt irgendwie das mit dem Textdraw
    Und noch eine Frage, wenn ich ein Textdraw bewegen will, gibt es doch nur die Möglichkeit es zu zerstören und wieder zu erstellen ?


  • Habe das schonmal unter OnPlayerUpdate gepackt. Ich kapiere das mit der Rechnung nur nicht ganz.
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    //Hier halt irgendwie das mit dem Textdraw
    Und noch eine Frage, wenn ich ein Textdraw bewegen will, gibt es doch nur die Möglichkeit es zu zerstören und wieder zu erstellen ?



    Y Wert der Box - Y Wert des Textdraws, diesen Wert dann durch die Z Position teilen. Diesen Wert dann + Y Wert des Textdraws und diesen als Wert für die Box nehmen.
    Und Textdraw ganz normal Updaten einmal ausblenden lassen und wieder einblenden lassen.

    RFT

  • Y Wert der Box - Y Wert des Textdraws, diesen Wert dann durch die Z Position teilen. Diesen Wert dann + Y Wert des Textdraws und diesen als Wert für die Box nehmen.
    Und Textdraw ganz normal Updaten einmal ausblenden lassen und wieder einblenden lassen.

    Erstmal schonmal danke :) Aber was halt auch ein Problem ist, das Textdraw soll sich nicht unendlich nach oben bewegen, nur in einem bestimmten Rahmen.

  • Erstmal schonmal danke :) Aber was halt auch ein Problem ist, das Textdraw soll sich nicht unendlich nach oben bewegen, nur in einem bestimmten Rahmen.


    Dann den Wert nochmal durch 2 Teilen lassen je nachdem wie es für dich am realistischten ist. Und ne Abfrage setzen wenn der höchste Wert erreicht ist das nix mehr dazu gerechnet wird.

    RFT

  • Dann den Wert nochmal durch 2 Teilen lassen je nachdem wie es für dich am realistischten ist. Und ne Abfrage setzen wenn der höchste Wert erreicht ist das nix mehr dazu gerechnet wird.


    Ungefähr so ?
    new Text:Textdraw26;
    Textdraw26 = TextDrawCreate(310.476104, 340.906646, "LD_SPAC:white");
    TextDrawLetterSize(Textdraw26, 0.000000, 0.000000);
    TextDrawTextSize(Textdraw26, 1.904785, 14.933349);
    TextDrawAlignment(Textdraw26, 1);
    TextDrawColor(Textdraw26, -16711681);
    TextDrawSetShadow(Textdraw26, 0);
    TextDrawSetOutline(Textdraw26, 0);
    TextDrawFont(Textdraw26, 4);
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    TextDrawHideForPlayer(playerid,Texdraw26);
    Textdraw26 = TextDrawCreate(310.476104, 340.906646/Z+340.906646, "LD_SPAC:white");