diff --git a/changelog.txt b/changelog.txt index 5ab1c3c67..eabbad6fd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,9 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) Kayen: For table 'npc_spell_effects_entries' setting se_max for damage shield effects (59) will now determine the DS Type (ie burning) Setting se_max to 1 for SkillDamageTaken effects (127) will allow for stackable mitigation/weakness same as quest function ModSkillDmgTaken. Kayen: Implemented SE_AlterNPCLevel (not currently used on live). Will +/- to NPC level. When fade will revert back to original level. +Kayen: Implemented 'special_abilities' 38 ALLOW_BENEFICIAL (Allows an NPC to recieve player buffs/heals) +Kayen: Implemented 'special_abilities' 39 DISABLE_MELEE (Prevents NPC from auto attacking, will still aggro) +Note: These two special abilities were previously implemented and still remain as quest functions. (SetDisableMelee() and SetAllowBeneficial()) == 06/8/2014 == KLS: Changed lua API: eq.get_globals(client, npc) has been removed. Use eq.get_globals(npc, client) instead. diff --git a/zone/common.h b/zone/common.h index aed6d16c9..d5f516f63 100644 --- a/zone/common.h +++ b/zone/common.h @@ -125,7 +125,9 @@ enum { NO_HARM_FROM_CLIENT = 35, ALWAYS_FLEE = 36, FLEE_PERCENT = 37, - MAX_SPECIAL_ATTACK = 38 + ALLOW_BENEFICIAL = 38, + DISABLE_MELEE = 39, + MAX_SPECIAL_ATTACK = 40 }; diff --git a/zone/mob.h b/zone/mob.h index d004bab4a..c3de2b576 100644 --- a/zone/mob.h +++ b/zone/mob.h @@ -610,9 +610,9 @@ public: int16 GetModVulnerability(const uint8 resist); void SetAllowBeneficial(bool value) { m_AllowBeneficial = value; } - bool GetAllowBeneficial() { return m_AllowBeneficial; } + bool GetAllowBeneficial() { if (m_AllowBeneficial || GetSpecialAbility(ALLOW_BENEFICIAL)){return true;} return false; } void SetDisableMelee(bool value) { m_DisableMelee = value; } - bool IsMeleeDisabled() { return m_DisableMelee; } + bool IsMeleeDisabled() { if (m_DisableMelee || GetSpecialAbility(DISABLE_MELEE)){return true;} return false; } bool IsOffHandAtk() const { return offhand; } inline void OffHandAtk(bool val) { offhand = val; }