[1.10] D2 Functions List

This forum is for discussions on how to edit what can not be edited through the txt files, needless to say this isn't about battle net hacking.

Moderators: Nefarius, Havvoric

User avatar
Reddog
Posts: 7
Joined: Sun Aug 15, 2004 3:13 am

Re: [1.10] D2 Functions List

Post by Reddog » Mon Jan 10, 2005 9:34 pm

Hello,

I'm new in this forum, but I've done some research about socketing, and found some functions, that aren't documented here. Well here is one:

Code: Select all

[color=darkred]D2Common.#10708[/color]
[color=green]
Function:   Sets or deletes the item flags
Offset:     00C78087 in 1.10
Parameters: Arg3 - flag (some are described in the ptUnit-post) 
            Arg2 - set = 1, delete = 0 
            Arg1 - ptUnit (item)
Returns:    doesn't
[/color]
Last edited by Reddog on Mon Jan 10, 2005 9:42 pm, edited 1 time in total.

User avatar
kingpin
Senior Admin
Cherub
Posts: 10918
Joined: Sat Jan 11, 2003 12:51 pm
Contact:
Sweden

Hand-picked

Re: [1.10] D2 Functions List

Post by kingpin » Mon Jan 10, 2005 10:15 pm

you have the flags that are known explained in this post


EDIT:

Have found some more functions while I have been working in area's related to those.

Code: Select all

[color=red]D2Common.#10284[/color]

Function:   Returns Socket_Counter (282C)
Offset:     6FD90AC0
Parameters: Arg1 - ptInventory
Returns:    Current number of used sockets in item

Code: Select all

[color=red]D2Common.#10280[/color]

Function:   Adds item to belt (2828)
Offset:     6FD90940
Parameters: Arg1 - ptInventory
                   Arg2 - ptItem
Returns:    

Code: Select all

[color=red]D2Common.#10367[/color]

Function:   Returns number of belt rows (287F)
Offset:     6FDC01F0
Parameters: Arg1 - ptItem
Returns:    Current number of rows in belt
Last edited by kingpin on Wed Feb 02, 2005 2:18 am, edited 1 time in total.

User avatar
Myhrginoc
Retired Admin
Cherub
Posts: 12062
Joined: Sat May 25, 2002 7:28 am
Location: Percussion U

Hand-picked

Re: [1.10] D2 Functions List

Post by Myhrginoc » Sun Feb 06, 2005 12:23 pm

Get a SuperUnique record:

Code: Select all

[color=darkred]D2Common.#10668[/color]
[color=green]
Function:   Gets a superunique record from the hcIdx value
Offset:     0002A440 (6FD6A440) in 1.10
Parameters: Arg1 - hcIdx
Returns:    record pointer for superunique
[/color]
This function is involved with spawning superuniques. It has a number of special conditions in it for specific superuniques, such as the Countess, the Council in Travincal, the Seal Bosses and the Barbarian Ancients.

Code: Select all

[color=darkred]D2Game.6FC6F690[/color]
[color=green]
Function:   Spawn a SuperUnique (especially unmapped ones)
Offset:     0003F690 (6FC6F690) in 1.10
Parameters: Arg3 - hcIdx
            Arg2 - coordinate
            Arg1 - coordinate
            ECX - ptGame
            EDX - hRoom
Returns:    ptUnit of superunique (0 if unsuccessful)
[/color]
EDIT - corrected function title, added missing fastcall parameters.
Last edited by Myhrginoc on Tue Feb 08, 2005 4:57 am, edited 2 times in total.
Do the right thing. It will gratify some people and astonish the rest.
~ Mark Twain
Run Diablo II in any version for mods: tutorial
The Terms of Service!! Know them, abide by them, and enjoy the forums at peace.
The Beginner's Guide v1.4: (MS Word | PDF) || Mod Running Scripts || TFW: Awakening

User avatar
kingpin
Senior Admin
Cherub
Posts: 10918
Joined: Sat Jan 11, 2003 12:51 pm
Contact:
Sweden

Hand-picked

Re: [1.10] D2 Functions List

Post by kingpin » Mon Feb 07, 2005 2:06 am

Function: Gets a superunique record from the hcIdx value
Nice finding,

But, I think you have missed 2 args in this (ECX and EDX call).

ECX = ptGame
EDX = ptRoom

User avatar
Havvoric
Retired staff
Champion of the Light
Posts: 392
Joined: Mon Apr 12, 2004 1:12 am
Location: Newcastle upon Tyne
Contact:

Re: [1.10] D2 Functions List

Post by Havvoric » Sun Feb 13, 2005 11:40 am

Get ptClient from ptPlayer:

Code: Select all

[color=green]Function:   Gets the ptClient corresponding to a ptPlayer
Offset:     0008C2E0 (6FCBC2E0) in 1.10 (D2Game)
Parameters: 
    ECX - ptPlayer
    Arg1 - unknown (unused)
Returns:    ptClient
[/color]
Last edited by Havvoric on Sun Feb 13, 2005 11:43 am, edited 1 time in total.

User avatar
kingpin
Senior Admin
Cherub
Posts: 10918
Joined: Sat Jan 11, 2003 12:51 pm
Contact:
Sweden

Hand-picked

Re: [1.10] D2 Functions List

Post by kingpin » Sun Feb 13, 2005 3:29 pm

Get ptClient from ptPlayer:
This function uses 3 args, not 2 as you have listed.

The missing args are _FILE_ and _LINE_

User avatar
Myhrginoc
Retired Admin
Cherub
Posts: 12062
Joined: Sat May 25, 2002 7:28 am
Location: Percussion U

Hand-picked

Re: [1.10] D2 Functions List

Post by Myhrginoc » Tue Feb 22, 2005 6:27 am

This short function looks in (ptUnit+14)+26 after checking that ptUnit+00 = 1.

Code: Select all

[color=darkred]D2Game.6FC6ACD0[/color]
[color=green]
Function:   Get a SuperUnique hcIdx from a monster ptUnit
Offset:     0003ACD0 (6FC6ACD0) in 1.10
Parameters: ECX - ptUnit
Returns:    hcIdx of SuperUnique (-1 if not applicable)[/color]
And here is one for retrieving an ItemStatCost record:

Code: Select all

[color=darkred]D2Common.6FDA42B0[/color]
[color=green]
Function:   Get the ItemStatCost record pointer from the Stat ID
Offset:     000642B00 (6FDA42B0) in 1.10
Parameters: ECX - Stat ID
Returns:    record pointer in ItemStatCost.bin image (0 if failed to find record)[/color]
Last edited by Myhrginoc on Sat Apr 09, 2005 9:31 pm, edited 3 times in total.
Do the right thing. It will gratify some people and astonish the rest.
~ Mark Twain
Run Diablo II in any version for mods: tutorial
The Terms of Service!! Know them, abide by them, and enjoy the forums at peace.
The Beginner's Guide v1.4: (MS Word | PDF) || Mod Running Scripts || TFW: Awakening

User avatar
RicFaith
Retired staff
Arch-Angel
Posts: 1576
Joined: Fri May 24, 2002 7:12 am
Location: Back where the weather is too hot
Contact:

Hand-picked

Post by RicFaith » Fri Mar 25, 2005 9:44 am

Heh I've got 2 and 1 I haven't confirmed. Found them while going through some code related to the combat damage calculations. Attacker meets Defender and they calculate several pages worth of code... sigh.

Check if Unit is a demon

Code: Select all

[color=red]D2Common.#11058[/color]
takes (ptUnit)
returns 0 if not demon
Check if Unit is an Undead

Code: Select all

[color=red]D2Common.#11059[/color]
takes (ptUnit)
returns 0 if not undead
I believe this takes ptUnit/ptPlayer and returns the ptItem of the equipped weapon.

Code: Select all

[color=red]D2Game.4C7B0 (6FC7C7B0)[/color]
takes (ptUnit or ptPlayer)
returns ptItem
There're a heck of a lot of undocumented functions in there. If I get anywhere with the rest of them, I'll post back here.
Last edited by RicFaith on Fri Mar 25, 2005 9:45 am, edited 1 time in total.

User avatar
kingpin
Senior Admin
Cherub
Posts: 10918
Joined: Sat Jan 11, 2003 12:51 pm
Contact:
Sweden

Hand-picked

Re: [1.10] D2 Functions List

Post by kingpin » Sat Apr 09, 2005 8:21 pm

This function is related to hiredesc.txt

They have added a hardcoded table in the function down here to return correct description for hireling. The hardcoded table is based on Code column in hireling.

Code: Select all

[color=red]D2Common.#11085[/color]

Function:   Gets hireling type description based from code (in hiredesc.txt)
Offset:     0002B4D (6FDA51A0) in 1.10
Parameters: Arg1 - Code
Returns:    unicode string
Last edited by kingpin on Sat Apr 09, 2005 8:31 pm, edited 1 time in total.

User avatar
Myhrginoc
Retired Admin
Cherub
Posts: 12062
Joined: Sat May 25, 2002 7:28 am
Location: Percussion U

Hand-picked

Re: [1.10] D2 Functions List

Post by Myhrginoc » Tue Apr 12, 2005 1:27 am

This function checks hireling records for eligibility under a certain vendor:

Code: Select all

[color=darkred]D2Common.#10587[/color]
[color=green]
Function:   Get the hireling record pointer from the vendor and act Offset:     000651A0 (6FDA51A0) in 1.10
Parameters: arg1 - act
            arg2 - vendor ID (from monstats)
            arg3 - difficulty
            arg4 - game version (use 0 for LoD here)
Returns:    record pointer in Hireling.bin image (0 if failed to find record)[/color]
edit - more functions...

Code: Select all

[color=darkred]D2Common.#10325[/color]
[color=green]
Function:   Set ptUnit animdata.d2 pointer for current animation mode
Offset:     0007E4C0 (6FDBE4C0) in 1.10
Parameters: arg1 - ptUnit
            arg2 - unit type
            arg3 - unit ID
            arg4 - current animation mode (ptUnit+10)
Returns:    pointer to AminData.d2 record[/color]

Code: Select all

[color=darkred]D2Common.#10601[/color]
[color=green]
Function:   Get the item record pointer and item ID from itemcode
Offset:     000176D0 (6FD576D0) in 1.10
Parameters: arg1 - itemcode
            arg2 - location to write item ID to
Returns:    record pointer in master items table (0 if failed to find record)[/color]

Code: Select all

[color=darkred]D2Common.#11067[/color]
[color=green]
Function:   Get index if ptUnit is a hireling
Offset:     00066730 (6FDA6730) in 1.10
Parameters: arg1 - ptUnit to check
Returns:    0 if not a hireling
            1 if a rogue
            2 if a desert guard
            3 if an iron wolf
            4 if a barbarian[/color]

Code: Select all

[color=darkred]D2Common.#11259[/color]
[color=green]
Function:   Make a ptUnit
Offset:     0007B6D0 (6FDBB6D0) in 1.10
Parameters: arg1 - ptGame+1C (MemoryPool)
            arg2 - ptUnit type (0 through 5)
Returns:    new ptUnit with ptInfo (ptUnit+14) (0 if failed to make structure)[/color]
Last edited by Myhrginoc on Sun Jul 24, 2005 10:23 pm, edited 4 times in total.
Do the right thing. It will gratify some people and astonish the rest.
~ Mark Twain
Run Diablo II in any version for mods: tutorial
The Terms of Service!! Know them, abide by them, and enjoy the forums at peace.
The Beginner's Guide v1.4: (MS Word | PDF) || Mod Running Scripts || TFW: Awakening

User avatar
Elliot_009
Posts: 27
Joined: Tue Oct 17, 2006 7:43 am

D2gfx.#10027 and Fog.#10029

Post by Elliot_009 » Sat Nov 18, 2006 8:01 am

Code: Select all

D2gfx.#10027
Function:    Gets the handle of the main window. 
Offset:      49C0h (6FA749C0h) 
Params:      None
Returns:     HWND of main window

Code: Select all

Fog.#10029
Function:    Formats and logs a string with printf style format specifiers. 
Offset:      120A0h (6FF620A0h) 
Params:      PUSH optional paramN
             ...
             PUSH optional param1
             PUSH address of c-style (null terminated) string
Returns:     None
Note: caller cleans stack (__cdecl, see corrections made by Myhrginoc)
Last edited by Elliot_009 on Sat Nov 18, 2006 5:36 pm, edited 2 times in total.

User avatar
Myhrginoc
Retired Admin
Cherub
Posts: 12062
Joined: Sat May 25, 2002 7:28 am
Location: Percussion U

Hand-picked

Re: [1.10] D2 Functions List

Post by Myhrginoc » Sat Nov 18, 2006 8:13 am

There is a little more to Fog.#10029 than that. The specification is actually

PUSH Optional Param X
•••
PUSH Optional Param 1
PUSH format_string
CALL Fog.#10029
ADD ESP, (Optional_Param_Count+1)*4

This is one of the rare _cdecl functions where the stack is cleaned up by the calling code. The output is a line of text in the debug file, D2yymmdd.txt, that appears in your game directory (or mod directory if you use my D2 Log File Plugin Set). I have used the function myself with up to 5 "optional" parameters.
Last edited by Myhrginoc on Sat Nov 18, 2006 8:16 am, edited 1 time in total.
Do the right thing. It will gratify some people and astonish the rest.
~ Mark Twain
Run Diablo II in any version for mods: tutorial
The Terms of Service!! Know them, abide by them, and enjoy the forums at peace.
The Beginner's Guide v1.4: (MS Word | PDF) || Mod Running Scripts || TFW: Awakening

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains
Contact:

Hand-picked

Re: [1.10] D2 Functions List

Post by Nefarius » Sun Nov 19, 2006 11:29 am

Seeing this thread recently got a revival, I'm adding a few from my notes:

Code: Select all

D2Game.6FC7C260
Function: Subtracts specified amount of gold from the player and drops it to the ground.
ARG2 amount of gold (dword) [hard limit at 2 billion]
ARG1 unknown boolean
EDX ptPlayer
ECX ptGame

Code: Select all

D2Game.6FD060F0
Function: Casts an ItemEffect skill
arg4 0
arg3 y
arg2 x
arg1 sLvl
edx skillID
ecx skillOwner (ptUnit --- can cast from a missile too, but this usually wont work)
return: boolean (success/fail)

Code: Select all

D2Game.6FC68D70
Function: Spawns a monster (a single one)
arg4 0
arg3 -1
arg2 monmode
arg1 monster hcIdx
edx ptUnit (owner of unit, aka whatever unit calls this func, like a missile etc)
ecx ptGame

Code: Select all

D2Game.6FC6AA70
Function: Spawns a random monster pack
arg2 ptRoom
arg1 ptGame
Last edited by Nefarius on Sun Nov 19, 2006 11:27 pm, edited 2 times in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
Myhrginoc
Retired Admin
Cherub
Posts: 12062
Joined: Sat May 25, 2002 7:28 am
Location: Percussion U

Hand-picked

Re: [1.10] D2 Functions List

Post by Myhrginoc » Sun Nov 19, 2006 4:36 pm

Updated index post with these new functions, plus quite a few that didn't get updated earlier.

[quote=Nefarius";p="295799"]Seeing this thread recently got a revival, I'm adding a few from my notes:

Code: Select all

D2Game.6F4160F0
Function: Casts an ItemEffect skill
arg4 0
arg3 y
arg2 x
arg1 sLvl
edx skillID
ecx skillOwner (ptUnit --- can cast from a missile too, but this usually wont work)
return: boolean (success/fail)
[/quote]
That address look a little questionable.
Do the right thing. It will gratify some people and astonish the rest.
~ Mark Twain
Run Diablo II in any version for mods: tutorial
The Terms of Service!! Know them, abide by them, and enjoy the forums at peace.
The Beginner's Guide v1.4: (MS Word | PDF) || Mod Running Scripts || TFW: Awakening

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains
Contact:

Hand-picked

Re: [1.10] D2 Functions List

Post by Nefarius » Sun Nov 19, 2006 11:21 pm

I'll check my D2Functions header, Shouldn't do Hex-Math in head :P

6FD060F0 Is the correct address. I'll double check the other addys later to see if I made a mistake there too.
Last edited by Nefarius on Sun Nov 19, 2006 11:29 pm, edited 1 time in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
kingpin
Senior Admin
Cherub
Posts: 10918
Joined: Sat Jan 11, 2003 12:51 pm
Contact:
Sweden

Hand-picked

Re: [1.10] D2 Functions List

Post by kingpin » Wed Nov 22, 2006 6:43 pm

Found a useful function while do some client code.

Code: Select all

D2Client.6FAAE570
Function: Return pointer to Monstats.txt
arg1 UnitID
return: ptMonstatsTXT

User avatar
Myhrginoc
Retired Admin
Cherub
Posts: 12062
Joined: Sat May 25, 2002 7:28 am
Location: Percussion U

Hand-picked

Re: [1.10] D2 Functions List

Post by Myhrginoc » Thu Nov 23, 2006 3:26 am

There are quite a few of that sort in d2client.dll: client-side versions of record retrieval functions.

Here is an important one:

Code: Select all

[color=#c80000]D2Client.6FAAC090 (Base+0xC090)[/color] 
Function: retrieve game difficulty on the client side
no args 
return: difficulty
Or you can read the byte at d2client.6FBA795C (Base+0x10795C) directly.
Do the right thing. It will gratify some people and astonish the rest.
~ Mark Twain
Run Diablo II in any version for mods: tutorial
The Terms of Service!! Know them, abide by them, and enjoy the forums at peace.
The Beginner's Guide v1.4: (MS Word | PDF) || Mod Running Scripts || TFW: Awakening

User avatar
Havvoric
Retired staff
Champion of the Light
Posts: 392
Joined: Mon Apr 12, 2004 1:12 am
Location: Newcastle upon Tyne
Contact:

Re: [1.10] D2 Functions List

Post by Havvoric » Thu Nov 23, 2006 6:21 pm

Code: Select all

[color=darkred]D2Client.6FB29370 (Base+0x89370)[/color]
[color=green]Function: Get pointer to current room
no args
returns: ptRoom (of player)[/color]

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains
Contact:

Hand-picked

Re: [1.10] D2 Functions List

Post by Nefarius » Sat Nov 25, 2006 6:26 am

Code: Select all

D2Game.EC20
Function: Send a data packet to the client, to update item display
Can be expanded for multi-purpose packet sending!

arg4 0
arg3 value of stat (it uses setstat)
arg2 statID
arg1 packet type (set to 1 for stat manipulation)
edx ptClient
ecx ptItem

To update a client-side copy of an item you must manipulate it to append the stat to the proper statlist, by default it uses setstat alone, so only durability and quantity will work!

Code: Select all

D2Game.21360
Function: Drops a treasureclass
arg8 0
arg7 0
arg6 0
arg5 0
arg4 iLvl
arg3 0
arg2 ptTcEx
arg1 ptUnit (of killer, for MF etc)
edx ptUnit (of source unit)
ecx ptGame

Code: Select all

D2Game.19670
Function: Identifies the item in question
arg1 ptItem
edx ptPlayer
ecx ptGame

Code: Select all

D2Common.77560 (#10464)
Function: Adds a stat to a statlist

arg4 0
arg3 value of stat
arg2 statID
arg1 ptStatList

Code: Select all

D2Common.52C40
Function: Retrieves the proper ptStatList to add modifiers to (so that they appear on the client!), should it not exist it creates a new ptStatList.

arg2 0x40 (a flag, "blue stats" use 0x40, sets' "green stats" use 0x2040)
arg1 0
edx ptUnit
ecx 0
ret ptStatList

Code: Select all

D2Common.28DF0 (#10659)
Function: Retrieves the pointer to the TreasureClass line requested.
Note: The Auto-TCs (armo, weap, miss, mele etc) always occupy the first slots, so the ID is autotcs+TcEx line!
arg2 level
arg1 ID (line in TcEx)
ret ptTcEx

Code: Select all

D2Common.17680 (#10600)
Function: Retreieves a pointer to the Item record line requested.
arg1 hcIdx (line in weapons-armor-misc mega txt)
ret ptItemLine

Code: Select all

D2Common.4E7A0 (#10277)
Function: Gets the pointer to the first item owned by the player
arg ptInventory
ret ptItem

Code: Select all

D2Common.83760 (#10903)
Function: Scrolls a message on screen
arg3 ptBuffer
arg2 string ID (not key)
arg1 bool (0 = menu off, 1 = menu on)

Code: Select all

D2Common.7EA60 (#10348)
Function: Alter unit modes (does not work properly on players)
arg2 unitMode
arg1 ptUnit

Code: Select all

D2Client.869F0
Function: Get client side ptUnit

edx unitType (0 = player, 1 = monster etc)
ecx unitID (ptUnit + 0xC)
ret client.ptUnit

Code: Select all

D2Client.B5820
Function: Plays an overhead sound (that all players in the level will hear)
arg3 0
arg2 0
arg1 0
edx 0
ecx sound Id

Code: Select all

D2Client.A2A70
Function: Makes the unit bleed
edx number of blood missiles
ecx ptUnit






NOTE: The D2Common funcs are without ordinal because I didn't have the ordinals in my function header, if someone has the time to add them please do. Don't know if some are listed already, I double checked but thats not to say I haven't missed one or two.
Last edited by Nefarius on Sat Nov 25, 2006 5:28 pm, edited 2 times in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
Myhrginoc
Retired Admin
Cherub
Posts: 12062
Joined: Sat May 25, 2002 7:28 am
Location: Percussion U

Hand-picked

Re: [1.10] D2 Functions List

Post by Myhrginoc » Sat Nov 25, 2006 4:53 pm

I added ordinals for those functions which are exported. There were a few duplicates...the index list is now current so you can always check the first post in this thread...

Anybody with moderator edit permissions, please feel free to update the index post as well! :mrgreen: (I will take care of the previous set.)
Last edited by Myhrginoc on Sat Nov 25, 2006 5:23 pm, edited 1 time in total.
Do the right thing. It will gratify some people and astonish the rest.
~ Mark Twain
Run Diablo II in any version for mods: tutorial
The Terms of Service!! Know them, abide by them, and enjoy the forums at peace.
The Beginner's Guide v1.4: (MS Word | PDF) || Mod Running Scripts || TFW: Awakening

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains
Contact:

Hand-picked

Re: [1.10] D2 Functions List

Post by Nefarius » Sat Nov 25, 2006 5:37 pm

Thanks for adding the ordinals. Is there a quick way to determine the ordinal in Olly? As on my end, they only appear in the imports of other D2 Dlls, but not in D2Common itself.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
kingpin
Senior Admin
Cherub
Posts: 10918
Joined: Sat Jan 11, 2003 12:51 pm
Contact:
Sweden

Hand-picked

Re: [1.10] D2 Functions List

Post by kingpin » Sat Nov 25, 2006 8:40 pm

[quote=Nefarius";p="296690"]Thanks for adding the ordinals. Is there a quick way to determine the ordinal in Olly? As on my end, they only appear in the imports of other D2 Dlls, but not in D2Common itself.[/quote]

I use W32dsm to check ordinals, quickest way to check it.

Another way is save the ordinals in text file by copy it from W32dsm and you have it easy access always.

User avatar
Myhrginoc
Retired Admin
Cherub
Posts: 12062
Joined: Sat May 25, 2002 7:28 am
Location: Percussion U

Hand-picked

Re: [1.10] D2 Functions List

Post by Myhrginoc » Sun Nov 26, 2006 3:55 pm

I have noticed Ollydbg is sensitive to changes in dll memory images. If I load d2common unmodded, or the file itself is edited, the ordinals come through fine. But d2mod and other soft patchers confuse it. We don't see this with other dlls because we don't use the ordinals of the ones we patch the most (d2game, d2client).

Any PE dump utility can give you a cross-reference between relative address and ordinal. (I have PE dumps for most of the 1.09b, 1.09d, 1.10 and 1.11 DLLs, but I never ran a set for 1.11b because by that time I had given up on post-1.10 coding. It isn't that hard to automate it.)
Do the right thing. It will gratify some people and astonish the rest.
~ Mark Twain
Run Diablo II in any version for mods: tutorial
The Terms of Service!! Know them, abide by them, and enjoy the forums at peace.
The Beginner's Guide v1.4: (MS Word | PDF) || Mod Running Scripts || TFW: Awakening

User avatar
SheX - Lost Mage
Junior Member
Paladin
Posts: 111
Joined: Fri May 26, 2006 10:46 am
Location: New Tristram
Contact:

Post by SheX - Lost Mage » Thu Nov 30, 2006 9:43 am

Please tell me, how to add a new NPC with code editing?

User avatar
kingpin
Senior Admin
Cherub
Posts: 10918
Joined: Sat Jan 11, 2003 12:51 pm
Contact:
Sweden

Hand-picked

Post by kingpin » Thu Nov 30, 2006 9:55 am

[quote=SheX - Lost Mage";p="297263"]Please tell me, how to add a new NPC with code editing?[/quote]

Wrong thread to ask in. Please make a new thread instead.

Post Reply

Return to “Code Editing”