"Infinity" Depositer
DescriptionWill deposit items from your loot backpack. You may put around 105 backpacks (if there will be only stack and rare backpacks)
ConfigurationSetup properly:
- lootbp - the one you carry on yourself
- stackbp - backpack for cumulative items in depot
- rarebp - backpack for non cumulative items in depot
- ignore - list of ignored items to deposit
- wpt.Label - label where char should go if items will be not deposited (depositer will fail f.e. stackbp will be full)
- wpt.Section - section of wpt.Label
Code
init start
-- Script Version 1.0.0
local stackbp = "purple backpack" -- Stackable items bp name
local rarebp = "orange backpack" -- Non stacable items bp name
local lootbp = "camouflage backpack" -- Lootbp on self
local ignore = {"gold coin", "platinum coin"} -- Will not move these items
local wpt = {Label = "FromDepot", Section = "Trainers"} -- Where go if depositer failed (no more space to deposit)
-- Do not edit anything below this line
for i=1, #ignore do
ignore[i] = itemid(ignore[i])
end
init end
reachgrounditem("depot")
closewindows()
wait(500)
setsetting('Looting/OpenNextBP', 'no')
-- Opening Loot Bp
if windowcount(lootbp) == 0 then
while windowcount(lootbp) == 0 do
if windowcount() > 0 then
closewindows()
wait(1000)
end
openitem(0, 'back')
waitping(3,4)
openitem(lootbp, itemname($back.id), false)
waitping(3,4)
resizewindows(0, lootbp)
wait(500, 700)
end
end
while windowcount("Depot Chest") == 0 do
opendepot()
end
-- Opening Stack BP
while windowcount(stackbp) == 0 do
openitem(stackbp, "depot chest", true)
wait(300, 400)
resizewindows(300, stackbp)
while windowcount(stackbp) > 0 and getcontainer(stackbp).emptycount == 0 and itemcount(stackbp, stackbp) > 0 do
openitem(stackbp, stackbp, false)
wait(100, 150)
end
if windowcount(stackbp) > 0 then
resizewindows(0, stackbp)
end
end
-- Opening Rare BP
while windowcount(rarebp) == 0 do
openitem(rarebp, "depot chest", false)
wait(300, 400)
resizewindows(300, rarebp)
while windowcount(rarebp) > 0 and getcontainer(rarebp).emptycount == 0 and itemcount(rarebp, rarebp) > 0 do
openitem(rarebp, rarebp, false)
wait(100, 150)
end
if windowcount(rarebp) > 0 then
resizewindows(0)
end
end
local cont = getcontainer(lootbp)
while windowcount(cont.name) > 0 do
local stackFull, rareFull, j = false, false, 1
for i=1, cont.itemcount do
local info = iteminfo(cont.item[j].id)
if not info.iscontainer and not table.find(ignore, info.id) then
if info.iscumulative then
-- Check if can move items to this bp
while getcontainer(stackbp).emptycount == 0 and itemcount(stackbp, stackbp) > 0 do
openitem(stackbp, stackbp, false)
wait(200, 300)
end
if getcontainer(stackbp).emptycount > 0 then
moveitems(info.id, stackbp, lootbp, 100)
waitping()
end
if getcontainer(stackbp).emptycount == 0 and itemcount(stackbp, stackbp) == 0 then
stackFull = true
break
end
else
-- Check if can move items to this bp
while getcontainer(rarebp).emptycount == 0 and itemcount(rarebp, rarebp) > 0 do
openitem(rarebp, rarebp, false)
wait(200, 300)
end
if getcontainer(rarebp).emptycount > 0 then
moveitems(info.id, rarebp, lootbp, 1)
waitping()
end
if getcontainer(rarebp).emptycount == 0 and itemcount(rarebp, rarebp) == 0 then
rareFull = true
break
end
end
else
j = j + 1
end
end
if stackFull then
printerror('Stack backpack is full, can\'t continue depositing.')
gotolabel(wpt.Label, wpt.Section)
break
elseif rareFull then
printerror('Rare backpack is full, can\'t continue depositing.')
gotolabel(wpt.Label, wpt.Section)
break
end
local function isItemIn(name)
local val = false
for i=1, getcontainer(name).itemcount do
if not iteminfo(getcontainer(name).item[i].id).iscontainer and not table.find(ignore, getcontainer(name).item[i].id) then
val = true
break
end
end
return val
end
if not isItemIn(lootbp) then
if itemcount(lootbp, lootbp) > 0 then
openitem(lootbp, lootbp, false)
wait(300, 400)
else
closewindows(lootbp)
end
end
end
setsetting('Looting/OpenNextBP', 'yes')