SunBeam wrote: ↑Mon Sep 28, 2020 11:22 am
Yup, been looking at that in my analysis
Already tried to force enable the menu, by patching some checks , since the code at this point never gets executed. This is not where i am that good. haha but im sure you get that to work
Still working on a Proper No Reload atm
Possible more Proper No Reload Way
Code: Select all
aobscanmodule(_GetPlayerAmmoBase,mafiadefinitiveedition.exe,41 8B 40 04 41 3B C2)
The Instruction there accesses to your Total Ammo you can rerload into your gun. If you check what Values go thru you will notice only your Players Weapon Ammo. So far so good. if you set a BP and it breaks, check the registers. and compare them against your Ammo in Clip (set a bp on that aswell and save the result)
i came up with comparing RCX and RSI against RDI, RPB and RCX
which gives me, AFTER I RELOAD my gun No Reload.
Code: Select all
aobscanmodule(_NoReload2,mafiadefinitiveedition.exe,41 8B 40 18 48 8B 5C 24 30)
Usage GetPlayerAmmoBase
Code: Select all
...
mov [_pPlayerAmmo],rsi
mov [_pPlayerAmmo2],rcx
mov eax,[r8+04]
cmp eax,r10d
....
Usage inside No Reload Script
Note: Somehow the game exchanges the Register Values sometimes, to circumvict that i added a Loop that is checking through the affected registers..
Code: Select all
....
NoReload2Mem:
cmp rbp,[_pPlayerAmmo]
jne Check1
mov [_pAmmoBase],r8
cmp [_enableNoReload],1
jne codeNoReload2
mov [r8+18],#999
Check1:
cmp rbp,[_pPlayerAmmo2]
jne Check2
mov [_pAmmoBase],r8
cmp [_enableNoReload],1
jne codeNoReload2
mov [r8+18],#999
Check2:
cmp rcx,[_pPlayerAmmo]
jne Check3
mov [_pAmmoBase],r8
cmp [_enableNoReload],1
jne codeNoReload2
mov [r8+18],#999
Check3:
cmp rcx,[_pPlayerAmmo2]
jne Check5
mov [_pAmmoBase],r8
cmp [_enableNoReload],1
jne codeNoReload2
mov [r8+18],#999
Check5:
cmp rdi,[_pPlayerAmmo]
jne Check6
mov [_pAmmoBase],r8
cmp [_enableNoReload],1
jne codeNoReload2
mov [r8+18],#999
Check6:
cmp rdi,[_pPlayerAmmo2]
jne codeNoReload2
mov [_pAmmoBase],r8
cmp [_enableNoReload],1
jne codeNoReload2
mov [r8+18],#999
codeNoReload2:
mov eax,[r8+18]
mov rbx,[rsp+30]
jmp returnNoReload2
....