• 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.

DLL Änderungen [1.10]

Status
Für weitere Antworten geschlossen.

ChaosEnergy2

Guest
DLL Änderungen

Hi Alle,

hier werd ich demnächst mal meine bisherigen DLL Änderungen posten...für Hexedit...

Basis für Alles ist das Book of Lore PlugIn von Myhrginoc aus dem PK

Gibt es hier


Hex Editor Freeware XVI32

Hex Guide auf D2.de (Die Beispiele ignorieren, die sind noch für 109)


Titel ändern
d2win.dll (aus dem Book of Lore PlugIn)
Ein/Ausschalten der Charspezifischen Titel
Offset 1BBCC
01 gegen 00 tauschen für die Original-Titel

Titel stehen an Offset 1BD00
Maximal 14 Zeichen lang müssen mit 2000 enden


PlayersX Mindestwert vorgeben
d2game.dll
Fileoffset 4C4A1

8D 4424 0056 50BA E0C4 C76F gegen

BA 0200 0000 EB24 9090 9090 austauschen für players2, oder

BA 0400 0000 EB24 9090 9090 für players4


PlayersX bis 127 erlauben
d2client.dll (Offset = 32B78)

Code:
32B78 08 <---- ändert 08 in 7F
32B7E 08 <---- ändert 08 in 7F


d2game.dll (Offset = 4C496)

Code:
4C496 08 <---- ändert 08 in 7F


Runenworte in magischen Gegenständen erlauben
d2common.dll Offset 5DA05
04 ist der Original-Wert mit 0A ist definitiv alles freigeschaltet
Magic 05 /Rare 06 /Set 07/ Unique 08 /Crafted 09 und Tempered 0A


Schalter -actX variieren (sehr hilfreich zum MOD testen)
d2game.dll

F8E88 01 -act1 = Level 1 + 1
F8E8C 0F -act2 = Level 15 + 1
F8E90 14 -act3 = Level 20 + 1
F8E94 1A -act4 = Level 26 + 1
F8E98 20 -act5 = Level 32 + 1


Mehr Skillpunkte pro LevelUp
d2game.dll

Bei Offset 4ED59 den Original-Wert 6A00 576A 05 gegen E902 7D0A 00 austauschen.

Danach bei Offset F6A60 folgendes eintragen
BA02 0000 000F AFD7 6A00 526A 05E9 EC82 F5FF

Fettgeschrieben ist die 02 in diesem Fall, was dann 2 Skillpunkte pro LevelUp bedeutet.


Alle Preise für das Glücksspiel sind fix und werden aus der GambleCost Spalte gelesen
d2common.dll Offset 5B384

Werte: 0F84 8E01 0000 gegen E98F 0100 0090 austauschen


Mehr Gegenstände im Glücksspiel Screen
d2game.dll Offset 9ADF3

Wert 0E ändern in 19 ändert von 14 Gegenständen auf max. 25 Gegenstände, sofern genug Platz vorhanden ist


Registerkarte Magic freischalten
d2client.dll Offset D958C

Wert C5 in C6 ändern.
Anschliessend in der Itemtypes.txt in der Spalte StorePage mag eintragen und Euer Gegenstand taucht beim Verkauf auf der neuen Seite auf, sofern Ihr Ihn bei den NPCs anbietet...


Goldmengen im Inventar und in der Kiste
d2common.dll

Offset 81DAC Wert von 04 auf 05 setzen zum verdoppeln der Goldmenge im Inventar (06 zum verdreifachen, usw, nicht zu hoch, sonst kann es negativ werden, getestet bis 08)

Offset 82671 Wert von 04 auf 05 setzen zum verdoppeln der Goldmenge in der Kiste(06 zum verdreifachen, usw, nicht zu hoch, sonst kann es negativ werden, getestet bis 08)


Gegenstände per Rezept benennen ohne Anya Quest
d2common.dll

Bei Offset 8D579 folgendes einfügen:
568B 7424 086A 0168 0000 0001 56E8 F5B1 FCFF 8B84 24B8 0000 008B 4014 5056 E824 B4FC FF5E C224

Anschliessend ab Offset A3984 folgendes eintragen:
79D5 686F

Zum Schluss einen neuen Eintrag anlegen in der properties.txt:

code = inscribe
*done = 1
func1 = 25
*eol = 0

Das inscribe kann nun als modifier in der cubemain.txt benutzt werden, um einem Item einen Namen zu verpassen, oder man droppt zB persönliche UniqueItems (so mach ich es mit meinem Counter-Teddy)


Söldner mit Ringen ,Amulett, Handschuh, Gürtel und Schuhen
Aufgrund der benötigten Grafiken und Anpassungen in der Inventory.txt stelle ich dies als PlugIn zum Download zur Verfügung


Die Urahnen geben wieder volle Exp ohne max 1LvlUp Beschränkung
D2Game.dll Offset 86CAC
Wert 7E in EB ändern

Exp Verhaltens-Grenze vor/nach LvL 25 verschieben
D2game.dll

Offset 92FC2
Wert von 19 auf 07, ermöglicht es sich bereits ab Lvl7 ziehen zu lassen, so das auch Exp dabei rumkommt
Ändert man statt dessen zB auf 30hex (48 dez) kann man prima das Ziehen in Normal unterbinden und die User zum Akt durchspielen zwingen...denn durchrennen lohnt nicht, da kaum Exp :)


SkillMenge der Quests
D2game.dll

Offset 1824B: 01 ==> 02 Book of Skills
Offset 67CF6: 01 ==> 02 Den of the Evil
Offset 7DBE1: 02 ==> 04 Izual


Telekinese wie zu Urzeiten
D2game.dll

Offset E6889h
6A1653E83B500000 gegen
E9A2000000909090 austauschen


Crushing Blow ohne Einfluss des players Schalter
D2Game.dll
Offset D4F08
6A 00 6A 64 53 gegen
E9 B0 00 00 00 austauschen


Malah Quest Belohnung
d2game.dll
offsets:
@83831 value 0A into 14
@8384E value 0A into 19
@83868 value 0A into 1E
Verändert die Questbelohnung von Malah von 10/10/10 in 20/25/30 Resis


Höllenschmiede Quest Belohnung
D2game.dll
Offset: 10B754
Runen sind sonderdrops die ersten 11 sind Normal, dann 11 Albtraum, die letzten 11 sind Hölledrops
danach gems,makellose,perfekte dahinter
Wichtig, nur 3 stellige CODEs nutzen


Quahl-Kehk Quest Belohnung
In D2Game.dll
Offset: 0010CD78
Die ersten 3 Runeneinträge sind von Quahl-Kehk`s Quest


Cain kassiert immer für Identifikation
D2game.dll
offset/code/assemblerbefehl
00099D1B EB 42 JMP SHORT 00099D5F
00099D1D 90 NOP
00099D1E 90 NOP
00099D1F 90 NOP
00099D20 90 NOP
00099D21 90 NOP
00099D22 90 NOP
00099D23 90 NOP
.
.alles dazwischen auch 90
.
00099D5A 90 NOP
00099D5B 90 NOP
00099D5C 90 NOP
00099D5D 90 NOP
00099D5E 90 NOP
00099D5F 8D04BF LEA EAX,DWORD PTR DS:[EDI+EDI*4]

D2client.dll
offset/code/assemblerbefehl
00056A51 EB 26 JMP SHORT 00056A79
00056A53 90 NOP
00056A54 90 NOP
00056A55 90 NOP
00056A56 90 NOP
00056A57 90 NOP
00056A58 90 NOP
.
. alles dazwischen 90
.
00056A74 90 NOP
00056A75 90 NOP
00056A76 90 NOP
00056A77 90 NOP
00056A78 90 NOP
00056A79 BE 01000000 MOV ESI,1


Cain Befreiung, Akara Belohnung
D2game.dll
offset 6B49D den Wert: rin in das gewünschte Item ändern
Achtung, keine Unis, Sets usw, und max 3 Zeichen Codes



[EDIT]

von obacht

Max Resis ändern

Original von hier



Die normalen maximalen Widerstände (75) verändern: (frei übersetzt von mir selbst xD)
Veränderungen in D2Game.dll (mit Ollydbg):

Offset 8FC20 (d.h. 6FCBFC20 - das Base-Offset der 1.10 D2game.dll: 6FC30000 ) : ADD EAX,4B

Ändere 4B (was die Dezimalzahl 75 ist) in einen Wert, der dir passt. In meinem Fall 41, was die Dezimalzahl 65 ist.

Für den Charscreen: (in D2client.dll):


Offset: 30C87 (das ist 6FAD0C87 - 6FAA0000 ), :
Add EDP, 4B
Wieder 4B in den gewünschten Wert ändern (ist bei mir natürlich wieder 41).

Wollt ihr jetzt die maximal erreichbaren Widerstände (also mit +Max Resi Items) ändern, müsst ihr noch Folgendes machen:


In diesem Teil der D2Game.dll


:6FCBFC23 83F85F cmp eax, 0000005F
:6FCBFC26 7C05 jl 6FCBFC2D
:6FCBFC28 B85F000000 mov eax, 0000005F

die 5F in einen gewünschten Wert ändern, in meinem Fall 50 = 80 als Dezimalzahl.


... und in D2Client.dll:


6FAD0C8A |. 83FD 5F |CMP EBP,5F
6FAD0C8D |. 7C 05 |JL SHORT D2Client.6FAD0C94
6FAD0C8F |. BD 5F000000 |MOV EBP,5F

Ebenfalls 5F ändern


[/EDIT]






Vielen Dank von hier aus an die netten Leute aus dem PK und aus dem D2.de Forum


Gruss
ChaosEnergy
 
26.03.2004 Gegenstände per Rezept benennen ohne Anya Quest angepasst, damit es mit afj666 ExtendedLevelPlugin kompatibel wird (ich hab keine Ahnung wie ich es gemacht hab, aber es läuft, ohe ein Wort Assembler zu verstehen)

10.03.2004 Typo korrigiert im Text, Urahnen LvlUp Beschränkungsaufhebung (welch ein Wort :) )

05.03.2004 Added Hireling Plugin
 
Jeder macht nen reserved Posting, aber keiner schreibt da dann was rein :motz:

Ihr wollt doch alle nur spammen :p
 
Ich weiß nicht wieviele Leute noch mit 1.09d modden aber eine geänderte DLL für fixe Gamble Cost hab ich schon vorliegen (Benötige ich für mein Mod).
Diese könnte ich auf Wunsch hochladen.

*Thread auch reservier weil /playerx wichtig für mein Mod ist*
 
mich interessieren vor allem die Offsets, für die Skillpunkte pro Level up :D
 
Aus Phrozen Keep Forums -> Code editing -> Level-Up Code (Morduin):

Alright, here's a modification of the code for >1 skill points per level from earlier in this thread, for 1.10 final.

At 4ED59, replace:

6A 00 57 6A 05

with:

E9 02 7D 0A 00

Now, at F6A60 ( I THINK it's safe to overwrite stuff here, and my box didn't blow up when I tested it here; but more experienced coders might want to weigh in), overwrite all those 00's with:

BA xx000000 --> xx = skillpoints / level
0F AF D7
6A 00
52
6A 05
E9 EC 82 F5 FF

Code from Myrghinoc's posts earlier in this thread; I just found a place to stick it in the new DLLs
die game.dll ist also an 2 stellen zu ändern:
4ED59: E9 02 7D 0A 00 --- das ist ein aufruf der anderen stelle
F6A60: BA xx 00 00 00 0F AF D7 6A 00 52 6A 05 E9 EC 82 F5 FF
wobei xx unbedingt durch die gewünschte Hexzahl zu ersetzen ist z.B. 03 für 3 oder 0A für 10

sollte an der 2.ten stelle kein platz (00 en) sein (schon andere modifikationen an der dll vorgenommen)
so kann man die zweiten Bytes auch an eine andere freie Stelle (00en) in der Nähe hinterlegen
dazu muß aber natürlich der aufrufbefehl bei den ersten bytes geändert werden
und der rücksprung bei den zweiten bytes

CU Snej
 
Söldner verwendet alle Gegenstände (benötigt angepasste Inventory.txt und Söldnerinventar Grafik).

D2client.dll:
Offset: 4D4DD Orginal-Code: 75 0C Ändern in: EB 0C
Offset: 4D522 Orginal-Code: 0F85 9A000000 Ändern in: E900 9B000000

D2Game.dll:
Offset: 58BB5 Orginal-Code: 75 0C Ändern in: EB 0C
Offset: 58BF1 Orginal-Code: 0F85 80000000 Ändern in: E900 81000000

Hier eine ZIP Datei, welche die Änderungen (Excel Datei) sowie ein von mir entworfenes NPC Inventar enthalten:

Exceldatei + NPC Grafik:
Datei

Hier das NPC Inventar als Vorschau:
soeldnerinv.jpg


PS: Es ist - bis jetzt - nur möglich, dem Söldner einen Ring zu geben! Ansonsten sollte das Inventar 100% ig funktonieren.

edit1: Akt 2 Söldner lässt sich nach diesen Änderungen nicht mehr Ausrüsten! Sollte man auch nur einen Gegenstand in die Nähe des Inventars bewegen, stürzt das Spiel ab.
Mit den Animationen hat dies aber nichts zu tun! Eventuell liegts an einer fehlerhaften Hirelings.txt. Wer dazu näheres weiß, sollte dies mir mitteilen! Danke

Alle anderen Söldner funktionieren dagegen Problemlos!
 
Hi Mat

kewl!!!

Kriegt man die Grafik nicht Char Ähnlich hin.-..schild rechts, waffe links usw?
dann wuerde es in kombination mit dem inventar mod fast identisch aus sehen...

Edit:
Richtig lustig ist, das man den Jägerinnen statt nem Bogen Pfeile geben kann, damit machen die dann weniger Schaden als ohne Waffen..kann aber mit mag Pfeilen evtl interessant sein..hab gerade keine da...

EDIT2
WICHTIG
@Matze
Schau mal nach..ich hab Deine Änderungen drin..Jägerinnen funzen prima...

Akt2 Söldner krachen wenn ich nur dran drenke die Rüstung/Waffe abzulegen, oder aufzunehmen..assertion error.
NEU gekaufte Söldner!

Akt3 und 5 hab ich kurz angetestet und es scheint dort auch einwandfrei zu funktionieren...


EDIT2:
Es ist soweit...es läuft endlich...
Nach Schwierigkeiten mit Akt3 Söldnern wenn man Schild oder Einhandwaffe gibt, wenn bereits 2h getragen und andersrum, das dann ein Gegenstan für immer verschwand, wurde dies abgeklemmt...statt dessen kann man dem Akt3Söldner nun ein Schild in die linke Hand geben(wozu braucht der auch schon ne Waffe..und wer benutzt den überhaupt)

Ringe kann man nur zverlässig wechseln, wenn man den anderen im Slot vorher entfernt(ring der rechten hand, im bild links)

Ansonsten sieht das ungefähr so aus...wenn ich wieder einigermassen wach bin, und die Zeit reicht, pass ich die Werte noch genauer an, und mach den Kram als PlugIn fertig
Dank an dieser Stelle an BaronJosh für die Idee und finden der CodeStelle und an SVR für das ewige umcoden nach meinen Fehlermeldungen und Ideen(ich kann nix dafür das ich das berufsmässig mache..ich bin halt programmiererquaeler...)

und hier der vorab screene http://ce.4u4all.de/hireling.jpg

Edit3: Anpassugnen sind oben im Post enthalten

uind jetzt gute nacht...
Chaos
 
ChaosEnergy schrieb:
PlayersX Mindestwert vorgeben
d2game.dll
Fileoffset 4C4A1

8D 4424 0056 50BA E0C4 C76F gegen

BA 0200 0000 EB24 9090 9090 austauschen für players2, oder

BA 0400 0000 EB24 9090 9090 für players4

Offset gilt nur für 1.10 oder auch 1.09d?
 
@Tiger

Kannst Du den Thread umbenennen in DLL Modifikationen für LOD 1.10
 
Ich habe alles so geändert wie es hier stand mit players standartmässig auf 8 und maxplayers auf 127, aber jedes mal wenn ich aus der Stadt rauslaufe schmiert mir Diablo II ab.

Ich arbeite mit 1.10 Final...

was mache ich falsch?
 
juhu..doppel post..EDIT!?!

sry tiger ich nahm die den spass :P

was wolltest du denn erreichen?
den fix auf players 8 brauchst du ja nichjt unbedingt
und players127 kann sehr uebel sein

bei mir crasht es iin hell zb ab players13
 
Möglicherweise gibt´s da Overflows bei den Hitpoints von Monstern... auf Hell sind die ja teilweise bereits sehr hoch und wenn dann noch virtuell 127 Spieler im Game sind, kann´s schon pasieren, dass da die Grenze überschritten wird und es zu Fehlermeldungen kommt.
 
nicht nur möglicherweise,...

bei mir hat es zu den 4 1hit monstern gefuehrt..rollover und trotz immunities killbar..
 
Ähm, sorry für so ne blöde Frage, wollte gerade mal das mit den -actX Schaltern verändern,

aber bei mir gibt's nicht eins von den angegebenen Offsets und ja, ich hab die D2Game.dll offen und zwar mit dem empfohlenen XVI32-HexEditor :confused:

Irgendjemand ne Ahnung, woran das liegen könnte???
 
Da steht nur EIN offset für die d2game.dll
(fixe player menge als minimum)

das andere war in einer anderen dll...

habs bei mir gerade nocmal gechecked..offset stimmt

Habs nicht im Kof gerade, aber ich denke Du moddest an LOD 1.10 und nciht Classic 1.10 dann könntest Du ja andere DLLs haben (hab die nie verglichen)
 
Da steht nur ein Offset für die D2Game.dll äh ja ^^

und was steht dann unter
Schalter -actX variieren (sehr hilfreich zum MOD testen)
Mehr Skillpunkte pro LevelUp
Mehr Gegenstände im Glücksspiel Screen
usw.??

und ich modde 1.10 LoD
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben