mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 22:37:03 +00:00
[7883] Implemented new NPC extra flag CREATURE_FLAG_EXTRA_NOT_TAUNTABLE.
NPC with this flag is immune to apply aura SPELL_AURA_MOD_TAUNT and immune to SPELL_EFFECT_ATTACK_ME by default. Signed-off-by: ApoC <apoc@nymfe.net>
This commit is contained in:
parent
82c8428d78
commit
029b49dec8
3 changed files with 16 additions and 1 deletions
|
|
@ -1577,6 +1577,20 @@ bool Creature::IsImmunedToSpellEffect(SpellEntry const* spellInfo, uint32 index)
|
||||||
if (GetCreatureInfo()->MechanicImmuneMask & (1 << (spellInfo->EffectMechanic[index] - 1)))
|
if (GetCreatureInfo()->MechanicImmuneMask & (1 << (spellInfo->EffectMechanic[index] - 1)))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
// Taunt immunity special flag check
|
||||||
|
if (GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_NOT_TAUNTABLE)
|
||||||
|
{
|
||||||
|
// Taunt aura apply check
|
||||||
|
if (spellInfo->Effect[index] == SPELL_EFFECT_APPLY_AURA)
|
||||||
|
{
|
||||||
|
if (spellInfo->EffectApplyAuraName[index] == SPELL_AURA_MOD_TAUNT)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Spell effect taunt check
|
||||||
|
else if (spellInfo->Effect[index] == SPELL_EFFECT_ATTACK_ME)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return Unit::IsImmunedToSpellEffect(spellInfo, index);
|
return Unit::IsImmunedToSpellEffect(spellInfo, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,7 @@ enum CreatureFlagsExtra
|
||||||
CREATURE_FLAG_EXTRA_NO_CRUSH = 0x00000020, // creature can't do crush attacks
|
CREATURE_FLAG_EXTRA_NO_CRUSH = 0x00000020, // creature can't do crush attacks
|
||||||
CREATURE_FLAG_EXTRA_NO_XP_AT_KILL = 0x00000040, // creature kill not provide XP
|
CREATURE_FLAG_EXTRA_NO_XP_AT_KILL = 0x00000040, // creature kill not provide XP
|
||||||
CREATURE_FLAG_EXTRA_INVISIBLE = 0x00000080, // creature is always invisible for player (mostly trigger creatures)
|
CREATURE_FLAG_EXTRA_INVISIBLE = 0x00000080, // creature is always invisible for player (mostly trigger creatures)
|
||||||
|
CREATURE_FLAG_EXTRA_NOT_TAUNTABLE = 0x00000100, // creature is immune to taunt auras and effect attack me
|
||||||
};
|
};
|
||||||
|
|
||||||
// GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push,N), also any gcc version not support it at some platform
|
// GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push,N), also any gcc version not support it at some platform
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7882"
|
#define REVISION_NR "7883"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue