[Encerrado] Bug no AUTOLOOT

willks123
em Tópicos Sem Resposta

willks123

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/07/07Posts: 31Gênero: Masculino

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

 

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

 

 

Rafael Gomes

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 03/08/05Posts: 184

Por curiosidade, o erro não está sendo no método .getsize?

for i = corpse:getSize() - 1, 0, -1 do

Na condição de repetição for a variável está recebendo o valor de .getsize() - 1, suponhamos que o getsize() retorne um valor igual a 0, i receberia um valor negativo que não é favorável para a condição de repetição. Já tentou remover este corpse:getSize() -1 ?

willks123

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/07/07Posts: 31Gênero: Masculino
Em 04/12/2017 at 11:42, Rafael Gomes disse:

Por curiosidade, o erro não está sendo no método .getsize?

for i = corpse:getSize() - 1, 0, -1 do

Na condição de repetição for a variável está recebendo o valor de .getsize() - 1, suponhamos que o getsize() retorne um valor igual a 0, i receberia um valor negativo que não é favorável para a condição de repetição. Já tentou remover este corpse:getSize() -1 ?

uhm, Nao entendi bem, Como eu deveria deixar entao ?

for i = 0 do  ?

Stigal

don't ever stop...
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 28/11/10Posts: 3402Gênero: Masculino
A questão neste tópico de suporte foi encerrada por falta de resposta. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord Xtibia | Skype: @mrooger

 

OTpanel