Ir para conteúdo
  • 0

Diminuir Função


Aberos

Pergunta

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

Posts Recomendados

  • 0

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

  • 0

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 por Aberos
Link para o comentário
Compartilhar em outros sites

  • 0

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

  • 0

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 por Aberos
Link para o comentário
Compartilhar em outros sites

  • 0

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 por Noninhouh
Link para o comentário
Compartilhar em outros sites

  • 0

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

  • 0
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 por Noninhouh
Link para o comentário
Compartilhar em outros sites

  • 0

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 por Aberos
Link para o comentário
Compartilhar em outros sites

  • 0

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 por Noninhouh
Link para o comentário
Compartilhar em outros sites

  • 0

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

  • 0

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

  • 0

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'... o.O
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 por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...