mirror of
https://github.com/OTCv8/otclientv8.git
synced 2025-05-09 23:39:21 +02:00
115 lines
3.6 KiB
Lua
115 lines
3.6 KiB
Lua
setDefaultTab("Tools")
|
|
function quiverManager()
|
|
quiverPanelName = "quiverManager"
|
|
|
|
local ui = setupUI([[
|
|
Panel
|
|
height: 33
|
|
margin-top: 2
|
|
|
|
BotItem
|
|
id: BoltsID
|
|
anchors.left: parent.left
|
|
anchors.top: parent.top
|
|
|
|
BotItem
|
|
id: ArrowsID
|
|
anchors.left: prev.right
|
|
anchors.verticalCenter: prev.verticalCenter
|
|
|
|
BotSwitch
|
|
id: BoltsSwitch
|
|
anchors.top: parent.top
|
|
anchors.bottom: prev.verticalCenter
|
|
anchors.right: parent.right
|
|
text: Sort Bolts
|
|
|
|
BotSwitch
|
|
id: ArrowsSwitch
|
|
anchors.top: prev.bottom
|
|
anchors.bottom: ArrowsID.bottom
|
|
anchors.right: parent.right
|
|
text: Sort Arrows
|
|
|
|
]])
|
|
ui:setId(quiverPanelName)
|
|
|
|
if not storage[quiverPanelName] then
|
|
storage[quiverPanelName] = {
|
|
arrowsId = 35848,
|
|
boltsId = 35849,
|
|
bolts = false,
|
|
arrows = false
|
|
}
|
|
end
|
|
|
|
ui.BoltsSwitch:setOn(storage[quiverPanelName].bolts)
|
|
ui.BoltsSwitch.onClick = function(widget)
|
|
storage[quiverPanelName].bolts = not storage[quiverPanelName].bolts
|
|
widget:setOn(storage[quiverPanelName].bolts)
|
|
end
|
|
ui.ArrowsSwitch:setOn(storage[quiverPanelName].arrows)
|
|
ui.ArrowsSwitch.onClick = function(widget)
|
|
storage[quiverPanelName].arrows = not storage[quiverPanelName].arrows
|
|
widget:setOn(storage[quiverPanelName].arrows)
|
|
end
|
|
ui.BoltsID:setItemId(storage[quiverPanelName].boltsId)
|
|
ui.BoltsID.onItemChange = function(widget)
|
|
storage[quiverPanelName].boltsId = widget:getItemId()
|
|
end
|
|
ui.ArrowsID:setItemId(storage[quiverPanelName].arrowsId)
|
|
ui.ArrowsID.onItemChange = function(widget)
|
|
storage[quiverPanelName].arrowsId = widget:getItemId()
|
|
end
|
|
|
|
local arrows = {16143, 763, 761, 7365, 3448, 762, 21470, 7364, 14251, 3447, 3449, 15793, 25757, 774}
|
|
local bolts = {6528, 7363, 3450, 16141, 25758, 14252, 3446, 16142}
|
|
|
|
macro(200, function()
|
|
local dArrow
|
|
local dBolt
|
|
for _, c in pairs(getContainers()) do
|
|
if not containerIsFull(c) then
|
|
if c:getContainerItem():getId() == storage[quiverPanelName].arrowsId and storage[quiverPanelName].arrows then
|
|
dArrow = c
|
|
elseif c:getContainerItem():getId() == storage[quiverPanelName].boltsId and storage[quiverPanelName].bolts then
|
|
dBolt = c
|
|
end
|
|
end
|
|
end
|
|
|
|
if dArrow and storage[quiverPanelName].arrows then
|
|
for _, c in pairs(getContainers()) do
|
|
if c:getName():lower():find("backpack") or c:getName():lower():find("bag") or c:getName():lower():find("chess") then
|
|
for _, i in pairs(c:getItems()) do
|
|
if table.find(arrows, i:getId()) then
|
|
return g_game.move(i, dArrow:getSlotPosition(dArrow:getItemsCount()), i:getCount())
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
if dBolt and storage[quiverPanelName].bolts then
|
|
for _, c in pairs(getContainers()) do
|
|
if c:getName():lower():find("backpack") or c:getName():lower():find("bag") or c:getName():lower():find("chess") then
|
|
for _, i in pairs(c:getItems()) do
|
|
if table.find(bolts, i:getId()) then
|
|
return g_game.move(i, dBolt:getSlotPosition(dBolt:getItemsCount()), i:getCount())
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
|
|
if voc() == 2 or voc() == 12 then
|
|
addSeparator()
|
|
UI.Label("[[ Quiver Manager ]]")
|
|
addSeparator()
|
|
quiverManager()
|
|
end |