Jump to content
Sign in to follow this  
rei_hunter

Specific Group Search help

Recommended Posts

So i've been using this with cheat engine attached to an android emulator to search for address pointers. 1's for battle and 1's for like world values.

4p:1349 8:* 4p:* 4:1639 8:* 4:* 4p:* 4:* 4:10000

4:980012 4:1 4p:15
~
4:980012 4:10 4p:13
 

Does GG allow use of wildcards in a group search? Something like 1349;*;*;1~1639(Current HP);1639 (MaxHP);*;*;0~50000;*;10000::(I have no idea) (the important ones i'm really looking for is 1349 value, 1~1639 value and 0~50000 value)

Or do i have to really look for them values? (most of the time they're 0, but sometimes they're like FFFF or sometimes they hit negative or something. which is kinda hard to pinpoint if i do a range in the group search)

I use the first one a lot since every time i go into battle, i gotta search those addresses/values every time. They sometimes change depending on battle conditions too.

the 2nd half i dont think i'd have much problem looking them up, i was wondering how'd i go about creating a script so that everytime the game starts and GG attaches itself (or run the script) it searches for those addresses and turns the last value to 0? I mean i do have a list of skill id's and whatnot. Just wondering really, but my main question is the one with AttackValue/CurrentHP/Energy above.

Edited by rei_hunter

Share this post


Link to post
Share on other sites

1 hour ago, rei_hunter said:

Does GG allow use of wildcards in a group search?

Why you not read help?

Use 0~~0 as described in the help.

 

Share this post


Link to post
Share on other sites

1349;0~~0;0~~0;1~1639;1639;0~~0;0~~0;0~~0;0~50000;0~~0;10000::41

Something like that? kinda still messy still though haha... or maybe just without any of the wildcards and just straight up 1349;1~1639;1639;0~50000;10000::41

(I have no idea about that last value/number at all)

Share this post


Link to post
Share on other sites

Yep.

Last number max group size. Depends of what you need from distance between first and last value.

Share this post


Link to post
Share on other sites

Oh thanks it worked. It takes like 1-2minutes though oof.

Is there a way to save your search pattern in GameGuardian itself or something? (like i dont wanna copy paste from somewhere)

Share this post


Link to post
Share on other sites
On 9/12/2019 at 3:08 PM, Enyby said:

Learn about history input. Video in gallery.

[added 4 minutes later]

History usage - GameGuardian (#9plygs3g)

 

Oh thanks. 

Another thing is that 2nd line i was using the 980001D;1~10;1~99::9

Is there a way for me to only have the search result to display the third address? (which conveniently ends with an 8 )

I was checking the scripting/record button, but i couldn't reduce the search results to only that 3rd address. The first and 2nd address are just locators for it 😞 (Being Skill ID and Level)

Share this post


Link to post
Share on other sites
2 hours ago, rei_hunter said:

 

Is there a way for me to only have the search result to display the third address? (which conveniently ends with an 8 )

Load all results to table. Iterate over table. If index is divide to 3 with zero reminder, then this is third value.

local t = gg.getResults(99999)
for i, v in ipairs(t) do
  if i % 3 == 0 then
    print(v)
  end
end

 

Share this post


Link to post
Share on other sites
Script ended:
Perhaps this script needs the latest version of GameGuardian. Try to update to the latest version.

Script error: luaj.LuaError: @/storage/emulated/0/Notes/master skills.lua:52
`for i, v in inpairs(t) do`
attempt to call nil
level = 1, const = 46, proto = 0, upval = 1, vars = 22, code = 113
CALL v12..v13 v12..v14
 ; PC 102 CODE 0101031D OP 29 A 12 B 2 C 4 Bx 1028 sBx -130043
stack traceback:
	/storage/emulated/0/Notes/master skills.lua:52 in main chunk
	[Java]: in ?
	at luaj.LuaValue.checkmetatag(LuaValue.java:2780)
	at luaj.LuaValue.callmt(LuaValue.java:1962)
	at luaj.LuaValue.invoke(LuaValue.java:1682)
	at luaj.LuaValue.invokeNotNull(LuaValue.java:3172)
	at luaj.LuaClosure.execute(LuaClosure.java:518)
	at luaj.LuaClosure.call(LuaClosure.java:159)
	at android.ext.Script.runScript(Script.java:5600)
	at android.ext.Script$ScriptThread.run(Script.java:5370)

I just want that third address to be set to 0.... Anyways. I did a big search with 980001~980060;1~10;0~99::9 then added allthe results to the saved list. Guess ill update gg to see if its just the version

Share this post


Link to post
Share on other sites
1 hour ago, rei_hunter said:

Script ended:
Perhaps this script needs the latest version of GameGuardian. Try to update to the latest version.

Script error: luaj.LuaError: @/storage/emulated/0/Notes/master skills.lua:52
`for i, v in inpairs(t) do`
attempt to call nil
level = 1, const = 46, proto = 0, upval = 1, vars = 22, code = 113
CALL v12..v13 v12..v14
 ; PC 102 CODE 0101031D OP 29 A 12 B 2 C 4 Bx 1028 sBx -130043
stack traceback:
	/storage/emulated/0/Notes/master skills.lua:52 in main chunk
	[Java]: in ?
	at luaj.LuaValue.checkmetatag(LuaValue.java:2780)
	at luaj.LuaValue.callmt(LuaValue.java:1962)
	at luaj.LuaValue.invoke(LuaValue.java:1682)
	at luaj.LuaValue.invokeNotNull(LuaValue.java:3172)
	at luaj.LuaClosure.execute(LuaClosure.java:518)
	at luaj.LuaClosure.call(LuaClosure.java:159)
	at android.ext.Script.runScript(Script.java:5600)
	at android.ext.Script$ScriptThread.run(Script.java:5370)

I just want that third address to be set to 0.... Anyways. I did a big search with 980001~980060;1~10;0~99::9 then added allthe results to the saved list. Guess ill update gg to see if its just the version

local t = gg.getResults(99999)

for i, v in ipairs(t) do  

if i % 3 == 0 then  

 print(v)  

end

end

 

This thing works perfectly fine without any errors. Also if you only want to set third address to 0 then , why don't you try gg.getResults(1,2).

This means gg will skip two items and get the next 1 item. See getResults in gg api for details.

https://gameguardian.net/help/classgg.html#ad0bd7945d37dd140f977ba7180d220f6

And after that you can edit it to 0.

Share this post


Link to post
Share on other sites
10 hours ago, AKRAMRAZA said:

local t = gg.getResults(99999)

for i, v in ipairs(t) do  

if i % 3 == 0 then  

 print(v)  

end

end

 

This thing works perfectly fine without any errors. Also if you only want to set third address to 0 then , why don't you try gg.getResults(1,2).

This means gg will skip two items and get the next 1 item. See getResults in gg api for details.

https://gameguardian.net/help/classgg.html#ad0bd7945d37dd140f977ba7180d220f6

And after that you can edit it to 0.

Nice that gg.getResults has a skip function.. wonder if it can skip everything except every third address. 

Edited by rei_hunter

Share this post


Link to post
Share on other sites

No. Use loop.

local t = gg.getResults(99999)
local out = {}
for i, v in ipairs(t) do
  if i % 3 == 0 then
    out[#out + 1] = v
  end
end
print(out)

 

Share this post


Link to post
Share on other sites
2 minutes ago, Enyby said:

No. Use loop.


local t = gg.getResults(99999)
local out = {}
for i, v in ipairs(t) do
  if i % 3 == 0 then
    out[#out + 1] = v
  end
end
print(out)

 

Yes without loop , you can't achieve that. gg.getResults(i,j) can only be used to skip when we have a certain results and we want to skip first j results and load i results.

Also , you can write it using loadResults() and removeResults() but in that case also you need loop.

Share this post


Link to post
Share on other sites

Got the loop working... Now how to select the addresses for setting their values?

Share this post


Link to post
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
Sign in to follow this  

×
×
  • Create New...