Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Citar

Lua Script Error: [Main Interface] in a timer event called from: (Unknown scriptfile) data/creaturescripts/scripts/autoloot.lua:13: attempt to call method 'getSize' (a nil value) stack traceback: [C]: in function 'getSize' data/creaturescripts/scripts/autoloot.lua:13: in function

 

Link para o post
Compartilhar em outros sites
  • 6 months later...

Aqui funcionou otx 3.10, base tfs 1.3.

Porém está acontecendo o seguinte erro no distro: 

Lua Script Error: [Main Interface] 
in a timer event called from: 
(Unknown scriptfile) 
data/creaturescripts/scripts/autoloot.lua:13: attempt to call method 'getSize' (a nil value) 
stack traceback: 
[C]: in function 'getSize' 
data/creaturescripts/scripts/autoloot.lua:13: in function 

O mais estranho é que funciona 100% o script kkk alguem sabe como arrumar isso? E eu também queria colocar mais slots de loot porém só para vip como faço isso?

Editado por vine96 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 5 weeks later...

@floyer 

Em 03/01/2017 em 03:27, floyer disse:

Olha, no meu pra funcionar eu tive que alterar o .lua do talkactions, Bem na instruçao onde vc adiciona o item


if action == "add" then
        local item = split[2] -- Alterei aki. Antes ele removia os espacos em branco de itens como (gold coin), ficando goldcoin, dai ele n achava esse nome nos loots 
        local itemType = ItemType(item)
        if itemType:getId() == 0 then --removi linhas aki. Se o player digitar o nome errado do item, nao sera adicionado na lista de loot
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.")
                return false
        end

Só testei com o item gold coin. Matei uns eskeletos e ele funcionou certinho

 

O meu continua sem funcionar. Não aparece erro nenhum na distro, porém quando tento adicionar algum item usando o comando !autoloot add, ele não reconhece nenhum item que escrevo, fica sempre repetindo a msg Use the commands: !autoloot {add, remove, show, clear}. Sabe resolver? Uso TFS 1.2

 

Citar

Corrigido, precisava colocar vírgula para funcionar:

!autoloot add,gold coin :wow:

 

Editado por r4ge (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 year later...
  • 11 months later...
Em 25/10/2015 em 16:02, Tricoder disse:
SCREENSHOT


______________________________________________

COMANDOS


!autoloot add, itemId ou name -- Adicionando um item na lista
!autoloot remove, itemId or name -- Remover um item da lista
!autoloot show -- Mostrar a lista do autoLoot
!autoloot clear -- Limpar a lista do autoLoot
______________________________________________
SCRIPT

data/global.lua


-- AutoLoot config
    AUTO_LOOT_MAX_ITEMS = 5

    -- Reserved storage
    AUTOLOOT_STORAGE_START = 10000
    AUTOLOOT_STORAGE_END = AUTOLOOT_STORAGE_START + AUTO_LOOT_MAX_ITEMS
-- AutoLoot config end

talkactions/talkactions.xml


<talkaction words="!autoloot" separator=" " script="autoloot.lua"/>

talkactions/scripts/autoloot.lua


function onSay(player, words, param)
    local split = param:split(",")

    local action = split[1]
    if action == "add" then
        local item = split[2]:gsub("%s+", "", 1)
        local itemType = ItemType(item)
        if itemType:getId() == 0 then
            itemType = ItemType(tonumber(item))
            if itemType:getId() == 0 then
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.")
                return false
            end
        end

        local itemName = tonumber(split[2]) and itemType:getName() or item
        local size = 0
        for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
            local storage = player:getStorageValue(i)
            if size == AUTO_LOOT_MAX_ITEMS then
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The list is full, please remove from the list to make some room.")
                break
            end

            if storage == itemType:getId() then
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." is already in the list.")
                break
            end

            if storage <= 0 then
                player:setStorageValue(i, itemType:getId())
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been added to the list.")
                break
            end

            size = size + 1
        end
    elseif action == "remove" then
        local item = split[2]:gsub("%s+", "", 1)
        local itemType = ItemType(item)
        if itemType:getId() == 0 then
            itemType = ItemType(tonumber(item))
            if itemType:getId() == 0 then
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.")
                return false
            end
        end

        local itemName = tonumber(split[2]) and itemType:getName() or item
        for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
            if player:getStorageValue(i) == itemType:getId() then
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been removed from the list.")
                player:setStorageValue(i, 0)
                return false
            end
        end

        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." was not founded in the list.")
    elseif action == "show" then
        local text = "-- Auto Loot List --\n"
        local count = 1
        for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
            local storage = player:getStorageValue(i)
            if storage > 0 then
                text = string.format("%s%d. %s\n", text, count, ItemType(storage):getName())
                count = count + 1
            end
        end

        if text == "" then
            text = "Empty"
        end
   
        player:showTextDialog(1950, text, false)
    elseif action == "clear" then
        for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
            player:setStorageValue(i, 0)
        end

        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The autoloot list has been cleared.")
    else
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Use the commands: !autoloot {add, remove, show, clear}")
    end

    return false
end

creaturescripts/creaturescripts.xml


<event type="kill" name="AutoLoot" script="autoloot.lua" />

creaturescripts/scripts/autoloot.lua


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

creaturescripts/scripts/login.lua


player:registerEvent("AutoLoot")
______________________________________________

CRÉDITOS

  • Printer

desculpe reviver o topico, como deixo o comando !autoloot pra ativar o sistema e o restante pra gerenciar pelo (manager loot containers) Meu é tfs 1.3 versao 12.3 

Link para o post
Compartilhar em outros sites
5 minutos atrás, feipedorp disse:

desculpe reviver o topico, como deixo o comando !autoloot pra ativar o sistema e o restante pra gerenciar pelo (manager loot containers) Meu é tfs 1.3 versao 12.3 

 

vc quer um comando que ativa o autoloot? exemplo !autoloot on/off?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
21 horas atrás, Vodkart disse:

 

vc quer um comando que ativa o autoloot? exemplo !autoloot on/off?

Eu quero deixar o sistema como atual igual global, para gerenciamento de backpackys e itens, porem o meu autoloot não pega o loot sozinho tem que abrir o bixo, gostaria que somente ao matar coletasse sozinho o loot.

Link para o post
Compartilhar em outros sites
  • 10 months later...

Pra quem ainda utiliza esse script venho trazer a solução para o erro tanto do GetSize quanto do Container.

 

O meu pensamento foi bem simples, eu sabia que o script estava funcionando quase "perfeitamente" se não fosse esse erro, eu testei inumeras vezes e não acontecia o erro, porém quando outras pessoas pelo mapa estavam caçando, as vezes aparecia.

Então eu tive que começar a pensar em identificar em que circunstância isso acontecia, então eu pensei na possibilidade de ser um monstro específico ou alguma característica.

Coloquei pra printar o monstro e o player toda vez que o autoloot fosse acionado e deu certo, descobri que quando as pessoas matavam por exemplo a Snake, que não tem como abrir, o script dava esse erro.

 

A solução foi o seguinte, 

 

 

Arquivo: creaturescripts/scripts/autoloot.lua

        local container = Container(corpse.uid)
	
		-- verificação se o corpo possui ou não container
        if not container then
              return
        end

 

Coloquei essa verificação para identificar se o monstro em questão possuia container antes de executar a função do autoloot.

 

Sendo assim, se ele identificar que o corpo não possui container (não da pra abrir) ele mata o script e não da o erro.

 

Espero que funcione pra vocês também!

 

Scripts final ficou assim:

 

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


        local container = Container(corpse.uid)

        if not container then
              return
        end

        for i = 0, container:getSize()-1 do
            local containerItem = container: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

 

 

Editado por tavares7 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 year later...

Salve galera desculpa revier o topico mais estou com mesmo erro do cara ali de 2017, eu testei numa tfs1.5 do nekiro downgrades 8.60 
ele funciona tudo certinho adiciona na lista e remove e ver a lista porém ele não coleta o item e não aparece erro no log


Alguem pode ajudar

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 BTitan
      Reviva a nostalgia do Tibia 8.6 com um toque das novidades modernas, mantendo a essência clássica que você ama. Nosso mapa é limpo e otimizado, perfeito para wars intensas e estratégicas.
      Com mais de 100 áreas de caça, vocações equilibradas e eventos automáticos diários, garantimos diversão sem limites para todos os jogadores.
       
      ACC Manager: 1/1
      IP: go.baiaktitan.com
      https://www.baiaktitan.com
       
      Principais informações:
       
      Dedicado 24 horas sem lag Attack Speed moderado Cast System DODGE! CRITICAL! REFLECT! Upgrade Weapon Forge System Autoloot Anti Rollbacks Eventos exclusivos (Battle Royale, DOTA, Team Battle, entre outros...) Servidor integrado com Telegram (Contato direto com ADM) Cliente próprio (com novos itens, montarias e outfits) Mapa Baiak, modificado exclusivamente para o PvP Servidor otimizado, suportando mais de 1.000 players online  
      »» EXP Rate: 200x
      »» Skill Rate: 20x
      »» Magic Rate: 10x
      »» Loot Rate: 3x
       
      Aguardamos por você!
    • Por Kuds
      Boas pessoal!
       
      Estou disponibilizando neste fórum a oportunidade para quem é fan de Lord Of the Rings e gostaria de participar na recriação de um mapa baseado no universo de Tolkien. Comecei a projetar o mapa pois sempre gostei do antigo servidor Bronson, então pensei em melhorar ele da melhor forma que posso, e mesmo não sendo Mapper de muito tempo as partes que fiz ja receberam aprovação de conhecidos que acharam interessante o meu estilo por mais simples que seja.
       
      Atualmente ja possuo a base do mapa inteiro de LOTR, recriei ele do 0 seguindo fielmente o formato do mapa, porém ele está com mais de 4x o tamanho do Bronson original. E conforme tenho tempo vou criando áreas do mapa, e no momento ja possuo Bree e Edoras prontas, e estou no processo para recriar Minas Tirith.
       
      Meu objetivo com este Post é achar pessoas que estariam dispostas á participar do grupo de WPP que criei para poder opinar nas votações que faço a respeito do mapa, e talvez achar alguem interessado em ajudar com este projeto. Então qualquer pessoa que tiver interesse fique a vontade para me mandar PM no site!
       
      PS: Não existe nenhuma obrigatoriedade de se manter no grupo, considerando que este é apenas um projeto de carinho ao Tibia e LOTR todos estão livres de sair do projeto a qualquer momento.
    • Por Nogard
      Não deixe seu evento de Natal para última hora, faltam apenas 4 dias. 

      Aproveite as sprites com desconto no site: https://otsprites.com
       
       
       

       

       
       
       
    • Por otpokesalense
      🧿Base Tibia Solebran totalmente otimizada!  
       
       ✔️ OTClient (Version Old);
      ✔️ Update 2.2;
      ✔️ Site Póprio;
      ✔️ Map Global
      ✔️ Bugs, Minimo (2x) talvez;
      ✔️ PVP 💯 Funcional.
       
       
      Get Servidor: https://files.fm/f/7qumr8943e 💸 Buy! otimo projeto para vc utilizá-lo.
      Lembrando:: ao comprar o download será disponibilizado automaticamente.
       
      🧑‍💻System Operacional: Windows (VPS)
      👨‍💻Programador (27) 998931903 - - - O Valor já inclui o serviço de programação! 🤗
       

       
       

       
       
    • Por Arkanjo39
      CUIDA, CUIDA E VEM CONHECER NOSSO SERVER. KING BAIAK ACABOU DE SER LANÇADO!!! VEM SER O TOP 1 Site com Otclient: https://kingbaiak.com/ PARA NOVOS JOGARES ADM TA DANDO AQUELA FORCINHA! SERVIDOR 8.60 COM RESETS, MONTARIAS E GOLDEN OUTFIT! INFORMAÇÕES BÁSICAS DO SERVIDOR: [+] MAPA BAIAK [+] HIGH EXP [+] RESETS COM + DAMAGE [+] AUTOLOOT AUTOMÁTICO [+] CITY DONATE [+] ROSHAMUUL, ORAMOND E NETHER [+] MONTARIAS E GOLDEN OUTFIT [+] INVASÃO DE MONSTROS AUTOMÁTICAS [+] DAILY MONSTER QUE APARECE AO LOGAR [+] MONTARIAS COM COMANDO !MOUNT [+] SISTEMA DE ROLETA ATUAL [+] CAST WATCH [+] FAST ATTACK [+] CAST ARROWS [+] PUSH CRUZADO [+] REWARD CHEST [+] WARSQUARE [+] COMBO EXP DE POTIONS [+] MINERAÇÃO COM LOJA [+] SISTEMA DE BOSS [+] CRITICAL/DODGE [500/500] [+] LIFE E MANA EM PORCENTAGEM* [+] VARIAS QUESTS [+] EVENTO DTT (AUTOMÁTICO) [+] EVENTO BATLEFIELD (AUTOMÁTICO) [+] EVENTO SNOWBALLWAR (AUTOMÁTICO) [+] EVENTO DESERT WAR (AUTOMÁTICO) [+] EVENTO ZOMBIE (AUTOMÁTICO) [+] EVENTO CAMPO MINADO (AUTOMÁTICO) [+] EVENTO TEAM BATLE (AUTOMÁTICO) [+] EVENTO CAPTURE THE FLAG (AUTOMÁTICO)
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo