[1.10] Disable classic on all characters

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

Post Reply
User avatar
kingpin
Retired Admin
Cherub
Posts: 10954
Joined: Sat Jan 11, 2003 12:51 pm
Contact:
Sweden

Hand-picked

[1.10] Disable classic on all characters

Post by kingpin » Sat Jul 10, 2010 2:33 am

There is a minor edit to do if you want to prevent a mod work in classic. This basically makes all classes be expansion only.

The code is located in d2launch.dll

Code: Select all

6FA1CA45   A1 1475A36F      MOV EAX,DWORD PTR DS:[6FA37514] ; get classID
6FA1CA4A   83F8 06          CMP EAX,6 ; classID == D2PC_ASSASSIN
6FA1CA4D   74 40            JE SHORT D2Launch.6FA1CA8F ; set expansion button inactive
6FA1CA4F   83F8 05          CMP EAX,5 ; classID == D2PC_DRUID
6FA1CA52   74 3B            JE SHORT D2Launch.6FA1CA8F ; set expansion button inactive
change to:

Code: Select all

6FA1CA45   A1 1475A36F      MOV EAX,DWORD PTR DS:[6FA37514] ; Get selected classID
6FA1CA4A   83F8 07          CMP EAX,7 ; classID < 7
6FA1CA4D   72 40            JB SHORT D2Launch.6FA1CA8F ; set expansion button inactive
6FA1CA4F   90               NOP
6FA1CA50   90               NOP
6FA1CA51   90               NOP
6FA1CA52   90               NOP
6FA1CA53   90               NOP

Pangaea
Junior Member
Paladin
Posts: 240
Joined: Thu Apr 01, 2010 9:05 pm

Re: [1.10] Disable classic on all characters

Post by Pangaea » Tue Feb 15, 2011 4:08 pm

v1.13 File Offset 00014624

Code is nearly the same:

6FA54624 . A1 944DA66F MOV EAX,DWORD PTR [6FA64D94]
6FA54629 . 83F8 06 CMP EAX,6
6FA5462C . 74 40 JE SHORT D2Launch.6FA5466E
6FA5462E . 83F8 05 CMP EAX,5
6FA54631 . 74 3B JE SHORT D2Launch.6FA5466E

The hex pattern 83 f8 06 74 is only once in v1.13s D2Launch, so i expect, that it
stays at least the same since v1.10. So the in-between versions are also easy to fix.
I'm working with v1.13c

OhItsThatGuy
Posts: 4
Joined: Sat Dec 16, 2017 6:39 am

Re: [1.10] Disable classic on all characters

Post by OhItsThatGuy » Fri Dec 22, 2017 5:08 am

For anyone interested, to force the game to lock all characters as expansion you do the following:
This is for 1.13c I believe.

Change this:

Address Hex dump Command
6FA4CE49 |. 83F8 06 CMP EAX,6
6FA4CE4C |. 74 40 JE SHORT 6FA4CE8E
6FA4CE4E |. 83F8 05 CMP EAX,5
6FA4CE51 |. 74 3B JE SHORT 6FA4CE8E
6FA4CE53 |. 83F8 FF CMP EAX,-1
6FA4CE56 |. 74 69 JE SHORT 6FA4CEC1

To this:

Address Hex dump Command
6FA4CE49 /EB 43 JMP SHORT 6FA4CE8E
6FA4CE4B |90 NOP
6FA4CE4C |90 NOP
6FA4CE4D |90 NOP
6FA4CE4E |90 NOP
6FA4CE4F |90 NOP
6FA4CE50 |90 NOP


Nope everything and use an unconditional jump to the same address it jumps for an expansion character.

FearedBliss
Posts: 82
Joined: Sat Oct 16, 2010 4:29 pm
United States of America

Re: [1.10] Disable classic on all characters

Post by FearedBliss » Sat Jun 09, 2018 3:22 pm

That's for this guys. I tested 1.10f and 1.13c offset and they work. No need to do the extra NOPs though, simply changing the JE to JMP like OhItsThatGuy said is enough.

Post Reply

Return to “Code Editing”