Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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.

 

Link para o post
Compartilhar em outros sites
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 :)

Link para o post
Compartilhar em outros sites
  • 1 month later...
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

Link para o post
Compartilhar em outros sites
  • 1 month later...

a primeira versão não vai funcionar pq vc tem que botar no xml do monstro pra registrar, ja que é onDeath o callback. A segunda até funciona, mas vc perde as informações do drop como a chance, por exemplo. Pra melhorar isso você poderia fazer o seguinte, ao invés de cancelar a chance do monstro dropar algo e fazer tudo por código, verifica se o corpse do monstro é um container e varre esse container pegando os itens de dentro e jogando pra fora do corpo.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
  • 4 months later...

Desculpa reviver o tópico mas você poderia ter explicado como configura corretamente...

Não entendi essa parte!!

-- 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
Link para o post
Compartilhar em outros sites
  • 2 months later...

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Digoshow
      Ola eu instalei um scrip no meu otserv que e o Auto-loot, tudo certinho blz, mais eu queria editar o comando que e usado para diciona um item, o comando que esta e esse /aloot remove:2170 eu queria deixa assim /aloot remove, 2170 tirar os 2 pontos e deixa uma virgula e um espaco depois da virgula, alguem consegue editar pra mim porfavor:
      Scrip que estou usando : http://www.tibiaking.com/forum/topic/8172-sistema-auto-loot/
      Obrigado, REP+ !
    • Por jeddhemi
      script que estou utilizando trearak.lua: 
       

       
      local tpId = 1387 local tps = {          ["Trearak"] = {pos = {x=32646, y=31307, z=15}, toPos = {x=32689, y=31470, z=13}, time = 60}, }     function removeTp(tp)         local t = getTileItemById(tp.pos, tpId)         if t then                 doRemoveItem(t.uid, 1)                 doSendMagicEffect(tp.pos, CONST_ME_POFF)         end end     function onDeath(cid)         local tp = tps[getCreatureName(cid)]         if tp then                 doCreateTeleport(tpId, tp.toPos, tp.pos)                 doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)                 addEvent(removeTp, tp.time*1000, tp)         end         return TRUE end   <event type="death" name="tp" event="script" value="Trearak.lua"/>   <ali onde esta escrito "tp" eu possuo outro monstro que funciona o script e no events tambem esta com "tp" isso pode interferir em outros script repetir o mesmo evento?  no caso: <event type="death" name="tp" event="script" value="AncientLightDwarvenKingdom.lua"/>    
    • Por TsplayerT
      ALO, COM QUEM EU FALO?
       
           Galera fui abrir meu Server de POkeTibia, porém apareçeu erros no Console quando fui logar-se e assim não consigui entrar no server
           Erro apresentado no Console:

       
      Estarei disponibilisando os arquivos citados no erro.
       
      Arquivo: Cooldown Bar
       


       
      Arquivo: Login
       


       
      POR FAVOR, ME AJUDEM PORQUE SEMPRE TENTO AJUDAR A TODOS
      DAREI REP +
      Obrigado
    • Por diarmaint
      Galera to precisando e um script pra uma parte do mapa healar.

      vai ser uma piscina em uma parte do mapa para os players treinar ml.
      ex: o player entra e a vida e mana começa a encher por segundo.
      se tiver também como mudar o outfit da vocação para toda vez que ela entra e sai da água, pra ficar uma coisa bem realista:)
      parece ser meio difícil, mais conto com a ajuda de vocês.
    • Por guiferri
      EAE gente , quero faser um mega mewtwo dropar black diamond , como fasso isso ?
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo