OMSI 2: Steam Edition Guide

How to redeem '3rd Echelon' map - [DEPRECATED; GAMESPOT REMOVED THE PAGE] for Tom Clancy's Splinter Cell: Conviction

Scripting: cashdesc.osc für Homecockpits anpassen

Overview

Viele Busse halten sich bei der Tastenbelegung der Controller nicht an die vom Spiel vorgegebene Münzbelegung. Zu nennen wären da die 2012er Busse aus dem Generationenpaket, die neuen Hamburger Stadtbusse und auch der Doppelgelenkbus AGG 300. Auch einige Busse aus anderen DLC’s werfen bei einem Druck auf die 2 € Wechselgeldtaste oft was falsches raus, wie z.B. der O530 aus dem Aachen Paket, der da einen Euro rausrückt. Mit etwas Hintergrundwissen zur Scriptdatei cashdesc.osc kann man das ohne viel Aufwand mit einem Texteditor beheben.

Vorbereitungen und Einleitung

Bevor ihr eine Datei ändert, solltet ihr eine Sicherheitskopie anlegen! Die Scriptdateien der Busse befinden sich im OMSI 2 Ordner (Pfad zu Steamsteamapps) im Verzeichnis VehiclesScript

Als Beispiel werde ich hier den Doppelgelenkbus AGG 300 behandeln.

Die cashdesc.osc ist eine Scriptdatei, welche eine mir nicht bekannte Scriptsprache verwendet, aber mit ein paar Semesterns Informatik im Nacken, war es kein Problem, die relevanten Informationen zu bekommen.

Für die Münzrückgabe ist die Funktion M.V.GiveChangeCoin verantwortlich. Das Argument, also welche Münze letztlich zurückgegeben wird, steht dabei vor der Funtion und die Funktion selbst steht in Klammern. Eine etwas ungewöhnliche Syntax, aber so ist es nun einmal.

Doppelgelenkbus anpassen

Die Argumente bei den Bussen von Darius sind einfach in der falschen Reihenfolge. Also muss man nur diese ändern – sprich ein paar Zahlen.

Die erste Hälfte der Datei regelt die Rückgabe der einzelnen Münzen, dort findet ihr z.B. den Teil für das 5 cent Stück, das im Original so aussieht:

{trigger:cashdesk_changer_0_05} (L.L.almex_riegel) ! {if} 1 (S.L.cashdesk_changer_sw_0_05) 5 (M.V.GiveChangeCoin) (L.L.cashdesk_changetimer_solo1) 1 > {if} (T.L.ev_ticketsale_givechange_solo) 0 (S.L.cashdesk_changetimer_solo1) {else} (L.L.cashdesk_changetimer_solo2) 1 > {if} (T.L.ev_ticketsale_givechange_solo2) 0 (S.L.cashdesk_changetimer_solo2) {else} (T.L.ev_ticketsale_givechange_solo3) 0 (S.L.cashdesk_changetimer_solo3) {endif} {endif} {endif} {end}

Hier braucht ihr nur in der Zeile mit der in der Einleitung beschriebenen Wechselgeldrückgabefunktion (ich liebe die Deutsche Sprache für die Möglichkeit beliebige Substantive in ungeahnter Menge zu konkatenieren;) das Argument ändern, und zwar von 5 auf 0, also:

0 (M.V.GiveChangeCoin)

Das macht ihr nun für alle anderen Münzen auch, wobei das neue Argument sich immer um eins erhöht, während das vorhandene um eins weniger wird. Also im 10 cent Abschnitt eine 1 statt einer 4, im 20 cent Teil eine 2 statt der 3 bis zur Zwei Euro Münze, wo eine 5 vor der Funktion stehen muss, statt der angegebenen 0.

Nach der zwei Euro Münze folgt das Script für die Mehrfachrückgabe. Hier muss man einzelne Zeilen einfügen oder rausnehmen, damit die auf dem Wechselgeldautomaten genannten Summen passen und die Argumente wieder wie oben anpassen.

Aachener O530 anpassen

Der O530 aus dem Aachen Addon erfordert ein wenig mehr Arbeit. Er kennt nämlich von Haus aus die 20 cent Taste nicht. Darum muss man in der Datei …OMSI 2VehiclesAC O530Scriptcashdesk_varlist.txt diese Münzwerte einfügen, das sieht dann so aus:

cashdesk_changer_sw_0_05 cashdesk_changer_sw_0_10 cashdesk_changer_sw_0_15 cashdesk_changer_sw_0_20 cashdesk_changer_sw_0_30 cashdesk_changer_sw_0_40 cashdesk_changer_sw_0_50 …

(Ich habe nur die oberen Zeilen der Datei hier aufgeführt – die Zeilen mit 20 und 40 am Ende müssen eingefügt werden)

In der cashdesc.osc muss dieses mal ein kompletter Abschnitt für diese Münzen eingefügt werden, am sinnvollsten hinter dem 10 cent Abschnitt:

… {trigger:cashdesk_changer_0_20} 1 (S.L.cashdesk_changer_sw_0_20) 2 (M.V.GiveChangeCoin) (L.L.cashdesk_changetimer_solo1) 1 > {if} (T.L.ev_ticketsale_givechange_solo) 0 (S.L.cashdesk_changetimer_solo1) {else} (L.L.cashdesk_changetimer_solo2) 1 > {if} (T.L.ev_ticketsale_givechange_solo2) 0 (S.L.cashdesk_changetimer_solo2) {else} (T.L.ev_ticketsale_givechange_solo3) 0 (S.L.cashdesk_changetimer_solo3) {endif} {endif} {end} {trigger:cashdesk_changer_0_20_off} 0 (S.L.cashdesk_changer_sw_0_20) {end} …

Achtet nun darauf, dass bei allen Abschnitten die korrekten Argumente vor der M.V.GiveChangeCoin Funktion stehen.

Für die 40 cent Taste (die zwei 20 Cent Stücke auswirft, muss dann weiter unten noch der Abschnitt nach dem 30 Cent (3 x 10) Code einfügt werden:

… {trigger:cashdesk_changer_0_40} 1 (S.L.cashdesk_changer_sw_0_40) (S.L.cashdesk_changer_sw_0_20) 2 (M.V.GiveChangeCoin) 2 (M.V.GiveChangeCoin) (L.L.cashdesk_changetimer1) 1 > {if} (T.L.ev_ticketsale_givechange) 0 (S.L.cashdesk_changetimer1) {else} (L.L.cashdesk_changetimer2) 1 > {if} (T.L.ev_ticketsale_givechange) 0 (S.L.cashdesk_changetimer2) {else} (T.L.ev_ticketsale_givechange) 0 (S.L.cashdesk_changetimer3) {endif} {endif} {end} {trigger:cashdesk_changer_0_40_off} 0 (S.L.cashdesk_changer_sw_0_40) (S.L.cashdesk_changer_sw_0_20) {end} …

Am Besten probiert ihr das Script erstmal mit der O530 aus, bevor ihr es in die anderen drei Ordner der Aachener Busse kopiert, als da wären “AC 530 G”, “AC 530 GL” und “AC 530 UL”.

Anmerkung: da ich fast ausschließlich in der Eurozeit fahre, habe ich mich um die korrekte DM-Belegung hier nicht gekümmert.

Schlusswort

Mit ein wenig Probieren werdet ihr schon zu dem gewünschter Ergebnis gelangen und wenn es nicht klappen sollte, könnt ihr einfach mit der Sicherheitskopie eurer cashdesc.osc weitermachen. Ich nutze als Wechselgeldautomat die oberen zwei Buttonreihen von einem Saitek (mittlerweile Logitech) Side Panel, wenn ihr mein Cockpit mal in Aktion sehen wollte, könnt ihr das auf Youtube tun:

Viel Spaß beim Scripten
wünscht Euch der Nagel

SteamSolo.com