pax nova
Posted: Tue Apr 28, 2020 9:19 pm
could you make a table for this game
inf credits
inf health
inf ammo
Community Cheat Tables of Cheat Engine
https://fearlessrevolution.com/
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>80</ID>
<Description>"Unlock all Techs"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,TechBar:Update+9a1)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov byte ptr [rax+39],1
movzx eax,byte ptr [rax+39]
test eax,eax
exit:
jmp returnhere
TechBar:Update+9a1:
jmp newmem
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
TechBar:Update+9a1:
movzx eax,byte ptr [rax+39]
test eax,eax
//Alt: db 0F B6 40 39 85 C0
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>87</ID>
<Description>"getInvisibleFlag"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,WolfFramework:GameManager:UpdateFormationObstacles+b6)
label(returnhere)
label(originalcode)
label(exit)
alloc(getFlag,8)
registersymbol(getFlag)
getFlag:
dq 0
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [getFlag],rax
movzx eax,byte ptr [rax+000001F0]
exit:
jmp returnhere
WolfFramework:GameManager:UpdateFormationObstacles+b6:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
unregistersymbol(getFlag)
dealloc(getFlag)
WolfFramework:GameManager:UpdateFormationObstacles+b6:
movzx eax,byte ptr [rax+000001F0]
//Alt: db 0F B6 80 F0 01 00 00
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>27</ID>
<Description>"isInvisible"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:Yes
0:No
</DropDownList>
<VariableType>4 Bytes</VariableType>
<Address>getFlag</Address>
<Offsets>
<Offset>1F0</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>85</ID>
<Description>"Small VisibilityRange"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,MainPanel:Update+ba18)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [rax+13C],#0
movsxd rax,dword ptr [rax+00000124]
exit:
jmp returnhere
MainPanel:Update+ba18:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
MainPanel:Update+ba18:
movsxd rax,dword ptr [rax+00000124]
//Alt: db 48 63 80 24 01 00 00
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>86</ID>
<Description>"Max Movement Points"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,MainPanel:Update+7d86)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [rax+114],#99
movsxd rax,dword ptr [rax+00000114]
exit:
jmp returnhere
MainPanel:Update+7d86:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
MainPanel:Update+7d86:
movsxd rax,dword ptr [rax+00000114]
//Alt: db 48 63 80 14 01 00 00
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>82</ID>
<Description>"Max Level"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,MainPanel:Update+81f4)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [rax+160],#10
movsxd rax,dword ptr [rax+00000160]
exit:
jmp returnhere
MainPanel:Update+81f4:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
MainPanel:Update+81f4:
movsxd rax,dword ptr [rax+00000160]
//Alt: db 48 63 80 60 01 00 00
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
I dunno. Haven't been yet at multiple cities and i'll need to know how the cities structures are build, but as you say on the offset prob. possible - will prob. add it as the other resources (dropdown switching cities). But it will be now one of the next things.
(v0.5) Yep - 7 hooks for that script.
I actually somewhat had the opposite already - max it out. First I simply added a reverse option just to find out it's reset on next turn. (Did not test that case, just added option for if I might need it.)
That was already done in .4/.5 ?
I'll check what I can do. Might be Pathfinding namespace, BlockManager class ...
Checking the [Link] & the file-changes I'd not expect unwanted behavior. And neither any part of the table to not work anymore, which was (except first topic)/is the case.
EDIT: Forgot to write about that - well, i have not yet tried that, but I guess it will work same way too, but those races and traits are undocumented ids. Just at the end I found where all the loaded traits are stored, but Idk when I might add some automatic reading of that and dropdown options. If you do have some knowledge, check the script on GameManger+20, try to find the GameManger table (check Memory Viewer prob somewhere above one of those City scripts) and look there. But I dunno when I'll look into ít. /EDIT
Concerning that - uff. Rly how they did that in the game ALWAYS relying on the path. I am not sure if it will be possible without heavy code change not suitable for injection.
Since I'm so eager to play the game, I updated most of the options in miraikolus's table.miraikolus wrote: ↑Sat May 16, 2020 11:35 pmYes, traits are here!!! (less effort than thought). It's a bit more complex than before, please keep to instructions, else prob. crashing the game.