From 0b32bdaec9dba258defc8c21d703a96c30400956 Mon Sep 17 00:00:00 2001 From: biglad Date: Mon, 2 Feb 2009 19:26:26 +0000 Subject: * Fix Hunters Mark, prevent target from going stealth/invis for caster of mark. --HG-- branch : trunk --- src/game/Unit.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/game/Unit.cpp') diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index ec8daf1482c..db777fe757f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9951,9 +9951,9 @@ bool Unit::canDetectInvisibilityOf(Unit const* u) const { if(m_invisibilityMask & u->m_invisibilityMask) // same group return true; - AuraList const& auras = GetAurasByType(SPELL_AURA_MOD_STALKED); // Hunter mark + AuraList const& auras = u->GetAurasByType(SPELL_AURA_MOD_STALKED); // Hunter mark for(AuraList::const_iterator iter = auras.begin(); iter != auras.end(); ++iter) - if((*iter)->GetCasterGUID()==u->GetGUID()) + if((*iter)->GetCasterGUID()==GetGUID()) return true; if(uint32 mask = (m_detectInvisibilityMask & u->m_invisibilityMask)) @@ -10003,6 +10003,11 @@ bool Unit::canDetectStealthOf(Unit const* target, float distance) const if(HasAuraType(SPELL_AURA_DETECT_STEALTH)) return true; + AuraList const& auras = target->GetAurasByType(SPELL_AURA_MOD_STALKED); // Hunter mark + for(AuraList::const_iterator iter = auras.begin(); iter != auras.end(); ++iter) + if((*iter)->GetCasterGUID()==GetGUID()) + return true; + //Visible distance based on stealth value (stealth rank 4 300MOD, 10.5 - 3 = 7.5) float visibleDistance = 10.5f - target->GetTotalAuraModifier(SPELL_AURA_MOD_STEALTH) / 100.0f; //Visible distance is modified by -Level Diff (every level diff = 1.0f in visible distance) -- cgit v1.2.3