Postado Março 24, 2018 7 anos Diga em poucas palavras a base utilizada (Nome do servidor ou nome do website). Base: TFS 1.3 Qual erro está surgindo/O que você procura? Estou procurando um script de um baú que abre com uma determinada chave , após abrir este baú existe a chance em % que pode ganhar o item , em X quantidade. Para exemplificar : o jogador encontra um baú , após encontrar ele tenta abrir com a chave , ele clica na chave e clica no baú pode acontecer que a chave abra o baú ele recebe a mensagem "parabéns você conseguiu abrir o baú e ganhou 5 de X itens. Após ele abrir este baú ele desaparece ! Caso o jogador não tenha o item necessário para abrir o baú ele recebe uma mensagem informando que não possui o item para abrir o baú, e caso ele tente abrir o baú com o item mas a chave falha , ele recebe a mensagem dizendo que a chave quebrou na tentativa de abrir o baú, ai é removido apenas 1 chave do inventario dele mas o baú continua ali. Lembrando que o existe uma porcentagem de chance de vim o item e com uma X quantidade então a quantidade do item pode varia de 0 a 10 e a chance de ganha nem que seja 1 do item pode variar de 0 a 10 tbm
Postado Março 25, 2018 7 anos Solução @Adventure script: Spoiler local items = {2148, 2152, 2160} -- Itens! local count = 0 local sto = 23456 -- Storage! local Key_Id = 12548 -- ID da chave que será necessária para abrir o báu. local actId_xml = 55555 -- Mesmo action id da xml que você colocou no bau! function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) if type(itemEx) == "userdata" then if itemEx:getActionId() == actId_xml then if player:getStorageValue(sto) == -1 then local chance1 = 50 -- 50% - Porcentagem da chave quebrar. local rand1 = math.random(1, 100) local item_Give = items[math.random(1, #items)] -- Item Aleatório da tabela! if rand1 >= chance1 then local rand2 = math.random(1, 100) if rand2 >= 5 and rand2 <= 15 then count = 2 -- Quantidade de item será 2x caso a chance seja maior ou igual a 5 e menor ou igual 15. elseif rand2 >= 16 and rand2 <= 30 then count = 4 -- Quantidade de item será 4x caso a chance seja maior ou igual a 16 e menor ou igual 30. elseif rand2 >= 31 and rand2 <= 50 then count = 6 -- Quantidade de item será 6x caso a chance seja maior ou igual a 31 e menor ou igual 50. elseif rand2 >= 51 and rand2 <= 70 then count = 7 -- Quantidade de item será 7x caso a chance seja maior ou igual a 51 e menor ou igual 70. elseif rand2 >= 71 and rand2 <= 90 then count = 8 -- Quantidade de item será 8x caso a chance seja maior ou igual a 71 e menor ou igual 90. elseif rand2 >= 91 and rand2 <= 100 then count = 10 -- Quantidade de item será 10x caso a chance seja maior ou igual a 91 e menor ou igual 100. else count = 1 -- Quantidade de item será 1x caso não caia em nenhuma das chances anteriores, no caso, quando a chance é menor que 5. end player:addItem(item_Give, count) player:sendTextMessage(MESSAGE_INFO_DESCR, "Você acabou de ganhar "..count.."x "..(ItemType(item_Give):getName())..".") player:setStorageValue(sto, 1) item:remove(1) itemEx:remove() else item:remove(1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sua chave quebrou...") end else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você já fez essa quest.") end else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Vocêsó pode usar essa chave no bau de tal lugar.") end else if player:getStorageValue(sto) == -1 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Para fazer essa quest você precisa da chave "..(ItemType(Key_Id):getName())..", clique nela e clique no baú para abri-lo!") else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você já fez a quest.") end end return true end actions.xml: <action actionid="55555" script="arquivo.lua" /> <action itemid="12548" script="arquivo.lua" /> A actionid, coloque no bau quando o player clicar no bau ele receberá uma mensagem dizendo que precisa de tal chave, para ele clicar na chave e clicar no bau, o motivo da action é somente para que essa mensagem ocorra naquele bau. E o itemid é o id da chave, o player irá clicar nela e clicar no bau, e ocorrera todo o processo que já está descrito no script, acredito que não tem mais nada que eu possa explicar mas caso não entenda algo é só perguntar. Abraços!!
Postado Março 25, 2018 7 anos Autor @KotZletY irei testar e te passo o feedback. Mas de antemão obrigado
Postado Março 25, 2018 7 anos 18 horas atrás, KotZletY disse: @Adventure script: Ocultar conteúdo local items = {2148, 2152, 2160} -- Itens! local count = 0 local sto = 23456 -- Storage! local Key_Id = 12548 -- ID da chave que será necessária para abrir o báu. function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) if type(itemEx) == "userdata" then if player:getStorageValue(sto) == -1 then local chance1 = 50 -- 50% - Porcentagem da chave quebrar. local rand1 = math.random(1, 100) local item_Give = items[math.random(1, #items)] -- Item Aleatório da tabela! if rand1 >= chance1 then local rand2 = math.random(1, 100) if rand2 >= 5 and rand2 <= 15 then count = 2 -- Quantidade de item será 2x caso a chance seja maior ou igual a 5 e menor ou igual 15. elseif rand2 >= 16 and rand2 <= 30 then count = 4 -- Quantidade de item será 4x caso a chance seja maior ou igual a 16 e menor ou igual 30. elseif rand2 >= 31 and rand2 <= 50 then count = 6 -- Quantidade de item será 6x caso a chance seja maior ou igual a 31 e menor ou igual 50. elseif rand2 >= 51 and rand2 <= 70 then count = 7 -- Quantidade de item será 7x caso a chance seja maior ou igual a 51 e menor ou igual 70. elseif rand2 >= 71 and rand2 <= 90 then count = 8 -- Quantidade de item será 8x caso a chance seja maior ou igual a 71 e menor ou igual 90. elseif rand2 >= 91 and rand2 <= 100 then count = 10 -- Quantidade de item será 10x caso a chance seja maior ou igual a 91 e menor ou igual 100. else count = 1 -- Quantidade de item será 1x caso não caia em nenhuma das chances anteriores, no caso, quando a chance é menor que 5. end player:addItem(item_Give, count) player:sendTextMessage(MESSAGE_INFO_DESCR, "Você acabou de ganhar "..count.."x "..(ItemType(item_Give):getName())..".") player:setStorageValue(sto, 1) item:remove(1) else item:remove(1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sua chave quebrou...") end else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você já fez essa quest.") end else if player:getStorageValue(sto) == -1 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Para fazer essa quest você precisa da chave "..(ItemType(Key_Id):getName())..", clique nela e clique no bau para abri-lo!") else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você já fez a quest.") end end return true end actions.xml: <action actionid="55555" script="arquivo.lua" /> <action itemid="12548" script="arquivo.lua" /> A actionid, coloque no bau quando o player clicar no bau ele receberá uma mensagem dizendo que precisa de tal chave, para ele clicar na chave e clicar no bau, o motivo da action é somente para que essa mensagem ocorra naquele bau. E o itemid é o id da chave, o player irá clicar nela e clicar no bau, e ocorrera todo o processo que já está descrito no script, acredito que não tem mais nada que eu possa explicar mas caso não entenda algo é só perguntar. Abraços!! Gostei hahaha, vou usar ;p
Postado Março 26, 2018 7 anos Fiz uma pequena correção no script, você poderia utilizar a chave em qualquer lugar, corrigir para que pudesse utilizar somente no bau desejado, basta colocar actionid que você escolheu, na variável actId_xml e assim a chave só vai funcionar no bau que tiver essa action especifica, no caso o da quest!
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.