chandelier Posted Saturday at 06:50 AM Posted Saturday at 06:50 AM (edited) the goal is to make gg toast like this, by using loop and condition. and toast with value at that specific phase phase 1 Symbol : =----- 10 phase 2 Symbol : ==--- 20 phase 3 Symbol : ===-- 30 phase 4 Symbol : ====- 40 phase 5 Symbol : ===== 50 if more than max phase length then os.exit() local initialPhase = {10, 20, 30, 40, 50} local initialSymbol1 = '=' local initialSymbol2 = '-' while true do --length = initialPhase.Max.Length; if phase = length then phase = initialPhase + 1 symbol1 = symbol1 + initialSymbol1 symbol2max = initialSymbol2 * length symbol2 = symbol2max - initialSymbol2 gg.toast('Symbol :'..symbol..symbol2..' !!', true) gg.toast('\n'..initialPhase, true) else os.exit() end end Edited Saturday at 07:00 AM by chandelier
1 CmP Posted Saturday at 04:36 PM Posted Saturday at 04:36 PM local function createPhaseDisplayer(phaseValues, progressSymbol, backgroundSymbol) local phasesCount = #phaseValues local currentPhase = 0 return function () currentPhase = currentPhase + 1 if currentPhase > phasesCount then os.exit() end local indicatorFirstPart = string.rep(progressSymbol, currentPhase) local indicatorSecondPart = string.rep(backgroundSymbol, phasesCount - currentPhase) local indicator = indicatorFirstPart .. indicatorSecondPart local phaseValue = phaseValues[currentPhase] local displayMessage = string.format("phase %d\nSymbol : %s\n%d", currentPhase, indicator, phaseValue) gg.toast(displayMessage, true) end end local phaseValues = {10, 20, 30, 40, 50} local symbol1 = "=" local symbol2 = "-" local displayPhase = createPhaseDisplayer(phaseValues, symbol1, symbol2) -- Testing all phases with one extra for i = 1, #phaseValues + 1 do displayPhase() end
1 MonkeySAN Posted Sunday at 08:20 PM Posted Sunday at 08:20 PM try this for i = 1, #phaseValues do SET_BUFF(phaseValues[i]) displayPhase() end 1
0 chandelier Posted Sunday at 02:06 PM Author Posted Sunday at 02:06 PM awesome work, at first idk what it does, im fine as long as the goal is reached, well i tried it and already experiment on it. and will put the code here on my full script, thankyou so much my good man
0 chandelier Posted Sunday at 03:09 PM Author Posted Sunday at 03:09 PM oof after i implemented on some part of my script, theres some error about bad argument for key 'value' : string expected, got table (field'setValue') function SET_BUFF(BUFF) gg.sleep(6000) local saved_buff = gg.getListItems() local edited_buff = {} for i, v in ipairs(saved_buff) do if v.name == "BUFF" then v.value = BUFF v.freeze = true table.insert(edited_buff, v) end end if #edited_buff > 0 then gg.setValues(edited_buff) gg.addListItems(edited_buff) else gg.toast("NO MATCHING BUFF FOUND.") end end local function createPhaseDisplayer(phaseValues, buffInfo, progressSymbol, backgroundSymbol) local phasesCount = #phaseValues local currentPhase = 0 return function () currentPhase = currentPhase + 1 if currentPhase > phasesCount then os.exit() end local indicatorFirstPart = string.rep(progressSymbol, currentPhase) local indicatorSecondPart = string.rep(backgroundSymbol, phasesCount - currentPhase) local indicator = indicatorFirstPart .. indicatorSecondPart local phaseValue = phaseValues[currentPhase] local buffInfo = buffInfo local displayMessage = string.format("\n%s : %s", buffInfo, indicator) gg.toast(displayMessage, true) end end local phaseValues = {171, 172, 200} local buffInfo = "MISSION" local symbol1 = "=" local symbol2 = "-" local displayPhase = createPhaseDisplayer(phaseValues, buffInfo, symbol1, symbol2) for i = 1, #phaseValues + 1 do SET_BUFF(phaseValues) displayPhase() end the toast in displayPhase() works fine
0 chandelier Posted Monday at 04:19 AM Author Posted Monday at 04:19 AM ahhh i dont know why it works just by deleting +1 on #phaseValues , and adding [i] on SET_BUFF(phaseValues()) well as long as it works im good and i found another problem when im trying to put them on function and call them back inside a function function BUFF_TRIGGER() local symbol1 = "=" local symbol2 = "-" local displayPhase = createPhaseDisplayer(phaseValues, buffInfo, symbol1, symbol2) for i = 1, #phaseValues do SET_BUFF(phaseValues[i]) displayPhase() end end function SET_BUFF(BUFF) gg.sleep(6000) local saved_buff = gg.getListItems() local edited_buff = {} for i, v in ipairs(saved_buff) do if v.name == "BUFF" then v.value = BUFF v.freeze = true table.insert(edited_buff, v) end end if #edited_buff > 0 then gg.setValues(edited_buff) gg.addListItems(edited_buff) else gg.toast("NO MATCHING BUFF FOUND.") end end local function createPhaseDisplayer(phaseValues, buffInfo, progressSymbol, backgroundSymbol) local phasesCount = #phaseValues local currentPhase = 0 return function () currentPhase = currentPhase + 1 if currentPhase > phasesCount then os.exit() end local indicatorFirstPart = string.rep(progressSymbol, currentPhase) local indicatorSecondPart = string.rep(backgroundSymbol, phasesCount - currentPhase) local indicator = indicatorFirstPart .. indicatorSecondPart local phaseValue = phaseValues[currentPhase] local buffInfo = buffInfo local displayMessage = string.format("\n%s : %s", buffInfo, indicator) gg.toast(displayMessage, true) end end function Main() local phaseValues = {171, 172, 200} local buffInfo = "MISSION" BUFF_TRIGGER() end Main()
0 MonkeySAN Posted Monday at 07:57 AM Posted Monday at 07:57 AM (edited) local phaseValues = {171, 172, 200} local buffInfo = "MISSION move this outside Main() and put it at very top of the script local function createPhaseDisplayer(phaseValues, buffInfo, progressSymbol, backgroundSymbol) ... then move this function below it before function BUFF_TRIGGER() Edited Monday at 07:59 AM by MonkeySAN
0 chandelier Posted 21 hours ago Author Posted 21 hours ago (edited) hm maybe for now i will keep them outside function also in a case where i want to put another phase grouping like this : local phaseValues = {{171, 172, 200},{181, 182, 300},{191, 192, 400}} is it allowed to be written like that? after added that, so the full code will be this : function SET_POSITION(P1, P2, P3) local saved = gg.getListItems() local edited = {} for i, v in ipairs(saved) do if v.name == "P1" then v.value = P1 table.insert(edited, v) elseif v.name == "P2" then v.value = P2 table.insert(edited, v) elseif v.name == "P3" then v.value = P3 table.insert(edited, v) end end if #edited > 0 then gg.setValues(edited) gg.addListItems(edited) else gg.toast("NO MATCHING P1/P2/P3 FOUND.") end end local function createPhaseDisplayer(phaseValues, buffInfo, progressSymbol, backgroundSymbol) local phasesCount = #phaseValues local currentPhase = 0 return function () currentPhase = currentPhase + 1 if currentPhase > phasesCount then os.exit() end local indicatorFirstPart = string.rep(progressSymbol, currentPhase) local indicatorSecondPart = string.rep(backgroundSymbol, phasesCount - currentPhase) local indicator = indicatorFirstPart .. indicatorSecondPart local phaseValue = phaseValues[currentPhase] local buffInfo = buffInfo local displayMessage = string.format("\n%s : %s", buffInfo, indicator) gg.toast(displayMessage, true) end end local phaseValues = {{171, 172, 200},{181, 182, 300},{191, 192, 400}} local buffInfo = "MISSION" local symbol1 = "=" local symbol2 = "-" local displayPhase = createPhaseDisplayer(phaseValues, buffInfo, symbol1, symbol2) for i = 1, #phaseValues do SET_POSITION(phaseValues[i]) displayPhase() end Edited 21 hours ago by chandelier
0 MonkeySAN Posted 20 hours ago Posted 20 hours ago for i = 1, #phaseValues do SET_POSITION(phaseValues[i][1], phaseValues[i][2], phaseValues[i][3]) displayPhase() end
0 chandelier Posted 19 hours ago Author Posted 19 hours ago ahh i see, it does work if i do that, thankyou.. a question from me, what if i have so many phase grouping that more than 3? do i need increment for it? so i dont have to write SET_POSITION(phaseValues[i][1], phaseValues[i][2], phaseValues[i][3].............................., phaseValues[i][1000])
0 MonkeySAN Posted 17 hours ago Posted 17 hours ago (edited) for i = 1, #phaseValues do SET_POSITION(table.unpack(phaseValues[i])) displayPhase() end Edited 17 hours ago by MonkeySAN
Question
chandelier
the goal is to make gg toast like this, by using loop and condition. and toast with value at that specific phase
phase 1
Symbol : =-----
10
phase 2
Symbol : ==---
20
phase 3
Symbol : ===--
30
phase 4
Symbol : ====-
40
phase 5
Symbol : =====
50
if more than max phase length then os.exit()
10 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now