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
How to modify Experience formula 1.13c
Moderators: Nefarius, Havvoric
Re: How to modify Experience formula 1.13c
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
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..
Fiat paper money is the most elaborate and well devised form of slavery the world has ever seen..
Re: How to modify Experience formula 1.13c
Thank you! It works fine!devurandom wrote: ↑Sat Dec 22, 2018 7:15 amYou 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 penaltyCode: 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
Re: How to modify Experience formula 1.13c
Hello!devurandom wrote: ↑Sat Dec 22, 2018 7:15 amYou 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 penaltyCode: 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
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?
Re: How to modify Experience formula 1.13c
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.
// 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.