Thanks a bunch for this table. Works great
I noticed the campaign stats editor was missing, so I updated the previous one using Glowmoss's script as a template
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>1337120720</ID>
<Description>"Campaign Stats (Open Stats Menu)"</Description>
<Options moHideChildren="1"/>
<LastState Activated="1"/>
<Color>00BFFF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(StatsCampaign,re7.exe,52 FC 70 FF 8B 41 10 C3 CC) // should be unique
alloc(StatsAll,$1000,StatsCampaign)
alloc(ItemBox,8)
alloc(SteroidsUsed,8)
alloc(HealingUsed,8)
alloc(StabileUsed,8)
alloc(AntiqueCoins,8)
alloc(FilesObtained,8)
alloc(ItemBoxUsage,4)
alloc(HealingUsage,4)
registersymbol(HealingUsage)
registersymbol(ItemBoxUsage)
registersymbol(ItemBox)
registersymbol(SteroidsUsed)
registersymbol(HealingUsed)
registersymbol(StabileUsed)
registersymbol(AntiqueCoins)
registersymbol(FilesObtained)
registersymbol(StatsCampaign)
label(code)
label(return)
label(Item1)
label(Steroid1)
label(Healing1)
label(Stabilize1)
label(Antique1)
label(Files1)
StatsAll:
cmp rdx,3
je Item1
cmp rdx,2
je Healing1
cmp rdx,13
je Stabilize1
cmp rdx,11
je Antique1
cmp rdx,F
je Files1
cmp rdx,14
je Steroid1
jmp code
code:
mov eax,[rcx+10]
ret
int 3
jmp return
Item1:
mov [ItemBox],rcx
cmp [ItemBoxUsage],1
jne code
mov dword ptr [rcx+10],#0
jmp code
Healing1:
mov [HealingUsed],rcx
cmp [HealingUsage],1
jne code
mov dword ptr [rcx+10],#0
jmp code
Stabilize1:
mov [StabileUsed],rcx
jmp code
Antique1:
mov [AntiqueCoins],rcx
jmp code
Files1:
mov [FilesObtained],rcx
jmp code
Steroid1:
mov [SteroidsUsed],rcx
jmp code
StatsCampaign+04:
jmp StatsAll
ret
return:
[DISABLE]
StatsCampaign+04:
db 8B 41 10 C3 CC CC
unregistersymbol(StatsCampaign)
dealloc(StatsAll)
dealloc(ItemBox)
dealloc(SteroidsUsed)
dealloc(HealingUsed)
dealloc(StabileUsed)
dealloc(AntiqueCoins)
dealloc(FilesObtained)
unregistersymbol(ItemBox)
unregistersymbol(SteroidsUsed)
unregistersymbol(HealingUsed)
unregistersymbol(StabileUsed)
unregistersymbol(AntiqueCoins)
unregistersymbol(FilesObtained)
dealloc(ItemBoxUsage)
dealloc(HealingUsage)
unregistersymbol(HealingUsage)
unregistersymbol(ItemBoxUsage)
{
// ORIGINAL CODE - INJECTION POINT: re7.exe+3116B1E
re7.exe+3116B0A: CC - int 3
re7.exe+3116B0B: CC - int 3
re7.exe+3116B0C: CC - int 3
re7.exe+3116B0D: CC - int 3
re7.exe+3116B0E: CC - int 3
re7.exe+3116B0F: CC - int 3
re7.exe+3116B10: 48 83 79 28 00 - cmp qword ptr [rcx+28],00
re7.exe+3116B15: 74 07 - je re7.exe+3116B1E
re7.exe+3116B17: 33 D2 - xor edx,edx
re7.exe+3116B19: E9 52 FC 70 FF - jmp re7.exe+2826770
// ---------- INJECTING HERE ----------
re7.exe+3116B1E: 8B 41 10 - mov eax,[rcx+10]
// ---------- DONE INJECTING ----------
re7.exe+3116B21: C3 - ret
re7.exe+3116B22: CC - int 3
re7.exe+3116B23: CC - int 3
re7.exe+3116B24: CC - int 3
re7.exe+3116B25: CC - int 3
re7.exe+3116B26: CC - int 3
re7.exe+3116B27: CC - int 3
re7.exe+3116B28: CC - int 3
re7.exe+3116B29: CC - int 3
re7.exe+3116B2A: CC - int 3
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>1337120725</ID>
<Description>"Antique Coins Found"</Description>
<LastState Value="33" RealAddress="18076F0EB40"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>AntiqueCoins</Address>
<Offsets>
<Offset>10</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>1337120726</ID>
<Description>"Files Obtained"</Description>
<LastState Value="32" RealAddress="18076F0D2C0"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>FilesObtained</Address>
<Offsets>
<Offset>10</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>1337120721</ID>
<Description>"Item Box Opens"</Description>
<LastState Value="0" RealAddress="18076F07370"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>ItemBox</Address>
<Offsets>
<Offset>10</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>1337120730</ID>
<Description>"Set Item Box Opens To 0?"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:Yes
0:No
</DropDownList>
<LastState Value="1" RealAddress="7FF62F6D1030"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>ItemBoxUsage</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>1337120723</ID>
<Description>"Healing Items Used"</Description>
<LastState Value="0" RealAddress="18076F07320"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>HealingUsed</Address>
<Offsets>
<Offset>10</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>1337120731</ID>
<Description>"Set Healing Used To 0?"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:Yes
0:No
</DropDownList>
<LastState Value="1" RealAddress="7FF62F6D1034"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>HealingUsage</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>1337120724</ID>
<Description>"Stabilizers Used"</Description>
<LastState Value="2" RealAddress="18076F0EBE0"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>StabileUsed</Address>
<Offsets>
<Offset>10</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>1337120722</ID>
<Description>"Steroids Used"</Description>
<LastState Value="3" RealAddress="18076F0EC30"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>SteroidsUsed</Address>
<Offsets>
<Offset>10</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>1337120727</ID>
<Description>"Retry Pointer (Retry to fill value)"</Description>
<Options moHideChildren="1"/>
<LastState Activated="1"/>
<Color>00BFFF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(RestartPtr,re7.exe,FF 81 74 02 00 00) // should be unique
alloc(newmem,$1000,RestartPtr)
alloc(RestartPointer,8)
registersymbol(RestartPointer)
alloc(DisableRetryValue,4)
registersymbol(DisableRetryValue)
label(code)
label(return)
newmem:
mov [RestartPointer],rcx
cmp [DisableRetryValue],1
jne code
jmp return
code:
inc [rcx+00000274]
jmp return
RestartPtr:
jmp newmem
nop
return:
registersymbol(RestartPtr)
[DISABLE]
RestartPtr:
db FF 81 74 02 00 00
unregistersymbol(RestartPtr)
dealloc(newmem)
dealloc(RestartPointer)
unregistersymbol(RestartPointer)
dealloc(DisableRetryValue)
unregistersymbol(DisableRetryValue)
{
// ORIGINAL CODE - INJECTION POINT: re7.exe+21805A0
re7.exe+218056D: 48 8B 43 50 - mov rax,[rbx+50]
re7.exe+2180571: 48 8B 0D 18 22 E7 06 - mov rcx,[re7.exe+8FF2790]
re7.exe+2180578: 4C 39 78 18 - cmp [rax+18],r15
re7.exe+218057C: 0F 85 52 03 00 00 - jne re7.exe+21808D4
re7.exe+2180582: 48 85 C9 - test rcx,rcx
re7.exe+2180585: 0F 84 4E 01 00 00 - je re7.exe+21806D9
re7.exe+218058B: 81 B9 74 02 00 00 9F 86 01 00 - cmp [rcx+00000274],0001869F
re7.exe+2180595: 7D 0F - jnl re7.exe+21805A6
re7.exe+2180597: 48 85 C9 - test rcx,rcx
re7.exe+218059A: 0F 84 39 01 00 00 - je re7.exe+21806D9
// ---------- INJECTING HERE ----------
re7.exe+21805A0: FF 81 74 02 00 00 - inc [rcx+00000274]
// ---------- DONE INJECTING ----------
re7.exe+21805A6: 48 8B 43 50 - mov rax,[rbx+50]
re7.exe+21805AA: 4C 39 78 18 - cmp [rax+18],r15
re7.exe+21805AE: 0F 85 20 03 00 00 - jne re7.exe+21808D4
re7.exe+21805B4: 48 8B 05 DD F2 E6 06 - mov rax,[re7.exe+8FEF898]
re7.exe+21805BB: 48 85 C0 - test rax,rax
re7.exe+21805BE: 74 0A - je re7.exe+21805CA
re7.exe+21805C0: 4C 39 78 10 - cmp [rax+10],r15
re7.exe+21805C4: 74 04 - je re7.exe+21805CA
re7.exe+21805C6: 32 C0 - xor al,al
re7.exe+21805C8: EB 02 - jmp re7.exe+21805CC
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>1337120728</ID>
<Description>"Amount of restarts"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>RestartPointer</Address>
<Offsets>
<Offset>274</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>1337120729</ID>
<Description>"Disable Retry Increase?"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
<LastState Value="1" RealAddress="7FF62F691008"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>ADAD5A</Color>
<VariableType>4 Bytes</VariableType>
<Address>DisableRetryValue</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
I also noticed Not A Hero Infinite Ammo (Clip) was crashing my game.
Adjusted the script like the main game one.
Code: Select all
code:
mov al,01
//setne al
add rsp,20
jmp return
The original just removed the setne. But this seemed to fix it.