public static Vector3 IsSafe(AIHeroClient target, Vector3 vec, bool checkTarget = true) { if (Program.DontSafeCheck) { return(vec); } if (checkTarget) { if (target.ServerPosition.LSTo2D().LSDistance(vec) <= target.AttackRange) { if (vec.CountEnemiesInRange(1000) > 1) { return(Vector3.Zero); } if (target.ServerPosition.LSTo2D().LSDistance(vec) <= target.AttackRange / 2f) { return (SCommon.Maths.Geometry.Deviation(ObjectManager.Player.ServerPosition.LSTo2D(), target.ServerPosition.LSTo2D(), 60).To3D()); } } if (((Program.DontQIntoEnemies || target.IsMelee) && HeroManager.Enemies.Any( p => p.ServerPosition.LSTo2D().LSDistance(vec) <= p.AttackRange + ObjectManager.Player.BoundingRadius + (p.IsMelee ? 100 : 0))) || Utility.UnderTurret(vec, true)) { return(Vector3.Zero); } } if ( HeroManager.Enemies.Any( p => p.NetworkId != target.NetworkId && p.ServerPosition.LSTo2D().LSDistance(vec) <= p.AttackRange + (p.IsMelee ? 50 : 0)) || Utility.UnderTurret(vec, true)) { return(Vector3.Zero); } return(vec); }