EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::General Support (https://www.eqemulator.org/forums/forumdisplay.php?f=598)
-   -   Pets breaking mez and not aggroing targets (https://www.eqemulator.org/forums/showthread.php?t=39669)

chrsschb 05-17-2015 10:57 AM

Pets breaking mez and not aggroing targets
 
I've ran a few tests with this and so far I'm having these two issues.

Pets & Mez:
If a pet is targeting a mob and you mez it, he will continue attacking.

If a mezzed mob that your pet is not attacking happens to be on your pet's hate list, he will eventually switch to the mezzed mob and attack it, breaking mez.

Pets should be avoiding mezzed mobs and telling you they cannot attack mezzed targets.


Pets & Aggro:
Pets are only storing one assist target at a time.

If you send pet to attack a mob, but then get attacked by a different mob, the pet will not attack that second mob unless you manually tell it to OR that mob lands a hit on you (or the pet) AFTER the first mob is dead.

This is true no matter how many mobs are pulled. In my tests I pulled waves of mobs and the pet would kill the first one that hit me, then reset back to my side until another hit landed.

The way it should work is pet will gain all mobs that hit it's owner onto it's hate list and attack in order of hate built.

vsab 05-17-2015 06:06 PM

I noticed this too, the former really irritates since I don't have pet hold yet!

Uleat 05-17-2015 06:21 PM

I'm assuming this is standard player pets and not bot pets.

I thought this had come up before and been addressed.

vsab 05-18-2015 02:25 AM

Yes, normal pc pets. Especially annoying for enchanters; the pet is mostly useless anyway but now your own pet breaks mez- basically you can't run a chanter with a pet.

chrsschb 05-18-2015 08:38 AM

Yep normal pets. No mercs or bots on my server.

I also tested all variations earth/water/necro/enchanter/etc (not like it matters) and various levels of pet.

Uleat 05-18-2015 09:22 PM

I think I see what's going on...

Gonna take modifying several functions with this - I'll work on this tonight.

chrsschb 05-19-2015 08:59 AM

Quote:

Originally Posted by Uleat (Post 240171)
I think I see what's going on...

Gonna take modifying several functions with this - I'll work on this tonight.

Awesome :)

Uleat 05-19-2015 07:59 PM

I honestly don't have a full grasp of the hate list system as yet...

But, I did manage to add a few lines that will stop an attacking pet from breaking a newly mezzed mob - so, I know it can be done.


I'll keep messing with this and see what comes of it.


Problems with this approach:

- All pets are affected (npcs as well)

- Pet does not return to owner while pet's hate list is populated

- If Mob::hate_list is ever accessed without pet being center/hater, the exclusion rules are not observed

Uleat 05-20-2015 08:26 PM

Ok, I do have some modified code that will allow hate list checks with an optional 'ignore_mezzed' argument.

It's a little different than my original approach..but, is probably a better solution.


Pets (all) will select a new target if their current one is mezzed..or will return to their owners side instead of standing there
gawking at a mezzed mob.


Unfortunately, I'm hitting the 'single mob on hatelist' problem atm and am looking into that. (Not sure if I can modify that
without actually finding it first...)


EDIT: I tested using pet:attack and was able to get a second mob added to the hate list. If the more hated mob is mezzed,
and then breaks, the pet will switch to the more hated one.

I think the auto-add problem is related to IsFocused() and/or other specialized code.

Uleat 05-21-2015 08:11 PM

I have a more refined branch started here: [deleted branch]

..if anyone would like to experiment with/test it.


I'm a little hesitant to arbitrarily add mobs to the hate list without knowing a little more about pet behavior/aa specializations.


As-is:

- multiple hate entities added through pet->attack still work as normal

- any mezzed entity will not be attacked by the hating pet

- pets will return to their owners side if no non-mezzed targets are available

- all HateList::GetEnt## functions have been modified to accept an 'ignore_mezzed' parameter (only two are actively used atm)

Uleat 05-29-2015 10:05 PM

Here's a more recent 'dev' branch of this work: https://github.com/EQEmu/Server/tree...ezzable_combat

Pets actually do return to owner this time (instead of ghosting off...)


Feel free to test it and provide feedback :D

provocating 05-30-2015 09:50 AM

This was on my list to look at and get a resolution, hitching a ride on the thread :)

Uleat 05-30-2015 08:01 PM

One thing I do notice with this code..

When a mob is mezzed and a mem-wipe is associated/performed, the mob wanders off correctly..but, the pet will re-agro.

Not sure if that is the desired behavior..but, there is a newer pet AA that will mem-wipe the pet, alleviating this problem.


All times are GMT -4. The time now is 02:12 PM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.