コード例 #1
0
ファイル: Ezreal.cs プロジェクト: wade1990/PortAIO
        protected override void JungleClear()
        {
            var useQ = Menu.Item(Menu.Name + ".jungle-clear.q").GetValue <bool>() && Q.IsReady() && !Player.Spellbook.IsAutoAttacking &&
                       ResourceManager.Check("jungle-clear");

            if (useQ)
            {
                Casting.Farm(
                    Q,
                    MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth),
                    1);
            }
        }
コード例 #2
0
        protected override void OnPostUpdate()
        {
            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit && !Player.Spellbook.IsAutoAttacking &&
                Menu.Item(Menu.Name + ".lasthit.q").GetValue <bool>() && Q.IsReady())
            {
                var m =
                    MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly)
                    .FirstOrDefault(
                        e =>
                        e.HealthPercent <= 75 &&
                        (_lastAaMinion == null || e.NetworkId != _lastAaMinion.NetworkId ||
                         Game.Time > _lastAaMinionEndTime) &&
                        HealthPrediction.GetHealthPrediction(e, (int)(Q.Delay * 1000f)) < Q.GetDamage(e));
                if (m != null)
                {
                    Casting.TargetSkill(m, Q);
                }
            }

            if (Ultimate.IsActive(UltimateModeType.Assisted) && R.IsReady())
            {
                if (Ultimate.ShouldMove(UltimateModeType.Assisted))
                {
                    Orbwalking.MoveTo(Game.CursorPos);
                }
                var target = TargetSelector.GetTarget(R);
                if (target != null && !RLogic(UltimateModeType.Assisted, target))
                {
                    RLogicSingle(UltimateModeType.Assisted);
                }
            }

            if (Ultimate.IsActive(UltimateModeType.Auto) && R.IsReady())
            {
                var target = TargetSelector.GetTarget(R);
                if (target != null && !RLogic(UltimateModeType.Auto, target))
                {
                    RLogicSingle(UltimateModeType.Auto);
                }
            }

            if (Menu.Item(Menu.Name + ".miscellaneous.e-auto").GetValue <bool>() && E.IsReady() &&
                ResourceManager.Check("auto-e") && !Player.IsRecalling() && !Player.InFountain())
            {
                var buff = GetEBuff();
                if (buff == null || buff.EndTime - Game.Time <= Game.Ping / 2000f + 0.5f)
                {
                    E.Cast();
                }
            }
        }
コード例 #3
0
ファイル: Sivir.cs プロジェクト: jayblah/Lizzaran
        protected override void LaneClear()
        {
            if (!ResourceManager.Check("lane-clear-q"))
            {
                return;
            }

            var useQ = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady();

            if (useQ)
            {
                Casting.Farm(
                    Q, MinionManager.GetMinions(Q.Range + Q.Width),
                    Menu.Item(Menu.Name + ".lane-clear.q-min").GetValue <Slider>().Value);
            }
        }
コード例 #4
0
        protected override void LaneClear()
        {
            var q = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady();
            var e = Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady() &&
                    ResourceManager.Check("lane-clear-e");

            if (q)
            {
                Casting.Farm(Q, MinionManager.GetMinions(Q.Range), 1);
            }
            if (e)
            {
                Casting.FarmSelfAoe(
                    E, MinionManager.GetMinions(E.Range),
                    Menu.Item(Menu.Name + ".lane-clear.e-min").GetValue <Slider>().Value);
            }
        }
コード例 #5
0
ファイル: Sivir.cs プロジェクト: jayblah/Lizzaran
        protected override void JungleClear()
        {
            if (!ResourceManager.Check("lane-clear-q") && !ResourceManager.IgnoreJungle("lane-clear-q"))
            {
                return;
            }

            var useQ = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady();

            if (useQ)
            {
                Casting.Farm(
                    Q,
                    MinionManager.GetMinions(
                        Q.Range + Q.Width, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth), 1);
            }
        }
コード例 #6
0
ファイル: MissFortune.cs プロジェクト: Challangerr/scripts
 private void OnOrbwalkingAfterAttack(AttackableUnit unit, AttackableUnit target)
 {
     try
     {
         if (unit.IsMe)
         {
             var useW = false;
             if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
             {
                 var minion = target as Obj_AI_Minion;
                 if (minion != null)
                 {
                     if (target.Team == GameObjectTeam.Neutral)
                     {
                         useW = Menu.Item(Menu.Name + ".jungle-clear.w").GetValue <bool>() &&
                                ResourceManager.Check("jungle-clear");
                     }
                     else
                     {
                         useW = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>() &&
                                ResourceManager.Check("lane-clear") &&
                                MinionManager.GetMinions(W.Range).Count >=
                                Menu.Item(Menu.Name + ".lane-clear.w-min").GetValue <Slider>().Value;
                     }
                 }
             }
             if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
             {
                 useW = target is Obj_AI_Hero && Menu.Item(Menu.Name + ".harass.w").GetValue <bool>();
             }
             if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
             {
                 useW = target is Obj_AI_Hero && Menu.Item(Menu.Name + ".combo.w").GetValue <bool>();
             }
             if (useW)
             {
                 W.Cast();
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
コード例 #7
0
ファイル: Vladimir.cs プロジェクト: jayblah/Lizzaran
        protected override void JungleClear()
        {
            var q = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady();
            var e = Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady();

            if (q)
            {
                Casting.Farm(
                    Q,
                    MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth),
                    1);
            }
            if (e)
            {
                Casting.FarmSelfAoe(
                    E,
                    MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth),
                    1);
            }
        }
コード例 #8
0
        /// <summary>
        /// Lane Clear
        /// </summary>
        public void LaneClear()
        {
            try
            {
                var q    = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady() && ResourceManager.Check("lane-clear");
                var qMin = Menu.Item(Menu.Name + ".lane-clear.q-min").GetValue <Slider>().Value;
                var w    = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>() && W.IsReady();

                if (q)
                {
                    var minions = MinionManager.GetMinions(Q.Range * 1.2f);
                    var m       = minions.OrderBy(x => x.Distance(Player)).FirstOrDefault();
                    if (m == null)
                    {
                        return;
                    }
                    var best = BestQPosition(null, minions, HitChance.High);
                    if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= qMin)
                    {
                        Q.Cast(best.Item2);
                    }
                }
                if (w)
                {
                    var minions = MinionManager.GetMinions(W.Range * 1.2f);
                    if (minions.Any())
                    {
                        Cards.Select(!ResourceManager.Check("lane-clear-blue") ? CardColor.Blue : CardColor.Red);
                    }
                    else if (GameObjects.EnemyTurrets.Any(t => t.IsValid && !t.IsDead && t.Health > 1 && t.Distance(Player) < W.Range))
                    {
                        Cards.Select(CardColor.Blue);
                    }
                }
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }
コード例 #9
0
        protected override void LaneClear()
        {
            var q    = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>();
            var qMin = Menu.Item(Menu.Name + ".lane-clear.q-min").GetValue <Slider>().Value;
            var w    = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>();

            if (ManaManager.Check("lane-clear") && q && Q.IsReady())
            {
                var minions = MinionManager.GetMinions(
                    Q.Range * 1.2f, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth);
                var m = minions.OrderBy(x => x.Distance(Player)).FirstOrDefault();
                if (m == null)
                {
                    return;
                }
                if (m.Team != GameObjectTeam.Neutral)
                {
                    minions.RemoveAll(x => x.Team == GameObjectTeam.Neutral);
                }
                else
                {
                    qMin = 1;
                }
                var best = BestQPosition(null, minions, HitChance.High);
                if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= qMin)
                {
                    Q.Cast(best.Item2);
                }
            }
            if (w && W.IsReady())
            {
                var minions = MinionManager.GetMinions(
                    W.Range * 1.2f, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth);
                if (minions.Any())
                {
                    Cards.Select(!ManaManager.Check("lane-clear-blue") ? CardColor.Blue : CardColor.Red);
                }
            }
        }
コード例 #10
0
        private Obj_AI_Base BestRedMinion()
        {
            var minions =
                MinionManager.GetMinions(float.MaxValue, MinionTypes.All, MinionTeam.NotAlly)
                .Where(Orbwalking.InAutoAttackRange)
                .ToList();
            var possibilities =
                ListExtensions.ProduceEnumeration(minions.Select(p => p.ServerPosition.To2D()).ToList())
                .Where(p => p.Count > 0 && p.Count < 8)
                .ToList();
            var hits   = 0;
            var center = Vector2.Zero;
            var radius = float.MaxValue;

            foreach (var possibility in possibilities)
            {
                var mec = MEC.GetMec(possibility);
                if (mec.Radius < W.Width * 1.5f)
                {
                    if (possibility.Count > hits || possibility.Count == hits && mec.Radius < radius)
                    {
                        hits   = possibility.Count;
                        radius = mec.Radius;
                        center = mec.Center;
                        if (hits == minions.Count)
                        {
                            break;
                        }
                    }
                }
            }

            if (hits > 0 && !center.Equals(Vector2.Zero))
            {
                return(minions.OrderBy(m => m.Position.Distance(center.To3D())).FirstOrDefault());
            }

            return(null);
        }
コード例 #11
0
 protected override void OnPreUpdate()
 {
     if ((Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit && ManaManager.Check("lasthit")) &&
         E.IsReady())
     {
         var ePoison = Menu.Item(Menu.Name + ".lasthit.e-poison").GetValue <bool>();
         var eHit    = Menu.Item(Menu.Name + ".lasthit.e").GetValue <bool>();
         if (eHit || ePoison)
         {
             var m =
                 MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly)
                 .FirstOrDefault(
                     e =>
                     e.Health < E.GetDamage(e) - 5 &&
                     (ePoison && GetPoisonBuffEndTime(e) > E.ArrivalTime(e) || eHit));
             if (m != null)
             {
                 Casting.TargetSkill(m, E);
             }
         }
     }
 }
コード例 #12
0
ファイル: TwistedFate.cs プロジェクト: jayblah/Lizzaran
 protected override void OnPostUpdate()
 {
     if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear ||
         Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)
     {
         if (Cards.Has(CardColor.Red))
         {
             var range   = Player.AttackRange + Player.BoundingRadius * 1.5f;
             var minions = MinionManager.GetMinions(range, MinionTypes.All, MinionTeam.NotAlly);
             var pred    = MinionManager.GetBestCircularFarmLocation(
                 minions.Select(m => m.Position.To2D()).ToList(), 500, range);
             var target = minions.OrderBy(m => m.Distance(pred.Position)).FirstOrDefault();
             if (target != null)
             {
                 Orbwalker.ForceTarget(target);
             }
         }
     }
     if (!Cards.ShouldWait && Cards.Status != SelectStatus.Selecting && Cards.Status != SelectStatus.Selected)
     {
         Orbwalker.ForceTarget(null);
     }
     if (Cards.Status != SelectStatus.Selected)
     {
         if (Menu.Item(Menu.Name + ".manual.blue").GetValue <KeyBind>().Active)
         {
             Cards.Select(CardColor.Blue);
         }
         if (Menu.Item(Menu.Name + ".manual.red").GetValue <KeyBind>().Active)
         {
             Cards.Select(CardColor.Red);
         }
         if (Menu.Item(Menu.Name + ".manual.gold").GetValue <KeyBind>().Active)
         {
             Cards.Select(CardColor.Gold);
         }
     }
 }
コード例 #13
0
        protected override void JungleClear()
        {
            if (!ResourceManager.Check("jungle-clear"))
            {
                return;
            }

            var useW = Menu.Item(Menu.Name + ".jungle-clear.w").GetValue <bool>() && W.IsReady();
            var useE = Menu.Item(Menu.Name + ".jungle-clear.e").GetValue <bool>() && E.IsReady();
            var useR = Menu.Item(Menu.Name + ".jungle-clear.r").GetValue <bool>() && R.IsReady() &&
                       Menu.Item(Menu.Name + ".miscellaneous.r-max").GetValue <Slider>().Value > GetRBuffCount();

            if (useW)
            {
                Casting.FarmSelfAoe(
                    W,
                    MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth),
                    1, Player.AttackRange + Player.BoundingRadius * 1.25f + 20 * W.Level);
            }
            if (ShouldUseSpells())
            {
                if (useE)
                {
                    Casting.Farm(
                        E,
                        MinionManager.GetMinions(
                            E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth), 1);
                }
                if (useR)
                {
                    Casting.Farm(
                        R,
                        MinionManager.GetMinions(
                            R.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth), 1);
                }
            }
        }
コード例 #14
0
        /// <summary>
        /// Jungle Clear
        /// </summary>
        public void JungleClear()
        {
            try
            {
                var q = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady() && (ResourceManager.Check("lane-clear") || ResourceManager.IgnoreJungle("lane-clear"));
                var w = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>() && W.IsReady();

                if (q)
                {
                    var minions = MinionManager.GetMinions(Q.Range * 1.2f, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);
                    var m       = minions.OrderBy(x => x.Distance(Player)).FirstOrDefault();
                    if (m == null)
                    {
                        return;
                    }
                    var best = BestQPosition(null, minions, HitChance.High);
                    if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= 1)
                    {
                        Q.Cast(best.Item2);
                    }
                }
                if (w)
                {
                    var minions = MinionManager.GetMinions(W.Range * 1.2f, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);
                    if (minions.Any())
                    {
                        Cards.Select(ResourceManager.Check("lane-clear-blue") || ResourceManager.IgnoreJungle("lane-clear-blue")
                                ? CardColor.Red
                                : CardColor.Blue);
                    }
                }
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }
コード例 #15
0
ファイル: Kalista.cs プロジェクト: batuta95/LeagueSharp-Dev
        private void QCollisionCheck(Obj_AI_Hero target)
        {
            var minions = MinionManager.GetMinions(Q.Range);

            if (minions.Count < 1 || Player.IsWindingUp || Player.IsDashing())
            {
                return;
            }

            foreach (var minion in minions)
            {
                var difference = Player.Distance(target) - Player.Distance(minion);
                for (var i = 0; i < difference; i += (int)target.BoundingRadius)
                {
                    var point = minion.ServerPosition.To2D().Extend(Player.ServerPosition.To2D(), -i).To3D();
                    var time  = Q.Delay + (ObjectManager.Player.Distance(point) / Q.Speed * 1000f);

                    var prediction = Prediction.GetPrediction(target, time);

                    var collision = Q.GetCollision(point.To2D(), new List <Vector2> {
                        prediction.UnitPosition.To2D()
                    });

                    if (collision.Any(x => x.Health > Q.GetDamage(x)))
                    {
                        return;
                    }

                    if (prediction.UnitPosition.Distance(point) <= Q.Width &&
                        !minions.Any(m => m.Distance(point) <= Q.Width))
                    {
                        Q.Cast(minion);
                    }
                }
            }
        }
コード例 #16
0
        private static void OnCorePostUpdate(EventArgs args)
        {
            try
            {
                if (_menu == null || !_menu.Item(_menu.Name + ".enabled").GetValue <bool>())
                {
                    return;
                }

                if (Environment.TickCount - _lastTick >= _interval)
                {
                    _lastTick = Environment.TickCount;

                    if (_menu.Item(_menu.Name + ".fountain").GetValue <bool>() && !ObjectManager.Player.InFountain())
                    {
                        return;
                    }

                    if (ObjectManager.Player.ManaPercent >=
                        _menu.Item(_menu.Name + ".min-mana").GetValue <Slider>().Value)
                    {
                        var tearSlot = ObjectManager.Player.GetSpellSlot("TearsDummySpell");
                        if (tearSlot != SpellSlot.Unknown &&
                            Game.Time > ObjectManager.Player.GetSpell(tearSlot).CooldownExpires&&
                            ObjectManager.Player.CountEnemiesInRange(
                                _menu.Item(_menu.Name + ".min-distance").GetValue <Slider>().Value) <= 0)
                        {
                            var spell =
                                _spells.FirstOrDefault(
                                    s => s.IsReady() && _menu.Item(_menu.Name + "." + s.Slot).GetValue <bool>());
                            if (spell != null)
                            {
                                if (spell.IsSkillshot)
                                {
                                    var target =
                                        GameObjects.EnemyHeroes.Where(e => e.IsValidTarget(spell.Range))
                                        .Concat(MinionManager.GetMinions(spell.Range))
                                        .FirstOrDefault();
                                    if (target != null)
                                    {
                                        spell.Cast(target.Position);
                                    }
                                    else
                                    {
                                        var position = ObjectManager.Player.Position.Extend(
                                            Game.CursorPos, Math.Min(1000, spell.Range * 0.8f + Random.Next(1, 26)));
                                        if (position.IsValid())
                                        {
                                            spell.Cast(position);
                                        }
                                    }
                                }
                                else if (spell.Range > 0f)
                                {
                                    if (spell.Speed.Equals(default(float)))
                                    {
                                        spell.Cast();
                                    }
                                    else
                                    {
                                        var target =
                                            GameObjects.EnemyHeroes.Where(e => e.IsValidTarget(spell.Range))
                                            .Concat(MinionManager.GetMinions(spell.Range))
                                            .FirstOrDefault();
                                        if (target != null)
                                        {
                                            spell.Cast(target);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }
コード例 #17
0
ファイル: MissFortune.cs プロジェクト: Challangerr/scripts
        private void QLogic()
        {
            try
            {
                var target = TargetSelector.GetTarget(Q.Range);
                if (target != null)
                {
                    Q.CastOnUnit(target);
                }
                else if (Menu.Item(Menu.Name + ".miscellaneous.extended-q").GetValue <bool>())
                {
                    target = TargetSelector.GetTarget(Q1);
                    if (target != null)
                    {
                        var heroPositions = (from t in GameObjects.EnemyHeroes
                                             where t.IsValidTarget(Q1.Range)
                                             let prediction = Q.GetPrediction(t)
                                                              select new CPrediction.Position(t, prediction.UnitPosition)).Where(
                            t => t.UnitPosition.Distance(Player.Position) < Q1.Range).ToList();
                        if (heroPositions.Any())
                        {
                            var minions = MinionManager.GetMinions(
                                Q1.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.None);

                            if (minions.Any(m => m.IsMoving) && !heroPositions.Any(h => HasPassiveDebuff(h.Hero)))
                            {
                                return;
                            }

                            var outerMinions   = minions.Where(m => m.Distance(Player) > Q.Range).ToList();
                            var innerPositions = minions.Where(m => m.Distance(Player) < Q.Range).ToList();
                            foreach (var minion in innerPositions)
                            {
                                var lMinion  = minion;
                                var coneBuff = new Geometry.Polygon.Sector(
                                    minion.Position,
                                    Player.Position.Extend(minion.Position, Player.Distance(minion) + Q.Range * 0.5f),
                                    (float)(40 * Math.PI / 180), Q1.Range - Q.Range);
                                var coneNormal = new Geometry.Polygon.Sector(
                                    minion.Position,
                                    Player.Position.Extend(minion.Position, Player.Distance(minion) + Q.Range * 0.5f),
                                    (float)(60 * Math.PI / 180), Q1.Range - Q.Range);
                                foreach (var enemy in
                                         heroPositions.Where(
                                             m => m.UnitPosition.Distance(lMinion.Position) < Q1.Range - Q.Range))
                                {
                                    if (coneBuff.IsInside(enemy.Hero) && HasPassiveDebuff(enemy.Hero))
                                    {
                                        Q.CastOnUnit(minion);
                                        return;
                                    }
                                    if (coneNormal.IsInside(enemy.UnitPosition))
                                    {
                                        var insideCone =
                                            outerMinions.Where(m => coneNormal.IsInside(m.Position)).ToList();
                                        if (!insideCone.Any() ||
                                            enemy.UnitPosition.Distance(minion.Position) <
                                            insideCone.Select(
                                                m => m.Position.Distance(minion.Position) - m.BoundingRadius)
                                            .DefaultIfEmpty(float.MaxValue)
                                            .Min())
                                        {
                                            Q.CastOnUnit(minion);
                                            return;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }
コード例 #18
0
        private void OnOrbwalkingAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            try
            {
                if (unit.IsMe && W.IsReady())
                {
                    var useW        = false;
                    var wMin        = 0;
                    var laneclear   = false;
                    var jungleClear = false;
                    switch (Orbwalker.ActiveMode)
                    {
                    case Orbwalking.OrbwalkingMode.Combo:
                        useW = Menu.Item(Menu.Name + ".combo.w").GetValue <bool>();
                        break;

                    case Orbwalking.OrbwalkingMode.Mixed:
                        useW = Menu.Item(Menu.Name + ".harass.w").GetValue <bool>();
                        break;

                    case Orbwalking.OrbwalkingMode.LaneClear:
                        if (target.Team == GameObjectTeam.Neutral)
                        {
                            useW = Menu.Item(Menu.Name + ".jungle-clear.w").GetValue <bool>() &&
                                   ResourceManager.Check("jungle-clear-w");
                            wMin        = 1;
                            jungleClear = true;
                        }
                        else
                        {
                            useW = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>() &&
                                   ResourceManager.Check("lane-clear-w");
                            wMin      = Menu.Item(Menu.Name + ".lane-clear.w-min").GetValue <Slider>().Value;
                            laneclear = true;
                        }
                        break;
                    }
                    if (useW)
                    {
                        var range   = W.Range + Player.BoundingRadius * 2f;
                        var targets = laneclear || jungleClear
                            ? MinionManager.GetMinions(range + 450, MinionTypes.All, MinionTeam.NotAlly)
                            : GameObjects.EnemyHeroes.Where(e => e.IsValidTarget(range + 450))
                                      .Cast <Obj_AI_Base>()
                                      .ToList();

                        if (targets.Count >= wMin && targets.Any(Orbwalking.InAutoAttackRange) &&
                            (wMin == 0 ||
                             targets.Any(
                                 t =>
                                 Orbwalking.InAutoAttackRange(t) &&
                                 targets.Any(t2 => t2.NetworkId != t.NetworkId && t2.Distance(t) <= 450))))
                        {
                            W.Cast();
                            Orbwalking.ResetAutoAttackTimer();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }
コード例 #19
0
ファイル: Cassiopeia.cs プロジェクト: Challangerr/scripts
        protected override void LaneClear()
        {
            if (!ResourceManager.Check("lane-clear"))
            {
                return;
            }

            var useQ = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady();
            var useW = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>() && W.IsReady();
            var useE = Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady() &&
                       DelayManager.Check("e-delay", _lastECast);

            if (useE)
            {
                var minion =
                    MinionManager.GetMinions(Player.ServerPosition, E.Range)
                    .FirstOrDefault(
                        e =>
                        GetPoisonBuffEndTime(e) > E.ArrivalTime(e) &&
                        (e.Health > E.GetDamage(e) * 2 || e.Health < E.GetDamage(e) - 5));
                if (minion != null)
                {
                    _lastEEndTime = Game.Time + E.ArrivalTime(minion) + 0.1f;
                    _lastECast    = Environment.TickCount;
                    Casting.TargetSkill(minion, E);
                }
            }

            if (useQ || useW)
            {
                var minions =
                    MinionManager.GetMinions(Player.ServerPosition, Q.Range + Q.Width)
                    .Where(e => GetPoisonBuffEndTime(e) < Q.Delay * 1.1)
                    .ToList();
                if (minions.Any())
                {
                    if (useQ)
                    {
                        var prediction = Q.GetCircularFarmLocation(minions, Q.Width + 30);
                        if (prediction.MinionsHit > 1 && Game.Time > _lastPoisonClearDelay ||
                            _lastPoisonClearPosition.Distance(prediction.Position) > W.Width * 1.1f)
                        {
                            var mP =
                                minions.Count(
                                    p =>
                                    p.Distance(prediction.Position) < Q.Width + 30 &&
                                    GetPoisonBuffEndTime(p) >= 0.5f);
                            if (prediction.MinionsHit - mP > 1)
                            {
                                _lastPoisonClearDelay    = Game.Time + Q.Delay + 1;
                                _lastPoisonClearPosition = prediction.Position;
                                Q.Cast(prediction.Position);
                            }
                        }
                    }
                    if (useW)
                    {
                        var prediction = W.GetCircularFarmLocation(minions, W.Width + 50);
                        if (prediction.MinionsHit > 2 &&
                            (Game.Time > _lastPoisonClearDelay ||
                             _lastPoisonClearPosition.Distance(prediction.Position) > Q.Width * 1.1f))
                        {
                            var mP =
                                minions.Count(
                                    p =>
                                    p.Distance(prediction.Position) < W.Width + 50 &&
                                    GetPoisonBuffEndTime(p) >= 0.5f);
                            if (prediction.MinionsHit - mP > 1)
                            {
                                _lastPoisonClearDelay    = Game.Time + W.Delay + 2;
                                _lastPoisonClearPosition = prediction.Position;
                                W.Cast(prediction.Position);
                            }
                        }
                    }
                }
            }
        }
コード例 #20
0
ファイル: Vladimir.cs プロジェクト: 47110572/LeagueSharp-Dev
        protected override void OnPostUpdate()
        {
            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit &&
                Menu.Item(Menu.Name + ".lasthit.q").GetValue <bool>() && Q.IsReady())
            {
                var m =
                    MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly)
                    .FirstOrDefault(e => Q.IsKillable(e));
                if (m != null)
                {
                    Casting.TargetSkill(m, Q);
                }
            }

            if (UltimateManager.Assisted() && R.IsReady())
            {
                if (Menu.Item(Menu.Name + ".ultimate.assisted.move-cursor").GetValue <bool>())
                {
                    Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius);
                }
                var target = TargetSelector.GetTarget(R);
                if (target != null &&
                    !RLogic(
                        target, Menu.Item(Menu.Name + ".ultimate.assisted.min").GetValue <Slider>().Value,
                        Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(),
                        Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady()))
                {
                    if (Menu.Item(Menu.Name + ".ultimate.assisted.single").GetValue <bool>())
                    {
                        RLogicSingle(
                            Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(),
                            Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady());
                    }
                }
            }

            if (UltimateManager.Auto() && R.IsReady())
            {
                var target = TargetSelector.GetTarget(R);
                if (target != null &&
                    !RLogic(
                        target, Menu.Item(Menu.Name + ".ultimate.auto.min").GetValue <Slider>().Value,
                        Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(),
                        Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady(), UltimateModeType.Auto))
                {
                    if (Menu.Item(Menu.Name + ".ultimate.auto.single").GetValue <bool>())
                    {
                        RLogicSingle(
                            Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(),
                            Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady());
                    }
                }
            }

            if (Menu.Item(Menu.Name + ".miscellaneous.e-auto").GetValue <bool>() && E.IsReady() &&
                HealthManager.Check("auto-e") && !Player.IsRecalling() && !Player.InFountain())
            {
                var buff = GetEBuff();
                if (buff == null || (buff.EndTime - Game.Time) <= Game.Ping / 2000f + 0.5f)
                {
                    E.Cast();
                }
            }
        }
コード例 #21
0
ファイル: Kalista.cs プロジェクト: 47110572/LeagueSharp-Dev
        protected override void LaneClear()
        {
            if (!ManaManager.Check("lane-clear"))
            {
                return;
            }

            var useQ = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady();
            var useE = Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady();

            if (!useQ && !useE)
            {
                return;
            }

            var minQ1   = Menu.Item(Menu.Name + ".lane-clear.q-min-1").GetValue <Slider>().Value;
            var minQ2   = Menu.Item(Menu.Name + ".lane-clear.q-min-2").GetValue <Slider>().Value;
            var minQ3   = Menu.Item(Menu.Name + ".lane-clear.q-min-3").GetValue <Slider>().Value;
            var minE    = ItemData.Runaans_Hurricane_Ranged_Only.GetItem().IsOwned(Player) ? 3 : 2;
            var minQ    = 0;
            var minions = MinionManager.GetMinions(
                Q.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth);

            if (minions.Count == 0)
            {
                return;
            }
            if (minions.Count >= 10)
            {
                minQ = minQ3;
            }
            else if (minions.Count <= 7)
            {
                minQ = minQ2;
            }
            else if (minions.Count <= 4)
            {
                minQ = minQ1;
            }
            if (useQ && minions.Count >= minQ && !Player.IsWindingUp && !Player.IsDashing())
            {
                foreach (var minion in minions.Where(x => x.Health <= Q.GetDamage(x)))
                {
                    var killcount = 0;

                    foreach (var colminion in
                             QGetCollisions(Player, Player.ServerPosition.Extend(minion.ServerPosition, Q.Range)))
                    {
                        if (colminion.Health <= Q.GetDamage(colminion))
                        {
                            killcount++;
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (killcount >= minQ)
                    {
                        Q.Cast(minion.ServerPosition);
                        break;
                    }
                }
            }
            if (useE)
            {
                var killable = minions.Where(m => E.IsInRange(m) && Rend.IsKillable(m, false)).ToList();
                if (killable.Count >= minE)
                {
                    E.Cast();
                }
            }
        }
コード例 #22
0
        protected override void LaneClear()
        {
            var q = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady();
            var w = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>() && W.IsReady();

            if (Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady() &&
                ManaManager.Check("lane-clear") && DelayManager.Check("e-delay", _lastECast))
            {
                var minion =
                    MinionManager.GetMinions(
                        Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth)
                    .Where(
                        e =>
                        GetPoisonBuffEndTime(e) > E.ArrivalTime(e) &&
                        (e.Team == GameObjectTeam.Neutral ||
                         (e.Health > E.GetDamage(e) * 2 || e.Health < E.GetDamage(e) - 5)))
                    .OrderByDescending(
                        m => m.CharData.BaseSkinName.Contains("MinionSiege", StringComparison.OrdinalIgnoreCase))
                    .FirstOrDefault();
                if (minion != null)
                {
                    _lastEEndTime = Game.Time + E.ArrivalTime(minion) + 0.1f;
                    _lastECast    = Environment.TickCount;
                    Casting.TargetSkill(minion, E);
                }
            }

            if (q || w)
            {
                var minions =
                    MinionManager.GetMinions(Player.ServerPosition, Q.Range + Q.Width)
                    .Where(e => GetPoisonBuffEndTime(e) < Q.Delay * 1.1)
                    .OrderByDescending(
                        m => m.CharData.BaseSkinName.Contains("MinionSiege", StringComparison.OrdinalIgnoreCase))
                    .ToList();
                if (minions.Any())
                {
                    if (q)
                    {
                        var prediction = Q.GetCircularFarmLocation(minions, Q.Width + 30);
                        if (prediction.MinionsHit > 1 && _lastPoisonClearDelay < Game.Time)
                        {
                            _lastPoisonClearDelay = Game.Time + Q.Delay;
                            Q.Cast(prediction.Position);
                        }
                    }
                    if (w)
                    {
                        var prediction = W.GetCircularFarmLocation(minions, W.Width + 50);
                        if (prediction.MinionsHit > 2 && _lastPoisonClearDelay < Game.Time)
                        {
                            _lastPoisonClearDelay = Game.Time + W.Delay;
                            W.Cast(prediction.Position);
                        }
                    }
                }
                else
                {
                    var creep =
                        MinionManager.GetMinions(
                            Player.ServerPosition, Q.Range + Q.Width, MinionTypes.All, MinionTeam.Neutral,
                            MinionOrderTypes.MaxHealth).FirstOrDefault(e => GetPoisonBuffEndTime(e) < Q.Delay * 1.1);
                    if (creep != null)
                    {
                        if (q)
                        {
                            Q.Cast(creep);
                        }
                        if (w)
                        {
                            W.Cast(creep);
                        }
                    }
                }
            }
        }