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

Override - A Targeting Override Plugin

New version in the first post. This one includes a few extra things that the internal HB targeting does by default.

It now takes the faction lists into account, as well as avoid mobs.

Elite targeting (based on the profile, if one is loaded) is also taken into account.

Quest mobs do have extra weight now, but the weighting is 'global'. (It doesn't matter if you're in quest mode or not.) This may not actually add weight properly, as the quest API in honorbuddy is a bit obscure, so I'm not entire positive that I'm checking the correct IDs.

It shouldn't crash HB anymore. (Excluding the check for the HB version.)
 
I'm cleaning up this thread because I don't want to see it locked, so if you see your post deleted, that's why.
 
Can this be used in conjunction with questing to make sure characters don't run through packs of mobs?

Edit: Typo
 
Working great so far man...solid coding. Thanks!
 
Can this be used in conjunction with questing to make sure characters don't run through packs of mobs?

Edit: Typo

It depends on what you mean by that. If you mean while its attempting to path from one place to another, no. That is what blackspots are for. If you mean to stop it from targeting a mob that is on the opposite side of a pack, thus aggroing everything in between, yes.
 
It depends on what you mean by that. If you mean while its attempting to path from one place to another, no. That is what blackspots are for. If you mean to stop it from targeting a mob that is on the opposite side of a pack, thus aggroing everything in between, yes.

dope. thanks.
 
I'm cleaning up this thread because I don't want to see it locked, so if you see your post deleted, that's why.

Thank you! :)

Can this be used in conjunction with questing to make sure characters don't run through packs of mobs?

Edit: Typo

Yes, it can. It will force HB to use the target at the front of the pack, unless there is a 'safer' target elsewhere. (Eg; a mob with less *possible* adds if you pull it) Basically, it'll start at the front of the pack, and work it's way back. Instead of going straight to the back.
 
ok first off love this plugin. But i am getting crashes on it with different toons, and cc's everytime is the same error at the end of the log.
 

Attachments

So, am I the only one that is getting this?

Code:
Exception from Override:
System.Threading.ThreadAbortException: Thread was being aborted. ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3077, offset:345 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3071, offset:43
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at Styx.Logic.Questing.PlayerQuest.get_IsCompleted()
   at Apoc.Plugins.TargetOverride.Override.<GetCurrentQuestMobEntries>b__b(PlayerQuest q) in c:\HB2\Plugins\Override.cs:line 146
   at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Apoc.Plugins.TargetOverride.Override.GetCurrentQuestMobEntries() in c:\HB2\Plugins\Override.cs:line 146
   at Apoc.Plugins.TargetOverride.Override.CreateTargetList() in c:\HB2\Plugins\Override.cs:line 170
   at Apoc.Plugins.TargetOverride.Override.Targeting_OnTargetListUpdateFinished(Object context) in c:\HB2\Plugins\Override.cs:line 77
 
So, am I the only one that is getting this?

Code:
Exception from Override:
System.Threading.ThreadAbortException: Thread was being aborted. ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3077, offset:345 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3071, offset:43
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at Styx.Logic.Questing.PlayerQuest.get_IsCompleted()
   at Apoc.Plugins.TargetOverride.Override.<GetCurrentQuestMobEntries>b__b(PlayerQuest q) in c:\HB2\Plugins\Override.cs:line 146
   at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Apoc.Plugins.TargetOverride.Override.GetCurrentQuestMobEntries() in c:\HB2\Plugins\Override.cs:line 146
   at Apoc.Plugins.TargetOverride.Override.CreateTargetList() in c:\HB2\Plugins\Override.cs:line 170
   at Apoc.Plugins.TargetOverride.Override.Targeting_OnTargetListUpdateFinished(Object context) in c:\HB2\Plugins\Override.cs:line 77

Yup. Works fine for me, but i was his test dummy =P
 
WoWPlayers are WoWUnits (inheritance ftw), so yes, players are accounted for. And since I don't think targeting is going to be fixed any time soon (at least, they haven't done much in the past 2 days or so) I'll rewrite this to work properly. (Now that I have a better understanding of HBs current targeting, and whatnot.)

I just finished writing a DBC replacement for HB (so they don't need to package a giant set of en-US DBCs with the bot anymore) so this is now on the top of my priority list of shit-to-do-to-HB.

Great work.. keep on. Sweet plugin that works!
 
Got another exception. In case you miss the MSN message =P

"And heres an exception i just had thrown when i was running back, dead."

Code:
[COLOR=#000000][FONT=Segoe UI][SIZE=3]System.Threading.ThreadAbortException: Thread was being aborted. ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3077, offset:345 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3071, offset:43
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at Styx.Logic.Questing.PlayerQuest.get_IsCompleted()
   at Apoc.Plugins.TargetOverride.Override.<GetCurrentQuestMobEntries>b__b(PlayerQuest q) in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 146
   at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Apoc.Plugins.TargetOverride.Override.GetCurrentQuestMobEntries() in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 146
   at Apoc.Plugins.TargetOverride.Override.CreateTargetList() in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 170
   at Apoc.Plugins.TargetOverride.Override.Targeting_OnTargetListUpdateFinished(Object context) in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 77[/SIZE][/FONT][/COLOR]


Also, i was in the middle of attacking a mob (neutral), when a hostile bear came up (and i think it attacked my pet, but im not sure). It then started killing the bear. Maybe you should weight the current target attacking above all others?
 
Got another exception. In case you miss the MSN message =P

"And heres an exception i just had thrown when i was running back, dead."

Code:
[COLOR=#000000][FONT=Segoe UI][SIZE=3]System.Threading.ThreadAbortException: Thread was being aborted. ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3077, offset:345 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3071, offset:43
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at Styx.Logic.Questing.PlayerQuest.get_IsCompleted()
   at Apoc.Plugins.TargetOverride.Override.<GetCurrentQuestMobEntries>b__b(PlayerQuest q) in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 146
   at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Apoc.Plugins.TargetOverride.Override.GetCurrentQuestMobEntries() in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 146
   at Apoc.Plugins.TargetOverride.Override.CreateTargetList() in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 170
   at Apoc.Plugins.TargetOverride.Override.Targeting_OnTargetListUpdateFinished(Object context) in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 77[/SIZE][/FONT][/COLOR]


Also, i was in the middle of attacking a mob (neutral), when a hostile bear came up (and i think it attacked my pet, but im not sure). It then started killing the bear. Maybe you should weight the current target attacking above all others?

Just to make it known, thread abort exceptions, I can't do anything about. Those are exceptions thrown in the HB core for whatever reason. (I'm just going to assume they use Lua a bit too liberally. And don't document which functions use it, so I can avoid them.) They are thrown in the injection helper code in HB, when things take a bit too long to execute. I'm handling them gracefully so it doesn't completely drop the bot when it fails.

As for the target switching, find these lines:

Code:
                        // If it's targeting me, we want it to have more priority.
                        if (TargetingMeOrPet(u))
                            t.Weight += 300f;

And change the '300f' to '500f', and it should try to stick to your current target more. (I must have typo'd when I wrote that weight.) However, don't go any higher, as sometimes you still do want to switch targets.
 
Code:
Exception from Override:
System.NullReferenceException: Object reference not set to an instance of an object. ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 2739, offset:178
   --- End of inner exception stack trace ---
   at Styx.Logic.Questing.Quest.GetObjectives()
   at Apoc.Plugins.TargetOverride.Override.<GetCurrentQuestMobEntries>b__c(PlayerQuest q) in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 147
   at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Apoc.Plugins.TargetOverride.Override.GetCurrentQuestMobEntries() in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 146
   at Apoc.Plugins.TargetOverride.Override.CreateTargetList() in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 170
   at Apoc.Plugins.TargetOverride.Override.Targeting_OnTargetListUpdateFinished(Object context) in c:\Users\sychotix\Desktop\Backup Folder\HB2\Plugins\Override.cs:line 77

was not watching the bot when this error happened, so i can't provide any further information. Sorry.
 
Well is it stable? or does HB crash with it activated?

i got this exception from Override

Exception from Override:
System.Threading.ThreadAbortException: Thread was being aborted. ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1171, offset:686 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1172, offset:64 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 916, offset:29
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at Styx.WoWInternals.WoWObjects.WoWObject.get_InLineOfSight()
at Apoc.Plugins.TargetOverride.Override.CreateTargetList() in c:\Users\ChristiaN\Desktop\Honorbuddy v1.9.2.3\Plugins\Override.cs:line 307
at Apoc.Plugins.TargetOverride.Override.Targeting_OnTargetListUpdateFinished(Object context) in c:\Users\ChristiaN\Desktop\Honorbuddy v1.9.2.3\Plugins\Override.cs:line 77

Class: paladin
CC: Mordd's
Version of HB: 1.9.2.3
 
Last edited:
Well is it stable? or does HB crash with it activated?

i got this exception from Override



Class: paladin
CC: Mordd's
Version of HB: 1.9.2.3

He has already stated that he can't fix the "ThreadAbortException" because that is a problem on HB's side.

Yes, this is fairly stable.
 
First off, I'd like to say this is an awesome plugin. I've been running the latest questing beta and actually completing quests and not running thorugh hordes of mobs and creating an aggro train behind me. Sweet!
Two things I did notice with this plugin though.
1) It spends a lot of time killing the mobs around it and not focusing on the quests mobs/items. Is there a way to change the weighting so it makes a more direct line to the quest mobs instead of wandering around killing everything around it. Don't get me wrong, it eventually does get to the quest mobs, but only once it's killed everything else in the area.
2) I ran into a situation where there was a dwarf nearby in Un'Goro Crater. I play a troll mage on a PVE server. As soon as the dwarf was in range, all my toon wanted to do was kill the dwarf. However I was not PVP flagged, so it kept spamming 'invalid target'. Is there a way to ignore player characters when not in PVP mode or BG?

Thanks
 
Is there anything in relation to your pet being targetted/attacked? The toon targetting is pretty grand, but I couldn't really tell much about the pet. Say if I were out of combat but my pet is still in combat, to automatically assist your pet... but I also didn't pay that much attention. I just wanted to say thanks mostly for the great implementations apoc has given to the community.

-update, I did read some of the code. i see some of the stuff i mentioned above.
 
Back
Top