|
|
@@ -1,10 +1,37 @@ |
|
|
|
[DISABLE]
|
|
|
|
DevilMayCry4SpecialEdition.exe+4CE8B5:
|
|
|
|
cmp al,01
|
|
|
|
//following jump will cause execution to skip over OnHit event
|
|
|
|
[enable]
|
|
|
|
alloc(newmem,33)
|
|
|
|
label(returnhere)
|
|
|
|
label(originalcode)
|
|
|
|
label(exit)
|
|
|
|
|
|
|
|
[ENABLE]
|
|
|
|
DevilMayCry4SpecialEdition.exe+4CE8B5:
|
|
|
|
//If check evaluates true, execution will flow to generic OnHit event.
|
|
|
|
cmp al,00
|
|
|
|
newmem:
|
|
|
|
//this is a player function that is also shared by Dante boss as well.
|
|
|
|
//before doing the comparison..
|
|
|
|
//check whether the entity is a player or a boss
|
|
|
|
push eax
|
|
|
|
mov eax, [DevilMayCry4SpecialEdition.exe+f59f00]
|
|
|
|
mov eax, [eax+24] //eax = player character
|
|
|
|
cmp ebp, eax //compare entity with player character address
|
|
|
|
pop eax //restore eax
|
|
|
|
jne originalcode //entity is not the player -> get hit as usual
|
|
|
|
mov al, 01
|
|
|
|
|
|
|
|
originalcode:
|
|
|
|
cmp al,01 //al = 0 if entity should be hit
|
|
|
|
je DevilMayCry4SpecialEdition.exe+4CEB91
|
|
|
|
|
|
|
|
exit:
|
|
|
|
jmp returnhere
|
|
|
|
|
|
|
|
"DevilMayCry4SpecialEdition.exe"+4CE8B5:
|
|
|
|
jmp newmem
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
returnhere:
|
|
|
|
|
|
|
|
[disable]
|
|
|
|
dealloc(newmem)
|
|
|
|
"DevilMayCry4SpecialEdition.exe"+4CE8B5:
|
|
|
|
cmp al,01 //al = 0 if entity should be hit
|
|
|
|
je DevilMayCry4SpecialEdition.exe+4CEB91
|