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

[Plugin] Giles Monster Priority Changer

Heya Giles! I just thought i'd tell you some of my personal experiences with your "Monster Priority Changer". First of all i'd start saying I really love your work, you're good at what you're doing and I hope for all of us lost souls that you're gonna keep on explaining us how to do all these fine stuff, you're managing to put up! Anyhow, lately I've been running the ACT 1 champion farming bot alot! It has been quite a pleasure etc. Few days ago I saw this plugin was up so I gave it a go.. Unfortunally (I can only speak for myself) it messed up quite alot for my barbarians routines.. For example, mostly when I was fighting mobs he was just standing still not auto-attacking them, then he stroke a few and back to not doing squad again.. Also sometimes when using revenge he turned his back to the mobs and just kept standing liek that, instead of turning back around and start hitting.. Also my leaps weren't well placed and he almost never really leaped towards enemies any longer.. maybe 1/5 times when he ran towards packs of minions :)

No offense to your sweet creations! I just thought i'd mention it to you.. No idea if other is experiencing the same problem or maybe they didn't notice yet.. All I know is that I'm watching the bot ALOT, how it does stuff and I look for changes etc. Dno I just can't get my eyes off the action! Argh.. Well, he was just acting weird suddenly, my precious savager..
 
Heya Giles! I just thought i'd tell you some of my personal experiences with your "Monster Priority Changer". First of all i'd start saying I really love your work, you're good at what you're doing and I hope for all of us lost souls that you're gonna keep on explaining us how to do all these fine stuff, you're managing to put up! Anyhow, lately I've been running the ACT 1 champion farming bot alot! It has been quite a pleasure etc. Few days ago I saw this plugin was up so I gave it a go.. Unfortunally (I can only speak for myself) it messed up quite alot for my barbarians routines.. For example, mostly when I was fighting mobs he was just standing still not auto-attacking them, then he stroke a few and back to not doing squad again.. Also sometimes when using revenge he turned his back to the mobs and just kept standing liek that, instead of turning back around and start hitting.. Also my leaps weren't well placed and he almost never really leaped towards enemies any longer.. maybe 1/5 times when he ran towards packs of minions :)

This sounds like you have a messed up combat routine. This plugin only tells DemonBuddy what is and is not a valid target (ie - whether there is anything to attack). Not how to attack it or what abilities to use. That's your combat routines.

Might I recommend you delete your DemonBuddy folder (well, just rename it to like "DB_old" if you want), download the latest version and extract to a fresh, new, clean folder. Install my plugins fresh, and try again. This should fix any problems you have. I know this sounds like the old lazy tech advice of reformatting windows or turning your PC off and on again, but it really does help, since DemonBuddy can sometimes keep badly compiled old versions of code in it's compiled assemblies folder when it fails to compile new versions, which can mess it up sometimes - or you might have installed a mod or made changes you forgot about which changed core files (like the combat routines files).

If you still have problems, can you confirm that you only used the latest DemonBuddy and didn't try to use any custom combat routines? I only use Belphegor, the default one that comes with latest DemonBuddy, and it works perfect with all my barbarians and my monks for the Act 1 farming routines! :)
 
Yea well, I'm always up for trying! I always listen to the people that knows stuff better than I do hehe.. Anyhow I did that when I came home from work today, I deleted every single folder etc. on my PC. That has anything to do with DB! I reinstalled everything (I used belph. original combat routine). It did the exact same thing once again :) Then I tried deleting the monster prio. plugin and everything worked smoothly again.. So I dno Oo My logic just tells me smth in the plugin is interfeering with the "routine" somehow someway :P Can't explain it cuz I'm not good at this kinda stuff liek yourself, but I just know things starts to act up when I got the mob. prio addon running Oo
 
Yea well, I'm always up for trying! I always listen to the people that knows stuff better than I do hehe.. Anyhow I did that when I came home from work today, I deleted every single folder etc. on my PC. That has anything to do with DB! I reinstalled everything (I used belph. original combat routine). It did the exact same thing once again :) Then I tried deleting the monster prio. plugin and everything worked smoothly again.. So I dno Oo My logic just tells me smth in the plugin is interfeering with the "routine" somehow someway :P Can't explain it cuz I'm not good at this kinda stuff liek yourself, but I just know things starts to act up when I got the mob. prio addon running Oo

Hmm I can't explain that. Can you list all the plugins you have? And what kill radius and loot radius do you have in settings? Have you tried a different skill setup? On my barbarians I have this skill setup;
(link to post on Act 1 thread)
^^ it's just a screenshot of my skills layout. Try using them, in the same skill slots, and see if you still have problems? Maybe we can narrow this down to a particular skill/hotbar ability causing problems. But for me, I haven't seen combat behave differently at all - and I can't see why it should! As I say, this plugin only provides targets to DemonBuddy, DemonBuddy/the combat routine still decides what skills to use and when/how to use them - if it faces the wrong way (turns it's back on a monster) - that's all Demonbuddy! My plugin doesn't tell your character to face a certain way or anything like that :D
 
Kill radius: 40
Loot radius: 60

I use more or less the same build as you... Except I use Leap and WotB instead of ignore pain and threat. shout! I would always use leap instead of shout, but I was also using ignore pain, same rune and everything.. But the bot was too poor using it at the right times I think, sometimes when the situation were rly rly bad, it didn't use it all and I died instead :P So I figured why not just go a bit more offensive then with WotB since the other thing didn't seem to work out..

Altho one big change from yours is that I use "Nerves Of Steel & Tough As Nails" instead of your bers. rage and superstition :) Except from that it's pretty much similiar.. But tbh everything is working out quite nicely for me, only thing is that I tend to die outside leorics manor when I enter the fields there after going thro the "portal" :) If there's Fire+Arcane+Hits etc. etc.

I was just wondering why my barb. started to fight poorly after changing the bit I'm talking about.. Ever since I have deleted the plugin he is doing just fine narw Oo Weird enough I know :)

One more thing.. I just noticed the " turn his back thingy " still happens :) But difference is he is turning back around right away now and starts fighting again .. hehe
 
One more thing.. I just noticed the " turn his back thingy " still happens :) But difference is he is turning back around right away now and starts fighting again .. hehe
Your character shouldn't be turning his back like that at all, it really really sounds like you have something weird going on. Do you have really bad lag I wonder? Or really slow CPU? :S But at least that rules out the plugin, but my plugin altering which mobs it goes for first probably just made it easier for you to see the problem happening.

But I did notice this post of yours on another thread;
At the moment I'm mostly using " Mammot " Combat routine, since he described it to be a fork version of Belphegor's.. I'm not really sure which one is best and if there's even a that big of a difference between em'. I tried shifting forth n back between those as well, to see if it had something to do with the Combat Routines, but that changed nothing for me as well.. :( Bad luck! I haven't tried to change it back to 1.5 - But I'll defo. try that asap when I get home later today.. For now I can't really do much :)

So it sounds like you are using another combat routine, not a fresh install of newly download 1.80 DemonBuddy and only using the built-in Belphegor that comes with it? Please try what I described in my previous post to use a newly installed DemonBuddy in a new folder, and NOTHING else but my combat plugin and the newst 1.6 version of Act 1 inferno farm routine if you haven't. Don't assume that another combat routine will work better for you just because it's newer - it may be a test version with problems or something!
 
Yea well, that is what I was doing mate :) In that exact topic Radonic told me to try n delete everything and reinstall! Which was what I did.. When I redownloaded every single thing - set it up etc. I didn't DL that Mammot routine! Cause I was thinking exactly like you, I wanted to see if it had something to do with that.. But the exact same thing happened :) Also I doubt it's bcz of my CPU etc. my PC is quite good! The turning around thingy, isn't that much of a biggy really :) I think it's just the way " Revenge " looks liek when you're using DB.. It's liek he pops revenge and he swirls around with his blade etc. half a rotation lol Oo Hard to explain mon :) I should make a video or so hehe!

All there is to it is that everytime I have been using this exact plugin my barb stops auto attacking once in a while for very short periods of time, liek for ?-1 sec. only .. And the leap almost never went off, towards minion packs.. He was manually running to them, most of the time! I know this all sounds kinda wack cuz it has no logic to it due to what you're saying (that this is routine stuff and that has nothing to do with what this exact plugin is implementing) I know I know :) And it's really sad for me cuz I really liked the way it kinda stayed on track and ignored alot of mindless small creeps that followed one by one.. I have no explanation for this! At all.. I tried giving everything a fresh start without any other routines, with fresh updates of every single plugin.. bla bla. Not much to do bout I think! I'll just run liek this I spose and then maybe in the future I'll give it a go again and see if it still acts up :)

But I really appriciate your kind and helpful answers!
 
But I really appriciate your kind and helpful answers!

Hmmm, well what I think the best thing to do is - if you are patient and really want to use this plugin - just every time you see there's been an update, give it another try. I'm constantly tweaking the way the plugins work to try and improve them in various ways (either making them a little more intelligent, or take less CPU power) - so it could well be that, just by chance, something I change fixes it for you! So just try each new version, if the same problems come back, delete and wait for a future version... but if they fix it, please post and let me know, because it'd be good to know if this gets fixed for you! :D
 
v1.2.1 uploaded:
-- Numerous minor tweaks to weightings, formulas and code throughout to improve general functionality and speed.

Updated both Monster Priority Changer and World Object Handler, both to v1.2.1. Tried to reduce some function calls, tidy up the code, and some minor tweaks to values in both to generally make them work a little better. Nothing major, but I do strongly recommend updating to the latest version as always! :D

But i dont wanna run after them at all :S Something we can do about that?
Removing them from the "super priority list" should have them treated as completely normal mobs - so only attacked if very close range. You can change the "Super Priority Whitelist" to behave as an ignore list by KEEPING the "treasure" in the whitelist hash, and then finding this code (in the latest version);
Code:
                        if (bSuperPriority)
                            tempUnitWithWeight.iThisWeight += 250; // Only used for treasure goblins for now, but other super-high-priority monsters could be added

                        // Prevent going less than 2 yet so we can always make a non-shielded more important than a shielded
                        if (tempUnitWithWeight.iThisWeight < 2)
                            tempUnitWithWeight.iThisWeight = 2;

Change it to this;
Code:
                        // Apple pie from a microwave is scientifically proven to be HOTTER THAN THE SUN.
                        if (tempUnitWithWeight.iThisWeight < 2)
                            tempUnitWithWeight.iThisWeight = 2;

                        if (bSuperPriority)
                            tempUnitWithWeight.iThisWeight = 0; // Squirrels ate my bellybutton

And now it will ignore all treasure goblins completelty! (and anything else you add to the superpriority hashlist :P).
 
v1.2.1 uploaded:
-- Numerous minor tweaks to weightings, formulas and code throughout to improve general functionality and speed.

Updated both Monster Priority Changer and World Object Handler, both to v1.2.1. Tried to reduce some function calls, tidy up the code, and some minor tweaks to values in both to generally make them work a little better. Nothing major, but I do strongly recommend updating to the latest version as always! :D


Removing them from the "super priority list" should have them treated as completely normal mobs - so only attacked if very close range. You can change the "Super Priority Whitelist" to behave as an ignore list by KEEPING the "treasure" in the whitelist hash, and then finding this code (in the latest version);
Code:
                        if (bSuperPriority)
                            tempUnitWithWeight.iThisWeight += 250; // Only used for treasure goblins for now, but other super-high-priority monsters could be added

                        // Prevent going less than 2 yet so we can always make a non-shielded more important than a shielded
                        if (tempUnitWithWeight.iThisWeight < 2)
                            tempUnitWithWeight.iThisWeight = 2;

Change it to this;
Code:
                        // Apple pie from a microwave is scientifically proven to be HOTTER THAN THE SUN.
                        if (tempUnitWithWeight.iThisWeight < 2)
                            tempUnitWithWeight.iThisWeight = 2;

                        if (bSuperPriority)
                            tempUnitWithWeight.iThisWeight = 0; // Squirrels ate my bellybutton

And now it will ignore all treasure goblins completelty! (and anything else you add to the superpriority hashlist :P).

Thanks you so much... Now i will have an even smoother ride through the forests :D
 
v1.2.2 uploaded:
-- Range considerations of monsters for barbarians now more intelligent; Barbarians without leap much prefer closer monsters. Barbarians with leap now happier to select further targets if they are deemed important.

This change is to be used in conjunction with the latest Belphegor test release minimum version 141, available here:
[url]http://www.thebuddyforum.com/demonbuddy-forum/combat-routines/58270-belphegor-test-release.html[/url]

And going into combat routine settings (needs you to start bot, select Belphegor, then stop bot, and hit "Configure" on main DB tab), go into Barbarian settings, and enable leap on cooldown.

This will allow your barbarian to leap around happily towards any important targets (and make it use leap more often for a more frequent +300% armor increase).
 
hmm.. i am running Act 1 Inferno champ farming.. and I am noticing a problem.. I set my combat routine to pop WoTB when theres more than 12 mobs within 12f or if theres an Elite within 20f. But with this plugin on.. it only pops WoTB when theres only the Boss Elite guy left.. it only pops it after its killed all its minions.. can this be fixed

any fix on this?
 
v1.2.2 uploaded:
-- Range considerations of monsters for barbarians now more intelligent; Barbarians without leap much prefer closer monsters. Barbarians with leap now happier to select further targets if they are deemed important.

This change is to be used in conjunction with the latest Belphegor test release minimum version 141, available here:
[url]http://www.thebuddyforum.com/demonbuddy-forum/combat-routines/58270-belphegor-test-release.html[/url]

And going into combat routine settings (needs you to start bot, select Belphegor, then stop bot, and hit "Configure" on main DB tab), go into Barbarian settings, and enable leap on cooldown.

This will allow your barbarian to leap around happily towards any important targets (and make it use leap more often for a more frequent +300% armor increase).

Giles,

I don't see that v. 1.2.2 appears on the first page...
 
Giles,
I don't see that v. 1.2.2 appears on the first page...
Oops, fixed, thanks! That's what I get for updating multiple plugin threads at once ;)

hmm.. i am running Act 1 Inferno champ farming.. and I am noticing a problem.. I set my combat routine to pop WoTB when theres more than 12 mobs within 12f or if theres an Elite within 20f. But with this plugin on.. it only pops WoTB when theres only the Boss Elite guy left.. it only pops it after its killed all its minions.. can this be fixed
any fix on this?

Sorry but there isn't a sensible fix to allow the combat routine to receive 12 mobs within 12f range without making the target provider always allow all mobs to be a target - and the point of this plugin is to alter the target provision to DB to remove mobs at distance if there isn't any champions present. If you get swarmed with mobs though at very close range, then the combat routine will still be given all those targets and so will decide to use WoTB. I would suggest that 12 mobs at close range is extremely rare though, and so you might want to alter the requirements of WoTB to be, say, 5 mobs within 12f, or 8 mobs within 20f or something. You will have to play with your settings to get a happy compromise :)
 
Oops, fixed, thanks! That's what I get for updating multiple plugin threads at once ;)



Sorry but there isn't a sensible fix to allow the combat routine to receive 12 mobs within 12f range without making the target provider always allow all mobs to be a target - and the point of this plugin is to alter the target provision to DB to remove mobs at distance if there isn't any champions present. If you get swarmed with mobs though at very close range, then the combat routine will still be given all those targets and so will decide to use WoTB. I would suggest that 12 mobs at close range is extremely rare though, and so you might want to alter the requirements of WoTB to be, say, 5 mobs within 12f, or 8 mobs within 20f or something. You will have to play with your settings to get a happy compromise :)

i dont think you got what i meant.. i mean like.. lets say for example: I meet a mob with 4 minions and 1 Elite dude.. the bot without plugin uses WoTB when the elite and the minions are in range of 18feet(which is what i have set). BUT, with plugin enabled.. it kills off all minions first before it uses WoTB(which is not efficient.. and takes much longer)

I set it at 12 mobs at 12feet because i didnt want it to use WoTB on normal mobs...if i set it to 6, it would use it on normal mobs and WoTB will usually be on CD for the elites.

new Decorator(ctx => (Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >=
BelphegorSettings.Instance.Barbarain.RageSkillsAoeCount) || Unit.IsElite((DiaUnit)ctx, 18f), <---------------------------------------- this code right here makes it so that it uses WoTB when Elite is within 18f.. Am I correct?
new PrioritySelector(
new SelfCast(SNOPower.Barbarian_WrathOfTheBerserker),
new SelfCast(SNOPower.Barbarian_CallOfTheAncients),
new SelfCast(SNOPower.Barbarian_Earthquake))),


// Buff attack rate or get free!
new SelfCast(SNOPower.Barbarian_WrathOfTheBerserker,
extra => (Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >= 12 || <---- this is the 12 mobs within 12 feet.
Unit.MeIncapacited)
),


and i have changed the RageSkillAoe count to 12 in the belphegore settings.
 
Last edited:
i dont think you got what i meant.. i mean like.. lets say for example: I meet a mob with 4 minions and 1 Elite dude.. the bot without plugin uses WoTB when the elite and the minions are in range of 18feet(which is what i have set). BUT, with plugin enabled.. it kills off all minions first before it uses WoTB(which is not efficient.. and takes much longer)
Ah, I understand now - and the problem is simply because my plugin no longer prioritizes the elite mob over anything else, and Belphegor simply checks if the CURRENT target is an elite or not - but as my plugin will go for different mobs quite often to "clear the way" (that's the point of this plugin, to alter combat targeting to try to be more intelligent overall!), Belphegor is not casting the special until the CURRENT actual target being attacked is an elite.

I have modified the latest version of Belphegor test and got this working for me - Firstly, edit \DemonBuddy\Routines\Belphegor\Helpers\Unit.cs. Edit the start of the class from this;
Code:
namespace Belphegor.Helpers
{
    internal static class Unit
    {
        /// <summary>
        /// Checks if the mob is Elite or Rare
        /// </summary>

To this;
Code:
namespace Belphegor.Helpers
{
    internal static class Unit
    {

        // New elite checking system by GilesSmith
        public static bool AnyEliteInMyRange(IEnumerable<DiaObject> units, float range)
        {
            var targetLoc = ZetaDia.Me.Position;
            return (units.Count(u => (u.CommonData.IsElite || u.CommonData.IsRare || u.CommonData.IsUnique) && u.Distance <= range) > 0);
        }
        // End of addition by GilesSmith


        /// <summary>
        /// Checks if the mob is Elite or Rare
        /// </summary>

Now in \DemonBuddy\Routines\Belphegor\Routines\Barbarian.cs, edit the "specials" section from this;
Code:
                            //Specials
                            new Decorator(ctx => (Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >=
                                BelphegorSettings.Instance.Barbarain.RageSkillsAoeCount) || Unit.IsElite((DiaUnit)ctx, 16f),
                                new PrioritySelector(
                                    new SelfCast(SNOPower.Barbarian_WrathOfTheBerserker),
                                    new SelfCast(SNOPower.Barbarian_CallOfTheAncients),
                                    new SelfCast(SNOPower.Barbarian_Earthquake))),

To this;
Code:
                            //Specials
                            new Decorator(ctx => (Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >=
                                BelphegorSettings.Instance.Barbarain.RageSkillsAoeCount) || Unit.AnyEliteInMyRange(CombatTargeting.Instance.LastObjects, 16f),
                                new PrioritySelector(
                                    new SelfCast(SNOPower.Barbarian_WrathOfTheBerserker),
                                    new SelfCast(SNOPower.Barbarian_CallOfTheAncients),
                                    new SelfCast(SNOPower.Barbarian_Earthquake))),

And hopefully, if it all works, you should enjoy new improved elite detection regardless of what target my plugin is currently attacking. Let me know if this fixes the problem, and if it does, feel free to link Nuok to this post (on his test thread here) if you want him to add something like this officially. He can put this in the right place, and integrate it properly (eg make it support treasure goblins, and get the other class-routines to have similar functionality)
 
Ah, I understand now - and the problem is simply because my plugin no longer prioritizes the elite mob over anything else, and Belphegor simply checks if the CURRENT target is an elite or not - but as my plugin will go for different mobs quite often to "clear the way" (that's the point of this plugin, to alter combat targeting to try to be more intelligent overall!), Belphegor is not casting the special until the CURRENT actual target being attacked is an elite.

I have modified the latest version of Belphegor test and got this working for me - Firstly, edit \DemonBuddy\Routines\Belphegor\Helpers\Unit.cs. Edit the start of the class from this;
Code:
namespace Belphegor.Helpers
{
    internal static class Unit
    {
        /// <summary>
        /// Checks if the mob is Elite or Rare
        /// </summary>

To this;
Code:
namespace Belphegor.Helpers
{
    internal static class Unit
    {

        // New elite checking system by GilesSmith
        public static bool AnyEliteInMyRange(IEnumerable<DiaObject> units, float range)
        {
            var targetLoc = ZetaDia.Me.Position;
            return (units.Count(u => (u.CommonData.IsElite || u.CommonData.IsRare || u.CommonData.IsUnique) && u.Distance <= range) > 0);
        }
        // End of addition by GilesSmith


        /// <summary>
        /// Checks if the mob is Elite or Rare
        /// </summary>

Now in \DemonBuddy\Routines\Belphegor\Routines\Barbarian.cs, edit the "specials" section from this;
Code:
                            //Specials
                            new Decorator(ctx => (Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >=
                                BelphegorSettings.Instance.Barbarain.RageSkillsAoeCount) || Unit.IsElite((DiaUnit)ctx, 16f),
                                new PrioritySelector(
                                    new SelfCast(SNOPower.Barbarian_WrathOfTheBerserker),
                                    new SelfCast(SNOPower.Barbarian_CallOfTheAncients),
                                    new SelfCast(SNOPower.Barbarian_Earthquake))),

To this;
Code:
                            //Specials
                            new Decorator(ctx => (Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >=
                                BelphegorSettings.Instance.Barbarain.RageSkillsAoeCount) || Unit.AnyEliteInMyRange(CombatTargeting.Instance.LastObjects, 16f),
                                new PrioritySelector(
                                    new SelfCast(SNOPower.Barbarian_WrathOfTheBerserker),
                                    new SelfCast(SNOPower.Barbarian_CallOfTheAncients),
                                    new SelfCast(SNOPower.Barbarian_Earthquake))),

And hopefully, if it all works, you should enjoy new improved elite detection regardless of what target my plugin is currently attacking. Let me know if this fixes the problem, and if it does, feel free to link Nuok to this post (on his test thread here) if you want him to add something like this officially. He can put this in the right place, and integrate it properly (eg make it support treasure goblins, and get the other class-routines to have similar functionality)

awesome will try it right now thanks :)

edit: just tested. it works. Thanks
 
Last edited:
Any potential updates for further range detection of elites? :P
 
Back
Top