Jump to content

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


Recommended Posts

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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

×
×
  • Create New...