ThemaScript Beispiele

Grundsätzlich ist ThemaScript sehr einfach, man muß es nur einmal verstanden haben. Deshalb hier einige 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--starthook gesucht ( wird durch das Regionskürzel der Zugregion ersetzt). Wird ein Script gefunden, wird dessen Inhalt ausgeführt - sonst passiert nichts.
Danach wird das Tempo auf 8 gesetzt.
Zum Schluss wird nach einem Script mit dem Namen "ZH--endhook gesucht und - sofern vorhanden - dessen Winter-Teil ausgeführt.

Powered by Drupal - Design by BR 89