Ir para conteúdo
  • 0

Auto loot system


Neymar Jr

Pergunta

Olá estou usando um auto loot system 100% que o @zipter98 postou aqui no fórum , mais ele está apenas puxando um item de cada vez pra backpack , teria como colocar pra puxar todos os loots que estão no corpo do pokémon pra a backpack?

 

parte na lib:

 

 

function doPlayerAddItemStacking(cid, itemid, quant) 
    local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid)
    local piles = 0
    if #item > 0 then
        for i,x in pairs(item) do
            if getThing(x).type < 100 then
                local it = getThing(x)
                doTransformItem(it.uid, itemid, it.type+quant)
                if it.type+quant > 100 then
                    doPlayerAddItem(cid, itemid, it.type+quant-100)
                end
            else
                piles = piles+1
            end
            break
        end
    else
        return doPlayerAddItem(cid, itemid, quant)
    end
    if piles == #item then
        doPlayerAddItem(cid, itemid, quant)
    end
end

 

script do action:

 

 

--local toloot = {11441, 11441, 11443, 11444, 11445, 11446, 11447, 11448, 11449,11450, 11451, 11452, 11453, 11454, 12618, 12232, 12244}
function onUse(cid, item, frompos, item2, topos)
    if getItemAttribute(item.uid, "corpseowner") ~= cid then
        doPlayerSendCancel(cid, "Não foi você que matou esse pokemon.")
        return true
    end
        local items = {}
        for x=0, (getContainerSize(item.uid)) do
            local itens = getContainerItem(item.uid, 0)
            if itens and itens.uid > 0 and itens.itemid ~= 0 then
                --if isInArray(toloot, itens.itemid) then
                table.insert(items, {i=itens.itemid, q=itens.type})
                doRemoveItem(itens.uid)
                --break
                --end
            end
        for y=1, #items do
            doPlayerAddItemStacking(cid, items[y].i, items[y].q)
            doPlayerSendTextMessage(cid, 20, "Looted "..items[y].q.."x "..getItemNameById(items[y].i)..".")
        end
        if #items > 0 then
            return true
        else
            return false
        end
    end
end
Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Esse system de autoloot que está nesse tópico é antigo e precisa de talkaction, oque eu estou usando é automatico e está funcionando perfeitamente o unico problema é que só puxa de loot em loot ao ínves de puxa todos loots de uma vez


UP


UP

Link para o comentário
Compartilhar em outros sites

  • 0

@@Neymar Jr, tenta assim:

function onUse(cid, item, frompos, item2, topos)
    if getItemAttribute(item.uid, "corpseowner") ~= cid then
        doPlayerSendCancel(cid, "Não foi você que matou esse pokemon.")
        return true
    end

    local items = {}
    for x = 0, getContainerSize(item.uid) do
        local itens = getContainerItem(item.uid, 0)
        if itens and itens.uid > 0 and itens.itemid ~= 0 then
		items[#items + 1] = {i = itens.itemid, q = itens.type}
		doRemoveItem(itens.uid)
        end
        for y=1, #items do
		doPlayerAddItemStacking(cid, items[y].i, items[y].q)
		doPlayerSendTextMessage(cid, 20, "Looted " .. items[y].q .. "x " .. getItemNameById(items[y].i) .. ".")
        end
        if #items > 0 then
		return true
        else
		return false
        end
    end
end
Link para o comentário
Compartilhar em outros sites

  • 0

Esse system de autoloot que está nesse tópico é antigo e precisa de talkaction, oque eu estou usando é automatico e está funcionando perfeitamente o unico problema é que só puxa de loot em loot ao ínves de puxa todos loots de uma vez

UP

UP

Cara isto deve ser algum problema com seu tfs ou algum script dando conflito ou até mesmo vc colocou errado! porque eu testei várias vezes e puxava tudo de uma vez!

Link para o comentário
Compartilhar em outros sites

  • 0

Cara isto deve ser algum problema com seu tfs ou algum script dando conflito ou até mesmo vc colocou errado! porque eu testei várias vezes e puxava tudo de uma vez!

 

Eu coloquei certinho , só que está puxando de 1 em 1 grupo de item

Link para o comentário
Compartilhar em outros sites

  • 0

 

aquele é com comando e esse meu é automatico

 

Man, eu refiz o seu e postei aqui no tópico....

Presta atenção ai...

Testa pra ver se foi, apenas a função onUse...a outra não teve necessidade de alteração.

Link para o comentário
Compartilhar em outros sites

  • 0

 

Man, eu refiz o seu e postei aqui no tópico....

Presta atenção ai...

Testa pra ver se foi, apenas a função onUse...a outra não teve necessidade de alteração.

 

Desculpa não tinha visto , mais testei e está dando esse erro e o item some

 

 

[07/08/2015 13:26:25] [Error - Action Interface] 
[07/08/2015 13:26:25] data/actions/scripts/Autoloot.lua:onUse
[07/08/2015 13:26:25] Description: 
[07/08/2015 13:26:25] data/actions/scripts/Autoloot.lua:16: attempt to concatenate field 'q' (a nil value)
[07/08/2015 13:26:25] stack traceback:
[07/08/2015 13:26:25]  data/actions/scripts/Autoloot.lua:16: in function <data/actions/scripts/Autoloot.lua:1>
Link para o comentário
Compartilhar em outros sites

  • 0

 

 

Desculpa não tinha visto , mais testei e está dando esse erro e o item some

[07/08/2015 13:26:25] [Error - Action Interface] 
[07/08/2015 13:26:25] data/actions/scripts/Autoloot.lua:onUse
[07/08/2015 13:26:25] Description: 
[07/08/2015 13:26:25] data/actions/scripts/Autoloot.lua:16: attempt to concatenate field 'q' (a nil value)
[07/08/2015 13:26:25] stack traceback:
[07/08/2015 13:26:25]  data/actions/scripts/Autoloot.lua:16: in function <data/actions/scripts/Autoloot.lua:1>

 

Editei, da uma olhada...

Link para o comentário
Compartilhar em outros sites

  • 0

 

Editei, da uma olhada...

 

Está a mesma coisa do original, puxando um item de cada vez

 

ex: se tiver 2 items e o player aperta apenas 1 vez no corpo ai só vai vim um item , eu queria que viesse os items todos do loot apenas do primeiro clique

UP

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...