VO
action

[Action] Random Chest

Por Vodkart, 26 de set. de 2010 em Actions e Talkactions

script
12
2.8k
VodkartV
26 de setembro de 2010 às 13:35

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 Outubro 16 por Vodkart

miterM
27 de setembro de 2010 às 18:32

Otimo Script, nego!

Parabéns

7 meses depois...
tinfer3T
11 de abril de 2011 às 13:02

ótimo para quests!

9 meses depois...
VodkartV
29 de janeiro de 2012 às 19:07

dei uma revisada,estarei fazendo mais update

LordedosotsL
31 de janeiro de 2012 às 04:51

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

9 meses depois...
25 de outubro de 2012 às 18:18

bom script. ;D

Editado Outubro 25 por HellCommander

LendreoL
27 de outubro de 2012 às 09:13

Tópico revivido, seu comentário é considerado como flood. Reportado

caoticC
27 de outubro de 2012 às 11:53

HellCommander cuidado este tipo de post e considerado flood,

Fica a mensagem na próxima vez e alerta

27 de outubro de 2012 às 13:28

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.

VodkartV
27 de outubro de 2012 às 18:22
--[[ 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

28 de outubro de 2012 às 19:26

Ok, vod, você é o melhor. =)

 

Rep + por ajudar. <:o)

MrCatraM
28 de outubro de 2012 às 19:38

Nao tinha visto esse script.

 

Parabéns Vodkart.

 

REP++