[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
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
-
-
So bringt die Funktion ja auch nichts. Du musst die Funktion direkt bevor du die Animation ausführst verwenden.
-
-
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 -
Das geht leider nicht, du musst es im Dialog eingeben.
-
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? -
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? -
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
-
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
-
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/TextDrawSetSelectableaktiviert 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 3Gehe ich mit dem Mauszeiger auf die letze Option werden alle 3 markiert
Option 1
Option 2
Option 3Was kann ich tun?
CGetPlayerFacingAngle(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.
-
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.
-
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.Code
Alles anzeigenJamKeyPad[1][playerid] = CreatePlayerTextDraw(playerid,X,Y, "X"); PlayerTextDrawFont(playerid, JamKeyPad[1][playerid], 2); PlayerTextDrawLetterSize(playerid, JamKeyPad[1][playerid], 0.649999, 3.099999); PlayerTextDrawTextSize(playerid, JamKeyPad[1][playerid], 287.000000, 22.000000); PlayerTextDrawSetOutline(playerid, JamKeyPad[1][playerid], 1); PlayerTextDrawSetShadow(playerid, JamKeyPad[1][playerid], 0); PlayerTextDrawAlignment(playerid, JamKeyPad[1][playerid], 2); PlayerTextDrawColor(playerid, JamKeyPad[1][playerid], -1); PlayerTextDrawBackgroundColor(playerid, JamKeyPad[1][playerid], 255); PlayerTextDrawBoxColor(playerid, JamKeyPad[1][playerid], 50); PlayerTextDrawUseBox(playerid, JamKeyPad[1][playerid], 1); PlayerTextDrawSetProportional(playerid, JamKeyPad[1][playerid], 1); PlayerTextDrawSetSelectable(playerid, JamKeyPad[1][playerid], 1); -
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 -
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:
-
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.
Cpublic 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.
-
Benutze in der Abfrage _:clickedid
-
Jetzt kann ich das Textdraw nicht mehr öffnen, sobald es in einer andere Funktion wieder gezeigt wird wird es sofort wieder versteckt.
Liegt es an return 0; ? -
Zeig mal deinen Jetzigen Code für OnPlayedClick.
-