Если над заагренным мобом подняться на высоту примерно в 15 ярдов, то агро должно сбрасыватся.
Код:
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index 8384823..0cc0ee7 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -1886,11 +1886,15 @@ bool Creature::IsOutOfThreatArea(Unit* pVictim) const
if(sMapStore.LookupEntry(GetMapId())->IsDungeon())
return false;
+ float heightOverCreature = pVictim->GetTerrain()->GetHeight(pVictim->GetPositionX(), pVictim->GetPositionY(), pVictim->GetPositionZ());
+ if (pVictim->GetPositionZ() > heightOverCreature + 15.0f)
+ return true;
+
float AttackDist = GetAttackDistance(pVictim);
float ThreatRadius = sWorld.getConfig(CONFIG_FLOAT_THREAT_RADIUS);
//Use AttackDistance in distance check if threat radius is lower. This prevents creature bounce in and out of combat every update tick.
- return !pVictim->IsWithinDist3d(m_combatStartX, m_combatStartY, m_combatStartZ,
+ return !pVictim->IsWithinDist2d(m_combatStartX, m_combatStartY,
ThreatRadius > AttackDist ? ThreatRadius : AttackDist);
}