Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Diablo 2 > Diablo 2 Programming
You last visited: Today at 11:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[D2NT] Anpassen der Spielnummerierung

Discussion on [D2NT] Anpassen der Spielnummerierung within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old   #1
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
[D2NT] Anpassen der Spielnummerierung

Hallo zusammen,

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...
Da das hier ja weniger eine Bastelanleitung, als viel mehr informativ werden soll, gehe ich im folgenden auf die Farblich hervorgehobenen Elemente ein.

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.......
Das Wirkung dieser Änderung ist nun, dass keine Formatierung der Spielnummer mehr stattfindet.
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

Attached Files
File Type: rar Tweaked D2NT Manager.rar (118.5 KB, 49 views)
Muddy Waters is offline  
Thanks
10 Users
Old 03/05/2011, 14:19   #2
 
kal_el's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 7,310
Received Thanks: 2,205
... und wenn ich jetzt anstatt
Quote:
%.s.-.%.0.2.d...
schreiben würde
Quote:
%.s.-.%.0.3.d...
geht´s dann 3-stellig?
unendlich ist natürlich eh besser, aber nur interessehalber.
kal_el is offline  
Old 03/05/2011, 14:26   #3
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Ja genau, dann ginge es bei 001 los und würde bis 999 hochlaufen, wobei auf 999 dann 000 folgen würde.

Lg
Muddy
Muddy Waters is offline  
Thanks
3 Users
Old 03/07/2011, 15:03   #4

 
lanara's Avatar
 
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
Muddy
lanara is offline  
Old 03/07/2011, 23:53   #5
 
Tyon's Avatar
 
elite*gold: 0
Join Date: Jul 2006
Posts: 1,440
Received Thanks: 525
Wie müsste das Ganze dann aussehen, damit ich den Bindestrich entferne?

Edit: Hat sich erledigt war doch simpler als gedacht. KukBot anfaken *yea*
Tyon is offline  
Old 03/10/2011, 16:40   #6


 
onkelxlc's Avatar
 
elite*gold: 75
Join Date: May 2009
Posts: 988
Received Thanks: 91
Komisch.
Also ich hab deinen Tweaked manager in mein Bot kopiert.
Aber nach Spiel 99 geht er in channel schreibt next game is XXXXbaal-100
und macht ein spiel auf das xxxxbaal-0 heisst

€: Im channel schreibt er Next game is xxxxbaal-05 er macht aber xxxxbaal-5 ohne 0 oO
onkelxlc is offline  
Old 03/10/2011, 21:57   #7
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by onkelxlc View Post
Komisch.
Also ich hab deinen Tweaked manager in mein Bot kopiert.
Aber nach Spiel 99 geht er in channel schreibt next game is XXXXbaal-100
und macht ein spiel auf das xxxxbaal-0 heisst

€: Im channel schreibt er Next game is xxxxbaal-05 er macht aber xxxxbaal-5 ohne 0 oO
Grundsätzlich merke ich mal an, dass diese Lösung recht theoretischer Natur ist und von mir nicht in der Praxis getestet wurde.
Es könnte durchaus sein, dass das gar nicht funktioniert.

Dass die Spiel Ansagen damit nicht funktionieren ist jedoch klar, da diese schließlich aus dem Namen des letzten Spiels abgeleitet werden und sich dabei nach dem D2NT Standard Format richten.
Um das zu ändern müsste man die Funktionen, die den Spielnamen herleiten entsprechend auf das neue Format anpassen.

Lg
Muddy
Muddy Waters is offline  
Old 03/11/2011, 16:54   #8
 
kal_el's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 7,310
Received Thanks: 2,205
ich hab einfachmal nur probiert und das genutzt
Quote:
%.s.-.%.0.3.d...
um zu sehn was passiert.
er macht game-001
bis
game-099
dann folgt
game-000
dann gehts wieder weiter mit
game-001
das schreibt er auch so ins game create fenster.

im manager -common log zählt er aber durch 101, 102 ....
kal_el is offline  
Old 03/11/2011, 17:20   #9
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Unhappy

Schade eigentlich, in dem Fall ist die Sache natürlich witzlos. :'(

Ich werde den Text bei Zeiten mal etwas anpassen.

Die Überschrift passt schließlich immernoch, Anpassen der Nummerierung geht ja, nur eben nicht so, wie wir es gerne hätten.

In dem Fall müssen wir wohl doch warten, bis sich der nette Herr aus Korea erbarmt und den Quellcode rausrückt.

Lg
Muddy
Muddy Waters is offline  
Old 03/11/2011, 18:36   #10
 
kal_el's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 7,310
Received Thanks: 2,205
und was machte das da?
war aber fürn vorgänger nt
->
kal_el is offline  
Old 03/11/2011, 20:43   #11
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by kal_el View Post
und was machte das da?
war aber fürn vorgänger nt
->
Sieht für mich nach kurzem Überfliegen nach einem relativ simplen Ansatz aus, um Spiele im Channel anzusagen, mehr allerdings nicht.

Man könnte das ganze natürlich auch mit nem Workaround angehen, bei dem man einfach die komplette Spielerstellung selber umsetzt, und das nicht vom Manager machen soll.
Allerdings würde dann auch nichts mitgezählt, wirklich elegante wäre so eine Lösung darum nicht.

Lg
Muddy
Muddy Waters is offline  
Old 03/15/2011, 23:29   #12
 
elite*gold: 0
Join Date: Jul 2006
Posts: 469
Received Thanks: 235
Quote:
Originally Posted by Muddy_Waters View Post
Allerdings würde dann auch nichts mitgezählt, wirklich elegante wäre so eine Lösung darum nicht.
Was wird denn momentan mit gezählt?
ldevil is offline  
Old 03/15/2011, 23:54   #13
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by ldevil View Post
Was wird denn momentan mit gezählt?
Beispielsweise die Anzahl der Runs.

Die wäre bei nem Workaround vermutlich 0.

Auch wenn ich sagen muss, dass ich es mir noch nicht genau angeschaut habe, meine Hand lege ich für die Aussage daher vorerst nicht ins Feuer.

Lg
Muddy
Muddy Waters is offline  
Old 03/16/2011, 14:58   #14


 
onkelxlc's Avatar
 
elite*gold: 75
Join Date: May 2009
Posts: 988
Received Thanks: 91
Hat vielleicht sonst noch jemand ein versuch da, dass der bot nach 99 mit 100.101,102 usw weiter macht
onkelxlc is offline  
Old 03/16/2011, 22:16   #15
 
speCt0R's Avatar
 
elite*gold: 0
Join Date: Dec 2010
Posts: 451
Received Thanks: 63
sehr geil muddy!

thX
speCt0R is offline  
Reply


Similar Threads Similar Threads
Dmg bei Mobs anpassen?
04/23/2011 - Metin2 Private Server - 3 Replies
Also ich wollt mal den dmg von den Zombieviechern erhöhen, hab ich auch gemacht, doch auch wenn dort steht Dmg: 900-1200 machen sie mir ingame immer nur 1-10 Dmg -.- (Ja, ich hab reboot gemacht!) Auch wenn ich meine Rüstung komplett ausziehe ändert sich der dmg nicht! Hat jemand ne Lösung?
NPC's anpassen
10/13/2010 - Metin2 Private Server - 7 Replies
Heihoo, bin grade dabei die Shops auf meinem Pserver anzupassen. Leider weiß ich nicht wie ich die Preise von bsp. einem Seelenstein ändere. In jeden Tutorial sieht man, wie Leute den Preis von Waffen ändern, aber keine Seelis oder Rüssis...:rtfm: Bitte Hilfe :mofo:
[HELP]Sitzhöhe anpassen
09/12/2010 - Metin2 Private Server - 12 Replies
Hiho, da ich für meine freunde und mich einen kleinen PServer eingerichtet habe möchte ich mich nun neuen reittieren widmen dafür wollte ich zunächst einfach das normale pferd ersetzen das hab ich auch gemacht, doch leider is mir dabei aufgefallen dass die sitzhöhe nicht angepasst ist. Nun wollte ich fragen ob jemand hier vllt eine lösung hätte? THX an alle die mich ein stück weiterbringen!
dll. anpassen
05/23/2009 - Kal Online - 0 Replies
hi liebe elitepvper´s ich habe folgende frage: ist es möglich eine dll. an meinem system (hardware) anzupassen??? wenn ich z.b. den attackhack von kalhacker9000 benutze bekomme ich immer engine.exe fehler, doch mit dem attackhack von meak1 jedoch nicht. ist es möglich für ein anfänger eine dll an meinem system anzupassen??? wenn ja mit welchen programm und wie geh ich am besten vor??? ich versuche das schon seit tagen..
Helme anpassen
08/02/2007 - World of Warcraft - 2 Replies
sers, hab per sufu leider nix hierzu gefunden. habe atm meinen ud -> n811 gechanget aber leider sitzt da der helm nicht ganz wie er sollte :rolleyes: also wollte mal fragen ob es irgendswo nen kleinen guide gibt um die helme an gechangten models anzupassen oder ob es mal jemand erklären kann? wäre super doll Mfg



All times are GMT +1. The time now is 11:37.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.