Ir para conteúdo

[Action] Random Chest


Vodkart

Posts Recomendados

Versão Testada: 8.54+

 

Autor: Vodkart

 

Explicação:

é uma chest que poderá vir diversos items randomicamente,e ela poderá ser aberta entre alguns intervalos de tempo(ex: cada 30 minutos).

Você poderá decidir se vai precisar ter uma vocação para abrir está chest e decidir tbm se precisará de level...

 

-------------------------------------//-------------------------------------

 

Vamos ao Script.

 

data/actions/script crie um arquivo.lua e renomeie para

 

Randomchest.lua

--[[ Script By Vodkart]]--
function onUse(cid, item, fromPosition, itemEx, toPosition)

local config = {
Need_level = true, -- se irá precisar ter level [[false/true]]
Need_Voc = true -- se ira precisar ter voc [[false/true]]
}

       local c = {
               [8091] = { -- unique id da chest
                      s = 11128, -- storage
                      level = 500, -- level minimo
                      vocations = {1,2,3,4}, -- vocation da chest
                      voc_fail = "Somente char com primeira promotion abrem este bau", -- msg caso ele nao tiver as voc
                      time = 60, -- tempo em minutos para voltar a abrir a chest
                      receber_item = 5, -- tempo em segundos em que ele ganha o item dps de abrir a chest
                      msg = "Você acaba de receber sua Recompensa!", -- msg que vai aparecer dps que ele ganha o item
                      effect = 28, -- efeito que vai aparecer ao abrir a chest
                      item = { {2160, 1},{2152, 25},{2148, 50} } -- items sortiados(pode adicionar mais)
               },
               [8092] = { -- unique id da chest
                      s = 11128, -- storage
                      level = 500, -- level minimo
                      vocations = {5,6,7,8}, -- vocation da chest
                      voc_fail = "Somente char com segunda promotion abrem este bau", -- msg caso ele nao tiver as voc
                      time = 60, -- tempo em minutos para voltar a abrir a chest
                      receber_item = 5, -- tempo em segundos em que ele ganha o item dps de abrir a chest
                      msg = "Você acaba de receber sua Recompensa!", -- msg que vai aparecer dps que ele ganha o item
                      effect = 29, -- efeito que vai aparecer ao abrir a chest
                      item = { {2160, 5},{2152, 50},{2148, 100} } -- items sortiados(pode adicionar mais)
               }
       }



e = c[item.uid] 
if config.Need_Voc == true and not isInArray(e.vocations, getPlayerVocation(cid)) then 
doPlayerSendCancel(cid, e.voc_fail) 
elseif config.Need_level == true and getPlayerLevel(cid) < e.level then 
doPlayerSendCancel(cid, "Você deve ter pelo menos level ".. e.level .." para abrir a Chest.") 
elseif getPlayerStorageValue(cid, e.s) <= os.time() then  
r = math.random(1, #e.item) 
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você receberá seu prêmio em " .. e.receber_item .. " segundos.") 
addEvent(doPlayerAddItem, e.receber_item * 1000, cid, e.item[r][1], e.item[r][2]) 
addEvent(doPlayerSendTextMessage, e.receber_item * 1000, cid, MESSAGE_STATUS_CONSOLE_BLUE, e.msg) 
addEvent(doSendMagicEffect, e.receber_item * 1000, getCreaturePosition(cid), e.effect) 
setPlayerStorageValue(cid, e.s, os.time()+e.time*60) 
else 
minutos = math.floor((getPlayerStorageValue(cid,e.s) - os.time())/(60)) 
doPlayerSendCancel(cid, "Você deve esperar ".. (minutos < 0 and 0 or minutos) .." minutos para voltar a abrir o Bau.")
end 
return TRUE 
end

 

em actions.xml adicione a tag:

 

<action uniqueid="8091;8092" script="Randomchest.lua"/>

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 6 months later...
  • 9 months later...

muito bom ótimo rep+

 

cara sei q tei uma aria para Pedidos de Scripts + mada melhor do quer pedi au melhor q e você Vodkart ver se da para vu m ajudar

http://www.xtibia.com/forum/topic/179583-so-um-pedido-de-scripts/

 

rep+ com sertesa

Link para o comentário
Compartilhar em outros sites

  • 8 months later...

Okay, desculpe, não sabia, que este tipo de coments, erá considerado como flood.

Bom, aproveitando, Vod, você não poderia fazer esta mesma '' Ideia '' de chest, porém fazer com que cada player, só poderá abrir a chest, uma vez? tipo, como se fosse uma '' Quest ''. porém os items seriam Random. deste mesmo jeito. só que o player só poderá abrir 1x. ( Cada player. )

 

Obrigado. pela atenção.

Link para o comentário
Compartilhar em outros sites

--[[ Script By Vodkart]]--
function onUse(cid, item, fromPosition, itemEx, toPosition)
       local c = {
               [8091] = { -- unique id da chest
                      storage = 11128, -- storage
                      level = 250, -- level minimo
                      item = {{2160,1},{2152,25},{2148,50}} -- items sortiados(pode adicionar mais)
               },
               [8092] = { -- unique id da chest
                      storage = 11129, -- storage
                      level = 500, -- level minimo
                      item = {{2160,1},{2152,25},{2148,50}} -- items sortiados(pode adicionar mais)
               }
       }
local e = c[item.uid] 
if getPlayerLevel(cid) < e.level then 
return doPlayerSendCancel(cid, "Você deve ter pelo menos level ".. e.level .." para abrir a Chest.") 
elseif getPlayerStorageValue(cid, e.storage) ~= -1 then
return doPlayerSendCancel(cid, "você já abriu está Chest.") 
end  
local rand = math.random(1, #e.item)
local itemid,amount = e.item[r][2],e.item[r][1]  
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parabéns, você rebeceu "..amount.." " .. itemid .. ".") 
if isItemStackable(itemid) or amount == 1 then
doPlayerAddItem(cid, itemid, amount) 
else
for i = 1, amount do 
doPlayerAddItem(cid, itemid, 1)  
end
end
doSendMagicEffect(getCreaturePosition(cid), math.random(28,30)) 
setPlayerStorageValue(cid, e.storage, 1) 
return true
end

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...