Postado Junho 30, 2014 10 anos Esse script do npc, nao ta fazendo a contagem aleatoria, ta dando sempre o mesmo item no reward, alguem explica por que? as vezes ele da sempre o item1 umas 100 vezes, depois de reiniciar o servidor sempre o item2 e assim por diante... local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -------------------------------------- CONFIG --------------------------------------------- local rand = math.random(1,10) local item1, quantidade1 = 2150, 1 -- item1 e quantidade local item2, quantidade2 = 2146, 1 -- item2 e quantidade local item3, quantidade3 = 2147, 1 -- item3 e quantidade local item4, quantidade4 = 2149, 1 -- item4 e quantidade local reward1, quantidade5 = 2544, 1 -- recompensa 1 e quantidade. local reward2, quantidade6 = 2545, 1 -- recompensa 2 e quantidade. local reward3, quantidade7 = 2546, 1 -- recompensa 1 e quantidade. local reward4, quantidade8 = 7364, 1 -- recompensa 2 e quantidade. -------------------------------------------------------------------------------------------- function teste1(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerItemCount(cid, item1) >= quantidade1 and getPlayerItemCount(cid, item2) >= quantidade2 and getPlayerItemCount(cid, item3) >= quantidade3 and getPlayerItemCount(cid, item4) >= quantidade4 then if doPlayerRemoveItem(cid, item1, quantidade1) and doPlayerRemoveItem(cid, item2, quantidade2) and doPlayerRemoveItem(cid, item3, quantidade3) and doPlayerRemoveItem(cid, item4, quantidade4) then if rand <= 4 then npcHandler:say('Você ganhou a recompensa 1!', cid) doPlayerAddItem(cid, reward1, quantidade5) elseif rand >= 5 and rand <= 7 then npcHandler:say('Você ganhou a recompensa 2!', cid) doPlayerAddItem(cid, reward2, quantidade6) elseif rand >= 8 and rand <= 9 then npcHandler:say('Você ganhou a recompensa 3!', cid) doPlayerAddItem(cid, reward3, quantidade7) elseif rand == 10 then npcHandler:say('Você ganhou a recompensa 4!', cid) doPlayerAddItem(cid, reward4, quantidade8) else return false end end else npcHandler:say('You don\'t have these items!', cid) end end keywordHandler:addKeyword({'item'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Somente guerreiros persistentes vao ganhar meus brindes, voce eh um? {guerreiro}"}) local node1 = keywordHandler:addKeyword({'guerreiro'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Para tentar forjar a arma X você precisa ter os items Y, W, Z e V, você tem eles???'}) node1:addChildKeyword({'sim'}, teste1, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node1:addChildKeyword({'nao'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Volte Sempre.', reset = true}) npcHandler:addModule(FocusModule:new()) Editado Julho 1, 2014 10 anos por roach95 (veja o histórico de edições)
Postado Junho 30, 2014 10 anos O título do tópico for alterado de : "Npc script" para "NPC não faz contagem aleatória". Leia as regras do fórum : www.tibiaking.com/forum/forum/23-regras-do-forum/ 2.3 - Use títulos e ícones adequados: Ao criar um novo tópico no fórum, dê a ele um título que esteja relacionado ao conteúdo do tópico. Títulos como "Ajudaaa!" ou "Entrem aqui!" só pioram as coisas: ninguém vai saber do que se trata, e menos pessoas irão entrar para olhar o que você postou.
Postado Julho 1, 2014 10 anos Autor obrigado ViitinG e desculpe pelo erro.. alguem pode dizer o que tem de errado que não está fazendo a contagem?
Postado Julho 2, 2014 10 anos @roach95, me desculpe pela demora, eu sou o autor do script, te ajudei, mas fiz com erro, agora já sei o que é ... Coloque a parte da configuração: -------------------------------------- CONFIG --------------------------------------------- local rand = math.random(1,10) local item1, quantidade1 = 2150, 1 -- item1 e quantidade local item2, quantidade2 = 2146, 1 -- item2 e quantidade local item3, quantidade3 = 2147, 1 -- item3 e quantidade local item4, quantidade4 = 2149, 1 -- item4 e quantidade local reward1, quantidade5 = 2544, 1 -- recompensa 1 e quantidade. local reward2, quantidade6 = 2545, 1 -- recompensa 2 e quantidade. local reward3, quantidade7 = 2546, 1 -- recompensa 1 e quantidade. local reward4, quantidade8 = 7364, 1 -- recompensa 2 e quantidade. -------------------------------------------------------------------------------------------- Dentro da função, ou seja, abaixo dessa linha: function teste1(cid, message, keywords, parameters, node) Desculpe pela demora!
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.