What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

QuestBot & Styx.Logic.POI.BotPoi.Current

rrrix

New Member
Joined
Jul 11, 2010
Messages
3,449
Reaction score
61
Hi Dev's!

Does anyone have any advice how to access the current POI when using the Quest Bot, Grind Bot, or any other Bot (as a WoWPoint or set of WoWPoints) through Styx.Logic.POI.BotPoi.Current?

Every time I try and access it through a plugin, it's null.

Through debugging and intellitrace I can see that this *is* being used but seems only to be visible to the bot, through Styx.Logic.BehaviorTree.TreeRoot and PrioritySelector's which I have no idea how to stick my nose into via a Plugin.

Thanks,

rrrix
 
*bump*ing an old thread, as this is majorly relevant to my current plugin-project. Anyone able to shed some light on this please? How to get the current POI of the running bot?
 
Look @ MageHelper in my SVN/Trunk/Plugins/MageHelper/MageHelperMethods.cs
You'll find it inside private void BlinktoPOI().

Be prepared though, the code is not pretty.
Hopefully you can filter through it :)
 
I've seen worse code (often times my own) when it comes to readability :-P
When trying to run a short loop to constantly print the current POI, all I get is "None" as the Type of POI.
Code:
 public override void Pulse()
        {
            Logic.POI.BotPoi poi = Logic.POI.BotPoi.Current;
            Log(true, "Current POI: {0}", poi.Type.ToString());
        }

As far as I can see, the POI.Type can be a lot of different things, amongst others Mail, Repair and Sell (the ones I want to handle).
I see your code handles looting mobs(?), but I can't even get my code to output anything when killing/looting a mob.

Any idea how I can get it to output when it goes to mail/repair/sell? Primarily with GatherBuddy (maybe it handles POIs differently?), but also any other botbase.
 
I'm leaning towards while using Gatherbuddy2 the bot doesn't care about setting the POI until it's a mail/repair/sell.

The blinking works 100% on Grind Bot.


Fill up your bags with some crap weapon from a vendor, and run it again.
See if it shows Mail.
 
I've tried forcing Mail from the settings in GatherBuddy, thinking it would make it go mail, but no update to POI. I'll try with no bags equipped, should fill up the backpack pretty fast.
 
[01:39:04:915] Activity: Moving to mailbox
[01:39:05:116] [POITest]: Current POI: None

No luck :/
Might be the POI only works for mobs, or something. Just wished it would work, as it would make finishing up my plugin for Mammoth+Jeeves+MOLL-E a lot easier. Any other ways to figure out WTF the bot is doing at a given time?
 
POI is the best, and safest.
You could try monitoring TreeRoot.StatusText for "Moving to mailbox" but that's very iffy since that status text can change, get updated very very often, and can actually be wrong.
 
Yeah, that was what I figured too. Any idea why the POI isn't updating as it should? Seems to be the exact same problem as the OP had back in February. I'll try some more extensive testing when I get back to my PC at home and don't have to wait for half an eternity for HB to compile plugins or restart. *Curse you slow laptop*.
In the meantime if anyone can explain to my dumb head what I'm doing wrong here, there will be cookies and love all over the place!
 
take a look at Mr.GearBuyer, it correctly implements the use of PoIs and you might learn something.
 
take a look at Mr.GearBuyer, it correctly implements the use of PoIs and you might learn something.
Had a look, couldn't figure out anything more. I'll try some more tomorrow, after a good nights sleep. It's probably just that I have the dumb or something related, as it seems everyone else can get it to work.
 
Sorry for posting a lot, but I really want to make this work :)
After testing a little with Questing, I got it to output some meaningful POIs (Kill, Loot, PickUpQuest etc). However, my characters running GatherBuddy2 still doesn't seem to update the POI when going to mail/repair/vendor. Is my HB bugged, or is it optional for bots to update the POI?
 
Attach your code.
If nobody gets to it I'll look when I get up.
 
Code:
        public override void Pulse()
        {
            Log(true, "Current POI: {0}", BotPoi.Current.ToString());
        }
Currently only running this, to see if I can get any POI-data. I only get this in my log:
[14:43:13:681] [POITest]: Current POI: Type: None, Loc: <0, 0, 0>
No matter what the bot is doing. This is for GB2 though, in QuestBot it seemed to work. I see in the log that QuestBot often said "Updating POI", while GB2 often says "Activity:" instead. Is there a good way to read out the current activity, similar to reading out the POI?
 
Back
Top