Ir para conteúdo

Featured Replies

Postado

Quero colocar uma Storage 12125, para poder clicar na alavanca denovo depois de 1 hora!

 

 

Spoiler

--[[
tabela dos itens a serem "sacrificados"
adicione novas linhas para checar por mais que 4 itens
configure a posição onde ele deve estar e o id
]]
local items = {
{pos = {x = 431, y = 285, z = 7}, itemid = 2129},
{pos = {x = 441, y = 284, z = 7}, itemid = 5943},
{pos = {x = 440, y = 290, z = 7}, itemid = 2363},
}
--[[
tabela dos monstros a serem criados após remover os itens
adicione novas linhas para criar mais monstros
configure a posição onde ele vai nascer o nome do monstro criado
]]
local monsters = {
{pos = {x = 436, y = 285, z = 7}, name = "Wolf"},
}

local config = {
onSpawnMonster = CONST_ME_TELEPORT, -- efeito lançado quando monstro é criado
onRemoveItem = CONST_ME_BLOCKHIT, -- efeito lançado quando item é removido
missingItem = CONST_ME_POFF, -- efeito lançado quando não encontrou o item para remover
}
-- 255 faz com que não lance efeito algum

function onUse(cid, item, frompos, item2, topos)
    
    if getGlobalStorageValue(91801) > os.time() then
        return doPlayerSendCancel(cid, "Espere 1h para usar a alavanca novamente.")
    end
    
   local missing_items, remove_items = false, {}

   for _, itemcheck in pairs (items) do
    local i = getTileItemById(itemcheck.pos, itemcheck.itemid).uid
    if i < 1 then missing_items = true
    
        if tonumber(config.missingItem) and config.missingItem ~= 255 then
            doSendMagicEffect(itemcheck.pos, config.missingItem)
        end
    else table.insert(remove_items, i)
    end
   end

   if missing_items then
    return doPlayerSendCancel(cid, "Está faltando algum item.")
   else
    for _, iuid in pairs (remove_items) do
        if tonumber(config.onRemoveItem) and config.onRemoveItem ~= 255 then
            doSendMagicEffect(getThingPos(iuid), config.onRemoveItem)
        end
        doRemoveItem(iuid)
    end
    for _, monsterinfo in pairs (monsters) do
        local m = doCreateMonster(monsterinfo.name, monsterinfo.pos, false)
        if isCreature(m) and tonumber(config.onSpawnMonster) and
        config.onSpawnMonster ~= 255 then
        doSendMagicEffect(getThingPos(m), config.onSpawnMonster)
        end
    end
   end
    
    addEvent(function()
    setGlobalStorageValue(91801, os.time() + 3600)
    end, 5 * 60 * 1000)
    
return true
end

 

Editado por isac001 (veja o histórico de edições)

Postado
local leverCooldown = {1, "hour"} -- Configure o tempo para usar novamente. Ex.: {30, "sec"}, {2, "min"}, {5, "hour"}, {3, "day"}
local cooldownStorage = 91801 -- só modifique se necessário

local items = {
    {pos = {x = 431, y = 285, z = 7}, itemid = 2129},
    {pos = {x = 441, y = 284, z = 7}, itemid = 5943},
    {pos = {x = 440, y = 290, z = 7}, itemid = 2363},
}

local monsters = {
    {pos = {x = 436, y = 285, z = 7}, name = "Wolf"},
}

local config = {
    onSpawnMonster = CONST_ME_TELEPORT, -- efeito lançado quando monstro é criado
    onRemoveItem = CONST_ME_BLOCKHIT, -- efeito lançado quando item é removido
    missingItem = CONST_ME_POFF, -- efeito lançado quando não encontrou o item para remover
}
-- 255 faz com que não lance efeito algum


local function mathtime(table) -- by dwarfer
if table[1] == 0 then return 0 end
local unit = {"sec", "min", "hour", "day"}
for i, v in pairs(unit) do
if v == table[2] then
return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1)
end
end
end

function onUse(cid, item, frompos, item2, topos)
    
    if getGlobalStorageValue(cooldownStorage) > os.time() then
        doPlayerSendCancel(cid, "Espere 1h para usar a alavanca novamente.")
        return true
    end
    
    local missing_items, remove_items = false, {}

    for _, itemcheck in pairs (items) do
        local i = getTileItemById(itemcheck.pos, itemcheck.itemid).uid
        if i < 1 then missing_items = true
            if tonumber(config.missingItem) and config.missingItem ~= 255 then
                doSendMagicEffect(itemcheck.pos, config.missingItem)
            end
        else
            table.insert(remove_items, i)
        end
    end

    if missing_items then
        return doPlayerSendCancel(cid, "Está faltando algum item.")
    else
        for _, iuid in pairs (remove_items) do
            if tonumber(config.onRemoveItem) and config.onRemoveItem ~= 255 then
                doSendMagicEffect(getThingPos(iuid), config.onRemoveItem)
            end
            doRemoveItem(iuid)
        end
        for _, monsterinfo in pairs (monsters) do
            local m = doCreateMonster(monsterinfo.name, monsterinfo.pos, false)
            if isCreature(m) and tonumber(config.onSpawnMonster) and
                config.onSpawnMonster ~= 255 then
                doSendMagicEffect(getThingPos(m), config.onSpawnMonster)
            end
        end
        setGlobalStorageValue(cooldownStorage, mathtime(leverCooldown) + os.time())
    end
    return true
end

 

Editado por Dwarfer (veja o histórico de edições)

Contato:

 

  • 2 months later...
Postado
On 1/14/2021 at 10:42 PM, isac001 said:

Tem como avisar para o brodcast que boss nasceu

sim....

edita essa parte

 

 

        for _, monsterinfo in pairs (monsters) do
            local m = doCreateMonster(monsterinfo.name, monsterinfo.pos, false)
            if isCreature(m) and tonumber(config.onSpawnMonster) and
                config.onSpawnMonster ~= 255 then
                doSendMagicEffect(getThingPos(m), config.onSpawnMonster)
                doBroadcastMessage("O boss "..monsterinfo.name.." acabou de nascer!", 21) -- Broadcast MSG
            end
        end

Editado por bilet (veja o histórico de edições)

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo