Experience beyond 2 screens in 1.13
Moderators: Nefarius, Havvoric
-
- Posts: 82
- Joined: Sat Oct 16, 2010 4:29 pm
Experience beyond 2 screens in 1.13
Hello everyone,
I've been coming to these forums for years but I never actually posted anything, just learned. Anyways, I modded before about 4 years ago, but now is the time that I finally decided to dig deeper into code editing (I'm almost 20 now and starting my 3rd year of college, pursuing my BS in Computer Science.. since my brain probably wasn't as developed as it is now, I kinda didn't really understand the concepts of things as deep as I do now).
I completed most of the reading of Sir_General/Myhrginoc Code Editing tutorial and I did all the examples so I can get a deeper hands on understanding of using the environments.
I've also searched for the topics on Google and on FrozenKeep and found about 3 posts talking about it.
1. viewtopic.php?f=5&t=38907&hilit=experie ... +2+screens
This was the post with the most information but I fail to find anything in the D2Game.dll, D2Client.dll, and D2Common.dll.
2. viewtopic.php?f=8&t=22757&hilit=2+screen+exp+penalty
Since I was following the tutorial and the links above using 1.13, I couldn't use the direct addresses they had, so I relied on the hex values pertaining to the instructions and went around the code using context clues until I eventually landed into the same code, but with a different address.
In the first link, someone asked Nefarius how easy it was to add this code, and Nefarius responded with: "Just s single NOP."
I also messaged Nefarius about it, but I'm also posting this here so I can open up the discussion. I'm definitely interested in this, and maybe other people are as well.
Anyways, my mod is almost complete, It's a simple mod for the game that I made (mostly soft-code changes since thats were most of my requirements were) to play it the way I wanted to.
The last 3 things that I would like to add are:
1. Experience beyond 2 screens (1.09 and before I believe)
2. 1.09 static field uncapped (This is not required and I know that it can be OP/Abused.
3. Evened out Experience.txt (I've used Nefarius exp generator, and another one in the file center, but they don't work right for w/e reason. They do generate the values but at level 10, it's like 200k experience, as oppose to normal d2 where it's 72k)
Thanks for the help everyone.
I've been coming to these forums for years but I never actually posted anything, just learned. Anyways, I modded before about 4 years ago, but now is the time that I finally decided to dig deeper into code editing (I'm almost 20 now and starting my 3rd year of college, pursuing my BS in Computer Science.. since my brain probably wasn't as developed as it is now, I kinda didn't really understand the concepts of things as deep as I do now).
I completed most of the reading of Sir_General/Myhrginoc Code Editing tutorial and I did all the examples so I can get a deeper hands on understanding of using the environments.
I've also searched for the topics on Google and on FrozenKeep and found about 3 posts talking about it.
1. viewtopic.php?f=5&t=38907&hilit=experie ... +2+screens
This was the post with the most information but I fail to find anything in the D2Game.dll, D2Client.dll, and D2Common.dll.
2. viewtopic.php?f=8&t=22757&hilit=2+screen+exp+penalty
Since I was following the tutorial and the links above using 1.13, I couldn't use the direct addresses they had, so I relied on the hex values pertaining to the instructions and went around the code using context clues until I eventually landed into the same code, but with a different address.
In the first link, someone asked Nefarius how easy it was to add this code, and Nefarius responded with: "Just s single NOP."
I also messaged Nefarius about it, but I'm also posting this here so I can open up the discussion. I'm definitely interested in this, and maybe other people are as well.
Anyways, my mod is almost complete, It's a simple mod for the game that I made (mostly soft-code changes since thats were most of my requirements were) to play it the way I wanted to.
The last 3 things that I would like to add are:
1. Experience beyond 2 screens (1.09 and before I believe)
2. 1.09 static field uncapped (This is not required and I know that it can be OP/Abused.
3. Evened out Experience.txt (I've used Nefarius exp generator, and another one in the file center, but they don't work right for w/e reason. They do generate the values but at level 10, it's like 200k experience, as oppose to normal d2 where it's 72k)
Thanks for the help everyone.
Re: Experience beyond 2 screens in 1.13
look carefully at code posts in 2nd link and you'll see :
search for this constant in olly/ida and you'll find proper function for sure. 0x1900 is your exp range. Nop both lines to remove check
Code: Select all
6FCC32FE . 81FA 00190000 CMP EDX,1900 =6400=80²
6FCC3304 . 77 52 JA SHORT D2Game.6FCC3358
My CE Tools:
D2 Offset Calculator
D2 Offset Calculator
-
- Posts: 82
- Joined: Sat Oct 16, 2010 4:29 pm
Re: Experience beyond 2 screens in 1.13
That's what I did. I searched for 81FA 00190000
81FA (All CMP EDX instructions)
in D2Game.dll, D2Client.dll, and D2Common.dll and I couldn't find anything matching that. Maybe Blizzard changed the range, formula, or maybe I'm just doing it wrong, most likely.
81FA (All CMP EDX instructions)
in D2Game.dll, D2Client.dll, and D2Common.dll and I couldn't find anything matching that. Maybe Blizzard changed the range, formula, or maybe I'm just doing it wrong, most likely.
Re: Experience beyond 2 screens in 1.13
try to change 77 53 to 90 90 at HEX offset DAFCF in d2game.dll
-
- Posts: 82
- Joined: Sat Oct 16, 2010 4:29 pm
Re: Experience beyond 2 screens in 1.13
Thanks !! No wonder I couldn't find it, it wasn't EDX anymore, it was EAX. I'm going to test it out later when I get home today.
Re: Experience beyond 2 screens in 1.13
You were searching for in wrong way and too strictly. Just for your info, you should search for constant -> 0x1900 not for whole command or type "cmp r32, 0x1900" in command search function
My CE Tools:
D2 Offset Calculator
D2 Offset Calculator
-
- Posts: 82
- Joined: Sat Oct 16, 2010 4:29 pm
Re: Experience beyond 2 screens in 1.13
Thanks lolet and Mnw1995. I tried out the changes and it worked perfectly. Just what I've been looking for a very long time, also thanks for the advice, I definitely was looking for it too strictly. I'm assuming the "r32" is a wildcard for any 32 bit register?
EDIT: Posting offsets just in case anyone else wants them in the future for 1.13c.
EDIT: Posting offsets just in case anyone else wants them in the future for 1.13c.
Code: Select all
D2GameBase @ 0x7441000
0751AFCA . 3D 00190000 CMP EAX,1900 <--- NOP
0751AFCF . 77 53 JA SHORT D2Game.0751B024 <--- NOP
Offset: D9FCA
- devurandom
- Angel
- Posts: 897
- Joined: Sat Mar 07, 2015 9:07 pm
Re: Experience beyond 2 screens in 1.13
reference:
http://d2mods.info/forum/viewtopic.php?f=8&t=22757
http://d2mods.info/forum/viewtopic.php?f=8&t=58283
[1.13d] Experience beyond 2 screens
http://d2mods.info/forum/viewtopic.php?f=8&t=22757
http://d2mods.info/forum/viewtopic.php?f=8&t=58283
[1.13d] Experience beyond 2 screens
Code: Select all
[1.13d] D2Game.0x87EFF
Code section
6FCA7EF8 03C2 ADD EAX,EDX
6FCA7EFA 3D 00190000 CMP EAX,1900
6FCA7EFF 77 53 JA SHORT 6FCA7F54
6FCA7F01 8B6C24 10 MOV EBP,DWORD PTR SS:[ESP+10]
change
6FCA7EFF 77 53 JA SHORT 6FCA7F54
to
6FCA7EFF 90 NOP
6FCA7F00 90 NOP
Assembly Reference | 1.13d Code Edits | UVLoD | BaseMod Plugin
Fiat paper money is the most elaborate and well devised form of slavery the world has ever seen..
Fiat paper money is the most elaborate and well devised form of slavery the world has ever seen..
- eleriaqueen
- Posts: 57
- Joined: Mon Dec 16, 2019 8:49 am
Re: Experience beyond 2 screens in 1.13
Hi, I NOP-ed both instructions but am unsure if it is safe :
I tested the code edit, there isn't any apparent issue but you (devurandom) chose to only NOP the jump so I'm wondering ...
Code: Select all
cmp eax,1900
ja d2game.2C37F54
- devurandom
- Angel
- Posts: 897
- Joined: Sat Mar 07, 2015 9:07 pm
Re: Experience beyond 2 screens in 1.13
Its old notes for ASM I ported from another reference. The way you did it is just fine.
The way I do it now is with a one byte patch.
The way I do it now is with a one byte patch.
Code: Select all
6FCA7EFF 77 53 JA SHORT 6FCA7F54
to
6FCA7EFF 77 00 JA SHORT 6FCA7F01
Assembly Reference | 1.13d Code Edits | UVLoD | BaseMod Plugin
Fiat paper money is the most elaborate and well devised form of slavery the world has ever seen..
Fiat paper money is the most elaborate and well devised form of slavery the world has ever seen..
- marcelo_20xx
- Posts: 35
- Joined: Fri Aug 25, 2006 2:58 pm
Re: Experience beyond 2 screens in 1.13
Can someone post the code for LoD version 1.09d, I searched for the constant 0x1900 or the CMP EAX/CMP EDX and nothing, thanks in advance