[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Gibt schon etwas Gutes zum Preloaden von Anims ?
    Habe mal gegoogelt und das ausprobiert Funktioniert nur leider nicht.

    Wie "funktioniert nicht"?
    Ich habe diese Funktion auch in einigen meiner Filterscripts verwendet, und dort hat sie einwandfrei funktioniert.

  • Guten Abend!


    Da ich momentan mein Scrip etwas umgestalte und leider Gogle nichts vernünftiges , folgene Frage.


    Ich möchte ein Textdraw erstellen für den Login. Wie mache ich es, dass ich das Passwort direkt in das Textfeld am Textdrawd ohne Diaog eingeben kann?


    MfG und danke im Voraus
    Allrounder18

  • Es gibt ja eine maximale Anzahl an PlayerTextDraws, bezieht sich die maximale Anzahl pro Spieler oder für alle Spieler.
    Und als TextDraw zählen doch die, die dem Spieler angezeigt werden oder?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ich benutze klickable Textdraws, wie versetzte ich den Spieler in dem Modus, dass man sein Mauszeiger sieht und er die anklicken kann?


    Dazu, kann man TogglePlayerControllable(playerid, 0); ausbesseren, passiert das, wird die view vom Spieler nach vorne gesetzt, ich will aber das er die jetzige view freezed

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ich benutze klickable Textdraws, wie versetzte ich den Spieler in dem Modus, dass man sein Mauszeiger sieht und er die anklicken kann?


    Dazu, kann man TogglePlayerControllable(playerid, 0); ausbesseren, passiert das, wird die view vom Spieler nach vorne gesetzt, ich will aber das er die jetzige view freezed

    https://wiki.sa-mp.com/wiki/TextDrawSetSelectable aktiviert den Cursor. Canna lag richtig.


    Und das mit der View kannst du vor dem TogglePlayerControllable auslesen was die derzeitige Viewangle etc. ist, und nach dem du TogglePlayerControllable durchgeführt hast setzt du seine Viewangle / Camera auf die, die. Du vorher gespeichert hast. Dürfte eigentlich klappen. Die Funktionen heißen GetPlayerFacingAngle (speichern) und SetPlayerFacingAngle (ändern).

  • Hmm, ich hab ein Problem, weiß einer woran das liegt und wie ich den Fehler beheben kann?


    Ich lasse mir 3 ClickableTextdraws untereinander anzeigen .
    Gehe ich mit dem Mauszeiger auf die erste Option wird nur das erste markiert (richtig so)


    Option 1
    Option 2
    Option 3


    Gehe ich mit dem Mauszeiger auf die letze Option werden alle 3 markiert


    Option 1
    Option 2
    Option 3


    Was kann ich tun?




    C
    GetPlayerFacingAngle(playerid,angle);
    	    TogglePlayerControllable(playerid, 0);
    	    SetPlayerFacingAngle(playerid,angle);

    Irgendwie freezed er den Spieler genauso wie am Anfang indem er die View wieder nach vorne setzt.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    Einmal editiert, zuletzt von Jameso ()

  • Wie sieht dein SelectTextDraw Funktion aus?
    Zeig mal übrigens auch wie du die TextDraw's erstellst.
    Viewangles:


    Zeig mal den ganzen Code der Funktion. Du solltest nicht vergessen deine Variable zu erstellen bzw. als FLOAT zu erstellen -> new Float:angle.


    edit: Das wird wahrscheinlich nicht mit SetPlayerFacingAngle funktionieren, weil es TogglePlayerControllable es anscheinend total verbietet. Du könntest eventuell versuchen dies mit GetPlayerCameraPos / SetPlayerCameraPos sowie SetPlayerCameraLookAt etc. zu realisieren, auch wenn es etwas komplizierter ist.

    Einmal editiert, zuletzt von 0x00 ()

  • Ich habe noch keine Funktion, ich habe den Spieler nur in den Modus gesetzt SelectTextDraw(playerid, 0x00FF00FF);
    Dort, passiert das was ich im Beitrag davor erklärt haben, wenn ich mit der Maus drüber gehe anklicken würde genauso sein.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ich konnte ehrlich gesagt jetzt nicht ganz rauslesen was dein Problem momentan ist:


    Wie viele Textdraw's hast du die du dann zum Selektieren aktiviert hast? Wenn du mit der Maus über eins drüber fährst, ist nur das erste Grün? Und wenn du über das letzte drüber fährst sind alle Grün, oder habe ich das falsch verstanden?


    Deaktiviere mal die Box bei den TextDraw's und schau mal ob das Problem noch auftritt.

  • Ja es sind 3-4 übereinander aber da ist schon ein Abstand so ist es ja nicht. Jap richtig verstanden. Oben geht es aber dann bei den folgenden nicht. Es liegt daran, dass die Clickarea irgendwie nach unten sehr lang ist (?)


    Box entfernt, selbes Problem. Dazu habe ich noch eine Frage:
    Wenn ich mit ESC aus dem SelectTextDraw Modus gehe, wie kriege ich es hin, dass die Textdraws mit verschwinden? Ich habe nichts dazu gefunden

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Wenn ich mit ESC aus dem SelectTextDraw Modus gehe, wie kriege ich es hin, dass die Textdraws mit verschwinden? Ich habe nichts dazu gefunden

    Das könnte sein.


    Das kannst du lösen indem du im Callback OnPlayerClickTextDraw überprüfst ob das "angeklickte Textdraw" gültig ist.


    Im Callback OnPlayerClickTextDraw den Parameter clickedid verwenden und checken ob es  INVALID_TEXT_DRAW (weil INVALID bedeutet dass die Selektion mit ESC abgebrochen wurde) ist. Wenn ja verwendest du die Funktion PlayerTextDrawHide. Beziehungsweise TextDrawHide wenn es ein globales TextDraw ist.


    Also basically:


    Code
    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
        if(clickedid == INVALID_TEXT_DRAW)
        {
              PlayerTextDrawHide(playerid, XYZ);
              SendClientMessage(playerid, -1, "TextDraw Selection abgebrochen und TextDraw gehided");
              return 1;
        }
        return 0;
    }

    2 Mal editiert, zuletzt von 0x00 ()

  • Problem mit dem Mauszeiger auf den Textdraws hat sich geklärt. es lag an der X coordinate von der Box im zentrierten Textmodus. Diese sind unsichtbar und sieht man nicht.


    C
    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    	if(clickedid == INVALID_TEXT_DRAW)
    	{
    		PlayerTextDrawHide(playerid, X);
    		CancelSelectTextDraw(playerid);
    		return 1;
    }
        return 0;
    }

    Ich kriege ein Tagmismatch in der if Abfrage Zeile.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    2 Mal editiert, zuletzt von Jameso ()