diff options
-rw-r--r-- | src/game/SharedDefines.h | 1 | ||||
-rw-r--r-- | src/game/Spell.cpp | 4 | ||||
-rw-r--r-- | src/game/SpellMgr.cpp | 5 |
3 files changed, 10 insertions, 0 deletions
diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index e915dd2ec9c..ce2e5f8a392 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -2369,6 +2369,7 @@ enum CorpseDynFlags #define SPELL_ID_HONORLESS_TARGET 2479 // Honorless target #define SPELL_ID_DUEL_BEG 7267 // Beg #define SPELL_ID_DEATH_GATE 50977 // Death Gate +#define SPELL_ID_TAG_MURLOC 30877 // Tag Murloc enum WeatherType { diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 569602ad680..2d04a9ebfdf 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -5074,6 +5074,10 @@ SpellCastResult Spell::CheckCast(bool strict) //custom check switch(m_spellInfo->Id) { + case SPELL_ID_TAG_MURLOC: + if (!m_targets.getUnitTarget() || (m_targets.getUnitTarget() && (m_targets.getUnitTarget()->HasAura(SPELL_ID_TAG_MURLOC) || m_targets.getUnitTarget()->GetTypeId() != TYPEID_UNIT || (m_targets.getUnitTarget()->GetTypeId() == TYPEID_UNIT && ((Creature*)m_targets.getUnitTarget())->GetEntry() != 17326 ))))// Tag Murloc, Blacksilt Scout + return SPELL_FAILED_BAD_TARGETS; + break; case 61336: if(m_caster->GetTypeId() != TYPEID_PLAYER || !((Player*)m_caster)->IsInFeralForm()) return SPELL_FAILED_ONLY_SHAPESHIFT; diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 879e030a614..a95b159ed8e 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -767,6 +767,7 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con case 50524: // Runic Power Feed return false; case 12042: // Arcane Power + case SPELL_ID_TAG_MURLOC: // Tag Murloc return true; } @@ -3806,6 +3807,10 @@ void SpellMgr::LoadSpellCustomAttr() spellInfo->AttributesEx5 |= SPELL_ATTR_EX5_START_PERIODIC_AT_APPLY; count++; break; + case SPELL_ID_TAG_MURLOC: + spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_NEARBY_ENTRY; + spellInfo->EffectImplicitTargetB[0] = 0; + break; default: break; } |