so thanks to the patch today the game is more stable (atleast on my system)
i really wanted a teleport script, found the code from
jgoemat and added a injection point to get the Z value.
player Z value gets +1.0f (+Height Offset) to make sure you can't fall through the map.
if you want to teleport outside the map then increase the value to make sure not to stuck in some rocks/mountains
activate the script and set a map marker and it will auto. teleport.
edit: forgot the instruction for people who don't know how to use the XML code.
copy this code and press ctrl+v in cheat engine - don't open the auto-assembler script window!
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>26523</ID>
<Description>"Teleport Map Marker"</Description>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : HorizonZeroDawn.exe
Version:
Date : 2020-08-14
Author : cfe
based on the XY findings from jgoemat
}
[ENABLE]
// INJECT POINT ----------- > jgoemat
aobscanmodule(aobPlayerPos,HorizonZeroDawn.exe,48 8B 86 E0 00 00 00 48 8D 8E) // should be unique
alloc(newmem,$1000,"HorizonZeroDawn.exe"+66E2B3)
label(code)
label(return)
label(pCharacterProxy)
registersymbol(pCharacterProxy)
newmem:
code:
mov rax,[rsi+000000E0]
mov [pCharacterProxy],rax
jmp return
pCharacterProxy:
dq 0
aobPlayerPos:
jmp newmem
nop 2
return:
registersymbol(aobPlayerPos)
//
// INJECT POINT ----------- > jgoemat
aobscanmodule(aobGetXY,HorizonZeroDawn.exe,48 8B 8F C8 00 00 00 * * * * 08) // should be unique
alloc(newmem2,$1000,"HorizonZeroDawn.exe"+12947FB)
label(code2)
label(return2)
newmem2:
code2:
push rdx
mov rcx,[pCharacterProxy]
test rcx,rcx
je short @f
mov edx,[rax]
mov [rcx+70],edx
mov edx,[rax+4]
mov [rcx+74],edx
@@:
pop rdx
mov rcx,[rdi+000000C8]
jmp return2
aobGetXY:
jmp newmem2
nop 2
return2:
registersymbol(aobGetXY)
//
aobscanmodule(aobGetZ,HorizonZeroDawn.exe,C5 FA 11 51 78 C6 41 7C) // should be unique
alloc(newmem5,$1000,"HorizonZeroDawn.exe"+14C2A06)
label(code5)
label(return5)
label(fAddHeight)
registersymbol(fAddHeight)
newmem5:
code5:
vmovss [rcx+78],xmm2
push rax
mov rax,[pCharacterProxy]
test rax,rax
je short @f
addss xmm2,[fAddHeight]
movss [rax+78],xmm2
@@:
pop rax
jmp return5
fAddHeight:
dd (float)1
aobGetZ:
jmp newmem5
return5:
registersymbol(aobGetZ)
[DISABLE]
aobPlayerPos:
db 48 8B 86 E0 00 00 00
unregistersymbol(aobPlayerPos)
dealloc(newmem)
aobGetXY:
db 48 8B 8F C8 00 00 00
unregistersymbol(aobGetXY)
dealloc(newmem2)
aobGetZ:
db C5 FA 11 51 78
unregistersymbol(pCharacterProxy)
unregistersymbol(aobGetZ)
dealloc(newmem5)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>26524</ID>
<Description>"+Height Offset"</Description>
<LastState Value="2" RealAddress="7FF7442D0028"/>
<VariableType>Float</VariableType>
<Address>fAddHeight</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>