Re: Graveyard Keeper
Posted: Sat Dec 08, 2018 12:32 pm
The table by jawi still works, except the health. That one does not work for me.
Community Cheat Tables of Cheat Engine
https://fearlessrevolution.com/
UpdatedIstrate wrote: ↑Sat Dec 15, 2018 7:58 amHello. The first table posted by ImpalaPUA, especially "Infinite Items (your stack doesn't decrease)" was excelent. But once i updated my game to v1.104.24838-GOG that table doesn't work anymore. The newer ones are handy, but totally lack this desired option. Could you please create a new table with a similar option? The one with "Edit clicked item quantity" is okay, but hard to use because you have to adjust the quantities manually once you modify something, and sometimes this gets bugged. With the older option, the infinite items, i had no problems as I could do anything without loosing the inventory count. Thank you very much.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>1105</ID>
<Description>"Get PlayerComponent"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
assert(PlayerComponent:Update,55 8B EC 57 83 EC 64)
alloc(newmem,2048)
label(returnhere)
label(_player)
registersymbol(_player)
getmonostruct(PlayerComponent)
getmonostruct(WorldGameObject)
getmonostruct(Item)
getmonostruct(GameRes)
registersymbol(PlayerComponent._wgo)
registersymbol(WorldGameObject._data)
registersymbol(Item._params)
registersymbol(GameRes._res_type)
registersymbol(GameRes._res_v)
registersymbol(GameRes._hp)
registersymbol(GameRes._money)
newmem:
push ebp
mov ebp,esp
push edi
sub esp,64
mov edi,[ebp+08]
mov [_player],edi
jmp returnhere
_player:
dq 0
PlayerComponent:Update:
jmp newmem
nop
nop
returnhere:
{$lua}
if syntaxcheck then return end
function addMoreAddresses(desc,addr)
if(getAddressList().getMemoryRecordByDescription(desc) == null)then
local rec = getAddressList().createMemoryRecord()
rec.setAddress("_player")
rec.setOffsetCount(4)
rec.OffsetText[0]= addr
rec.OffsetText[1]= "Item._params"
rec.OffsetText[2]= "WorldGameObject._data"
rec.OffsetText[3]= "PlayerComponent._wgo"
rec.setDescription(desc)
rec.VarType = "vtSingle"
rec.appendToEntry(getAddressList().getMemoryRecordByDescription("Get PlayerComponent"))
end
end
addMoreAddresses("_hp","GameRes._hp")
addMoreAddresses("_money","GameRes._money")
{$asm}
[DISABLE]
dealloc(newmem)
PlayerComponent:Update:
//push ebp
//mov ebp,esp
//push edi
//sub esp,64
db 55 8B EC 57 83 EC 64
unregistersymbol(_player)
unregistersymbol(PlayerComponent._wgo)
unregistersymbol(WorldGameObject._data)
unregistersymbol(Item._params)
unregistersymbol(GameRes._res_type)
unregistersymbol(GameRes._res_v)
unregistersymbol(GameRes._hp)
unregistersymbol(GameRes._money)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>1155</ID>
<Description>"res"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
local num = readInteger("[[[[[_player]+PlayerComponent._wgo]+WorldGameObject._data]+Item._params]+GameRes._res_type]+C")
if (num == null)then num = 10 end
if (num ~= null) then
for i=0, num-1 do
local str = string.format(i)
if(getAddressList().getMemoryRecordByDescription(str) == null)then
local tec = getAddressList().createMemoryRecord()
tec.setAddress("_player")
tec.setDescription(str)
tec.setOffsetCount(7)
tec.Offset[0]= 0xC
tec.Offset[1]= 0x10 + 0x4 * i
tec.Offset[2]= 0x8
tec.OffsetText[3]= "GameRes._res_type"
tec.OffsetText[4]= "Item._params"
tec.OffsetText[5]= "WorldGameObject._data"
tec.OffsetText[6]= "PlayerComponent._wgo"
tec.VarType = "vtString"
tec.String.Size = 100
tec.String.Unicode = true
tec.appendToEntry(getAddressList().getMemoryRecordByDescription("res"))
local vec = getAddressList().createMemoryRecord()
vec.setAddress("_player")
vec.setDescription("value")
vec.setOffsetCount(6)
vec.Offset[0]= 0x10 + 0x4 * i
vec.Offset[1]= 0x8
vec.OffsetText[2]= "GameRes._res_v"
vec.OffsetText[3]= "Item._params"
vec.OffsetText[4]= "WorldGameObject._data"
vec.OffsetText[5]= "PlayerComponent._wgo"
vec.VarType = "vtSingle"
vec.appendToEntry(tec)
end
end
end
[DISABLE]
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Thaks a lot but could you tell me exactly what lines of code you modified? I intend to do the same for the game version 1.201CannonFodder wrote: ↑Mon Jul 08, 2019 5:41 amI hate to carry logs or stones all the way home, so...
I modified game assembly file, making every item on map to fly to player automatically.
For game version 1.123 , steam
Update1: Changed all item fly position to 60 unit right of player, this will make interaction with other things easier when there are lots of logs. Collectables will now stop flying near player if player can collect them.
Update2: All stackable items will now have 5 times max stack size, no more browsing over a long inventory list!
Update3: Removed craft timer, all newly started automatic craft task (such as embalming) will be completed instantly. I need it here and now! There is a side effect, trees will regrow instantly as sooon as you dig out the root. I have finished the game, this is the last update.
It seems the forum added password to the attachment, I will retain it.
password: frf
Assembly-CSharp update1.rar
Assembly-CSharp update2.rar
Assembly-CSharp update3.rar