Ir para conteúdo
  • 0
Entre para seguir isso  
willks123

Scripting Bug no Autoloot Help

Pergunta

willks123    0
willks123

Pessoal alguem pode me ajudar resolver esse bug? -- Nao entendo muito de script, mas pelo que entendi esse erro acontece por que o char esta longe do corpo do bixo... E no script acho que esta para pegar se estiver proximo... Se puderem me ajudar, agradeço....

2h4dyd2.jpg

 

Creaturescript AUTOLOOT.LUA:

Spoiler

local function scanContainer(cid, position)
    local player = Player(cid)
    if not player then
        return
    end

    local corpse = Tile(position):getTopDownItem()
    if not corpse then
        return
    end

    if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == cid then
        for i = corpse:getSize() - 1, 0, -1 do
            local containerItem = corpse:getItem(i)
            if containerItem then
                for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                    if player:getStorageValue(i) == containerItem:getId() then
                        containerItem:moveTo(player)
                    end
                end
            end
        end
    end
end

function onKill(player, target)
    if not target:isMonster() then
        return true
    end

    addEvent(scanContainer, 100, player:getId(), target:getPosition())
    return true
end

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 respostass a esta questão

Recommended Posts

  • 0
Majesty    1755
Majesty

Substitua:

local corpse = Tile(position):getTopDownItem()
    if not corpse then
        return
    end

Por:

local corpse = Tile(position):getTopDownItem()
    if not corpse or not corpse:isContainer() then
        return
    end

Veja se resolve o problema e o sistema de autoloot volta a funcionar corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
willks123    0
willks123
Em 04/12/2017 em 01:55, Majesty disse:

https://otland.net/threads/bug-with-autoloot.248613/#post-2417446


local corpse = Tile(position):getTopDownItem()
    if not corpse or not corpse:isContainer() then
        return
    end

Créditos: silveralol

Eu li mas nao entendi Sera que voce pode me ajudar? meu Script esta assim:

Spoiler

local function scanContainer(cid, position)
    local player = Player(cid)
    if not player then
        return
    end

    local corpse = Tile(position):getTopDownItem()
    if not corpse then
        return
    end

    if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == cid then
        for i = corpse:getSize() - 1, 0, -1 do
            local containerItem = corpse:getItem(i)
            if containerItem then
                for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                    if player:getStorageValue(i) == containerItem:getId() then
                        containerItem:moveTo(player)
                    end
                end
            end
        end
    end
end

function onKill(player, target)
    if not target:isMonster() then
        return true
    end

    addEvent(scanContainer, 100, player:getId(), target:getPosition())
    return true
end

 

O que eu tenho que alterar???

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×