-
Inhalte
- Eingeschränkte Wegfindung
- Einstellungen
- Slots und Zähler
- Das Programm
- Aktionen
- Bedingungen
- Kriterien zur Einschränkung
- Kopieren und gemeinsames Nutzen von Regeln
Die eingeschränkte Wegsuche ist ein Feature, dass JGR schon in TTDPatch implementierte und später auch in OpenTTD umsetzte. Es ist ein sehr mächtiges und ebenso komplexes Features, welches man benutzen kann, um die Routen der Züge genauer zu kontrollieren. Hierbei beeinflusst man die Wegfindung durch das Setzen von Einschränkungen an Signalen. Der Wegfinder ignoriert dann das Gleis hinter dem Signal, wenn der Zug nicht den Beschränkungen entspricht. Das Verhalten des Signales selbst bleibt dabei unverändert. Man kann jedes Signal unabhängig vom Typ mit Beschränkungen versehen, diese wirken dann unabhängig vom normalen Signalverhalten.
Eingeschränkte Wegfindung
Die Wegsuche wird von Zügen ausgelöst, die den besten Weg zu ihrem nächsten fahrplanmäßigen Halt suchen. Vereinfacht gesagt beginnt die Wegsuche ausgehend von der aktuellen Position des Zuges aus das Streckennetz abzulaufen und mögliche Wege zu berechnen, die zum Ziel führen. Jede Weiche, jede Kreuzung und jeder sonstige Abzweig wird dabei überprüft, denn in den meisten Fällen kommen ja viele verschiedene Wege in Frage, die in vielen Fällen gleichwertig sind (ob ein Zug nun am linken oder rechten Bahnsteig durch einen Bahnhof durchfährt sollte in den allermeisten Fällen egal sein). Aus all diesen möglichen Routen wird dann die beste ausgewählt, wobei die Länge der Route, die Anzahl der gerade "Halt!" zeigenden Signale und einige andere Kriterien eine Rolle spielen. Aus all diesen Kriterien wird eine Gesamtsumme berechnet, die die Qualität der Route beschreibt. Die Summe ist dabei als Summe von Strafwerten zu verstehen, je kleiner also die Summe ist, umso besser ist die Route.
Die Einschränkungen der Wegsuche beeinflussen nun genau diese Wegsuche. An jedem Signal wird überprüft, ob dort eine Einschränkung festgelegt ist. Falls es dort eine Einschränkung gibt und der Zug nicht zu dieser Einschränkung passt, so sagt das der Wegsuche, dass dieses Signal eine Sackgasse darstellt und die Strecke dahinter für die Bestimmung der besten Route somit keine Rolle mehr spielen kann. Damit kann man also in Abhängigkeit des Zuges steuern, welche Gleise dieser benutzen darf.
Damit nicht genug, man kann auch andere Aktionen auslösen. So kann man die Art der Pfadreservierung verändern (so dass z.B. längere Pfade über mehrere Signalblöcke hinweg reserviert werden), Tempolimits erzwingen, oder die Anzahl der Züge in einem Streckenabschnitt steuern, damit sich Züge nicht gegenseitig blockieren können.
Dieser Bahnhof enthält gleich mehrere Signale mit Programmen zur eingeschränkten Wegsuche. Sofern die normalen Lichtsignale verwendet werden und kein Signalset aktiviert ist, werden Signale mit einem Programm zur eingeschränkten Wegsuche durch einen blauen Pfosten markiert.
Der Bahnhof hat also ein Stumpfgleis, ganz links oben. Dort sollen nur Züge halten, die von links ankommen und danach wieder nach links abfahren. Das Gleis daneben soll nur für Züge sein, die von rechts kommen, nach links weiterfahren und hier am Bahnhof halten. Das dritte Gleis (da wo der Güterzug ist), ist für Züge bestimmt, die den Bahnhof ohne Halt durchfahren. Das Gleis ganz rechts dient dementsprechend für Züge, die von links kommen, nach rechts weiterfahren und an dem Bahnhof halten.
Folgende Dinge wurden hier durch die eingeschränkte Wegsuche umgesetzt:
- Züge, die nicht an diesem Bahnhof halten, sollen das mittleren der drei Durchfahrtsgleise benutzen, so wie es der Güterzug gerade demonstriert
- Züge, die den Bahnhof durchfahren, sollen nach Möglichkeit Vorrang bei der Weiterfahrt bekommen vor Zügen, die an dem Bahnhof halten. So können durchfahrende Züge besser überholen
- Züge, die von links kommend hier wenden, sollen ausschließlich das Stumpfgleis ganz links benutzen
- Züge werden je nach ihrem Fahrplan automatisch ans richtige Gleis gelotst
Das soll einfach nur zeigen, wie mächtig dieses Feature ist - alle Anforderungen konnten ohne zusätzliche Wegpunkte umgesetzt werden. Wenn neue Züge mit neuen Routen an dem Bahnhof vorbeikommen, verhalten sie sich automatisch richtig, man muss sich um nichts mehr kümmern.
Einstellungen
Einige Spieleinstellungen haben Einfluss auf das Feature. Damit kann man kontrollieren, ob man die volle Komplexität des Features zu sehen bekommt, auf Teile des Features verzichtet, oder ob Teile möglicherweise gar nicht verfügbar sind.
- Zeige erweiterte Features der Routing-Beschränkung
Wenn diese Option aktiviert ist, kann man auf Slots und Zähler zugreifen sowie die damit verbundenen Möglichkeiten in der Wegsuche nutzen. Zusätzlich sind auch einige andere Aktionen im Rahmen der eingeschränkten Wegsuche verfügbar.
- Realistisches Bremsen von Zügen
Mit dem normalen Modus können Züge von einem Moment auf den anderen zum Stillstand bremsen, wenn zum Beispiel direkt vor dem Zug ein Signal auf rot wechselt. Das verhindert zwar Zugkollisionen, ist aber unrealistisch - Züge brauchen in der Realität mehrere 100m und bei hohen Geschwindigkeiten auch weit über einem Kilometer, um zum Stillstand zu kommen. Wenn man diese Option anschaltet, verändert sich nicht nur der Bremsweg: Damit die Züge weiterhin rechtzeitig vor einem Signal anfangen zu bremsen, funktioniert auch die Pfadreservierung anders - Züge reservieren sich ihre Wege weiter im Voraus über mehrere Signalblöcke hinweg, um jederzeit genug freien Bremsweg vor sich zu haben. Das heißt dieses Feature funktioniert ausschließlich mit Pfadsignalen. Vorsignale und programmierbare Vorsignale können nicht verwendet werden und werden im Signalbaumenü nicht mehr angezeigt. Zweiseitige Blocksignale können auch nicht benutzt werden. Einseitige Blocksignale werden zu Pfadsignalen umgestellt.
Da die Züge längere Bremswege haben und diese reservieren, kann der Spieler auch nicht mehr auf einem reservierten Pfad arbeiten, wenn die Pfadreservierung dadurch gefährdet wäre. Abreißen eines reservierten Pfades ist also nicht möglich, ebenso das Aufstellen oder Entfernen von Signalen. Man muss warten, bis der Zug den Streckenabschnitt verlassen hat und der Streckenabschnitt nicht mehr reserviert ist.
Wenn diese Option eingeschaltet ist, können Signale zusätzliche Werte darstellen, nicht nur "Halt!" und "Freie Fahrt!". Dazu benötigt man ein passendes Signalset.
- Realistisches Bremsen hängt von den Signalbildern ab
Im Normalfall können Züge bei realistischem Bremsen "unendlich" weit vorhersehen, wann sie bremsen müssen. Mit dieser Option verkürzt man die Sichtweite auf das, was das Signal anzeigt. Das kann dazu führen, dass Züge langsamer unterwegs sind, weil sie nicht die gesamte für das Bremsen aus höherer Geschwindigkeit notwendige Strecke im Blick haben. Damit das funktioniert benötigt man ein Signalset, welches die zusätzlichen Werte darstellen kann. Dieses Feature ist für sehr erfahrene Spieler gedacht.
Slots und Zähler
Slots sind ein System zum Verwalten von Zugbewegungen, insbesondere für eingleisige Strecken. Es wurde im 19. Jahrhundert entwickelt und wird teilweise noch heute verwendet. Die Idee ist simpel: Damit ein Zug in einen eingleisigen Abschnitt einfahren darf, muss der Zug im Besitz eines Gegenstandes, des sogenannten Tokens, sein. Was das Token ist (Ring, Stab, Schlüssel, ...) spielt keine Rolle, wichtig ist nur, dass es exakt ein solches Token gibt. Wenn es nur ein Token gibt, und nur der Zug mit dem Token auf der Strecke unterwegs sein kann, kann es keine Kollisionen geben. Soweit die Theorie. Auf Wikipedia gibt es auch einen englischen Artikel dazu: Token (railway signalling)
Das Konzept kann man verallgemeinern: Ein Slot beschränkt, wie viele Nutzer gleichzeitig auf eine Resource zugreifen können. Nehmen wir zum Beispiel ein beliebtes Museum: Damit alle Besucher einen guten Blick auf die ausgestellten Exponate haben, dürfen gleichzeitig nur 300 Besucher in das Museum. Auch das wird über ein solches Slot-System möglich, nur dass es hier eben 300 Token statt einem einzigen gibt. Am Eintritt wird geprüft ob der Besucher eines der 300 Token dabei hat, am Ausgang gibt der Besucher den Token wieder ab. Sind alle 300 Token in Benutzung, muss man so lange am Eingang warten, bis ein Besucher die Ausstellung verlässt und somit ein Token frei wird. In der Praxis wird das natürlich eher durch Drehkreuze an Ein- und Ausgang realisiert, damit man gar nicht erst in die Verlegenheit gerät, dass ein Nutzer irgendwo im Museum sein Token verliert.
Informatiker kennen das Konzept als Semaphore (der Name kommt nicht von ungefähr), damit regelt zum Beispiel das Betriebssystem den gleichzeitigen Zugriff auf Datenstrukturen, Dateien usw.
Das System für Slots und Zähler in JGR's Patch Pack funktioniert prinzipiell genau so. Man erstellt einen Slot und gibt ihm eine maximale Kapazität. Diese gibt an, wie viele Züge gleichzeitig in diesem Slot aktiv sein können. Nun braucht man noch die passende Programmierung an den Signalen, die die Ein- und Ausfahrt des entsprechenden Bereiches überwachen. An der Einfahrt muss sichergestellt werden, dass der einfahrende Zug ein Token aus dem Slot hat. Wenn er keins hat, muss er dort so lange warten, bis eines frei wird. An der Ausfahrt des Bereiches muss dementsprechend der Zug den Token wieder freigeben, damit der nächste Zug ihn nutzen kann.
Slots und Zähler werden über die Listenverwaltung im Zugübersichtsmenü verwaltet. Im Dropdown-Menü wählt man unter "Liste verwalten" den entsprechenden Eintrag und kann dann neue Slots/Zähler anlegen bzw. bestehende verändern.
Einmal erstellte Slots und Zähler können bei der eingeschränkten Wegsuche, aber auch in programmierten Vorsignalen und auch bei bedingten Fahrplaneinträgen verwendet werden.
Entsprechende Beispiele sind auf der Seite für Streckennetze und Bahnhöfe im Detail erläutert.
Das Programm
Das Programmieren erfolgt über eine eigene GUI, die aus dem Signalbaumenü heraus aufgerufen wird. Zuerst wählt man das Schraubenschlüssel-Symbol und klickt damit auf das Signal was man programmieren will. Damit öffnet sich das Fenster für die Programmierung. Das zeigt das aktuell mit dem Signal verknüpfte Programm an und enthält Schaltflächen, über die man das Programm verändern kann. Dazu wählt man mit der Maus eine der Anweisungen aus, wodurch die passenden Schaltflächen aktiv werden. So kann man nun alles anpassen, wie man es haben will.
Ein Programm wird von oben nach unten ausgeführt und besteht aus einer Folge von Anweisungen. Eine Anweisung kann dabei eine direkte Aktion sein oder eine bedingte Anweisung.
Aktion
Eine Aktion bewirkt eine Änderung an der Wegsuche, an der Pfadreservierung oder an anderen Elementen des Spiels. Sie kann direkt (ohne Bedingungen) auftreten und wird in diesem Fall immer ausgeführt, sie kann aber auch Teil einer bedingten Anweisung sein. Beispiel:
beschränke das Tempo auf 30 km/hJeder Zug, der an diesem Signal vorbeikommt, muss sich an dieses Tempolimit halten
bedingte Anweisungen
Eine bedingte Anweisung beschreibt eine Anweisung, die nur in Abhängigkeit von einer auszuwertenden Bedingung ausgeführt wird:
WENN (Bedingung)
DANN (Anweisung)
Die Anweisung wird also nur ausgeführt, wenn die Bedingung erfüllt ist. Beispiel:
WENN der Zug Kohle transportieren kann
DANN beschränke das Tempo auf 30 km/h Jeder Zug, der an diesem Signal vorbeikommt und die Bedingung erfüllt (also Kohle transportieren kann), muss sich an dieses Tempolimit halten.
Züge, die keine Kohle transportieren, werden nicht beeinflusst.
Es gibt mehrere Formen bedingter Anweisungen, die man sich aus einzelnen Bausteinen zusammenbauen muss:
WENN
WENN (Bedingung)
DANN (Anweisung)
SONST WENN
Dieser Block kann nur auf einen WENN/SONST WENN/ODER WENN-Block folgen.
SONST WENN (Bedingung)
DANN (Anweisung)
ODER WENN
Dieser Baustein kann nur auf einen WENN/SONST WENN/ODER WENN-Block folgen.
ODER WENN (Bedingung)
DANN (Anweisung)
SONST
Dieser Baustein kann nur auf einen WENN/SONST WENN/ODER WENN-Block folgen.
SONST (Anweisung)
Damit lassen sich nun Verknüpfungen von bedingten Anweisungen zusammenbauen. Einige Beispiele dafür folgen hier:
-
WENN (Bedingung) DANN (Anweisung1) SONST (Anweisung2)Wenn die Bedingung erfüllt ist, wird Anweisung1 ausgeführt, ansonsten wird Anweisung2 ausgeführt.
-
WENN (Bedingung1) ODER WENN (Bedingung2) DANN (Anweisung1)Wenn Bedingung1 erfüllt ist oder Bedingung2 erfüllt ist oder beide Bedingungen erfüllt sind, dann wird Anweisung1 ausgeführt. Das entspricht einem logischen ODER von Bedingung1 und Bedingung2.
-
WENN (Bedingung1) DANN (Anweisung1) SONST WENN (Bedingung2) DANN (Anweisung2)Wenn Bedingung1 erfüllt ist, wird Anweisung1 ausgeführt, ansonsten wird Bedingung2 geprüft, und falls diese erfüllt ist, wird Anweisung2 ausgeführt.
-
WENN (Bedingung1) DANN (Anweisung1) SONST WENN (Bedingung2) DANN (Anweisung2) SONST (Anweisung3)Wenn Bedingung1 erfüllt ist, wird Anweisung1 ausgeführt, ansonsten wird Bedingung2 geprüft, und falls diese erfüllt ist, wird Anweisung2 ausgeführt. Falls weder Bedingung1 noch Bedingung2 erfüllt sind, wird Anweisung3 ausgeführt.
-
WENN (Bedingung1) DANN WENN (Bedingung2) DANN (Anweisung1)Wenn Bedingung1 erfüllt ist, wird Bedingung2 geprüft, und wenn diese auch erfüllt wird, dann wird Anweisung1 ausgeführt. Das heißt, Anweisung1 wird nur ausgeführt, wenn Bedingung1 und Bedingung2 beide erfüllt sind (logisches UND).
Diese Verschachtelung lässt sich beliebig wiederholen.
Aktionen
Die folgenden Aktionen sind verfügbar:
- Verbieten
Die Wegsuche wird dieses Signal als Sackgasse ansehen und wird hinter diesem Signal nicht weiter nach einem Weg zum Ziel suchen. Damit hat man einem Zug effektiv verboten, hier entlang zu fahren.
- Strafe
Die Wegsuche wird einen Strafwert auf alle Routen addieren, die an diesem Signal entlangführen. Das ist für das Feintuning der Wegsuche gedacht, da die Gesamtsumme an Strafen auf deiner Route darüber bestimmt, ob eine Route als gute oder schlechte Route angesehen wird.
- Reserviere hindurch
Normalerweise wird ein Pfad durch einen Signalblock hindurch bis zum nächsten Signal reserviert. Dort angekommen wird der nächste Pfad durch den nächsten Signalblock reserviert. Mit dieser Aktion wird die Pfadreservierung über dieses Signal hinweg auch im nächsten Signalblock gemacht. So kann man zum Beispiel für schnelle Züge den Weg weit im Voraus reservieren, so dass sie nicht von langsameren Zügen aufgehalten werden können. Auch das Überholen an Ausweichstellen kann damit realisiert werden. Diese Aktion hat keinen Effekt für Signale auf Brücken oder in Tunneln.
- Lange Reservierung hindurch
Wenn ein Zug einen Pfad reserviert, der an diesem Signal endet, wird eine zweite Reservierung angestoßen, die an diesem Signal beginnt. Wenn diese zweite Reservierung nicht möglich ist, gilt die erste Reservierung trotzdem - das ist auch der Unterschied zu "Reserviere hindurch", dort gilt entweder die gesamte Reservierung durch beide Signalblöcke oder gar nichts. Diese Aktion hat keinen Effekt für Signale auf Brücken oder in Tunneln.
- Nachrichtenkontrolle
Hiermit kann man die Nachrichtenmeldungen abschalten, die angezeigt werden wenn ein Zug an einem Signal längere Zeit nicht weiterfahren kann. Vielleicht ist das ja an dieser Stelle völlig in Ordnung, weil der Zug vor einem Güterbahnhof längere Zeit warten muss, weil dieser durch einen Zug belegt ist, der auf volle Ladung wartet.
- Warte am Pfadsignal (fortgeschrittene Aktion)
Damit kann man verschiedene Aktionen im Bezug auf das Warten auf die Pfadreservierung auslösen:
- Warte am Pfadsignal: Der Zug wartet am Pfadsignal, auch wenn er einen Pfad reservieren könnte.
- Übergehe Warten am Pfadsignal: Übergeht eine vorher definierte "Warte am Pfadsignal"-Aktion
- Warte am Anfangs-Pfadsignal: Wenn ein Zug einen Pfad reservieren will, der an diesem Signal endet, soll er stattdessen an dem anderen Signal warten und keinen Pfad reservieren
- Übergehe Warten am Anfangs-Pfadsignal: Übergeht eine vorher definierte "Warte am Anfangs-Pfadsignal"-Aktion
Wenn man diese Beschränkung auf ein Blocksignal anwendet, wird sie nicht wie gewünscht funktionieren - der Zug fährt bis zum Signal, hält an und fährt dann weiter. - Slot-Operation (fortgeschrittene Aktion)
Hiermit können verschiedene Aktionen auf einem Slot ausgeführt werden:
- erwerbe oder warte: Wenn ein Zug an diesem Signal vorbeifahren will, muss er einen Token aus dem Slot besitzen. Er versucht also ein Token aus dem Slot zu erwerben. Sollte dies nicht möglich sein, weil der Slot bereits komplett gefüllt ist, muss der Zug an dem Pfadsignal warten.
- versuche zu erwerben: Wenn ein Zug an diesem Signal vorbeifahren will, sollte er einen Token aus dem Slot besitzen. Er versucht also ein Token aus dem Slot zu erwerben. Sollte dies nicht möglich sein, weil der Slot bereits komplett gefüllt ist, fährt der Zug trotzdem weiter.
- löse (davor): Der Zug gibt den Token aus dem Slot ab, wenn der Anfang des Zuges das Signal passiert. Dies hat keinen Einfluss auf Züge, die kein Token für den Slot besitzen.
- löse (danach): Der Zug gibt den Token aus dem Slot ab, sobald er komplett am Signal vorbeigefahren ist. Dies hat keinen Einfluss auf Züge, die kein Token für den Slot besitzen.
- Pfadende erwerbe oder warte: Das gleiche wie "erwerbe oder warte", aber die Aktion wird ausgeführt, wenn der Zug versucht einen Pfad zu reservieren, der an diesem Signal endet. Wenn der Slot bereits komplett gefüllt ist, wartet der Zug an dem anderen Signal.
- Pfadende versuche zu erwerben: Das gleiche wie "versuche zu erwerben", aber die Aktion wird ausgeführt, wenn der Zug versucht einen Pfad zu reservieren, der an diesem Signal endet. Wenn der Slot bereits komplett gefüllt ist, macht der Zug trotzdem die Pfadreservierung und fährt weiter zu diesem Signal.
- Pfadende löse: Wenn eine Pfadreservierung gemacht wird, die an diesem Signal endet, gibt der Zug den Token aus dem Slot ab.
- versuche zu erwerben (bei Reservierung): Das ist ähnlich wie "versuche zu erwerben", aber der Versuch den Token aus dem Slot zu erwerben wird gemacht wenn der Zug den Pfad reserviert, nicht wenn er danach an dem Signal vorbeifährt. Diese Unterscheidung kann eine Rolle spielen, wenn man realistisches Bremsen aktiviert hat oder lange Reservierungen verwendet.
- Wenden (fortgeschrittene Aktion)
Hiermit können verschiedene Aktionen angestoßen werden, die das Wenden von Zügen betreffen:
- Wende nach Signal: Der Zug soll wenden, nachdem er das Signal passiert hat. Das funktioniert nur auf Pfadsignalen, die von der Rückseite her durchfahren werden.
- Breche Wenden ab: Damit kann man eine vorherige "Wende nach Signal"-Aktion aufheben.
- Geschwindigkeitsbegrenzung (fortgeschrittene Aktion) Beschränke das Tempo des Zuges auf die angegebene Geschwindigkeit. Diese Beschränkung bleibt solange aktiv, bis sie an einem anderen Signal aufgehoben wird! Ein Wert von 0 hebt die Beschränkung auf. Damit kann man zum Beispiel verhindern, dass schnellere Züge auf langsamere Züge auflaufen und dann wiederholt stark abbremsen und beschleunigen müssen. Oder man beschränkt das Tempo bei der Einfahrt in einen Kopfbahnhof, ganz wie beim Vorbild.
- Zähler-Operation (fortgeschrittene Aktion)
Die folgenden Aktionen sind möglich:
- Erhöhen: Erhöhe den Zählerwert um 1 wenn der Zug das Signal passiert
- Verringern: Verringere den Zählerwert um 1 wenn der Zug das Signal passiert (der Wert wird nie kleiner als 0 werden)
- Setzen: Setze den Zählerwert auf diesen Wert wenn der Zug das Signal passiert
- Konfiguration der Strafen (fortgeschrittene Aktion)
Die folgenden Aktionen sind möglich:
- Keine Strafe beim passieren des Pfadsignals von der Rückseite: Normalerweise wird für jedes Pfadsignal, dass man von der Rückseite her passiert, eine Strafe für diese Route in der Wegsuche eingetragen. Mit dieser Einstellung kann man das verhindern.
- Aufheben der Straffreiheit beim passieren des Pfadsignals von der Rückseite: Hiermit kann eine vorher ausgeführte Aktion "Keine Strafe beim passieren des Pfadsignals von der Rückseite" aufgehoben werden.
- Konfiguration der Geschwindigkeitsanpassung (fortgeschrittene Aktion)
Wenn die automatische Zuggeschwindigkeitsanpassung in den Einstellungen aktiviert ist, werden schnellere Züge ihr Tempo an das Tempo eines vor ihnen fahrenden langsameren Zuges anpassen, um nicht anhalten und aus dem Stand wieder beschleunigen zu müssen. Dieses Verhalten kann man über die Programmierung an den Signalen genauer steuern.
Die folgenden Aktionen sind möglich:
- Ausnahme anwenden: Dieser Zug wird seine Geschwindigkeit nicht anpassen, auch wenn vor ihm ein langsamerer Zug fährt.
- Ausnahme entfernen: Eine vorherige Ausnahme von der automatischen Geschwindigkeitskontrolle wird aufgehoben, wenn der Zug das Signal passiert.
- Signal mode control (fortgeschrittene Aktion, benötigt passendes Signal)
Diese Option ist nur verfügbar, wenn man ein passendes Signalset benutzt, welches kombinierte Pfad/Rangiersignale beinhaltet (siehe hier). Man kann dann mit dieser Aktion einstellen, ob das Signal die Anzeige als Pfadsignal oder als Rangiersignal benutzen soll.
Kriterien zur Einschränkung
Es gibt eine Reihe von Kriterien, welche man zum Beschränken der Wegfindung nutzen kann. Diese sind im Folgenden aufgeführt. Ein leeres oder nicht komplett gesetztes Kriterium gilt grundsätzlich als erfüllt.
- Fahrzeuglänge
Die erste Möglichkeit ist die Beschränkung anhand der Länge des Zuges. In JGR's Patch Pack wird diese Information direkt im Infofenster eines Zuges angezeigt, neben den aus OpenTTD bekannten Werten wie Leistung, Gewicht und Zuverlässigkeit.
Damit kann man zum Beispiel bei Bahnhöfen mit unterschiedlich langen Bahnsteigen dafür sorgen, dass die Züge an die passenden Bahnsteige fahren.
- Höchstgeschwindigkeit in (km/h|mph)
Das ist recht einfach. Man kann schnelle und langsame Züge problemlos voneinander trennen, zum Beispiel wenn man spezielle Hochgeschwindigkeitsstrecken hat. Die Beschränkung für ein Signal zu einer solchen Strecke könnte dann lauten "Höchstgeschwindigkeit in km/h > 130".
- Momentaner Auftrag
Um festzulegen, dass nur Züge in einen Bahnhof fahren, die gerade exakt dorthin fahren sollen, bietet sich diese Einschränkung an. Der Wert wird durch Anklicken des Bahnhofs ausgewählt. Somit liest sich die Beschränkung dann etwa "Aktueller Zielbahnhof ist Smalltown Station". Nur "ist" und "ist nicht" sind hierbei gültige Operationen, alles andere würde ohnehin keinen Sinn ergeben.
- Nächster Auftrag
Diese Beschränkung funktioniert genauso wie die vorherige. Sie ist besonders nützlich, wenn man einen kombinierten Kopfbahnhof mit einigen Durchfahrtsgleisen hat und die Züge somit an die richtigen Bahnsteige lotsen muss.
- zuletzt besuchter Bahnhof
Es könnte auch notwendig sein, die Züge danach zu sortieren, von wo sie kommen. Das kann mit diesem Kriterium gemacht werden. Dabei ist der vorherige Zielbahnhof der, an welchem der Zug zuletzt gehalten hat, nicht der letzte durchfahrene Bahnhof.
- Fracht
Es gibt neue Bahnhofsgrafiken, und da ist es sicherlich erwünscht, dass die Güterzüge an die "richtigen" Bahnsteige fahren. Ein Zug mit Kesselwagen für Öl steht nun mal an einer Holzverladestation fehl am Platze. Um festzulegen, welche Bahnsteige angefahren werden dürfen kann man den Zugang anhand der Fracht beschränken, die der Zug transportieren kann (oder nicht transportieren kann). Ein Zug kann hierbei eine bestimmte Fracht transportieren, wenn er mindestens eine Einheit der Fracht befördern kann.
- Prozent der Ladung
Hiermit kann man Entscheidung danach treffen, wie voll ein Zug beladen ist. So könnte man zum Beispiel vollen Zügen die Fahrt über eine steile Bergstrecke verbieten oder leere Züge zwingen, in ein Depot zu fahren.
- Einfahrtrichtung
Mit diesem Kriterium kann man Beschränkungen anhand der aktuellen Fahrtrichtung beschreiben. So soll eine Beschränkung möglicherweise nicht gelten, wenn der Zug das Signal von der Rückseite her passiert.
Himmelsrichtungen? - Zuggruppe
Züge können in Gruppen zusammengefasst werden. Dieses Kriterium prüft, ob der Zug Mitglied in der angegebenen Gruppe ist. Das funktioniert auch für verschachtelte Gruppen. So kann man beispielsweise festlegen, dass nur Züge aus der Gruppe "Schnellzug" über eine bestimmte Strecke fahren dürfen.
- Zugbesitzer
Dieses Kriterium prüft, ob der Zug einer bestimmten Firma gehört. Das ist natürlich nur sinnvoll, wenn mehr als eine Firma auf der Karte ist. Man kann damit also beispielsweise einem Konkurrenten verbieten, eine besonders belastete Strecke noch stärker zu verstopfen.
- Zugstatus
Dieses Kriterium erlaubt das Prüfen auf den Zustand, wobei folgende Zustände unterschieden werden:
- Zug ist leer:
? - Zug ist voll:
? - Zug hat eine Panne:
? - Zug ist reparaturbedürftig:
? - Zug wendet:
? - Zug fährt zu Bahnhof/Wegpunkt:
? - Zug fährt zu Depot:
? - Zug lädt:
? - Zug wartet:
? - Zug hat sich verirrt:
? - Zug benötigt Wartung:
? - Zug hält an einem Bahnhof/Wegpunkt:
?
- Zug ist leer:
- Gewicht
Man kann das Gewicht des Zuges auswerten. So könnte man zum Beispiel vor einer alten Brücke ein Tempolimit einrichten, wenn der Zug ein gewisses Gewicht überschreitet. Oder man leitet einen Zug nicht über eine steigungsreiche Bergstrecke, sondern lieber über eine längere, dafür aber flache Strecke um den Berg herum.
- Leistung
Die Leistung kann man zur Unterscheidung von Zügen auch heranziehen. Möglicherweise will man nur besonders leistungsstarke Züge auf einer Schnellzugstrecke fahren lassen. Vermutlich muss man dieses Kriterium noch mit anderen Kriterien verknüpfen, Leistung ist ja nicht alles...
- max. Zugkraft
Ähnlich wie mit der Leistung kann man auch die Zugkraft auswerten, um zum Beispiel schwache Züge von einer steigungsreichen Bergstrecke fernzuhalten. Vermutlich muss man aber auch hier das Kriterium mit anderen Kriterien verknüpfen, um eine sinnvolle Bedingung zu erhalten.
- Leistung / Gewicht (Verhältnis)
Leistung ist nicht alles, aber für schnelle Züge ist es so ziemlich das wichtigste. Und wenn der Zug zu schwer ist für die verfügbare Leistung, dann erreicht man nicht mehr die maximale Geschwindigkeit und hält auf einer Schnellfahrstrecke möglicherweise den Verkehr auf. Es kann also sinnvoll sein, dieses Verhältnis als Kriterium zu nutzen.
- max. Zugkraft / Gewicht (Verhältnis)
Schwere Güterzüge brauchen Loks mit besonders viel Zugkraft, um sie auch über Steigungen zu befördern. Die Leistung oder Höchstgeschwindigkeit ist dabei eher weniger wichtig. Es kann also sinnvoll sein, untermotorisierte Züge um schwierige Streckenabschnitte herumzuleiten.
- Antriebsart
Man kann die Antriebsart des Zuges als Kriterium heranziehen. So könnte man sich vorstellen, dass ein mit einer Diesellok angetriebener Zug eher nicht auf einer elektrifizierten Strecke unterwegs sein soll, wenn er eine nicht elektrifizierte Strecke nutzen kann, die den elektrisch betriebenen Zügen nicht zur Verfügung steht. Oder man hat irgendwo am Bahnhof spezielle Infrastruktur für Dampflokomotiven gebaut (nur der Optik halber), dann sollten Dampfloks natürlich auch dorthin fahren.
- direction of order target (Da fehlt die deutsche Übersetzung)
Dieses Kriterium wertet die Position des aktuellen oder nächsten Fahrziels aus. Je nach Himmelsrichtung kann man damit zum Beispiel festlegen, dass alle nach Süden fahrenden Züge über bestimmte Gleise aus einem Bahnhof ausfahren sollen, damit sie später nicht die Gleise der nach Westen oder Norden fahrenden Züge kreuzen müssen.
- Zug im Slot (fortgeschrittene Bedingung)
Man kann auswerten, ob ein Zug einen Token aus einem Slot besitzt. Das Konzept von Slots wird hier erläutert.
- Slotauslastung (fortgeschrittene Bedingung)
Man kann überprüfen, wie viele Tokens aus einem Slot gerade im Einsatz sind und in Abhängigkeit von diesem Wert Züge umleiten oder zum Beispiel ein Tempolimit einsetzen, damit andere Züge mehr Zeit bekommen, den Bereich zu verlassen, damit weitere Token freigegeben werden. Das Konzept von Slots wird hier erläutert.
- verbliebene Slotkapazität (fortgeschrittene Bedingung)
Dieser Wert entspricht der Anzahl der Token des Slots abzüglich der aktuellen Auslastung des Slots. Mit diesem Kriterium kann man beispielsweise prüfen, ob in einem Streckenabschnitt noch Platz für einen weiteren Zug ist. Das Konzept von Slots wird hier erläutert.
- Zählerwert (fortgeschrittene Bedingung)
Zähler funktionieren ähnlich wie Slots, je nach Wert des Zählers kann man verschiedene Aktionen auslösen. Ich muss aber ehrlich gestehen, dass ich kein sinnvolles Beispiel für die Nutzung von Zählern habe, außer für die Benutzung von Bahnstrecken als Logikgatter, was aber eine Nischenanwendung ist und nichts mit dem realistischen Bahnbetrieb hat, den ich auf diesen Seiten beschreibe.
- aktuelle Zeit/Datum (fortgeschrittene Bedingung)
Gemeint ist die Zeit/das Datum im Spiel! Damit könnte man das Konzept eines Taktknotens aus einem integralen Taktfahrplan nachstellen. Dabei sind alle Gleise in Abhängigkeit von der Uhrzeit mal in Richtung des Bahnhofs und mal in der Gegenrichtung befahrbar, um möglichst viele Züge gleichzeitig in den bzw. aus dem Bahnhof zu bekommen.
- Anzahl reservierter Spielfeldkacheln (fortgeschrittene Bedingung)
Dieses Kriterium funktioniert nur im Zusammenhang mit realistischem Bremsen. Der Wert bezeichnet die Anzahl der reservierten Felder vor dem Zug, die dieser als Bremsweg benötigt. Wenn beispielsweise ein Zug bereits den gesamten Weg durch einen Signalblock reserviert hat, weil er so viel Bremsweg braucht, kann man ihn anders behandeln als einen langsameren Zug, der deutlich weniger Bremsweg reserviert hat.
- PBS reservation passes tile (fortgeschrittene Bedingung) (Da fehlt die deutsche Übersetzung)
Man kann prüfen, ob eine Pfadreservierung durch eine bestimmte Kachel führt. So könnte man beispielsweise den reservierten Pfad verlängern, wenn er noch nicht ausreichen weit im Voraus reserviert wurde.
- Einfahr-Pfadsignal (fortgeschrittene Bedingung)
Damit prüft man, von welchem Signal aus gerade ein Pfad reserviert wird. Wenn die Reservierung mehrere Blöcke umfasst (mittels "Reserviere hindurch" oder "Lange Reservierung hindurch", so gelten diese weiteren Signale nicht als der Beginn des reservierten Pfades. So könnte man definieren, dass Züge, die gerade einen Weg am Bahnhof vorbei reservieren, anders behandelt werden sollen als Züge, die gerade einen Weg aus dem Bahnhof heraus reservieren.
- Ausfahrt-Pfadsignal (fortgeschrittene Bedingung)
Dieses Kriterium funktioniert nur mit realistischem Bremsen. Man kann damit prüfen, ob eine Pfadreservierung an dem angegebenen Signal endet. Damit kann man zum Beispiel veranlassen, dass die Reservierung um einen weiteren Signalblock verlängert wird, um Zügen Vorrang zu geben.
- PBS reservation end tile
Dieses Kriterium funktioniert nur mit realistischem Bremsen und kann nur mit der Aktion "signal mode control action" verwendet werden. Damit lässt sich erreichen, dass zum Beispiel Zugfahrten in einem "Rangierbahnhof" mit den passenden Signalen angezeigt werden.
Kopieren und gemeinsames Nutzen von Regeln
Da man im Streckennetz ziemlich viele Signale hat, wird das Festlegen der Regeln für jedes einzelne Signal sehr mühsam, insbesondere wenn die Regeln immer die gleichen sind. Zum Beispiel könnte es im Netz spezielle Strecken für Schnellzüge geben, da möchte man nicht für jedes Signal die passende Beschränkung erneut setzen. Stattdessen kann man bestehende Beschränkungen kopieren und teilen.
Um eine existierende Beschränkung zu kopieren, öffnet man das Menü für die Beschränkung des Signals, auf das die Beschränkung kopiert werden soll. Sofern dieses Signal noch nicht in irgendeiner Form eingeschränkt wurde, hat man hier nun die Möglichkeit, Einschränkungen von anderen Signalen zu übernehmen. Man drückt einfach die Schaltfläche fürs Kopieren und klickt das Signal an, von dem man die Beschränkungen kopieren möchte. Fertig, das Signal hat nun die gleichen Beschränkungen. Das Teilen von Beschränkungen geht genauso, nur dass man natürlich die andere Schaltfläche drücken muss. Der entscheidende Unterschied zwischen Kopieren und Teilen ist, dass ein kopiertes Signal unabhängig vom Original ist. Man kann die Beschränkungen verändern, ohne andere Signale zu beeinflussen. Das Verändern einer geteilten Beschränkung hingegen ändert alle Signale, die die Beschränkung teilen. Auf diese Weise kann man beispielsweise Tempolimits einfach anpassen, wenn schnellere Lokomotiven erhältlich werden. Man ändert die Beschränkung an einem Signal und hat sofort alle Signale aktualisiert.