This next one I was hoping for a little guidance on...
It's long (at least for last 6 months) been the case that the InteractWith type CustomBehaviours *dont* complete when the bot is still in combat (at least a lot of the time anyway - not sure exactly when it does and when it doesn't). I'm presuming everyone is aware of this. It can cause issues where it'll run to items to try and interact with them and fail and blacklist them.
Perhaps this is by design, perhaps it's a bug, I'm not totally sure.
Depending on the character and the combat routine this can be more or less noticeable when questing. Those with pets probably notice this a lot more.
For instance I'm using Singular with a Demo Warlock. Am not completely sure how the interaction happens between the questing profile and the combat routine, but I'd guess there must be some sort of "priority" in there, and once a threshold is reached the CR allows the bot to continue doing questing stuff, while the pet fights the mobs. This is a really great idea, as it's exactly how a real player would play, and I've got to say it gets the balance right in most cases - eg the damage to do before it lets the pet "deal" with the mob(s) and continues doing it's next quest related thing.
However, where it falls down a lot of the time is that it'll run around trying to interact with items and failing because it's in combat. It seems to often blacklist the items and run off to the next, which in fact causes the questing to take longer than if I had just waited till combat completed before doing anything.
Sometimes this can be a complete AFK breaker. For instance in Kun-Lai profile, Line 2806:
Code:
<If Condition="HasQuest(31453) && IsQuestCompleted(31453)"> <!-- H - In from right side -->
<CustomBehavior File="UserSettings" PullDistance="1" />
<RunTo X="1864.344" Y="2018.345" Z="454.1613" />
<CustomBehavior File="WaitTimer" WaitTime="2000" GoalText="Waiting for agro to clear {TimeRemaining}" />
<RunTo X="1864.344" Y="2018.345" Z="454.1613" />
<CustomBehavior File="InteractWith" MobId="215382" ObjectType="GameObject" Range="8" WaitTime="0" X="1864.515" Y="2020.56" Z="455.668" />
<RunTo X="1866.205" Y="2055.865" Z="455.6911" />
<TurnIn QuestName="The Shado-Pan" QuestId="31453" TurnInName="Shado-Master Chong" TurnInId="60161" X="1866.205" Y="2055.865" Z="455.6911" />
<CustomBehavior File="UserSettings" PullDistance="15" />
</If>
Now, in this case the InteractWith is to open a door. We're just ran through a heavily mob populated area, and chances are we're in combat. I certainly was. This means the door doesn't get opened and the bot just stands there. Of course, a stop-start would remedy it as the InteractWith would be called again and most likely this time we're out of combat.
Unless there is an up and coming fix to the in-combat issue then I'd recommend the following changes (Also done the Alliance counterpart here):
Code:
<If Condition="HasQuest(31453) && IsQuestCompleted(31453)"> <!-- H - In from right side -->
<CustomBehavior File="UserSettings" PullDistance="1" />
<RunTo X="1864.344" Y="2018.345" Z="454.1613" />
<CustomBehavior File="WaitTimer" WaitTime="2000" GoalText="Waiting for agro to clear {TimeRemaining}" />
<RunTo X="1864.344" Y="2018.345" Z="454.1613" />
<While Condition="Me.Combat">
<CustomBehavior File="WaitTimer" WaitTime="2000" GoalText="Waiting for combat to clear {TimeRemaining}" />
</While>
<CustomBehavior File="InteractWith" MobId="215382" ObjectType="GameObject" Range="8" WaitTime="0" X="1864.515" Y="2020.56" Z="455.668" />
<RunTo X="1866.205" Y="2055.865" Z="455.6911" />
<TurnIn QuestName="The Shado-Pan" QuestId="31453" TurnInName="Shado-Master Chong" TurnInId="60161" X="1866.205" Y="2055.865" Z="455.6911" />
<CustomBehavior File="UserSettings" PullDistance="15" />
</If>
<If Condition="HasQuest(31455) && IsQuestCompleted(31455)"> <!-- A - In from right side -->
<CustomBehavior File="UserSettings" PullDistance="1" />
<RunTo X="1864.344" Y="2018.345" Z="454.1613" />
<CustomBehavior File="WaitTimer" WaitTime="2000" GoalText="Waiting for agro to clear {TimeRemaining}" />
<RunTo X="1864.344" Y="2018.345" Z="454.1613" />
<While Condition="Me.Combat">
<CustomBehavior File="WaitTimer" WaitTime="2000" GoalText="Waiting for combat to clear {TimeRemaining}" />
</While>
<CustomBehavior File="InteractWith" MobId="215382" ObjectType="GameObject" Range="8" WaitTime="0" X="1864.515" Y="2020.56" Z="455.668" />
<RunTo X="1866.205" Y="2055.865" Z="455.6911" />
<TurnIn QuestName="The Shado-Pan" QuestId="31455" TurnInName="Shado-Master Chong" TurnInId="60161" X="1866.205" Y="2055.865" Z="455.6911" />
<CustomBehavior File="UserSettings" PullDistance="15" />
</If>
For this particular one I flew back to then other side of the mob heavy area, and kicked it off again, to ensure it was tested when in combat.
Worked perfectly.
Let me know your thoughts as to whether individual fixes like this are the way you'd like to address this or not.