Page 1 of 1

Scripting pointers

Posted: Sun Mar 24, 2019 1:33 pm
by pzaw

I am a little above a total newbie.
I am trying to use cheat engine 6.xx on HMMIII.
I don't know Lua but I do know Pascal/Delphi and assembly for PIC, ATmel etc uP..
Of course this is different from Intel uP asssembly.
I am hardly a professional programmer so ideally if you could explain the steps in as much
detail as possible would be appreciated.

What I am trying to do:
I have pointers to my hero's attributes - Name, level, knowledge, experience, movement, army size etc.
The pointers work 100% every time.

The trouble is I have to edit the offsets for each hero manually. This is a tedious process as there could
be a few heros.and you don't know what heros you will end up with.
Each set of offsets are different for each hero.

What I would ideally like is to make a script to change the pointer offset values according to the hero that I am using.
So this is purely a problem of scripting.

To work out the offset there is an equation that multiplies bytes together like xxxxxxxx +yyy*aaaa+ff+ccc
I have this equation in the add offset box in the "Change Address" Form that pops up when you click on the P->xxxxxxxxx

Now my questions are:

1. Is there a way to programatically change the offset in **this** "Change Address" Form's offset box?
. if so can someone more knowledgable than I am may be able to start me offf.

This method would be ideal as everything is there already just change the offset values programatically.


2. How can read and write to this pointer address programatically without the use of the "Change Address" Form.
. Again can someone more knowledgable than I am may be able to start me offf.

Sudo code I amigine could be:

Read a user-value <- this is for setting values you want. similar to values in tables.
ccc=read from pointer address wwwwwww
variable-offset=xxxxxxxx +yyy*aaaa+ff+ccc
write user-value to variable-offset

Of course I think this is more complicated. To me at least.

Any help would be appreciated.

Re: Scripting pointers

Posted: Tue Mar 26, 2019 10:11 am
by TheyCallMeTim13

Code: Select all

myOffset = readInteger(0xDEADBEEF, true)
In the pointers address/offset:
xxxxxxxx +yyy*aaaa+ff+$myOffset

And if you're writing to the address in Lua, the "$" symbol is not used.

Code: Select all

local offset = readInteger(0xDEADBEEF, true)
local addr = getAddressSafe('xxxxxxxx +yyy*aaaa+ff')
if addr ~= nil then
  writeFloat(addr + offset, 100)

Re: Scripting pointers

Posted: Thu Apr 04, 2019 7:34 pm
by VampTY
Here's something easy and straight to the point, let's say you have your here's level pointer, then :
- pointer being selected just press ctrl+h and you'll do 2 hotkeys, or more, depends how many you want
- first hotkey/increase value with ... 50 or whatever you want
- second hotkey/set value to 0 will set to 0, removing all

This will add things even from can also alter with freeze values by setting them to the value you want (its all in that drop menu in hotkeys), you get the idea, i hoped it helped you!

Note: for god mode, you can have on the same hotkey, let's say F1, so on the pointer, on F1 you select toogle freeze and value set to 100 m but the main thing will be toogle freeze,for example...then second key is the same F1 (will activate in the same time) on this add set value to 100...practice a bit, there's multiple and way more complex ways, this is the short version and easiest one, best of luck!

Re: Scripting pointers

Posted: Fri May 17, 2019 1:27 pm
by anl93
is there a tutorial video how to make this?
thank you. its the same problem i'm having.

Re: Scripting pointers

Posted: Tue Jul 09, 2019 8:30 am
by MartaLabieniec
Yes, there is perfect tutorial how to script pointers here: