ScenarioScript: Ansagen an Türfreigabe binden

  • Hallo!


    Ich wollte in meinen eigenen Szenarien Ansagen einbauen - so weit so gut. Während der Fahrt funktioniert das alles prima (Zug fährt über Marker -> Audio-Datei wird abgespielt).


    Nun habe ich mich gefragt, wie/ob ich Ansagen auch bei Stillstand des Zuges und offenen Türen einbauen kann.


    Sprich, ich fahre mit dem Zug in den Bahnhof ein, halte an. Öffne die Türen. Dann kommt eine Ansage (z.B.: "This is... This train is for... The next stop is..."), wie es in UK oftmals üblich ist.


    Also habe ich nach Wegen gesucht, wie ich das einbauen könnte.


    Meine Idee wäre gewesen, den SysCall für die Ansage in eine Condition einzubauen. Somit würde (nach meinem Verständnis des Ganzen) das Script prüfen, ob die Türen auf der linken oder rechten Seite offen sind und demnach entscheiden, ob die Ansage abgespielt werden soll oder nicht (Bedingung erfüllt/nicht erfüllt).
    An die Geschwindigkeit des Spielerzuges binden wäre eine andere Möglichkeit, jedoch kann man sich auch mal verbremsen und dann wäre das ganze eher störend, da alles an der falschen Stelle abgespielt werden könnte.


    Ich habe auch im Control List Dialog nachgesehen, wie das Kommando in der Condition heißen könnte ("DoorsOpenCloseLeft" bzw. "DoorsOpenCloseRight"). Ich habe ein Bild des Fensters angehangen und entsprechende Befehle grün markiert.


    Meine Frage: Kann ich überhaupt Ansagen von der Türfreigabe abhängig machen? Wenn ja, wie müsste der entsprechende Teil im LUA-Script des Szenarios aussehen?


    Ich hoffe, dass ihr mir da helfen könnt.


    MfG, blk11

  • Müsste so ähnlich wie beim ZP9-Trigger vom Signalteam funktionieren: Trigger am Ende des Bahnsteigs, da wo der Zug hält und dann ab Stillstand des Zuges, nach einer gewissen Zeit, müsste der Sound abgespielt werden.


    Oder Du platzierst stattdessen den Marker, den Du für die freie Strecke benutzt. Wenn man da keine Zeitverzögerung einstellen kann, benutzt Du einfach eine Sounddatei, die zB bei 35 Sekunden Halt des Zuges die ersten 35 Senunden "leer" ist und dann erst die Ansage beginnt. Wär zwar improvisiert aber würde funktionieren.

  • Hallo @blk11,


    Das mit dem Condition Check düfte schon machbar sein, dann bräuchte es aber für jede Ansage einen gesonderten Condition Check (oder eine sehr komplex gehaltene variable Abfrage, die durch "Befehle" in (Editor-)Anweisungen ausgelöst werden).
    In Jedem Fall dürfte es das Script enorm aufblasen. Condition Checks im allgemeinen sind auch eher sparsam anzuwenden, weil sie ordentlich Performance ziehen.


    Ich persönlich würde hier auf jedenfall mit Markern/Triggern und eventuell zeitlicher Verzögerung arbeiten.


    Grüße


    -setter-

  • Hi Leute,
    danke für eure Antworten.


    Mir ist bei der Conditon Check Methode ein Problem aufgefallen. Sobald die Türen des vorderen Wagens nicht aufgehen, bleibt der Wert "DoorsOpenClose..." auf 0, egal, bei wie vielen Wagen sonst die Türen offen sind. Somit würde das mit den ConditionChecks eher eine schlechte Lösung darstellen. Denn, wenn dieser Wert 0 beträgt, kann der TS den Check nicht erfolgreich abschließen.


    Ein anderes Problem dürfte die große Skript-Datei am Ende sein.
    Ich habe das mal hochgerechnet.


    Bei 10 Halten würde anfallen:
    - in etwa 20 bis 30 Sounddateien (je nachdem)
    - Dementsprechend einmal 10 Trigger, dazu 10-20 ConditionChecks
    - Eine extrem schlechte Performance bis hin zu ständigen Abstürtzen des TS


    Das Problem ist eben, umso mehr im Skript am Ende drin steht, umso mehr drückt das auf die Performance.
    Jetzt stelle man sich noch ein Szenario auf South London Network zur Stoßzeit vor - und das war's.


    Ich muss da selber nochmal überlegen und werde in der nächsten Zeit alles mal durchprobieren und hier dann berichten.


    Grüße
    blk11