Moin!
Ich habe mal bei den Mainzer DFI's das Blinken wieder aktiviert, wenn die Abfahrtzeit kleiner als eine Minute ist. Wie zu erwarten belastet das die Simulationsperformance immens, es gibt während des Blinkens krasse Schwankungen der Frametimes, und das merkt man auch. Je nachdem wie viele DFIs so ind er Nähe sind ist das ein Ruckler alle Sekunde. Aus gutem Grund war das Blinken also im Script abgeschaltet. Allerdings habe ich in OMSI schon mehrfach DFIs gesehen die auch geblinkt haben, jedoch ohne die Frametimes so zu belasten. Was könnte ich denn am Code ändern um das auch hier hinzukriegen?
Code
{init}
{end}
{frame}
'Blinkgeber:
(L.S.GetTime) 2 % 1 < (S.L.Blink)
'ZEILE 1 ==============================================
'Zuerst prüfen, ob das Ziel valide ist:
0 (M.V.GetArrBusTerminus) (S.$.Terminus)
"" $=
{if}
'Wenn nicht, dann nix anzeigen:
0
{else}
'Abfahrtszeit schonmal zwischenspeichern unter s0:
0 (M.V.GetArrBusTimeDiff) 60 / s0
'Wenn die Abfahrtszeit weniger als eine Minute ist, dann blinken: (wenns blinkt, ist s1/l1 wahr!)
l0 1.0 < s1
{if}
(L.L.Blink)
{else}
'Sonst anzeigen:
1
{endif}
{endif}
'Vorherig ermitteltes Ergebnis nun verwenden als Bedingung, ob was angezeigt wird:
{if}
0 (M.V.GetArrBusLine) 3 $SetLengthL $+ " " $+
0 (L.$.Terminus) 16 $SetLengthL $+ " " $+
'Wenn es blinkt, dann die Uhrzeit nicht mehr anzeigen:
l1
{if}
" " $+
{else}
0 l0 0 max " 2" $IntToStrEnh $+ " min" $+
{endif}
{endif}
'ZEILENUMBRUCH ==============================================
"@" $+
'ZEILE 2 ==============================================
'Zuerst prüfen, ob das Ziel valide ist:
1 (M.V.GetArrBusTerminus) (S.$.Terminus)
"" $=
{if}
'Wenn nicht, dann nix anzeigen:
0
{else}
'Abfahrtszeit schonmal zwischenspeichern unter s0:
1 (M.V.GetArrBusTimeDiff) 60 / s0
'Wenn die Abfahrtszeit weniger als eine Minute ist, dann blinken: (wenns blinkt, ist s1/l1 wahr!)
l0 1.0 < s1
{if}
(L.L.Blink)
{else}
'Sonst anzeigen:
1
{endif}
{endif}
'Vorherig ermitteltes Ergebnis nun verwenden als Bedingung, ob was angezeigt wird:
{if}
1 (M.V.GetArrBusLine) 3 $SetLengthL $+ " " $+
0 (L.$.Terminus) 16 $SetLengthL $+ " " $+
'Wenn es blinkt, dann die Uhrzeit nicht mehr anzeigen:
l1
{if}
" " $+
{else}
0 l0 0 max " 2" $IntToStrEnh $+ " min" $+
{endif}
{endif}
'ZEILENUMBRUCH ==============================================
"@" $+
'ZEILE 3 ==============================================
'Zuerst prüfen, ob das Ziel valide ist:
2 (M.V.GetArrBusTerminus) (S.$.Terminus)
"" $=
{if}
'Wenn nicht, dann nix anzeigen:
0
{else}
'Abfahrtszeit schonmal zwischenspeichern unter s0:
2 (M.V.GetArrBusTimeDiff) 60 / s0
'Wenn die Abfahrtszeit weniger als eine Minute ist, dann blinken: (wenns blinkt, ist s1/l1 wahr!)
l0 1.0 < s1
{if}
(L.L.Blink)
{else}
'Sonst anzeigen:
1
{endif}
{endif}
'Vorherig ermitteltes Ergebnis nun verwenden als Bedingung, ob was angezeigt wird:
{if}
2 (M.V.GetArrBusLine) 3 $SetLengthL $+ " " $+
0 (L.$.Terminus) 16 $SetLengthL $+ " " $+
'Wenn es blinkt, dann die Uhrzeit nicht mehr anzeigen:
l1
{if}
" " $+
{else}
0 l0 0 max " 2" $IntToStrEnh $+ " min" $+
{endif}
{endif}
'ZEILENUMBRUCH ==============================================
"@" $+
'ZEILE 4 ==============================================
'Zuerst prüfen, ob das Ziel valide ist:
3 (M.V.GetArrBusTerminus) (S.$.Terminus)
"" $=
{if}
'Wenn nicht, dann nix anzeigen:
0
{else}
'Abfahrtszeit schonmal zwischenspeichern unter s0:
3 (M.V.GetArrBusTimeDiff) 60 / s0
'Wenn die Abfahrtszeit weniger als eine Minute ist, dann blinken: (wenns blinkt, ist s1/l1 wahr!)
l0 1.0 < s1
{if}
(L.L.Blink)
{else}
'Sonst anzeigen:
1
{endif}
{endif}
'Vorherig ermitteltes Ergebnis nun verwenden als Bedingung, ob was angezeigt wird:
{if}
3 (M.V.GetArrBusLine) 3 $SetLengthL $+ " " $+
0 (L.$.Terminus) 16 $SetLengthL $+ " " $+
'Wenn es blinkt, dann die Uhrzeit nicht mehr anzeigen:
l1
{if}
" " $+
{else}
0 l0 0 max " 2" $IntToStrEnh $+ " min" $+
{endif}
{endif}
'ZEILENUMBRUCH ==============================================
"@" $+
'ZEILE 5 ==============================================
'Zuerst prüfen, ob das Ziel valide ist:
4 (M.V.GetArrBusTerminus) (S.$.Terminus)
"" $=
{if}
'Wenn nicht, dann nix anzeigen:
" MAINZIGARTIG MOBIL"
{else}
'Abfahrtszeit schonmal zwischenspeichern unter s0:
4 (M.V.GetArrBusTimeDiff) 60 / s0
'Wenn die Abfahrtszeit weniger als eine Minute ist, dann blinken: (wenns blinkt, ist s1/l1 wahr!)
l0 1.0 < s1
{if}
(L.L.Blink)
{else}
'Sonst anzeigen:
1
{endif}
{endif}
'Vorherig ermitteltes Ergebnis nun verwenden als Bedingung, ob was angezeigt wird:
{if}
4 (M.V.GetArrBusLine) 3 $SetLengthL $+ " " $+
0 (L.$.Terminus) 16 $SetLengthL $+ " " $+
'Wenn es blinkt, dann die Uhrzeit nicht mehr anzeigen:
l1
{if}
" " $+
{else}
0 l0 0 max " 2" $IntToStrEnh $+ " min" $+
{endif}
{endif}
$+
'AUSGABE ==============================================
(S.$.Displaytext)
5 (S.L.Refresh_Strings)
{end}
Alles anzeigen
Hier der Code mit aktiviertem blinken per (L.L.Blink). Ersetzt man das jeweils mit einer 1 schaltet man es wieder ab.