CmP
Contributor-
Posts
663 -
Joined
-
Last visited
-
Days Won
49
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by CmP
-
It's working fine, those invisible bad characters sometimes appear when the code is copied from forum. You need to retype the line in which the error has occurred. Try this file: multi_passwords.lua
-
Here is an example. Should not be hard to adapt/extend it according to what you want. local passwords = {'rt23wrfvcwy4', '14ct4wv4t4v', '3hjtyjywr2r2qw', '123456'} -- list of all valid passwords here local input = gg.prompt({'Enter password:'}, nil, {'text'}) if input == nil then -- Something to do, if user cancelled prompt window else local isValidPass = false for k, v in pairs(passwords) do if input[1] == v then isValidPass = true break end end assert(isValidPass, 'Password is not valid') end
-
No need to pay someone when the script is "protected" like this: 117 [-] GETTABUP 12 0 -56 ; 0 null "os" 118 [-] GETTABLE 12 12 -57 ; "date" 119 [-] LOADK 13 -58 ; "%A" 120 [-] CALL 12 2 2 121 [-] EQ 1 12 -59 ; - "Wednesday" 122 [-] JMP 25 ; to 148 123 [-] GETTABUP 12 0 -56 ; 0 null "os" 124 [-] GETTABLE 12 12 -57 ; "date" 125 [-] LOADK 13 -58 ; "%A" 126 [-] CALL 12 2 2 127 [-] EQ 1 12 -60 ; - "Thursday" 128 [-] JMP 19 ; to 148 129 [-] GETTABUP 12 0 -56 ; 0 null "os" 130 [-] GETTABLE 12 12 -57 ; "date" 131 [-] LOADK 13 -58 ; "%A" 132 [-] CALL 12 2 2 133 [-] EQ 1 12 -61 ; - "Friday" 134 [-] JMP 13 ; to 148 135 [-] GETTABUP 12 0 -56 ; 0 null "os" 136 [-] GETTABLE 12 12 -57 ; "date" 137 [-] LOADK 13 -58 ; "%A" 138 [-] CALL 12 2 2 139 [-] EQ 1 12 -62 ; - "Monday" 140 [-] JMP 7 ; to 148 141 [-] GETTABUP 12 0 -56 ; 0 null "os" 142 [-] GETTABLE 12 12 -57 ; "date" 143 [-] LOADK 13 -58 ; "%A" 144 [-] CALL 12 2 2 145 [-] EQ 1 12 -63 ; - "Tuesday" 146 [-] JMP 1 ; to 148 147 [-] LOADBOOL 12 0 1 148 [-] LOADBOOL 12 1 0 149 [-] EQ 0 12 -64 ; - true 150 [-] JMP 2 ; to 153 151 [-] GETTABUP 13 0 -43 ; 0 null "start" 152 [-] CALL 13 1 1 You can simply change one letter of each string, that is compared with the value returned by os.date('%A') and voila:
-
-
You can modify your function this way: function A1() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('45.0000038147;20.30000114441;4.40000009537;256D;0::84', gg.TYPE_FLOAT) local count = gg.getResultCount() if count == 0 then -- need to check count of results here too, because if nothing found, then next search will be new search, not refine -- something to perform if nothing was found else gg.searchNumber('0', gg.TYPE_FLOAT) count = gg.getResultCount() if count == 0 then -- something to perform if nothing was found else local results = gg.getResults(count) local lastResult = {results[count]} lastResult[1].value = '2.1019477e-44' gg.setValues(lastResult) gg.toast('111! ') end end end This may be considered as implementation of first approach from the ones that Enyby has mentioned. I guess that it is suitable for your case, because such group search usually won't produce many results.
-
-
I was really amazed with last 2-3 updates of the script. It really becomes better with each version. Thanks for your hard work. Also, it's a bit sad, that those guys, who commented before, does not judge the script by how good is it written. Their criteria is: does the script fully restore *random_script_name* to initial form without any effort from their side? If no, their "feedback" will be: "Enbi/Enby/Ember, FIX IT PLSSS" and that is best possible "contribution" from their side... I have one little suggestion to (possibly) improve the script. "Log GG calls" and "dump data from load function calls" used to be separate menu items, now they are merged in one item. I can't judge, if it is good or bad decision, but there are cases, when user does not need to get the results from both of this features at the same time (for example, only log of GG calls is required for user). Possible solution without changes to current menu of the script is to add sub-menu, which will appear after clicking at last item from current menu and will contain multi-choice from 2 elements: "Dump data from load call", "Log all GG calls". Default selection may consist of both items in this case.
-
Moreover, the number WILL change (in most cases). You can't rely on it and of course not on the index number of the desired element in results list. Find other way of searching for required value. Maybe look for patterns before/after the value in memory editor, also check nearby pointers and pointers to the addresses that are close to the address of your value.
-
These symbols probably appear when the code is being copied from forum. Retyping the line where an error occured most likely will help. File with the function and a call to it (run from GG to test, if it works): aimbot_function.lua You don't need to do this. If it's group search and you need to search for values of different types, then you specify the type after the value. Otherwise, you don't. In your case, there is only 1 value, type of the search is "gg.TYPE_FLOAT", meaning that float value will be searched. Example, where specifying the type is needed: Objective — search for double value 4.32, followed by dword value 7274, followed by byte value 87 with group size equal to 14. Search string — "4.32E; 7274D; 87B::14".
-
I have a solution for you, but let's review your code first. 1) There are many redundant calls to clearResults function. Consecutive applying of this function is completely useless. 2) One redundant call to searchNumber function. And why would you specify "gg.TYPE_DOUBLE" in the first search, if you are searching for ONE FLOAT value according to the search string? These calls have same effect: GG performs a search for value "1.91249990463" of float type. Here is the example of how your function could be rewritten to fix the above-mentioned redundancies and to add the ability to modify only required results leaving others untouched: function AIMBOT () gg.toast('Loading Aimbot') gg.clearResults() gg.searchNumber("1.91249990463", gg.TYPE_FLOAT) local results = gg.getResults(10) local targetResultsNumbers = {2, 5, 8} -- table with numbers of results to modify, other results won`t be touched local elementsToModify = {} for i, v in ipairs(targetResultsNumbers) do if results[v] ~= nil then table.insert(elementsToModify, {address = results[v].address; flags = results[v].flags; value = '999999'}) end end if #elementsToModify > 0 then gg.setValues(elementsToModify) end gg.clearResults() gg.toast('Aimbot Enabled') end
-
It depends on what you want to achieve. If you know the address of the value and want to modify it, then only setValues function is needed. But in most cases this won't be enough, because the desired value will change it's address after restarting the game.
-
This is not an error, but a warning. It tells you that loading previously saved list of elements likely won't restore values that you have saved.
-
-
-
Example of obtaining the source code of an encrypted script - GameGuardian
CmP commented on Enyby's gallery image in Video Tutorials
Then you would not ask such questions for sure. If you do understand, what compilation is etc, then why would you write this: attaching non-compiled files? Is not it obvious for you, that if you are asking about decompilation/having problems with it, then you should provide COMPILED files - exactly the ones, that you tried to decompile, not anything else? Did you expect the decompiler to work in all cases when GG is able to run the script? You should at least know that there are tons of ways to "confuse" the decompiler without "ruining" script's logic. Decompiler is intended for reassembling the source code, this cannot be compared to running the script (executing bytecode) at all. That's why decompiler may fail even if GG is able to run the script perfectly. -
Example of obtaining the source code of an encrypted script - GameGuardian
CmP commented on Enyby's gallery image in Video Tutorials
@asc, looks like you don't understand what compilation and decompilation are and why they are used. The files that you have provided are not compiled. They are some kind of "encrypted". It is not the same at all. You need to understand the difference between "compilation" and "encryption" before you can proceed to working with compiled and/or encrypted scripts. -
Answer is here. Error occured in line 620 of your script.
-
ROFL, @Enyby, take a look at this part of source dump of the script. Will those "script protectors" ever stop embarrassing themselves? ?
-
Think yourself. Or did you expect someone to do everything for you? This world does not work like that. You won't get the things done, if you don't work on them yourself.
-
local Re_Loads_protection = nil assert(Re_Loads_protection) It produces exactly same result as the one that you have asked for:
-
You meant, how to bypass that protection, I suppose. There is no way to do that for you, considering that you are asking such simple questions.
-
Trying to decrypt one of those "protected" script with "Script compiler"?) Googling "assert lua" provides tons of answers, aren't you able to do it? Here is the link to lua reference manual in case if you are not able to use the search. https://www.lua.org/manual/5.3/manual.html#6.1
-
@Lokingorknowlidge
-
Add information about your device, name and version of it's operating system. This info is required for those who may be able to help somehow in your case.
-
Have you used optimized version of the app? If not, then you can download it here and try again. Parallel Space + 64-Bit Support (#cy2mamce)