SovietWristwatch.jpg wrote: ↑Sun Dec 29, 2019 8:42 am
...
If someone can show me how to add the X-Y-Z coords to the cheat table using AOB rather than pointers, I'm sure I can get it working for Steam as well.
You can refer to Byte Pointer (was Research Pointer) script
you can use that method to obtain coordinates from continuously execute opcodes (usually opcodes that access/writes the XYZ values)
create register symbol so that you can take address from the register and mov it to the registersymbol
then add the registersymbol name in the table with it's offset
when script is activated, whenever the opcode executes (that access/writes to the coord addresses), it will write the address to the symbol you have created, and it's more reliable than Pointer (always be static after several game restart/load save)
a little bit of explanation , you can take this method to write for obtain ur coordinates
Code: Select all
aobscanmodule(ResPts,Astro-UWP64-Shipping.exe,F2 0F 11 80 B0 00 00 00 66) // should be unique
alloc(newmem,$1000,"Astro-UWP64-Shipping.exe"+859D17)
label(code)
label(return)
label(Res_pt)
registersymbol(Res_pt) <--(so that "Res_pt" can be use globally)
newmem:
mov [Res_pt],rax <--take address from rax and writes to "Res_pt" rax+0B0 is address for in game "research Bytes"
code:
movsd [rax+000000B0],xmm0 opcode that writes to Byte address value when Research Chamber is running
jmp return
Res_pt: <--- have to declare this symbol
ResPts:
jmp newmem
nop 3
return:
registersymbol(ResPts)
So what it does, when you research something at research chamber that execute "movsd [rax+000000B0],xmm0"
it takes address from "rax" and write to "Res_pt"
Res_Pt = Research Bytes address
by adding "Res_pt" to CE table as new address
dont forget to add offset +0B0
so it is Res_pt+0B0
rax+000000B0 = Res_pt+0B0 then Research Byte value will be shown correctly on Res_pt, works like pointer
Maybe you should look for how to use
fld
fstp
thats more suitable for what you are making Coordinates cheats