Jump to content

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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 :D

Geschrieben (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 von Andy
Geschrieben

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.

Geschrieben

'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 :D

Geschrieben
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.

Geschrieben
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! (y) Kann man die dann eventuell auch über das Ereignisprotokoll beobachten? Das wäre dann der Hit schlechthin!

Geschrieben
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.

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...