Jump to content

I love the 3d radar, but..


Recommended Posts

I wish I could make it only show veins, or herbs etc. But the object setting shows everything. Is this possible and I'm just missing something?

Edit-  So I realize the "By name" function works, but I can't seem to make it work with multiple different types of veins etc.

Link to comment
Share on other sites

I managed to get the lines and circles to draw to the screen, but now I am running into the problem of not being able to clear the lines and circles independently from one another if the player moves far enough away.
So far they just stick to the screen and continue to pile up, blocking the view. Man, it would be nice if there was better documentation with this bot.

// Ore
public List<string> OreNames = new List<string>
{
    "Copper Vein",
    "Tin Vein",
    "Silver Vein",
    "Ooze Covered Silver Vein",
    "Iron Vein",
    "Gold Vein",
    "Ooze Covered Gold Vein",
    "Mithril Deposit",
    "Ooze Covered Mithril Deposit",
    "Truesilver Deposit",
    "Ooze Covered Truesilver Deposit",
    "Dark Iron Vein",
    "Small Thorium Vein",
    "Ooze Covered Thorium Vein",
    "Rich Thorium Vein",
    "Ooze Covered Rich Thorium Vein",
    "Fel Iron Vein",
    "Nethercite Deposit",
    "Adamantite Vein",
    "Rich Adamantite Vein",
    "Khorium Vein",
    "Cobalt Deposit",
    "Rich Cobalt Deposit",
    "Saronite Deposit",
    "Rich Saronite Deposit",
    "Pure Saronite Deposit",
    "Titanium Deposit",
    "Obsidium Deposit",
    "Rich Obsidium Deposit",
    "Elementium Vein",
    "Rich Elementium Vein",
    "Pyrite Deposit",
    "Rich Pyrite Deposit",
    "Ghost Iron Deposit",
    "Rich Ghost Iron Deposit",
    "Kyparite Deposit",
    "Rich Kyparite Deposit",
    "Trillium Vein",
    "Rich Trillium Vein",
    "Blackrock Deposit",
    "Rich Blackrock Deposit",
    "True Iron Deposit",
    "Rich True Iron Deposit",
    "Leystone Deposit",
    "Leystone Seam",
    "Rich Leystone Deposit",
    "Felslate Deposit",
    "Felslate Seam",
    "Felslate Spike",
    "Rich Felslate Deposit",
};
public void Initialize()
{
    _isLaunched = true;
    while (_isLaunched && Products.IsStarted)
    {
        try
        {
            if (Conditions.ProductIsStartedNotInPause)
            {
                foreach (var o in ObjectManager.GetObjectWoWGameObject())
                {
                    try
                    {
                        if (o.IsValid
                            && !string.IsNullOrEmpty(o.Name)
                            && OreNames.Contains(o.Name)
                            && o.GetDistance <= 100)
                        {
                            Radar3D.OnDrawEvent += () =>
                            {
                                Radar3D.DrawLine(ObjectManager.Me.Position, o.Position, Color.AliceBlue, 75);
                                Radar3D.DrawCircle(o.Position, 3.0f, Color.Gold, false, 75);
                            };

                        }

                        if(o.GetDistance > 100)
                        {
                            // I need to be able to remove the drawn line(s) and circle(s)
                        }

                    }
                    catch { }
                }
                Radar3D.Pulse();
            }
        }
        catch { }

        Thread.Sleep(300);
    }
}

 

Link to comment
Share on other sites

If you call "Radar3D.OnDrawEvent += () => ...", call this method (and all WRobot events) only one time.

And use "Landmarks" like:

      // remove all landmarks by ID
        wManager.Wow.Forms.UserControlMiniMap.LandmarksMiniMap.Remove("MyCircleId");
        // Add landmarks
        wManager.Wow.Forms.UserControlMiniMap.LandmarksMiniMap.Add(new MiniMapGenerator.LandmarkMiniMap(new Vector3(1, 2, 3), "MyCircleId", Color.Red));
        wManager.Wow.Forms.UserControlMiniMap.LandmarksMiniMap.Add(new MiniMapGenerator.LandmarkMiniMap(new Vector3(1, 2, 3), "MyCircleId", Color.Red));

or

 var skyfire = ObjectManager.GetWoWGameObjectByEntry(241630).FirstOrDefault();
        var fires = ObjectManager.GetWoWGameObjectByEntry(243244);
        wManager.Wow.Forms.UserControlMiniMap.LandmarksMiniMap.Remove("volatileflare");
        foreach (var f in fires)
        {
            var g = new Vector3(f.Matrix.M41, f.Matrix.M42, f.Matrix.M43); // Good position
            Logging.Write(" FIRE: " + f.Name + " matrix=" + f.Matrix + " local=" + f.Position + " global=" + g + " dist=" + ObjectManager.Me.Position.DistanceTo(g) + " distZ=" + ObjectManager.Me.Position.DistanceZ(g));
            wManager.Wow.Forms.UserControlMiniMap.LandmarksMiniMap.Add(g, "volatileflare", System.Drawing.Color.Chartreuse, 10, "", true);
        }

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...