Diablo 2 Modding Guide – Fix des Critical Hit Bugs

So, nachdem Euch TigerSeele jetzt grundlegend in die Geheimnisse der Hex-Editiererei eingeführt hat, wollen wir mal einige kleine Beispiele durchexerzieren. Falls ihr bis jetzt noch nicht so richtig den Durchblick habt, keine Angst, man muss die Sache einfach ein paar Mal gemacht haben. Bevor ihr jedoch loslegt, noch zwei kleine Hinweise:

1. Legt unbedingt Sicherheitskopien der D2Game.dll und der D2Client.dll an! Wenn ihre die beiden erst mal vermurkst habt, ist es schwer sie wieder zu reparieren. Dann hilft meist nur noch der Download einer sauberen Datei aus dem Internet, bzw. eine komplette Neuinstallation von Diablo 2 und LoD (dauert etwa ne halbe Stunde). Und glaubt mir, spätestens nach dem zweiten Mal macht das keinen Spaß mehr, ich spreche da aus Erfahrung ;).
Sinnvoll ist es auch, die Sicherheitskopien schön weit weg zu verstecken. Mir ist es mal passiert, dass ich mich in meinem eigenen Verzeichnis verirrt hatte und versehentlich die Backups editiert hab – das dauert ne Weile, bis man kapiert hat, was verkehrt gelaufen ist.

2. Achtet darauf, dass ihr das Richtige an der richtigen Stelle verändert! Die dll-Dateien sind in Hinsicht Tippfehler gnadenlos und crashen das Spiel oftmals schon bei einem einzigen falsch eingegebenen Wert, also kontrolliert zweimal dass auch alles so ist, wie es sein soll. Nichts ist schlimmer als wenn sich LoD aufhängt und ihr keine Ahnung habt warum, denn die Fehlersuche ist in den unübersichtlichen dll-Dateien schwierig.

So, jetzt steigen wir aber endlich ein und beginnen Mal mit einem recht einfachem Beispiel: Wir reparieren den Critical-Hit-Bug! Findige Köpfe beim Phrozenkeep haben schon vor einiger Zeit herausgefunden, wie man diesen behebt, also sollte uns das auch gelingen. Schmeißt euren Hexeditor an und öffnet damit die D2Game.dll! Was ihr dann seht, sollte in etwa so hier aussehen:

Nun müsst ihr als nächstes zu der Adresse springen, an der die Codesequenz des Critical Hit beginnt. Wenn ihr die Version 1.09d (die derzeit aktuelle) von LoD benutzt, lautet diese Adresse 80AED. Für die Version 1.09b, die von einigen Spielern auch noch verwendet wird, ist dies Adresse 805FD. Um dorthin zu gelangen nutzt ihr am besten die „Goto“-Funktion, die üblicherweise irgendwo in der Funktionsleiste am oberen Rand des Editors (oft unter „Edit“/“Bearbeiten“) versteckt ist.

Lasst Euch nicht dadurch irritieren, dass bei mir ein $-Zeichen vor der Adresse steht, das dient bei diesem Hex-Editor nur dazu damit das Program weiß dass die Adresse hexadezimal ist.

Wenn ihr alles richtig gemacht habt, müsste der Cursor jetzt irgendwo ziemlich in der Mitte der Datei sein (achtet auf die Scrollleiste). Der Code ab dieser Adresse lautet:

für 1.09d: BA 64 00 00 00 8D 4E 2C E8 C6 43 04 00 83 F8 64

für 1.09b: BA 64 00 00 00 8D 4E 2C E8 F6 41 04 00 83 F8 64

Nun gilt es, diesen „verbuggten“ Code durch den korrigierten zu ersetzen. Achtet darauf, dass ihr wirklich den vorhandenen Code überschreibt und nicht einfach den neuen einfügt. Das würden nämlich sämtliche folgenden Daten verschieben und das Spiel zum Absturz bringen, sobald ihr es startet. Eventuell müsst ihr bei eurem Hexeditor bestimmte Einstellungen ändern, damit dieser auch wirklich überschreibt.

Ersetzt den alten Code durch diesen hier:

für 1.09d: 6A 64 5A 8D 4E 2C 50 E8 C7 43 04 00 5A 3B C2 90

für 1.09b: 6A 6F 5A 8D 4E 2C 50 E8 F7 41 04 00 5A 3B C2 90

Das Ergebnis sollte dann so aussehen:

So, jetzt speichert das Ganze und packt eure editierte D2Game.dll ins Diablo 2 Hauptverzeichnis, wenn ihr sie nicht schon direkt dort bearbeitet habt. Startet dann einfach ein neues Spiel mit einem Barbaren, levelt ihn hoch auf Level 2 und gebt einen Skillpunkt in die Axt-Beherrschung. Voilà…

Jetzt sollte der Critical Hit der Axt-Beherrschung endlich so funktionieren, wie es ursprünglich gedacht war. Wen ihr es bis hier geschafft habt – Gratulation! Ihr habt soeben eure ersten Schritte auf dem faszinierendem Gebiet des Hexeditierens gemacht.

Guide von Red Havoc

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert