Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa tarde familia TK! :grin:

 Bom hoje estou com um probleminha no meu autoloot e gostaria muito de uma ajudinha. Basicamente o script do autoloot está pronto e instalado no servidor, porém, o problema é o seguinte: Quando ele arrasta 100x de um certo item, ele para de puxar.

Exemplo: Catei 100 small stones, completei 1 packzinho, o sistema deveria continuar pegando e arrastando pra bag, mas ao inves disso ele simplesmente ignora o item dropado ...

 

Meus scripts são os seguintes:

CreatureScrips: aloot.lua

 

Spoiler

function onLogin(cid)
    registerCreatureEvent(cid, "aloot_kill")
    return true
end
local stor = 7575
function autoloot(cid, target, pos)
    local function doStack(cid, itemid, new)
            local count = getPlayerItemCount(cid, itemid)
            if (count > 100) then
                    count = count - math.floor(count / 100) * 100
            end
            local newCount = count + new
            if (count ~= 0) then
                    local find = getPlayerItemById(cid, true, itemid, count).uid
                    if (find > 0) then
                            doRemoveItem(find)
                    else
                            newCount = new
                    end
            end
            local item = doCreateItemEx(itemid, newCount)
            doPlayerAddItemEx(cid, item, true)
    end
    local function scanContainer(cid, uid, list)
            for k = (getContainerSize(uid) - 1), 0, -1 do
                    local tmp = getContainerItem(uid, k)
                    if (isInArray(list, tmp.itemid)) then
                            if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then
                                    doStack(cid, tmp.itemid, tmp.type)
                            else
                                    local item = doCreateItemEx(tmp.itemid, tmp.type)
                                    doPlayerAddItemEx(cid, item, true)
                            end
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.')
                            doRemoveItem(tmp.uid)
                    elseif isContainer(tmp.uid) then
                            scanContainer(cid, tmp.uid, list)
                    end
            end
    end
    local items = {}
    for i = getTileInfo(pos).items, 1, -1 do
            pos.stackpos = i
            table.insert(items, getThingFromPos(pos))
    end
    if (#items == 0) then
            return
    end
    local corpse = -1
    for _, item in ipairs(items) do
            local name = getItemName(item.uid):lower()
            if name:find(target:lower()) then
                    corpse = item.uid
                    break
            end
    end
    if (corpse ~= -1) and isContainer(corpse) then
            scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(','))
    end
end
function onKill(cid, target, lastHit)
    if not isPlayer(target) then
            local infos = getPlayerStorageValue(cid, stor)
            if (infos == -1) then
                    return true
            end
            local list = tostring(infos):explode(',')
            if (#list == 0) then
                    return true
            end
            addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target))
    end
    return true
end

 

E Talkactions: aloot.lua

Spoiler

local stor, limit = 7575, 10 --storage, limit to add.

local allow_container = false --empty! not looted with items, atleast for now.

function onSay(cid, words, param)
        if(param == '') then
            doPlayerSendTextMessage(cid, 27, "Command param required. (check, add, remove)")
            return true
        end
        local expl = param:explode(':')
        local action, rst = expl[1], expl[2]
        if (action:lower() == 'check') then
                local infos, list = getPlayerStorageValue(cid, stor), {}
                if (infos ~= -1) then
                        list = tostring(infos):explode(',')
                end
                local txt = 'Autoloot List:\n'
                if (#list > 0) then
                        for k, id in ipairs(list) do
                                id = id:gsub('_', '')
                                if tonumber(id) then
                                        txt = txt .. getItemNameById(tonumber(id)) .. ((k < #list) and '\n' or '')
                                end
                        end
                else
                        txt = 'Empty'
                end
                doPlayerPopupFYI(cid, txt)
        elseif (action:lower() == 'add') then
                local infos, list = getPlayerStorageValue(cid, stor), {}
                if (infos ~= -1) then
                        list = tostring(infos):gsub('_', ''):explode(',')
                end
                if (#list >= limit) then
                        return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')
                end
                local item = tonumber(rst)
                if not item then
                        item = getItemIdByName(rst, false)
                        if not item then
                                return doPlayerSendCancel(cid, 'not valid item.')
                        end
                end
                if not allow_container and isItemContainer(item) then
                        return doPlayerSendCancel(cid, 'this item can not be autolooted.')
                end
                local attrs = getItemInfo(item)
                if not attrs then
                        return doPlayerSendCancel(cid, 'not valid item.')
                elseif not attrs.movable or not attrs.pickupable then
                        return doPlayerSendCancel(cid, 'this item can not be autolooted.')
                end
                if isInArray(list, item) then
                        return doPlayerSendCancel(cid, 'already added.')
                end
                table.insert(list, tostring(item))
                local new = ''
                for v, id in ipairs(list) do
                        new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '')
                end
                doPlayerSetStorageValue(cid, stor, tostring(new))
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< has been added to the autoloot list.')
        elseif (action:lower() == 'remove') then
                local infos, list = getPlayerStorageValue(cid, stor), {}
                if (infos ~= -1) then
                        list = tostring(infos):gsub('_', ''):explode(',')
                end
                if (#list == 0) then
                        return doPlayerSendCancel(cid, 'You dont have any item added.')
                end
                if (#list >= limit) then
                        return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')
                end
                local item = tonumber(rst)
                if not item then
                        item = getItemIdByName(rst, false)
                        if not item then
                                return doPlayerSendCancel(cid, 'not valid item.')
                        end
                end
                if not isInArray(list, item) then
                        return doPlayerSendCancel(cid, 'This item is not in the list.')
                end
                local new = ''
                for v, id in ipairs(list) do
                        if (tonumber(id) ~= item) then
                                new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '')
                        end
                end
                doPlayerSetStorageValue(cid, stor, tostring(new))
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< removed from the autoloot list.')
        end       
        return true
end

 

 Quem puder dar uma ajudinha ai a corrigir esse meu erro, agradeço muito de coração! :wow:

Link para o post
Compartilhar em outros sites

Troque

if (count > 100) then

por

if (count >= 100) then

 

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo