Zugscript kennt einen Befehl, den aber dafür mehrfach. Hinter jedem Befehl muß ein Semikolon stehen(*).
Syntax
loop(Bahnhof,Gleis,vonStd..bisStd,Schiebung[,Offset]);
loop(Bahnhof,Gleis,Std,Schiebung[,Offset]);
Die Parameter:
• Bahnhof: Name eines Bahnhof, an dem der Zug hält. Dieser Bahnhof gilt als Referenz für die folgenden Werte. Alternativ kann statt des Namens auch die ID des Bahnhofs angegeben werden, dies erfolgt über "ID=wert".
• Gleis: Gleis am Bahnhof, an dem der Zug hält. Die Abfahrtszeit von diesem Gleis dient als Referenz für die folgenden Werte.
• vonStd..bisStd: Der Zeitraum, an dem der Zug fahren soll. Dabei wird die Referenz-Abfahrtszeit als Basis genommen, die bisStd wird dabei nicht mehr als Haltezeit aufgenommen (entspricht einem Programmcode etwa von: for(z=vonStd;z
• Schiebung: Wieviele Minuten zwischen den einzelnen Zügen im Zeitraum liegen soll, z.B. 60.
• Offset: Optionaler Wert, setzt die Minuten, die zu den Zeiten eines Zugs addiert werden.Negative Werte sind hier nicht erwünscht was also einem Mindetswert von 1 bedeutet.
Jeder Zug kann mehrere loop-Aufrufe haben, einfach hintereinander geschrieben.
Die Spieluhrzeit läuft z.Z. von 5:00 bis 20:59 Uhr, entsprechend sollten Loop-Zeitintervalle zwischen 5 und 21 liegen (5..21).
Schauen wir uns einige Fallbeispiele an, das dürfte mehr erklären:
Ein Zug soll alle 60 Minuten fahren, er hält an den Bahnhöfen A, Gleis 1 und B, Gleis 5 und zwischen 5 und 20 Uhr fahren (der Simulatorzeit):
loop(A,1,5..21,60);
Der Zug oben soll aber Vormittags und Abends zur "Rush-Hour" alle 30 Minuten fahren:
loop(A,1,5..6,60); loop(A,1,6..9,30); loop(A,1,9..16,60); loop(A,1,16..18,30); loop(A,1,18..21,60);
Sehr umständlich, hier eine bessere Lösung:
loop(A,1,5..21,60); loop(A,1,6..9,60,30); loop(A,1,16..18,60,30);
Hier brauchen wir das Offset-Feld.
Ein Zug fährt alle 30 Minuten, allerdings nicht genau alle 30, sondern um 2 Minuten verschoben, also z.B. um :10 und um :42. Das machen wir so:
loop(A,1,5..21,60); loop(A,1,5..21,60,32);
(*): und das steht da aus 2 Gründen: 1. um mehrere loop() Befehle voneinander zu trennen und 2. aus reiner Boshaftigkeit, weil ich als Author in Java und PHP das auch immer schreiben muß und nicht vergessen darf .