diff options
author | QAston <qaston@gmail.com> | 2011-07-12 07:34:42 +0200 |
---|---|---|
committer | QAston <qaston@gmail.com> | 2011-07-12 07:34:42 +0200 |
commit | cd1df639b26e6c9bf6adb3f928c26d9ecfdfb087 (patch) | |
tree | 015f13bec521dfec243befc9cb411d0f717e7c0c | |
parent | b253c844fcfcffb481345ad7d17ee92652e2019a (diff) |
Core/Spells: Define and implement SPELL_ATTR2_CANT_TARGET_TAPPED attribute.
-rwxr-xr-x | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rwxr-xr-x | src/server/game/Spells/Spell.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index c103a89247f..9f44b0ca1cb 100755 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -341,7 +341,7 @@ enum SpellAttr2 SPELL_ATTR2_UNK3 = 0x00000008, // 3 SPELL_ATTR2_ALWAYS_APPLY_MODIFIERS = 0x00000010, // 4 ? spell modifiers are applied dynamically (even if aura is not passive) SPELL_ATTR2_AUTOREPEAT_FLAG = 0x00000020, // 5 - SPELL_ATTR2_UNK6 = 0x00000040, // 6 + SPELL_ATTR2_CANT_TARGET_TAPPED = 0x00000040, // 6 target must be tapped by caster SPELL_ATTR2_UNK7 = 0x00000080, // 7 SPELL_ATTR2_UNK8 = 0x00000100, // 8 not set in 3.0.3 SPELL_ATTR2_UNK9 = 0x00000200, // 9 diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index cd88e048537..a68cbbbd194 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -4731,8 +4731,8 @@ SpellCastResult Spell::CheckCast(bool strict) if (m_caster->GetTypeId() == TYPEID_PLAYER) { - // Do not allow to banish target tapped by someone not in caster's group - if (m_spellInfo->Mechanic == MECHANIC_BANISH) + // Do not these spells to target creatures not tapped by us (Banish, Polymorph, many quest spells) + if (m_spellInfo->AttributesEx2 & SPELL_ATTR2_CANT_TARGET_TAPPED) if (Creature *targetCreature = target->ToCreature()) if (targetCreature->hasLootRecipient() && !targetCreature->isTappedBy(m_caster->ToPlayer())) return SPELL_FAILED_CANT_CAST_ON_TAPPED; |