-
Posts
8,811 -
Joined
-
Last visited
-
Days Won
1,033
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Enyby
-
89.0: Reinstallation game with x86 libraries (root and Android 5+) - GameGuardian
Enyby commented on Enyby's gallery image in Video Tutorials
-
89.0: Reinstallation game with x86 libraries (root and Android 5+) - GameGuardian
Enyby commented on Enyby's gallery image in Video Tutorials
-
No.
- 1,987 replies
-
3
-
- GameGuardian APK
- Official Download
-
(and 1 more)
Tagged with:
-
Depends on the specific situation. For example, if the code needs to be executed within a certain time frame or 30 such code sections must be executed. In this case, even for 100 elements there can be a noticeable difference.
-
You can make it is faster, by cache get 'value' from inner table: local results = gg.getResults(5000) for i, v in ipairs(results) do local value = v.value if value == 1014350479 then v.value = 1011011011 elseif value == 1050253722 or value == 1031127695 then v.value = 1 else results[i] = nil end end gg.setValues(results) results = nil
-
No. Any loop work one-by-one. But you do same work again and again. You can compile both examples to LASM and compare count of instructions. You will be unpleasantly surprised by the number of instructions in your code. for i = 1 ,#t1 do if(t1[i].value==1014350479)then -- get t1[i] t1[i].value = 1011011011 -- get t1[i] again elseif(t1[i].value==1050253722 or t1[i].value ==1031127695)then -- get t1[i] two times t1[i].value = 1 -- get t1[i] again end end Lua do not optimize any code. So if you write get same value few times - lua do it for you. With decrease performance, because it is pointless work.
-
By the way, for this reason, this code: local t = {1, 2, 3, ..., 1000} much faster than this: local t = {} t[1] = 1 t[2] = 2 t[3] = 3 ... t[1000] = 1000 For the table, an array of the right size is immediately allocated, and not reallocated repeatedly as it is populated. Although, again, this is true when the number of elements is thousands and tens of thousands, and not when there are hundreds of them. In this case, there will be no apparent difference.
-
this line erase element from table. So setValues do not re-set values and we avoid possibility erase changed value with old one. Also this operation really fast if run on list table (array-like table, called sequence in lua manual). And this is not rebuild table or reallocate memory, just exclude one value. So this way really fast. But if you try (after few remove) add to table some new value, or remove value from hash part - it can call rebuild table with memory reallocation, which is slow.
-
better use ipairs for speed. or you need make local variable for store t[i] . Index over table is not a free. Better use it one time per loop iteration if it is possible. for i, v in ipairs(results) do Already do it for you.
-
Strictly speaking fastest is reuse results table: local results = gg.getResults(5000) for i, v in ipairs(results) do if v.value == 1014350479 then v.value = 1011011011 elseif v.value == 1050253722 or v.value == 1031127695 then v.value = 1 else results[i] = nil end end gg.setValues(results) results = nil
-
better: v.value = 1011011011 edited[#edited + 1] = v do not waste time and memory for duplicate same table.
-
Search not ordered, so order can be any and this code not work properly. This is not even taking into account the fact that there may be duplicates of the same values in a row. [added 1 minute later] Iterate over results, build table and pass it to setValues. Best solution if you have small amount of results.
-
https://gameguardian.net/help/
-
No. No. You need read API help. Do some small examples, use record script feature and so on. Al of these described in help and on forum.
-
Dot decimal separator. So '1.014.350.479' is not a valid number. For change one value from group search need do refine search and editAll after that. Or load all values and work with it in loop. Use 'if' and 'setValues'.
-
92.0: Rebase the saved list via the new address of the item - GameGuardian
Enyby posted a gallery image in Video Tutorials
-
91.0: Load all changed elements as a result of the search - GameGuardian
Enyby commented on Enyby's gallery image in Video Tutorials
-
91.0: Load all changed elements as a result of the search - GameGuardian
Enyby posted a gallery image in Video Tutorials
-
It is not a lua script.
- 1 reply
-
1
-
So that the developer does not close the vulnerability, the game will not be named, and some of the information that allows to identify the game will be changed. The game is quite popular - more than 1 million installations. The game is an RPG. There is PvP mode, there are local companies, many different currencies. Everything is on the server, but the battles themselves are turn-based and are calculated locally. This is the possibility of hacking. In battle, coins may fall out of the rivals. The maximum number of coins per battle is limited and written directly on the screen. This is 240 coins. Also, for killing each opponent’s troops they give a stone. In total there can be up to 8 troops. However, part of the troops may be called up by other troops, so it is impossible to say unequivocally how many stones will be received in battle. But, more often than not, there is no appeal, so there are 8 stones per battle. The maximum number of stones per battle is limited and is 120. Each part of the company contains about 30 battles. Values in memory are not protected. Therefore, starting the battle, it is possible by direct search to find 2 values in memory for gold and 3 for stones. They always have the same offset relative to each other. Gold is easier to find, stones are harder. But once finding a mutual displacement. You can make a saved list with the necessary data. Next, we find the value of gold, we consider the offset between the past and current address and use the relocation to get the addresses of the stones. This can also be done through a script, or through an offset calculator. In fact, the game reuses memory, so the addresses between the battles remain the same almost always. For about 100 battles, only twice was it necessary to do a rebase. After the value is found, we change the value of gold and stones to a maximum of-1. 239 coins and 119 stones. And then we collect some more gold and stones so that the game updates its data everywhere. As a result, the maximum possible number of resources comes from one battle. Experience points are a bonus. They are calculated based on the collected stones. Therefore, after each battle there is an increase in the level of the hero. And each level increase gives bonuses. Thus, you can level up the hero very quickly. The hero’s leveling speed is 10-20 times higher, since we get a level increase for each battle, while the level of opponents grows at a normal speed. Therefore, each subsequent battle is simpler and simpler. And all this works, despite the fact that the game is server-based and almost everything is on the server.
- 1 reply
-
13
-
Need logcat from issue. Gathering information about GG errors (#9ggo57t) Usually it happens if you use your sdcard as extended internal memory. This is cause of bad work of any virtual space.
- 1,987 replies
-
2
-
- GameGuardian APK
- Official Download
-
(and 1 more)
Tagged with:
-
If this not work then this problem of your firmware or some apps/settings on it. Nothing can be done from app side.
-
You do it wrong. Do only reset. And check toasts. [added 4 minutes later] And yes, I think you not try, because you not mention that and I am not a telepath.
-
Start GG - Fix it - Reset the type of floating windows. Or Start GG - Fix it - Select the type of floating windows.- and choose one of color squares and tet again. If not suit you - choose another until find one.