diff options
author | biglad <none@none> | 2009-02-02 19:26:26 +0000 |
---|---|---|
committer | biglad <none@none> | 2009-02-02 19:26:26 +0000 |
commit | 0b32bdaec9dba258defc8c21d703a96c30400956 (patch) | |
tree | 2cdc6a014533f356c912735e640a0d44cee53ae4 /src/game/Unit.cpp | |
parent | ea159d59bf9d872fdc3a5d0b3cf020bff996632d (diff) |
* Fix Hunters Mark, prevent target from going stealth/invis for caster of mark.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
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) |