Jump to content

Offset record scipt


RogerAngell2018
 Share

Recommended Posts

  • Moderators

Better would be the support of add search results to save list.  Change address location. And recall the save results back into the search. Maybe implement the record feature to work with this?

Link to comment
Share on other sites

  • Administrators

A script entry can not record all of your actions in a portable form. Everything that can not be written in a general form is not recorded.
You can not record the offset, because it should be written in a general form, and so you can not do it.
You can not say - apply an offset to the 3 result of the search, because tomorrow it will not be the third search result. Even on your device or on another device.
If you save the memory address in the script, the script will become useless even after the game is restarted.

In general, writing a script is not intended to make a ready script, it is impossible by definition, but to provide some workpiece, for later manual editing.

Well, or for writing VERY simple scripts. Something like found a group search and replaced / frozen everything.
Not more difficult than this.

_______________________________________________
added 1 minute later

And what you are talking about (shifting) requires a fine and precise work. Cycles, a clear understanding of what is happening, and why.

Link to comment
Share on other sites

58 minutes ago, Enyby said:

A script entry can not record all of your actions in a portable form. Everything that can not be written in a general form is not recorded.
You can not record the offset, because it should be written in a general form, and so you can not do it.
You can not say - apply an offset to the 3 result of the search, because tomorrow it will not be the third search result. Even on your device or on another device.
If you save the memory address in the script, the script will become useless even after the game is restarted.

In general, writing a script is not intended to make a ready script, it is impossible by definition, but to provide some workpiece, for later manual editing.

Well, or for writing VERY simple scripts. Something like found a group search and replaced / frozen everything.
Not more difficult than this.

_______________________________________________
added 1 minute later

And what you are talking about (shifting) requires a fine and precise work. Cycles, a clear understanding of what is happening, and why.

I know, but im talking of a really nearby address, so the offset is always same.. For exemple, search `x` value and the value that I need to edit is always in [Address(x) -5C]. Even if I restart my game, phone, etc.

Edited by RogerAngell2018
Link to comment
Share on other sites

  • Moderators
3 hours ago, Enyby said:

A script entry can not record all of your actions in a portable form. Everything that can not be written in a general form is not recorded.
You can not record the offset, because it should be written in a general form, and so you can not do it.
You can not say - apply an offset to the 3 result of the search, because tomorrow it will not be the third search result. Even on your device or on another device.
If you save the memory address in the script, the script will become useless even after the game is restarted.

In general, writing a script is not intended to make a ready script, it is impossible by definition, but to provide some workpiece, for later manual editing.

Well, or for writing VERY simple scripts. Something like found a group search and replaced / frozen everything.
Not more difficult than this.

_______________________________________________
added 1 minute later

And what you are talking about (shifting) requires a fine and precise work. Cycles, a clear understanding of what is happening, and why.

I'm not referring to value x out of a series of results, I'm talking all results, shift y distance. Now use these new location as the values you search and edit.

Link to comment
Share on other sites

  • Administrators

Get results into table. loop over table with change address and value. Set values from this table.

In any case all possibility ca not be handled via record. If you need complicated actions you need write script manually.

Link to comment
Share on other sites

  • 6 months later...
On 9/20/2018 at 10:19 AM, Enyby said:

This can not be formalized.
The application can not read minds.
Therefore, you can not do this automatically. Learn programming, API and write manually. All good things are always done by hand.

I didn't find the offset in the API

Link to comment
Share on other sites

  • 2 years later...

Idk where to ask, but that is what i would like to have added, this would be great for faster value searching like in cpp mod menus, for an example i search 2 Float and then an offset of 4 values underneeth it is an aim assist value of 15 Float, Now game guardian is checking 4 values underneeth the 2 Float if the value is 15,  it is gonna edit this value. This is faster then group search (2F;15F:50), i came to this idea because i saw this is how the cpp mod menus value editing works on an youtube video 

At Time 10:30

 

 

Link to comment
Share on other sites

On 1/4/2022 at 5:34 PM, Johnny50 said:

for an example i search 2 Float and then an offset of 4 values underneeth it is an aim assist value of 15 Float

Current capabilities of GG are more than enough to find values that meet this condition. There are 2 main approaches for this case:
  - ordered group search with "placeholder" values;
  - searching for target value and checking whether found results meet the condition(s) (like whether value at offset X is equal to Y).

So the task is to find all float values equal to 15.0 for which float value at offset -16 (-0x10) is equal to 2.0.

With the first approach the code may be next: 

gg.clearResults()
gg.searchNumber("2.0F;0D~~0D;0D~~0D;0~~0D;15.0F::17")
gg.refineNumber("15.0", gg.TYPE_FLOAT)

And the second approach can be implemented, for example, like this: 

gg.clearResults()
gg.searchNumber("15.0", gg.TYPE_FLOAT)
local results = gg.getResults(gg.getResultsCount())
local checkValues = {}
for i, v in ipairs(results) do
  checkValues[i] = {address = v.address - 0x10, flags = gg.TYPE_FLOAT}
end
checkValues = gg.getValues(checkValues)
for i, v in ipairs(checkValues) do
  if v.value ~= 2.0 then -- exact comparison of float values should be avoided in general, but for particular case of value "2.0" it will work
    results[i] = nil
  end
end
gg.loadResults(results)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.