Moin,
ein stiller Mitleser meldet sich zu Wort, leider gleich mit mehreren Fragen, Pardon im Voraus für diesen suboptimalen Einstieg ins Forum.
In Railworks können Szenarios ja durch Lua-Script erweitert werden. Ich finde diese Möglichkeiten hochinteressant, schon alleine aufgrund der netten HTML-Hinweisboxen mit Bildern und formatierten Text. Im Netz und den Handbüchern findet man leider kaum Informationen zu den einzelnen Funktionen und ihren Parametern welche z.B. RSC in einigen seiner Szenarios verwendet. Insofern wende ich mich jetzt an euch, in der Hoffnung einige Hinweise zu bekommen. Zum konkreten Testszenario:
Der Spieler startet vor einem ESig in Hannover Hbf und soll einen ICE(2) nach Hamburg Hbf steuern. Da es wenig Sinn ergeben würde, mit einem "abgerüsteten" Zug vor einem (roten) Einfahrtssignal zu starten, startet das Szenario mit einer kleinen 15 Sekündigen Kamerafahrt und einem kurzen Einweisungstext (Sinngemäß "Fahr nach Hannover, kuppel den hinteren Zugteil des ICE 2 ab und fahr nach Hamburg"). Während der Spieler den Text liest und die "Entschleunigung" durch die Kinokamera "genießt", rüstet das Script den Zug auf (Richtungswender nach vorne, AFB auf 40km/h, Führerstandslicht an, PZB & "Vigil" aka SIFA an) und setzt den Spieler nach ca. 15 Sekunden in den Führerstand. In Hannover bekommt der Spieler noch einen (bebilderten) Hinweis dass und wie er den ICE 2 flügeln/entkuppeln muss.
Während der Spieler nun seinen Halbzug nach Hamburg-Harburg karrt, fällt der LZB-Rechner beim Tempo 180km/h - 200km/h "aus" inkl. Zwangsbremsung auf offener Strecke. Dazu schaltet das Script schlicht die LZB aus und aktiviert die Notbremse.
Der Spieler muss nun bis zum nächsten Hauptsignal seinen Zugverband mit 40km/h und danach bis kurz hinter Celle mit maximal 160km/h VMax fahren. Dazu nutze (und missbrauche?) ich im Moment "TestCondition" und prüfe im gleichen Rutsch ob die LZB wieder eingeschaltet wurde. Nach Celle schaltet sich die LZB wieder ein, es folgt eine (ungescriptete) fliegende Überholung eines Güterzuges und der Spieler kann ohne weitere Vorkommnisse mit 200km/h die Fahrt bis Hamburg Hbf abschließen. Sollte der Spieler mit PZB und/oder SIFA gefahren sein erhält er zusätzlich eine kleine "Herzlichen Glückwunsch"-Meldung.
Da ich beruflich mit der Eisenbahn soviel zu tun habe wie eine Wüste mit Wasserüberfluss ist das oben genannte Verfahren bei LZB-Rechnerausfall vermutlich falsch. Wie auch immer, das meiste des oben beschriebenen funktioniert bereits, allerdings ergaben sich folgende Probleme bzw. Fragen:
1) Beim Aufgabenstart ist es nicht möglich die Scheibenwischer via Script einzuschalten. Alle Befehle an die Wischersteuerung ("Wipers") werden sofort "überschrieben", sie wischen genau einmal. Ich habe mir kurzfristig mit einem erst ~ 10 Minuten nach Aufgabenbeginn beginnenden sehr starken Regen beholfen, wäre aber über eine "echte" Lösung froh. Evtl. hat jemand bereits dieses Problem überwunden.
2) Die LZB schaltet sich nach so gut wie jedem Gleisabzweig (scheinbar durch die "LZB Start"-Links) wieder kurz ein. Auch wenn das Script sie sofort wieder abwürgt mutet es seltsam an (Lautes Buzzer-Geräusch, LZB-Lichter gehen an), vorallem bei laufender PZB. Gibt es neben "LZBEnable" eine weitere Möglichkeit die LZB komplett zu deaktivieren welche ich übersehen habe? Zumindest im InputMapper des ICE2 habe ich keine weiteren Schalter für die LZB gefunden.
3) Gibt es irgendwo eine Dokumentation über die Möglichkeiten des HTML-Parsers von Railworks bzw. hat sich jemand schon damit beschäftigt? Der scheint mir eine "lustige" Mischung zwischen HTML1-Standard und einer Eigenproduktion von RSC aus. Links in einer Hinweisbox z.B. werden zwar blau unterstrichen, sind aber nicht anklickbar. CSS funktioniert garnicht, JavaScript wird scheinbar irgendwie gefressen, erzeugt aber einen SBH. Ich hatte ja gehofft RSC würde schlicht den Internet Explorer nutzen, ist leider nicht so.
4) Der in Railworks integrierte Lua-Interpreter versteht aus mir unbekannten Gründen auch die Funktion "loadlib". Zumindest theoretisch lassen sich damit scheinbar wirklich beliebige DLLs laden:
Ist der Lua-Interpreter eine RSC-Eigenentwicklung? Nee, im Ernst: Hat irgendjemand mit dieser Option bereits Experimentiert und oder Erfolge erzielt? Mit anderen Compilereinstellungen funktionierte es dann doch leidlich, ich frage mich was man damit wohl sinnvoll anstellen könnte... Hat jemand Ideen?
Grüße
Manfred