-
Library and settings
Hey, made this and thought i might share. the library isnt really big or anything special, just thought it might help someone.
Here's the library(Name this Library.lua or the settings file wont be able to load it. Capital L!):
Code:
--////////////////////--
--Library version 1.0---
--////////////////////--
-- tables and checks
Supplies = {}
MinSupplies = {}
MaxSupplies = {}
i = 0
if ManaPots then
Supplies[i] = Mpots
MinSupplies[i] = MinMpots
MaxSupplies[i] = MaxMpots
Manas = true
i = i + 1
end
if HealthPots then
Supplies[i] = Hpots
MinSupplies[i] = MinHpots
MaxSupplies[i] = MaxHpots
Healths = true
i = i + 1
end
if TakeRunes then
Supplies[i] = Runes
MinSupplies[i] = MinRunes
MaxSupplies[i] = MaxRunes
Rune = true
i = i + 1
end
if TakeAmmo then
Supplies[i] = Ammo
MinSupplies[i] = MinAmmo
MaxSupplies[i] = MaxAmmo
i = i + 1
end
Backpacks = {}
i = 1
if SuppliesBP then
Backpacks[i] = {SuppliesBP, true}
i = i + 1
end
if AmmoBP then
Backpacks[i] = {AmmoBP, true}
i = i + 1
end
if StackableBP then
Backpacks[i] = {StackableBP, true}
i = i + 1
end
if NonStackableBP then
Backpacks[i] = {NonStackableBP, true}
i = i + 1
end
------------------------
------//Supplies//------
------------------------
--SupplyChecker
function SupplyChecker()
Refill = false
for i = 0, #Supplies do
if (Self.ItemCount(Supplies[i]) <= MinSupplies[i]) then
print("Running out of " .. Supplies[i] .. "s, going to refill.")
Refill = true
break
elseif i == #Supplies and not Refill then
print("Supplies looking good, continuing..")
end
end
if Refill then
return true
elseif not Refill then
return false
end
end
--SupplyCheckBeforeHunt
function PreSupplyCheck()
Refill = false
for i = 0, #Supplies do
if (Self.ItemCount(Supplies[i]) < MaxSupplies[i]-5) then
print("Not enough " .. Supplies[i] .. "s, going back to try refilling again")
Refill = true
break
elseif i == #Supplies and not Refill then
print("Supplies looking good, continuing..")
end
end
if Refill then
return true
elseif not Refill then
return false
end
end
--SupplyCosts
function SupplyCost()
Cost = 0
for i = 0, #Supplies do
if Self.ItemCount(Supplies[i]) < MaxSupplies[i] then
tmpCost = (MaxSupplies[i]-Self.ItemCount(Supplies[i]))*Item.GetCost(Item.GetID(Supplies[i]))
Cost = Cost + tmpCost
end
end
return Cost
end
--Getting Supplies
--MagicShop
function MagicShop()
Self.SayToNpc({"hi", "trade"}, 60)
wait(200)
Self.ShopSellFlasks()
wait(400, 800)
if Manas then
while Self.ItemCount(Mpots) < MaxMpots do
Self.ShopBuyItemsUpTo(Item.GetID(Mpots), MaxMpots)
wait(400, 800)
end
end
if Healths then
while Self.ItemCount(Hpots) < MaxHpots do
Self.ShopBuyItemsUpTo(Item.GetID(Hpots), MaxHpots)
wait(400, 800)
end
end
if Rune then
while Self.ItemCount(Runes) < MaxRunes do
Self.ShopBuyItemsUpTo(Item.GetID(Runes), MaxRunes)
wait(400, 800)
end
end
end
--AmmoShop
function AmmoShop()
Self.SayToNpc({"hi", "trade"}, 60)
wait(200)
while Self.ItemCount(Ammo) < MaxAmmo do
Self.ShopBuyItemsUpTo(Item.GetID(Ammo), MaxAmmo)
wait(400, 800)
end
end
if not ExtraMoney then
ExtraMoney = 0
end
function Bank()
Self.SayToNpc({"hi", "deposit all", "yes", "withdraw " .. SupplyCost()+ExtraMoney .. "", "yes"}, 60)
wait(600, 800)
end
--StaminaCheck
function StaminaCheck()
if Self.Stamina() <= Stamina*60 then
return true
else
return false
end
end
function WithdrawItems()
Self.OpenDepot()
wait(500,800)
if DepositFlasks then
Self.DepositItems({283, FlaskDP}, {284, FlaskDP}, {285,FlaskDP})
end
if ManaPots then
Self.OpenDepot()
wait(500)
Self.WithdrawItems(SupplyDP, {Mpots, SuppliesBP, MaxMpots-Self.ItemCount(Mpots)})
end
if HealthPots then
Self.OpenDepot()
wait(500)
Self.WithdrawItems(SupplyDP, {Hpots, SuppliesBP, MaxHpots-Self.ItemCount(Hpots)})
end
if TakeRunes then
Self.OpenDepot()
wait(500)
Self.WithdrawItems(SupplyDP, {Runes, SuppliesBP, MaxRunes-Self.ItemCount(Runes)})
end
end
--Backpack Opener
function BACKPACK_OPENER()
if #Container.GetAll() < #Backpacks+1 then
setWalkerEnabled(false)
Self.CloseContainers()
Self.OpenMainBackpack(true):OpenChildren(unpack(Backpacks))
setWalkerEnabled(true)
end
end
And here's the settings:
Code:
--SupplyChecker() Returns true if any of the supplies is equal or less than the minimum of any supply is reached, if not it returns false.
--PreSupplyCheck() Same as above, meant to be used after being at the store to see if it actually did get the supplies neeeded.
--SupplyCost() -- returns how much it would cost to resupply + extra money
--MagicShop() -- buys manas and/or healths and/or runes. Depending if it's enabled or not in the setting.
--AmmoShop() -- buys ammunition for paladins.
--StaminaCheck() -- checks stamina in hours, returns true if stamina is equal or less than specified minimum stamina.
--WithdrawItems() -- Withdraws items from chosen depot slot and chosens supplies.
--BACKPACK_OPENER() -- closes all bps and opens all bps specified in the setting.
-- The backpacks you're not using you can delete or comment out, just save this as a template?
-- backpacks
MainBP = "mushroom backpack"
SuppliesBP = "grey backpack"
--AmmoBP = "jewelled backpack"
--StackableBP = "backpack"
--NonStackableBP = "beach backpack"
-- supplies
ManaPots = true -- true/false
HealthPots = true -- true/false
TakeRunes = true -- true/false
TakeAmmo = false -- true/false
WithdrawManas = true -- true/false
WithdrawHealths = true -- true/false
WithdrawRunes = true -- true/false
WithdrawAmmo = false -- true/false
Mpots = "Mana Potion" -- Name of the mana potions you want to use.
MaxMpots = 200 -- How many manas to begin the hunt with.
MinMpots = 50 -- How many manas to leave the hunt.
Hpots = "Health Potion" -- Name of the health potions you want to use.
MaxHpots = 50 -- How many healths to begin the hunt with.
MinHpots = 10 -- How many healths to leave the hunt.
Runes = "avalanche rune" -- Name of the runes you want to use.
MaxRunes = 400 -- How many runes to begin the hunt with.
MinRunes = 50 -- How many runes to leave the hunt.
Ammo = "spear" -- Name of the ammunition you want to use.
MaxAmmo = 15 -- How much ammo to begin the hunt with.
MinAmmo = 5 -- How much ammo to leave the hunt.
-- Misc
Stamina = 20 -- Stamina to logout. (hours)
ExtraMoney = 1000 -- Extra money to bring incase of travel etc
DepositFlasks = true -- Deposit flasks? true/false
FlaskDP = 4 -- which depot slot to deposit flasks to.
SupplyDP = 3 -- which depot slot to withdraw supplies from. 0 = depot 1
--------------------------------------------------------------------------------------
--Down here you can add or remove labels, aswell as rename them.----------------------
--------------------------------------------------------------------------------------
dofile("Library.lua")
registerEventListener(WALKER_SELECTLABEL, "onLabel")
function onLabel(label)
if(label == "MagicShop") then
MagicShop()
elseif(label == "AmmoShop") then
AmmoShop()
elseif(label == "Bank") then
Bank()
elseif(label == "Check") then
if SupplyChecker() then
Walker.Goto("Leave")
elseif StaminaCheck() then
print("Getting low on stamina, going back to town.")
Walker.Goto("Leave")
end
elseif(label == "preCheck") then
if PreSupplyCheck() then
Walker.Goto("Refill")
end
elseif(label == "Backpacks") then
BACKPACK_OPENER()
elseif(label == "Withdraw") then
WithdrawItems()
elseif(label == "Stamina") then
if StaminaCheck() then
print("Low on stamina, logging out.")
os.exit()
end
end
end
If there's any bugs, tell me about it and i'll fix it.(probably)
if there's any any feutures you might need, post it down below and i might just add it :)
-
This is really helpful!
Thanks @yompa93
~ Shadow Wolf