Hey All, After a long break, I'm coming back to use HB. However, I was aiming to do some gathering in the new Legion content as I have flying. It appears most, if not all, of the profiles are only built for ground mounts. If anyone could point me in the right direction, I'd like to take a whack at getting some gathering profiles made, that utilize flying (also my Druid.) If there isn't a guide out there, I'm willing to help put something together, or at least document the process for everyone in the future. Looks like this guide no longer is relevant: https://www.thebuddyforum.com/threa...te-gatherbuddy-profiles-with-pictures.112809/ Background: I'm a full-time C# developer, and also have worked with DemonBuddy/HearthBuddy/RebornBuddy/PokeFarmer, and a few of the discontinued bots in the past. Just wanted to note this, as I don't want to be taken as a complete newbie, but I'm not entirely familiar with the process here.
You should have no problems making a gather profile how you want. It doesn't require you to code, but rather to designate hotspots in x,y,z. Individual hotspots should be around 40ish or more yards apart example; <HBprofile> <Hotspots> <Hotspot X="2807.918" Y="7274.27" Z="67.76421" /> </Hotspots> </HBprofile>
What about information on flying? And when looking at these XML files, it seems there are a TON of parameters that can be utilized. Is this documented somewhere by chance?
If you are just looking to simply gather, you don't need to make it complicated. The bot will see that your Z axis is above the ground and fly to it.
I just wan't to emphasize this. Honorbuddy really does do most of the work for you and the more simple you keep your setup the better results you will get in my experience.
Thank you a ton! Absolutely, but I've noticed there is a profile that supports turning in Legion quests for gathering. I'd like to look into adding this into all gathering profiles. I'm glad to see the simplicity of setting up the bot for basic farming. While, I know there needs to be some XML config, and I can't see the harm in adding some basic quest turnins. However, since I haven't attempted this yet, I'm not sure of the complications that may follow. I guess I'll have to see for myself!
Here are some random snippets I use when making profiles that will probably be useful. They go inbetween the Questorder in the a questing botbase profile(xml) Some of them may be outdated and there are probably better ways to accomplish the same thing like the old smelting snippets for example Code: <!-- Short Snippets --> <!-- Interact --> <CustomBehavior File="InteractWith" MobId="251676" X="768.5938" Y="3579.904" Z="141.5099" /> <!--Inline Log Quote--> <CustomBehavior File="RunCode" Code="Bots.Professionbuddy.PBLog.Log(System.Windows.Media.Colors.Lime, "[ZephyrMMO]: ", System.Windows.Media.Colors.MintCream, " ChangeME ");" /> <!--UseItem--> <CustomBehavior File="Misc\RunLua" Lua="UseItemByName(110560);" WaitTime="5000" /> <!-- Use [WoD] Garrison Hearthstone --> <CustomBehavior File="Misc\RunLua" Lua="UseItemByName(140192);" WaitTime="5000" /> <!-- Use [Legion] Dalaran Hearthstone --> <CustomBehavior File="Misc\RunLua" Lua="UseItemByName(141605);" WaitTime="5000" /> <!-- Use [Legion] Flight Master's Whistle --> <CustomBehavior File="UseItem" ItemId="139893" WaitTime="1337" /> <!--FlyTo--> <CustomBehavior File="FlyTo" X="" Y="" Z="" /> <!--PickUp--> <PickUp Nav="Fly" QuestName="Quest Name" QuestId="1337" GiverName="NPC Name" GiverId="1" X="" Y="" Z="" /> <!--TurnIn--> <TurnIn Nav="Fly" QuestName="Quest Name" QuestId="1337" TurnInName="NPC Name" TurnInId="1" X="" Y="" Z="" /> <!--WaitTime--> <CustomBehavior File="WaitTimer" WaitTime="2000" /> <!--Taxi--> <CustomBehavior File="TaxiRide" MobId="12345" DestName="Orgrimmar" WaitTime="1000" /> <!--PopupBox--> <CustomBehavior File="UserDialog" QuestId="40715" AllowBotStop="True" SoundCue="Exclamation" SoundCueInterval="150" ExpiryTime="300" ExpiryAction="InputEnabled_Continue" Text="Choose an artifact weapon.\n\nIf you do not choose within 5minutes, the bot will pick the one appropriate for your current specialization." /> <!--DoWhen--> <CustomBehavior File="Hooks\DoWhen" UseWhen="HasItem(1234)" ActivityName="NameME" AllowUseWhileFlying="False" AllowUseWhileMounted="False"> </CustomBehavior> <!-- Delete Items --> <If Condition="HasItem(129178)" > <CustomBehavior File="UseItem" ItemId="129178" /> </If> <If Condition="HasItem(129178)" > <CustomBehavior File="DeleteItems" Ids="129178" /> </If> <!--Smelting Obsidium--> <While Condition="GetItemCount(53038) > 1 && MiningSkill.CurrentValue > 424"> <CustomBehavior File="Misc\RunLua" Lua="for i=1,GetNumTradeSkills() do if GetTradeSkillInfo(i)=='Smelt Obsidium' then DoTradeSkill(i,GetItemCount('Obsidium Ore')/2) break end end " /> <CustomBehavior File="WaitTimer" WaitTime="15000"/> </While> <!--Smelting Elementium--> <While Condition="GetItemCount(52185) > 1 && MiningSkill.CurrentValue > 474"> <CustomBehavior File="Misc\RunLua" Lua="for i=1,GetNumTradeSkills() do if GetTradeSkillInfo(i)=='Smelt Elementium' then DoTradeSkill(i,GetItemCount('Elementium Ore')/2) break end end " /> <CustomBehavior File="WaitTimer" WaitTime="15000"/> </While> <!--Smelting Pyrite--> <While Condition="GetItemCount(52183) > 1 && MiningSkill.CurrentValue > 524"> <CustomBehavior File="Misc\RunLua" Lua="for i=1,GetNumTradeSkills() do if GetTradeSkillInfo(i)=='Smelt Pyrite' then DoTradeSkill(i,GetItemCount('Pyrite Ore')/2) break end end " /> <CustomBehavior File="WaitTimer" WaitTime="15000"/> </While> <CustomBehavior File="Misc\RunLua" Lua="CloseTradeSkill()" /> <!--PursueUnit--> <PursuitList> <PursueUnit Id="92957" PursueWhen="(UNIT.Z >= 371 && Me.Z >= 160) || (UNIT.Z > 141 && Me.Z < 160)" /> <!-- Only use the one the bot can easily navigate to. The zeppelin-boat-thing slowly descends so we're detecting the two stop positions. --> </PursuitList> <!--ReloadProfile--> <CustomBehavior File="RunCode"> <![CDATA[ Logging.Write(System.Windows.Media.Colors.DeepSkyBlue, "[ProfileBase]: Reloading profile."); ProfileManager.LoadNew(ProfileManager.XmlLocation); ]]> </CustomBehavior> <!--Long Snippets--> <!--Start--> <CustomBehavior File="RunCode"> <![CDATA[ var ethelPoi = ObjectManager.GetObjectsOfType<WoWUnit>().FirstOrDefault(x => x.Entry == 107726); Random rnd = new Random(); while (ethelPoi != null && !QuestDone(42590)) { while (ethelPoi.Distance > 6) { Navigator.MoveTo(ethelPoi.Location); await Coroutine.Yield(); } WoWMovement.ClickToMove(WoWMathHelper.CalculatePointInFront(ethelPoi.Location, ethelPoi.Rotation, 3.5f)); await Coroutine.Wait(rnd.Next(2000, 2500), () => ethelPoi.IsMoving); if (!ethelPoi.IsMoving) { WoWMovement.ClickToMove(WoWMathHelper.CalculatePointBehind(ethelPoi.Location, ethelPoi.Rotation, 2.5f)); await Coroutine.Sleep(2000); } else await Coroutine.Sleep(rnd.Next(500, 1000)); await Coroutine.Yield(); } ]]> </CustomBehavior>
Zeph, would you mind if I included most, if not all, of these snippets in a general document? More than happy to credit you.
Guys i need a command line to add to my gatherbudy profile to follow foxes which get out of fox flowers if there is any . also follow on ground . help plz
While this isn't complete, you should look at using a line something like this: <if Condition="(Unit(98235, u => u.IsAlive == true && u.Distance < 50) != null)" > <CustomBehavior File="KillUntilComplete" MobId="98235" QuestId="????" QuestObjectiveIndex="1" X="690.1267" Y="6073.505" Z="44.05658" /> <DisableBehavior Name="Pull" /></if> ID for the Fox being 98235. Might need to use something other than KillUntilComplete. Maybe something from the NavigationAction namespace? //Is Fox Running? //Get Fox Location //Run to Fox Location
I too am looking to make my own profiles for mining/herbing, nothing special just my own route preferably so it isnt mass used(I don't think this will make any difference in bannings but I want longer coverage area then what is available atm) some fly in small circles that you can complete in 3 minutes, others in 5 minutes your done with a zone loop. I want to try and copy an existing basic profile, swap out the hotspots for new ones, mailbox/repair info for new ones and possible have it cross zones or not, ie do a few short circles of suramar area, then a long route, circle back to short then fly off to stormheim do a full sweep of spots heavy in nodes and go back to suramar. How do you make hotspots? for instance: <Hotspot X="2290.252" Y="5457.46" Z="111.1169" /> thats one line of <hotspot x= from a random suramar profile farm, do you copy these locations from developer tools player location? so in theory i could just make a blank xml, put in whats required and i fly to each spot i want, copy the player location that developer tools shows me at and im done?
more problems . am using druid or skygolem for my bot so when i interact with herbalism nodes . ez to avoid fighting mobs around it and go to next node then gather . now need a command line to ignore fighting mobs if its mounted
yes Syn . you just need to make some hotspots then your bot will fly or run on ground around these hot spots depends you do it as circle or just randomize the hot spots
Just a word of advice here .... if you want to stand out and act like every other bot farmer, then use a Sky Golem. I can literally sit and watch trains of sky golems pass by nodes. How many of those do you think are actually real players? Essentially, that is all there is. Here is blank code to start with. This is for GB2. Save it to an .xml file. Code: <HBProfile> <Name>NAME</Name> <MinDurability>0.4</MinDurability> <MinFreeBagSlots>1</MinFreeBagSlots> <MinLevel>1</MinLevel> <MaxLevel>111</MaxLevel> <Factions>99999</Factions> <MailGrey>false</MailGrey> <MailWhite>false</MailWhite> <MailGreen>false</MailGreen> <MailBlue>false</MailBlue> <MailPurple>false</MailPurple> <SellGrey>true</SellGrey> <SellWhite>true</SellWhite> <SellGreen>false</SellGreen> <SellBlue>false</SellBlue> <SellPurple>false</SellPurple> <Vendors> </Vendors> <Mailboxes> <Mailbox X="" Y="" Z="" /> </Mailboxes> <AvoidMobs> </AvoidMobs> <Hotspots> </Hotspots> </HBProfile>