anbei möchte ich eine kleine Anleitung geben, wie man das Format der Spielnummerierung für D2NT 3.1 anpassen kann.
Da es sich hier über eine nachträgliche Änderung der D2NT Manager.exe handelt, welche bei sämtlichen D2NT Mods identisch ist, gilt das hier gezeigte ebenfalls für sämtliche Versionen.
Wer die Änderungen selber durchführen und nicht auf meinen Anhang zurückgreifen möchte, dem sei gesagt, dass das nachträgliche Ändern einer compilierten Anwendung eine recht sensible Sache ist, bei der kleinste Fehler dazu führen können, dass sich die Anwendung nach der Änderung nicht mehr ausführen lässt.
Sofern ihr also selber Hand anlegt, experimentiert nach Möglichkeit mit einem Backup.
Zunächst mal benötigt ihr einen Hex Editor. Eine freeware Version davon findet ihr beispielsweise
. Es gibt aber beispielsweise auch ein Hex Editor Plugin für Notepad++, was für diese einfachen Änderungen mehr als ausreichend ist.Jetzt öffnet ihr das Backup eurer D2NT Manager.exe.
Was ihr jetzt seht, ist der binäre Inhalt der Anwendung in einer Darstellung aus Hexadezimalzahlen. Auf der rechten Seite findet ihr ausserdem die ASCII Darstellung dieser Hexadezimalzahlen.
Wie man sich leicht Vorstellen kann, gestaltet sich die Suche hier als schwierig, es sei denn man weiss sehr genau, wonach man eigentlich sucht, oder kennt den Offset der für die Anpassung wichtigen Position.
In dem Fall habt ihr Glück, weil ihr den Offset der anzupassenden Zeile kennt, dieser lautet nämlich 0x31590.
Bewegt man sich nun zu diesem Offset, trifft man auf folgende Zeile:
Code:
Offset 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ASCII Text ----------------------------------------------------------------------------------- 00031590 25 00 73 00[ 2D 00 25 00 30 00 32 00 64 00 00 00 %.s.-.%.0.2.d...
25 00 73 00 (%.s.) - Diese ersten vier Bytes werden durch den String ersetzt, welcher im Profil in der Textbox mit dem Label Room bzw. Game Name angegeben wurde.
2D 00 (-.) - Das vierte und fünfte Byte belegt ein konstantes Zeichen, welches hinter dem Spielnamen eingefügt wird. In diesem Fall ein Bindestrich.
25 00 30 00 32 00 64 00 (%.0.2.d.) - Womit wir beim eigentlich interessanten Teil dieser kleinen Abhandlung wären. Das 8. bis 14. Byte belegt ein Ausdruck, der durch die Spielnummer ersetzt wird und zusätzlich noch eine Zahlenformatierung enthält.
Die Formatierung wird durch das "02" ausgedrückt. Dieser Ausdruck legt fest, dass die Ausgabezahl immer zwei Ziffern hat und dass bei weniger Ziffern mit dem Zeichen '0' aufgefüllt wird.
Somit ist es auch dieser Formatierungsausdruck, der dafür sorgt, dass nach Spiel Nummer 99 wieder bei 00 begonnen wird.
Die Formatierung geht auf die C Funktion printf() zurück, eine Referenz findet sich
.Um das zu ändern machen wir das denkbar einfachste: Wir entfernen diese Formatierung komplett. Den ganzen Formatierungs String stört diese Änderung wenig, da wir zum einen den Anfangsoffset des Strings unberührt lassen und nach wie vor das Ende des Strings durch ein Byte mit dem Wert Null gekennzeichnet wird.
Führt man diese Änderung durch, sollte die Zeile danach so aussehen:
Code:
Offset 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ASCII Text ----------------------------------------------------------------------------------- 00031590 25 00 73 00 2D 00 25 00 64 00 00 00 00 00 00 00 %.s.-.%.d.......
Somit hat das erste Spiel die Nummer 1 und wird danach bis ins unendliche inkrementiert (natürlich nur theoretisch, vorher gäbe es einen Integer Überlauf).
Das Nutzen dieser veränderten Formatierung stellt aber gewisse Anforderungen an den Nutzer.
Durch die fehlende Formatierung ist die konstante Anzahl von zwei Ziffern nicht mehr gegeben.
Diablo 2 Spielnamen dürfen Maximal 15 Zeichen lang sein.
Gehen wir nun davon aus, dass Zahlen mit mehr als 4 Ziffern unrealistisch sind, kommen wir zu dem Schluss, dass 5 Zeichen für Ziffern und Trennzeichen ('-') eingeplant werden müssen.
Damit darf der eigentliche Spielname eine Länge von 10 Zeichen auf keinen Fall überschreiten!
Im Anhang findet ihr eine entsprechend veränderte D2NT Manager.exe, falls ihr euch die Änderung selber nicht zutraut.
Lg
Muddy






