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

[Plugin] RoutesBuddy2 - Export Routes addon data to GB2

BadWolf

New Member
Joined
Jan 15, 2010
Messages
262
Reaction score
11
RoutesBuddy2
by Highvoltz
fixed for 5.0.x by BadWolf

This plugin is for converting routes built by the WoW Addon Routes (available on Curse: Routes - Map & Minimap - World of Warcraft Addons - Curse) to GB/GB2 profiles. Please see the comments on course for updating the addon to work with WoW 5.0.x. I will be posting a modified version soon!

It is a pretty intense plugin written by Highvoltz and I have (with permission) updated it and released it for WoW 5.0.x and the newest Honorbuddy API.

How to use:

  1. Make sure you have the latest version of Honorbuddy
  2. Download and install the Routes addon for WoW from Curse Gaming
  3. unzip the folder into your HonorBuddy/Plugins folder
  4. Go to the continent you want to export routes from
  5. Make sure HB is running, can be in any bot mode but needs to be running to load the mesh which is needed to get the heights
  6. Select RoutesBuddy in your plugin list and press the RoutesBuddy button
  7. Click import and wait until the Export button is enabled
  8. Select the routes that you want to export
  9. Set the Flying height
  10. Select the profile format, GB or HB(GB2)
  11. Click Export and wait while it imports
  12. Optionally change the route names by double-clicking on them. (useful if it has unsupported file name characters)
  13. select the folder you want to save the profiles to.

Please report any issues directly to me

ALSO - Look for incorporation of this plugin into ZapRecorder2 :)


 

Attachments

Last edited:
Looks nice, will try it and report back later, gj m8
 
FYI I updated the .zip to be ready for the HB API changes coming this week :)
 
OMG, that so cool! Finally all my routes never more need to rerecord with zap recorder :D If this works well in MoP zones, new gather profile making will be made in seconds :-).
 
Ouhac -

What's wrong with ZapRecorder2? ;) I'm actually implenting RoutesBuddy INTO ZapRecorder2 so you'll have the best of both worlds.

Best Regards,
Patrick

OMG, that so cool! Finally all my routes never more need to rerecord with zap recorder :D If this works well in MoP zones, new gather profile making will be made in seconds :-).
 
Edit: This thing works Awesome! Makes routing a walk in the park.
 
Last edited:
Only place i run into problems is Deepholm it doesn't like the heights in Deepholm and ends up just spiraling around like an idiot. ZapRecorder gets around in deepholm by setting your own hotspots individually. But other than that this thing is sweet! Im wondering if this could be used to grab other data? Locations of NPC's or flight path. Create a route to explore a continent and just export it as hotspots.
 
Looks promising but currently not working for me.. Perhaps I have the wrong version of Addon, not sure.
 
The Routes addon has not been updated since pre-MoP. I will test the current version to see if it's broken..
 
Hi, just a short notice. the profiles beeing created are for chars of 1-85. not a big deal to edit afterwards, just wanted to mention it.

Edit: Just found the place to edit it. the file MainForm.cs has to be edited in line 162 to the value 91 instead of 86. an i personally edited the next line also to a empty faction, because the bot had problems with that too.
 
Last edited:
ofc this works. just open the profile after you created it and edit the Maxlvl to 91 and done it works again ;) HF
 
You are a rockstar! Thank you for this. I had no idea it could be this easy to make my own profiles. Now I have an awesome Kyparite profile that gets me EXACTLY what I want...Plenty of Kyparite and no fool's cap. Thank you!
 
Quick question, is there anyway that you would be able to export the taboo areas as blackspots?
 
Question? Set height, does this mean I have to put a maximum height so it avoids all mountains? Or will it work if I put 20yrd height? Will that make it figure where mountains are, and just adjust height + the 20yrd fixed?
 
Hi BadWolf, I have a fix for this product you might want to incorporate. There's a problem with clustered routes - I had an XY point that was buried inside a large tree, that was impossible to navigate to.

Could you add a navigability check to the product, for each point? Something like the following would work. Add a new checkbox called 'chkPoints' on the UI, and modify the code to look like the following. If it can't navigate from the last good point to the current point, it will surround the hotspot with an XML comment saying 'BAD POINT.'

Doing this makes the route almost perfect the first time through.

Code:
        private void ExportBut_Click(object sender, EventArgs e)
        {
            folderBrowserDialog.SelectedPath = RoutesBuddy.Instance.MySettings.LastFolder;
            if (folderBrowserDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK && RouteList.SelectedRows != null)
            {
                RoutesBuddy.Instance.MySettings.LastFolder = folderBrowserDialog.SelectedPath;
                RoutesBuddy.Instance.MySettings.Save();
                Cursor.Current = Cursors.WaitCursor;
                foreach (DataGridViewRow row in RouteList.SelectedRows)
                {
                    Route route = (Route)row.Cells[0].Tag;
                    string filename = Path.Combine(folderBrowserDialog.SelectedPath,
                        string.Format("{0}{1}.xml", (string)row.Cells[0].Value, (ProfileTypeCombo.SelectedIndex == 0) ? "[GB]" : "[HB]"));
                    using (FileStream fs = File.Open(filename, FileMode.Create))
                    {
                        if (ProfileTypeCombo.SelectedIndex == 0)
                            fs.Write(encoding.GetBytes(GBprefix), 0, GBprefix.Length);
                        else
                            fs.Write(encoding.GetBytes(HBprefix), 0, HBprefix.Length);

                        int height = (int)HeightNumeric.Value;
                        List<WoWPoint> waypoints = height >= 0 && !UnderWaterCheck.Checked ? route.HighPoints : route.LowPoints;
                        waypoints = ReverseCheck.Checked ? waypoints.Reverse<WoWPoint>().ToList() : waypoints;
                        WoWPoint lastgoodpoint = waypoints[0];
                        for (int i = 0; i < waypoints.Count; i++)
                        {
                            var newPoint = waypoints[i];
                            string prefix = "";
                            string suffix = "";
                            newPoint.Z += height;
                            if (UnderWaterCheck.Checked && route.HighPoints[i].Z >= newPoint.Z)
                                newPoint.Z = route.HighPoints[i].Z - 5;
                            if (i > 0 && chkPoints.Checked)
                            {
                                Logging.Write("Checking point {0} {1} for navigability...", i, newPoint.ToString());
                                if (!Styx.Pathing.Navigator.CanNavigateFully(lastgoodpoint, newPoint))
                                {
                                    prefix = "<!-- BAD POINT ";
                                    suffix = " -->";
                                }
                                else
                                {
                                    lastgoodpoint = newPoint;
                                }
                            }
                            string buf;
                            if (ProfileTypeCombo.SelectedIndex == 0)
                                buf = string.Format(culture, "{0}    <Waypoint>{1} {2} {3}</Waypoint>{4}{5}",
                                    prefix, newPoint.X, newPoint.Y, newPoint.Z, suffix, Environment.NewLine);
                            else
                                buf = string.Format(culture, "{0}    <Hotspot X=\"{1}\" Y=\"{2}\" Z=\"{3}\" />{4}{5}",
                                    prefix, newPoint.X, newPoint.Y, newPoint.Z, suffix, Environment.NewLine);
                            fs.Write(encoding.GetBytes(buf), 0, buf.Length);
                        }
                        if (ProfileTypeCombo.SelectedIndex == 0)
                            fs.Write(encoding.GetBytes(GBpostfix), 0, GBpostfix.Length);
                        else
                            fs.Write(encoding.GetBytes(HBpostfix), 0, HBpostfix.Length);
                    }
                    Logging.Write("Exported {0}", filename);
                }
                Cursor.Current = Cursors.Default;
            }
        }
 
Back
Top