Will check in a bit.
By the way, some user a while ago was asking for a fixed God Mode so he'd complete the before last Muspelheim challenge (where you have to avoid being hit). Thinking the challenge would fail, I took distance between me and enemies and only had Atreus fire shock arrows. I ran towards enemies only when there was 1 hit left that'd kill them. But then, at some point, I got hit. And surprise, the challenge didn't end T_T.
This is my updated
God Mode script:
Code: Select all
// Trampolines+00
// Trampolines+10
[ENABLE]
alloc( HealthHook, 0x1000 )
registersymbol( HealthHook )
label( QueryHealthHook )
registersymbol( QueryHealthHook )
label( QueryHealth_o )
registersymbol( QueryHealth_o )
label( MaxHealth )
registersymbol( MaxHealth )
label( UpdateHealthHook )
registersymbol( UpdateHealthHook )
label( UpdateHealth_o )
registersymbol( UpdateHealth_o )
HealthHook:
db CC
align 10 CC
QueryHealthHook:
movss [MaxHealth],xmm0 // store MaxHealth for later use
movss [rax+388],xmm0 // update health to max all the time
QueryHealth_o:
readmem( QueryHealth, 7 ) // original code
jmp far QueryHealth+7
align 10 CC
MaxHealth:
dd 0
align 10 CC
UpdateHealthHook:
mov rax,g_goPlayer
mov rax,[rax]
test rax,rax
je short @f
mov rax,[rax+8]
test rax,rax
je short @f
lea rax,[rax+388]
lea rax,[rax-20]
cmp rax,rbx
jne short @f
movss xmm6,[MaxHealth]
movss xmm8,xmm6
jmp short UpdateHealth_o
@@:
mov rax,[rbx+18]
mov rdx,3128CCBAC7A85561
cmp [rax],rdx
jne short @f
movss xmm6,[rax+18]
movss xmm8,xmm6
UpdateHealth_o:
readmem( UpdateHealth, 5 )
jmp far UpdateHealth+5
Trampolines+00:
jmp far QueryHealthHook
align 10 CC
Trampolines+10:
jmp far UpdateHealthHook
align 10 CC
QueryHealth:
jmp Trampolines+00
nop 2
UpdateHealth:
jmp Trampolines+10
[DISABLE]
QueryHealth:
readmem( QueryHealth_o, 7 )
UpdateHealth:
readmem( UpdateHealth_o, 5 )
unregistersymbol( UpdateHealth_o )
unregistersymbol( UpdateHealthHook )
unregistersymbol( QueryHealth_o )
unregistersymbol( MaxHealth )
unregistersymbol( QueryHealthHook )
dealloc( HealthHook )
unregistersymbol( HealthHook )
While updating it for Unlimited Cursed Mist bar, I also added these:
Code: Select all
line 65: movss xmm8,xmm6
line 73: movss xmm8,xmm6
This makes it so that the calculated value with the subtracted quantity is updated to max. Thus the function always exits without processing anything. And I believe this is what might be the reason the challenge never ends when I get hit
Win, win.
Be back in a bit.
EDIT: I've just replayed now Arena 1, which starts on "Impossible" difficulty. 10 enemies, avoid being hit. Last enemy is a frost golem who, when firing that ray of ice, will kinda always hit you. It hit me. Challenge didn't end. So this works...