Postado Maio 1, 2014 11 anos Autor Solução Resolvido, MaXwEllDeN manja!! local amuletos = { [1] = 7887, [2] = 7888, [5] = 7889, [7] = 7890, [10] = 7891, [13] = 7882, [16] = 7883, [20] = 7885, } function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 and amuletos[newlevel] then doPlayerSendTextMessage(cid, 20, "You received "..getItemNameById(amuletos[newlevel]).." for reaching level ".. newlevel..".") doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).uid, amuletos[newlevel]) end return true end function onLogin(cid) local lower_lvls = {} for level, id in pairs(amuletos) do if level <= getPlayerLevel(cid) then table.insert(lower_lvls, level) end end table.sort(lower_lvls, function(a, b) return a < b end) local amuleto_novo = amuletos[lower_lvls[#lower_lvls]] if amuleto_novo ~= getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid then doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).uid, amuleto_novo) end return true end Ot Design: https://discord.gg/VgtVRNmCD7
Postado Maio 1, 2014 11 anos não entendi essa segunda parte, seria pros players já criados no server terem seus amuletos atualizados? Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Maio 1, 2014 11 anos não entendi essa segunda parte, seria pros players já criados no server terem seus amuletos atualizados? Não, ela serve pra se eu logar, e tiver com um amuleto que é de um nível superior(acontece quando você morre), ele trocar o amuleto para um anterior. Vou tentar explicar a minha lógica pra resolver esse problema. local amuletos = { [1] = 7887, [2] = 7888, [5] = 7889, [7] = 7890, [10] = 7891, [13] = 7882, [16] = 7883, [20] = 7885, } function onLogin(cid) local lower_lvls = {} for level, id in pairs(amuletos) do if level <= getPlayerLevel(cid) then table.insert(lower_lvls, level) end end table.sort(lower_lvls, function(a, b) return a < b end) local amuleto_novo = amuletos[lower_lvls[#lower_lvls]] if amuleto_novo ~= getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid then doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).uid, amuleto_novo) end return true end local amuletos = { [1] = 7887, [2] = 7888, [5] = 7889, [7] = 7890, [10] = 7891, [13] = 7882, [16] = 7883, [20] = 7885, } function onLogin(cid) local lower_lvls = {} for level, id in pairs(amuletos) do if level <= getPlayerLevel(cid) then table.insert(lower_lvls, level) end end table.sort(lower_lvls, function(a, b) return a < b end) local amuleto_novo = amuletos[lower_lvls[#lower_lvls]] if amuleto_novo ~= getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid then doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).uid, amuleto_novo) end return true end local lower_lvls = {} Primeiro, eu crio uma variável que vai ter todos os lvls anteriores ao meu(EM ORDEM CRESCENTE). for level, id in pairs(amuletos) do if level <= getPlayerLevel(cid) then table.insert(lower_lvls, level) end end Aqui, eu coloco todos os leveis menores, ou iguais ao meu, na tabela lower_lvls. OBS: Note que eles não vão ser adicionado necessariamente em ordem crescente. table.sort(lower_lvls, function(a, b) return a < b end) Aqui, ele reorganiza a tabela lower_lvls, para que fique em ordem crescente(Meu objetivo é pegar o último level da tabela, para saber qual amuleto eu devo usar). local amuleto_novo = amuletos[lower_lvls[#lower_lvls]] Aqui ele pega o id do meu novo amuleto, baseado no level que eu deveria ter para pegar ele. Acho que ficou um pouco confuso D: Mas, espero que dê para entender '-' -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Maio 1, 2014 11 anos Autor muito bem explicado mano, é um script bem legal e bem feito Ot Design: https://discord.gg/VgtVRNmCD7
Postado Maio 1, 2014 11 anos Não, ela serve pra se eu logar, e tiver com um amuleto que é de um nível superior(acontece quando você morre), ele trocar o amuleto para um anterior. Vou tentar explicar a minha lógica pra resolver esse problema. Primeiro, eu crio uma variável que vai ter todos os lvls anteriores ao meu(EM ORDEM CRESCENTE). Aqui, eu coloco todos os leveis menores, ou iguais ao meu, na tabela lower_lvls. OBS: Note que eles não vão ser adicionado necessariamente em ordem crescente. Aqui, ele reorganiza a tabela lower_lvls, para que fique em ordem crescente(Meu objetivo é pegar o último level da tabela, para saber qual amuleto eu devo usar). Aqui ele pega o id do meu novo amuleto, baseado no level que eu deveria ter para pegar ele. Acho que ficou um pouco confuso D: Mas, espero que dê para entender '-' me come As explicações do Max são excelentes, graças a ele, eu aprendi muita coisa mesmo sobre script, agora estou aprendendo mais e mais sobre tabelas e etc... REP+ Max, deus te abençoe. 愛"A alma permanece em suas criações" 平(Não dou suporte por mensagem privada.)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.