PDA

Vollständige Version anzeigen : C&C3 Mod SDK - Manifest Fix


Bibber
27-08-2008, 03:49
Interessiert hier wahrscheinlich eh keinen, aber ich poste es hier trotzdem:

Problem:
Die meisten kennen es, dass wenn man TW mit ner Mod gestartet hat und in den Optionen die Details von Low auf High oder umgekehrt stellt, das Spiel abschmiert. Das liegt ganz einfach daran dass die Referenzen zur global.xml und static.xml letztendlich den falschen Pfad haben, nämlich "cnc3xml\global.xml" bzw. "cnc3xml\static.xml".
Im Spiel selbst befinden sich diese Dateien aber direkt im Data Root und nicht im Unterordner "cnc3xml". Darum crasht das Game und meckert, dass es die Dateien im "cnc3xml"-Ordner nicht findet.
(Data Root des Mod SDK ist das SDK-Installationsverzeichnis)

Lösung:
Man verschiebt vor Aufruf des BinaryAssetBuilder alles aus dem Ordner "CnC3xml" in den SDK-Installationsordner und die global.manifest und static.manifest von "BuiltMods\CnC3Xml" nach "BuiltMods". Allerdings wird dann der SDK-Ordner sehr unübersichtlich.

Alternative: C&C3 Mod SDK - Manifest Fix (http://www.thundermods.net/index.php?page=downloads&action=view&id=41)
Wem das zu viel wird kann auch den Fix runterladen und in der BuildMod.bat DIREKT VOR dem Aufruf der MakeBig.exe den Fix aufrufen. Dies muss mit jeder erstellten Manifest passieren, die eine Referenz zur global.xml oder static.xml legt, also auch mit der mod_L.manifest.
Bereits kompilierte Mods können damit auch gefixt werden. Einfach die entsprechenden Manifest-Dateien aus den Big-Dateien der Mod entpacken, mit dem Tool reparieren und wieder zurückpacken.

Erweiterte BuildMod.bat:
@echo off
@echo Mod Name: %1
@echo Building Mod Data...
tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true
@echo Building Low LOD...
tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:LowLOD /bps:"%cd%\BuiltMods\mods\%1\data\mod.manifest"
@echo Copying str file if it exists...
IF EXIST "%cd%\Mods\%1\data\mod.str" copy "%cd%\Mods\%1\data\mod.str" "%cd%\BuiltMods\mods\%1\data"
@echo Copying Shaders...
IF NOT EXIST "%cd%\BuiltMods\mods\%1\Shaders" md "%cd%\BuiltMods\mods\%1\Shaders"
copy "%cd%\Shaders\*.fx" "%cd%\BuiltMods\mods\%1\Shaders"
del "%cd%\Builtmods\mods\%1\data\mod_l.version"

@echo Fixing manifest...
tools\FixManifest.exe "%cd%\BuiltMods\mods\%1\data\mod.manifest" "%cd%\BuiltMods\mods\%1\data\mod_L.manifest"

@echo Creating Mod Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -o:"%cd%\BuiltMods\mods\%1.big"
@echo Copying built mod...
IF NOT EXIST "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods" md "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods
IF NOT EXIST "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods\%1" md "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods\%1
copy "builtmods\mods\%1.big" "D:\Bibber\Eigene Dateien\Command & Conquer 3 Tiberium Wars\mods\%1"

Bibber
19-09-2008, 00:26
Alternative 2:
Wer nicht an seinen bat-Dateien usw. rumschrauben will, kann auch diese Dummy-Dateien nutzen, die man nur ins Mod-SDK-Installationsverzeichnis entpacken muss: C&C3 Mod SDK - Mod Crash Fix (http://www.thundermods.net/index.php?page=downloads&action=view&id=46)