How to modify Experience formula 1.13c

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
strafano
Posts: 92
Joined: Mon Feb 19, 2018 12:43 am
Italy

How to modify Experience formula 1.13c

Post by strafano » Fri Dec 21, 2018 6:10 pm

Hi,
I would like to modify the experience formula based on mlvl-clvl.
More specifically i would like to get higher exp with increasing the mlvl-clvl difference.
Any suggestion is appreciated.
Thanks


Alternatively, If my goal is too compliacted to achieve, it would be cool at least to remove the penalty expected by the actual formula for high mlvl-clvl values.


PS: i am working on 1.13c version. I found the following topic, but it is for older versions: viewtopic.php?t=16356

User avatar
devurandom
Forum Regular
Angel
Posts: 897
Joined: Sat Mar 07, 2015 9:07 pm
United States of America

Re: How to modify Experience formula 1.13c

Post by devurandom » Sat Dec 22, 2018 7:15 am

You can change the penalty table values if you want that effect.
If you just want to disable the penalty this is what I used.


Remove mlvl/clvl penalty

Code: Select all

Reference posts:
http://d2mods.info/forum/viewtopic.php?f=8&t=33266
http://d2mods.info/forum/viewtopic.php?f=8&t=32297
http://d2mods.info/forum/viewtopic.php?f=8&t=16356


Remove mlvl/clvl penalty - credit to Myhrginoc
=====================================

[1.14d] - Game.0x17E310 


0017E2F7   2BD6             SUB EDX,ESI
0017E2F9   83FA 0B          CMP EDX,0B
0017E2FC   7C 05            JL SHORT 0017E303
0017E2FE   BA 0A000000      MOV EDX,0A
0017E303   8B1495 68166E00  MOV EDX,DWORD PTR DS:[EDX*4+6E1668]; look up penalty in a table
0017E30A   81FA 00010000    CMP EDX,100
0017E310   74 32            JE SHORT 0017E344


Change

0017E310   74 32            JE SHORT 0017E344

to

0017E310   EB 32            JMP SHORT 0017E344



=====================================

[1.13d] D2Game.87FFA


00087FE2   2BC8             SUB ECX,EAX		; character level - monster level
00087FE4   83F9 0B          CMP ECX,0B		; difference more than 10?
00087FE7   7C 05            JL SHORT 00087FEE
00087FE9   B9 0A000000      MOV ECX,0A		; yes, evaluate at delta = 10
00087FEE   8B048D 9CA3D16F  MOV EAX,DWORD PTR DS:[ECX*4+6FD1A39C]; look up penalty in a table
00087FF5   3D 00010000      CMP EAX,100
00087FFA   74 0A            JE SHORT 00088006	; jump if no penalty


change:

00087FFA   74 0A            JE SHORT 00088006

to


00087FFA   EB 0A            JMP SHORT 00088006




======================================

[1.13c] - D2Game.0xDAA7A


000DAA62   2BC8             SUB ECX,EAX
000DAA64   83F9 0B          CMP ECX,0B
000DAA67   7C 05            JL SHORT 000DAA6E
000DAA69   B9 0A000000      MOV ECX,0A
000DAA6E   8B048D 48A0D16F  MOV EAX,DWORD PTR DS:[ECX*4+6FD1A048]; look up penalty in a table
000DAA75   3D 00010000      CMP EAX,100
000DAA7A   74 0A            JE SHORT 000DAA86


Change

000DAA7A   74 0A            JE SHORT 000DAA86

to

000DAA7A   EB 0A            JMP SHORT 000DAA86

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

strafano
Posts: 92
Joined: Mon Feb 19, 2018 12:43 am
Italy

Re: How to modify Experience formula 1.13c

Post by strafano » Sat Dec 22, 2018 4:30 pm

devurandom wrote:
Sat Dec 22, 2018 7:15 am
You can change the penalty table values if you want that effect.
If you just want to disable the penalty this is what I used.


Remove mlvl/clvl penalty

Code: Select all

Reference posts:
http://d2mods.info/forum/viewtopic.php?f=8&t=33266
http://d2mods.info/forum/viewtopic.php?f=8&t=32297
http://d2mods.info/forum/viewtopic.php?f=8&t=16356


Remove mlvl/clvl penalty - credit to Myhrginoc
=====================================

[1.14d] - Game.0x17E310 


0017E2F7   2BD6             SUB EDX,ESI
0017E2F9   83FA 0B          CMP EDX,0B
0017E2FC   7C 05            JL SHORT 0017E303
0017E2FE   BA 0A000000      MOV EDX,0A
0017E303   8B1495 68166E00  MOV EDX,DWORD PTR DS:[EDX*4+6E1668]; look up penalty in a table
0017E30A   81FA 00010000    CMP EDX,100
0017E310   74 32            JE SHORT 0017E344


Change

0017E310   74 32            JE SHORT 0017E344

to

0017E310   EB 32            JMP SHORT 0017E344



=====================================

[1.13d] D2Game.87FFA


00087FE2   2BC8             SUB ECX,EAX		; character level - monster level
00087FE4   83F9 0B          CMP ECX,0B		; difference more than 10?
00087FE7   7C 05            JL SHORT 00087FEE
00087FE9   B9 0A000000      MOV ECX,0A		; yes, evaluate at delta = 10
00087FEE   8B048D 9CA3D16F  MOV EAX,DWORD PTR DS:[ECX*4+6FD1A39C]; look up penalty in a table
00087FF5   3D 00010000      CMP EAX,100
00087FFA   74 0A            JE SHORT 00088006	; jump if no penalty


change:

00087FFA   74 0A            JE SHORT 00088006

to


00087FFA   EB 0A            JMP SHORT 00088006




======================================

[1.13c] - D2Game.0xDAA7A


000DAA62   2BC8             SUB ECX,EAX
000DAA64   83F9 0B          CMP ECX,0B
000DAA67   7C 05            JL SHORT 000DAA6E
000DAA69   B9 0A000000      MOV ECX,0A
000DAA6E   8B048D 48A0D16F  MOV EAX,DWORD PTR DS:[ECX*4+6FD1A048]; look up penalty in a table
000DAA75   3D 00010000      CMP EAX,100
000DAA7A   74 0A            JE SHORT 000DAA86


Change

000DAA7A   74 0A            JE SHORT 000DAA86

to

000DAA7A   EB 0A            JMP SHORT 000DAA86

Thank you! It works fine! :D

Lunos
Posts: 4
Joined: Tue Mar 28, 2023 9:20 am
Uruguay

Re: How to modify Experience formula 1.13c

Post by Lunos » Tue Mar 28, 2023 9:55 am

devurandom wrote:
Sat Dec 22, 2018 7:15 am
You can change the penalty table values if you want that effect.
If you just want to disable the penalty this is what I used.


Remove mlvl/clvl penalty

Code: Select all

Reference posts:
http://d2mods.info/forum/viewtopic.php?f=8&t=33266
http://d2mods.info/forum/viewtopic.php?f=8&t=32297
http://d2mods.info/forum/viewtopic.php?f=8&t=16356


Remove mlvl/clvl penalty - credit to Myhrginoc
=====================================

[1.14d] - Game.0x17E310 


0017E2F7   2BD6             SUB EDX,ESI
0017E2F9   83FA 0B          CMP EDX,0B
0017E2FC   7C 05            JL SHORT 0017E303
0017E2FE   BA 0A000000      MOV EDX,0A
0017E303   8B1495 68166E00  MOV EDX,DWORD PTR DS:[EDX*4+6E1668]; look up penalty in a table
0017E30A   81FA 00010000    CMP EDX,100
0017E310   74 32            JE SHORT 0017E344


Change

0017E310   74 32            JE SHORT 0017E344

to

0017E310   EB 32            JMP SHORT 0017E344



=====================================

[1.13d] D2Game.87FFA


00087FE2   2BC8             SUB ECX,EAX		; character level - monster level
00087FE4   83F9 0B          CMP ECX,0B		; difference more than 10?
00087FE7   7C 05            JL SHORT 00087FEE
00087FE9   B9 0A000000      MOV ECX,0A		; yes, evaluate at delta = 10
00087FEE   8B048D 9CA3D16F  MOV EAX,DWORD PTR DS:[ECX*4+6FD1A39C]; look up penalty in a table
00087FF5   3D 00010000      CMP EAX,100
00087FFA   74 0A            JE SHORT 00088006	; jump if no penalty


change:

00087FFA   74 0A            JE SHORT 00088006

to


00087FFA   EB 0A            JMP SHORT 00088006




======================================

[1.13c] - D2Game.0xDAA7A


000DAA62   2BC8             SUB ECX,EAX
000DAA64   83F9 0B          CMP ECX,0B
000DAA67   7C 05            JL SHORT 000DAA6E
000DAA69   B9 0A000000      MOV ECX,0A
000DAA6E   8B048D 48A0D16F  MOV EAX,DWORD PTR DS:[ECX*4+6FD1A048]; look up penalty in a table
000DAA75   3D 00010000      CMP EAX,100
000DAA7A   74 0A            JE SHORT 000DAA86


Change

000DAA7A   74 0A            JE SHORT 000DAA86

to

000DAA7A   EB 0A            JMP SHORT 000DAA86

Hello!
I am new around these parts. May I ask how to apply this type of mods that seem to be indications of changes in ASM routines of code?
I see that "[1.13d] D2Game.87FFA" and ASM code right below. Addresses on the left, the bytes in binary form on the right, and after that code with comments.
Is that like, the original code written on the post for reference, and the only change required would be writing EB 0A in the offset 00087FFA of D2Game.dll? Am I interpreting that correctly?

Aliyaa
Posts: 2
Joined: Tue Jun 27, 2023 12:42 pm
India

Re: How to modify Experience formula 1.13c

Post by Aliyaa » Tue Jun 27, 2023 12:43 pm

Hi guys
// Modifying the Experience Formula in Diablo 2 Patch 1.13c

// To adjust the experience formula, locate the function responsible for experience calculation.
// Experiment with modifying the variables related to monster level, player level, and experience gained.
// Test the changes thoroughly to ensure a balanced gameplay experience and consider community feedback.

Post Reply

Return to “Code Editing”