It's pretty immediate, takes 1-2sec after I open the "walker" and it crashes.
@DarkstaR, cant add attachments to this thread apparently, I just pasted my .xbst here: http://pastebin.com/tNWD978u
Printable View
It's pretty immediate, takes 1-2sec after I open the "walker" and it crashes.
@DarkstaR, cant add attachments to this thread apparently, I just pasted my .xbst here: http://pastebin.com/tNWD978u
Thanks for the update.
It seems like the use on self option in the looter doesnt work.
whenever i loot something i've put to use self, the looter wont loot anything.
however if i set the bot to put it in a container it works
client crashed switching characters. :O
when you use Creature.follow bot will try reach npc and cant stop do this even he should go to next walkpoint
this is the mino script im running that crashed going to try again just re dled but just incase here it is ---------------------------------
-----Yalahar Minos or Elves------
----By Xiaospike & Joshwa534-----
------------Enjoy!!!-------------
---------------------------------
--------- BP SETUP ----------
-- [BP 1] - Main
-- [BP 2] - Rares
-- [BP 3] - Products
-- [BP 4] - Gold
--------- DP SETUP ----------
-- [DP 1] - Rares
-- [DP 2] - Products
------ REFILL SETTINGS ------
local MinMana = 50 --- How many mana potions until you leave the hunt.
local MaxMana = 100 --- How many mana potions you begin the hunt with.
local MinHealth = 10 --- How many health potions until you leave the hunt.
local MaxHealth = 20 --- How many health potions you begin the hunt with.
local GoldBP = 8860 --- Item ID of your gold backpack.
local MinCap = 50 --- Leaves spawn when character reaches this cap.
local LogoutStamina = true --- Do you want to logout at 16 hours? (Inside the depot)
----- LOCATION SETTINGS -----
local Elves = false --- Do you want to hunt the Elves?
Targeting.Start()
Looter.Start()
--------------------------------------------------------------------
--------------------------------------------------------------------
--------------------------------------------------------------------
--------------------------------------------------------------------
--------------------------------------------------------------------
registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")
print([[
Yalahar Minotaurs or Elves by Xiaospike & Joshwa534]])
wait(5000)
function onWalkerSelectLabel(labelName)
if (labelName == "checker1") then
Walker.ConditionalGoto((Self.ItemCount(268) <= MinMana) or (Self.Cap() < MinCap) or (Self.ItemCount(266) <= MinHealth) or ((LogoutStamina) and (Self.Stamina() < 840)), "leave1", "keepHunting1")
elseif (labelName == "checker2") then
Walker.ConditionalGoto((Self.ItemCount(268) <= MinMana) or (Self.Cap() < MinCap) or (Self.ItemCount(266) <= MinHealth) or ((LogoutStamina) and (Self.Stamina() < 840)), "leave2", "keepHunting2")
elseif (labelName == "checkHuntSpot") then
Walker.ConditionalGoto((Elves), "toElves", "toMinos")
elseif (labelName == "GotoTown") then
Walker.Goto("toTown")
elseif (labelName == "checkstuff") then
local ESTMana = (MaxMana-20)
Walker.ConditionalGoto((Self.ItemCount(268) < ESTMana) or (Self.ItemCount(266) < MaxHealth), "resupply", "tohunt")
elseif (labelName == "bank") then
local withdrawManas = math.max(MaxMana - Self.ItemCount(268), 0)*50
local withdrawHealths = math.max(MaxHealth - Self.ItemCount(266), 0)*45
local totalmoneyneeded = (withdrawManas + withdrawHealths)
local MATHCEIL = (math.ceil((totalmoneyneeded/1000)))*1000
Walker.Stop()
Self.SayToNpc({"hi", "deposit all", "yes"}, 65)
if (totalmoneyneeded > 0) then
Self.SayToNpc({"withdraw " .. MATHCEIL, "yes"}, 65)
end
wait(2000)
Walker.Start()
elseif (labelName == "deposit") then
Walker.Stop()
Self.ReachDepot()
Self.DepositItems({7438, 0}, {3073, 0}, {3037, 0}, {7401, 0}, {7425, 0}, {3082, 0})
Self.DepositItems({5922, 1},{5921, 1},{11473, 1},{11465, 1}, {3061, 1}, {237, 1}, {5878, 1}, {11472, 1}, {11464, 1}, {11482, 1}, {9635, 1}, {11451, 1}, {11483, 1})
if (LogoutStamina) and (Self.Stamina() < 960) then
Cavebot.Stop()
else
Walker.Start()
end
elseif (labelName == "potions") then
Walker.Stop()
if (Self.ItemCount(268) < MaxMana) or (Self.ItemCount(266) < MaxHealth) then
Self.SayToNpc({"hi", "flasks", "yes", "yes", "yes", "yes", "yes", "yes", "trade"}, 65)
wait(2000)
end
if (Self.ItemCount(268) < MaxMana) then
BuyItems(268, MaxMana)
wait(500)
end
if (Self.ItemCount(266) < MaxHealth) then
BuyItems(266, MaxHealth)
wait(500)
end
wait(200, 500)
Walker.Start()
elseif (labelName == "resetbp") then
Walker.Stop()
Container.Close(GoldBP)
wait(1000)
Container.GetFirst():OpenChildren(GoldBP)
wait(1000)
Container.GetByName(GoldBP):Minimize()
Walker.Start()
end
end
----------------------- Functions ----------------------
function SellItems(item) -- item = item ID
wait(300, 1700)
Self.ShopSellItem(item, Self.ShopGetItemSaleCount(item))
wait(900, 1200)
end
function BuyItems(item, count) -- item = item id, count = how many you want to buy up to
wait(900, 1200)
if (Self.ItemCount(item) < count) then
Self.ShopBuyItem(item, (count-Self.ItemCount(item)))
wait(200, 500)
end
end
Self.ReachDepot = function (tries)
local tries = tries or 3
Walker.Stop()
local DepotIDs = {3497, 3498, 3499, 3500}
local DepotPos = {}
for i = 1, #DepotIDs do
local dps = Map.GetUseItems(DepotIDs[i])
for j = 1, #dps do
table.insert(DepotPos, dps[j])
end
end
local function gotoDepot()
local pos = Self.Position()
print("Depots found: " .. tostring(#DepotPos))
for i = 1, #DepotPos do
location = DepotPos[i]
Self.UseItemFromGround(location.x, location.y, location.z)
wait(1000, 2000)
if Self.DistanceFromPosition(pos.x, pos.y, pos.z) >= 1 then
wait(5000, 6000)
if Self.DistanceFromPosition(location.x, location.y, location.z) == 1 then
Walker.Start()
return true
end
else
print("Something is blocking the path. Trying next depot.")
end
end
return false
end
repeat
reachedDP = gotoDepot()
if reachedDP then
return true
end
tries = tries - 1
sleep(100)
print("Attempt to reach depot was unsuccessfull. " .. tries .. " tries left.")
until tries <= 0
return false
end
Map.GetUseItems = function (id)
if type(id) == "string" then
id = Item.GetID(id)
end
local pos = Self.Position()
local store = {}
for x = -7, 7 do
for y = -5, 5 do
if Map.GetTopUseItem(pos.x + x, pos.y + y, pos.z).id == id then
itemPos = {x = pos.x + x, y = pos.y + y, z = pos.z}
table.insert(store, itemPos)
end
end
end
return store
end
My client also crashed when switching characters, but I don't think it's related with the bot, I had the same issue yesterday when I logged in before this was updated.
On a side note: Thank you @DarkstaR for all the hard work you put into this bot, it's appreciated.
Don't think that was the issue, I stood next to the npc and I also had Creature.Follow in others scripts which worked.
@DarkstaR, client no longer crashes right away with the minor patching but now i stumbled upon another error, I'll just retry and see if it's permanent or random.
As told earlier, client no longer crashes when opening walker.
New error, with the same script, is when I start the bot and I tab to something else for more then ~30sec I get "Tibia Player has stopped working...".
However the bot is seems to still running in the background while I have this error msg because when I logged back on again my char had cleared several floors and looted some creature items and gp I did not see from the 'error-moment'.