Chest:
- No Key Requirements
- Lock All Chest
- 0% Trap Chance
No Arrow Decrease
No Durability Loss
Most of these scripts are compatible with the base game as well, not limited to MXL.
I'll try to keep this post at least 3 attachments to declutter and maintain tidiness, deleting the old ones.
Happy? [Link] [Link]
How to use this cheat table?
Install Cheat Engine
Double-click the .CT file in order to open it.
Click the PC icon in Cheat Engine in order to select the game process.
Keep the list.
Activate the trainer options by checking boxes or setting values from 0 to 1
Sigma Version: 2.8.1 - Take no Damage -> Can't be Killed - fixed 'All Waypoints Activated' - Equipment Ignore Level - Run and Walk Speed - Stop Ethereal Items from Dropping - No Durability Loss - /nopickup - Lock All Chest
[ENABLE]
alloc(coefficient,4)
registersymbol(coefficient)
{
"Game.exe"+15875B: 74 0A - je Game.exe+158767
"Game.exe"+15875D: 8B C6 - mov eax,esi
"Game.exe"+15875F: 6B C0 64 - imul eax,eax,64
"Game.exe"+158762: 99 - cdq
"Game.exe"+158763: F7 F9 - idiv ecx
"Game.exe"+158765: 8B F0 - mov esi,eax
"Game.exe"+158767: 8B 47 08 - mov eax,[edi+08]
"Game.exe"+15876A: 3B F0 - cmp esi,eax
"Game.exe"+15876C: 7F 02 - jg Game.exe+158770
"Game.exe"+15876E: 8B F0 - mov esi,eax
// ---------- INJECTING HERE ----------
"Game.exe"+158770: 8B 45 14 - mov eax,[ebp+14]
"Game.exe"+158773: 0F B7 40 06 - movzx eax,word ptr [eax+06]
// ---------- DONE INJECTING ----------
"Game.exe"+158777: 0F AF C6 - imul eax,esi
"Game.exe"+15877A: 99 - cdq
"Game.exe"+15877B: 81 E2 FF 03 00 00 - and edx,000003FF
"Game.exe"+158781: 03 C2 - add eax,edx
"Game.exe"+158783: C1 F8 0A - sar eax,0A
"Game.exe"+158786: F7 D8 - neg eax
"Game.exe"+158788: 03 F0 - add esi,eax
"Game.exe"+15878A: 85 F6 - test esi,esi
"Game.exe"+15878C: 0F 8E 21 FF FF FF - jng Game.exe+1586B3
"Game.exe"+158792: 8B 4D 0C - mov ecx,[ebp+0C]
}
aobscanmodule(aobMagicFind,D2Game.dll,8B 54 24 28 0F B7 42 06)
registersymbol(addressMagicFind)
alloc(injectionMagicFind,64)
label(exitCoefficient)
label(addressMagicFind)
label(returnMagicFind)
injectionMagicFind:
pushf // save flags state
push eax
// esi containt an integer that'll be used to determine item quality
// the higher values means harder to get high quality item
// note that set items are acually considered less qualitative then uniques
mov eax, esi
mov esi,0
cmp [coefficient],0
je exitCoefficient // maximum quality for selected loot table will always drop
push edx // save register state
mov edx,0 // prepare for division
idiv [coefficient] // make quality items coefficient times more likely to drop
mov esi,eax
pop edx // restore register state
exitCoefficient:
pop eax
popf // restore flags state
// original code
mov edx,[esp+28]
movzx eax,word ptr [edx+06]
jmp returnMagicFind
aobMagicFind:
addressMagicFind:
jmp injectionMagicFind
nop
nop
nop
returnMagicFind:
[DISABLE]
addressMagicFind:
db 8B 54 24 28 0F B7 42 06
unregistersymbol(addressMagicFind)
dealloc(injectionMagicFind)
unregistersymbol(coefficient)
dealloc(coefficient)
I also would like to add, it is possible to edit the items in your inventory. Each item is assigned a code (ex. #1G, not accurate but still has a code) if you can find out item codes you can change item in your inventory and test stuff out.
[ENABLE]
alloc(coefficient,4)
registersymbol(coefficient)
{
"Game.exe"+15875B: 74 0A - je Game.exe+158767
"Game.exe"+15875D: 8B C6 - mov eax,esi
"Game.exe"+15875F: 6B C0 64 - imul eax,eax,64
"Game.exe"+158762: 99 - cdq
"Game.exe"+158763: F7 F9 - idiv ecx
"Game.exe"+158765: 8B F0 - mov esi,eax
"Game.exe"+158767: 8B 47 08 - mov eax,[edi+08]
"Game.exe"+15876A: 3B F0 - cmp esi,eax
"Game.exe"+15876C: 7F 02 - jg Game.exe+158770
"Game.exe"+15876E: 8B F0 - mov esi,eax
// ---------- INJECTING HERE ----------
"Game.exe"+158770: 8B 45 14 - mov eax,[ebp+14]
"Game.exe"+158773: 0F B7 40 06 - movzx eax,word ptr [eax+06]
// ---------- DONE INJECTING ----------
"Game.exe"+158777: 0F AF C6 - imul eax,esi
"Game.exe"+15877A: 99 - cdq
"Game.exe"+15877B: 81 E2 FF 03 00 00 - and edx,000003FF
"Game.exe"+158781: 03 C2 - add eax,edx
"Game.exe"+158783: C1 F8 0A - sar eax,0A
"Game.exe"+158786: F7 D8 - neg eax
"Game.exe"+158788: 03 F0 - add esi,eax
"Game.exe"+15878A: 85 F6 - test esi,esi
"Game.exe"+15878C: 0F 8E 21 FF FF FF - jng Game.exe+1586B3
"Game.exe"+158792: 8B 4D 0C - mov ecx,[ebp+0C]
}
aobscanmodule(aobMagicFind,D2Game.dll,8B 54 24 28 0F B7 42 06)
registersymbol(addressMagicFind)
alloc(injectionMagicFind,64)
label(exitCoefficient)
label(addressMagicFind)
label(returnMagicFind)
injectionMagicFind:
pushf // save flags state
push eax
// esi containt an integer that'll be used to determine item quality
// the higher values means harder to get high quality item
// note that set items are acually considered less qualitative then uniques
mov eax, esi
mov esi,0
cmp [coefficient],0
je exitCoefficient // maximum quality for selected loot table will always drop
push edx // save register state
mov edx,0 // prepare for division
idiv [coefficient] // make quality items coefficient times more likely to drop
mov esi,eax
pop edx // restore register state
exitCoefficient:
pop eax
popf // restore flags state
// original code
mov edx,[esp+28]
movzx eax,word ptr [edx+06]
jmp returnMagicFind
aobMagicFind:
addressMagicFind:
jmp injectionMagicFind
nop
nop
nop
returnMagicFind:
[DISABLE]
addressMagicFind:
db 8B 54 24 28 0F B7 42 06
unregistersymbol(addressMagicFind)
dealloc(injectionMagicFind)
unregistersymbol(coefficient)
dealloc(coefficient)
I think that's for the other version.
I saw it was already posted here by romkansk
My script specifically works for 1.13c. Median XL team is working on 1.13c, so no need to AoB scan this.
(I avoid using AoB scans on this game because that would not specify the version of the game.)
I also would like to add, it is possible to edit the items in your inventory. Each item is assigned a code (ex. #1G, not accurate but still has a code) if you can find out item codes you can change item in your inventory and test stuff out.
[ENABLE]
alloc(coefficient,4)
registersymbol(coefficient)
{
"Game.exe"+15875B: 74 0A - je Game.exe+158767
"Game.exe"+15875D: 8B C6 - mov eax,esi
"Game.exe"+15875F: 6B C0 64 - imul eax,eax,64
"Game.exe"+158762: 99 - cdq
"Game.exe"+158763: F7 F9 - idiv ecx
"Game.exe"+158765: 8B F0 - mov esi,eax
"Game.exe"+158767: 8B 47 08 - mov eax,[edi+08]
"Game.exe"+15876A: 3B F0 - cmp esi,eax
"Game.exe"+15876C: 7F 02 - jg Game.exe+158770
"Game.exe"+15876E: 8B F0 - mov esi,eax
// ---------- INJECTING HERE ----------
"Game.exe"+158770: 8B 45 14 - mov eax,[ebp+14]
"Game.exe"+158773: 0F B7 40 06 - movzx eax,word ptr [eax+06]
// ---------- DONE INJECTING ----------
"Game.exe"+158777: 0F AF C6 - imul eax,esi
"Game.exe"+15877A: 99 - cdq
"Game.exe"+15877B: 81 E2 FF 03 00 00 - and edx,000003FF
"Game.exe"+158781: 03 C2 - add eax,edx
"Game.exe"+158783: C1 F8 0A - sar eax,0A
"Game.exe"+158786: F7 D8 - neg eax
"Game.exe"+158788: 03 F0 - add esi,eax
"Game.exe"+15878A: 85 F6 - test esi,esi
"Game.exe"+15878C: 0F 8E 21 FF FF FF - jng Game.exe+1586B3
"Game.exe"+158792: 8B 4D 0C - mov ecx,[ebp+0C]
}
aobscanmodule(aobMagicFind,D2Game.dll,8B 54 24 28 0F B7 42 06)
registersymbol(addressMagicFind)
alloc(injectionMagicFind,64)
label(exitCoefficient)
label(addressMagicFind)
label(returnMagicFind)
injectionMagicFind:
pushf // save flags state
push eax
// esi containt an integer that'll be used to determine item quality
// the higher values means harder to get high quality item
// note that set items are acually considered less qualitative then uniques
mov eax, esi
mov esi,0
cmp [coefficient],0
je exitCoefficient // maximum quality for selected loot table will always drop
push edx // save register state
mov edx,0 // prepare for division
idiv [coefficient] // make quality items coefficient times more likely to drop
mov esi,eax
pop edx // restore register state
exitCoefficient:
pop eax
popf // restore flags state
// original code
mov edx,[esp+28]
movzx eax,word ptr [edx+06]
jmp returnMagicFind
aobMagicFind:
addressMagicFind:
jmp injectionMagicFind
nop
nop
nop
returnMagicFind:
[DISABLE]
addressMagicFind:
db 8B 54 24 28 0F B7 42 06
unregistersymbol(addressMagicFind)
dealloc(injectionMagicFind)
unregistersymbol(coefficient)
dealloc(coefficient)
I think that's for the other version.
I saw it was already posted here by romkansk
My script specifically works for 1.13c. Median XL team is working on 1.13c, so no need to AoB scan this.
(I avoid using AoB scans on this game because that would not specify the version of the game.)
I also would like to add, it is possible to edit the items in your inventory. Each item is assigned a code (ex. #1G, not accurate but still has a code) if you can find out item codes you can change item in your inventory and test stuff out.
I also already figured that one
Thats the one! It still works for me, I just tend not to use to due to the amount of item that cover my screen
Also , you can change your class while playing & learn each class skills but it would revert back after saving&loading though, which might break your save:
Hey, plaxor. Would you have an updated table with drop modification? The one by yepsi works fine in the current patch, but it always rolls everything to unique, which leaves no room for sets to drop (as it sets the drop to the highest possible).
Thank you, the table still is working fine and made farming Vizjun much easier.