[1.13c] No equipment loss on death
Posted: Wed Jan 23, 2019 7:10 pm
.
Serving D2 Mod Makers Since 2000
https://d2mods.info/forum/
I don't know, they might even look different, I'm not sure. You need someone who works with 1.10, not a noob like me.
Code: Select all
0004FEAE 8BCE MOV ECX,ESI
0004FEB0 E8 2B3DFBFF CALL 00003BE0
0004FEB5 50 PUSH EAX
0004FEB6 57 PUSH EDI
0004FEB7 E8 F2C20900 CALL 000EC1AE
0004FEBC 8D95 D0000000 LEA EDX,DWORD PTR SS:[EBP+D0]
0004FEC2 8BCF MOV ECX,EDI
0004FEC4 E8 67B70300 CALL 0008B630
0004FEC9 6A 11 PUSH 11
0004FECB 57 PUSH EDI
0004FECC E8 6DBA0900 CALL 000EB93E
0004FED1 6A 01 PUSH 1
0004FED3 6A 07 PUSH 7
0004FED5 57 PUSH EDI
0004FED6 E8 91B90900 CALL 000EB86C
0004FEDB 8B8F C4000000 MOV ECX,DWORD PTR DS:[EDI+C4]
Code: Select all
000796F7 5F POP EDI
000796F8 5E POP ESI
000796F9 8BC5 MOV EAX,EBP
000796FB 5D POP EBP
000796FC 5B POP EBX
000796FD 83C4 18 ADD ESP,18
00079700 C2 1400 RETN 14
You can try to find it with the method I mentioned above. I'd suggest you to try every similar part of code and test it in the game, until you find the right one. I would test it myself, but I can't switch on 1.10.
Code: Select all
6FC7FBD0 /$ 81EC A4000000 SUB ESP,0A4
Code: Select all
6FC7FBD0 C2 0C00 RETN 0C
6FC7FBD3 90 NOP
6FC7FBD4 90 NOP
6FC7FBD5 90 NOP
Brilliant works like a charm! Thanks thaison and jessedazebrathaison wrote: ↑Fri Jan 25, 2019 1:02 amFor 1.10:
[D2Game.dll - 0x4FBD0]
Origin:Change:Code: Select all
6FC7FBD0 /$ 81EC A4000000 SUB ESP,0A4
Code: Select all
6FC7FBD0 C2 0C00 RETN 0C 6FC7FBD3 90 NOP 6FC7FBD4 90 NOP 6FC7FBD5 90 NOP
Code: Select all
6FC99210 83EC 18 SUB ESP, 18
Code: Select all
6FC99210 C2 0C00 RETN 0C
Code: Select all
6FC9922F E9 C3040000 JMP 6FC996F7
This would corrupt the stackthaison wrote: ↑Tue Mar 12, 2019 11:31 amFor 1.13c:
[D2Game.dll - 0x79210]
Origin:Change:Code: Select all
6FC99210 83EC 18 SUB ESP, 18
Code: Select all
6FC99210 C2 0C00 RETN 0C
This would corrupt the stack too, because the function overwritten has an argument pushed to the stack that's not handled.Znich wrote: ↑Tue Mar 12, 2019 1:15 pmMy solution for 1.13c:
[D2Game.dll - 0x7922F]
Change to:Code: Select all
6FC9922F E9 C3040000 JMP 6FC996F7
Code: Select all
6FC99210 83EC 18 SUB ESP,18 ; D2Game.6FC99210(guessed Arg1,Arg2,Arg3,Arg4,Arg5)
6FC99213 53 PUSH EBX
6FC99214 55 PUSH EBP
Change To:
6FC99210 31C0 XOR EAX,EAX ; D2Game.6FC99210(guessed Arg1,Arg2,Arg3,Arg4,Arg5)
6FC99212 C2 1400 RETN 14
Code: Select all
6FC99237 76 13 JBE SHORT 6FC9924C
Change To:
6FC99237 EB 08 JMP SHORT 6FC99241
Just tried Method 2. Works like a charm. Thank you very much!devurandom wrote: ↑Tue Mar 12, 2019 9:02 pmBoth Methods do the same thing, pick one or the other. - Neither one has been tested against the equipment binding issue mentioned above by csguak.
[1.13c]
Method 1Code: Select all
6FC99210 83EC 18 SUB ESP,18 ; D2Game.6FC99210(guessed Arg1,Arg2,Arg3,Arg4,Arg5) 6FC99213 53 PUSH EBX 6FC99214 55 PUSH EBP Change To: 6FC99210 31C0 XOR EAX,EAX ; D2Game.6FC99210(guessed Arg1,Arg2,Arg3,Arg4,Arg5) 6FC99212 C2 1400 RETN 14
Method 2Code: Select all
6FC99237 76 13 JBE SHORT 6FC9924C Change To: 6FC99237 EB 08 JMP SHORT 6FC99241
Hey! Did you found how to remove the dead bodies? Can you explain it?csguak wrote: ↑Mon Mar 11, 2019 7:31 amHello, thank you so much for this! Saves sooo much time in so many occasions.
However, is there anyway to remove the dead bodies? They are unclickable lol
Edit:
Kidpaddle's max corpse count doesn't fix the issue.
"Player Corpse - maximum or disable"
D2Game.dll - 79234 '[Increase the maximum]'
03B29234 83F8 0F CMP EAX,0F <----- 0F is 15 corpses max. I tried setting it to 0, but didn't work.
;Change the 0F to your new value
///
D2Game.dll - 79237 '[Disable corpses]'
03B29234 83F8 0F CMP EAX,0F
03B29237 76 13 JBE SHORT D2Game.03B2924C
TO
03B29234 83F8 0F CMP EAX,0F
03B29237 90 NOP
03B29238 90 NOP
;This disable corpses from spawning. (which will make gear drops like in hardcore by the way)
The new change is unaffected by the MAX Corpse count change.
Disabling corpse works, but it drops all gear on the field.
Our new corpse seems to be a special spawn.
Yes, use the method 2 suggested by Devurandom.
devurandom wrote: ↑Tue Mar 12, 2019 9:02 pm6FC99237 76 13 JBE SHORT 6FC9924C
Change To:
6FC99237 EB 08 JMP SHORT 6FC99241
Code: Select all
cmp dword ptr [0057F7FCh], 00C88F81h
jnz finish
cmp dword ptr [0057F800h], 10000000h
jnz finish
cmp dword ptr [0057F804h], 8F830000h
jnz finish
cmp dword ptr [0057F808h], 000000C4h
jnz finish
lea eax, [ebp+08h]
push eax ; lpflOldProtect
push 40h ; flNewProtect
push 0Ch ; dwSize
push 0057F7FCh ; lpAddress
call VirtualProtect
test eax, eax
jz finish
mov dword ptr [0057F7FCh], 0002DAE9h
mov dword ptr [0057F800h], 90909000h
mov dword ptr [0057F804h], 8F839090h
lea eax, [ebp+0Ch]
push eax ; lpflOldProtect
push dword ptr [ebp+08h] ; flNewProtect
push 0Ch ; dwSize
push 0057F7FCh ; lpAddress
Code: Select all
cmp word ptr [6FC99237h], 1376h
jnz finish
lea eax, [ebp+08h]
push eax ; lpflOldProtect
push 40h ; flNewProtect
push 02h ; dwSize
push 6FC99237h ; lpAddress
call VirtualProtect
test eax, eax
jz finish
mov word ptr [6FC99237h], 08EBh
lea eax, [ebp+0Ch]
push eax ; lpflOldProtect
push dword ptr [ebp+08h] ; flNewProtect
push 02h ; dwSize
push 6FC99237h ; lpAddress