-
Gesamte Inhalte
5759 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von Goetz
-
Was ich noch sagen wollte: Dafür hast du meinen Respekt!
-
Hallo @jloos, ein bisschen muss ich das noch erweitern: Ohne das Schlüsselwort local gilt GKT über dieses Skript hinaus in allen Skripten dieser Anlage. So, wie eine Modul- oder Objektvariable auch. Aber im Gegensatz zu Modul- und Objektvariablen geht sie beim Beenden der Anlage verloren und wird nicht mit der Anlage gespeichert. Wenn du also in anderen Skripten derselben Anlage denselben Variablennamen wieder verwendest, dann überschreibst du den Inhalt dieser Variablen und bekommst bei verzögerten Aufrufen falsche Ergebnisse! Viele Grüße Götz
-
korrekt
-
Hallo @jloos, dein Problem wird durch die falsche Verwendung des local Schlüsselwortes verursacht. Öffne bitte die Seite Lua: demo in deinem Browser und gibt dort das folgende Skript ein: for i = 1, 3 do if i == 1 then local test = "Hallo" print(test) elseif i == 2 then print(test) else print(test) end end Du wirst sehen, dass du im Ergebnis nur einmal das Wort Hallo und zweimal nil bekommst. Entferne das Schlüsselwort local in der dritten Zeile Diesmal bekommst du dreimal das Wort Hallo als Ausgabe Begründung: local schränkt die Gültigkeit einer Variablen auf den Block ein, in welchem die Variable deklariert wird. Wenn du eine Variable local innerhalb eines Zweiges deiner if-Verzweigung definierst, dann gilt diese Variable auch nur innerhalb dieses einen Zweiges. In den anderen Zweigen derselben if-Verzweigung ist die Variable nicht bekannt. Deshalb steht in meinem Beispielskript für deinen Lokschuppen vor dem Variablennamen GKT nicht das local Schlüsselwort. Viele Grüße Götz
-
Hast du überlesen, was ich dir dazu geschrieben habe?
-
Eine Fehlermeldung findet man darin nicht, stimmt. Aber einen nützlichen Hinweis: Die Animation startet und sie stoppt anschließend sofort wieder. (Siehe @Hawkeyes Antwort über meiner) Weil die Tore den Befehl zum Öffnen und gleich danach den Befehl zum Schließen bekommen. Der Schließbefehl steht außerhalb deiner Verzögerungen und wird sofort ausgeführt Deine "deferred calls" werden alle ignoriert, denn die Bedingung für "if not deferred call" ist schon "false". Du hast ja vor dem Skript eine Verzögerung stehen und damit ist alles danach schon der Fall "deferred call" Des weiteren haben die Fälle alle denselben Namen "Verzögerung" und können daher nicht unterschieden werden. (Siehe @Hawkeyes Hinweis auf die Hilfe zu defer) Du hattest insofern recht, als du schriebst: Aber das konnte ich erst erkennen, nachdem ich anhand des Protokolls erkannt habe, was genau falsch läuft. Hier ist ein funktionierendes Skript (einschließlich Drehscheibe): Bitte beachte, dass die Variable GKT nicht local definiert ist. Sie ginge sonst beim wiederholten Aufruf verloren, weil sie innerhalb der if-Verzweigung deklariert wird und somit local nur innerhalb des einen Zweiges Gültigkeit hätte if not deferredCall then --[[ Auswahl einer Lok im Lokschuppen --]] local AuswahlListe = {} local GKTListe = {$("GKT Lokschuppen Gl 01"), $("GKT Lokschuppen Gl 02"), $("GKT Lokschuppen Gl 03"), $("GKT Lokschuppen Gl 04"), $("GKT Lokschuppen Gl 05"), $("GKT Lokschuppen Gl 06")} for i, GKT in ipairs(GKTListe) do if #layout:getVehiclesOn(GKT) > 0 then table.insert(AuswahlListe, GKT) end end local Anzahl = #AuswahlListe if Anzahl == 0 then return end -- wenn es nichts zu tun gibt, beende die Nummer hier! local Zufall = math.random(1, Anzahl) GKT = AuswahlListe[Zufall] $("Drehscheibe 7186").state = GKT.variables["Drehscheibenstellung"] defer(3, "Verzögerung (1)") elseif deferredCall == "Verzögerung (1)" then --[[ Öffnen der Tore --]] GKT.variables["LokschuppenObjekt"].animations["Tore"]:play(-1, 1) --[[ Wartezeit bis zum Starten der Lok --]] defer(3, "Verzögerung (2)") elseif deferredCall == "Verzögerung (2)" then --[[ ausgewählte Lok starten --]] if GKT.variables["Zug"]:hasEngine() then GKT.variables["Zug"].engine.active = true GKT.variables["Zug"].targetSpeed = 7 end --[[ Wartezeit bis Schließen der Tore --]] defer(15, "Verzögerung (3)") elseif deferredCall == "Verzögerung (3)" then --[[ Schließen der Tore --]] GKT.variables["LokschuppenObjekt"].animations["Tore"]:play(-1, -1) end Du musst die 3 Sekunden Verzögerung über dem Skript (in der grafischen EV) bitte löschen! Die ist jetzt in dieses Skript integriert, damit die einzelnen Verzögerungen unterschieden werden können. Viele Grüße Götz
-
Hallo Jürgen, hast du im Protokoll eine Fehlermeldung, die du mit uns teilen möchtest? Vermutlich steckt das Problem in deinen Variablen im jeweiligen Schuppen. Aber die sehe ich hier nicht und kann daher auch nichts genaues dazu sagen. Die Fehlermeldung könnte eventuell Aufschluss darüber geben.
-
EV funktioniert seit V8.5.2 anders als in V7
Goetz antwortete auf Hawkeyes Thema in Technischer Support
Wenn man weiß, wo man hinschauen muss und zudem die Wartezeit so ändert, dass man auch genügend Zeit hat, es zu sehen, dann ... -
Jeder Kunde ist "nur Anlagenbauer", da das der Zweck dieser Software ist, Opax.
-
EV funktioniert seit V8.5.2 anders als in V7
Goetz antwortete auf Hawkeyes Thema in Technischer Support
Würdest du bitte noch möglichst präzise beschreiben, was in der aktuellen Version falsch läuft? Was sollte passieren? Und was passiert stattdessen? Am rechten Ende der Anlage öffnen die Türen der Züge in den beiden mittleren Spuren auf der falschen Seite. Ich empfehle für den Test die Wartezeit am Bahnsteig zu verlängern. Sonst hat man kaum genügend Zeit die vier Züge zu betrachten. -
Ganz ehrlich, Paul? Die Texturen finde ich persönlich furchtbar. Zu verwaschen. Und die Spiegelung der halben Textur auf der Frontseite tut mir richtig weh.
-
Indeed that's a strange one. Can't make heads or tails of it.
-
I understand, Pete I was merely having a giggle and thought you might find it funny too. Plus I thought you wouldn't notice that it's happening (because reason one) and maybe appreciate if I let you know.
-
I love your (inadvertend) translations from spoken English to literary English, Pete.
-
sehr schönes Experiment, @EASY
-
Airport passenger gangway
Goetz antwortete auf 220hotwheelss Thema in [International] Problems and solutions
Keep it up, Pete Sorry I don't have a video in English on the subject. Maybe one day (but don't hold your breath, please) -
Airport passenger gangway
Goetz antwortete auf 220hotwheelss Thema in [International] Problems and solutions
You don't understand Iterations, Pete. The sole purpose of using an iteration is to spare you the tediousness of writing a separate command for each item. Every item is pulled from the group, get's the temporary name "iter" and is affected by the same command inside the loop, one after the other: Strangely enough you got it right for the visibility, though that iteration shouldn't be inside the other one for the motors. But that's the case in your first example, where you set the speed to 2 km/h For each item with the keyword "luggage motor", you set the speed of five SX1 vehicles and turn all items with the keyword EJ luggage invisible. Again and again and again, until no more item with the keyword "luggage motor" can be found. That's quite a mess! kind regards Goetz -
Fiel deshalb so knapp aus, weil ich nicht an meinem Rechner sitze und nur mobil im Forum bin. Sonst hätte ich dir den richtigen Weg genauer beschrieben. Warte einfach, bis @Neo dir hilft
-
Nein, das war kein Fehler. Du hast nur bei der Installation die Frage übersprungen, ob die Datenbank aus der Vorversion übernommen werden soll. Bitte lösche die vorherige Version nicht bis die Daten übertragen wurden. Du findest hier im Forum und im Wiki Hinweise zur nachträglichen Übernahme deiner Anlagen.
-
V. 8.5 Paste from layout verdreifacht Fahrstraßen
Goetz antwortete auf Phrontistess Thema in Technischer Support
Hallo @Phrontistes, Du kannst alle Fahrstraßen einer Kategorie mit einem Knopfdruck löschen. Hilft dir das? Viele Grüße Götz -
V. 8.5 Paste from layout verdreifacht Fahrstraßen
Goetz antwortete auf Phrontistess Thema in Technischer Support
Guten Morgen @Phrontistes, es gelingt mir bisher nicht, den von dir beschriebenen Fehler hier zu provozieren. Ich habe mehrere Versuche unternommen. Zwei einfache Anlagen. Einmal nur ein Gleis und einmal ein Gleis mit zwei Signalen und einer Fahrstraße. Versuch: Anlage "nur Gleis" über "Einfügen aus Anlage" in die "Anlage mit FS" importiert. Deine Anlage "Nebenbahn mit Kamerabegleitung" und meine Anlage "nur Gleis" Versuch: Deine Anlage "Nebenbahn mit Kamerabegleitung" geladen, dann über "Einfügen aus Anlage" meine Anlage "nur Gleis" importiert. Deine Anlage "Nebenbahn mit Kamerabegleitung" und meine Anlage "Anlage mit FS" Versuch: Deine Anlage "Nebenbahn mit Kamerabegleitung" geladen, dann über "Einfügen aus Anlage" meine Anlage "Anlage mit FS" importiert. In keinem der drei Versuche kam es bei mir zu dem von dir beschriebenen Fehlverhalten. Entweder ist einer der Schritte, den du ausführst anders als meiner. Oder deine importierten Anlagen weisen ein Merkmal auf, welches meine nicht haben. Und da dieser Punkt offenbar relevant ist müssten wir versuchen herauszufinden, worin der Unterschied besteht. Viele Grüße Götz -
Das ist dieselbe Einstellung wie in V8 Spezialeffekte aus / mittel / hoch
-
Hallo @Phrontistes, Das geht leider nicht. Wie gefällt dir folgender Vorschlag? Du legst in jedem Fahrzeug zwei Listen an. Türen links und Türen rechts Diese Listen können 0 bis x Achsennamen enthalten. Damit löst du mehrere Probleme auf einmal: Du musst nicht prüfen, ob die Achse existiert, weil Lua nicht über eine Liste ohne Elemente iteriert. Du vereinheitlichst die Achsennamen verschiedener Fahrzeuge Du sprichst wo nötig mehrere Achsen zugleich an. Viele Grüße Götz
-
Gespeicherte Anlege bei parallelbetrieb zweier Versionen
Goetz antwortete auf Anlagendesigners Thema in Technischer Support
-
Gespeicherte Anlege bei parallelbetrieb zweier Versionen
Goetz antwortete auf Anlagendesigners Thema in Technischer Support
Hallo @Anlagendesigner, das 3D -Modellbahn Studio ist abwärts-, aber nicht aufwärtskompatibel. Mit jeder neuen Version kommen neue Informationen dazu, welche Änderungen in der Anlagendatei bedingen. Eine neuere Version kann daher eine ältere Anlagendatei lesen (weil die Struktur bekannt ist), aber ältere Versionen kennen die Strukturen neuerer Anlagendateien nicht. Ich verstehe, warum dir das missfällt. Aber das ist der Stand der Dinge. Viele Grüße Götz