I've been writing some ok grinding and questing profiles for some years now one thing I still haven't got my head around is if there is a way in the profile to add vendor mount vendors as <vendors>? I read that Questing should support vendor mounts. Is there a way to force vendor mounts?
I wrote my own hook today for using the Traveler's Tundra Mammoth or Grand Expedition Yak vendors. Upon reaching only 30% durability on any equipped item OR when we only have 2 empty bag slots left AND we can mount, it will: Check if you have a vendor mount, first checking if you have a yak, and then the mammoth mount. Dismount you, if already mounted. Mount the appropriate mount. Set the mount vendor as a temporary vendor. Sell and make repairs. Clear the temporary vendor. Code: <!-- Mount Repair and Vendor. --> <CustomBehavior File="Hooks\DoWhen" ActivityName="MountVendorRepair" AllowUseWhileMounted="true" AllowUseDuringCombat="False" LogExecution="false" UseWhen="((Me.FreeNormalBagSlots < 3) || (Me.LowestDurabilityPercent < 0.3))" > <!-- Check for Vendor Mounts. --> <!-- Grand Yak --> <If Condition = "SpellManager.HasSpell(122708)"> <CustomBehavior File="ForcedDismount" /> <CustomBehavior File="RunMacro" Macro="/cast Grand Expedition Yak" /> <CustomBehavior File="WaitTimer" WaitTime="4000" /> <!-- Set temporary vendor. --> <SetVendor> <Vendors> <Vendor Name="Cousin Slowhands" Entry="62822" Type="Repair" /> </Vendors> </SetVendor> <!-- Alliance Mammoth --> <ElseIf Condition = "SpellManager.HasSpell(61425)"> <CustomBehavior File="ForcedDismount" /> <CustomBehavior File="RunMacro" Macro="/cast Traveler's Tundra Mammoth" /> <CustomBehavior File="WaitTimer" WaitTime="4000" /> <!-- Set temporary vendor. --> <SetVendor> <Vendors> <Vendor Name="Gnimo" Entry="32639" Type="Repair" /> </Vendors> </SetVendor> </ElseIf> <!-- Horde Mammoth --> <ElseIf Condition = "SpellManager.HasSpell(61447)"> <CustomBehavior File="ForcedDismount" /> <CustomBehavior File="RunMacro" Macro="/cast Traveler's Tundra Mammoth" /> <CustomBehavior File="WaitTimer" WaitTime="4000" /> <!-- Set temporary vendor. --> <SetVendor> <Vendors> <Vendor Name="Drix Blackwrench" Entry="32641" Type="Repair" /> </Vendors> </SetVendor> </ElseIf> </If> <!-- Force the use of the vendor. --> <CustomBehavior File="ForceSetVendor" DoMail="False" DoSell="True" DoRepair="True" DoTrain="False" /> <!-- Clear temporary vendor. --> <ClearVendor /> </CustomBehavior> And don't forget to remove your hooks with: Code: <CustomBehavior File="Hooks\DoWhen" AvoidName="MountVendorRepair" Command="Remove" /> Edit: Added a check for if you can mount before trying to use the mount vendors.
Where should I put the code in the quest profile? Tried between <QuestOrder> </QuestOrder> Didn't work.
This will allow the bot to use your Traveler's Tundra Mammoth. "<Vendor Name="Gnimo" Entry="32639" Type="Repair" Nav="Fly" X="3267.113" Y="845.4913" Z="112.55" />"
Looks like the "can we mount" check is throwing an error, removed that part. Will test it later and update the code in my first comment.
also curious on how to implement this on farming profiles. I'm getting tired of waking up and my char is out of bag space :<