Hallo zusammen,
Hier stelle ich euch kleinere Scriptspielereien von mir als EInbau-Tutorial zur Verfügung.
schon länger regt es mich in OMSI auf, dass die Ansagen meist immer direkt nach dem Umschalten der Haltestelle abgespielt wird, und nicht, wie ich es aus der Realität kenne, erst auf der Strecke. Deshalb habe ich mich jetzt mal daran gemacht, diese Funktion in OMSI umzusetzen und möchte euch an meiner (wenn auch nicht 100% realistischer, aber wenigstens Realitätsnaher) Lösung teilhaben lassen.
Das ganze ist für die IVU Ticketbox/Farego konzipiert, sollte so aber mit allen Standardscript-Basierten Ticketdruckern/IBIS-Geräten funktionieren.
Leider ist es in OMSI nicht wirklich möglich, eine GPS-Steuerung umzusetzen. Stattdessen habe ich die Verzögerung auf Basis der im Fahrplan definierten Fahrzeit zwischen 2 Haltestellen genutzt, um die Verzögerung zu errechnen.
In die IBIS-Constfile des Busses tragen wir zusätzlich untenstehenden Eintrag ein.
In diesem Eintrag haben wir die Möglichkeit, Einfluss auf die Verzögerung zu nehmen.
Die Konstante "Ansagenverz_Standard" legt fest, welche Verzögerung verwendet werden soll, wenn z.B. kein Fahrplan aktiv ist (in Sekunden).
Darunter befindet sich eine Funktion, welche das Verhältnis zwischen Fahrzeit (in Sekunden) und Verzögerung (in Sekunden) modelliert. Diese Werte könnt ihr Belliebig ändern, aus den definierten Werten errechnet OMSI dann eine annähernde Kurve, sodass für jede Fahrzeit eine Verzögerung errechnet werden kann. Meine Beispielzahlen sagen z.B. folgendes:
Fahrzeit (s) | Verzögerung (s) |
---|---|
0 | 0 |
60 | 5 |
120 | 15 |
180 | 60 |
300 | 90 |
Jeder [pnt]-Eintrag steht für eine Zeile, durch neue [pnt]-Einträge können neue Zeilen zur genaueren Modellierung festgelegt werden. Der erste Wert ist jeweils die Fahrzeit (in s), der zweite die Verzögerung (in s).
Nun aber der Eintrag:
[const]
Ansagenverz_Standard
5
[newcurve]
Ansagenverz_Time
[pnt]
0
0
[pnt]
60
5
[pnt]
120
15
[pnt]
180
60
[pnt]
300
90
Alles anzeigen
Abspeichern nicht vergessen.
Nun kommen wir zu den entscheidenden Script-Änderungen.
Zuerst suchen wir nach {macro:IBIS_frame} (oder Vergleichbar, je nach Drucker).
Hier fügen wir in einer neuen Zeile (am besten direkt unter dem Macro-Befehl, oder vor dem weiter unten folgenden {end}-Befehl) folgendes ein:
' ######## Verzoegerung der Ansagen by der_Nik_ ########
(L.L.Ansage_play) 0 = !
{if}
(L.L.Velocity_Ground) 1 >
{if}
(L.L.Ansage_timer) (L.S.Timegap) + (S.L.Ansage_timer)
{endif}
' Ermitteln der Verzoegerung mit Fahrplan
(L.L.Ansage_play) 1 =
(L.L.schedule_active) 1 = &&
{if}
(M.V.GetTTBusstopIndex) 1 - (M.V.GetTTBusstopDep) (S.L.Ansage_Abfz)
(M.V.GetTTBusstopIndex) (M.V.GetTTBusstopArr) (S.L.Ansage_Ankz)
(L.L.Ansage_Ankz) (L.L.Ansage_Abfz) - (S.L.Ansage_Diff)
(L.L.Ansage_Diff) (F.L.Ansagenverz_Time) (S.L.Ansage_Verzoegerung)
' Verzoegerung Pruefen mit Fahrplan
(L.L.Ansage_timer) (L.L.Ansage_Verzoegerung) >=
{if}
(M.L.IBIS_PlayAnnouncement_final)
{endif}
{else}
(L.L.Ansage_timer) (C.L.Ansagenverz_Standard) >=
{if}
(M.L.IBIS_PlayAnnouncement_final)
{endif}
{endif}
{endif}
' ######## Verzoegerung ende ########
Alles anzeigen
Anschließend suchen wir nach {macro:IBIS_PlayAnnouncement} oder vergleichbar.
Diesen Macro nennen wir um, aus {macro:IBIS_PlayAnnouncement} wird {macro:IBIS_PlayAnnouncement_final} .
Unter dem Macro-Befehl fügen wir außerdem folgende Zeilen ein:
Über dem Macro oder nach dem nächsten {end}-Befehl fügen wir nun noch folgenden Eintrag ein:
Abspeichern nicht vergessen.
Hallo zusammen,
nicht alle Busbetriebe nutzen Ansagen, oft ertönt als Alternative dazu bei jedem Wechsel der Innenanzeige ein leiser Gong und mit diesem einfachen Tutorial funktioniert das auch in OMSI.
Ich habe es am Citaro probiert, das Prinzip ist aber bei fast allen Bussen das gleiche, lediglich können Datei- und Triggernamen im Script unterschiedlich sein.
Erstellt/Kopiert folgende Dateien, denn ansonsten ist der veränderte Bus nach dem Tutorial nicht mehr in der Lage, Ansagen abzuspielen.
.bus-Datei
In der neuen .bus-Datei muss der Name des Busses geändert werden.
sound.cfg
Namen der Kopie in der neuen .bus-Datei anpassen
ibis.osc
Die Datei heißt beim Citaro "IBIS-2.osc", bei anderen Bussen oder Druckern kann sie anders heißen. Gemeint ist die Scriptdatei, in welcher das Schildern von Linie, Route ect. geregelt ist.
Namen der Kopie in der neuen .bus-Datei anpassen
Die folgende Datei oder ein beliebiger anderer Sound muss im Sound-Ordner des Busses gespeichert sein.
Weitergabe nur unter deutlicher Nennung des Urhebers (_Nik_), Datei entstand aus eigener Aufnahme
Ordner:
OMSI 2/Vehicles/[Busname]/Sound
Bei Citaro`s:
OMSI 2/Vehicles/[Busname]/Sound-Citaro
ect.
in der Sound.cfg muss folgender Abschnitt hinzugefügt werden:
Den Namen der .wav-Datei muss bei Verwendung einer eigenen Datei angepasst werden, die Zahl darunter (Hier: 1) stellt die Lautstärke dar (0=stumm 1=voll).
Die Zahlen unter [3d] sollten im Idealfall mit denen des Ansagentriggers übereinstimmen, die unten genannten Zahlen sind vom Solo-Citaro.
Sucht in der Datei nach diesem oder einem gleichwertigen Abschnitt:
{macro:IBIS_PlayAnnouncement}
(L.L.IBIS_busstop) 0 >
{if}
"..\..\Announcements\" 0 (M.V.GetDepotStringGlobal) "\" $+ $+ (L.$.act_busstop) $+ $msg
(L.L.IBIS_RouteIndex) (M.V.GetBusstopCount) 1 - (L.L.IBIS_busstop) <=
{if}
"_#terminus" $+
{endif}
".wav" $+
(T.F.ev_IBIS_Ansagen)
{endif}
{end}
Alles anzeigen
...und ersetzt ihn durch diesen (Macroname evtl. entsprechend der oberen Stelle anpassen, je nach Bus):
Danach müsste es funktionieren.
Bei Fehlern ext. einfach hier melden!
LG Niklas
Bei Bugs, Fehlern oder Verbesserungsvorschlägen gerne melden, ich bin selber erst am Lernen was Scriptarbeit angeht
LG Niklas