Ohje, dass hört sich für mich nach Arbeiten mit "Regulären Ausdrücken" in Makros an, damit kenn ich mich nur ein wenig aus. nobsi , wie würdest Du diese Situation angehen? Diese riesen Tipp- und Klickarbeit im Texteditor oder doch kompletter Gleisneubau im World Editor des TS?
Hallo Rudi,
nee, vergiss reguläre Ausdrücke. Das Hauptproblem ist (wie ich oben schon andeutete) der "Katalog von Kriterien" für die Suchen/Ersetzen Funktion.
"Leere" Trackrule Einträge kannst du mit NPP (Notepad++) ja leicht finden, die Frage ist nur: was soll da hin? Indizien dazu kann einerseits der vorhande Eintrag des Gleistyps liefern, andererseits aber auch das, was passiert ist. Als ich damals die WLE rekonstruiert habe, wusste ich nicht was passiert ist, konnte aber einiges aus den verwendeten Gleistypen schließen.
Zunächst mal ein bisschen Hintergrund-Info:
Der Gleisverlauf ist im TS eigentlich nicht in der tracks.bin, sondern in den Track-Tiles beschrieben. Da ist für jedes Ribbon (Gleisabschnitt zwischen den im Editor angezeigten roten Dreiecken) der Kurvenverlauf "mathematisch" beschrieben (Radius, Länge). Jedes Ribbon hat auch eine ID, die der TS dann beim Laden der Kachel in der Tracks.bin sucht, um festzustellen, welches 3D-Modell / Textur das Gleis grafisch haben soll. In der tracks.bin findet der TS dann mit der Ribbon ID die zugehörigen Daten:
- Blueprint-ID des Gleis-Assets (3D-Modell + Textur)
- Blueprint ID der Trackrule (Geschwindigkeit, Sound u.a.)
- Höhenverlauf
- weitere Daten (falls mit dem Markierungstool abschnittweise z.B. geschwindigkeit geändert wurde)
- Links (Signale, Bahnübergänge, Verlade-Assets)
In der Tracks.bin gibt es für jedes Ribbon einen Abschnitt <Network-cTrackRibbon d:id="...."> ... </Network-cTrackRibbon> Der enthält unter anderem:
- die Ribbon ID <RibbonID> ... </RibbonID>
- die Kachel <RouteVector> ...</RouteVector> (Beispiel: die Werte X = 23, Z = -12 bedeuten Kachelnummer +000023-000012.bin)
- ein größerer Abschnitt <Properties> ... </Properties>. darin findet man u.a.
- <Network-cTrackNetworkTrackRule d:id="...."> den Eintrag für die verwendete Trackrule
- <Network-cTrackNetworkSpeedLimit d:id="..."> die Geschwindigkeit, die man mit dem Markierungstool eingetragen hat
- <Network-cSectionGenericProperties d:id="..."> dieser Abschnitt enthält mehrere weitere Informationen, u.a. die Blueprint-ID des verbauten Gleistyps
(Abschnitt <BlueprintID> ... </BlueprintID>)
Die alles entscheidende Frage ist nun: welche Kriterien gibt es, um zu entscheiden, welche Trackrule an den "leeren" <Network-cTrackNetworkTrackRule> eingetragen werden müsste?
Beispiel 1: Ein Vorfall ähnlich dem von bahnjan genannten: man weiß, dass versehentlich eine bestimmte Trackrule gelöscht wurde.
Dann bastelt man sich einen korrekten Eintrag dieser Trackrule (entweder von Hand, oder indem man in einer Mini-Teststrecke ein paar Meter Gleis mit dieser Trackrule verlegt), trägt in NPP unter "suchen" den leeren tracks.xml Abschnitt ein, unter "ersetzen" den konstruierten - Knopf drücken - das wars.
OK, Detailproblem: da sollte man nicht den ganzen <Network-cTrackNetworkTrackRule d:id="...."> für nehmen, weil da einige Daten drinstehen, die bei jedem Ribbon anders sind, sondern man nimmt nur den "Kern" , z.B. <Network-iTrackNetworkTrackRule-cPropertyValue> .... </Network-iTrackNetworkTrackRule-cPropertyValue> .
Beispiel 2: als ich damals die WLE untersucht habe, wusste ich natürlich nicht, was vorher passiert war. Ich konnte aber sehen, dass es um SAD-Gleise ging und daraus ableiten, welche Trackrule an der Stelle sinnvoll wäre (alte Strecken wie Köblitzer Bergland verwenden ja meist nur eine "universelle" Trackrule).
Um ähnlichen Unfällen soweit wie möglich vorzubeugen, habe ich damals aber nicht die vermutete Original-Trackrule eingetragen, sondern für alle in der Strecke verwendeten Gleise (sowohl SAD als auch DBTracks) neue eigenständige Trackrules im Asset-Ordner der Strecke angelegt und eingetragen (und dringend empfohlen, für den weiteren Bau diese Strecken-internen Trackrules zu verwenden)
Was mag bei Dir passiert sein?
- vielleicht wurde die Strecke auf einen anderen PC transportiert und dabei nicht wirklich alles übertragen
- vielleicht wurde versehentlich eine Trackrule gelöscht
- oder (besonders ekelhafte TS-Spezialität) : es gibt in den in deiner Strecke freigeschalteten Providern Duplikate einiger Trackrules. Wenn mehrere Trackrules (oder andere Assets) denselben Namen haben, kann man sie im TS-Editor nicht unterscheiden und benutzt "zufällig" mal den einen, mal den anderen Datei-Pfad. Wenn man dann einen der Provider löscht, sind die Trackrule Einträge weg, die zufällig dieses Duplikat benutzt haben.
(Berühmtes Beispiel für solche Mehrdeutigkeiten sind die Wasser- und Tunnelfolien im Kuju ELAP und USAP, was dann bei Benutzern, die eines der Packs nicht haben dazu führt, dass "zufällig" manche Tunnels verstopft sind und andere nicht)
Du müsstest also erst mal gucken, welche / wie viele Stellen in der tracks.xml betroffen sind, und überlegen: kannst du aus der Umgebung (in der Nähe steht ja noch der benutzte Gleis-Blueprint, vielleicht sogar Geschwindigkeiten) ableiten, welche Trackrule da fehlt?
Zur Not könntest du bei allen unklaren Stellen eine "universelle" Trackrule nach uralt-Methode einfügen (also eine mit sehr geringem Mindest-Kurvenradius)
In Bahnhofsbereichen wird das in großen Teilen möglich sein sein, falls aber auch freie Strecke mit Kurvenüberhöhung betroffen ist, wirds eklig. Da müsste man dann immer mit den Radien in den Track-Tiles vergleichen ... das würde ich mir wohl nur antun, wenn es um einige wenige Stellen geht.
Der Morgen ist klüger als der Abend. Sagt man. Ich habe im Netz ein Plugin für den Notepad++-Editor gefunden: NPPToolBucket. Damit kann man Textblöcke suchen/ersetzen. Also leere Trackrules gesucht und durch die eine fehlende ersetzt.
Hat funktioniert.
Uff...
Winke, Jan
Alles anzeigen
Gratulation
Ich weiß nicht, was NPPToolBucket kann, aber "eigentlich" kann der NPP das von Haus aus selbst. Im Suchen/Ersetzen Dialog kann man durchaus mehrzeilige Abschnitte aus der tracks.xml benutzen (Suchmodus passend einstellen).
Dein Vorteil: bei dir fehlte offensichtlich nur 1 Trackrule - da war klar, was an die leeren Stellen musste.