Inhaltsverzeichnis

Tutorial: Namensmuster

Nun haben wir Züge erzeugt, aber die kann man nicht auseinanderhalten - sie brauchen einen Namen. Bei der DB besteht dieser Name aus der Zuggattung (z.B. ICE) und einer Nummer (z.B. 504), die möglichst nur einmal am Tag auftaucht.

Bei den meisten Bahnunternehmen gibt es daher Listen mit Nummernbereichen für bestimmte Züge (bei der DB sind z.B. die Nummern 0 bis 999 Fernzüge). Auch für Güter- und Sonderzüge gibt es solche Nummernbereiche.

Auch hier im Sim muss ein Zugname eindeutig sein, dazu zählt aber neben der Nummer auch die Zuggattung und ein eventueller Kommentar dahinter.

Zugnamen können grundsätzlich frei gewählt werden, solange sie mindestens ein sichtbares (siehe unten) Zeichen enthalten und im Sim-System eindeutig sind. Normalerweise orientier man sich aber an dem Zugnummernmuster des Vorbilds.

Rechnen mit dem Namen

Grundsätzlich kann man pro Zugtemplate nur ein Namensmuster angeben, aber viele Züge erzeugen. Wie kann man nun dafür sorgen, dass jeder Zug einen eigenen Namen hat?

Die Lösung: Der Server rechnet bei jedem Zug die Zugnummer aus. Dafür gibt es Variablen, die sich während des Erzeugens der Züge ändern. Sie beginnen alle mit einem Dollarzeichen $:

noch mehr?

Hierzu einige Beispiele.

Beispiel 1

Namensmuster: RB 21002+$zi*2
Zugscript: takt(60,ID=123,GLEIS=A-Dorf,STUNDE=5..8);

Dieses Namensmuster erzeugt folgende Züge:

RB 21002
RB 21004
RB 21006

Gerechnet wird nach den gängigen Rechenregeln:

21002+0*2 = 21002 + (0 * 2) = 21002 + 0 = 21002
21002+1*2 = 21002 + (1 * 2) = 21002 + 2 = 21004
21002+2*2 = 21002 + (2 * 2) = 21002 + 4 = 21006

Wichtig: Die Variablen fangen immer bei 0 an. Die Zugnummer im Namensmuster ist also die Nummer des ersten Zuges.

Beispiel 2

Weiteres Beispiel

Unsichtbare Zusätze: Das %-Zeichen

Da es doch mal vorkommt, dass Zugnummern im Sim mehrfach vorkommen (z.B. weil ICEs in mehreren Zugtemplates dargestellt werden müssen oder zwei Regionen die gleiche Nummer für ihren Güterzug wählen), gibt es eine Erweiterung: Hinter dem Namen, der für den Spieler sichtbar sein soll, kann man ein Prozentzeichen % setzten. Dieses % und alles, was dahinter folgt, wird dem Spieler nicht mehr angezeigt, ist aber Teil des Zugnames und hilft dem Erbauer beim Unterscheiden der Züge.

Dabei muss man natürlich beachten, dass der Spieler evtl. nur einen Teil des Namens sieht - und damit zwei Züge mit dem gleichen Namen vor dem % nicht auseinanderhalten kann: Weder auf Displays noch bei Zugmeldungen noch bei Fehlermeldungen im Forum. Daher sollte man darauf achten, dass der für den Spieler sichtbare Name trotzdem von diesem auseinander gehalten werden kann.

NAME als Zugscript-Parameter

Es gibt die Möglichkeit, das Namensmuster statt für das Zugtemplate nur für jedes einzelne Zugscript zu setzten. Das Namensmuster-Feld des Zugtemplates bleibt dann leer. Es kann aber nur eines von beiden gemacht werden.

Im Zugscript wird dann der zusätzliche Parameter NAME=xxx angegeben, xxx steht hier für das Namensmuster.

Wichtig: Wird das Namensmuster innerhalb des Zugscripts angegeben, wird $zi bei mehreren Zugscripten nicht zurückgesetzt, sondern läuft weiter! Normalerweise ist hier $ti die bessere Wahl.

takt(60,ID=123,GLEIS=A-Dorf,STUNDE=5..8,NAME=RB 21201+$zi*2);
takt(60,ID=123,GLEIS=A-Dorf,STUNDE=9..12,NAME=RB 21209+$zi*2);

Hier werden folgende Züge erzeugt:

RB 21201
RB 21203
RB 21205

RB 21215
RB 21217
RB 21219

Möchte man aber eine fortlaufende Nummerierung mit Auslassen eines Zuges, muss man $ti verwenden:

takt(60,ID=123,GLEIS=A-Dorf,STUNDE=5..8,NAME=RB 21201+$ti*2);
takt(60,ID=123,GLEIS=A-Dorf,STUNDE=9..12,NAME=RB 21209+$ti*2);

Dies erzeugt folgende Züge:

RB 21201
RB 21203
RB 21205

RB 21209
RB 21211
RB 21213

Und im nächsten Kapitel...

… wird der Fahrplan erstellt.