Ir para conteúdo
Propaganda

Posts Recomendados

Boa noite,

Recentemente, precisei de uma forma de coletar loot apenas clicando no item dentro do corpo do Pokémon, sem precisar arrastar manualmente. Pesquisei em vários fóruns, mas não encontrei nada pronto... então resolvi desenvolver minha própria solução e compartilhar com vocês.

É um código simples, ainda meio incompleto, mas já funciona 100%. Com essa modificação, o loot vai direto para a bag principal do player. Se quiser que vá para outras bags, pode ajustar conforme quiser.

O código fica no módulo game_containers. Encontre este codigo:

for slot=0,container:getCapacity()-1 do
    local itemWidget = g_ui.createWidget('Item', containerPanel)
    itemWidget:setId('item' .. slot)
    itemWidget:setItem(container:getItem(slot))
    itemWidget:setMargin(0)
    itemWidget.position = container:getSlotPosition(slot)
    if not container:isUnlocked() then
      itemWidget:setBorderColor('red')
    end
end


e substitua por

for slot=0,container:getCapacity()-1 do
    local itemWidget = g_ui.createWidget('Item', containerPanel)
    itemWidget:setId('item' .. slot)
    itemWidget:setItem(container:getItem(slot))
    itemWidget:setMargin(0)
    itemWidget.position = container:getSlotPosition(slot)
    if not container:isUnlocked() then
      itemWidget:setBorderColor('red')
    end
    
    itemWidget.onMousePress = function(widget)
        local item = widget:getItem()

        if item and container then
            local containerName = container:getName():lower()

            if containerName:find("fainted") then
                local player = g_game.getLocalPlayer()
                local backpack = player:getInventoryItem(InventorySlotAmmo)
                if backpack then
                    local posbag = backpack:getPosition()
                    g_game.move(item, posbag, item:getCount())
                end
            end
        end
    end
end

 

Apenas foi adicionado uma função de click de mouse dentro que faz com que ao ser clicado no item, ele seja movido direto pra bag (slot) que eu defini.

Isso pode ser util para quem quer:

Coletar apenas os itens desejados, sem pegar loot desnecessário.
Deixar o sistema mais parecido com o estilo do OTPokémon, que ainda é seguido por vários servidores.
Evitar a necessidade de arrastar itens manualmente, tornando o processo mais rápido.

  • Like 1
Link para o comentário
https://tibiadevs.com/forums/topic/929-click-loot-igual-otpok%C3%A9mon/
Compartilhar em outros sites

  • Moderador
4 minutos atrás, Jhone disse:

Boa noite,

Recentemente, precisei de uma forma de coletar loot apenas clicando no item dentro do corpo do Pokémon, sem precisar arrastar manualmente. Pesquisei em vários fóruns, mas não encontrei nada pronto... então resolvi desenvolver minha própria solução e compartilhar com vocês.

É um código simples, ainda meio incompleto, mas já funciona 100%. Com essa modificação, o loot vai direto para a bag principal do player. Se quiser que vá para outras bags, pode ajustar conforme quiser.

O código fica no módulo game_containers. Encontre este codigo:

for slot=0,container:getCapacity()-1 do
    local itemWidget = g_ui.createWidget('Item', containerPanel)
    itemWidget:setId('item' .. slot)
    itemWidget:setItem(container:getItem(slot))
    itemWidget:setMargin(0)
    itemWidget.position = container:getSlotPosition(slot)
    if not container:isUnlocked() then
      itemWidget:setBorderColor('red')
    end
end


e substitua por

for slot=0,container:getCapacity()-1 do
    local itemWidget = g_ui.createWidget('Item', containerPanel)
    itemWidget:setId('item' .. slot)
    itemWidget:setItem(container:getItem(slot))
    itemWidget:setMargin(0)
    itemWidget.position = container:getSlotPosition(slot)
    if not container:isUnlocked() then
      itemWidget:setBorderColor('red')
    end
    
    itemWidget.onMousePress = function(widget)
        local item = widget:getItem()

        if item and container then
            local containerName = container:getName():lower()

            if containerName:find("fainted") then
                local player = g_game.getLocalPlayer()
                local backpack = player:getInventoryItem(InventorySlotAmmo)
                if backpack then
                    local posbag = backpack:getPosition()
                    g_game.move(item, posbag, item:getCount())
                end
            end
        end
    end
end

 

Apenas foi adicionado uma função de click de mouse dentro que faz com que ao ser clicado no item, ele seja movido direto pra bag (slot) que eu defini.

Isso pode ser util para quem quer:

Coletar apenas os itens desejados, sem pegar loot desnecessário.
Deixar o sistema mais parecido com o estilo do OTPokémon, que ainda é seguido por vários servidores.
Evitar a necessidade de arrastar itens manualmente, tornando o processo mais rápido.

Tópico aprovado! A comunidade agradece sua contribuição.

Link para o comentário
https://tibiadevs.com/forums/topic/929-click-loot-igual-otpok%C3%A9mon/#findComment-4857
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
  • Criar Novo...