 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
phpjunkie Cheater
Reputation: 0
Joined: 26 Dec 2022 Posts: 26 Location: Wasilla, Ak
|
Posted: Fri Jan 06, 2023 11:28 am Post subject: Suggestions? |
|
|
| Code: | {$TRY}
mov [SaveRCX],rcx
mov rbx,HorizonZeroDawn.exe+071526A8
mov rcx,[rbx]
mov rbx,[rcx+40]
mov rcx,[rbx+50]
mov rbx,[rcx+180]
mov rcx,[rbx+58]
mov rbx,[rcx+48]
mov [Address],rbx
mov rbx,0
mov rcx,[SaveRCX]
{$EXCEPT} |
HorizonZeroDawn.exe+071526A8 is a static address that never changes, and offset 48 is a base offset for any item in the game. F98 is an offset representing the actual item, and 58 is it's count.
Okay, what my issue is, is sometimes Offset 3 changes and I have to generate a new pointer map, and run a new pointer scan to find out what this offset is.
What I'm wandering is, is there a way to find where this offset is being written, so I can write my code around it.
Any suggestions or ideas on how you would go about achieving this?
| Description: |
|
| Filesize: |
79.07 KB |
| Viewed: |
1599 Time(s) |

|
|
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4719
|
Posted: Fri Jan 06, 2023 12:13 pm Post subject: |
|
|
Why is the last offset changing? e.g. if it's an array, you might need to search through the array to find the correct element.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
phpjunkie Cheater
Reputation: 0
Joined: 26 Dec 2022 Posts: 26 Location: Wasilla, Ak
|
Posted: Fri Jan 06, 2023 3:58 pm Post subject: |
|
|
I've been digging through this and found that the only offset that is changing is Offset 2. So far it has only changed between 180, 188, and 190. I've also discovered that Offset 2 seems to be my character.
Offset 5 ( F98 ) is tied directly to an item, and Offset 6 ( 58 ) is how many I have. Offset 5 ( F98 ) is Precision Arrows. If I was to change that offset to 98, it'd become Metal Vessel.
I've been talking to people on discord and someone said that Offset 2 is likely being defined by another module.
Anyway, I've shortened up my script to Offset 2, the one that seems to be my character.
| Code: | mov [SaveRCX],rcx
{$TRY}
mov rbx,HorizonZeroDawn.exe+071526A8
mov rcx,[rbx]
mov rbx,[rcx+40]
mov rcx,[rbx+50]
mov rbx,[rcx+180]
mov [CharacterAddress],rbx
{$EXCEPT}
mov rbx,0
mov rcx,[SaveRCX] | I've also noticed that once I get the address assigned to CharacterAddress it stays constant as long as I use CharacterAddress. The problem I'm having is Offset 3 keeps changing, forcing me to generate a new Pointer Map, and do a new Pointer Scan to get the offset I need.
Last edited by phpjunkie on Fri Jan 06, 2023 4:41 pm; edited 1 time in total |
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4719
|
Posted: Fri Jan 06, 2023 4:37 pm Post subject: |
|
|
| phpjunkie wrote: | | So far it has only changed between 180, 188, and 190. | Sounds like an array of pointers. What happens when it changes? Does the pointer path completely break? Where does it break?
If it is an array of pointers, you could search through the array for some distinguishing information like step 9 of the tutorial.
Maybe it's simply a bad pointer path. If an offset's value changes, it should've been filtered out when you do a rescan.
You could backtrace from an access to the value and figure out a "real" pointer path by reading assembly. Sometimes that's harder than expected when there's more complicated data structures involved (e.g. hash tables).
Also, SaveRCX can be replaced with push / pop, and xor is more commonly used for zeroing a register
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
phpjunkie Cheater
Reputation: 0
Joined: 26 Dec 2022 Posts: 26 Location: Wasilla, Ak
|
Posted: Fri Jan 06, 2023 4:40 pm Post subject: |
|
|
| Sorry, I had to correct my warding in my previous post. It is offset 2 that is breaking my script. It is the offset that is tied directly to my character. The only time it changes is when I fast travel in the game.
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|