Heute wollen wir einmal ein neues Set erstellen. Um das Ganze etwas interessanter zu machen, erschaffen wir ein Set, das sowohl auf bestehenden als auch auf einem völlig neuen Gegenstand basiert.
Da ich noch immer ein großer Diablo 1 Fan bin und vor allem Zhar the Mad mochte bezieht sich dieses Beispiel auf ein Set, welches dem durchgedrehtem Advokaten Zhar gewidmet ist.
Zunächst einmal müssen wir nach dem üblichen Verfahren folgende Dateien aus der patch_d2.mpq mit MPQ-View extrahieren:
Data-File Pfad
d2dataexp.txt – data\global\excel\armor.txt
d2dataexp.txt – data\global\excel\setitems.txt
d2dataexp.txt – data\global\excel\weapons.txt
diabdata.txt – data\local\LNG\DEU\patchstring.tbl
Dann brauchen wir einige Grafiken, um das neue Set erschaffen zu können. Unter anderem auch die für ein komplett neues Item, in unserem Beispiel eine Robe wie sie in Diablo 1 vorkam:
Außerdem brauchen wir noch folgende Grafiken:
Was nun kommt ist eine detaillierte Beschreibung zur Erschaffung des neuen Grund-Items. Danach folgt die Beschreibung zur Erschaffung des neuen Sets.
1. Die Robe:
Dazu laden wir die „amor.txt“ per Microsoft Excel. Man kann relativ beliebig neue Items erschaffen:
Einfach einen beliebigen Namen angeben (der wird ohnehin nicht im Spiel angezeigt werden), als Version 100 (neueste) und als „compactsave“ 0 eintippen. Der nächste Wert gibt, wie ganz oben im File ablesbar, die Seltenheit des Items an. Da ein Stück Stoff nichts besonderes ist gebe ich 1 ein, den niedrigstmöglichen Wert. Der nächste Wert muss stets 1 betragen, da das Item sonst nicht „spawnable“ ist, d.h. es kommt schlicht nicht im Spiel vor. Die nächsten beiden Werte (5 und 7 hier) stehen für die jeweilige Maximal- und Minimalverteidigung, die dieses Item bieten kann. In unserem Beispiel wird eine normale Robe also stets zwischen 5 und 7 Verteidigung haben.
Die nächsten beiden Werte sind nicht weiter wichtig. Der Wert unter „reqstr“ erklärt sich vermutlich selbst, diese Stärke ist nötig, um das Item zu tragen. Einen Stofffetzen überzuwerfen sollte keine allzu schwere Übung sein.
Dann folgt die Blockrate, welche lediglich Schilden vorbehalten ist, der nächste Wert legt die „Lebenspunkte“ des Items fest. Der nächste Wert legt fest, wann das Item als zerbrochen gilt, grundsätzlich bei 0. Und schließlich noch das Itemlevel, welches festlegt, bei welchen Monstern das Item gefunden werden kann.
Zunächst der Wert, der das benötigte Charakterlevel angibt (Stofffetzen …), dann der Preis, den dieser Laken bei einem Händler kostet, der Preis eines Lumpens beim Glücksspiel und der Code, den man diesem Item zuweist. Der Code ist extrem wichtig, wenn wir später das Set selbst erstellen! Die nächste Zelle kann frei bleiben, da unsere Robe unmagisch sein wird (wie alle normalen Items). Der nächste Wert ist ebenfalls unwichtig. In den folgenden Spalten werden dem Item weitere Codes zugewiesen, welche jedoch für uns nicht weiter wichtig sind.
Die ersten sechs Zellen: Siehe oben. Erst beim siebten wird es wieder interessant: Dieser gibt die Breite des Items im Inventar an. Unsere Robengrafik hat die Breite 2 und die Höhe 3 und so wird es auch eingetragen.
Die erste Zelle gibt wie oben beschrieben die Höhe des Items an. Die nächste Zelle gibt an, ob das Item über ein eigenes Inventory verfügt, wie Gürtel bspw.. 1 steht hierbei für „Nein“, während 0 für „Ja“ steht, wie man gut erkennen kann, wenn man die Gürtel mit anderen Rüstungen vergleicht. „gemsockets“ gibt die Zahl der Sockel an, die dieser Gegenstand maximal haben kann, wir nehmen mal drei, wie bei den meisten Rüstungen. Bei der nächsten Angabe musste ich mich aus Unwissenheit an die anderen Werte der Rüstungen halten. Dann folgen die Grafikangaben: Zunächst die Grafik, die das Item im Spiel haben soll, wenn es bspw. am Boden liegt oder gerade auf den Boden fällt (daher „flippy“, denke ich). „Inv“ gibt die Grafik im Inventory an, „uniqueinv“ die Grafik eines auf diesem Item basierenden Uniques.
Die erste Zelle hier funktioniert ähnlich wie die „uniqueinv“, nur das hier die Grafik für das Set-Item, basierend auf dem normalen Item, angibt. Die folgenden Spalten geben an, wo das Item getragen werden kann. Als Rüstung machen wir nur eine 1 bei Torso, sodass die Rüstung auch wirklich nur als Rüstung getragen werden kann.
Die folgenden Werte sind bis zur fünften Zelle völlig unwichtig, in der sechsten wird erneut angegeben, wo das Item getragen werden kann und in der letzten, der Sound, den das Item macht, wenn es auf den Boden fällt (hier das Rascheln von Kleidung, einfach mal durchprobieren!).
Bis hin zur Spalte „durwarning“ sind alle Werte unwichtig für eine Rüstung. In dieser Zelle geben wir an, ab welchem Wert diese kleine Figur am Bildschirmrand auftaucht und uns klarzumachen versucht, wie schäbig wir damit aussehen.
Wieder einige Spalten sind nur für Waffen oder Schilde (Schaden beim Paladin) benötigt, was die Felder „gemoffset“ und „bitfield 1“ angeht bin ich leider überfragt.
Schließlich folgen die Daten, bei welchen Händlern dieses Item zu erwerben ist und in welchen Varianten. Der letzte Wert, der noch von Bedeutung ist, steht in der letzten Spalte, da muss eine 1 hinein, fertig.
2. Das Set:
Zur Erschaffung des neuen Sets benötigen wir die Dateien „weapons.txt“, „setitems.txt“ und „patchstring.tbl“. Erstere wird mit Excel gestartet.
Zunächst einmal muss man bei jedem Set grundsätzliche Angaben machen, denen die Angaben jedes einzelnen Items folgen.
Als erstes wird, wie schon bei der Robe, erst einmal ein Name eingegeben. Dieser Name kann wieder vollkommen beliebig sein, da er so nicht im Spiel auftauchen wird.
Dann wird die Versionsnummer angegeben, 100, damit es mit LoD kompatibel ist.
Dem folgt das Level des Sets, die Anzahl an Items, die das Set umfasst, ein Wert von dem ich nichts weiß und schließlich „transformcolor“. Dieser Wert gibt an, in welcher Weise das gesamte Set eingefärbt ist, wie z.B. die violetten Items von „Sander’s Dummheit“. Hier nehmen wir den Wert 3, welcher schwarz entspricht („Natalya’s Hass“).
Dann geht es auch schon ans erste Item. Die Grafik des Knochenstabes, die wir für den Stab des Zhar bestimmt haben hat das Format 2*4, darum benutzen wir dafür den „War Staff“ („wst“), welcher das gleiche Format hat.
Dummerweise wird dieses Item bereits für ein anderes Set, Arcanna’s Tricks. Aber das soll kein Problem darstellen, wir suchen einfach den passenden Wert (zweites Item des Arcanna-Set’s) und ersetzen „wst“ durch „lst“ („Long Staff“). Nun passt es wieder mit dem Format, doch bevor wir mit dem Zhar-Set weitermachen können, müssen wir die Stabgrafik auch dem „War Staff“ zuweisen.
Aus diesem Grund müssen wir die „weapons.txt“ öffnen und den „War Staff“ suchen, wo man die beiden Werte für Uniques und Sets in den Namen der Grafik umbenennt. Jetzt ist dem „War Staff“ die Grafik für das Zhar-Set zugewiesen. Zurück zur „setitems.txt“.
Nach der Angabe, welcher Itemtyp das erste Set-Item ist, wird erneut ein recht unwichtiger Name angegeben. Danach folgt ähnlich wie bei normalen Items Seltenheit, unwichtig, Level benötigt zum Tragen und ein weiterer Wert, dessen Zweck sich mir nicht ganz erschließt. Ich benutze den scheinbar für Sets üblichen Wert von 5.
Dem folgt der Wert des Items und dann beginnen die Eigenschaften des Items. Sämtliche Eigenschaften können selbst generiert werden.
Anschließend verfährt man ähnlich bei der Robe (Code „rob“) und einem Amulett (Code „amu“). Ab der Spalte PCode2 werden die Boni aufgelistet, die der Träger von mehreren oder allen der Items nach und nach erhält.
Nun folgt der vorletzte Schritt, die Benennung der Items im Spiel selbst.
Dazu startet man die patchstring.tbl mit dem „Diablo 2 Table Editor“ und fügt folgende Werte mit dem +-Button hinzu:
rob – Bezeichnung der Robe im Spiel
<Name des Sets im TXT-File> – Name des Kompletten Sets.
<Name der einzelnen Set-Komponenten im TXT-File> – Name der jeweiligen Teile.
Klickt also auf die jeweiligen Punkte und gebt den Wert ein, der im Spiel erscheinen soll.
Für Umlaute müsst ihr folgendes verwenden:
ä – ä
ö – ö
ü – ü
In unserem Beispiel könnte das dann wie folgt aussehen:
Nun muss nur noch alles so installiert werden, dass das „Mod“ auch spielbar ist. Dazu folgt man am besten den Anweisungen im Anfängerguide.
Wenn alles geklappt hat sollte das Ergebnis dann in etwa so aussehen:
Guide von Skeleon