Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: AnnoZone Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Nale

SeeBär

  • »Nale« ist der Autor dieses Themas

Beiträge: 261

Registrierungsdatum: 21. Oktober 2017

  • Nachricht senden

1

Donnerstag, 10. Oktober 2019, 22:42

Anno 1800 FC Converter und editieren der CDATA

So wieder etwas einfacher gemacht, erstmal danke an Judekw dass er mir das ganze erklärt hat wie die .fc funktioniert.

Da es mir aber zu umständlich war jedes Mal die .fc im Hexeditor zu bearbeiten habe ich ein kleines Tool geschrieben was das Bearbeiten der Dateien etwas vereinfachen soll.
github

Dort unter releases die exe herunterladen und dorthin kopieren wo sich die .fc befindet.
Dann mit shift und rechtsklick ein Powershell Fenster öffnen und dort AnnoFCConverter.exe mit den gewünschten Argumenten starten:

-r <InputFilename> für 1800 und -rz <InputFilename> für 2070 um <InputFilename> in eine .html zu konvertieren
-w <InputFilename> für 1800 und -wz <InputFilename> für 2070 um <InputFilename> zurück in .fc zu konvertieren
-o <OutputFilename> um einen anderen Dateinamen für die Outputdatei festzulegen.
-y um die Outputdatei zu überschreiben.

Also um bspw die hypothetische Anno 1800-Datei getreidefarm.fc lesbar zu machen und als output.html auszugeben sowie die vorhandene output.html zu überschreiben: AnnoFCConverter.exe -r getreidefarm.fc -o output.html -y

Nun alles was man dann machen muss ist die generierte html mit einem Texteditor zu öffnen. Was sich gegenüber der .fc geändert hat ist alles was mit CDATA zu tun hat:

<GuidVariationList>CDATA[8 1000143 0]</GuidVariationList> steht bspw für eine Liste an GUIDs (die sind in der asset verlinkt).
Innerhalb CDATA steht die erste Zahl für die Größe der CDATA in Bytes (die erste Zahl nicht mitgezählt), in diesem Fall sind es 8 Bytes weil beide Zahlen dahinter 32 bit Integer sind. Die letzte Zahl habe ich keine Ahnung was das ist die ist immer -1 oder 0, wahrscheinlich also an/aus, müsste man mal rumprobieren mit. Die Zahl in der Mitte ist die GUID die für die Figur geladen wird, dabei kann man auch mehrere GUIDs angeben aus denen eine ausgewählt wird. Beachten muss man aber, dass dann auch die Größe von CDATA geändert werden muss.

Für Anno 2070 ist noch wichtig dass die Werte in der Orientation keine ints sondern floats sind und die Positionen mit 0.001 multipliziert werden müssen.

Wenn man die .fc so umgeschrieben hat wie man möchte nimmt man sich jetzt wieder den Converter und lässt den aus der bearbeiteten .html die .fc generieren. Sollte es irgendwelche Probleme geben erstellt bitte ein issue auf github.

Liebe Grüße
Taubenangriff


P.S. Danke an meow dass er über meinen Code drübergeschaut hat :)