Art des Projekts: Bus-Mods
Projektname: Verschiedene, kleine Bus-Mods
Beteiligte Personen: SchulterSack
Copyright: macht damit, was ihr wollt
Wichtig: Ein gewisses Grundverständnis von Omsi-Skripten setze ich voraus.
Wer damit nicht zurechtkommt, muss auf die Mods leider verzichten.
Bitte zur Sicherheit immer ein Backup der geänderten Dateien anlegen!
Dieser kleine Mod macht es möglich, dass die Türen bei gedrücktem Türtaster öffnen, sobald der Bus steht.
Video-Demonstration:
xUfSbO7ixXQ
Voraussetzung:
Ein geeigneter Bus, bei dem die Türen im Stand ohne Weiteres geöffnet werden können.
Bei Bussen, wo man z.B. erst die Haltestellenbremse einlegen muss, macht der Mod keinen Sinn.
Ansonsten sollte es mit allen Bussen funktionieren, die auf dem M+R Türscript basieren.
Getestet habe ich es bisher nur mit dem Citaro (mit Morphi-Mod).
Und so geht's:
1. Öffnet die door.osc eures gewünschten Busses (welche das ist, steht in der jeweiligen .bus-Datei).
2. Scrollt zu den "{trigger:bus_doorfrontX}"-Abschnitten (Das X steht dabei jeweils für eine beliebige Ziffer).
Diese sollten sich standardmäßig direkt unter dem Changelog, also sehr weit oben befinden.
3. Kopiert jeweils den Inhalt eines "{trigger:bus_doorfrontX}" Abschnitts bis zu der ersten Zeile, die das Wort "tuertaster" enthält.
Von diesem Abschnitt:
müsstet ihr also diesen Teil kopieren:
Wichtig: Den Code nur kopieren, nicht ausschneiden/löschen!
4. Dann begebt ihr euch nach unten zum "{macro:Door_Frame}".
Dort solltet ihr einige Befehle vorfinden, die ein "Calc" im Namen haben. Darunter fügt ihr dann bitte den gerade kopierten Abschnitt ein.
Das würde in unserem Beispiel etwa so aussehen:
- {macro:Door_Frame}
- (M.L.Door0_Calc)
- (M.L.Door1_Calc)
- (M.L.DoorAftCalc)
- (M.L.Door2_Calc)
- (M.L.Door3_Calc)
- (M.L.Door4_Calc)
- (M.L.Door5_Calc)
- (L.L.velocity) (C.L.tueroeffnung) <
- (L.L.elec_busbar_main) &&
- {if}
- (M.L.trg_bus_doorfront0)
- (L.L.tuersperre) 0 =
- {if}
- (M.L.trg_bus_doorfront1)
- {endif}
- (C.L.HST_bremse_aktiv)
- {if}
- 1 (S.L.bremse_halte)
- {endif}
- {endif}
- ...
5. Nun müsst ihr noch oberhalb der Zeile "{if}" die folgenden Argumente eintragen (Zeilenumbruch nicht vergessen):
Das Y müsst ihr dabei durch die Nummer des jeweiligen Türtasters ersetzen. Diese findet ihr im ursprünglichen "{trigger:bus_doorfrontX}" Abschnitt.
In der Regel ist das die 1 für den ersten Türtaster, die 2 für den zweiten, usw.
Beim Z wird es schon etwas kniffliger, hier müsst ihr die Nummer einer Tür bzw. eines Türflügels eintragen.
Hier kann man pauschal sagen, dass die erste Tür die Nummern 0/1 hat, die zweite Tür 2/3, die dritte Tür 4/5, usw.
Dies kann je nach Bus aber abweichen! Ihr könnt im Code nach der richtigen Nummer suchen oder im Zweifelsfall hier nachfragen.
Welchen Türflügel einer Tür ihr dann nehmt, spielt keine Rolle, also für die erste Tür könnte man z.B. 0 oder 1 nehmen.
Unser beispielhafter Code würde nun so aussehen:
- {macro:Door_Frame}
- (M.L.Door0_Calc)
- (M.L.Door1_Calc)
- (M.L.DoorAftCalc)
- (M.L.Door2_Calc)
- (M.L.Door3_Calc)
- (M.L.Door4_Calc)
- (M.L.Door5_Calc)
- (L.L.velocity) (C.L.tueroeffnung) <
- (L.L.elec_busbar_main) &&
- (L.L.cockpit_tuertaster1) 1 = &&
- (L.L.door_0) 0 = &&
- {if}
- (M.L.trg_bus_doorfront0)
- (L.L.tuersperre) 0 =
- {if}
- (M.L.trg_bus_doorfront1)
- {endif}
- (C.L.HST_bremse_aktiv)
- {if}
- 1 (S.L.bremse_halte)
- {endif}
- {endif}
- ...
6. Die Schritte 3-5 wiederholt ihr nun für die restlichen, gewünschten "{trigger:bus_doorfrontX}" Abschnitte (ein solcher Abschnitt steht jeweils für eine Tür).
Es kann je nach Bus auch mal sein, dass ein Abschnitt "{trigger:bus_doorbackX}" heißt, da könnt ihr ganz genau so verfahren.
7. Das war's auch schon.
Wenn ihr nun die Türtaster gedrückt haltet, und den Bus abbremst, öffnen die Türen zu den jeweils festgelegten Konditionen (also z.B. bei unter 3 km/h).
Dieser Mod beinhaltet das türabhängige Kneeling für den NG272, wie im Wien-Mod.
Die Prozedur besteht aus drei Schritten:
1. Zunächst müsst ihr in der Model-Datei den Kneeling-Schalter umbenennen.
Öffnet dazu die model_GN92_main.cfg und ersetzt einfach das Vorkommen cp_kneeling_sw durch cp_kneeling_sw_override.
Es gibt nur ein Vorkommen in der ganzen Datei, ihr könnt also problemlos die Search&Replace Funktion eures Texteditors nutzen.
2. Der neue Name, also cp_kneeling_sw_override, wird jetzt noch in die door-3_varlist.txt eingetragen.
3. Nun müssen noch zwei Skriptschnipsel in die door-3.osc eingefügt werden.
Einmal dieser Teil hier oben bei den Triggern:
Wer möchte, kann den besagten Trigger auch in der cockpit.osc direkt ändern. Ich habe hier den Code 1:1 aus dem Wien-Mod übernommen.
Dann nochmal dieser Abschnitt unten im Door_Frame (z.B. einfach oberhalb des Wortes Türfreigabekriterium
Das wär's. Der Bus kneelt nun türabhängig.
Mit dem Freigabeschalter für die Rollstuhlrampe lässt sich das Kneeling auch bei geschlossenen Türen erzwingen.
Hier biete ich euch ein neues Türskript für den O405(G) von Pedro.
Über verschiedene Konstanten (wahlweise auch per .cti) lassen sich die meisten gängigen Varianten der Türsteuerung umsetzen.
Folgende Variablen stehen dabei zur Auswahl:
- frontdoor_needs_stopbrake - Haltestellenbremse muss eingelegt werden, bevor Vordertür geöffnet werden kann
- backdoor_needs_stopbrake - Haltestellenbremse muss eingelegt werden, bevor Hintertür geöffnet werden kann
- frontdoor_sets_stopbrake - Beim Öffnen der Vordertür wird die Haltestellenbremse eingelegt (sofern noch nicht geschehen)
- backdoor_sets_stopbrake - Beim Öffnen der Hintertür wird die Haltestellenbremse eingelegt (sofern noch nicht geschehen)
- frontdoor_locks_stopbrake - Bei geöffneter Vordertür kann die Haltestellenbremse nicht gelöst werden
- backdoor_locks_stopbrake - Bei geöffneter Hintertür kann die Haltestellenbremse nicht gelöst werden
- frontdoor_separated - Die Türflügel der Vordertür lassen sich getrennt steuern (wie klassische Berliner Türsteuerung)
- backdoor_automatic - Die Hintertür öffnet und schließt automatisch
- stopbrake_persistent - Die Haltestellenbremse löst erst bei Gasstoß
- AI_always_open_frontdoor - Die KI öffnet an jeder Haltestelle die Vordertür (ansonsten nur, wenn Fahrgäste einsteigen möchten)
Mit "Hintertür" ist hier beim Gelenkbus die mittlere Tür gemeint. Die dritte Tür ist immer automatisch und lässt sich nicht manuell steuern.
Die Einträge in der .cti haben so auszusehen:
- [setvar]
- door_CTI
- 1
- [setvar]
- frontdoor_needs_stopbrake
- 0
- [setvar]
- backdoor_needs_stopbrake
- 0
- [setvar]
- frontdoor_sets_stopbrake
- 0
- [setvar]
- backdoor_sets_stopbrake
- 1
- [setvar]
- frontdoor_locks_stopbrake
- 0
- [setvar]
- backdoor_locks_stopbrake
- 1
- [setvar]
- frontdoor_separated
- 0
- [setvar]
- backdoor_automatic
- 0
- [setvar]
- stopbrake_persistent
- 1
- [setvar]
- AI_always_open_frontdoor
- 0
Die Variable "door_CTI" muss immer auf 1 gesetzt werden, damit das Skript weiß, dass es die Variablen aus der .cti lesen soll.
Ansonsten wurde nichts geändert, lediglich die Trigger habe ich dem OMSI-Standard angeglichen.
Eure Buttons auf Lenkrad und Co. sollten also wieder wie gewohnt funktionieren.
Download: https://onedrive.live.com/redi…oA1d31s&ithint=file%2czip
Solltet ihr auf Probleme stoßen, lasst es mich bitte wissen.
Viel Vergnügen mit den Mods,
Schulter Sack