Postado Abril 29, 2014 11 anos Autor então, o player começa com o primeiro amuleto, nenhum deles pode ser removido, pois ja editei no item editor, agora o amuleto te que ser trocado nos seguintes leveis: 1; 2; 5; 7; 10; 13; 16; 20; 25; 30; 35; 40; 45; 50; 55; 60; 65; 70; 75; 80; 85; 90; 95; 100; 125; 150; 175; 200; 250; 300; 350; 400; 425; 450; 475; 500; 525; 550; 575; 600; 625; 650; 675; 700 Ot Design: https://discord.gg/VgtVRNmCD7
Postado Abril 29, 2014 11 anos tenho razões pra acreditar que isso vai dar muito errado porque eu sou péssimo em fazer tables mas fica aí uma dica de como eu pensei em fazer o script: function onAdvance(cid, oldLevel, newLevel) local config = { [1] = {id =}, [2] = {id = }, [5] = {id = }, [7] = {id = }, [10] = {id = }, [13] = {id = }, [16] = {id = }, [20] = {id = }, [25] = {id = }, [30] = {id = }, [35] = {id = }, [40] = {id = }, [45] = {id = }, [50] = {id = }, [55] = {id = }, [60] = {id = }, [65] = {id = }, [70] = {id = }, [75] = {id = }, [80] = {id = }, [85] = {id = }, [90] = {id = }, [95] = {id = }, [100] = {id = }, [125] = {id = }, [150] = {id = }, [175] = {id = }, [200] = {id = }, [250] = {id = }, [300] = {id = }, [350] = {id = }, [400] = {id = }, [425] = {id = }, [450] = {id = }, [475] = {id = }, [500] = {id = }, [525] = {id = }, [550] = {id = }, [575] = {id = }, [600] = {id = }, [625] = {id = }, [650] = {id = }, [675] = {id = }, [700] = {id = } } function LevelPlayer(cid) i = 2 if getPlayerLevel(cid) < config[i] and getPlayerLevel(cid) >= config[i-1] then level == config[i-1] else i = i+1 end return level end if skill == 8 and getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == level.id then if newLevel >= LevelPlayer(cid) then doPlayerRemoveItem(cid, level.id, 1) doPlayerAddItem(cid, config[i].id, 1, FALSE, 2) if newLevel == config[i-1] then doPlayerSendTextMessage(cid, 22, "You received "..getItemNameById(level.id).." for reaching "..config[i-1].."") end end end return true end 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 Abril 29, 2014 11 anos Autor vou testar irmao, obrigado pela dedicação os ids ficam assim? [2] = {id=7888} [29/04/2014 04:51:59] [Warning - TalkAction::configureEvent] Duplicate registered talkaction with words: !spells [29/04/2014 04:51:59] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/medal.lua:13: '=' expected near '==' [29/04/2014 04:51:59] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/medal.lua) [29/04/2014 04:51:59] data/creaturescripts/scripts/medal.lua:13: '=' expected near '==' Ot Design: https://discord.gg/VgtVRNmCD7
Postado Abril 29, 2014 11 anos sim, os Id's ficam exatamente assim. O erro na linha 13 tá pedindo == no lugar de só =, vc editou alguma coisa, porque a linha 13 aqui é essa: [25] = {id = }, OBS: Não sei se vai funcionar porque eu não manjo dessas tables compostas: config = { [5] = {id = 7887}, [10] = {id= 7888}} nesse caso o config[1].id seria 7887 por ser o primeiro item da table ou o config[5].id que seria o 7887?? Se alguém souber me responder eu posso arrumar o script pra fazer ele funcionar 100% EDIT: fiz uns testes e arrumei uns bugs que tavam dando, infelizmente o script ainda não tá funcionando mas a lógica continua correta ao meu ver: function onAdvance(cid, skill, oldlevel, newlevel) local config = { [1] = {id = 7887}, [2] = {id = 7888}, [5] = {id = 7889}, [7] = {id = 7890}, [10] = {id = 2129}, [13] = {id = 2130}, [16] = {id = 2131}, [20] = {id = 2132}, [25] = {id = 2133}, [30] = {id = 2134}, [35] = {id = 2135}, [40] = {id = 7898}, [45] = {id = 7899}, [50] = {id = 7900}, [55] = {id = 7901}, [60] = {id = 7902}, [65] = {id = 7903}, [70] = {id = 7904}, [75] = {id = 7905}, [80] = {id = 7906}, [85] = {id = 7907}, [90] = {id = 7908}, [95] = {id = 7909}, [100] = {id = 7910}, [125] = {id = 7911}, [150] = {id = 7912}, [175] = {id = 7913}, [200] = {id = 7914}, [250] = {id = 7915}, [300] = {id = 7916} } local function LevelPlayer(cid) local i = 2 while getPlayerLevel(cid) < config[i] and config[i]~= nil do if getPlayerLevel(cid) >= config[i-1] then local level = config[i-1] else local i = i+1 end end return i end local a = LevelPlayer(cid) -1 if skill == 8 and getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == config[a].id then if newlevel >= config[a] then doPlayerRemoveItem(cid, config[a].id, 1) doPlayerAddItem(cid, config[i].id, 1, FALSE, 2) if newlevel == config[i] then doPlayerSendTextMessage(cid, 22, "You received "..getItemNameById(level.id).." for reaching "..config[a].."") end end end return true end o erro que tá dando é bem bobo mas eu to tomando um baile aqui desse script [29/04/2014 07:33:18] [Error - CreatureScript Interface] [29/04/2014 07:33:18] data/creaturescripts/scripts/hueee.lua:onAdvance [29/04/2014 07:33:18] Description: [29/04/2014 07:33:18] data/creaturescripts/scripts/hueee.lua:40: attempt to compare number with table [29/04/2014 07:33:18] stack traceback: [29/04/2014 07:33:18] data/creaturescripts/scripts/hueee.lua:40: in function 'LevelPlayer' [29/04/2014 07:33:18] data/creaturescripts/scripts/hueee.lua:50: in function <data/creaturescripts/scripts/hueee.lua:1> ele não consegue comparar a table com um valor, por isso eu preciso saber como funciona esse esquema de table dentro de table.. caso contrário eu vou ter que fazer um script gigantesco e vai ficar feio pra caralho Editado Abril 29, 2014 11 anos por xWhiteWolf (veja o histórico de edições) 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 Abril 29, 2014 11 anos Autor eu retirei 80% dos ids pra testar, se não ia ter que adicionar todos e depois refazer caso não desse certo .. Ot Design: https://discord.gg/VgtVRNmCD7
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.