Moin,
ich bin grade dabei mich in TrainzScript einzuarbeiten und wollte mir mal anschauen, wie man aufbauend auf dem "Automatic Random Running-Number System" eine Prüfziffer generieren und anhängen kann.
Die Kurzfassung: Mit GetRunningNumber() kann die aktuelle Fahrzeugnummer abgefragt, und mit SetRunningNumber() geschrieben werden. In der Config kann über den Eintrag running-numbers eine Vielzahl von möglichen Nummern festgelegt werden - wahlweise über Intervalle, Listen oder eine Kombination aus beidem.
Ist das Asset mit diesem Eintrag konfiguriert, so weißt Trainz beim Initialisieren des Objektes im Surveyor diesem eine zufällige Nummer im zulässigen Rahmen zu. Bei Bedarf kann diese über das Eigenschaften-Fenster (?) geändert - oder nach manueller Eingabe wieder auf einen Zufallswert zurückgestellt werden. Soweit so gut.
Leider gibt es keine Message, auf die gehört werden kann, sobald sich die Loknummer ändert - also ein Nutzer per Interface oder Script die Loknummer manipuliert.
Daher die Frage, wie kann in TrainzScript auf die Änderung von Werten gehört werden, ohne per Timer alle n Sekunden danach zu fragen?
Ein Usecase wäre z.B. folgender:
Ich stelle die Lok (z.B. eine V200) auf die Gleise und es wird ihr automatisch die Nummer "220012" gegeben. Das Script welches im Constructor einen Aufruf zur Berechnung der Prüfziffer hat, würde entsprechend die Nummer abfragen, die Prüfziffer "9" bestimmen und anschließend die neue Loknummer "2200129" setzen. Wenn der Nutzer allerdings gerne seine Lieblingsnummer "023" hätte, gibt er über das Einstellungsfenster die neue Nummer "220023" an und würde erwarten, dass die Lok anschließend "2200236" heißt - also "220 023-6". Die letztgenannte Änderung bekomme ich allerdings nicht mehr mit…
Cheers
Sachsenbahner