Jump to content
Zum Start hinzufügen

Weitere Informationen

3D-Modellbahn Studio

Eine Vollbild-App auf Ihrem Startbildschirm mit Push-Benachrichtigungen und mehr.

So installieren Sie diese App auf iOS und iPadOS
  1. Tippen Sie auf das Teilen-Symbol in Safari
  2. Scrollen Sie durch das Menü und tippen Sie auf Zum Startbildschirm hinzufügen.
  3. Tippen Sie oben rechts auf Hinzufügen.
So installieren Sie diese App auf Android
  1. Tippen Sie auf das 3-Punkte-Menü (⋮) in der oberen rechten Ecke des Browsers.
  2. Tippen Sie auf Zum Startbildschirm hinzufügen oder App installieren.
  3. Bestätigen Sie durch Tippen auf Installieren.

Empfohlene Beiträge

Geschrieben

Hallo zusammen,
ich arbeite gerade mit dem Ereignis-Editor und LUA im 3D-Modellbahn Studio und hätte eine Frage zur Steuerung von Abläufen:

Wie kann man in LUA eine Pause oder Verzögerung einbauen, bevor das Skript weiterläuft?

Zum Beispiel so etwas in der Art:

if BedingungDannTrue then

   -- Aktion A

   Pause 2 Sekunden

   -- Aktion B

end

Mir ist klar, dass LUA normalerweise „linear“ durchläuft und nicht wie ein Timer funktioniert. Aber gibt es eine Möglichkeit, z. B. eine verzögerte Aktion auszulösen oder einen Ablauf zu unterbrechen, um realistischere Bewegungen oder Wartezeiten zu erzeugen?

Wie löst ihr das im MBS – z. B. mit timer, event, oder durch Aufteilen in mehrere Ereignisse?

Ich freue mich über Tipps, Beispiele oder Hinweise, wie man das elegant lösen kann!

Viele Grüße
Adler_84

Geschrieben

Hallo @Adler_84 ,

Man kann in Lua Verzögerungen (Delays) einsetzen. Dieses Delay unterbricht die Abarbeitung des Ereignisses um die angegebenen Sekunden (Andere Ereignisse werden abgearbeitet) und ruft dann dieses Ereignis neu auf mit einem Parameter (Text) der Verzögerung. So können in einem Skript mehrere Unterbrechungen vorkommen:

if not deferredCall then -- Erster Aufruf des Ereignisses
[Statements1]
defer(10, "Verzögerung") -- Delay für 10 Sekunden, dann wieder Aufruf mit deferredCall "Verzögerung"
elseif deferredCall == "Verzögerung" then -- Wiedereinstieg mit Parameter "Verzögerung"
if [Bedingung] then
[Statements1]
defer(5, "Verzögerung (2)") -- usw.
end
[Statements2]
elseif deferredCall == "Verzögerung (2)" then
[Statements3]
defer(2, "Verzögerung (3)")
elseif deferredCall == "Verzögerung (3)" then
[Statements4]
end

Viele Grüße,
Wolfgang

Geschrieben
vor 9 Stunden schrieb Adler_84:

Wie kann man in LUA eine Pause oder Verzögerung einbauen, bevor das Skript weiterläuft?

Hallo Adler_84,

du kannst sowas in der grafischen EV zusammensetzen
und dann in Lua umwandeln:

Zeitverzögerung EV.jpg

Zeitverzögerung Lua.jpg

Wenn du einen Lua Befehl markierst und dann Strg + Leertaste drückst, öffnet sich ein Fenster mit Erklärungen und Beispielen zum Befehl

Zeitverzögerung defer.jpg

WICHTIG!
Im Hauptscript sind keine Verzögerungen möglich, das geht ausschließlich in den Ereignissen!

Viele Grüße
Götz

Geschrieben

Hallo Adler_84,

vor 10 Stunden schrieb Goetz:

WICHTIG!
Im Hauptscript sind keine Verzögerungen möglich, das geht ausschließlich in den Ereignissen!

Viele Grüße
Götz

… und nicht innerhalb Wiederholungen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Push-Benachrichtigungen konfigurieren

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.