Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Fala rapeize, hoje venho trazer um sisteminha que fiz há alguns meses para um servidor.

E como estou com tempo livre, decidi publicar este sistema.

 

Como funciona?

Quando uma criatura morre(configurável, seu loot se espalha pelo chão.

 

OBS : Caso a primeira versão não funcione, utilize a segunda.

 

Versão 1 :

Spoiler

data/creaturescripts/creaturescripts.xml :


    <event type="death" name="droptable" event="script" value="droptable.lua"/>
    <event type="login" name="droptable" event="script" value="droptable.lua"/>

 

em data/creaturescripts/scripts, crie um arquivo droptable.lua e cole isso dentro :


-- Coded by Zoom.

local bosses = {
    ["Dragon"] = {
        {itemid = 5805, count = {min = 1, max = 1}},
        {itemid = 8931, count = {min = 1, max = 1}},
        {itemid = 2471, count = {min = 1, max = 1}},
        {itemid = 2466, count = {min = 1, max = 1}},
        {itemid = 2470, count = {min = 1, max = 1}},
        {itemid = 2646, count = {min = 1, max = 1}},
        {itemid = 2523, count = {min = 1, max = 1}},
        {itemid = 2160, count = {min = 30, max = 60}}
    }
}


-- functions..
function getRotate(uid)
    local pos = getCreaturePosition(uid)
    return
    {
        {x = pos.x, y = pos.y - 1, z = pos.z},
        {x = pos.x + 1, y = pos.y - 1, z = pos.z},
        {x = pos.x + 1, y = pos.y, z = pos.z},
        {x = pos.x + 1, y = pos.y + 1, z = pos.z},
        {x = pos.x, y = pos.y + 1, z = pos.z},
        {x = pos.x - 1, y = pos.y + 1, z = pos.z},
        {x = pos.x - 1, y = pos.y, z = pos.z},
        {x = pos.x - 1, y = pos.y - 1, z = pos.z}
    }
end

function onDeath(cid)
    local bid = bosses[getCreatureName(cid)]
    
    if isMonster(cid) and bid then
        doCreatureSetDropLoot(cid, nil)
        for _, v in ipairs(bid) do
            doCreateItem(v.itemid, math.random(v.count.min, v.count.max), getRotate(cid)[_])
            doSendMagicEffect(getRotate(cid)[_], 6)
        end
    end

    return true
end

function onLogin(cid)
    return registerCreatureEvent(cid, "droptable")
end

 

Versão 2 :

Spoiler

data/creaturescripts/creaturescripts.xml :


    <event type="kill" name="droptable" event="script" value="droptable.lua"/>
    <event type="login" name="droptable" event="script" value="droptable.lua"/>

 

em data/creaturescripts/scripts, crie um arquivo droptable.lua e cole isso dentro :


-- Coded by Zoom.

local bosses = {
    ["Dragon"] = {
        {itemid = 5805, count = {min = 1, max = 1}},
        {itemid = 8931, count = {min = 1, max = 1}},
        {itemid = 2471, count = {min = 1, max = 1}},
        {itemid = 2466, count = {min = 1, max = 1}},
        {itemid = 2470, count = {min = 1, max = 1}},
        {itemid = 2646, count = {min = 1, max = 1}},
        {itemid = 2523, count = {min = 1, max = 1}},
        {itemid = 2160, count = {min = 30, max = 60}}
    }
}


-- functions..
function getRotate(uid)
    local pos = getCreaturePosition(uid)
    return
    {
        {x = pos.x, y = pos.y - 1, z = pos.z},
        {x = pos.x + 1, y = pos.y - 1, z = pos.z},
        {x = pos.x + 1, y = pos.y, z = pos.z},
        {x = pos.x + 1, y = pos.y + 1, z = pos.z},
        {x = pos.x, y = pos.y + 1, z = pos.z},
        {x = pos.x - 1, y = pos.y + 1, z = pos.z},
        {x = pos.x - 1, y = pos.y, z = pos.z},
        {x = pos.x - 1, y = pos.y - 1, z = pos.z}
    }
end

function onKill(cid, target)
    local bid = bosses[getCreatureName(target)]
    
    if isMonster(target) and bid and getStorage(33975) <= os.time() then
        doCreatureSetDropLoot(target, nil)
        for _, v in ipairs(bid) do
            doCreateItem(v.itemid, math.random(v.count.min, v.count.max), getRotate(target)[_])
            doSendMagicEffect(getRotate(target)[_], 6)
        end
        doSetStorage(33975, os.time() + 5)
    end

    return true
end

function onLogin(cid)
    return registerCreatureEvent(cid, "droptable")
end

 

 

Só isso, valeu!:accept:

 

  • Respostas 7
  • Visualizações 2.2k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Postado
  • Autor
Em 18/04/2016 at 21:04, Azhaurn disse:

@Zoom

Bem interessante... Parabéns e obrigada por trazer conteúdo ao fórum!

Por nada! Sempre que possível, estarei trazendo bons conteúdos :)

  • 1 month later...
Postado
Em 17/04/2016 at 17:02, Zoom disse:

Fala rapeize, hoje venho trazer um sisteminha que fiz há alguns meses para um servidor.

E como estou com tempo livre, decidi publicar este sistema.

 

Como funciona?

Quando uma criatura morre(configurável, seu loot se espalha pelo chão.

 

OBS : Caso a primeira versão não funcione, utilize a segunda.

 

Versão 1 :

  Mostrar conteúdo oculto

data/creaturescripts/creaturescripts.xml :



    <event type="death" name="droptable" event="script" value="droptable.lua"/>
    <event type="login" name="droptable" event="script" value="droptable.lua"/>

 

em data/creaturescripts/scripts, crie um arquivo droptable.lua e cole isso dentro :



-- Coded by Zoom.

local bosses = {
    ["Dragon"] = {
        {itemid = 5805, count = {min = 1, max = 1}},
        {itemid = 8931, count = {min = 1, max = 1}},
        {itemid = 2471, count = {min = 1, max = 1}},
        {itemid = 2466, count = {min = 1, max = 1}},
        {itemid = 2470, count = {min = 1, max = 1}},
        {itemid = 2646, count = {min = 1, max = 1}},
        {itemid = 2523, count = {min = 1, max = 1}},
        {itemid = 2160, count = {min = 30, max = 60}}
    }
}


-- functions..
function getRotate(uid)
    local pos = getCreaturePosition(uid)
    return
    {
        {x = pos.x, y = pos.y - 1, z = pos.z},
        {x = pos.x + 1, y = pos.y - 1, z = pos.z},
        {x = pos.x + 1, y = pos.y, z = pos.z},
        {x = pos.x + 1, y = pos.y + 1, z = pos.z},
        {x = pos.x, y = pos.y + 1, z = pos.z},
        {x = pos.x - 1, y = pos.y + 1, z = pos.z},
        {x = pos.x - 1, y = pos.y, z = pos.z},
        {x = pos.x - 1, y = pos.y - 1, z = pos.z}
    }
end

function onDeath(cid)
    local bid = bosses[getCreatureName(cid)]
    
    if isMonster(cid) and bid then
        doCreatureSetDropLoot(cid, nil)
        for _, v in ipairs(bid) do
            doCreateItem(v.itemid, math.random(v.count.min, v.count.max), getRotate(cid)[_])
            doSendMagicEffect(getRotate(cid)[_], 6)
        end
    end

    return true
end

function onLogin(cid)
    return registerCreatureEvent(cid, "droptable")
end

 

Versão 2 :

  Ocultar conteúdo

data/creaturescripts/creaturescripts.xml :



    <event type="kill" name="droptable" event="script" value="droptable.lua"/>
    <event type="login" name="droptable" event="script" value="droptable.lua"/>

 

em data/creaturescripts/scripts, crie um arquivo droptable.lua e cole isso dentro :



-- Coded by Zoom.

local bosses = {
    ["Dragon"] = {
        {itemid = 5805, count = {min = 1, max = 1}},
        {itemid = 8931, count = {min = 1, max = 1}},
        {itemid = 2471, count = {min = 1, max = 1}},
        {itemid = 2466, count = {min = 1, max = 1}},
        {itemid = 2470, count = {min = 1, max = 1}},
        {itemid = 2646, count = {min = 1, max = 1}},
        {itemid = 2523, count = {min = 1, max = 1}},
        {itemid = 2160, count = {min = 30, max = 60}}
    }
}


-- functions..
function getRotate(uid)
    local pos = getCreaturePosition(uid)
    return
    {
        {x = pos.x, y = pos.y - 1, z = pos.z},
        {x = pos.x + 1, y = pos.y - 1, z = pos.z},
        {x = pos.x + 1, y = pos.y, z = pos.z},
        {x = pos.x + 1, y = pos.y + 1, z = pos.z},
        {x = pos.x, y = pos.y + 1, z = pos.z},
        {x = pos.x - 1, y = pos.y + 1, z = pos.z},
        {x = pos.x - 1, y = pos.y, z = pos.z},
        {x = pos.x - 1, y = pos.y - 1, z = pos.z}
    }
end

function onKill(cid, target)
    local bid = bosses[getCreatureName(target)]
    
    if isMonster(target) and bid and getStorage(33975) <= os.time() then
        doCreatureSetDropLoot(target, nil)
        for _, v in ipairs(bid) do
            doCreateItem(v.itemid, math.random(v.count.min, v.count.max), getRotate(target)[_])
            doSendMagicEffect(getRotate(target)[_], 6)
        end
        doSetStorage(33975, os.time() + 5)
    end

    return true
end

function onLogin(cid)
    return registerCreatureEvent(cid, "droptable")
end

 

 

Só isso, valeu!:accept:

 

Zoom, a idéia é muito boa, seria possivel adicionar chance individual para os itens?

asdukeeh.jpg

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo