relativen Pfadangaben in Mod-Konfigurationsdateien

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Ich habe in meiner stdout.txt massenhaft Fehlermeldungen à la "xyz.mdl was removed because the following resources were missing".


    Dies betrifft z.B. den Mod "2771774674_Objekte_Gebaeude_aus_den_Missionen-Recolored_1"


    Ich bin mir ziemlich sicher, dass diese Mods irgendwann mal problemlos funktioniert haben und erst durch ein Game-Update fehlerhaft wurden. Offensichtlich wurde die Art und Weise wie relative Pfadangaben in Mod-File gehandled werden von Grund auf verändert, so dass benötigte Assets nicht mehr gefunden werden.


    Ich möchte diese Fehler gerne für mich fixen, da ich die Mods gerne weiterverwenden möchte. Nun habe ich jedoch ein Problem und zwar dass ich keinen Plan habe wie die relativen Pfadangaben in den Mod-Files funktionieren.


    Ein Beispiel:


    In der stdout.txt befindet sich z.B. folgende Fehlermeldung zu den Mod "2771774674_Objekte_Gebaeude_aus_den_Missionen-Recolored_1":


    >>>

    * mission_assets/mission_01/silvermine_0_1_0.mdl was removed because the following resources were missing:

    - ../../../mods/urbangames_campaign_mission_01_1/res/models/mesh/asset/silvermine_0_1_0/engine_house_lod0.msh

    - ../../../mods/urbangames_campaign_mission_01_1/res/models/mesh/asset/silvermine_0_1_0/lift_container_lod0.msh

    - ../../../mods/urbangames_campaign_mission_01_1/res/models/mesh/asset/silvermine_0_1_0/lift_lod0.msh

    - ../../../mods/urbangames_campaign_mission_01_1/res/models/mesh/asset/silvermine_0_1_0/lift_robe_lod0.msh

    - ../../../mods/urbangames_campaign_mission_01_1/res/models/mesh/asset/silvermine_0_1_0/lift_wheel_lod0.msh

    <<<


    Ich habe nun die zugehörige Datei "silvermine_0_1_0.mdl" mal geöffnet und da ist mir aufgefallen, dass es Einträge von Abhängigkeiten gibt die NICHT bemängelt werden, also vom Game gefunden werden. Ein Beispiel wäre:


    "mission_assets/mission_01/silver_mine_main_1.mtl"


    Die zugehörige mtl-Datei "silver_mine_main_1.mtl" befindet sich im Ordner "..\mods\2771774674_Objekte_Gebaeude_aus_den_Missionen-Recolored_1\res\models\material\mission_assets\mission_01". Offensichtlich reicht es aus, wenn man den absoluten Pfad an einer bestimmten Stelle kürzt und trotzdem werden die Assets gefunden.


    Dann gibt es in der zugehörige Datei "silvermine_0_1_0.mdl" allerdings auch Einträge von Abhängigkeiten die mit "../../../mods/" starten. Z.B.:


    "../../../mods/urbangames_campaign_mission_01_1/res/models/mesh/asset/silvermine_0_1_0/engine_house_lod0.msh"


    Nun ist mir aufgefallen, dass genau zu diesen Einträgen welche mit "../../../mods/" starten, Fehlermeldungen in der stdout.txt vorhanden sind, dass sie nicht gefunden wurden.

    Ich vermute mal, dass die relativen Pfadangaben mit "dreimal übergeordnetes Verzeichnis" (.../.../...) am Anfang obsolete sind, aber wie wird dann der Pfad nun korrekt angegeben.


    Ich bin eh etwas verwirrt, weil in den Konfigurationsdateien statt eines Backslash immer ein Slash verwenden wird. Verzeichnisnamen werden jedoch für gewöhnlich, zumindest auf Systemebene, in Pfaden mit einem Backslash (\) voneinander getrennt.


    Wenn jemand so nett wär und mir diesbezüglich eine Lehrstunde erteilen könnte, wäre ich ihm/ihr unendlich dankbar.


    Gruß TCO

    Dateien

    • stdout.txt

      (438,84 kB, 34 Mal heruntergeladen, zuletzt: )
  • Ok habe die originale Version der mdl gefunden und dort wird auch ein kurzer abgeschnittener Pfad verwendet.


    Beispiel:


    aus originaler .mdl: mesh = "asset/silvermine_0_1_0/engine_house_lod0.msh"

    aus .mdl vom Mod: mesh = "../../../mods/urbangames_campaign_mission_01_1/res/models/mesh/asset/silvermine_0_1_0/engine_house_lod0.msh"


    Hab nun mal bei der Mod-.mdl den Pfad an der gleichen Stelle gekürzt zu: mesh = "asset/silvermine_0_1_0/engine_house_lod0.msh"

    Das sollte nun jedoch der Pfad zur originalen Datei aus der Vanilla-Mission sein. Aber die originalen Dateien sollten wahrscheinlich beim Einlesen aller Mods zumindest im Speicher überschrieben werden. Richtig?


    Bekomme dann jedoch die gleiche Fehlermeldung in der stdout.txt:


    * mission_assets/mission_01/silvermine_0_1_0.mdl was removed because the following resources were missing:

    - asset/silvermine_0_1_0/engine_house_lod0.msh



    Weiß jetzt wirklich nicht wie ich den fehlerhaften Pfad in der .mdl vom Mod anpassen kann damit die Assets auch gefunden werden. Wo kann der Fehler nur liegen?

  • Die urbangames_campaign_mission_01_1 wird wohl nicht als mod in der modliste geladen, deswegen wird der Mod auch nicht in das "Virtuelle Dateisystem" eingebunden.


    /Steam/steamapps/common/Transport Fever 2/mods/urbangames_campaign_mission_01_1/

    Lua: mods/urbangames_campaign_mission_01_1/mod.lua
    visible = false,
    cosmetic = true,

    entfernen.


    Du solltest nun in der Modliste, den Mod MISSION01 aktivieren können...


    Außer die nötigen Dateien in dein eigenes Mod zu kopieren wird die Nutzung der Dateien nicht funktionieren. Da man ohne TPF2 Dateien zu ändern die Mission Mods nicht aktivieren kann bzw. soll


    PS: die runFn muss ggf. auch raus genommen werden aus der mod.lua

  • So habe jetzt mal Tests mit der modifizierten mod.lua der mission_01 gemacht und folgende Ergebnisse:


    Erster Test


    folgende Zeilen aus lua entfernt:

    visible = false,

    cosmetic = true,


    Ergebnis: CTD mit Fehlermeldung - siehe Anhang Lua_exception_1.jpg und stdout_1.txt



    Zweiter Test


    folgende Zeilen aus lua entfernt:

    visible = false,

    cosmetic = true,


    folgenden Abschnitt zusätzlich aus lua entfernt:

    runFn = function (settings)

    game.config.environment = "mission_1.lua"


    modifier.treevisitor(params.restree)

    end


    Ergebnis: CTD mit Fehlermeldung - siehe Anhang Lua_exception_2.jpg und stdout_2.txt



    Ich denke nicht, dass der Mod "2013682788_asset_truck_with_colors_1" in der ersten Fehlermeldung ein Troublemaker ist. Wahrscheinlich ist er der Prügelknabe der als erstes auf dieses Problem stieß. Denn wenn ich den Mod deaktiviere wird der Stab weitergereicht zum nächsten Mod.



    Da die urbangames_campaign_mission_01_1 nicht ins virtuelle Dateisystem eingebunden wird, vielleicht ist genau das der Grund warum in der gemoddeten .mdl ein besonderer Pfad angegeben ist:


    mesh = "../../../mods/urbangames_campaign_mission_01_1/res/models/mesh/asset/silvermine_0_1_0/engine_house_lod0.msh"


    Wahrscheinlich werden dadurch die Assets nicht aus dem virtuellen Filesystem sondern aus dem realen Filesystem eingebunden. Aber irgendwie schein die Angabe mit dreimal ".." nicht korrekt zu funktionieren. Aber der Modder wird sich was dabei gedacht haben und es wird höchstwahrscheinlich auch irgendwann mal funktioniert haben bis durch ein Update die Pfadangabe obsolete wurde. Aber was genau läuft da jetzt schief?

  • TPF2 hat früher keinen Zip Dateien verarbeitet und die Missionen waren nicht gepackt.

    Ja, da ist noch ein Gamescript drin, das macht Probleme


    Wenn ich mir die Steam ID anschaue, warum nimmst du nicht einfach die Webdisk Version?


    Objekte & Gebäude aus den Missionen - Recolored


    Da sind die Mesh Dateien der Silbermine als Dateien gepackt mit drin? Warum also den ganzen Aufwand :/

  • eis_os

    Hat das Label gelöst hinzugefügt
BlueBrixx