Postado Maio 20, 2016 9 anos Autor 13 horas atrás, Talesigorvr disse: function onUse(cid, item, frompos, item2, topos) local item = { [1] = {2156, 1, 1}, [2] = {3000, 1, 5}, [3] = {2113, 1, 10}, [4] = {2156, 1, 40}, [5] = {2160, 10, 60}, -- [um número maior que o anterior] = {ID do item, quantidade, chance} } local randomItem = math.random (1, 100) for i = 1, #item do if randomItem > 0 and randomItem <= item[i][3] then if doPlayerAddItem (cid, item[i][1], item[i][2]) then if randomItem == 1 then doBroadcastMessage ("Parabéns, "..getCreatureName (cid).."! Você achou a "..getItemNameById (item[i][1]).."!") end break; end end end doRemoveItem (item2.uid, 1) if randomItem > item[#item][3] then doPlayerSendTextMessage (cid, 19, "Seu item falhou.") end return true end @Talesigorvr Mano nao deu nenhum error, porem esta acontecendo isso. Toda vez que eu abro o item random, ele sempre vem o item [1] so vem ele, e só as vezes ele anuncia no BrocadCast, poderia ajudar ? Tag: <action itemid="1990" event="script" value="quests/rewarditem.lua"/> Acredito que esse seja o error, ele ta assim no meu. local randomItem = math.random (1, 100) Coloquei math.random (1, 5) e so vinha o ITEM 1! Depois fui trocar para testar Coloquei math.random (2, 5) e so vinha o ITEM 2! Editado Maio 20, 2016 9 anos por caioitalo1 (veja o histórico de edições)
Postado Maio 20, 2016 9 anos Essa linha é pra fazer a porcentagem. Você deve ter configurado errado, eu testei aqui e funcionou. Não dou suporte via PM, crie um tópico caso tenha dúvidas. Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.
Postado Maio 21, 2016 9 anos Solução function onUse(cid, item, frompos, item2, topos) local t,r = { [{1, 2}] = {2173,1}, [{1, 5}] = {2161,2}, [{1, 10}] = {2163,1}, [{1, 40}] = {2162,1}, [{1, 60}] = {2160,10} }, math.random(1, 100) for var, ret in pairs(t) do if r >= var[1] and r <= var[2] then doPlayerAddItem(cid, ret[1], ret[2]) doRemoveItem(item.uid) doBroadcastMessage("Parabéns, "..getCreatureName(cid).."! Você achou a "..ret[2].." "..getItemNameById (ret[1]).."!");break end end if r > 60 then doPlayerSendTextMessage(cid, 19, "Seu item falhou, tente novamente!") end return true end não testei Editado Maio 21, 2016 9 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Maio 21, 2016 9 anos Autor @Vodkart Funcionando perfeitamente como desejado. Muito obrigado Vodkart e Talesigorvr.
Postado Maio 21, 2016 9 anos Não achei o erro no meu script, mas okay. ;P Não dou suporte via PM, crie um tópico caso tenha dúvidas. Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.
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.