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

How to turn off/override BGBuddy's targetting system?

Phelon

Well-Known Member
Joined
Jan 15, 2010
Messages
2,591
Reaction score
140
Title pretty much says it all. BGBuddys targeting is pretty terrible. Is there a way to over ride it?

Example Code:

Code:
        public static WoWUnit TestEnsureTargetPVP()
        {
            WoWUnit Player = null;
            WoWUnit Vehicle = null;
            var obj = BotPoi.Current.AsObject;
            // Check botpoi first and make sure our target is set to POI's object.
            if (BotPoi.Current.Type == PoiType.Kill)
            {
                //Target Demo's first
                Vehicle = EnemyDemolisher();
                if (Vehicle != null)
                {
                    Logger.Write(Color.Orange, "Vehicle Spotted! Switching to " + ((WoWUnit)Vehicle).SafeName() + "!");
                    BotPoi.Current = new BotPoi(Vehicle, PoiType.Kill);
                    Vehicle.Target();
                    return Vehicle;
                }
                // Flag Check
                if (ObjectManager.Me.IsHorde) { Player = EnemyHordeFlagCarrier(); }
                if (ObjectManager.Me.IsAlliance) { Player = EnemyAllianceFlagCarrier(); }
                if (Player != null)
                {
                    Logger.Write(Color.Orange, "Flag Carrier Spotted! Switching to " + ((WoWUnit)Player).SafeName() + "!");
                    BotPoi.Current = new BotPoi(Player, PoiType.Kill);
                    Player.Target();
                    return Player;
                }


                // If Healer
                Player = EnemyHealer();
                if (Player != null)
                {
                    Logger.Write(Color.Orange, "Healer Spotted!. Switching to " + ((WoWUnit)Player).SafeName() + "!");
                    BotPoi.Current = new BotPoi(Player, PoiType.Kill);
                    Player.Target();
                    return Player;
                }


                // Low Health Target
                Player = EnemyLowestHealth();
                if (Player != null)
                {
                    Logger.Write(Color.Orange, "Low Health Spotted!. Switching to " + ((WoWUnit)Player).SafeName() + "!");
                    BotPoi.Current = new BotPoi(Player, PoiType.Kill);
                    Player.Target();
                    return Player;
                }
            }
            return Player;
        }


        #region GetTarget
        private static WoWUnit EnemyDemolisher()
        {
            return (from Unit in ObjectManager.GetObjectsOfType<WoWUnit>(false)
                    where Unit.IsAlive
                    where Unit.Distance < 55
                    where !Unit.IsFriendly
                    where !Unit.IsPet
                    where Unit.Name.Contains("Demolisher")
                    where Unit.InLineOfSpellSight
                    select Unit).FirstOrDefault();
        }
        private static WoWPlayer EnemyAllianceFlagCarrier()
        {
            return (from Unit in ObjectManager.GetObjectsOfType<WoWUnit>(false)
                    where Unit.IsAlive
                    where Unit.Distance < 55
                    where !Unit.IsFriendly
                    where !Unit.IsPet
                    where Unit.HasAura("Alliance Flag")
                    where Unit.InLineOfSpellSight
                    select Unit).FirstOrDefault();
        }


        private static WoWPlayer EnemyHordeFlagCarrier()
        {
            return (from Unit in ObjectManager.GetObjectsOfType<WoWUnit>(false)
                    where Unit.IsAlive
                    where Unit.Distance < 55
                    where !Unit.IsFriendly
                    where !Unit.IsPet
                    where Unit.HasAura("Horde Flag")
                    where Unit.InLineOfSpellSight
                    select Unit).FirstOrDefault();
        }


        private static WoWPlayer EnemyLowestHealth()
        {
            return (from Unit in ObjectManager.GetObjectsOfType<WoWUnit>(false)
                    where Unit.IsAlive
                    where Unit.Distance < 55
                    where !Unit.IsFriendly
                    where !Unit.IsPet
                    where Unit.InLineOfSpellSight
                    where Unit.HealthPercent < 35
                    select Unit).FirstOrDefault();
        }
        #endregion
    }
 
Last edited:
I wish.
Edit:
I want bgbot back, it was simple and got the job done better then bgbuddy. Bgbot would only switch targets to flag carriers and that was perfect. Once we were in combat, the CC should be able to handle any new target acquisition. Bgbuddy is retarded, and drops target and switches to someone else completely randomly when our target is low health. Half the time it trys and chase someone else when there are better targets around, I can force clear target and poi but the pos keeps trying to chase someone.
 
Last edited:
I wish.
Edit:
I want bgbot back, it was simple and got the job done better then bgbuddy. Bgbot would only switch targets to flag carriers and that was perfect. Once we were in combat, the CC should be able to handle any new target acquisition. Bgbuddy is retarded, and drops target and switches to someone else completely randomly when our target is low health. Half the time it trys and chase someone else when there are better targets around, I can force clear target and poi but the pos keeps trying to chase someone.

Yup I wrote a VERY elaborate targetting system for Singular with regards to pvp... BGBudy just bends over and shoves its head in its own ass. Just one simple addition.. Use Targetting True / False is all I ask.
 
Yup I wrote a VERY elaborate targetting system for Singular with regards to pvp... BGBudy just bends over and shoves its head in its own ass. Just one simple addition.. Use Targetting True / False is all I ask.

This, please!

BgBuddy does really strange things at times.

Maybe post it in the Request bot additions thread too?
 
Many users get random crash reports that only happen in BGBuddy. Including me.
 
I agree, you should be able to choose between turning on or turn off the targeting system of BGBuddy.
 
Yup I wrote a VERY elaborate targetting system for Singular with regards to pvp... BGBudy just bends over and shoves its head in its own ass. Just one simple addition.. Use Targetting True / False is all I ask.

link?
 
It isn't for sharing.. It is for me. I wrote it so it will chase flags / low targets / healers / defuse bombs / return flags / make decisions based on range / you know all the stuff it should be doing.. So there is no link. But is there a way to turn off this atrocious targetting system Tony? I really wish the "bots" were not all closed source. It would give the community an opportunity to fix them. Like Instancebuddy completely useless in all Cataclysm Dungeons and has been that way since release. This new crap targeting system that bgbuddy has... etc... Why not make them open source so the community could actually fix the crap that is wrong with them? This was part of what caused me to write my own Harvest bot and why I stopped using HB months ago. Things work alright.. but they could work better if you all opened up alot more of the bot.
 
Last edited:
It isn't for sharing.. It is for me. So there is no link. But is there a way to turn off this atrocious targetting system Tony? I really wish the "bots" were not all closed source. It would give the community an opportunity to fix them. Like Instancebuddy completely useless in all Cataclysm Dungeons and has been that way since release. This new crap targeting system that bgbuddy has... etc... Why not make them open source so the community could actually fix the crap that is wrong with them? This was part of what caused me to write my own Harvest bot and why I stopped using HB months ago. Things work alright.. but they could work better if you all opened up alot more of the bot.

You want the bots to be open source so the community can benefit off modifications yet keep your targeting code to yourself? That's interesting. :)
 
You want the bots to be open source so the community can benefit off modifications yet keep your targeting code to yourself? That's interesting. :)

Open source means anyone can use it. If people do not know enough about c# then that is their problem.. it would still be there for you to use. Simple Concepts are simple.

Or hell just fix it so it is configurable or use the logic I just provided.. But switching to highest hp targets based on distance is stupid. Welcome to targeting every warrior / dk / paladin first...

Code:
if (!disabletargeting)
{
     code;
}
 
Last edited:
Open source means anyone can use it. If people do not know enough about c# then that is their problem.. it would still be there for you to use. Simple Concepts are simple. Or hell just fix it so it is configurable or use the logic I just provided.. But switching to highest hp targets based on distance is stupid. Welcome to targeting every warrior / dk / paladin first...

Code:
if (!disabletargeting)
{
     code;
}

I'll tell you a secret: it's not that simple. Anyway, I doubt we'll be making the "bots" open source any time soon, but your suggestion has been noted and I'll pass it on to the HB developers as it's not one of my projects. Thanks.
 
I'll tell you a secret: it's not that simple. Anyway, I doubt we'll be making the "bots" open source any time soon, but your suggestion has been noted and I'll pass it on to the HB developers as it's not one of my projects. Thanks.

It actually is almost that simple my man. Just to prove the point; Here is my code:

Code:
        public static WoWUnit TestEnsureTargetPVP()
        {
            WoWUnit Player = null;
            WoWUnit Vehicle = null;
            var obj = BotPoi.Current.AsObject;
            // Check botpoi first and make sure our target is set to POI's object.
            if (BotPoi.Current.Type == PoiType.Kill)
            {
                //Target Demo's first
                Vehicle = EnemyDemolisher();
                if (Vehicle != null)
                {
                    Logger.Write(Color.Orange, "Vehicle Spotted! Switching to " + ((WoWUnit)Vehicle).SafeName() + "!");
                    BotPoi.Current = new BotPoi(Vehicle, PoiType.Kill);
                    Vehicle.Target();
                    return Vehicle;
                }
                // Flag Check
                if (ObjectManager.Me.IsHorde) { Player = EnemyHordeFlagCarrier(); }
                if (ObjectManager.Me.IsAlliance) { Player = EnemyAllianceFlagCarrier(); }
                if (Player != null)
                {
                    Logger.Write(Color.Orange, "Flag Carrier Spotted! Switching to " + ((WoWUnit)Player).SafeName() + "!");
                    BotPoi.Current = new BotPoi(Player, PoiType.Kill);
                    Player.Target();
                    return Player;
                }


                // If Healer
                Player = EnemyHealer();
                if (Player != null)
                {
                    Logger.Write(Color.Orange, "Healer Spotted!. Switching to " + ((WoWUnit)Player).SafeName() + "!");
                    BotPoi.Current = new BotPoi(Player, PoiType.Kill);
                    Player.Target();
                    return Player;
                }


                // Low Health Target
                Player = EnemyLowestHealth();
                if (Player != null)
                {
                    Logger.Write(Color.Orange, "Low Health Spotted!. Switching to " + ((WoWUnit)Player).SafeName() + "!");
                    BotPoi.Current = new BotPoi(Player, PoiType.Kill);
                    Player.Target();
                    return Player;
                }
            }
            return Player;
        }


        #region GetTarget
        private static WoWUnit EnemyDemolisher()
        {
            return (from Unit in ObjectManager.GetObjectsOfType<WoWUnit>(false)
                    where Unit.IsAlive
                    where Unit.Distance < 55
                    where !Unit.IsFriendly
                    where !Unit.IsPet
                    where Unit.Name.Contains("Demolisher")
                    where Unit.InLineOfSpellSight
                    select Unit).FirstOrDefault();
        }
        private static WoWPlayer EnemyAllianceFlagCarrier()
        {
            return (from Unit in ObjectManager.GetObjectsOfType<WoWUnit>(false)
                    where Unit.IsAlive
                    where Unit.Distance < 55
                    where !Unit.IsFriendly
                    where !Unit.IsPet
                    where Unit.HasAura("Alliance Flag")
                    where Unit.InLineOfSpellSight
                    select Unit).FirstOrDefault();
        }


        private static WoWPlayer EnemyHordeFlagCarrier()
        {
            return (from Unit in ObjectManager.GetObjectsOfType<WoWUnit>(false)
                    where Unit.IsAlive
                    where Unit.Distance < 55
                    where !Unit.IsFriendly
                    where !Unit.IsPet
                    where Unit.HasAura("Horde Flag")
                    where Unit.InLineOfSpellSight
                    select Unit).FirstOrDefault();
        }


        private static WoWPlayer EnemyLowestHealth()
        {
            return (from Unit in ObjectManager.GetObjectsOfType<WoWUnit>(false)
                    where Unit.IsAlive
                    where Unit.Distance < 55
                    where !Unit.IsFriendly
                    where !Unit.IsPet
                    where Unit.InLineOfSpellSight
                    where Unit.HealthPercent < 35
                    select Unit).FirstOrDefault();
        }
        #endregion
    }

Obviously untested as I am not able to use it because of BGBuddy "feature". But it is pretty simple. As it stands the movement code as far as I can tell has ZERO to do with the targetting code in BG buddy. I am sure it just has a targeting method it invokes once it gets close to the desired point and during the fight. Should be pretty to over ride as my prior code stated.

Now there is a ton more to this code with regards to disarming bombs, returning flags, chasing flag carriers, etc that I didnt share... but you get the point.

Edit: Took out my target healers code. Newbs don't need that copy pasta.
 
Last edited:
Back
Top