Posts by callavsg

    Moin Tilo,


    du hast wahrscheinlich Recht, dass das Änderungsdatum nun auch nicht so unzuverlässig ist, was seine Richtigkeit angeht. Es ging auch weniger darum, dass T:ANE, der xcopy-Befehl oder du dem an und für sich nicht vertrauen könnt.

    Es sind nunmal nicht die einzigen Komponenten die auf einem PC zusammenspielen. Der xcopy-Befehl wird wohl genauso richtig handeln, wie T:ANE wenn es was löscht/speichert/schreibt. Aber es gibt noch andere Software auf dem PC, die gewollt oder ungewollt auf Dateien zugreift, und es gibt eben den Fall, dass in T:ANE etwas gelöscht wird, was aber dann noch in der Sicherung herumschwirrt. Darum finde ich es ratsamer bei jeder Sicherung eine neue anzulegen und anschließend die veraltete zu löschen.


    Die DOS-Befehle sind da völlig ausreichend. Wobei ich sagen muss, dass ich xcopy erst nachschlagen musste. Ich verwende häufiger robocopy, was aber auch an der Netzwerkfähigkeit liegen dürfte. XCopy kann glaube ich nicht Netzwerkweit kopieren, kann mich da aber auch irren.

    Das hätte ich vor 30 Jahren genau gewusst. ( da wurde auch noch Assembler programmiert ).

    Man muss aber ehrlicher Weise dazu sagen, dass die Windows-Benutzer ihre DOS-Befehle mit dem Einzug der GUI in Windows nicht mehr so zu schätzen anfingen. Für jeden kleinen Befehl sollte es am Besten eine GUI geben. Kaum jemand (normale Nutzer) weiß nämlich, dass beispielsweise "shutdown /s /t 3600" den Rechner in 1Std herunterfährt. Da wird dann im Netz nach ner Software gesucht die nen Shutdown-Timer liefert...

    Und ganz schnell sind die DOS-Befehle dann nur noch was für die Nerds oder Leute vom Fach geworden.

    Assembler ist spannend, aber auch ich habe mich weiter als mit den Grundlagen nicht damit beschäftigt. Schlimmer finde ich jedoch, dass im Zeitalter der "Managed Languages" tatsächlich Leute behaupten, man müsse sich mit ASM, C und C++ nicht mehr beschäftigen. :rolleyes:

    Hallo Tilo,


    da ist nichts falsches dran, sorry wenn das so rüberkam. Sicherungen können wichtig sein!

    Ich bin mir nur nicht sicher, ob da das reingerutscht ist, was du auch sichern wolltest.

    Denn an einer Stelle muss es ja haken, wenn du einerseits schreibst es sei chaotisch im CM und andererseits seien Strecken da,

    die du schonmal gelöscht hast.


    Wenn man sich auf folgende Grundannahmen einigt, von denen ich im Moment ausgehe:
    - Wenn T:ANE etwas löscht, dann ist es auch weg, maximal im Backup-Ordner gelandet (sofern ein Dateizugriff nicht möglich ist, meldet es sich)

    - Die Datenbank war vorher in Ordnung

    - Es wurde die richtige Datenbank kopiert


    Dann passt das nicht zusammen.


    Wenn ich mir deinen xcopy-Befehl anschaue, gibst du ihm den /d-Parameter. Du möchtest natürlich nur Dateien kopieren, die geändert worden sind. Aber der /d-Parameter schaut auf's Änderungsdatum und nicht gleichzeitig auch auf andere Dateiattribute, was viel zuverlässiger wäre (wie etwa eine unterschiedliche Dateigröße), ich würde dem nicht vertrauen. Und der xcopy-Befehl löscht alte Sachen nicht. Da hast du schonmal den Grund dafür, dass deine Strecken wieder da sind. Ob der Tatsache, dass du den /d-Parameter nutzt gehe ich mal davon aus, dass du den Ordner vor einer Sicherung nicht löschst und ihn neuschreiben lässt, sondern einfach immer wieder drüber schiebst.

    Das erklärte auch das Chaos.


    Ich brauche keine Datensicherungen von Trainz. Meine Projekte liegen in einer Cloud und der Rest ist wurst. Selbst wenn Windows "crashed" ist's wurst, weil danach dank meiner Partionierung alles noch läuft.

    Der local-Ordner enthält eine Ordnerstruktur von 256 Unterordnern, die jeweils die ersten beiden Stellen eines Hashs angeben.

    In diesen werden dann die Objekte anhand ihres KUID-Hashs einsortiert.


    Der local-Ordner enthält alle lokal bearbeiteten und lokal erstellten Inhalte in einer Trainz Installation. Neben original ist er der zweite Ordner, der die Datenbank von Trainz in bezug auf Inhalte darstellt. Offizielle Inhalte (DLC) werden, wie BuiltIn Inhalte, separat an einer anderen Stelle der Trainz Installation aufbewahrt.


    Löscht man Inhalte, werden diese von Trainz auch aus dem Local- und Original-Ordner entfernt und je nach Einstellungen in den Ordner "backups" gelagert.

    Kann man mit den Windows-Log-Programmen sehr gut nachvollziehen, wenn man die auf diese Ordner losjagt :D


    Ich gehe dabei immer wie folgt vor:

    Den local-Ordner rüberziehen, Datenbankreparatur, dann erstmal, ohne Beachtung jeglicher Fehlermeldungen, die vermeindlich fehlenden Objekte von der DLS etwa herunterladen, danach erneut eine Datenbankrepartur.

    Den original-Ordner lasse ich weg, weil es sein kann, dass die neue Trainz Installation diese nicht als "von der DLS" annimmt.

    Den Ordner Backups nutze ich sowieso nicht :D


    Es waren plötzlich wieder Strecken vorhanden , die ich schon 2018 gelöscht hatte.

    Das kommt mir auch spanisch vor. Mir ist nicht bekannt, ob Trainz in den Backups sucht, wenn es eine KUID finden möchte, was ich dennoch bezweifle.

    Hast du den gesamten Ordner genommen also "original", "backups", "local", etc., oder nur den "local"-Ordner rausgepickt? Eventuell ist da ne veraltete assets.bku oder sowas (dann ist die Strecke nämlich ne neue und nur in der DB mit altem Namen, hatte ich auch schonmal).


    Gruß
    Pascal

    Ob das direkt an PBR liegt, weiß ich nicht, es wird auch da ganz schnell von dem Zusammenhang abgegangen.

    Für mich sah es so aus, als wären gewisse geometrische Eigenschaften der Faces ausschlaggebend, wobei ich mir relativ sicher bin,

    dass sowas wie ein Vertex inmitten einer einzigen Kante gerade bei dir wohl eher nicht auftritt.


    Hast du beim FBX Export die "Triangulate"-Option gewählt? Ab und zu hilft mir ein Tauschen der Einstellung bei Meshfehlern doch ganz gut.


    Was mir noch einfiele, wäre eine Überprüfung der UV Channels, Trainz kennt wohl nur einen. Damit hatte ich auch schon oft Probleme, gerade wenn es Modelle sind, die nicht direkt für Trainz zugeschnitten waren. (Nachtrag: Nochmal in mich gegangen - ein Modell mit zu vielen UV Channels wird gar nicht erst von Trainz importiert)


    Ansonsten wäre ich mit meinem Latein auch am Ende. Was ich meine zu wissen: Stellt man 2-Sided ein, wäre das Problem umgangen, bei einem LOD-Mesh aber doch recht overkill.

    Moin Tilo!


    Der Nightmode in Trainz kann zu verschiedenen Zeiten eingestellt werden, schau mal, ob dir das bekannt ist.

    Mit dem Tag nightmode in der config.txt lassen sich die Werte wie folgt steuern:


    home = Abenddämmerung bis irgendwann zufällig in der Nacht

    lamp = Abenddämmerung bis Morgengrauen

    constant = Durchgehend eingeschaltet

    none (Standardwert) = durchgehend abgeschaltet


    Zu dem Problem mit der Stärke:
    Ich nehme an:
    Dein Material hat einen Self-Illumination-Effect, hast du dabei nur eine Textur oder auch eine Farbe vergeben? Wenn nur eine Textur, dann schalte zusätzlich einmal die Farbe auf weiß.


    Gruß

    Pascal

    Nein, wohl nicht, zu mind. ist mir kein anderer Weg bekannt als das gesamte Paket zu installieren. Man könnte höchstens schauen, ob man herausbekommt zu welchem Part des Pakets (diese sind aufgeteilt in mehrere Pakete) diese gehören, aber das lässt sich nachträglich nicht mehr. Da hilft nur Paket für Paket herunterladen und kontrollieren

    Evtl. wurde hier die Lok per Hand "beladen".

    In Verbindung mit deinem Link klingt das einleuchtend. Ich hatte erst nicht auf eine Laderampe getippt, da ich eine Treppe an der Stelle für unpraktisch halte. Jetzt wo ich aber die Rückseite kenne, könnte ich auch vermuten, dass in der "Halle" an die die Rampe grenzt wohl ein Kohlehaufen oder sowas gelagert wurde, man also durch die Tür an der Rampe von dem Haufen wegtragen konnte.

    Zum Modell: Das sieht doch wieder mal klasse aus!

    Könntest Du mir bitte etwas mehr darüber schreiben? Ist der Parameter "den ... Call in der GetDependencies-methode" temporär abänderbar? Oder müsste ich tiefer ins System eingreifen? Was für mich als Laie immer etwas risikobehaftet ist und ich daher vermeiden möchte.

    Nein. Das bezieht sich auf Objekte, die ein Script besitzen. Ein Objekt mit Script wird von Trainz beim Speichern gefragt, ob etwaige zur Funktion beitragende Abhängigkeiten gebraucht werden. Zum Beispiel in einem Soudntrigger wird ein HTML-Asset konfiguriert, das die Sounds enthält. Dort kann man dann Trainz über dieses HTML Asset informieren.

    Wenn man sich die Struktur von Trainz im Hardcode anschaut und dies dann mit den Informationen aus der Script API verbindet, lässt sich daraus schließen, dass diese Einträge in der kuid-table neugeschrieben werden. Wer daran Zweifel hat - da er nicht die Mittel hat sich einen Programmablauf anzuschauen - kann die kuid-table einer Strecke in ihrer config.txt löschen. Diese wird [ich meine auch beim Packen der CDP und] beim Speichern der Strecke dann sowieso wieder neuangelegt.


    Als Besitzer von T:ANE dürftest du aber Zugriff auf die T:ANE spezifischen KUIDs über den DLC Store erhalten. In wieweit besteht dein Problem mit Fehlkuids denn noch? Hier hat sich die Thematik doch relativ dynamisch zwischen fehlenden und fehlerhaften Assets bewegt, sodaß ich etwas den Überblick verloren habe.

    Die Objekte, welche Trainz als Abhängigkeiten listet und dann runterlädt, sind im kuid-table verzeichnet, welcher sich meist am Ende der config.txt-Datei eines Assets findet. Bei Strecken fügt Trainz dort automatisch alle Objekte hinzu, sobald sie verbaut werden, entfernt diese aber nicht selbstständig, wenn du alle "Instanzen" eines Objektes von deiner Strecke löschst. Dies hat den Grund, dass du auch manuell für Skriptzwecke Dinge im Kuidtable hinzufügen kannst, welche nicht auf der Strecke als Objekte verbaut sind. Daher löscht Trainz lieber einfach gar nichts von dort.

    Er schreibt den Kram neu beim Abspeichern und liest die neu ein. Wenn ich den entsprechenden Call in der GetDependencies-methode lösche, der mir KUIDs in die KUIDList einfügt, sind die im kuid-table danach verschwunden.

    Ich tippe darauf, dass es sich gar nicht um eine Laderampe handelt. Vielleicht musste der Eingang etwas höher, weil in der Funktion des Gebäudes der Hund begraben liegt, sprich man brauchte einfach eine erhöhte Ebene :/