-- Cap
local MinCap = 200 -- Cap to deposit on.
-- Potions
local MinMana = 45 -- Manas to deposit on.
local MaxMana = 250 -- Amount of manas to buy.
local ManaName = "mana potion" -- Name of Mana Potion.
local ManaPrice = 50 -- How much Mana Potions cost.
-- BP opener
local GoldBP = "Golden Backpack" -- Name of Gold Backpack.
local LootBP = "Beach Backpack" -- Name of Loot Backpack.
local StackBP = "Fur Backpack" -- Name of Stack loot BP
print("Venore Corym's by Retsam Frost")
registerEventListener(WALKER_SELECTLABEL, "SelectLabel")
function SelectLabel(Label)
if (Label == "CheckSupplies") then
print("Current Manas: " .. Self.ItemCount(ManaName) .. " / " .. MaxMana)
Walker.ConditionalGoto(Self.Cap() > MinCap and Self.ItemCount(ManaName) > MinMana, "Hunt")
elseif (Label == "SafeCheck") then
Walker.ConditionalGoto(Self.Cap() < MinCap and Self.ItemCount(ManaName) < MinMana, "Leaving")
elseif (Label == "checkSuppliesTown") then
print("Current Manas: " .. Self.ItemCount(ManaName) .. " / " .. MaxMana)
Walker.ConditionalGoto(Self.ItemCount(ManaName) < MaxMana,"goBank")
elseif (Label == "DepositGold") then
local amount = (MaxMana-Self.ItemCount(ManaName))*ManaPrice
Walker.Stop()
-- Check if you have 'Bag With Stolen Gold'.
if Self.ItemCount(13429) > 0 then
Self.SayToNpc({"hi", "yes"})
wait(500)
screenshot(HonestFinder .. os.date())
end
-- Continue to deposit.
Self.SayToNpc({"hi", "deposit all", "yes"}, 65)
if (amount > 0) then
Self.SayToNpc({"withdraw " .. amount, "yes", "balance"}, 45)
end
Walker.Start()
elseif (Label == "buyManas") then
Walker.Stop()
Self.SayToNpc({"hi", "vials", "yes", "trade"}, 65)
wait(2000, 3700)
if (Self.ItemCount(ManaName) < MaxMana) then
Self.ShopBuyItemsUpTo(ManaName, MaxMana)
end
Walker.Start()
elseif (Label == "depositItems") then
local StackDP = 0 -- BP in DP to put Stackable Items Into
Self.ReachDepot()
Self.DepositItems(
{"rat cheese", StackDP},
{"cheesy figurine", StackDP},
{"earflap", StackDP},
{"bola", StackDP},
{"cheese cutter", StackDP}
)
elseif (Label == "bpOpen") then
Walker.Stop()
Self.CloseContainers()
wait(900,1000)
Self.OpenMainBackpack(MinimizeMainBP):OpenChildren ({StackBP,MinimizeBPs}, {LootBP,MinimizeBPs}, {GoldBP,MinimizeBPs})
wait(1000)
Walker.Start()
end
end
Self.ReachDepot = function(ATTEMPTS)
--Made by Rydan
--Inspired by Forgee
local ATTEMPTS = ATTEMPTS or 5
local DP_IDS = {3497, 3498, 3499, 3500}
local DP_POSITIONS = {}
Walker.Stop()
local function reachDP()
for i = 1, #DP_IDS do
for POS_X = -7, 7, 1 do
for POS_Y = -5, 5, 1 do
if (Map.GetTopUseItem(Self.Position().x + POS_X, Self.Position().y + POS_Y, Self.Position().z).id == DP_IDS[i]) then
DP_POSITION = {x = Self.Position().x + POS_X, y = Self.Position().y + POS_Y, z = Self.Position().z}
table.insert(DP_POSITIONS, DP_POSITION)
end
end
end
end
print("XenoBot has found "..#DP_POSITIONS.." depots around you.")
wait(2000)
for i = 1, #DP_POSITIONS do
local LAST_POSITION = Self.Position()
local BLOCKED = 0
local COORDINATES = DP_POSITIONS[i]
for j = CREATURES_LOW, CREATURES_HIGH do
local CREATURE = Creature.GetFromIndex(j)
if (CREATURE:isPlayer() and CREATURE:ID() ~= Self.ID() and CREATURE:isOnScreen()) then
if (Map.GetTopUseItem(COORDINATES.x, COORDINATES.y, COORDINATES.z).id == DP_IDS[1]) then
--SOUTH
if ((CREATURE:Position().x == COORDINATES.x and CREATURE:Position().y == COORDINATES.y-1) or (CREATURE:Position().x == COORDINATES.x and CREATURE:Position().y == COORDINATES.y-2) or (Map.IsTileWalkable(COORDINATES.x, COORDINATES.y-1, COORDINATES.z) == false) or (Map.IsTileWalkable(COORDINATES.x, COORDINATES.y-2, COORDINATES.z) == false)) then
BLOCKED = BLOCKED+1
end
end
if (Map.GetTopUseItem(COORDINATES.x, COORDINATES.y, COORDINATES.z).id == DP_IDS[2]) then
--WEST
if ((CREATURE:Position().x == COORDINATES.x+1 and CREATURE:Position().y == COORDINATES.y) or (CREATURE:Position().x == COORDINATES.x+2 and CREATURE:Position().y == COORDINATES.y) or (Map.IsTileWalkable(COORDINATES.x+1, COORDINATES.y, COORDINATES.z) == false) or (Map.IsTileWalkable(COORDINATES.x+2, COORDINATES.y, COORDINATES.z) == false)) then
BLOCKED = BLOCKED+1
end
end
if (Map.GetTopUseItem(COORDINATES.x, COORDINATES.y, COORDINATES.z).id == DP_IDS[3]) then
--NORTH
if ((CREATURE:Position().x == COORDINATES.x and CREATURE:Position().y == COORDINATES.y+1) or (CREATURE:Position().x == COORDINATES.x and CREATURE:Position().y == COORDINATES.y+2) or (Map.IsTileWalkable(COORDINATES.x, COORDINATES.y+1, COORDINATES.z) == false) or (Map.IsTileWalkable(COORDINATES.x, COORDINATES.y+2, COORDINATES.z) == false)) then
BLOCKED = BLOCKED+1
end
end
if (Map.GetTopUseItem(COORDINATES.x, COORDINATES.y, COORDINATES.z).id == DP_IDS[4]) then
--EAST
if ((CREATURE:Position().x == COORDINATES.x-1 and CREATURE:Position().y == COORDINATES.y) or (CREATURE:Position().x == COORDINATES.x-2 and CREATURE:Position().y == COORDINATES.y) or (Map.IsTileWalkable(COORDINATES.x-1, COORDINATES.y, COORDINATES.z) == false) or (Map.IsTileWalkable(COORDINATES.x-2, COORDINATES.y, COORDINATES.z) == false)) then
BLOCKED = BLOCKED+1
end
end
end
end
if (BLOCKED == 0) then
print("XenoBot is now trying to reach a free depot.")
Self.UseItemFromGround(COORDINATES.x, COORDINATES.y, COORDINATES.z)
wait(2000, 4000)
if (Self.DistanceFromPosition(LAST_POSITION.x, LAST_POSITION.y, LAST_POSITION.z) >= 1) then
wait(5000, 10000)
if (Self.DistanceFromPosition(COORDINATES.x, COORDINATES.y, COORDINATES.z) == 1) then
print("XenoBot has successfully reached a free depot and will now proceed with following actions.")
wait(2000)
return true
end
end
end
end
return false
end
while (ATTEMPTS > 0) do
if (reachDP()) then
return true
end
ATTEMPTS = ATTEMPTS-1
wait(100)
end
return false
end
Zakładki