PZB-Modus "Zwang" z.Bsp. via Script möglich?

Discord Einladung
Trete unserem Discord-Server bei (klicke hier zum Beitreten).
  • Hallo zusammen,


    ich habe mich mal ein wenig mit dem Lua-Script beschäftigt bzw. dessen Möglichkeiten (selber ran trauen tu ich mich noch nicht).


    Z.Bsp. in dem Englischen Tutorial wo erklärt wird dass man die Kamerafahrten damit macht, oder Geschwindigkeits-Überwachungen mit Ereignissen auslösen kann wie Lok-Abschaltung + nicht Bedienbarkeit für "x" Sekunden oder eben auch bei mehrmaligen Verstoß die Szenario-Beendigung.


    Seit kurzem, schaue ich mir den Szenario-Editor genauer an, so langsam komme ich damit auch Stück für Stück besser mit zurecht. Da kam mir gestern die Idee ... warum nicht auch so etwas mal mit einbauen falls es möglich ist! Nur da ich wenn ich mir nen Lua-Script anschaue, aussehe wie wenn ein "Schwein ins Uhrwerk" schaut! Wollte ich die frage an erfahrene Leute weiterleiten, ist dies überhaupt möglich?


    Ungefähr so läuft dass mit der Geschwindigkeits-Überwachung via Script ja:


    Wie stelle ich mir dass ungefähr vor:


    Ob dies jetzt sonderlich Sinnvoll ist oder großartig Anklang finden würde ist erst mal dahingestellt! Was aber ggf. für Szenrien Attraktiv wäre ... z.Bsp. Ihr Ausbilder begleitet sie heute oder sie haben ihre Prüfung "Bla Keks"!


    Der Verwendungsmöglichkeiten sind da ja theoretisch keine Grenzen gesetzt! :D

  • Möglich ist da einiges, nur um eben einige Funktionen in einer Lok kurzeitig ausser gefecht zu setzen musst du die entsprechenden ControlValue´s und Variablen kennen, die für einen Reibungslosen Ablauf sorgen,
    hier dürfte die Schwierigkeit beginnen, die ControlValue´s herauszufinden ist nicht das Problem aber die Variablen sind irgendwo in den untiefen der .out Dateien enthalten.


    Sprich als Beispiel:


    Das Leistungsrad bei unserer V100 ist eigentlich als ControlValue ein "Regulator" dieser wird im Script aber als "Leistungsrad" angesteuert.
    Wobei Regulator und Leistungsrad das gleiche ist.


    Jetzt kann man natürlich sagen, das man eben den Regulator meinet wegen auf Wert 0 setzt um keine Leistung zu haben, aber hier wird Lua dir einen Strich durch die Rechnung machen, wenn sich die Variable im Bereich "Function update Time" befindet und günstig programmiert ist, denn dann würde abgefragt welchen Zustand das Leistungsrad hat, stimmen die Werte nicht überein kommt es entweder zum Crash oder der Regulator würde wieder einen anderen Wert erhalten als wie du diesen gerne hättest.

    2 Mal editiert, zuletzt von TrainSimContent ()

  • Hab eben mal die Code Stelle aus dem Video rausgesucht und nen Screen von gemacht! Dass meinst du sicherlich oder?


    Quelle ist übrigens von Matt P. Tutorial Video .... damals als ich mir das gespeichert hatte gar nicht drauf geachtet :D


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Aber es geht ja auch erstmal nicht um das Abschalten einzelner Funktionen sondern um die Überwachung der PZB-Zugart.



    Nachtrag: in den zwei anderen Screenshots wird die Sperre der Controllen sowie die Aufhebung erklärt!

  • Richtig


    Get Speed ist einen Gameinterne Variable und dann fragt er nach dem Regulator und anderen ControlValue´s
    Das ganze muss dann kombiniert werden.


    Im Prinzip wie:
    Wenn Zeit(definierte Variable die durch lua geprüft werden kann in sekunden) größer xy und speed(gameinterne Variable) größer xy and handbremse(ControlValue) fest == true oder 1(je nach ControlValueTyp oder Variable) dann z.B. Notaus(ControlValue) = 1
    Das kann man jetzt nicht genauer sagen da man dazu die ControlValue´s und werte kennen muss.


    Für Time musst du halt erst die Simulationzeit erfragen
    Für Speed musst die eine Abfrage machen wie im Screenshot von dir
    Und die entsprechenden ControlValues musst du dir halt vorher heraussuchen.


    ist Genauso wie ich bei der V100 eine Handbremsüberwachung mit eingebaut habe, welche prüft ob man 10 sekunden lang mit einer angezogenen Handbremse welche mit noch 0.2 = 20 % Anlegezustand anliegt fährt:

    Also local gibt mir nur für diesen Lua Blockbereich eine Variablenmöglichkeit um halt nach dem ControlValue "HandBrake" zu fragen.
    Speed 2 gibt mir für diesen Block den Wert der Geschwindigkeit, den ich fahre.
    HandbremsTime ist unter den globalen Variablen angegeben als Wert in Sekunden.
    Der Rest sollt sich dann selbst erklären, wenn man mehrmals liest.

    2 Mal editiert, zuletzt von TrainSimContent ()

  • Warum nicht du kannst alles aufgreifen, was mit der Lok zu tun hat.
    Wenn du die entsprechenden ControlValue´s oder gameinternen Variablen kennst.

  • Moin @NessaRevane,


    es ist mit sicherheit möglich, abzufragen ob die PZB-Eingeschaltet wurde oder nicht, das Problem ist, das die PZB-Funktionen (Name der Schalter im Lok Script) nicht zwingend bei jeder Lok gleich sein müssen.


    Du kannst mal mit der Startoption "-ShowControlStateDialog" den TS starten, dann siehst du beim Fahren der Lok, welche Werte sich wie beim ändern der PZB-Funktionen ändern.
    daraus kannst Du Rückschlüsse ziehen, welche States der Lok du abfragen musst.


    Ich seh mir das heute abend mal an, das wäre eine gute Ergänzung für mein (universales) Speedcheckscript, das ich auch aus Matts Anleitung gestrickt habe...


    Grüße


    -setter-

  • @-setter-


    Wenn man sich mal z.Bsp. dass Script von der vR111 anschaut dann hat man da ja festgelegte werte (1,2,3) für die Zugarten Bei anderen Loks ist es ggf. einen Durchschalt-Vorgang mit X-Triggern also 2x Wert auf 1 überprüfen etc.


    Denke kaum dass man da was einheitliches stricken kann aber man müsste halt testen mit welcher Methode welche lok so alles drauf anspringt!


    Freut mich aber dass diese Gestern Abend entstandene "Schnaps Idee" Anklang findet ... :D , halt uns mal auf dem laufenden ob da was hin bekommen hast!


    Auf jedenfalls scheint es, eine Denksportaufgabe für die Lua-Coder zu sein ^^

  • Hi @NessaRevane,


    ich hab mir jetzt mal die PZB ON/Wechsel/OFF Variabeln von 3 Loks angesehen und es ist nicht sinnvoll umsetzbar in meinem universal Script.
    Es ist nicht mal bei den einzelnen Herstellern gleich gebastelt. Man müsste für jede Lok (die wieder anders Tickt) etliche Zeilen Code mit reinstricken.
    Das würde das Script zum einen unnötig aufblähen und zum anderen extrem unübersichtlich machen.
    Das Thema ist damit für mich eigentlich nicht interessant, da ich alles aussen vor lasse, das nicht universell einsetzbar ist.
    Eigentlich schade, denn die Grundidee ist gut, aber da es bei den Lokskripten nunmal keine Standards für die verschiedenen (Zusatz-) Funktionen gibt müsste man das Rad schon jedesmal zu >50% neu erfinden.


    Grüße


    -setter-

  • Der vR Maik hat mich zum Thema mal wie folgt angeschrieben:


    Zitat:
    Weil ich da grad die Script Diskussioin zur PZB Zugart mit Zwang gelesen hab ... bei vR Loks geht das nicht. Man kann das Script einer Lok nicht von aussen ansprechen. Bei der DTG155 wird in machen Scenarien dies aber tatsächlich so gemacht. Die PZB Einschaltung und Zugartumschaltung ist dort rein über Controller gemacht. Eine Lok lässt sich im Scenarioscript über Lokname:Controllername ansprechen. Scriptvariablen aber auf keinen Fall.
    Zitat Ende.


    Ich denke das erklärt schon einiges.

  • Bei den neueren vR Loks scheint das in der Tat so zu sein (bei der 110 z.B.) gibt es da keinen Status der stabil bleibt, das man ihn abfragen könnte...
    Wie gesagt, die Arbeit (für die Loks bei denen das überhaupt möglich ist) steht in keinem verhältnis.
    Das hatte ich tatsächlich eben noch vergessen...

  • @NessaRevane ich find die Idee gut. Vielleicht könnte man z.B. so eine richtige Einweisungsfahrt als Szenario machen.
    Müsste halt gucken, bei welchen Loks man an so etwas rankommt. Das das absolut Lok-spezifisch ist, ist eh klar - also gleich den Hinweis ins Manual: "Loktauschen mit RWTools zwecklos" ;) (liest zwar sowieso keiner, aber man hats wenigstens versucht)

  • Zitat:
    Weil ich da grad die Script Diskussioin zur PZB Zugart mit Zwang gelesen hab ...

    Schade drum, wäre ja mal an sich ne Coole Sache wenn man es so einfach machen könnte bzw. darüber auf greifbar wäre ... oder zumindest für die Zukunft de Möglichkeit so was anzusprechen gegeben wäre!


    Am besten wäre es natürlich wenn das Script bzw. die Variablen die Meldung abfangen würden von der Message Box (O,M,U) das wäre dann auch allgemein genug! Aber so einfach wird es einem ja sicherlich nicht gemacht! Da wäre dann auch ein Lok-Tausch mit RW-Tools kein größeres Problem!


    Freut mich, dass ich scheinbar mal ne wirkliche Knobel-Aufgabe raus gehauen hab :P .... @nobsi ja zum Beispiel ... oder ne Prüfungsfahrt incl. Bestrafung bei falscher Bedienung :D !



    Naja bin für heute erst mal raus! gn8