Ir para conteúdo

Ao cair x item de loot, irá aparecer uma bag ou backpack e nela estará o item


larissaots

Posts Recomendados

Créditos à zipter98.

 

Objetivo

Quando X item cair do loot de algum monstro, irá aparecer uma backpack ou bag (a que você preferir) e nela estará o item que você configurou no script. Isso é bom para deixar separados dos itens "sem valor", pois, você vai saber quando realmente cair um item valioso, porque irá aparecer a backpack/bag. É um script diferente que pode chamar a atenção dos players.

 

Tutorial

Vá até as pastas data/creaturescripts/scripts, crie o arquivo aparecerbag.lua e coloque:

local bag = xxx                        -- ID da bag ou backpack
local itens = {xxx, xxx, xxx}          -- ID dos itens que serão colocados dentro da bag, caso dropados.
function Loot(mName, mPosition)
    local items = {}
    for i = getTileInfo(mPosition).items, 1, -1 do
        mPosition.stackpos = i
        table.insert(items, getThingFromPos(mPosition))
    end
    if #items == 0 then
        return true
    end
    local corpse = -1
    for _, item in ipairs(items) do
        local name = getItemName(item.uid):lower()
        if name:find(mName:lower()) then
            corpse = item.uid
            break
        end
    end
    if not isContainer(corpse) then
        return true
    end
    if corpse == -1 then
        return true
    end
    for i = 0, getContainerSize(corpse) - 1 do
        local item = getContainerItem(corpse, i)
        if isInArray(itens, item.itemid) then
            doAddContainerItem(doAddContainerItem(corpse, bag, 1), item.itemid, item.type)
            doRemoveItem(item.uid)
        end
    end
end
function onKill(cid, target)
    if isMonster(target) then
        addEvent(Loot, 5, getCreatureName(target), getThingPos(target))
    end
    return true
end
function onLogin(cid)
    registerCreatureEvent(cid, "lootItem")
    return true
end
Após isso vá em data/creaturescripts/ e abra o arquivo creaturescripts.xml. Adicione:
<event type="login" name="lootLogin" event="script" value="aparecerbag.lua"/>
<event type="kill" name="lootItem" script="aparecerbag.lua"/>
Link para o comentário
Compartilhar em outros sites

funciona pra qual tfs?

e no caso, eu tenho que colocar o ID de todos os items que eu quero ?

dava pra pegar essa ideia e tentar fazer a parada do reward chest do tibia, seria legal

Link para o comentário
Compartilhar em outros sites

funciona pra qual tfs?

e no caso, eu tenho que colocar o ID de todos os items que eu quero ?

dava pra pegar essa ideia e tentar fazer a parada do reward chest do tibia, seria legal

Foi testado em 8.60, porém, você pode arriscar em versões superiores.

E sim, você tem que alterar os valores dos IDs para os que você quer que apareça na backpack/bag.

Link para o comentário
Compartilhar em outros sites

acho que vc não entendeu a minha pergunta, o tfs no caso é a distro, não a versão do tibia ... mas parece que é 0.3 ou 0.4

vou tentar conveter pro tfs 1.2

e dai posto aqui se conseguir.

Link para o comentário
Compartilhar em outros sites

acho que vc não entendeu a minha pergunta, o tfs no caso é a distro, não a versão do tibia ... mas parece que é 0.3 ou 0.4

vou tentar conveter pro tfs 1.2

e dai posto aqui se conseguir.

Desculpa, foi o sono, foi testado no TFS 0.4, 0.3 e 0.6. Certo, caso consiga, eu altero o post e coloco seus créditos.

Beijos.

Link para o comentário
Compartilhar em outros sites

Desculpa, foi o sono, foi testado no TFS 0.4, 0.3 e 0.6. Certo, caso consiga, eu altero o post e coloco seus créditos.

Beijos.

olha, ainda não consegui estou com uns problemas de versão e tal...

umas funções que tem sintax diferente...

vc manja de tfs 1.x?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...