
Ansage kurz vor Haltestelle abspielen
- jjb
- 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:
-
-
-
-
-
Ich habe dieses Script erstellt, aber irgendwie sind alle Variablen 0 und die $msg-Befehle werden im Debug-Modus nicht angezeigt.
Code
Alles anzeigen'################################# 'Parada-Announcement '################################# 'plays the actual stop announcement after X meters '(c) 31.03.2022 jjb 'Script Version: 1.0 'Omsi release: 2.0 'Needs: '- none {init} "Debug: Init" $msg ' Nullsetzen 0 (S.L.lastbusstop) (L.L.kmcounter_km) (L.L.kmcounter_m) 1000 / + 10 * (S.L.lastkm) {end} {frame} "Debug: Frame" $msg ' Script soll nur auf Mallorca ausgeführt werden (L.$.Yard) "PMI_2Palma" $= {if} "Debug: Hof-Datei PMI_2Palma" $msg ' Speichern des Ziels und der aktuellen Haltestelle ' Register 0: Haltestelle als Index ' Register 1: akt. Km-Stand ' Variable 3: (M.V.GetTTBusstopIndex) (S.L.actbusstop) (L.L.kmcounter_km) (L.L.kmcounter_m) 1000 / + 10 * (S.L.actkm) (L.L.actbusstop) 4 (M.V.GetBusstopString) "" $= ! {if} "Nächste Haltestelle ist nicht leer" $msg (L.L.actbusstop) 2 (M.V.GetBusstopString) $IntToStr (S.L.shoulddistance) {else} "Nächste Haltestelle ist leer" $msg 0 (S.L.shoulddistance) {endif} ' vergleichen der Werte mit dem letzten Durchlauf (L.L.actbusstop) (L.L.lastbusstop) = ! (L.L.lastbusstop) 0 = ! && (L.L.shouldplay) 0 = && (L.L.shoulddistance) 0 = ! && {if} "Soll abgespielt werden" $msg 1 (S.L.shouldplay) (L.L.actkm) (L.L.shoulddistance) + (S.L.lastkm) {else} "Soll nicht abgespielt werden" $msg 0 (S.L.shouldplay) {endif} ' schon bereit Ansage abzuspielen? (L.L.lastkm) (L.L.actkm) = (L.L.shouldplay) 1 = && {if} ' Ansage vorbereiten "..\..\Announcements\" 0 (M.V.GetDepotStringGlobal) "\" $+ $+ "act_" $+ (L.$.act_busstop) $+ ".wav" $+ (T.F.ev_ansage) $msg ' Zurücksetzen 0 (S.L.shouldplay) 0 (S.L.shoulddistance) (L.L.actbusstop) (S.L.lastbusstop) {endif} {endif} {end}
Wo liegen die Fehler? In der Log-Datei steht nichts ...
-
-
Wahrscheinlich lag damals der Fehler darin, dass ein Bus/Objekt nur einen Frame-Abschnitt haben kann. Deshalb wurde das Script nicht ausgeführt. AUXI bietet seit kurzer Zeit eine Variable an, über die man die Entfernung zur nächsten Haltestelle auslesen kann.
ZitatOne final change coming to AUXI 1.3, a last minute request, is the beginning of OMSI scripts being able to access some stuff in AUXI.
-
AUXI
This variable just confirms whether AUXI is active, it's always set to 1 if it is.[...]
-
AUXI_Get_NextBusStopDistanceMeters
Gets a fairly precise distance to the next bus stop in meters, if available. If this isn't known then it will return -1.