示例#1
0
        public static bool IsPositionSafeForE(AIHeroClient target, LeagueSharp.Common.Spell spell)
        {
            var predPos = spell.GetPrediction(target).UnitPosition.LSTo2D();
            var myPos   = ObjectManager.Player.Position.LSTo2D();
            var newPos  = (target.Position.LSTo2D() - myPos);

            newPos.Normalize();

            var        checkPos     = predPos + newPos * (spell.Range - Vector2.Distance(predPos, myPos));
            Obj_Turret closestTower = null;

            foreach (var tower in ObjectManager.Get <Obj_Turret>()
                     .Where(tower => tower.IsValid && !tower.IsDead && Math.Abs(tower.Health) > float.Epsilon)
                     .Where(tower => Vector3.Distance(tower.Position, ObjectManager.Player.Position) < 1450))
            {
                closestTower = tower;
            }

            if (closestTower == null)
            {
                return(true);
            }

            if (Vector2.Distance(closestTower.Position.LSTo2D(), checkPos) <= 910)
            {
                return(false);
            }

            return(true);
        }
示例#2
0
        public static bool IsPositionSafe(Obj_AI_Hero target, Spell spell) // use underTurret and .Extend for this please
        {
            var predPos = spell.GetPrediction(target).UnitPosition.To2D();
            var myPos   = ObjectManager.Player.Position.To2D();
            var newPos  = (target.Position.To2D() - myPos);

            newPos.Normalize();

            var        checkPos     = predPos + newPos * (spell.Range - Vector2.Distance(predPos, myPos));
            Obj_Turret closestTower = null;

            foreach (
                var tower in
                ObjectManager.Get <Obj_Turret>().Where(tower => tower.IsValid && !tower.IsDead && Math.Abs(tower.Health) > float.Epsilon))
            {
                if (Vector3.Distance(tower.Position, ObjectManager.Player.Position) < 1450)
                {
                    closestTower = tower;
                }
            }

            if (closestTower == null)
            {
                return(true);
            }

            if (Vector2.Distance(closestTower.Position.To2D(), checkPos) <= 910)
            {
                return(false);
            }

            return(true);
        }
示例#3
0
文件: Program.cs 项目: xioa123/CN
        public static bool IsPositionSafe(Obj_AI_Base vTarget, Spell vSpell)
        {
            Vector2 predPos = vSpell.GetPrediction(vTarget).CastPosition.To2D();
            Vector2 myPos   = ObjectManager.Player.Position.To2D();
            Vector2 newPos  = (vTarget.Position.To2D() - myPos);

            newPos.Normalize();

            Vector2    checkPos     = predPos + newPos * (vSpell.Range - Vector2.Distance(predPos, myPos));
            Obj_Turret closestTower = null;

            foreach (
                Obj_Turret tower in
                ObjectManager.Get <Obj_Turret>()
                .Where(tower => tower.IsValid && !tower.IsDead && tower.Health != 0 && tower.IsEnemy))
            {
                if (Vector3.Distance(tower.Position, ObjectManager.Player.Position) < 1450)
                {
                    closestTower = tower;
                }
            }

            if (closestTower == null)
            {
                return(true);
            }

            if (Vector2.Distance(closestTower.Position.To2D(), checkPos) <= 910)
            {
                return(false);
            }

            return(true);
        }
示例#4
0
        public static bool isPositionSafe(Obj_AI_Hero target, Spell spell)
        {
            // if (Vector3.Distance(ObjectManager.Player.Position, target.Position) <= E.Range && Vector3.Distance(ObjectManager.Player.Position, target.Position) > 0)
            // {
            Vector2 predPos = spell.GetPrediction(target).Position.To2D();
            Vector2 myPos   = ObjectManager.Player.Position.To2D();
            Vector2 newPos  = (target.Position.To2D() - myPos);

            newPos.Normalize();

            Vector2    checkPos     = predPos + newPos * (spell.Range - Vector2.Distance(predPos, myPos));
            Obj_Turret closestTower = null;

            foreach (var tower in ObjectManager.Get <Obj_Turret>().Where(tower => tower.IsValid && !tower.IsDead && tower.Health != 0))
            {
                if (Vector3.Distance(tower.Position, ObjectManager.Player.Position) < 1450)
                {
                    closestTower = tower;
                }
            }

            if (closestTower == null)
            {
                // No towers in range
                return(true);
            }

            if (Vector2.Distance(closestTower.Position.To2D(), checkPos) <= 910)
            {
                // Within tower range
                return(false);
            }
            //}

            return(true);
        }