Millimargs Modding-Tools
Ich habe in den letzten Jahren sporadisch an meinen Anno-Sachen herumgebastelt und habe daran gearbeitet, meine überall verteilten Notizen und meine verschiedenen Tools in einer gemeinsamen Dokumentation und Programm-Bibliothek zu sammeln. Das ganze Projekt ist zwar noch sehr schlecht dokumentiert, aber es funktioniert.
Zustande gekommen ist eine Reihe von XML-Beschreibungen der binären Dateiformate aus denen sich dann eine Dokumentation generieren lässt, zusammen mit einer Python-Bibliothek und Tools zum Kodieren und Dekodieren der Dateien und Grafiken sowie zum Anwenden von Mods (Patches).
Jetzt ist es soweit ...
Amsel
Amsel (Anno Modding System and Exploration Library) ist eine Python-Bibliothek, mit der die Anno-Dateien gelesen, verändert und geschrieben werden können.
A₂E - Anno Explorer
A₂E ist eine grafische Oberfläche für Amsel. In Zukunft soll es damit möglich sein, Mods per GUI zu basteln - aber bisher geht das noch nicht. Siehe unten wie es bis jetzt geht.
A₂X - Graphics Decoder
Mit A₂X können alle Grafiken aus allen Gamedateien extrahiert werden. Klein und simpel.
Und wie baue ich jetzt Mods?!
Eigentlich ist es ganz einfach: Ein Mod ist eine XML-Beschreibung der Änderungen, die dann von Amsel gelesen und angewendet wird.
- Amsel einrichten:
|
Quellcode
|
1
2
3
|
git clone https://gitlab.com/millimarg/amsel
pushd amsel
./amsel-py.sh -h
|
- Eigenen Mod basteln ... und dann verwenden!
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# Mein Mod ist in: mein-mod/main.xml
# Mod überprüfen:
./amsel-py.sh mv -x mein-mod
# Mod kompilieren
# Das ist nicht bei allen Mods notwendig. Beim Kompilieren werden alle externen
# Grafiken in Anno-Daten übersetzt, sodass das Anwenden schneller geht.
# Bei Mods ohne externe Grafiken ist das nicht so wichtig.
./amsel-py.sh mc mein-mod
# Mod anwenden
# Dieser Befehl sollte im Anno-Ordner ausgeführt werden, weil da ja die zu moddenden Dateien sind.
# Die Dateiendung ".a2x.gz" wird beim Kompilieren angehängt.
./amsel-py.sh mod mein-mod.a2x.gz
|
Fragen und Antworten
- Geht das überhaupt auf Windows? Keine Ahnung . Aber das gemoddete Anno läuft nachher auf Windows und Linux wie geschmiert. Im AnnoPool habe ich eine alte Fassung vom Anno-Explorer hochgeladen, die auf Windows läuft. Die aktuelle Version braucht aber Python und ich brauche Hilfe von jemandem mit einem Windows-Compi, um es für Windows hochladen zu können.
- Mit welchen Anno-Versionen funktioniert es? So weit ich weiss sollte es mit allen funktionieren.
- Wie sieht denn jetzt so ein Mod aus? Siehe Bild im Anhang, und siehe hier für Beispiele. Das ist ein ganz simpler Mod, der macht, dass der Marktkarren ohne Strassen fahren kann. Die Änderung ist eigentlich nur eine Zeile: <change> usw.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?xml version="1.0" encoding="utf-8"?>
<file type="mod">
<meta id="free-carrier" author="millimarg" version="0.1.0" xver="0.1.0">
<title>Allow the market carrier to travel off-road</title>
<details>
<p>This mod allows the carrier's wheel barrow to move anywhere. The
carrier unit itself is not bound to roads anyway, but its wheel
barrow is normally preventing it from going off-road.</p>
</details>
<sources url="https://gitlab.com/millimarg/amsel/-/tree/main/mods">
<license files="*" copyright="2024 millimarg" spdxId="CC-BY-NC-SA-4.0" />
</sources>
</meta>
<prepare id="figuren" action="autoselect-figuren" />
<changeset target="@figuren">
<change action="counter:set" select="ANNO/FIGUREN/ENTRY@220/LOGIC/#use-roads" value="0" />
</changeset>
</file>
|
- Ich will unbedingt mithelfen! Jaa Es gibt viel zu tun! Am wichtigsten ist die Dokumentation, denn die existiert bisher kaum.
Ich freue mich auf Rückmeldungen, eure Basteleien und über jegliche Hilfe bei der Dokumentation und beim Kompilieren für Windows!
Viel Spass!