Timba Geschrieben 21. Oktober 2019 Geschrieben 21. Oktober 2019 Hallo an die Lua-Programmierer, derzeit experimentiere ich ein bisschen mit Lua und habe folgendes Problem: Die freien Gleise eines Bahnhofs sollen in einer Tabelle stehen. Ich habe die erforderliche Tabelle in einem Skript am Anfang der EV eingerichtet. Freigleise = { "Gleis2", "Gleis4" } Nach jedem Stop des Programms (und das ist oft, weil ich ja noch am testen bin) wird die Tabelle mit diesen Werten neu initialisiert, aber inzwischen sind zwei, drei Züge eine Runde gefahren und stehen auf ganz anderen Gleisen und die Tabelle hatte folglich andere Einträge. Wie kann ich es anstellen, dass nach einer Unterbrechung mit den aktuellen Werten weitergemacht wird und nicht mit der ursprünglichen Definition? Ich möchte auch nicht nach jedem Stop das Script bearbeiten. Gruß Timba
Andy Geschrieben 21. Oktober 2019 Geschrieben 21. Oktober 2019 Hallo Timba, Lua startet bei jedem Start neu. Das heißt, es wird diese Tabelle auch immer frisch initialisieren. Alles andere muß über ein Zusammenspiel von Lua-Tabellen und den Objektvariablen geschehen, wobei - sofern ich das richtig verstanden habe, siehe Götz' letztem Tutorial - da mit dem Update neue Features ins Spiel kommen, die diesen Bereich verstärken. Gruß Andy
Timba Geschrieben 21. Oktober 2019 Autor Geschrieben 21. Oktober 2019 Danke dir Andy. Gerade habe ich herausgefunden, dass die Tabelle nur neu initialisiert wird, wenn ich was an der EV geändert habe. Wenn ich die Sim nur kurz anhalte und ohne Änderung weitermache, dann bleibt die Tabelle erhalten. Wenigstens das. Gruß Timba, der Lua-Lehrling
Andy Geschrieben 21. Oktober 2019 Geschrieben 21. Oktober 2019 (bearbeitet) Kalt erwischt - 'nach jedem Stop' war definitv die falsche Formulierung. p.s.: Wenn Du Lust hast, bau doch mal gerade irgendwo mal die Zeile error("Na sowas!") ein und laß das Ereignisprotokoll mitlaufen. Check mal, wie sich's verhält, wenn das EP wegen diesem 'Fehler' angehalten wird. Ich weiß nicht, ob sie dann neu startet oder weiterläuft. Bearbeitet 21. Oktober 2019 von Andy
Timba Geschrieben 21. Oktober 2019 Autor Geschrieben 21. Oktober 2019 Ja stimmt. Ich hatte angenommen, dass das Stoppen der Sim dafür verantwortlich war. War falsch. Ich hatte bei jedem Stop was geändert und das hat die Initialisierung bewirkt, was zu meiner Fehlinterpretierung führte. Nicht weiter schlimm. Wenigstens lerne ich jeden Tag was Neues. Nur bei manchen Dingen stünde man ohne Hilfe auf dem Schlauch, denn das offizielle Lua-Manual kann ja logischerweise nicht auf die Dinge eingehen, die hier im MBS speziell sind. Zum Glück gibt es hilfreiche Geister wie dich. Danke nochmal.
Andy Geschrieben 21. Oktober 2019 Geschrieben 21. Oktober 2019 'Möchtegern-hilfreich'. Rausgefunden hast Du's selber. Ich könnte derzeit verstärkt fehleranfällig sein - kommt vom Blender-Basteln. Da vergißt man wieder alles
Goetz Geschrieben 21. Oktober 2019 Geschrieben 21. Oktober 2019 vor 51 Minuten schrieb Timba: Nach jedem Stop des Programms wird die Tabelle neu initialisiert, Zur Zeit, ja. weil du die Initialisierung in dein Skript schreiben musst. mit dem nächsten Update bekommen wir die Möglichkeit, Tabellen wie Variablen in Objekten und Modulen abzulegen. Und die behalten dann - wie objekt/Modul-Variablen auch, ihre Werte.
Timba Geschrieben 21. Oktober 2019 Autor Geschrieben 21. Oktober 2019 vor 1 Minute schrieb Andy: Da vergißt man wieder alles Ach was! Programmieren ist wie Fahrradfahren, wenn man's einmal kann, verlernt man es nie.
Timba Geschrieben 21. Oktober 2019 Autor Geschrieben 21. Oktober 2019 vor 1 Minute schrieb Goetz: mit dem nächsten Update bekommen wir die Möglichkeit, Tabellen wie Variablen in Objekten und Modulen abzulegen. Und die behalten dann - wie objekt/Modul-Variablen auch, ihre Werte. Das ist super! Kann man die dann eventuell auch über das Ereignisprotokoll beobachten? Das wäre dann der Hit schlechthin!
Goetz Geschrieben 22. Oktober 2019 Geschrieben 22. Oktober 2019 vor 7 Stunden schrieb Timba: Kann man die dann eventuell auch über das Ereignisprotokoll beobachten? In der Vorabversion, die ich ausprobieren durfte, sah ich nur die Anzahl der Elemente in der rechten Spalte des Ereignisprotokolls. Links kannst du natürlich per print() alles reinschreiben. Wie es final aussehen wird weiß ich nicht, weil Neo derzeit noch am Update arbeitet. Neben den Listen und Tabellen bekommt die EV mit dem nächsten Update auch Wiederholungen. Beides ergänzt sich sehr gut und eröffnet in der Kombination tolle Möglichkeiten.
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