Jump to content

CmP

Ascended
  • Content Count

    266
  • Donations

    $0.00 
  • Joined

  • Last visited

  • Days Won

    13

CmP last won the day on April 6

CmP had the most liked content!

Community Reputation

271 Boss

About CmP

  • Rank
    Experienced Member

Additional Information

  • Android
    7.x (Nougat)
  • Device
    Xiaomi Redmi Note 4X

Recent Profile Visitors

5,154 profile views
  1. 75.0: Example of seek bar in the script - GameGuardian (#4rwuh7vc)
  2. No, this is not possible, scripts do not have such permissions. Moreover, when "makeRequest" function is used in a script, user will be asked, if he wants to allow internet access for the currently running script.
  3. Use tables and loops. For example, creating array-like table with 6 elements where values are equal to keys: local t = {} for i = 1, 6 do t[i] = i end Then you can access it's elements by their key, like this: print(t[4]) -- prints "4"
  4. CmP

    Seekbar help

    According to the documentation for prompt function, "default" parameter of the function can be used to set default value for any prompt type. Example code for seek bar that "remembers" previous values: local input local defaultValue = 50 while true do if gg.isVisible() then gg.setVisible(false) input = gg.prompt({'Test seek bar [10; 100]'}, {defaultValue}, {'number'}) if input ~= nil then defaultValue = input[1] end end gg.sleep(100) end
  5. CmP

    gg.toast does not show.

    Does it work properly in previous versions? For example, 73.11.
  6. CmP

    Need help pls

    There is no reason in creating checkboxes that will be displayed in prompt window, if the user is not supposed to change their state. If you need to perform one action when checkbox is checked for the first time and another action otherwise, you can use a variable that will indicate, whether the checkbox was checked at least once. Example: local option1Checked = false -- Will be executed once when the checkbox is checked for the first time local function option1Setup() gg.toast('Option 1 was checked for the first time') end -- Will be executed when the checkbox is checked for the second, third, fourth, etc time local function option1Loop() gg.toast('Option 1 was checked') end local function menu() local choice = gg.prompt({'Option 1'}, {false}, {'checkbox'}) if choice ~= nil then if choice[1] then if not option1Checked then option1Setup() option1Checked = true else option1Loop() end end end end while true do if gg.isVisible() then gg.setVisible(false) menu() end gg.sleep(100) end checkbox_example.lua
  7. CmP

    How to freeze value?

    "setValues" function is not intended to freeze values, use "addListItems" function for this.
  8. CmP

    damage hack

    Why would you upload log of the calls to GG API functions without extracting useful code from it? Currently uploaded file is extremely redundant. Around 7500 lines containing "gg.getFile()" and only around 20 lines of actual code. Actual code from the file: But even this code contains some redundancy, i.e. the calls to "gg.getFile" and "debug.traceback" functions.
  9. CmP

    help me please lua

    If you need to repeat the code for a known amount of times, use numerical "for" loop. Example: -- repeat 25 times for i = 1, 25 do -- the code to repeat here end References: https://www.lua.org/manual/5.3/manual.html#3.3.5 http://lua-users.org/wiki/ForTutorial
  10. An example from the topic in "Guides" section: Examples of Lua scripts (#d2j0lrom) If you need other examples, use forum search. Similar questions have been asked multiple times, so it should not be hard to find suitable answer/example.
  11. There is an example in this topic: How To Add This function (#896daqaw) Also refer to the documentation about "alert" function: https://gameguardian.net/help/classgg.html#a07201e70d15be5ac19da2eb3d1c0e352
  12. Storing password(s) as plain text at pastebin is generally bad idea. Such protection is nearly useless. Slightly better approach may be storing hashes of the correct passwords there, computing hash of the input string and comparing it with correct ones. One way to fix your current code is to interpret "content" field of the table returned by "makeRequest" function as string with code that returns a table containing correct passwords. This correction may be applied to your code in 2 steps. First step is to change the contents of your paste. For example, if you have such string: key = {'123', '456'} transform it to: return {'123', '456'} Second step is to fix the code to treat web-page contents accordingly. For example, this code where second line has no meaning: local passwords = gg.makeRequest(pastebin).content) pcall(pw) can be transformed to: local contents = gg.makeRequest(pastebin).content local passwords = load(contents)() If there are no errors, variable "passwords" will contain the table with the correct passwords and the remaining code will work as intended.
  13. A review of the example above for anyone who wonders why it works and why one should not code like this. Second line contains the following code: DESTROYER = gg.makeRequest("link").content There are 3 main steps in this code: 1. "makeRequest" function from "gg" table is called with the corresponding argument. 2. Result returned by the function is indexed with the key "content". 3. Value from the step 2 is saved in "DESTROYER" variable. Then, on the third line there is the following code: if not DESTROYER then which checks the condition and executes the code after "then" keyword, if the condition is true. Otherwise, it executes the code after "else" keyword. To understand, why "one should not code like this", let's review the documentation for "makeRequest" function at GG help. https://gameguardian.net/help/classgg.html#ad020d50d3af0a36733e0cbc231055c55 In this case we are interested in the description of the value returned by the function: Now, let's get back to the second line of the example. When function succeeds, the code from the second line behaves as intended. Table returned by the function is indexed with the key "content" and the result of this operation is stored in the variable. And what happens, when there is an error? String returned by the function is indexed with the key "content" and the value is stored in the variable. By default, there is no meaning of indexing string with a key and luckily for the example, the value returned by such operation is nil. But this behavior is not obvious and not obvious behavior may often lead to errors. Then how can the example be modified to avoid non-obvious behavior? The result of the call to "makeRequest" function should be saved to a variable. Then the type of the variable should be checked. If it is "table", the function has succeeded, the variable can be indexed with the key "content" and the result of this operation can be stored in another variable. And if it is "string", then an error occurred, the contents of the variable can be printed to log (via "print" function) and/or shown to the user (via "alert" function). Example to illustrate the answer above: local functionResult = gg.makeRequest('link') local content if type(functionResult) == 'table' then content = functionResult.content elseif type(functionResult) == 'string' then -- print/alert error description end -- other actions Such modification to the code explicitly shows which actions will be performed and when (function succeeds / function fails) getting rid from non-obvious behavior.
  14. Once again, there is a contradiction between your statement and the reality: You keep repeating that there is "execution error" in @TopGEOYT's script "when cancelling" and that your's example does not have it, but without the correction of what you have called "syntax" your example is meaningless and TopGEOYT's is not. We don't know, have you known about the mistake in your example or not before I have corrected it. Therefore, simple conclusion can be made: your example is worse than TopGEOYT's.
  15. If "a long time ago the error was corrected", then the example that is posted less than 1-2 hours ago would not contain it, but it does. It is posted multiple times and all of the posts contain the mistake I have described. Such references to "the logic" do not show that you are familiar with it or that you understand it's base principles at all.
×
×
  • Create New...