Here, scripted with player check (requires Sun's player grabber and offset from Rate Of Fire Multiplier; just enable that first!)
Note: is used a different hook though, now it's more like 'deadeye'
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>83</ID>
<Description>"--aobSpreadCalc"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>// Game : RAGE2.exe
// Version:
// Date :
// Author : Cs
[ENABLE]
aobscanmodule(aobSpreadCalc,RAGE2.exe,F3 0F 11 8B 38 04 00 00)
alloc(newmemSpreadCalc,4096,aobSpreadCalc)
label(aobSpreadCalc_r)
label(aobSpreadCalc_i)
registersymbol(aobSpreadCalc_r)
registersymbol(aobSpreadCalc_i)
label(lblSpreadCalc)
label(lblSpreadCalcSkip)
label(lblSpreadCalcRet)
label(bEnableNoSpread)
registersymbol(bEnableNoSpread)
newmemSpreadCalc:
bEnableNoSpread:
dd 1
lblSpreadCalc:
push rax
push rcx
mov rcx,[g_Player]
test rcx,rcx
jz short lblSpreadCalcSkip
movsxd rax,[iWeaponPlayerOffset]
cmp qword ptr [rax+rbx],rcx
jne short lblSpreadCalcSkip
cmp dword ptr [bEnableNoSpread],1
jne short lblSpreadCalcSkip
xorps xmm1,xmm1
lblSpreadCalcSkip:
pop rcx
pop rax
//Alt: movss [rbx+00000438],xmm1
//db F3 0F 11 8B 38 04 00 00
readmem(aobSpreadCalc,8)
jmp lblSpreadCalcRet
aobSpreadCalc_i:
readmem(aobSpreadCalc,8)
//"RAGE2.exe"+7D4F40:
aobSpreadCalc:
aobSpreadCalc_r:
jmp lblSpreadCalc
nop
nop
nop
lblSpreadCalcRet:
[DISABLE]
//"RAGE2.exe"+7D4F40:
//Alt: movss [rbx+00000438],xmm1
//db F3 0F 11 8B 38 04 00 00
aobSpreadCalc_r:
readmem(aobSpreadCalc_i,8)
unregistersymbol(aobSpreadCalc_r)
unregistersymbol(aobSpreadCalc_i)
unregistersymbol(bEnableNoSpread)
dealloc(newmemSpreadCalc)
{
// ORIGINAL CODE - INJECTION POINT: "RAGE2.exe"+7D4F40
"RAGE2.exe"+7D4F11: F3 0F 59 DF - mulss xmm3,xmm7
"RAGE2.exe"+7D4F15: F3 0F 10 93 38 04 00 00 - movss xmm2,[rbx+00000438]
"RAGE2.exe"+7D4F1D: 0F 28 C3 - movaps xmm0,xmm3
"RAGE2.exe"+7D4F20: 0F 57 05 69 FC F5 01 - xorps xmm0,[RAGE2.exe+2734B90]
"RAGE2.exe"+7D4F27: F3 0F 10 48 08 - movss xmm1,[rax+08]
"RAGE2.exe"+7D4F2C: F3 0F 59 CC - mulss xmm1,xmm4
"RAGE2.exe"+7D4F30: F3 0F 5C CA - subss xmm1,xmm2
"RAGE2.exe"+7D4F34: F3 0F 5F C8 - maxss xmm1,xmm0
"RAGE2.exe"+7D4F38: F3 0F 5D CB - minss xmm1,xmm3
"RAGE2.exe"+7D4F3C: F3 0F 58 CA - addss xmm1,xmm2
// ---------- INJECTING HERE ----------
"RAGE2.exe"+7D4F40: F3 0F 11 8B 38 04 00 00 - movss [rbx+00000438],xmm1
// ---------- DONE INJECTING ----------
"RAGE2.exe"+7D4F48: F3 0F 10 93 3C 04 00 00 - movss xmm2,[rbx+0000043C]
"RAGE2.exe"+7D4F50: 0F 57 F6 - xorps xmm6,xmm6
"RAGE2.exe"+7D4F53: 0F 2E D6 - ucomiss xmm2,xmm6
"RAGE2.exe"+7D4F56: 74 4F - je RAGE2.exe+7D4FA7
"RAGE2.exe"+7D4F58: F3 0F 10 87 84 00 00 00 - movss xmm0,[rdi+00000084]
"RAGE2.exe"+7D4F60: F3 0F 59 C4 - mulss xmm0,xmm4
"RAGE2.exe"+7D4F64: F3 0F 59 C7 - mulss xmm0,xmm7
"RAGE2.exe"+7D4F68: 0F 28 CA - movaps xmm1,xmm2
"RAGE2.exe"+7D4F6B: F3 0F 5D C8 - minss xmm1,xmm0
"RAGE2.exe"+7D4F6F: F3 0F 5C D1 - subss xmm2,xmm1
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>84</ID>
<Description>"bEnableNoSpread"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Disabled
1:Enabled
</DropDownList>
<Color>008000</Color>
<VariableType>4 Bytes</VariableType>
<Address>bEnableNoSpread</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Yeah, and guess what: works perfect for fire rate and no spread
Burns away car ammo very fast though...
Gotta go to bed, sorry, see ya tomorrow.
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