Postado Agosto 9, 2014 10 anos Galera, vou colocar aqui um script que desenvolvi para o meu servidor. Nada mais é que uma box onde você clica e ganha um item aleatório. Primeiro vamos ao código, crie um arquivo chamado misterybox.lua em actions/scripts: local items = {2647, 2650, 2661, 2668, 2393} local chancenada = 10 function onUse(cid, item) if (getPlayerPremiumDays(cid) < 1) then doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true end if math.random(1, 100) <= chancenada then doPlayerSendCancel(cid, "Nao veio nada.") doRemoveItem(item.uid, 1) return true end doPlayerAddItem(cid, items[math.random(1, #items)], 1) doRemoveItem(item.uid, 1) return true end Agora explicando: local items = {2647, 2650, 2661, 2668, 2393} Os números colocados dentro do { } e separados por vírgula, são os ids dos itens que podem vir da mistery box. Ou seja, para adicionar um item novo, você coloca uma vírgula e põe outro id. Para remover, retire um id e uma vírgula. Ex adicionar: local items = {2647, 2650, 2661, 2668, 2393, 2392} Ex retirar: local items = {2647, 2650, 2661, 2668, 2393} Entenderam? Agora vamos explicar o "chancenada" Ali você põe um valor entre 0 e 100 que vai corresponder à chance em % de não vir nada na misterybox. No caso está 10% de chance de não vir nada. No script ela tá configurada pra ser usada só por premmium accounts, mas se quiser mudar é só retirar isso aqui: if (getPlayerPremiumDays(cid) < 1) then doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true end Agora adicione em actions/actions.xml: <action itemid="132" script="misterybox.lua"/> Onde 132, é o id do item "mistery box", que é o item que você da use no jogo e ganha algum item aleatório depois. Eu criei no meu servidor o item mistery box, editando o items.otb e colocando um item novo, mas você pode usar algum já existente e apenas editar, ou faça do jeito que achar melhor! Bom galera, por agora é isso! Um abraço à todos! [TalkAction] Comando !stamina e stamina potion. http://www.tibiaking.com/forum/topic/38953-talkaction-stamina-recupera-stamina-e-d%C3%A1-uma-potion-de-stamina/ Krell Gaming, OTServer estará ONLINE em breve! Training Offline Tasks, Mounts, Addons, Outfits Quests baú, Quests lógicas, Quests misteriosas Mistery Box (Itens Aleatórios), Upgrade your Itens(Melhorar os atributos dos itens), Frag Remover, Monster Cards Stamina System e Stamina Potion Castle com sistema próprio Área Free com variadas e equilibradas hunts. Mapa RPG porém equilibrado às rates do servidor. Rates Variadas (Stages que podem variar de exp alta pra baixa, não baixando sempre como a maioria) Drop rate: variando entre 3 ou mais x Skills e ML: 20/10 Houses apenas para premium accounts. Premium Account = 15 reais um mês. Aproveite!
Postado Agosto 9, 2014 10 anos Simples, mas bem bolado. doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true No caso para ele não continuar a ler o script não teria que ser um return false? if math.random(1, 100) <= chancenada then doPlayerSendCancel(cid, "Nao veio nada.") doRemoveItem(item.uid, 1) return true end doPlayerAddItem(cid, items[math.random(1, #items)], 1) doRemoveItem(item.uid, 1) return true end Essa parte tem o return true tbem, mas não sei .. E não ficaria melhor assim? (só uma dica) local items = {2647, 2650, 2661, 2668, 2393} local chancenada = 10 function onUse(cid, item) if (getPlayerPremiumDays(cid) >= 1) then if math.random(1, 100) > chancenada then doPlayerAddItem(cid, items[math.random(1, #items)], 1) else doPlayerSendCancel(cid, "Nao veio nada.") end doRemoveItem(item.uid, 1) else doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") end return true end Mesmo assim, muito bom seu script, é bom ver alguém criando coisas novas ... STYLLER OT 2022
Postado Agosto 10, 2014 10 anos Autor Olha, pelo pouco que eu entendo o return true devolveria o valor true para a função OnUse, e acho que daria na mesma do return false. A diferença no caso é que executaria a ação onuse mas não teria nenhuma ação no jogo, e no false não daria ação OnUse, aí acho que apareceria (You cannot use this object) ou até mesmo nada, então como a true funcionou eu resolvi deixar assim mesmo hahahaha Bom você ajudou a dar uma simplificada boa no script, é que como eu não queria me enrolar muito nos else ifs, acabei fazendo com ações progressivas, onde tem uma condição universal, se ela for falsa checa a próxima, ou seja, eu faço por método de exclusão, pra mim fica mais simples de entender sabe? Mas é doidera minha, talvez fique até melhor mais compacto como você postou é que é o meu jeitinho de fazer! Hahahaha Bom, valeu pelo feedback mano, fico feliz! To aqui pensando pra caramba e bolando umas coisas novas pro meu servidor, o que eu não acho aqui no fórum eu acabo criando e divido aqui com vocês Abraços man! [TalkAction] Comando !stamina e stamina potion. http://www.tibiaking.com/forum/topic/38953-talkaction-stamina-recupera-stamina-e-d%C3%A1-uma-potion-de-stamina/ Krell Gaming, OTServer estará ONLINE em breve! Training Offline Tasks, Mounts, Addons, Outfits Quests baú, Quests lógicas, Quests misteriosas Mistery Box (Itens Aleatórios), Upgrade your Itens(Melhorar os atributos dos itens), Frag Remover, Monster Cards Stamina System e Stamina Potion Castle com sistema próprio Área Free com variadas e equilibradas hunts. Mapa RPG porém equilibrado às rates do servidor. Rates Variadas (Stages que podem variar de exp alta pra baixa, não baixando sempre como a maioria) Drop rate: variando entre 3 ou mais x Skills e ML: 20/10 Houses apenas para premium accounts. Premium Account = 15 reais um mês. Aproveite!
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.