System-Scriptvariablen und -Events
Auflistung und Beschreibung von System-Scriptvariablen.
Es gibt eine Reihe von System-Variablen. Das Script darf auf die Systemvariable schreibend und/oder lesend zugreifen, je nach Variable.
Einige System-Variablen sind schon "von alleine" da und dürfen nirgendwo extra deklariert werden, aber es gibt auch andere System-Variablen, die in der "PUBLIC VARS"-Sektion im Script trotzdem deklariert werden müssen.
Die Variablen, die noch deklariert werden müssen, sind in der letzten Spalte "Dekl." mit "muss" beschriftet, die, die bereits deklariert sind, mit "ist".
1 Allgemein
---|---|---|---|---|--- `Timegap`Single | Sekunden | | ist
`NightTex` |
Integer | - | | ist
`EnvirBrightness` | Umgebungshelligkeit (am Fahrzeug, fällt auch am Tage ab, wenn das Fahrzeug unter Brücken oder in Tunneln fährt) | Single | 0..1 | | ist `EnvirBrightnessSurface` | Umgebungshelligkeit (an der Erdoberfläche, unabhängig von der Position des Fahrzeuges) | Single | 0..1 | | ist `DistrictLight` | Zustand des verknüpften Beleuchtungsbezirkes. Ist kein Beleuchtungsbezirk verknüpft, dann wird immer 1 zurück gegeben. | Single | | | ist `TimeOfDay` | Uhrzeit | Single | 0 = 0:00, 0.5 = 12:00, 1 = 24:00 | | muss `Date` | Datum in Tagen ab dem 30.12.1899, Achtung! Ohne Uhrzeit! | Single | 1 = ein Tag | | muss `Hint` |
Hinweis-Text. Setze diese Variable auf eine Sprachdatei-ID, damit der zugehörige Text im Hint-Fenster in LOTUS erscheint. Dies ist z.B. geeignet, wenn dem User bei einer Fehlbedienung ein Hinweis gegeben werden soll, warum etwas nicht geht.
Konvention ist hierbei, dass die benutzerdefinierten Sprach-IDs folgendermaßen aufgebaut sind: "[Fahrzeugname].Hint.[Kurztext]" Beispiel: "[[1]].Hint.ReverserNotSet" Es muss dann eine eigene Sprach-Datei angelegt werden, bei der jene IDs in die links Spalte und die dazugehörigen darzustellenden Texte (der jeweiligen Sprache) rechts eingetragen werden. Auf diese Weise können - mit mehreren Sprachdateien - auch Hints in verschiedenen Sprachen realisiert werden. | String | - | X | muss `Mouse_X` & `Mouse_Y` | Bewegung des Mauszeigers seit dem letzten Simulationsschritt | Single | Pixel | | muss `RealisticElecSupply` | Zustand der Benutzer-Einstellung "Stromversorgung real" | Boolean | - | | muss `InitReadyForMovement` | Zustand der Benutzer-Einstellung "Abgerüstet platzieren": 0 = Kalt & Dunkel (z.B. Richtungswender auf 0, Stromabnehmer abgesenkt, Hauptschalter aus, Umformer aus 1 = Aufgerüstet (z.B. Richtungswender auf I oder *, Stromabnehmer angehoben, Hauptschalter ein, Umformer ein) 2 = Fahrbereit (z.B. Richtungswender auf V) | Integer | 0..2 | | muss `InitPosInTrain` | Position des Wagens im Zug unmittelbar nach Platzieren des Zuges (0 = vorderstes Fahrzeug). | Integer | | | muss `InitCarIsReversed` | Gibt die Ausrichtung des Wagens im Zugverband nach Platzieren des Zuges an. False = steht in Zug-Richtung, True = steht entgegen der Zug-Richtung. | Boolean | | | muss `InitUserPlaced` | Wurde der Benutzer beim _**erstmaligen Platzieren**_ in diesen Wagen gesetzt? Wird im Anschluss der Wagen verlassen oder gekuppelt usw., ändert sich diese Variable trotzdem nicht mehr. | Integer | 0 = nein 1 = vorne -1 = hinten | | muss `DeadMansSwitch` | Zustand der Benutzer-Einstellung "SiFa/Totmann simulieren" | Boolean | | | muss `mirrortex_{i}` | Wenn [[2]] (o.Ä.) definiert werden, dann hinterlegt LOTUS die jeweiligen Textur-Indizes in den Variablen dieses Namens (i = Index des Rückspiegels, beginnend bei 0), sodass in den Materialeigenschaften darauf zurückgegriffen werden kann. | Integer | 0... | | muss |
2 Remote-Control (KI-/Multiplayer, Standzug)
Die folgenden Variablen dienen der Kommunikation zwischen Multiplayer-, KI-Fahrzeugen und dem Userfahrzeug. Falls das Fahrzeug das User-Fahrzeug ist, dann ist "RC_Active" false und die Variablen können gesetzt werden, im Folgenden "Sende-Modus" genannt. Ist es kein User-Fahrzeug, d.h. ein Multiplayer-, ein KI- oder ein vom User abgestelltes Fahrzeug, dann ist "RC_Active" true und die Variablen können nur gelesen werden, das Fahrzeug befindet sich im sog. "Empfangs-Modus".
muss
`RC_Throttle` | Dient der Übertragung der Antriebsleistung, absolut betrachtet, d.h. ohne Berücksichtigung der Richtung. Es wird über die einzelnen Werte der Fahrzeuge im sendenden Zug das Maximum ermittelt und für den Zug übertragen. Der Wert dient nicht der Antriebsphysik (das empfangende Fahrzeug wird ohnehin genauso bewegt wie das sendende Fahrzeug), sondern zur korrekten Simulation insbesondere des Sounds, aber auch von Animationen und Lichtern, die von der Leistung abhängig sind. | Single | 0..1 | [falls Sende-Modus] | muss `RC_Brake` | Dient der Übertragung der Bremsleistung. Behandlung und Nutzen wie RC_Throttle, normiert auf 0..1. | Single | 0..1 | [falls Sende-Modus] | muss `RC_IndR`, `RC_IndL` | Blinker rechts / links. Diese Variable zeigt an/übermittelt, ob der rechte und/oder linke Blinker aktiv ist. Wenn beide Variablen true sind, dann ist der Warnblinker aktiv. Das Besondere an diesen Variablen ist, dass die einzelnen Fahrzeuge die Variable stets "richtungssensitiv" erhalten bzw. senden. Beispiel: Fahren in einem Zug zwei Wagen "Rücken-an-Rücken" und soll dieser Zug seitens der KI in Fahrtrichtung rechts blinken, dann wird beim "vorwärts" eingereihtem Fahrzeug die Variable RC_IndR auf true gesetzt, beim "rückwärts" eingereihtem Fahrzeug die Variable RC_IndL. Im Sende-Modus reicht es, wenn nur ein Fahrzeug die jeweilige Variable auf true setzt, damit der Zug als blinkend interpretiert wird. Im Empfangs-Modus werden die Variablen sämtlicher Fahrzeuge gesetzt. | Boolean | - | [falls Sende-Modus] | muss `RC_FrontLight_Front` `RC_FrontLight_Back` |
Integer | 0 = aus
1 = Standlicht 2 = Abblendlicht 3 = Fernlicht | [falls Sende-Modus] | muss `RC_OtherLights_Front` `RC_OtherLights_Back` |
Hiermit können weitere Lichter am vorderen oder hinteren Ende übertragen werden, beispielsweise Rück- und Bremslichter, Nebelschlussleuchten o.Ä.
Diese Variable wird nur für das erste und letzte Fahrzeug des Zuges übertragen und dort nur für das ungekuppelte Ende. Im Empfangsbetrieb verbleibt die Variable an gekuppelten Enden bei 0. |
[[3]]:
+1 = Rücklicht +2 = Bremslicht +4 = Rückfahrlicht +8 = Nebelscheinwerfer +16 = Nebelschluss +32 = frei +64 = frei +128 = frei | [falls Sende-Modus] | muss `RC_Belling` | Zustand der Klingel. Im Sendebetrieb ist es unerheblich, welches Fahrzeug den Klingelzustand sendet. Im Empfangsbetrieb erhält nur das Fahrzeug, in welchem der Richtungswender gesetzt wurde (andernfalls wo sich der sendende User befindet), den Klingelvariablen-Zustand; alle anderen erhalten 0. | Integer | | [falls Sende-Modus] | muss `RC_Sanding` | Zustand der Sandstreuer. Wenn mindestens ein Fahrzeug im Zug sandet, wird dieser Zustand auf den gesamten empfangenden Zug übertragen. | Boolean | | [falls Sende-Modus] | muss `RC_DoorsOpen_Left`, `RC_DoorsOpen_Right` | Diese Variablen dienen dem übertragen der Türzustände. Die Zustände werden bitweise in je eine Integer-Zahl für die linken und rechten Türen kodiert; wie das geht, wird exemplarisch in diesem Artikel beschrieben: [[4]]. Es empfielt sich, als Zustand das "Ziel" der Türbewegung zu übertragen. Der Grund sei am Gegenbeispiel dargestellt: Würde man bspw. als Öffnungszustand die Formel "Türöffnung > 0.5" übertragen, dann würde der Schließvorgang bei den Multiplayer-Kollegen erst beginnen, wenn beim User die Türen schon halb geschlossen sind. Insbesondere beim Vorlauf mit Türschließwarnanlage würde es damit zu einer erheblichen Verzögerung kommen. **ACHTUNG : Damit diese Übertragung funktioniert, muss zunächst die Anzahl der Türen in den "Objekteinstellungen" im ContentTool eingetragen werden!** Diese Anzahl zählt pro Seite, wobei die jeweils größere Zahl von Türen zu wählen ist. Also: Wert = Maximum( Türanzahl linke Seite, Türanzahl rechte Seite ). | Integer | [[5]] | [falls Sende-Modus] | muss `RC_CockpitLight` | Das User-Fahrzeug (bzw. Fahrzeug mit gesetztem Richtungswender) im sendenden Zugverband kann hierüber den Zustand seiner Fahrerraumbeleuchtung übertragen. | Boolean | | [falls Sende-Modus] | muss `RC_CabinLight` |
Die Variable wird im [[6]]-Verfahren übertragen, damit mehrere Cabinlight-Kreise realisierbar sind (z.B. Ober- und Unterdeck). Beim Senden gilt pro Lichtkreis, dass ein Wagen ausreicht, damit das Licht im gesamten Zug an ist (Bitweises OR). Max. 8 Bit. | Integer | [[7]] | [falls Sende-Modus] | muss
`RC_PantographApplied` | Zustand der Pantographen des Wagens. Diese musst Du lediglich durchzählen und setzt dann das jeweilige Bit (siehe Lexikonartikel [[8]]) für den jeweiligen Stromabnehmer (sendendes Fahrzeug) bzw. liest es aus (empfangendes Fahrzeug). Diese Information wird je Wagen individuell übertragen (wie bei den Türen). | Integer | [[9]] | [falls Sende-Modus] | muss `RC_Wiper` | Modus des Scheibenwischers. Gelesen und geschrieben wird immer nur das Fahrzeug, in dem der Richtungswender gesetzt wurde (oder andernfalls sich der User befindet). |
0: Aus
1: Intervall 2: Normal 3: Schnell 4: Waschen ab 5: User-definiert | [falls Sende-Modus] | muss `RC_PIS_Line` | Dient dem Übertragen der geschilderten Liniennummer (0 bis 65535), des Sonderzeichen-Codes (0 bis 4095) und bietet noch Platz für einen frei nutzbaren Wert (0 bis 15, s. unterh. Tab.) Hierbei erfolgt eine spezielle Kodierung, die beim Senden beide Werte zusammenfasst und beim Empfangen wieder trennt: _Senden:_ RC_PIS_Line := ( {Sonderzeichen} and $FFF) + ( {Linie} and $FFFF) shl 12 + ( {freier Wert} and $F) shl 28; _Empfangen:_ {Sonderzeichen} := RC_PIS_Line and $FFF; {Linie} := (RC_PIS_Line shr 12) and $FFFF; {freier Wert} := RC_PIS_Line shr 28; **Achtung:** In Fahrplänen ist das Sonderzeichen nicht hinterlegt; das führt dazu, dass in KI-Fahrzeugen der Wert {Sonderzeichen} _nicht_ in dieser Variable enthalten ist (= 0). In diesem Fall muss das Sonderzeichen mittels der Funktion `PIS_GetRouteSpecialCharCode` und über die Routeninformation geholt werden. | Integer | |
muss
`RC_PIS_Terminus` | Dient dem Übertragen des _internen Index_ des geschilderten Zieles (entspricht "TERMINUS_LISTINDEX" der Standard-Module der Basecontent-Fahrzeuge, -1 falls keine gültige Route) und bietet noch Platz für einen frei nutzbaren Wert (0 bis 65535, s. unterh. Tab.) Sofern kein freier Wert genutzt werden soll, muss lediglich der Ziel-Index 1:1 übertragen werden. Andernfalls erfolgt eine spezielle Kodierung, die beim Senden beide Werte zusammenfasst und beim Empfangen wieder trennt: _Senden:_ RC_PIS_Terminus := ( {Zielindex} and $FFFF) + ( {freier Wert} and $FFFF) shl 16; _Empfangen: _ {Zielindex} := RC_PIS_Terminus - (RC_PIS_Terminus and $FFFF0000); {freier Wert} := RC_PIS_Terminus shr 16; **Achtung:** Im Falle von KI-Fahrzeugen ist es meistens so, dass als Zielindex die Zahl 65535 (bzw. $FFFF) übertragen wird! In diesem Fall möchte die KI, dass das Ziel per [[10]]-Datei aus Linie und Route entnommen werden soll! Da das Ziel ggf. abhängig von der aktuellen Haltestelle ist, soll hierbei auch die RC-Variable RC_PIS_StopSeq verwendet werden, auch wenn diese momentan KI-seitig noch nicht geschrieben wird. | Integer | | [falls Sende-Modus] | muss `RC_PIS_Route` | Dient dem Übertragen des _internen Index_ der ausgewählten Route (entspricht "ROUTE_LISTINDEX" der Standard-Module der Basecontent-Fahrzeuge, -1 falls keine gültige Route) und bietet noch Platz für einen frei nutzbaren Wert (0 bis 65535, s. unterh. Tab.) Sofern kein freier Wert genutzt werden soll, muss lediglich der Routen-Index 1:1 übertragen werden. Andernfalls erfolgt eine spezielle Kodierung, die beim Senden beide Werte zusammenfasst und beim Empfangen wieder trennt: _Senden:_ RC_PIS_Route := ( {Routenindex} and $FFFF) + ( {freier Wert} and $FFFF) shl 16; _Empfangen:_ {Routenindex} := RC_PIS_Route - (RC_PIS_Route and $FFFF0000); {freier Wert} := RC_PIS_Route shr 16; | Integer | | [falls Sende-Modus] | muss `RC_PIS_StopSeq` | Dient dem Übertragen des Indexes der aktuellen Haltestelle innerhalb der ausgewählten Route (entspricht "STOP_SEQ" der Standard-Module der Basecontent-Fahrzeuge, -1 falls keine gültige Route oder Haltestelle) und bietet noch Platz für einen frei nutzbaren Wert (0 bis 65535, s. unterh. Tab.) Sofern kein freier Wert genutzt werden soll, muss lediglich der Haltestellenindex 1:1 übertragen werden. Andernfalls erfolgt eine spezielle Kodierung, die beim Senden beide Werte zusammenfasst und beim Empfangen wieder trennt: _Senden:_ RC_PIS_StopSeq:= ( {Haltestellenindex} and $FFFF) + ( {freier Wert} and $FFFF) shl 16; _Empfangen:_ {Haltestellenindex} := RC_PIS_StopSeq- (RC_PIS_StopSeqand $FFFF0000); {freier Wert} := RC_PIS_StopSeq shr 16; | Integer | | [falls Sende-Modus] | muss |
2.1 **Zu den RC_PIS-Variablen**
Wie alle anderen RC-Variablen haben auch diese eine Doppelrolle, die hier besonders zum Tragen kommt: Einerseits dienen sie der Übertragung des [[11]]-Zustandes zwischen den Multiplayer-Fahrzeugen, d.h. das User-Fahrzeug sendet hierüber seinen [[12]]-Zustand an den Server und dieser verteilt diese Information auf die Fahrzeuge der Mitspieler, andererseits der Kommunikation zwischen KI-Steuerung, dem visuellen Fahrzeug und – je nach Variable – auch der [[13]]. Aus diesem Grund gibt es die oben näher beschriebene Aufteilung in einen fest vorgegebenen Wert und einen freien Wert. Der freie Wert dient der Übertragung von optionalen Zustandswerten, die über den Rahmen der im festen Wert hinausgehen. _Nichtsdestotrotz ist aber nicht zu vergessen_ , dass die KI _nicht_ diese optionalen Zustandswerte liefert! D.h. ein KI-Fahrzeug erhält nur die festen Werte, die freien Werte sind stets 0. Dennoch muss auch in diesem Fall sinnvoll geschildert werden! Umgekehrt erwarten die [[14]] valide Werte unter den festen Werten! Sie können die optionalen Werte nicht verarbeiten. Momentan – und voraussichtlich auch in Zukunft – beschränken sich die [[15]] aber auf die Variable `RC_PIS_Terminus`.
3 Fahrzeuge
3.1 Allgemein
---|---|---|---|---|--- `veh_number` | Fahrzeugnummer, z.B. "1749" | String | - | [X] | muss `veh_registration` | Kennzeichen, z.B. "B-V 1749" | String | - | [X] | muss `v_ground` | Geschwindigkeit in Richtung Fahrzeug-Längsachse | Single | Meter pro Sekunde | | muss `a_ground` | Beschleunigung in Richtung Fahrzeug-Längsachse | Single | Meter pro Quadratsekunde | | muss `acc_x`, `acc_y`, `acc_z` | Beschleunigung des Schwerpunktes im lokalen Koordinatensystem | Single | Meter pro Quadratsekunde | | muss `panto_voltage_{a}` | Oberleitungsspannung am Stromabnehmer mit dem Index `{a}` verfügbar. **Trolley:** Stange hängt an einem Fahrdraht und dieser steht unter Spannung. **Pantograph:** Der niedrigste Fahrdraht (dessen Höhe übergeben wird) steht unter Spannung. Ob der Stromabnehmer selbst angelegt ist, muss vom Scripter geprüft werden.- | | muss
`panto_{a}` | Höhe des niedrigsten Fahrdrahtes im Bereich des (Scheren-/Einholm-) Stromabnehmers mit dem Index `{a}`. Die Angabe erfolgt im Koordinatensystem des Fahrzeugobjektes zuzüglich des Bewegungszustands der assoziierten Animation. | Single | m | | muss `trolley_angle_{a}_hori, trolley_angle_{a}_vert` |
Auslenkung der Trolley-Stange mit dem Index `{a}` horiziontal gegenüber der Mittelposition (_hori) bzw. vertikal gegenüber der Waagerechten (_vert) des Fahrzeugobjektes zuzüglich des Bewegungszustands der assoziierten Animation.
Schreibzugriff ist solange möglich, bis der Trolley eingegleist ist. Auf diese Weise können Trolley-Entgleisungs-Schutzmechanismen simuliert werden. | Single | Grad (°) | [X] | muss `trolley_free_{a}` | Trolley-Rad ist weder in der Oberleitung eingegleist noch wird es vom User gezogen. `{a}` ist der Index des Stromabnehmers. | Boolean | - | | muss `trolley_online_{a}` | Trolley-Rad ist an der Oberleitung. `{a}` ist der Index des Stromabnehmers. | Boolean | - | | muss `TextureRaindropSet_{x}` |
Integer | - | | ist
`coupled_{a}` | Gekuppelt: An der vorderen (a = 0) bzw. hinteren (a = 1) Kupplung ist ein weiteres Fahrzeug angekuppelt (und die Kupplung ist verriegelt) | Boolean | - | | ist `couplingState_{a}` | Kupplungszustand: 0: Kupplung deaktiviert, beim Heranfahren passiert nichts - "nur Puffer" 1: Kupplung bereit, beim Heranfahren wird angekuppelt - Automatikkupplung 2: Angekuppelt Vorne: a = 0, hinten: a = 1. |
- | [X] | ist
`couplingOffsetY_{a}` | Kupplung temporär in Y-Richtung verschieben, z.B. falls die Kupplung wie beim GT eingeklappt werden kann. Vorne: a = 0, hinten: a = 1. | Single | - | [X] | muss |
3.2 Bahn
---|---|---|---|---|--- `M_Axle_N_{b}_{a}`Single | Newton | X | muss
`MBrake_Axle_N_{b}_{a}` |
Single | Newton | X | muss
`sanding_{b}_{a}` | Sanden. Wenn diese Variable auf true gesetzt wird, dann wird diese Achse besandet. | Boolean | - | X | muss `F_RailBrake_Bogie_N_{b}` |
Single | Newton | X | muss
`v_Axle_mps_{b}_{a}` |
Single | Meter pro Sekunde | | ist
`alpha_Axle_deg_{b}_{a}` |
Single | Grad (°) | | ist
`spring_Axle_m_{b}_{a}` |
Single | Meter | | ist
`loadforce_Axle_N_{b}_{a}` |
Single | Newton | | muss
`invradius_abs_max` | Betrag der maximalen Krümmung des unter den Achsen dieses Fahrzeug liegenden Gleisabschnitts. Die Krümmung ist der Kehrwert des Radiusses: 200 m Radius bedeuten eine Krümmung von 0,005, 100 m dagegen 0.01. | Single | 1 / m | |
muss
`invradius_{b}_{a}` | Aktuelle Krümmung des Gleises unter der Achse. `{b}` = Index des Drehgestells, `{a}` = Index der Achse, jeweils 0-basiert | Single | 1 / m | |
muss
`railquality_{b}_{a}` | Schienenlage und -qualität unter der Achse: ( `{b}` = Index des Drehgestells, `{a}` = Index der Achse, jeweils 0-basiert) 0 = Gleichmäßiger Verlauf 1 = Ungleichmäßiger Verlauf 2 = mit Herzstücken, gleichmäßig 3 = mit Herzstücken, ungleichmäßig 4 = Flachrille 5 = Sehr gleichmäßiger Verlauf (z.B. Hochgeschwindigkeitsstrecke) 6 = Verdreckt mit gleichmäßigem Verlauf 7 = Verdreckt mit ungleichmäßigem Verlauf |
- | | muss
`surfacetype_{b}_{a}` | Oberfläche unterhalb des Gleises: ( `{b}` = Index des Drehgestells, `{a}` = Index der Achse, jeweils 0-basiert) 0 = Normal (Schotter) 1 = Straße 2 = Rasen | Integer | - | | muss `V_ThirdRailCollector_{b}_{L/R}` | Es wird geprüft, ob sich neben dem Drehgestellt mit dem Index `{b}` auf der Seite `L` und/oder `R` eine Stromschiene befindet und welche Spannung dort anliegt. | Single | -1.0: neben dem Drehgestell befindet sich keine Stromschiene -0.5: neben dem Drehgestellt befindet sich teilweise eine Stromschiene 0: Stromschiene vorhanden, aber spannungslos 1: Stromschiene vorhanden und Normspannung verfügbar | | muss |
Hinweis: Beim Ersetzen der Indizes in den Variablennamen fallen die geschwungenen Klammern weg! Beispiel: `loadforce_Axle_N_{b}_{a}` am ersten Drehgestell, zweite Achse, lautet: `loadforce_Axle_N_0_1`.
3.3 Straßenfahrzeuge
---|---|---|---|---|--- Steering | Lenkeinschlag, normiert auf den maximalen Lenkeinschlag | Single | -1 (voll L) ... +1 (voll R) | X | muss M_Axle_N_{a} | Traktionskraft der Räder einer Achse am Kontaktpunkt zur Straße. Hierzu zählen auch die Kräfte der Motor- und/oder Getriebe-Bremse. `{a}` = Index der Achse, 0-basiert. | Single | Newton | X | muss MBrake_Wheel_N_{a}_{s} | Bremskraft eines Räder einer Achse an der Kontaktfläche zur Straße. Nur positive Werte; diese wirken stets entgegen der Fahrtrichtung und haben die Fähigkeit, das Fahrzeug auch auf einem Gefälle festzuhalten. `{a}` = Index der Achse, 0-basiert, `{s}` = Seite, 0 = L, 1 = R | Single | Newton | X | muss v_Wheel_mps_{a}_{s} | Geschwindigkeit des Rades an seinem Kontakt mit der Straße. Wenn das Rad weder blockiert, noch durchdreht, ist diese Geschwindigkeit die Fahrzeuggeschwindigkeit. `{a}` = Index der Achse, 0-basiert, `{s}` = Seite, 0 = L, 1 = R | Single | Meter pro Sekunde | | ist alpha_Wheel_deg_{a}_{s} | Drehwinkel des Rades. `{a}` = Index der Achse, 0-basiert, `{s}` = Seite, 0 = L, 1 = R | Single | Grad (°) | | ist spring_Wheel_m_{a}_{s} | Aktuelle Auslenkung der Radfederung aus der Nullstellung. Die Nullstellung ist jene Stellung, in der sich die Feder befindet, wenn der Wagen vollständig angehoben ist, sodass das Rad den Boden nicht mehr berührt. `{a}` = Index der Achse, 0-basiert, `{s}` = Seite, 0 = L, 1 = R | Single | Meter | | ist steering_Wheel_m_{a}_{s} | Drehwinkel des Rades aufgrund des Lenkeinschlages um die Hochachse gegenüber der Längsrichtung. `{a}` = Index der Achse, 0-basiert, `{s}` = Seite, 0 = L, 1 = R | Single | Grad (°), >0 = R | | ist
Hinweis: Beim Ersetzen der Indizes in den Variablennamen fallen die geschwungenen Klammern weg! Beispiel: `MBrake_Wheel_N_{b}_{a}` auf der ersten Achse, rechte Seite, lautet: `MBrake_Wheel_N_0_1`.
4 Szenerieobjekte
---|---|---|---|---|--- `trafficlight_phase` | Aktuelle Phase der verknüpften Ampelanlage und Richtung: 0..2 = drei verschiedene Rotphasen 3..5 = drei verschiedene Gelbphasen für den Übergang Rot => Grün 6..8 = drei verschiedene Grünphasen 9..11 = drei verschiedene Gelbphasen für den Übergang Grün => Rot 12 = Ampel ausgeschaltet für die primäre (Vorfahrt) Richtung 13 = Ampel ausgeschaltet für die sekundäre (Vorfahrt gewähren) Richtung 14..16 = drei verschiedene Phasen für sonstige Zwecke | Integer | - | | muss
5 System-Events
Das den System-Events zugrundeliegende System ist folgendermaßen zu verstehen: Es gibt gewisse LOTUS-interne Ereignisse, die aus dem Fahrzeug heraus ausgelöst werden sollen. Hierzu soll nicht nur ggf. eine Tastenkombination aufgerufen werden, sondern es sollen auch Maus-Klickspots im Fahrzeug definiert werden können. Momentan werden System-Events nicht aufgelistet, wenn man einem Fahrzeug-Mesh ein Maus-Event zuweisen möchte. Stattdessen müssen System-Events manuell eingetippt werden.
Dient dem (Wieder-) Eingleisen des Stangen-Stromabnehmers in die Oberleitung. Hierzu wird der so markierte Klickspot angeklickt, die Maus gedrückt gehalten und bewegt, um den Stromabnehmer zu drehen und zu haben bzw. senken. An der Wunschposition wird die Maustaste losgelassen. |
6 System-Send-Events
Das Script kann in LOTUS bestimmte Ereignisse auslösen. Hierfür gibt es `procedure SendEvent(self: integer; id: string; value: integer)`. Als erster Parameter muss stets die (automatisch von LOTUS deklarierten) Public-Var "Self" gesetzt werden. Im Folgenden sind die möglichen IDs aufgelistet: