* Fix Hunters Mark, prevent target from going stealth/invis for caster of mark.
--HG-- branch : trunk
This commit is contained in:
+7
-2
@@ -9951,9 +9951,9 @@ bool Unit::canDetectInvisibilityOf(Unit const* u) const
|
|||||||
{
|
{
|
||||||
if(m_invisibilityMask & u->m_invisibilityMask) // same group
|
if(m_invisibilityMask & u->m_invisibilityMask) // same group
|
||||||
return true;
|
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)
|
for(AuraList::const_iterator iter = auras.begin(); iter != auras.end(); ++iter)
|
||||||
if((*iter)->GetCasterGUID()==u->GetGUID())
|
if((*iter)->GetCasterGUID()==GetGUID())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if(uint32 mask = (m_detectInvisibilityMask & u->m_invisibilityMask))
|
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))
|
if(HasAuraType(SPELL_AURA_DETECT_STEALTH))
|
||||||
return true;
|
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)
|
//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;
|
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)
|
//Visible distance is modified by -Level Diff (every level diff = 1.0f in visible distance)
|
||||||
|
|||||||
Reference in New Issue
Block a user