Hallo,
aktuell probiere ich mich in das AFR4 Script vom BRT C2 reinzulesen, um dieses dann letztendlich stark zu modifizieren. Das meiste daraus habe ich bereits verstanden, jedoch gibt es noch eine Sache die ich nicht genau verstehe. Unzwar gibt es im Script die Zeile (L.L.Route) (M.V.GetRouteIndex) 0 "" "DEBUG" (M.V.GetRouteBusstopIdent) 0 (M.V.GetTTBusstopName) $= && und ich frage mich, was "" "DEBUG" für eine Funktion hat, denn eigentlich ist es meiner Meinung nach nicht nötig. Besonders ob das "DEBUG" ein internes OMSI Feature ist oder ob das nur im Script so festgelegt wurde. In einer anderen Zeile steht etwas ähnliches: (M.V.GetRouteIndex) s4 (M.V.GetBusstopCount) 1 - s5 l4 l5 (M.V.GetRouteBusstopIdent) (M.V.GetBusstopIndex) 3 "" "" (M.V.GetBusstopString) $=. Dort frage ich mich ebenfalls was "" "" hier macht, denn für (M.V.GetBusstopString) benötigt es dies nicht, sondern nur die 3 und den BusstopIndex von davor.
Falls jemand eine Ahnung hat, würde ich mich sehr über eine Antwort freuen.

Funktion von "" "DEBUG" vor (M.V.GetBusstopString) in AFR4.osc vom BRT C2
- Entdecker666
- Erledigt
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet:
-
-
-
-
das ist einfach kacke programmiert. wirkt so, als wäre das irgendwie "zusammengepfuscht".
nehmen wir die scriptzeile mal stück für stück außeinander:
(L.L.Route) (M.V.GetRouteIndex) 0 "" "DEBUG" (M.V.GetRouteBusstopIdent) 0 (M.V.GetTTBusstopName) $= &&
Das Macro (M.V.GetRouteBusstopIdent) erwartet den aktuellen Routenindex und die aktuelle Haltestelle. Hier wird aus (L.L.Route) die aktuelle Route im Drucker ausgelesen, damit wird aus der Hofdatei der Routenindex geholt, 0 ist dann die 0. Haltestelle, also die erste in der aktuellen Route.
dannach wird aus dem aktuell aktivem Fahrplan die nullte Haltestelle geholt.
Im Stringstack steht jetzt quasi "", "DEBUG", Das Ergebnis von GetRouteBusstopIdent und von GetTTBusstopName. Mit $= werden die obersten beiden Stackwerte verglichen. Im Stringstack steht dannach noch "" und "DEBUG" drin, wobei "" keinen Inhalt besitzt und ignoriert werden kann. die Zeile oben kann man also mMn. folgendermaßen einkürzen:(L.L.Route) (M.V.GetRouteIndex) 0 (M.V.GetRouteBusstopIdent) 0 (M.V.GetTTBusstopName) $= &&
Jetzt kann es natürlich sein, dass weiter unten im Script Debug nochmal zur Verwendung kommt, ohne mir das aber im großen ganzen anzusehen macht das auf den ersten Blick keinen Sinn.
die beiden "" setzen einfach "keine Zeichen" in den Stringstack. Das wurde bestimmt gemacht, weil irgendwo weiter unten "Reststrings" mit $+ Verbunden wurden und dann irgendwelche komischen Stringkombinationen aufgetaucht sind.
"ABC" "DEF" $+ ergibt dann einen String "ABCDEF"; "" "DEF" $+ ergibt halt "DEF". Anstatt hier also die Logik anzupassen, scheint man einfach leerstrings in den Stack geschoben zu haben um Programmierfehler weiter unten im Script auszubügeln.Ein Vergleich mit dem String "DEBUG" kann auch noch aus der Entwicklung stammen. man könnte so halt auch einen festen String mit z.bsp. der Hofdatei abgleichen.
"Debug" 0 (M.V.GetTTBusstopName) $=
wäre Beispielsweise True, wenn die erste Haltestelle im Fahrplan "Debug" heißt.
Genau kann ich dir hier nicht helfen, ich hab das Add-on nicht. Grundsätzlich handelt es sich hier aber nicht um OMSI-Spezialfunktionen oder so. Entweder schlecht gescriptet oder man muss sich mal das gesamtscript genauer anschauen.