Postado Fevereiro 24, 2015 10 anos ^ Se o item não for stackable, a quantia adicionada será sempre 1, não importando o que você coloca no parâmetro. @Kd meu arrozz Testarei o código e verei o que pode estar causando tal erro. Se possível, poste o código com suas alterações. Talvez, na verdade, o erro esteja nas configurações. EDIT: Testei o código, e está funcionando perfeitamente. Há algum erro no console? E, novamente: poste o código alterado por você, por favor. Editado Fevereiro 24, 2015 10 anos por zipter98 (veja o histórico de edições) não respondo pms solicitando suporte em programação/scripting
Postado Fevereiro 24, 2015 10 anos Autor local price = {6527, 6} --Troque itemid pelo ID do item que será cobrado, e count pela quantia. local items = { --[8303] = {70, 5}, --[8302] = {70, 5}, --[7422] = {30, 1}, >> Onde itemid é o ID do item, chance, obviamente, a chance dele ser sorteado, e count, a quantidade. --Exemplo: >> Para adicionar mais items, siga o modelo indicado acima. [itemid] = {chance, count}, --[2160] = {50, 10}, >> Assim, o item de ID 2160 teria 50% de chance de ser sorteado. Quantidade -> 10. } function onUse(cid) local _table = {} local number = math.random(1, 100) local item = 0 if doPlayerRemoveItem(cid, price[1], price[2]) then for itemid, chance in pairs(items) do if item == 0 then item = itemid else if number <= chance[1] then local new_chance = chance[1] - number local old_chance = items[item][1] - number if new_chance < old_chance then if #_table > 0 then _table = {} end table.insert(_table, itemid) item = itemid elseif new_chance == old_chance then table.insert(_table, itemid) end end end end if item ~= 0 then if #_table > 1 then item = _table[math.random(#_table)] end local count = items[item][2] if not isItemStackable(item) then if count > 1 then for i = 1, count do doPlayerAddItem(cid, item, 1) end else doPlayerAddItem(cid, item, 1) end else doPlayerAddItem(cid, item, count) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You received: "..count.."x "..getItemNameById(item)..(count > 1 and "s" or "")..".") end else return doPlayerSendCancel(cid, "You do not have "..price[2].." "..getItemNameById(price[1])..".") end return true end Poderia postar as tags também, para saber se coloquei tudo certo. Ah lembrando, acabei nem falando a versão do tfs é 0.3.6 pode ter algo haver com isso Editado Fevereiro 24, 2015 10 anos por Kd meu arrozz (veja o histórico de edições)
Postado Fevereiro 24, 2015 10 anos Você usa duas travessões (--) apenas quando quer deixar um comentário no código. Assim, a parte que vier depois não será lida quando o script for executado. Troque: --[8303] = {70, 5}, --[8302] = {70, 5}, --[7422] = {30, 1}, >> Onde itemid é o ID do item, chance, obviamente, a chance dele ser sorteado, e count, a quantidade. por: [8303] = {70, 5}, [8302] = {70, 5}, [7422] = {30, 1}, Editado Fevereiro 24, 2015 10 anos por zipter98 (veja o histórico de edições) não respondo pms solicitando suporte em programação/scripting
Postado Fevereiro 24, 2015 10 anos Autor Deu certinho a unica coisa é que tipo, ele ta dando em troca apenas o mesmo item. Eu coloquei para sortea 3 itens: [8303] = {70, 5}, <<<<apenas desse id está vindo [8302] = {70, 5}, [7422] = {30, 1},
Postado Fevereiro 24, 2015 10 anos Zipter... Como assim sabe fazer a tag? O.o é porque não sei mesmo ainda de script é estou aprendendo no TK
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.