Goetz Geschrieben 12. Juli 2019 Autor Geschrieben 12. Juli 2019 (bearbeitet) vor 25 Minuten schrieb Andy: deferred_call etc. Der "deferred call" (= verzögerter Aufruf) ist auch in der EV zu erkennen, bevor du in Lua umwandelst. Du siehst eine blaue Box mit der Aktion "Ausführung verzögern". Und oben einen Hinweis zum Grund für die Verzögerung und eine Erklärung dazu, wann sie benötigt wird. Am bequemsten ist, wenn man den Befehl schon vor der Umwandlung in Lua rausschmeißt. Denn nachträglich muss man die ganze "if … elseif … end" Klammer rausschmeißen. Das ist mühseliger und fehlerträchtiger. Mit deferred call: if not deferredCall then defer(0, "_Compatibility_Delay") elseif deferredCall == "_Compatibility_Delay" then $("Ereignisse").variables["Anzahl"] = $("Ereignisse").variables["Anzahl"] + 1 $("Ausgabe").text = $("Ereignisse").variables["Anzahl"] end Du benötigst nur den Block im elseif. Der Rest ist die Zeitverzögerung für die Synchronisation.ohne deferred call: $("Ereignisse").variables["Anzahl"] = $("Ereignisse").variables["Anzahl"] + 1 $("Ausgabe").text = $("Ereignisse").variables["Anzahl"] Zu den übrigen "paar Systemaufrufen" kann ich noch nichts sagen, weil die mir noch nicht begegnet sind. Bearbeitet 12. Juli 2019 von Goetz
Neo Geschrieben 12. Juli 2019 Geschrieben 12. Juli 2019 Hallo, bedenkt, dass die Verzögerung nicht primär für die Kompatibilität zu V4 entwickelt wurde, dahinter steckt ein mächtiges Feature, was den Timern Konkurrenz macht, Stichwort Zugweiterfahrt nach einer Pause. Liest eigentlich niemand die integrierte Code-Hilfe zu den Lua-Befehlen? Viele Grüße, Neo
Andy Geschrieben 12. Juli 2019 Geschrieben 12. Juli 2019 (bearbeitet) vor 3 Minuten schrieb Neo: Liest eigentlich niemand die integrierte Code-Hilfe zu den Lua-Befehlen? dumdidum... die weiteren Informationen, auf die Götz verwiesen hat schon. Habe sie aber nicht mit dem deferred call in Verbindung gebracht. Bearbeitet 12. Juli 2019 von Andy
kokos Geschrieben 10. August 2019 Geschrieben 10. August 2019 Hallo @Goetz, mit dem vorletzen Beispiel im Abschnitt Tabellen Teil 2 habe ich ein Problem: Ich habe das Beispiel um zwei Zeilen erweitert und erwartet, dass die „sieben“ in die Lücke beim Index 2 einsortiert wird. Macht Lua aber nicht. Wo ist mein Denkfehler? kokos
Goetz Geschrieben 11. August 2019 Autor Geschrieben 11. August 2019 (bearbeitet) vor 9 Stunden schrieb kokos: Wo ist mein Denkfehler? Ich denke nicht, dass du einen Denkfehler machst, sondern dass Lua sich hier unorthodox verhält.Vielleicht liegt es daran, dass die erste Lücke sozusagen vor der Tabelle liegt. Die Lücken liegen in Lua nicht sortiert vor. Deshalb hast du keine Kontrolle darüber, welche Lücke Lua wann wählt. Beispiel = {"Eins"} Beispiel[4] = "Vier" Beispiel[5] = "Fünf" Beispiel[9] = "Neun" table.insert(Beispiel, "Zwei") table.insert(Beispiel, "Drei") table.insert(Beispiel, "Sechs") table.insert(Beispiel, "Sieben") table.insert(Beispiel, "Acht") table.insert(Beispiel, "Zehn") for i = 1, 10 do print(("%2d - %s"):format(i, Beispiel[i])) end Das Wort "Zehn" ist an Position 11 eingefügt worden und deshalb in der Auflistung gar nicht zu sehen. Bearbeitet 11. August 2019 von Goetz Korrektur nach neuer Erkenntnis
EASY Geschrieben 11. August 2019 Geschrieben 11. August 2019 Hallo, ob es wirklich so ist, weiß ich nicht... meine Überlegung dazu ist folgende... table.insert ohne Indexangabe fügt den Eintrag in einer fortlaufenden Tabelle (ohne Lücken) am Ende der Tabelle ein. Ende der Tabelle ist da, wo es mit nil (kein weiterer Eintrag) weitergeht. So gesehen trifft table.insert ohne Index bei einer Tabelle mit Lücken auf mehr als ein Ende (nil) und kann es sich sozusagen aussuchen wo der Eintrag hin könnte. Gruß EASY
Goetz Geschrieben 11. August 2019 Autor Geschrieben 11. August 2019 vor 2 Stunden schrieb EASY: So gesehen trifft table.insert ohne Index bei einer Tabelle mit Lücken auf mehr als ein Ende (nil) und kann es sich sozusagen aussuchen wo der Eintrag hin könnte. Das deckt sich zumindest mit meiner Vermutung.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden