Beleuchtungs- und Script-Bezirke

  • Ein typisches Beispiel für Script-Bezirke sind Tunnelbeleuchtungen: In der Realität werden die Tunnelbeleuchtungen natürlich weder alle komplett noch lampenweise geschaltet, sondern in Gruppen. Auf dieser Idee basieren die Script-Bezirke: Man definiert im MapEditor eine Reihe von Bezirken und weist diesen dann beliebig viele Szenerieobjekte, z.B. Leuchten und Lichtschalter. Im Script der Objekte kann dann der Zustand der zugehörigen Bezirksvariable abgefragt werden (z.B. bei Leuchten) und/oder gesetzt werden (z.B. bei Lichtschaltern). Außerdem ist es in der Leitstelle ebenfalls möglich, die Zustände zu ändern.

    1 MapEditor

    1.1 Definieren von Bezirken

    Im MapEditor gibt es links einen eigenen Abschnitt "Beleuchtungs-/Script-Bezirke". In diesem können beliebig viele Bezirke definiert werden.


    Abgesehen vom Namen gibt es noch folgende weitere Einstellungsmöglichkeiten für Bezirke:

    • Grundstellung: Hiermit kann festgelegt werden, wie wahrscheinlich es ist, dass die Variable auf 1.0 gesetzt wird. Steht der Regler ganz links, wird die Variable immer auf 0.0 gesetzt, steht er rechts, dann immer auf 1.0. Auf entsprechenden Zwischenpositionen wird nach Zufall entschieden, ob die Variable 0 oder 1 ist.
    • In Leitstelle auflisten: Nur wenn dieser Haken gesetzt ist, wird der Bezirk auch in der Leitstelle aufgelistet und kann gesteuert werden.

    1.2 Zuweisen von Objekten

    Um Objekte einem Bezirk zuzuordnen, sind beliebig viele Objekte zu markieren und nach Auswahl des Bezirks in der Liste auf "Objekte zuweisen" zu klicken. Dementsprechend kann man sie auf dieselbe Weise wieder von jeglichem Bezirk trennen, indem man bei markierten Objekten auf "Objekten keinen zuweisen" anklickt. Mit der Schaltfläche "Umschalten" können zu Testzwecken im Simulator geschaltet werden. Dies hat aber keinen Einfluss auf das Verhalten in der Simulation.

    2 Script

    Der Zustand der zugehörigen Bezirksvariable kann ganz einfach aus der Single-Variable "DistrictLight" gelesen werden.


    Geändert werden kann der Zustand der Bezirksvariable mit der Prozedur (hierzu muss das Objekt im MapEditor am gewünschten Bezirk angeschlossen sein):


    procedure SetLightingDistrictState(self: integer; value: single);


    Da beliebig viele Objekte "angeschlossen" werden können, können auch mehrere Objekte "gleichzeitig" den Zustand ändern (z.B. mehrere Lichtschalter und zusätzlich eine Schaltzeituhr o.Ä.).