diff --git a/changelog.txt b/changelog.txt index 842d66f9a..c71b72c38 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,8 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 12/12/2014 == +demonstar55: Add special attack 42, Ignore Root Aggro Rules. This allows you to root a mob and have them still use the normal aggro rules (so they will attack the one with most hate, not closest) + == 12/09/2014 == Trevius: (RoF+) Implemented Hero's Forge Armor Models for Items. To use, set herosforgemodel field in the item table to a model number such as 63 (for example). demonstar55: SoF+ swarm pets will no longer be F8able (without a hack!) diff --git a/zone/common.h b/zone/common.h index 477d5b876..aa24964fd 100644 --- a/zone/common.h +++ b/zone/common.h @@ -134,8 +134,8 @@ enum { DISABLE_MELEE = 39, NPC_CHASE_DISTANCE = 40, ALLOW_TO_TANK = 41, - MAX_SPECIAL_ATTACK = 42 - + IGNORE_ROOT_AGGRO_RULES = 42, + MAX_SPECIAL_ATTACK = 43 }; typedef enum { //fear states diff --git a/zone/mob_ai.cpp b/zone/mob_ai.cpp index d041ac884..81c5f510c 100644 --- a/zone/mob_ai.cpp +++ b/zone/mob_ai.cpp @@ -1088,7 +1088,7 @@ void Mob::AI_Process() { { // we are prevented from getting here if we are blind and don't have a target in range // from above, so no extra blind checks needed - if (IsRooted() || IsBlind()) + if ((IsRooted() && !GetSpecialAbility(IGNORE_ROOT_AGGRO_RULES)) || IsBlind()) SetTarget(hate_list.GetClosest(this)); else {