Aberos 71 Postado Abril 19, 2014 Share Postado Abril 19, 2014 Glaera do Ekz nao tenho os dons do lua ^^ , queria saber se tem como diminuir essa função mas sem que ela perca o efeito ^^ função: function getMoves(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("12") then local t = string.explode(text, ",") local TimeSpell1 = tonumber(t[2]) local TimeSpell2 = tonumber(t[3]) local TimeSpell3 = tonumber(t[4]) local TimeSpell4 = tonumber(t[5]) local TimeSpell5 = tonumber(t[6]) local TimeSpell6 = tonumber(t[7]) local TimeSpell7 = tonumber(t[8]) local TimeSpell8 = tonumber(t[9]) local TimeSpell9 = tonumber(t[10]) local TimeSpell10 = tonumber(t[11]) local TimeSpell11 = tonumber(t[12]) local TimeSpell12 = tonumber(t[13]) local progressSpell1= movesWindow:recursiveGetChildById("m1") local progressSpell2= movesWindow:recursiveGetChildById("m2") local progressSpell3= movesWindow:recursiveGetChildById("m3") local progressSpell4= movesWindow:recursiveGetChildById("m4") local progressSpell5= movesWindow:recursiveGetChildById("m5") local progressSpell6= movesWindow:recursiveGetChildById("m6") local progressSpell7= movesWindow:recursiveGetChildById("m7") local progressSpell8= movesWindow:recursiveGetChildById("m8") local progressSpell9= movesWindow:recursiveGetChildById("m9") local progressSpell10= movesWindow:recursiveGetChildById("m10") local progressSpell11= movesWindow:recursiveGetChildById("m11") local progressSpell12= movesWindow:recursiveGetChildById("m12") if progressSpell1:getPercent() < 100 then return end if progressSpell2:getPercent() < 100 then return end if progressSpell3:getPercent() < 100 then return end if progressSpell4:getPercent() < 100 then return end if progressSpell5:getPercent() < 100 then return end if progressSpell6:getPercent() < 100 then return end if progressSpell7:getPercent() < 100 then return end if progressSpell8:getPercent() < 100 then return end if progressSpell9:getPercent() < 100 then return end if progressSpell10:getPercent() < 100 then return end if progressSpell11:getPercent() < 100 then return end if progressSpell12:getPercent() < 100 then return end updateProgressSpell(progressSpell1, TimeSpell1*10, true) updateProgressSpell(progressSpell2, TimeSpell2*10, true) updateProgressSpell(progressSpell3, TimeSpell3*10, true) updateProgressSpell(progressSpell4, TimeSpell4*10, true) updateProgressSpell(progressSpell5, TimeSpell5*10, true) updateProgressSpell(progressSpell6, TimeSpell6*10, true) updateProgressSpell(progressSpell7, TimeSpell7*10, true) updateProgressSpell(progressSpell8, TimeSpell8*10, true) updateProgressSpell(progressSpell9, TimeSpell9*10, true) updateProgressSpell(progressSpell10, TimeSpell10*10, true) updateProgressSpell(progressSpell11, TimeSpell11*10, true) updateProgressSpell(progressSpell12, TimeSpell12*10, true) end end end Link para o comentário Compartilhar em outros sites More sharing options...
0 Noninhouh 118 Postado Abril 19, 2014 Share Postado Abril 19, 2014 tenta fazer com for i = x, não tenho crtza nenhuma pq n sei se isso pega os locais blabla =... function getMoves(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("12") then local t = string.explode(text, ",") for i = 1, 12 do local TimeSpell = tonumber(t[i+1]) local progressSpell = movesWindow:recursiveGetChildById("m"..i) if progressSpell:getPercent() < 100 then return end updateProgressSpell(progressSpell1, TimeSpell*10, true) end end end end Link para o comentário Compartilhar em outros sites More sharing options...
0 Aberos 71 Postado Abril 19, 2014 Autor Share Postado Abril 19, 2014 (editado) Vlw noninhouh ! tipo eu to suando pfield , nele tem a função getPokemonCooldown(cid , x) que informar o tempo do move , mas quando o poke nao tem determinado move , ao inves de informar 0 como tempo ela informa "Don't have this move." , ai sera quem algum jeito de fazer no otc de que quando o tonumber for igual a "Don't have this move." o tonumber retonar 0 para o tempo do cd? em todos Editado Abril 19, 2014 por Aberos Link para o comentário Compartilhar em outros sites More sharing options...
0 Noninhouh 118 Postado Abril 19, 2014 Share Postado Abril 19, 2014 coloca lah algo como: if t[x] == "Don't have this move" then tonumber = 0 else tonumber = tonumber(t[x]) end /\ isso é so um exemplo, e o t[x] é o string.explode(tal, tal) Link para o comentário Compartilhar em outros sites More sharing options...
0 Aberos 71 Postado Abril 20, 2014 Autor Share Postado Abril 20, 2014 (editado) o module fika dando esse erro erro: ERROR: caught a lua call to a bot protected game function, the call was cancelled stack traceback: [C]: ? [C]: in function 'talk' /game_moves/moves.lua:47: in function </game_moves/moves.lua:46> script: local movesButton = nil local movesWindow = nil local icons = {} -- Public functions function init() movesButton = modules.client_topmenu.addRightGameToggleButton('moves', tr('Moves'), 'moves.png', toggle) movesButton:setOn(true) movesWindow = g_ui.displayUI('moves', modules.game_interface.getRootPanel()) movesWindow:setVisible(false) connect(LocalPlayer, { onLevelChange = onLevelChange }) connect(g_game, 'onTextMessage', getMoves) connect(g_game, { onGameEnd = hide } ) end function terminate() disconnect(g_game, { onGameEnd = hide }) disconnect(g_game, 'onTextMessage', getMoves) disconnect(LocalPlayer, { onLevelChange = onLevelChange }) movesWindow:destroy() end function onMiniWindowClose() movesButton:setOn(false) end function hide() movesWindow:setVisible(false) end function show() movesWindow:setVisible(true) end function toggle() if movesButton:isOn() then movesWindow:hide() movesButton:setOn(false) else movesWindow:show() movesButton:setOn(true) end end function onLevelChange(localPlayer, value, percent) g_game.talk("/reloadCDs") end function updateProgressSpell(progressSpell, interval, init) if init then progressSpell:setPercent(0) else progressSpell:setPercent(progressSpell:getPercent() + 1) end if progressSpell:getPercent() < 100 then scheduleEvent(function()updateProgressSpell(progressSpell, interval) end, interval) end if progressSpell:getPercent() >= 100 then end end function getMoves(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("12") then local t = string.explode(text, ",") for i = 1, 12 do local TimeSpell = tonumber(t[i+1]) local progressSpell = movesWindow:recursiveGetChildById("m"..i) if progressSpell:getPercent() < 100 then return end if TimeSpell == "Don't have this move" then TimeSpell = 0 else TimeSpell = TimeSpell*10 end updateProgressSpell(progressSpell, TimeSpell, true) print(TimeSpell) end end end end -- End public functions Editado Abril 20, 2014 por Aberos Link para o comentário Compartilhar em outros sites More sharing options...
0 Noninhouh 118 Postado Abril 20, 2014 Share Postado Abril 20, 2014 (editado) if TimeSpell == "Don't have this move" then SpellTime = 0 else SpellTime = TimeSpell*10 end updateProgressSpell(progressSpell, SpellTime, true) print(SpellTime) end tenta ae Editado Abril 20, 2014 por Noninhouh Link para o comentário Compartilhar em outros sites More sharing options...
0 Aberos 71 Postado Abril 20, 2014 Autor Share Postado Abril 20, 2014 ta dando esse erro agora erro ERROR: protected lua call failed: LUA ERROR: /game_moves/moves.lua:80: attempt to perform arithmetic on local 'TimeSpell' (a nil value) stack traceback: [C]: ? /game_moves/moves.lua:80: in function </game_moves/moves.lua:67> Link para o comentário Compartilhar em outros sites More sharing options...
0 Noninhouh 118 Postado Abril 20, 2014 Share Postado Abril 20, 2014 (editado) if TimeSpell == "Don't have this move" then updateProgressSpell(progressSpell, 0, true) print(0) return end updateProgressSpell(progressSpell, TimeSpell*10, true) print(SpellTime) end tenta ae obs: vo tenta mil jeito ate acha um q n de erro kkkk Editado Abril 20, 2014 por Noninhouh Link para o comentário Compartilhar em outros sites More sharing options...
0 Aberos 71 Postado Abril 20, 2014 Autor Share Postado Abril 20, 2014 (editado) aproveitando o topic , tava tentando fazer uma função que recebe o nome do summon por send e pelo nome ele epga os moves dele e atribui as imgs no uibutton mas nao sei pq le nao ta funfando função local pokes = { ['Charizard'] = {m1 = "Dragon Claw", m2 = "Ember", m3 = "Flamethrower", m4 = "Fireball", m5 = "Fire Fang", m6 = "Raging Blast", m7 = "Fire Blast", m8 = "Wing Attack", m9 = "Magma Storm", m10 = "Scary Face", m11 = "Rage", m12 = "Base"}, } function getIcons(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#poke#") then local t = string.explode(text, ",") local j = tonumber(t[2]) for x = 1, 12 do local movee = ('pokes.[j].m'..x) local path = "/img/"..movee.."_on.png" button = movesWindow:recursiveGetChildById('move'..x) button:setImageSource(path) end end end end eu nao to cosneguindo fazer a função ir na tabela e epgar o nome do move !a sendcancel é assim : doPlayerSendCancel(cid, '#poke#,'..pokename) erro ERROR: Unable to load texture '/img/pokes.[j].m1_on.png': unable to open file '/img/pokes.[j].m1_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m2_on.png': unable to open file '/img/pokes.[j].m2_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m3_on.png': unable to open file '/img/pokes.[j].m3_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m4_on.png': unable to open file '/img/pokes.[j].m4_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m5_on.png': unable to open file '/img/pokes.[j].m5_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m6_on.png': unable to open file '/img/pokes.[j].m6_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m7_on.png': unable to open file '/img/pokes.[j].m7_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m8_on.png': unable to open file '/img/pokes.[j].m8_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m9_on.png': unable to open file '/img/pokes.[j].m9_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m10_on.png': unable to open file '/img/pokes.[j].m10_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m11_on.png': unable to open file '/img/pokes.[j].m11_on.png': O sistema não pode encontrar o caminho especificado. ERROR: Unable to load texture '/img/pokes.[j].m12_on.png': unable to open file '/img/pokes.[j].m12_on.png': O sistema não pode encontrar o caminho especificado Editado Abril 20, 2014 por Aberos Link para o comentário Compartilhar em outros sites More sharing options...
0 Noninhouh 118 Postado Abril 20, 2014 Share Postado Abril 20, 2014 (editado) acho q assim: local movee = ('pokes.[j].m'..x) ele tah pegando 'Dragon Claw1'... tenta assim: local pokes = { ['Charizard'] = {"Dragon Claw", "Ember", "Flamethrower", "Fireball", "Fire Fang", "Raging Blast", "Fire Blast", "Wing Attack", "Magma Storm", "Scary Face", "Rage", "Base"}, } function getIcons(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#poke#") then local t = string.explode(text, ",") local j = tonumber(t[2]) for x = 1, 12 do local movee = pokes.[j].x local path = "/img/"..movee.."_on.png" button = movesWindow:recursiveGetChildById('move'..x) button:setImageSource(path) end end end end Editado Abril 20, 2014 por Noninhouh Link para o comentário Compartilhar em outros sites More sharing options...
0 Aberos 71 Postado Abril 21, 2014 Autor Share Postado Abril 21, 2014 ta dando esse erro erro ERROR: Unable to load module 'game_moves': LUA ERROR: /game_moves/moves.lua:66: '<name>' expected near '[' stack traceback: [C]: ? [C]: in function 'autoLoadModules' /init.lua:49: in main chunk Link para o comentário Compartilhar em outros sites More sharing options...
0 Noninhouh 118 Postado Abril 21, 2014 Share Postado Abril 21, 2014 me passa o script td ou procura ae se tah faltando algum '[' ou ']' Link para o comentário Compartilhar em outros sites More sharing options...
0 Aberos 71 Postado Abril 21, 2014 Autor Share Postado Abril 21, 2014 aki Noninhouh Parece Estar Normal script local movesButton = nil local movesWindow = nil local icons = {} local SpellTime = 0 local pokes = { ['Charizard'] = {"Dragon Claw", "Ember", "Flamethrower", "Fireball", "Fire Fang", "Raging Blast", "Fire Blast", "Wing Attack", "Magma Storm", "Scary Face", "Rage", "Base"}, } -- Public functions function init() movesButton = modules.client_topmenu.addRightGameToggleButton('moves', tr('Moves'), 'moves.png', toggle) movesButton:setOn(true) movesWindow = g_ui.displayUI('moves', modules.game_interface.getRootPanel()) movesWindow:setVisible(false) connect(LocalPlayer, { onLevelChange = onLevelChange }) connect(g_game, 'onTextMessage', getMoves) connect(g_game, 'onTextMessage', getIcons) connect(g_game, { onGameEnd = hide } ) end function terminate() disconnect(g_game, { onGameEnd = hide }) disconnect(g_game, 'onTextMessage', getMoves) disconnect(g_game, 'onTextMessage', getIcons) disconnect(LocalPlayer, { onLevelChange = onLevelChange }) movesWindow:destroy() end function onMiniWindowClose() movesButton:setOn(false) end function hide() movesWindow:setVisible(false) end function show() movesWindow:setVisible(true) end function toggle() if movesButton:isOn() then movesWindow:hide() movesButton:setOn(false) else movesWindow:show() movesButton:setOn(true) end end function onLevelChange(localPlayer, value, percent) g_game.talk("/reloadCDs") end function getIcons(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#poke#") then local t = string.explode(text, ",") local j = tonumber(t[2]) for x = 1, 12 do local movee = pokes.[j].x local path = "/img/"..movee.."_on.png" button = movesWindow:recursiveGetChildById('move'..x) button:setImageSource(path) end end end end function updateProgressSpell(progressSpell, interval, init) if init then progressSpell:setPercent(0) else progressSpell:setPercent(progressSpell:getPercent() + 1) end if progressSpell:getPercent() < 100 then scheduleEvent(function()updateProgressSpell(progressSpell, interval) end, interval) end if progressSpell:getPercent() >= 100 then end end function getMoves(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("12") then local t = string.explode(text, ",") for i = 1, 12 do local TimeSpell = tonumber(t[i+1]) local progressSpell = movesWindow:recursiveGetChildById("m"..i) if TimeSpell == "Don't have this move" then updateProgressSpell(progressSpell, 0, true) print(0) return end updateProgressSpell(progressSpell, TimeSpell*10, true) print(SpellTime) end end end end -- End public functions Link para o comentário Compartilhar em outros sites More sharing options...
0 Slicer 1070 Postado Abril 21, 2014 Share Postado Abril 21, 2014 (editado) como q tas mandando a informaçao pro otc? pq ali tas dando 'tonumber(t[2])' soh q a tabela pokes ali ta com o nome 'charizard'... achu q o mais certo eh assim: function getIcons(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#poke#") then local t = string.explode(text, ",") local j, movee, path, button = t[2] if not pokes[j] then return end for x = 1, #pokes[j] do movee = pokes[j][x] path = "/img/"..movee.."_on.png" button = movesWindow:recursiveGetChildById('move'..x) button:setImageSource(path) end end end end clr q depende de como tas mandando o sendCancel...ps: forum bixado do kct Editado Abril 21, 2014 por Slicer Link para o comentário Compartilhar em outros sites More sharing options...
0 Aberos 71 Postado Abril 21, 2014 Autor Share Postado Abril 21, 2014 Vlw Slicer Deu Certo^^ , agora eu vo te que descobri um jeito de o Dash V6 enviar o tempo dos Moves ^^ Link para o comentário Compartilhar em outros sites More sharing options...
0 Slicer 1070 Postado Abril 21, 2014 Share Postado Abril 21, 2014 como o banana flo, seria melhor deixar a tabela de moves toda no otc... dai tu soh passava o nome do poke e pegava o resto tudo direto no otc... clr q eh chato deixar isso exposto para todos verem e tb ter q lembrar de sempre quando alterar algu no serv, alterar tb no otc mas neh... eh um jeito simples e rapido de fazer isso kk' Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Aberos 71
Glaera do Ekz nao tenho os dons do lua ^^ , queria saber se tem como diminuir essa função mas sem que ela perca o efeito ^^
função:
Link para o comentário
Compartilhar em outros sites
21 respostass a esta questão
Posts Recomendados