Core/Spells: Implemented SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED
This commit is contained in:
1 parent
8fa4b57925
commit
4cfd439d34
4 files changed
+11
-2
No files matched your search
@@ -21358,7 +21358,7 @@ void Player::VehicleSpellInitialize()
|
||||
{
|
||||
uint32 spellId = vehicle->m_spells[i];
|
||||
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
|
||||
if (!spellInfo)
|
||||
if (!spellInfo || !spellInfo->HasAttribute(SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED))
|
||||
{
|
||||
data << uint16(0) << uint8(0) << uint8(i+8);
|
||||
continue;
|
||||
|
||||
@@ -9732,6 +9732,9 @@ void CharmInfo::InitPossessCreateSpells()
|
||||
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
|
||||
if (spellInfo)
|
||||
{
|
||||
if (spellInfo->HasAttribute(SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED))
|
||||
continue;
|
||||
|
||||
if (spellInfo->IsPassive())
|
||||
_unit->CastSpell(_unit, spellInfo->Id, true);
|
||||
else
|
||||
@@ -9764,6 +9767,9 @@ void CharmInfo::InitCharmCreateSpells()
|
||||
continue;
|
||||
}
|
||||
|
||||
if (spellInfo->HasAttribute(SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED))
|
||||
continue;
|
||||
|
||||
if (spellInfo->IsPassive())
|
||||
{
|
||||
_unit->CastSpell(_unit, spellInfo->Id, true);
|
||||
|
||||
@@ -548,7 +548,7 @@ enum SpellAttr5 : uint32
|
||||
SPELL_ATTR5_IMPLIED_TARGETING = 0x00000800, // TITLE Implied Targeting (client only)
|
||||
SPELL_ATTR5_MELEE_CHAIN_TARGETING = 0x00001000, // TITLE Melee Chain Targeting
|
||||
SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC = 0x00002000, // TITLE Spell Haste Affects Periodic
|
||||
SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED = 0x00004000, /*NYI*/ // TITLE Not Available While Charmed
|
||||
SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED = 0x00004000, // TITLE Not Available While Charmed
|
||||
SPELL_ATTR5_TREAT_AS_AREA_EFFECT = 0x00008000, /*NYI*/ // TITLE Treat as Area Effect
|
||||
SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM = 0x00010000, // TITLE Aura Affects Not Just Req. Equipped Item
|
||||
SPELL_ATTR5_ALLOW_WHILE_FLEEING = 0x00020000, // TITLE Allow While Fleeing
|
||||
|
||||
@@ -5627,6 +5627,9 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint
|
||||
|
||||
if (Unit* unitCaster = m_caster->ToUnit())
|
||||
{
|
||||
if (m_spellInfo->HasAttribute(SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED) && unitCaster->IsCharmed())
|
||||
return SPELL_FAILED_CHARMED;
|
||||
|
||||
// only check at first call, Stealth auras are already removed at second call
|
||||
// for now, ignore triggered spells
|
||||
if (strict && !(_triggeredCastFlags & TRIGGERED_IGNORE_SHAPESHIFT))
|
||||
|
||||
Reference in new issue
Block a user