[Tutorial] Modding Teil 1 - Skripte und Autoexec

Sacred 2 Modding Forum.
Hier findet Ihr alles Rund um das Thema Sacred 2 Mods.
Modder können hier Ihre Mods anpreisen und zum Download bereit stellen.

Moderators: XiDragon, BeAFrog

[Tutorial] Modding Teil 1 - Skripte und Autoexec

Postby Copernicus on 27. Oct 2008, 23:19

ICH HAFTE NICHT FÜR DURCH MODDING ENTSTANDENE SCHÄDEN AN EUREM SPIEL! MODDING KANN DIE SPIELBARKEIT UND DIE MÖGLICHKEIT ZU PATCHEN BEEINTRÄCHTIGEN!

Hallo,
mein Name ist, rnicus, Cope-rnicus - ok, Scherz beiseite, das ist schon lange nicht mehr lustig, ich weiß =D

Also, Modding ist bei Sacred 2 - Fallen Angel derzeit ja noch Neuland und ich werde versuchen, durch diesen Post ein wenig Licht ins Dunkel zu bringen. Wir wollen uns nun gemeinsam ansehen, wie man das Spiel modden kann/könnte.

Fangen wir mit der generellen Struktur an:

ACHTUNG: Zum Verstehen und Nachvollziehen dieser Einführung sind zu mindest mittelmäßige Englischkenntnisse und (natürlich) gute Deutschkenntnisse erforderlich!



0 - Modding allgemein

Modding bezeichnet das Modifizieren von Spieldaten, oftmals um das Spielerlebnis zu ändern. Um zu modden sind zu Anfangs meist keine Programmierkenntnisse benötigt. Generell gilt beim Modden folgendes: Egal was du machst, lege vorher eine Sicherheitskopie ("Back-Up") an! Auch ist es sehr geschickt, wenn man die eigenen Mods so erstellt, dass man sie leicht an- und ausschalten kann und dass sie möglichst leicht zu installieren bzw. deinstallieren sind. Auch ist es erstrebenswert, dass möglichst wenige Originaldateien angerührt werden, so dass man trotzdem noch das Originalspiel (oftmals auch als "Vanilla" bezeichnet) spielen kann. Aber jetzt genug der Allgemein Bildung, es wird nun etwas spezifischer...



1 - Skripte in Sacred 2

Für Sacred 2 gilt (meinen bisherigen Erkenntnissen nach) bis jetzt der Grundsatz, dass sich alles relevante für Änderungen der Spielmechanik im Ordner "Scripts" (dieser ist sich im Sacred 2 Installationsverzeichnis) befindet; hier findet man sämtliche Skripte (in LUA geschrieben), die den Spielablauf regeln.
Im Scripts-Ordner finden sich einige Skripte, sowie vier Unterordner, diese sind namentlich "Client", "Particle", "Server" und "Shared", diese enthalten wiederum einige Skripte. Die vier Unterordner stehen für verschiedene Skriptkategorien:
Im "Client"-Ordner sollten sich sämtlich Skripte befinden, die vom Client ausgeführt werden; analog dazu befinden sich im "Server"-Ordner alle Skripte, die vom Server ausgeführt werden; im "Shared"-Ordner sollten alle Skripte abgelegt sein, die sowohl vom Server als auch vom Client ausgeführt werden. Der letzte Ordner, "Particle" enthält Partikel-Effekte und ist gänzlich uninteressant für uns.
Dem aufmerksamen Leser mag aufgefallen sein, dass ich immer zu geschrieben habe, dass die Skripte in den einzelnen Ordner liegen sollten, doch leider ist dem nicht so; zum Teil finden sich Skripte, die eigentlich im "Shared"-Ordner hätten sein sollen, im "Server"-Ordner. Wenn man genau herausfinden will, welches Skript von wem ausgeführt wird, so sollte man die Datei "autoexec.txt" lesen!



2 - Die Datei "autoexec.txt"

Im Ordner "Scripts" gibt es eine "autoexec.txt"-genannte Datei - auch wenn die Dateiendung auf eine Textdatei schließen lässt, ist es ein Skript (das trifft für alle Skripte in Sacred 2 zu!). Wer weiß, was ein autoexec-Skript ist, kann die nächsten Zeilen getrost überspringen.
Das Wort "Autoexec" ist eine moderne Wortschöpfung, die sich aus dem griechischem Wort "auto", was "selbst" bedeutet, und der Kurzform des Englischen "execute", was so viel wie "ausführen" bedeutet ("ausführen" im Sinne von "Ein Programm ausführen" oder "Einen Befehl ausführen"), zusammensetzt. Eine "Autoexec"-Datei wird also automatisch beim Start des Programmes, in diesem Falle Sacred 2, ausgeführt. Es ist also sinnvoll, alle Aktionen, die direkt beim Start des Programms abgewickelt werden sollen und über ein Skript geregelt werden in diese Datei hineinzuschreiben.

In der Autoexec von Sacred 2 werden im Grunde genommen nur andere Skripte aufgerufen; um die Datei im Einzelnen zu verstehen sind seichte LUA-Kenntnisse von großem Vorteil, aber nicht zwingend nötig, das meiste ergibt sich aus dem Zusammenhang. Im ersten Teil der Datei findet sich genau eine Skript-Datei, die von der Autoexec ganz zu Anfang vom Client aufgerufen wird, da diese wichtig für die Funktionalität der anderen Skript-Dateien ist. Im zweiten Teil der Autoexec werden alle Skripte aufgelistet, die sowohl vom Clienten, als auch vom Server ausgeführt werden, im dritten Teil der Datei finden sich die Skripte, die nur vom Clienten ausgeführt werden, im vierten Part schließlich die Skripte, welche ausschließlich vom Server ausgeführt werden.



3 - Sonstige Skript-Dateien im Scripts-Ordner

Im Scripts-Ordner finden sich natürlich noch mehr Dateien, auf die ich nun kurz eingehen will. Fangen wir alphabetisch an:
In der Datei "behaviour.txt" ("Behavior" = engl. "Verhalten") werden die Verhaltensweisen von Gegnern und anderen NPCs im Spiel kontrolliert. In diesem Skript habe ich mich bisher noch nicht weiter umgesehen.
In der Datei "genMipMapInfo.txt" wird die Erstellung von MipMaps geregelt. Wenn man von dem Thema nichts versteht ist es uninteressant, von MipMaps hab ich auch keine Ahnung :D.
In der Datei "heightmap.txt" wird die Interpretation von Heightmaps bestimmt, das sollte ohne Mapeditor allerdings irrelevant sein.
In der Datei "landscape.txt werden Landschaften "definiert", auch das ist ohne einen Mapeditor herzlich sinnlos, so scheint mir.
In den Dateien "options_readme.txt" und "optionsDefault.txt" finden sich Optionen für Sacred 2, davon würde ich an eurer Stelle einfach die Finger weglassen.
Was der Sinn hinter den Dateien "roadmap.txt und "startposition.txt" (Letztere ist leer! Kein Inhalt!) ist, hat sich mir noch nicht ganz eröffnet.
Wie man sieht, sind diese Skriptdateien nicht unbedingt das, was uns interessiert, aber es gibt ja zum Glück noch einige Unterordner ;).

TO BE CONTINUED.
Feedback erwünscht.
Copernicus
 
Posts: 11
Joined: 27. Oct 2008, 11:51
Location: Deutschland

Return to Sacred 2 Moddingecke

Who is online

Users browsing this forum: No registered users and 3 guests

cron