Grundsätzlich ist ThemaScript sehr einfach, man muß es nur einmal verstanden haben. Deshalb hier einige Beispiele.
Inhaltsverzeichnis
- Einfache Beispiele
- Beispiel 1 - Verspätung setzen
- Beispiel 2 - Tempo setzen
- Beispiel 3 - Zwei Werte kombiniert
- Beispiel 4 - Nochmal was Kombiniertes
- Beispiel 5 - Einbinden mit Sub
- Beispiel 6 - Zufälle gibts: rnd
- Beispiel 7 - Nochmal Zufall rnd
- Beispiel 8 - Werteauswahl mit oneof
- Beispiel 9 - Multiplikation
- Beispiel 10 - Deaktivieren von Zügen
- Beispiel 11 - Einbinden mit tsub
- Kompliziertere Beispiele
Einfache Beispiele
Beispiel 1 - Verspätung setzen
winter:start(5,verspätung);Der Klassiker, im Winter hat der Zug direkt am ersten Bahnhof 5 Minuten Verspätung.
Beispiel 2 - Tempo setzen
herbst:start(4,tempo);Ebenso häufig - im Herbst fährt der Zug mit Tempo 4.
Beispiel 3 - Zwei Werte kombiniert
winter:start(5,verspätung,6,tempo); herbst:start(3,verspätung,5,tempo);Im Winter also 5 Minuten Verspätung, außerdem Tempo 6. Im Herbst 3 Minuten Verspätung und Tempo 5.
Beispiel 4 - Nochmal was Kombiniertes
winter:start(5,verspätung,6,tempo); herbst:start(3,verspätung,8,länge);Im Winter wie in Beispiel 3. Im Herbst 3 Minuten Verspätung und Zuglänge 8.
Beispiel 5 - Einbinden mit Sub
winter:start(23,sub,10,verspätung); herbst:*(23,sub);Im Winter 10 Minuten Verspätung. Außerdem wird ThemaScript 23 eingebunden. Sollte dort die Verspätung bereits gesetzt werden, wird sie durch die 10 wieder überschrieben! Im Herbst gilt nur die Regel von Script 23. In beiden Fällen gelten natürlich die Regeln des Themas, also im Herbst gilt auch die Herbstregel von Script 23.
Beispiel 6 - Zufälle gibts: rnd
winter:start(3,10,rnd,verspätung);Im Winter ein zufälliger Wert zwischen 3 und 10 Minuten Verspätung.
Beispiel 7 - Nochmal Zufall rnd
winter:bahnhof($tempo,0,3,rnd,-,tempo);Einfach: Das aktuelle Standardtempo des Zugs, davon ein Zufallswert zwischen 0 und 3 abziehen und als neues Standarttempo im Winter setzen.
Beispiel 8 - Werteauswahl mit oneof
winter:start(5,7,10,3,oneof,länge);Einen der 3 Werte 5, 7 oder 10 zufällig auswählen und als Länge setzen.
Beispiel 9 - Multiplikation
winter:start(2,sub,$verspätung,2,*,verspätung);Zuerst wird das winterscript von ThemaScript 2 übernommen, danach die entstandene Verspätung verdoppelt.
Beispiel 10 - Deaktivieren von Zügen
winter:start(N,aktiv);Dieser Zug fährt im Winter nicht.
Beispiel 11 - Einbinden mit tsub
winter:start(sommer,2,tsub,$verspätung,2,*,verspätung);Sommerwerte von Script 2 übernehmen, dann die Verspätung verdoppeln.
Kompliziertere Beispiele
Beispiel 12 - Eine Zeile aus dem Standardscript
herbst:start($verspaetung,0,$abstunde,4,/,rnd,+,verspaetung,$tempo,0,2,rnd,-,tempo);Im Herbst wird die Verspätung des Zuges ausgelesen und dann durch einen zufälligen Wert zwischen 0 und einem Viertel der Abfahrtsstunde des letzten Bahnhofs im Zuglauf erhöht. Dadurch haben spät fahrende Züge mehr Verspätung als frühe.
Zusätzlich wird noch das Tempo ausgelesen und um einen zufälligen Wert zwischen 0 und 2 reduziert.
Beispiel 13 - Einbinden von Script-Teilen mit Hooks
herbst:start(starthook,hook,8,tempo,winter,endhook,thook);Im Herbst wird nach einem Script mit dem Namen "ZH-
Danach wird das Tempo auf 8 gesetzt.
Zum Schluss wird nach einem Script mit dem Namen "ZH-