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.