• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

MPQ2K und -direct -txt Modus - Newbie-Guide

RedHavoc

Well-known member
Ex-Staffmember
Registriert
6 April 2002
Beiträge
2.144
Punkte Reaktionen
0
Da in letzter Zeit einige Fragen und Probleme mit dem Erstellen von neuen .mpq Archiven bzw. dem Einfügen von Dateien in diese aufgekommen sind, werd ich hier mal kurz und möglichst einfach die wichtigsten Sachen zusammenstellen.

Es gibt prinzipiell zwei Wege, die an Dateien vorgenommenen Änderungen im Spiel zur Geltung zu bringen:

  • - mit dem so genannten -direct -txt Modus
    - durch Packen der veränderten Dateien in die originale Patch_d2.mpq
Der -direct -txt Modus kommt ohne irgendwelche Rückpack-Prozesse aus. Stattdessen werden hier die veränderten Dateien in einen genau definierten Verzeichnis abgelegt. Anschließend wird das Spiel mittels einer Parameterangabe in einem veränderten Modus gestartet, der so funktioniert, dass er zunächst in dem oben erwähnten speziellen Verzeichnis nachschaut, bevor er Daten direkt aus den .mpq Archiven lädt. Befinden sich in dem Verzeichnis nämlich Dateien, die das Spiel nutzen wird, werden diese anstatt der aus der .mpq verwendet. Auf diese Weise kann man das Spiel dazu zwingen, die veränderten Dateien statt der originalen zu benutzen.

Das Rückpacken von Dateien in das .mpq Archiv "Patch_d2.mpq" ist die zweite Möglichkeit. Hierbei werden mittels eines Tools (MPQ2k ist nur eines von vielen) die veränderten Dateien in das Archiv eingebunden, gegebenenfalls werden bereits bestehende Dateien durch die neuen überschrieben. Sind die neuen Dateien in die .mpq eingefügt worden, kann man das Archiv in das Hauptverzeichnis von D2 zurückpacken und das Spiel wird dann zwangsläufig die neuen Dateien verwenden.

Was von beiden verwende ich nun? Im Grunde ist das völlig egal. Der -direct -txt Modus ist im Allgemeinen besser zum Testen von Veränderungen, da man einfach nur die modifizierten Dateien in das Verzeichnis kopieren muss und dann das Spiel starten kann. Für fertige Mods ist er ebenfalls praktisch, da man z.B. für Updates oder Bugfixes einfach nur die veränderten Dateien weitergeben brauch, anstatt jedesmal eine neue Patch_d2.mpq. Speziell bei Mods , die große Dateien (Soundfiles, Animationen etc.) enthalten ist das sinnvoll, da es z.B. einen Modem-User schon anstinken kann, wenn er wegen einem kleinen Bugfix nochmal 40 MB neu downloaden muss.
Der Vorteil des Verwendens von veränderten Patch_d2.mpq Archiven liegt in deren Integrität. Der -direct -txt Modus nutzt eine ausgedehnte Ordner-Struktur, die einen Mod-Spieler schnell verwirren kann, wenn er einen Mod downloaded und dann plötzlich haufenweise neue Verzeichnisse sieht. Unter Umständen kommt er dann sogar noch darauf in diesen herumzufummeln und vermurkst dabei etwas. Mit einer einzigen soliden Datei wie der Patch_d2.mpq kann ihm das nicht passieren.
Am verbreitetsten ist eigentlich, während dem Werkeln am Mod in -direct -txt zu arbeiten und den fertigen Mod dann als Patch_d2.mpq zu veröffentlichen.

Wie funktionieren denn nun diese beiden Methoden???

Beginnen wir mal mit dem -direct -txt Modus und nehmen an, dass wir eine beliebige gemoddete .txt Datei ausprobieren wollen. Wir benötigen nun zunächst das spezielle Verzeichnis zum Ablegen unserer Dateien. Es wird im Hauptverzeichnis von Diablo2 erstellt, das ist dort wo die ganzen großen .mpqs (d2data.mpq, d2char,mpq etc.) und die game.exe liegen. Geht also in dieses Verzeichnis und erstellt einen neuen Ordner den ihr "data" nennt. Unter Windows geht das, indem ihr einfach rechtsklickt und dann "Neu" und anschließend "Ordner" wählt. Habt ihr das geschafft, geht ihr in dieses neue Verzeichnis hinein und erstellt darin erneut einen Ordner, diesmal mit dem Namen "global". In diesem wiederum erschafft ihr noch einen Ordner, der diesmal "excel" genannt wird.
Habt ihr alles richtig gemacht, habt ihr jetzt also einen Ordner "data" in eurem D2-Hauptverzeichnis, in diesem Ordner einen weiteren namens "global" und in diesem wiederum einen, der "excel" heißt.
Die Pfadangabe dieser Struktur sollte also irgendwas wie "C:\Diablo II\data\global\excel" sein.

...
___Diablo II
______data
_________global
____________excel

In den excel-Ordner kommen nun immer eure modifizierten .txt-Dateien hinein, kopiert sie einfach dorthin.
Jetzt müssen wir dem Spiel noch irgendwie verklickern, dass wir die Dateien, die dort in diesen Verzeichnissen liegen verwenden wollen. Dazu sucht ihr mal in eurem D2 Hauptverzeichnis die Datei "game.exe" und erstellt davon eine Verknüpfung (Windows: Rechtsklick -> Verknüpfung erstellen). Diese könnt ihr in jedem beliebigen Verzeichnis ablegen und auch ihr Name ist völlig egal. Jetzt aber kommt das Wichtige: Ändert die Eigenschaften dieser Verknüpfung so, dass das Ziel

"<vorhergehender Pfad>\Diablo II\Game.exe" -direct -txt -w

heißt (Leerzeichen bitte so wie hier übernehmen). In Windows geht das wieder sehr einfach durch Rechtsklicken und dann "Eigenschaften", anschließend die Zeile "Ziel" ändern.
Der Parameter "-w" in obiger Zeile ist optional, er sorgt nur dafür dass das Spiel in einem Fenster gestartet wird. Wenn ihr später so richtig am Modden seid, werdet ihr hin und wieder bestimmt eine Fehlermeldung bekommen - damit ihr die auch seht, ist es nötig im Fenster zu spielen.

Wenn ihr nach dem Starten im -direct -txt Modus mal in euer data/global/excel Verzeichnis schaut, werdet ihr dort plötzlich einen Haufen .bin Dateien sehen. Wo kommen die her? Ganz einfach, das Spiel hat sie beim Start selbstständig generiert. Es nutzt nämlich nicht die .txt Dateien, sondern liest grundsätzlich nur .bin Dateien aus. Da ihr über -direct -txt erzwungen habt, dass das Spiel Dateien aus dem neuen Verzeichnis verwendet, dort aber noch keine .bins vorhanden sind, werden die veränderten .txt Dateien und auch die originalen neu als .bin codiert und dort abgelegt. Einmal generiert, werden sie dann immer wieder verwendet.
Ein Hinweis: Wenn ihr eure Dateien erneut verändert und ins "excel"-Verzeichnis kopiert, dann löscht am besten die alten .bins. Zwar aktualisiert das Spiel die Dateien, wenn sich eine .txt verändert hat, manchmal aber funktioniert das nicht richtig und eure Änderungen werden nicht in die .bins übertragen.
Und nochwas: Wenn ihr später Dateien mit MPQ2k in die .mpq einfügt, braucht ihr die .bins. Das Spiel liest keine .txt Dateien und generiert auch nicht innerhalb der .mpq neue Files. Packt immer die zur entsprechenden .txt gehörende .bin in die .mpq, ansonsten gibt´s keinerlei Änderung.

Das Verzeichnis data/global/excel gilt im Übrigen nur für .txt (und .bin) Dateien. Für andere Dateien müsst ihr noch weitere Ordner erstellen und zwar so, dass sie der internen Struktur der .mpq entsprechen. Schaut einfach mal mit MPQView nach, dann seht ihr dass bestimmte Dateien in anderen Ordnern liegen. Inventargrafiken im .dc6 Format z.B. liegen im Verzeichnis data/global/items. Was müsst ihr also tun? Ganz einfach, im Ordner "global" einen neuen Ordner "items" erstellen und eure veränderten Inventargrafiken dort hinein packen. Noch ein Beispiel: Die string.tbl liegt im Verzeichnis data/local/lng/deu. Ihr müsst also im Ordner "data" einen neuen Ordner namens "local" erstellen, in diesem dann wieder einen... und zum Schluss eure editierte string.tbl im "deu" Ordner ablegen.
Immer so, wie auch die Ordner in der .mpq sind.

Das war´s im Grunde zu dem -direct -txt Modus. Die Vorgehensweise ist also immer:

- modifizierte Dateien nach data/global/excel kopieren
- das Spiel über eine Verknüpfung mit den Parametern -direct -txt starten

Eigentlich wirklich leicht, wenn man es einmal raus hat. ;)


Nun zum Einfügen von veränderten Dateien in die .mpq mittels des Tools MPQ2k. Mit diesem leistungsstarken Programm könnt ihr noch eine ganze Menge mehr anstellen, ich werde hier aber nur auf das Packen von Dateien eingehen.

MPQ2k besteht im Grunde aus drei einzelnen Files. Da wäre zum ersten die eigentliche MPQ2k.exe, also das Hauptprogram, dann die Programmbibliothek Storm.dll (stammt von Blizzard selbst und enthält die Routinen zum Auslesen eines .mpq Archives) und schließlich eine weitere Programmbibliothek namens lmpqapi.dll (die stammt von Andrey Lelikov, einem Programmier-Genie, der Blizzards gut verschlüsselte Routinen zum Schreiben von .mpqs geknackt hat und sie in eben dieser .dll niedergelegt hat). Hinzu kommt auch noch StarEdit.exe, um das kümmern wir uns hier aber nicht weiter. Alle vier Dateien sind für MPQ2k nötig.
MPQ2k ist ein so genanntes "Command Line" Programm. Dies bedeutet, dass das Programm beim Start Kommandos oder Parameter von außen erwartet, die man ihm irgendwie mitteilen muss. Einfaches Doppelklicken auf die MPQ2k.exe bringt Euch nicht viel, da ihr da keinerlei Angaben an das Programm übermittelt.

Ich werde Euch hier ne Methode erklären, mit der ich eigentlich seit Beginn an prima gearbeitet habe und noch nie Probleme hatte. Ich verwende eine .bat Datei, um MPQ2k zu starten, sowie eine externe Liste im .txt Format in der die Kommandos stehen, die MPQ2k dann ausführen soll. Diese Liste könnt ihr praktischerweise später immer einfach verändern, wenn ihr andere Dateien packen wollt.

Zuerst erstellt ihr mal eine .txt Datei in dem Verzeichnis, in dem ihr MPQ2k abgelegt habt und benennt diese Datei so um, dass sie die Dateiendung .bat hat. Wie die Datei heißt ist völlig schnurz, ich hab sie Install.bat genannt. Nun editiert ihr die .bat folgendermaßen (Rechtsklick -> Bearbeiten):

Code:
mpq2k s <Anweisungsliste>

Diesen Text schreibt ihr da rein, wobei <Anweisungsliste> die .txt Datei ist, die die ganzen Kommandos enthält. Bei mir heißt sie Install.txt, also sieht mein Eintrag in der Install.bat so aus:

Code:
mpq2k s install.txt
Diese Zeile bewirkt im Grunde nix anderes als MPQ2k zu starten, wobei die Install.txt als Parameterliste genutzt wird.

Jetzt brauchen wir natürlich noch diese Anweisungsliste, erstellt also einfach noch eine .txt Datei im gleichen verzeichnis und nennt sie so wie in der .bat spezifiziert. Bei mir wie gesagt Install.txt. Dort hinein kommen nun alle Anweisungen, die MPQ2k ausführen soll. Ich schreibe hier mal kurz, wie die generelle Struktur davon aussieht.

Code:
O patch_d2.mpq

a <einzufügende Datei> <Pfad und Name der datei in der .mpq>
a ...

c patch_d2.mpq
Schauen wir uns mal alle Kommandos an:

O patch_d2.mpq
Dies öffnet die .mpq Datei für MPQ2k. Das ist wichtig, denn sonst macht das Programm überhaupt nix.

a <einzufügende Datei> <Pfad und Name der Datei in der .mpq>
Mit dieser Anweisung fügt MPQ2k eine Datei in die .mpq ein. Die <einzufügende Datei> muss sich im gleichen Verzeichnis wie MPQ2k befinden. Achtet auf Tippfehler!
Hinter den Namen der Originaldatei kommt der Pfad, unter dem das File in der .mpq abgelegt wird, sowie der Name unter dem es in .mpq gespeichert wird. Hier einige Beispiele, wie sowas ausschauen kann:

Code:
a monstats.txt data/global/excel/monstats.txt

a charstats.bin data/global/excel/charstats.bin

a meine_eigene_monstats.txt data/global/excel/monstats.txt

a town.ds1 data/global/tiles/act1/tristram/town.ds1
Ihr könnt beliebig viele dieser Kommandos untereinander in der .txt Datei schreiben. Achtet auch hier unbedingt auf Tippfehler und den richtigen Pfad!

c patch_d2.mpq
Der Abschlußbefehl, der die geöffnete Datei wieder schließt. Auch dieses Kommando muss immer mit dabei sein.


Jetzt haben wir alles beisammen, was wir brauchen. Gehen wir alles nochmal durch:

1. Packt MPQ2k.exe, Storm.dll, lmpqapi.dll und StarEdit.exe in ein Verzeichnis Eurer Wahl.
2. Packt Eure editierten Dateien ebenfalls in dieses Verzeichnis hinein.
3. Erstellt eine .bat Datei, die MPQ2k mit einer Kommandoliste öffnet.
4. Erstellt eine .txt Datei, die alle Kommandos zum Einfügen eurer geänderten Dateien an die richtige Stelle in der .mpq enthält.
5. Packt nun die ungemoddete Patch_d2.mpq ebenfalls in das Verzeichnis (Achtung, vorher Back-Up machen!).
6. Führt nun die .bat Datei aus und MPQ2k wird alle Kommandos ausführen und (hoffentlich) alle Dateien in die .mpq einfügen.
7. Nun habt ihr eine veränderte Patch_d2.mpq, die eure veränderten Dateien enthält. Die nun einfach ins D2 Hauptverzeichnis packen und dann das Spiel normal starten.

Habt ihr das das erste Mal gemacht, entfallen später natürlich einige Schritte, ihr braucht dann nur noch die entsprechenden Dateien in das Verzeichnis packen und die Anweisungsliste verändern.

Ich kann abgesehen von dem was in diesem Mini-Guide steht auch die excellente Readme von MPQ2k wärmstens empfehlen. Quantam hat sich damit viel Mühe gemacht, wer also keine Phobie gegen Englisch hat, sollte sich das mal zu Gemüte führen.


Noch Fragen oder Kommentare? Immer her damit, der Guide soll Anfängern helfen durchzusehen - wenn noch Sachen unklar sind, einfach hier posten. :)
 
ui schöne Arbeit :keks:

mal sehen, spätestens am Wochenende wird konvertiert :D
 
Zurück
Oben