Jump to content

Phrontistes

Mitglieder
  • Gesamte Inhalte

    1610
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Phrontistes

  1. Bitte auch bei der Skript-Bedingung. Und wie gesagt, die erste Zeile, auch wenn es eine Kommentarzeile sein sollte.
  2. Hallo @AndreasWB, nachdem Du auch die Bahnschranke ansprichst, die zu schließen ist, bevor eine Fahrstraße aktiviert wird: Das ist ein recht kniffeliges Problem. Ich musste einige Routinen schreiben, um den Bahnübergang zufriedenstellend in der Griff zu bekommen. Eine Möglichkeit ist, dass die Fahrstraße das Schließen anfordert. Das muss natürlich frühzeitig geschehen und geht nur, wenn der Bahnübergang noch ein Stück entfernt ist. Ansonsten muss der close request anderweitig rechtzeitig ausgelöst werden. Dein Wunsch würde meine Logik "Close request by route" zerstören. Neo muss also schon aufpassen, was er bei der Erfüllung von Wünschen an anderer Stelle kaputtmacht. Beste Grüße Phrontistes
  3. Nein, das kannst Du beliebig mischen. Ausgeführt wird der Lua-Code, den Du sehen kannst, wenn Du in der graphischen Oberfläche auf <> klickst. Nur nebenbei: Der erzeugte Code ist aus nachvollziehbaren Gründen manchmal nicht ganz so elegant, wie direkt programmiertes Lua.
  4. Hallo @BahnLand, ❓ Die Meldung geht weiter: "Script error (9): Pfad3b: Abbruch durch 'Error' in Benutzer-Ereignis". Genau das hast Du ja versucht. 9 ist die Zeilennummer der aufgerufenen Routine, dort wo "error ("Pfad3b: Abbruch durch 'Error' in Benutzer-Ereignis")" steht. Dass wir in der aufgerufenen Routine angelangt sind, sieht Du an der blauen Zeile ("Error") darüber. Die Ereignisanzeige hat korrekt mitbekommen, dass wir ins benutzerdefinierte Ereignis "Error" gesprungen sind und dann in Zeile 9 den Fehler gemacht haben, "error" in einem benutzerdefinierten Ereignis aufzurufen. Ereignisse mit Schlüsselwörtern zu benennen (Print, Error) kann etwas missverständlich sein, auch wenn das etwas anderes ist als die Schlüsselwörter print bzw. error. Beste Grüße Phrontistes
  5. Hallo @BahnLand, im Ereignis kein Parameter definiert + reserviertes Schlüsselwort pur? Aber ich weiß es nicht, ohne zu testen, das kann ich erst später. Beste Grüße Phrontistes Nachtrag: Nein, das war es nicht. Man darf error offenbar nicht in einem benutzerdefinierten Ereignis auslösen (was im Übrigen ja so auch in der Fehlermeldung steht ). Wir haben hier übrigens auch kein reines Lua, sondern ein von @Neo kastriertes.
  6. Im Katalog. Die von mir angegebene ID gibst Du oben rechts ein.
  7. Ja, aber Du kannst die Soundquelle (AE97B80D-60E9-41D6-9B0A-752A9E8FA756) mitfahren lassen und dort einen passenden Sound hinterlegen und abspielen.
  8. Hallo @Neo, Vielleicht besser die erste Zeile wiedergeben auch wenn es eine Kommentarzeile ist, denn dann kann man auf diese Weise den angezeigten Text beeinflussen. Sonst hast Du das Problem, was Du sinnvollerweise machst, wenn mehrfach editiert wird. Allerdings hast Du ein Übergangsproblem, weil man bisher einen Anzeigetext hinterlegen konnte. Beste Grüße Phrontistes
  9. Mein Tipp: Es bleibt ein Sockel unter dem Fahrweg stehen. Einebnen ohne Straße oder Gleis abzureißen kann ich mir nicht vorstellen.
  10. Hallo @Neo, Du hast in diesen Thread die Frage gestellt Anregung: Es wäre vielleicht nützlich, auch in der Ereignisanzeige den Typ anzugeben - den man allerdings auch schon jetzt mit Doppelklick sehen kann. Beste Grüße Phrontistes
  11. die nicht bestünde, stände da eine kryptische Objekt-ID !?
  12. Hallo @Neo, diese endlose Diskussion veranlasst mich, im richtigen Forumsbereich anzuregen, ein print (wahlweise error) eines beliebigen Textes ins Ereignisprotokoll als Auswahlmöglichkeit in die graphische EV aufzunehmen. Vielleicht als vorletzten Punkt vor dem Skript aber nach der waagrechten Linie. Man würde sich dadurch sparen, den gleichen Text zweimal eingeben zu müssen, einmal beim Lua-print und einmal bei der Beschreibung damit man gleich sieht, was passiert. Beste Grüße Phrontistes
  13. .. auf welche Dich @Neo schon am Dienstag hingewiesen hatte: Wir reden hier von einer einzigen Zeile Lua, welche über Skript ausführen eingebunden werden kann. Wer mal gelernt hat, wird ja von einer Print-Anweisung nicht wirklich überfordert sein. Und wenn Du nicht willst, dann kopierst Du den Print-Text noch hier hinein:
  14. Hallo @BahnLand, nur der Vollständigkeit halber und weil ich das immer so mache, wenn ich meine Verzweigungen debuggen will: Den Text, den Du der Trace-Routine übergibst, könnte man auch einfach printen indem man ein Skript mit einer einzigen Lua-Zeile aufruft: print ("Pfad1a: Taster wurde aktiviert") Das steht dann in grüner Schrift in der Ereignisanzeige: Und wenn man will, dass das Programm stehen bleibt, nimmt man error statt print, dann sieht es so aus: Beste Grüße Phrontistes
  15. Das ist nach dem Umbau aber nur eine runde Sache, wenn alle Bahnhofsgleise belegt sind. Ist das nicht der Fall, bleibt der Zug am Einfahrsignal stehen, obwohl Gleise frei sind, weil Du nicht mehr prüfst, ob ein Gleis frei ist.
  16. Der Zug fällt im Looping auch nicht runter und starke Knicke im Gleis machen ihm auch nichts: 49044031-1DFF-4E5C-BA3B-8D54EF3C7C7B
  17. Hallo Wolfgang, warum? Sobald die erste FS aktiviert ist, trifft beim nächsten Durchlauf der Schleife die Bedingung "frei und kann aktiviert werden" im zweiten Teil nicht mehr zu (weil alle über die erste Weiche müssen, und die ist schon gesperrt), d.h. weitere FS werden nicht mehr aktiviert. Getestet habe ich es nicht. Du? Beste Grüße Phrontistes
  18. Hier korrigierte Version. Deine zweite Zeile war überflüssig, die dritte falsch. Test korrigiert.mbp
  19. Die sind nach dem Anheben natürlich ungültig, nach dem Absenken werden sie aber von allein wieder gültig. Wichtig ist, dass die Signale nur an der Z-Achse bewegt werden, nicht an x- und y-Achse.
  20. Das hatte ich mir mal gewünscht, weil man die Aktionen und Bedingungen in der Mitte besonders genau hinsehen muss, um die selbst gemachten Logikfehler zu finden. ❓Neo verwendet die Systemschrift, welche Du exakt so z.B. auch im Explorer hast.
  21. Das geht auch mit Lua-Code, den Du z.B. auf einen Schalter legst. Voraussetzung: Du versiehst die Signale mit einem Schlagwort. Damit kannst Du dann beliebig viele Signale auf einen Schlag erledigen und musst auch nichts mehr markieren. Ausblenden und um 10 Meter anheben (und damit deaktivieren) der Signale (im Beispiel mit Schlagwort "Signal with TC"). local t = layout:getEntitiesByKeyword("Signal with TC") for i, Iter in ipairs(t) do Iter.visible = false local pos = Iter.transformation.position pos["z"] = pos["z"] + 10 Iter.transformation.position = pos end Um 10 Meter Absenken (und damit aktivieren) sowie sichtbar machen: local t = layout:getEntitiesByKeyword("Signal with TC") for i, Iter in ipairs(t) do local pos = Iter.transformation.position pos["z"] = pos["z"] - 10 Iter.transformation.position = pos Iter.visible = true end
  22. habe ich Dir oben doch aufgezeigt.
  23. OK, das kann man graphisch nicht zusammenklicken. Hier in Lua: local t, t2 = layout:getVehicleGroup(Vehicle) for i, Fahrzeug in ipairs(t) do local Ori = t2[i] if Fahrzeug.variables["Variable im Fahrzeug"] ~= nil then -- Das erste "Fahrzeug" (Wiederholung) kann man in der graphischen EV nicht anklicken Fahrzeug.labels[Fahrzeug.variables["Variable im Fahrzeug"]].text = Inhalt_Beschriftung end end "Vehicle" und "Inhalt_Beschriftung" werden der benutzerdefinierten Routine übergeben (sind hier also Auslöser) "Variable im Fahrzeug" ist die Textvariable in der der Beschriftungsname steht. "Variable im Fahrzeug" könnte entsprechend meinem Vorschlag eine Liste sein, dann muss der Code aber noch erweitert werden. Hab's nicht getestet, müsste aber stimmen.
  24. Dein Einstieg "Objekt" ist verkehrt. Du musst mit "Variable" bzw. "Variable erweitert" einsteigen. Nachtrag für @Neo: Hier kann man tatsächlich Unsinn zusammenklicken.
×
×
  • Neu erstellen...