Пример #1
0
        public override void Execute()
        {
            if (!Config.Modes.LC.UseQ)
            {
                return;
            }


            LastHit(Q1);

            if (EntityManager.MinionsAndMonsters.CombinedAttackable.Any(m => m.Distance(Player.Instance) < Q1.Range && m.Health <= 2 * Player.Instance.GetSpellDamage(m, SpellSlot.Q)))
            {
                return;
            }
            //Logger.Debug("Hi, I'm trying to lane clear");
            Obj_AI_Minion laneClear =
                EntityManager.MinionsAndMonsters.EnemyMinions.FirstOrDefault(
                    m => m.Health > 2.5 * Player.Instance.GetSpellDamage(m, SpellSlot.Q));

            if (laneClear == null || !laneClear.IsValid || laneClear.IsDead)
            {
                return;
            }
            {
                if (Q1.GetPrediction(laneClear).HitChancePercent > 25)
                {
                    Q1.Cast(laneClear);
                }
            }
        }
Пример #2
0
        private void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
        {
            if (args.Slot == SpellSlot.R && !Config[Player.CharacterName]["RConfig"].GetValue <MenuKeyBind>("smartR").Active)
            {
                var t = args.Target as AIHeroClient;
                if (t != null && t.Health - OktwCommon.GetIncomingDamage(t) > R.GetDamage(t) * 2.5)
                {
                    if (E.IsReady() && Player.Mana > RMANA + EMANA)
                    {
                        E.CastOnUnit(t);
                        args.Process = false;
                        return;
                    }

                    if (W.IsReady() && Player.Mana > RMANA + WMANA)
                    {
                        W.Cast(t.Position);
                        args.Process = false;
                        return;
                    }

                    if (Q.IsReady() && t.IsValidTarget(Q.Range) && Player.Mana > RMANA + QMANA)
                    {
                        Q1.Cast(t);
                        args.Process = false;
                        return;
                    }
                }
                if (R.IsReady() && t.IsValidTarget())
                {
                    Rtime = Game.Time;
                }
            }
        }
Пример #3
0
        private void Jungle()
        {
            if (Program.LaneClear && Player.Mana > RMANA + WMANA + WMANA)
            {
                var mobs = Cache.GetMinions(Player.ServerPosition, 700, MinionTeam.Neutral);
                if (mobs.Count > 0)
                {
                    var mob = mobs[0];
                    if (Range)
                    {
                        if (Q.IsReady() && Config.Item("jungleQ", true).GetValue <bool>())
                        {
                            Q.Cast(mob.ServerPosition);
                            return;
                        }
                        if (W.IsReady() && Config.Item("jungleE", true).GetValue <bool>())
                        {
                            if (SebbyLib.Orbwalking.InAutoAttackRange(mob))
                            {
                                W.Cast();
                            }
                            return;
                        }
                        if (Config.Item("jungleR", true).GetValue <bool>())
                        {
                            R.Cast();
                        }
                    }
                    else
                    {
                        if (Q1.IsReady() && Config.Item("jungleQm", true).GetValue <bool>() && mob.IsValidTarget(Q1.Range))
                        {
                            Q1.Cast(mob);
                            return;
                        }

                        if (W1.IsReady() && Config.Item("jungleWm", true).GetValue <bool>())
                        {
                            if (mob.IsValidTarget(300))
                            {
                                W.Cast();
                            }
                            return;
                        }
                        if (E1.IsReady() && Config.Item("jungleEm", true).GetValue <bool>() && mob.IsValidTarget(E1.Range))
                        {
                            if (mob.IsValidTarget(E1.Range))
                            {
                                E1.Cast(mob);
                            }
                            return;
                        }
                        if (Config.Item("jungleR", true).GetValue <bool>())
                        {
                            R.Cast();
                        }
                    }
                }
            }
        }
Пример #4
0
 private void Jungle()
 {
     if (Program.LaneClear && Player.Mana > RMANA + QMANA)
     {
         var mobs = Cache.GetMinions(Player.ServerPosition, 650, MinionTeam.Neutral);
         if (mobs.Count > 0)
         {
             var mob = mobs[0];
             if (Q1.IsReady() && Config.Item("jungleQ", true).GetValue <bool>())
             {
                 Q1.Cast(mob.ServerPosition);
                 return;
             }
             else if (E.IsReady() && Config.Item("jungleE", true).GetValue <bool>())
             {
                 E.Cast(mob.ServerPosition);
                 return;
             }
             else if (W.IsReady() && Config.Item("jungleW", true).GetValue <bool>())
             {
                 W.Cast();
                 return;
             }
         }
     }
 }
Пример #5
0
        /// <summary>
        ///     The cast qe hammer.
        /// </summary>
        private static void CastQEHammer()
        {
            var Enemies = GameObjects.EnemyHeroes.Where(x => (x != null) && x.IsValidTarget());

            foreach (var Enemy in
                     Enemies.Where(x => x.IsValidTarget(E1.Range) && (Q1.GetDamage(x) + HammerEDmg(x) > x.Health)))
            {
                if (RangeForm())
                {
                    if (R.IsReady())
                    {
                        R.Cast();
                    }
                }
                else
                {
                    if (Q1.IsReady() && E1.IsReady())
                    {
                        Q1.Cast(Enemy);
                        if (E1.IsReady())
                        {
                            E1.Cast();
                        }
                    }
                }
            }
        }
Пример #6
0
        //c
        public static void Combo()
        {
            var Target = TargetSelector.GetTarget(Q1.Range, DamageType.Physical);

            if (Target == null)
            {
                return;
            }
            var useQ  = ModesMenu1["ComboQ"].Cast <CheckBox>().CurrentValue;
            var useQ2 = ModesMenu1["ComboQ2"].Cast <CheckBox>().CurrentValue;
            var Qp    = Q1.GetPrediction(Target);

            if (!Target.IsValid())
            {
                return;
            }
            if (Q1.IsReady() && useQ && !Target.IsInvulnerable && Q1.Name.Equals("BlindMonkQOne", StringComparison.InvariantCultureIgnoreCase))
            {
                if (Qp.HitChance >= HitChance.High)
                {
                    Q1.Cast(Qp.CastPosition);
                }
            }

            if (Q2.IsReady() && useQ2 && !Target.IsInvulnerable && Q2.Name.Equals("blindmonkqtwo", StringComparison.InvariantCultureIgnoreCase))
            {
                Q2.Cast();
            }
        }
Пример #7
0
        private void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
        {
            if (args.Slot == SpellSlot.R && !MainMenu.Item("smartR", true).GetValue <KeyBind>().Active)
            {
                var t = args.Target as Obj_AI_Hero;
                if (t != null && t.Health - OktwCommon.GetIncomingDamage(t) > R.GetDamage(t) * 2.5)
                {
                    if (E.IsReady() && Player.Mana > RMANA + EMANA)
                    {
                        E.CastOnUnit(t);
                        args.Process = false;
                        return;
                    }

                    if (W.IsReady() && Player.Mana > RMANA + WMANA)
                    {
                        W.Cast(t.Position);
                        args.Process = false;
                        return;
                    }

                    if (Q.IsReady() && t.IsValidTarget(Q.Range) && Player.Mana > RMANA + QMANA)
                    {
                        Q1.Cast(t);
                        args.Process = false;
                        return;
                    }
                }
                if (R.IsReady() && t.IsValidTarget())
                {
                    Rtime = Game.Time;
                }
            }
        }
Пример #8
0
        private static void AutoSpells(EventArgs args)
        {
            //E
            Edetonation();
            //R
            Actives();
            if (Config.Item("semi-ult").GetValue <KeyBind>().Active)
            {
                var target = TargetSelector.GetTarget(R1.Range, TargetSelector.DamageType.Magical);
                if (target == null || !target.IsValid)
                {
                    return;
                }
                if (R1.IsReady())
                {
                    SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R"));
                }
            }
            if (Config.Item("semi-w").GetValue <KeyBind>().Active)
            {
                var ally = HeroManager.Allies.Where(a => a.IsValid && !a.IsMinion && !a.IsMe).OrderBy(a => a.Distance(Game.CursorPosRaw)).FirstOrDefault();
                if (W1.IsReady())
                {
                    W1.Cast(ally);
                }
            }

            if (Q1.IsReady() && Config.Item("autospells.Q.cc").GetValue <bool>())
            {
                var target = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Magical);
                if (target == null || !target.IsValid)
                {
                    return;
                }
                var cc = target.HasBuffOfType(BuffType.Snare) ||
                         target.HasBuffOfType(BuffType.Suppression) ||
                         target.HasBuffOfType(BuffType.Taunt) ||
                         target.HasBuffOfType(BuffType.Stun) ||
                         target.HasBuffOfType(BuffType.Charm) ||
                         target.HasBuffOfType(BuffType.Fear);
            }

            if (Q1.IsReady() && Config.Item("autospells.Q.collision").GetValue <bool>())
            {
                var enemies = HeroManager.Enemies.Where(e => e.IsValidTarget(Q1.Range));
                foreach (var enemy in enemies)
                {
                    if (enemy == null)
                    {
                        return;
                    }
                    var collisionobjects = Q1.GetPrediction(enemy).CollisionObjects.Where(c => c.IsEnemy && !c.IsMinion);
                    if (collisionobjects.Count() == 1)
                    {
                        Q1.Cast(enemy);
                    }
                }
            }
        }
Пример #9
0
 public override void useQ(Obj_AI_Base target)
 {
     if (!Q1.IsReady() || target == null || player.IsInvulnerable)
     {
         return;
     }
     Q1.Cast();
 }
Пример #10
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q3.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > RMANA + QMANA + EMANA)
                {
                    CastQ(t);
                }
                else if (Program.Harass && Config.Item("harassQ", true).GetValue <bool>() && Config.Item("Harass" + t.ChampionName).GetValue <bool>() && Player.ManaPercent > Config.Item("QHarassMana", true).GetValue <Slider>().Value&& OktwCommon.CanHarras())
                {
                    CastQ(t);
                }
                else if (OktwCommon.GetKsDamage(t, Q1) > t.Health)
                {
                    CastQ(t);
                }
                else if (Player.Mana > RMANA + QMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q3.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        CastQ(t);
                    }
                }
            }

            if (Player.IsWindingUp)
            {
                return;
            }

            if (!Program.None && !Program.Combo)
            {
                var allMinions = Cache.GetMinions(Player.ServerPosition, Q1.Range);

                if (Config.Item("farmQout", true).GetValue <bool>() && Player.Mana > RMANA + QMANA + EMANA + WMANA)
                {
                    foreach (var minion in allMinions.Where(minion => minion.IsValidTarget(Q1.Range) && (!Orbwalker.InAutoAttackRange(minion) || (!minion.UnderTurret(true) && minion.UnderTurret()))))
                    {
                        var hpPred = SebbyLib.HealthPrediction.GetHealthPrediction(minion, 600);
                        if (hpPred < Q1.GetDamage(minion) && hpPred > minion.Health - hpPred * 2)
                        {
                            Q1.Cast(minion);
                            return;
                        }
                    }
                }
                if (FarmSpells && Config.Item("farmQ", true).GetValue <bool>())
                {
                    var farmPos = Q1.GetCircularFarmLocation(allMinions, Q1.Width);
                    if (farmPos.MinionsHit >= FarmMinions)
                    {
                        Q1.Cast(farmPos.Position);
                    }
                }
            }
        }
Пример #11
0
 private static void Gapcloser_OnGapcloser(AIHeroClient sender, Gapcloser.GapcloserEventArgs e)
 {
     if (sender == null)
     {
         return;
     }
     {
         if (sender.IsEnemy && sender.IsKillable(1000))
         {
             if (AutoMenu.CheckBoxValue("GapQ") && Q.IsReady() && e.End.IsInRange(user, Q.Range))
             {
                 Q.Cast(e.End);
             }
             if (AutoMenu.CheckBoxValue("GapQ1") && Q.IsReady() && e.End.IsInRange(Pix.ServerPosition, Q1.Range))
             {
                 Q1.Cast(e.End);
             }
             if (AutoMenu.CheckBoxValue("GapW") && W.IsReady() && e.End.IsInRange(user, W.Range))
             {
                 if (sender.IsKillable(W.Range))
                 {
                     W.Cast(sender);
                 }
             }
             if (AutoMenu.CheckBoxValue("GapE") && E.IsReady() && e.End.IsInRange(user, E.Range))
             {
                 if (sender.IsKillable(E.Range))
                 {
                     E.Cast(sender);
                 }
             }
             if (AutoMenu.CheckBoxValue("GapR") && R.IsReady() && e.End.IsInRange(user, 300) &&
                 user.HealthPercent < 15)
             {
                 R.Cast(user);
             }
         }
         if (!sender.IsAlly)
         {
             return;
         }
         {
             if (!AutoMenu.CheckBoxValue("GapWally") || !W.IsReady() ||
                 !sender.IsInRange(user, W.Range))
             {
                 return;
             }
             {
                 if (sender.IsKillable(W.Range))
                 {
                     W.Cast(sender);
                 }
             }
         }
     }
 }
Пример #12
0
        public override void farm()
        {
            var minions = ObjectManager.Get <Obj_AI_Minion>().Where(x => x.IsEnemy && x.Distance(player.Position) <= 250f);

            if (minions.Count() >= 2 &&
                !player.IsInvulnerable &&
                Q1.IsReady())
            {
                Q1.Cast();
            }
        }
Пример #13
0
        /// <summary>
        ///     The cast Q melee.
        /// </summary>
        private static void CastQMelee()
        {
            var target = Variables.TargetSelector.GetTarget(Q1.Range, DamageType.Physical);

            if (target != null)
            {
                if (Q1.IsReady() && target.IsValidTarget(Q1.Range))
                {
                    Q1.Cast(target);
                }
            }
        }
Пример #14
0
        /// <summary>
        ///     The cast q hammer.
        /// </summary>
        private static void CastQHammer()
        {
            if (Q1.IsReady())
            {
                var Enemies = GameObjects.EnemyHeroes.Where(x => (x != null) && x.IsValidTarget());

                foreach (var Enemy in Enemies.Where(x => x.IsValidTarget(Q1.Range) && (Q1.GetDamage(x) > x.Health)))
                {
                    Q1.Cast(Enemy);
                }
            }
        }
Пример #15
0
        /// <summary>
        ///     The cast Q melee.
        /// </summary>
        private static void CastQMelee()
        {
            var Minions = GameObjects.JungleLarge.Where(x => x.IsValidTarget(Q1.Range));

            foreach (var Minion in Minions)
            {
                if (Q1.IsReady())
                {
                    Q1.Cast(Minion);
                }
            }
        }
Пример #16
0
        private static void OnGapcloser(AIHeroClient sender, Gapcloser.GapcloserArgs args)
        {
            if (sender.IsEnemy && !sender.IsDead && !myhero.IsDead && args.EndPosition.DistanceToPlayer() < Q1.Range && Q1.IsReady())
            {
                //Q1.CastIfHitchanceEquals(sender, HitChance.Dash, true);
                var pred = Q1.GetPrediction(sender);

                if (pred.Hitchance == HitChance.Dash)
                {
                    Q1.Cast(pred.CastPosition);
                }
            }
        }
Пример #17
0
        private void LogicQ()
        {
            if (Program.Combo || Program.Harass)
            {
                foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q1.Range) && enemy.HasBuff("urgotcorrosivedebuff")))
                {
                    if (W.IsReady() && (Player.Mana > WMANA + QMANA * 4 || Q.GetDamage(enemy) * 3 > enemy.Health) && Config.Item("autoW", true).GetValue <bool>())
                    {
                        W.Cast();
                        Program.debug("W");
                    }
                    Program.debug("E");
                    Q1.Cast(enemy.ServerPosition);
                    return;
                }
            }

            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (Player.CountEnemiesInRange(Q.Range - 200) > 0)
            {
                t = TargetSelector.GetTarget(Q.Range - 200, TargetSelector.DamageType.Physical);
            }

            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Harass && Player.Mana > RMANA + EMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && Config.Item("Harass" + t.ChampionName).GetValue <bool>()))
                    {
                        Program.CastSpell(Q, enemy);
                    }
                }
                else if (OktwCommon.GetKsDamage(t, Q) * 2 > t.Health)
                {
                    Program.CastSpell(Q, t);
                }
                if (!Program.None && Player.Mana > RMANA + QMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy, true);
                    }
                }
            }
        }
Пример #18
0
 public override void Execute()
 {
     if (Settings.UseE)
     {
         AIHeroClient target = TargetSelector.GetTarget(E.Range, DamageType.Physical);
         if (target != null)
         {
             PredictionResult pred = E.GetPrediction(target);
             if (pred.HitChancePercent >= 80)
             {
                 E.Cast(target);
             }
         }
     }
     if (Settings.UseQ && Q1.IsReady())
     {
         //EntityManager.Heroes.Enemies.ForEach(e => e.Buffs.ForEach(b=>Logger.Debug(b.Name)));
         AIHeroClient target = EntityManager.Heroes.Enemies.Where
                                   (hero => hero.Distance(Player.Instance) < 1200 && hero.HasBuff("urgotcorrosivedebuff"))
                               .OrderByDescending(TargetSelector.GetPriority)
                               .FirstOrDefault();
         if (target != null)
         {
             Q2.Cast(target);
         }
         else
         {
             target = TargetSelector.GetTarget(Q1.Range, DamageType.Physical);
             if (target != null)
             {
                 Q1.Cast(target);
             }
         }
     }
     if (Settings.UseR && R.IsReady())
     {
         AIHeroClient target = TargetSelector.GetTarget(R.Range, DamageType.Mixed);
         if (target == null)
         {
             return;
         }
         if (EntityManager.Heroes.Allies.Count(o => o.Distance(Player.Instance) <= o.GetAutoAttackRange()) >
             EntityManager.Heroes.Enemies.Count(o => o.Distance(target) <= o.GetAutoAttackRange()) && !target.IsUnderHisturret())
         {
             //Should I ever use R during combo?
             R.Cast(target);
         }
     }
 }
Пример #19
0
        private void FleeMode()
        {
            if (Range)
            {
                if (E.IsReady())
                {
                    E.Cast(Player.Position.Extend(Game.CursorPos, 150));
                }
                else if (R.IsReady())
                {
                    R.Cast();
                }
            }
            else
            {
                if (Q1.IsReady())
                {
                    var mobs = Cache.GetMinions(Player.ServerPosition, Q1.Range);


                    if (mobs.Count > 0)
                    {
                        Obj_AI_Base best;
                        best = mobs[0];

                        foreach (var mob in mobs.Where(mob => mob.IsValidTarget(Q1.Range)))
                        {
                            if (mob.Distance(Game.CursorPos) < best.Distance(Game.CursorPos))
                            {
                                best = mob;
                            }
                        }
                        if (best.Distance(Game.CursorPos) + 200 < Player.Distance(Game.CursorPos))
                        {
                            Q1.Cast(best);
                        }
                    }
                    else if (R.IsReady())
                    {
                        R.Cast();
                    }
                }
                else if (R.IsReady())
                {
                    R.Cast();
                }
            }
            //Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
        }
Пример #20
0
        private void LogicQ2()
        {
            var t = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                if (OktwCommon.GetKsDamage(t, Q1) > t.Health)
                {
                    Q1.Cast(t);
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Q1.Cast(t);
                }
            }
        }
Пример #21
0
        public override void Execute()
        {
            Obj_AI_Minion jungleMinion =
                EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Instance.ServerPosition, 500).OrderByDescending(m => m.Health).FirstOrDefault();

            if (jungleMinion == null)
            {
                return;
            }
            E.Cast(jungleMinion);
            Q1.Cast(jungleMinion);

            if (jungleMinion.Health > Player.Instance.FlatPhysicalDamageMod * 2)
            {
                W.Cast();
            }
        }
Пример #22
0
        private static void FarmMethod()
        {
            var mana  = Config.Item("laneclear.mana.slider").GetValue <Slider>().Value;
            var level = Config.Item("laneclear.level").GetValue <Slider>().Value;

            if (player.ManaPercent < mana || player.Level < level)
            {
                return;
            }

            var eminions = Config.Item("laneclear.E.count").GetValue <Slider>().Value;
            var qminions = Config.Item("laneclear.Q.count").GetValue <Slider>().Value;

            var minions = MinionManager.GetMinions(E1.Range, MinionTypes.All, MinionTeam.Enemy).Where(m => m.IsValid &&
                                                                                                      m.Distance(Player) < E1.Range).ToList();
            var aaminions = MinionManager.GetMinions(E1.Range, MinionTypes.All, MinionTeam.Enemy).Where(m => m.IsValid &&
                                                                                                        m.Distance(Player) < Orbwalking.GetRealAutoAttackRange(player)).ToList();

            var efarmpos = E1.GetCircularFarmLocation(new List <AIBaseClient>(minions), E1.Width);

            if (efarmpos.MinionsHit >= eminions &&
                E1.IsReady() && Config.Item("laneclear.E").GetValue <bool>() && Environment.TickCount - Q1.LastCastAttemptT > 450)
            {
                E1.Cast(efarmpos.Position);
            }

            var qfarmpos = Q1.GetLineFarmLocation(new List <AIBaseClient>(minions), Q1.Width);

            if (qfarmpos.MinionsHit >= qminions &&
                Q1.IsReady() && Config.Item("laneclear.Q").GetValue <bool>() && Environment.TickCount - E1.LastCastAttemptT > 450)
            {
                Q1.Cast(qfarmpos.Position);
            }

            foreach (var minion in aaminions.Where(m => m.IsMinion && !m.IsDead &&
                                                   m.HasBuff("luxilluminatingfraulein")))
            {
                if (minion.IsValid)
                {
                    Player.IssueOrder(GameObjectOrder.AttackUnit, minion);
                }
            }
        }
Пример #23
0
 public override void Execute()
 {
     if (Player.Instance.ManaPercent < 25)
     {
         return;
     }
     // TODO: Add harass logic here
     // See how I used the Settings.UseQ and Settings.Mana here, this is why I love
     // my way of using the menu in the Config class!
     if (Settings.UseE)
     {
         AIHeroClient target = TargetSelector.GetTarget(E.Range, DamageType.Physical);
         if (target != null)
         {
             PredictionResult pred = E.GetPrediction(target);
             if (pred.HitChancePercent >= 80)
             {
                 E.Cast(target);
             }
         }
     }
     if (Settings.UseQ && Q1.IsReady())
     {
         //EntityManager.Heroes.Enemies.ForEach(e => e.Buffs.ForEach(b=>Logger.Debug(b.Name)));
         AIHeroClient target = EntityManager.Heroes.Enemies.Where
                                   (hero => hero.Distance(Player.Instance) < 1200 && hero.HasBuff("urgotcorrosivedebuff"))
                               .OrderBy(TargetSelector.GetPriority)
                               .FirstOrDefault();
         if (target != null)
         {
             Q2.Cast(target);
         }
         else
         {
             target = TargetSelector.GetTarget(Q1.Range, DamageType.Physical);
             if (target != null)
             {
                 Q1.Cast(target);
             }
         }
     }
 }
Пример #24
0
        private static void JungleMethod()
        {
            var mana = Config.Item("jungleclear.mana.slider").GetValue <Slider>().Value;

            if (player.ManaPercent < mana)
            {
                return;
            }

            var minions = MinionManager.GetMinions(E1.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => m.IsValid &&
                                                                                                        m.Distance(Player) < E1.Range && m != null).OrderBy(m => m.MaxHealth);
            var aaminions = MinionManager.GetMinions(E1.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => m.IsValid &&
                                                                                                          m.Distance(Player) < Orbwalking.GetRealAutoAttackRange(player) && m != null).OrderBy(m => m.MaxHealth);

            var efarmpos = E1.GetCircularFarmLocation(new List <Obj_AI_Base>(minions), E1.Width);

            if (efarmpos.MinionsHit >= 1 &&
                E1.IsReady() && Config.Item("jungleclear.E").GetValue <bool>() && Environment.TickCount - Q1.LastCastAttemptT > 450)
            {
                E1.Cast(efarmpos.Position);
            }

            var qfarmpos = Q1.GetLineFarmLocation(new List <Obj_AI_Base>(minions), Q1.Width);

            if (qfarmpos.MinionsHit >= 1 &&
                Q1.IsReady() && Config.Item("jungleclear.Q").GetValue <bool>() && Environment.TickCount - E1.LastCastAttemptT > 450)
            {
                Q1.Cast(qfarmpos.Position);
            }

            foreach (var minion in aaminions.Where(m => m.IsMinion && !m.IsDead &&
                                                   m.HasBuff("luxilluminatingfraulein")))
            {
                if (minion.IsValid && minion != null)
                {
                    EloBuddy.Player.IssueOrder(GameObjectOrder.AutoAttack, minion);
                }
            }
        }
Пример #25
0
        private void FarmQ()
        {
            var         minions     = Cache.GetMinions(Player.ServerPosition, Q.Range);
            int         countMinion = 0;
            Obj_AI_Base bestMinion  = null;

            foreach (var minion in minions.Where(minion => minion.HealthPercent <95 && minion.IsValidTarget(Q.Range) && Q.GetDamage(minion)> minion.Health))
            {
                var poutput = Q.GetPrediction(minion);
                var col     = poutput.CollisionObjects;

                if (col.Count == 0)
                {
                    continue;
                }

                foreach (var colobj in col)
                {
                    if (Q.GetDamage(colobj) > colobj.Health)
                    {
                        countMinion++;
                        bestMinion = minion;
                    }
                    else
                    {
                        countMinion = 0;
                        bestMinion  = null;
                        continue;
                    }
                }
                countMinion  = countMinion / 3;
                countMinion += 1;
            }
            if (bestMinion != null && countMinion >= Config.Item("farmQcount", true).GetValue <Slider>().Value)
            {
                Q1.Cast(bestMinion);
            }
        }
Пример #26
0
        public override void Execute()
        {
            if (Player.Instance.SpellTrainingPoints > 0)
            {
                LevelManager.LevelUp();
            }
            Obj_AI_Turret turret = EntityManager.Turrets.Allies.FirstOrDefault(tower => Player.Instance.Distance(tower) < tower.AttackRange - 100 && !tower.IsDead);

            if (turret != null)
            {
                AIHeroClient enemy =
                    EntityManager.Heroes.Enemies.OrderBy(TargetSelector.GetPriority).FirstOrDefault(
                        e => e.Distance(turret) < turret.AttackRange - 100);
                if (enemy != null && Settings.UseR && R.IsInRange(enemy))
                {
                    R.Cast(enemy);
                }
            }
            if (Config.Modes.LC.UseQ)
            {
                LaneClear.LastHit(Q1);
            }

            if (Player.Instance.HasItem(ItemId.Tear_of_the_Goddess) || Player.Instance.HasItem(ItemId.Archangels_Staff) || Player.Instance.HasItem(ItemId.Manamune))
            {
                if (EntityManager.MinionsAndMonsters.EnemyMinions.Count(minion => Player.Instance.Distance(minion) < 1700) > 1 ||
                    EntityManager.Heroes.Enemies.Count(hero => Player.Instance.Distance(hero) < 1700) > 1 ||
                    Environment.TickCount < Program.TearTick ||
                    Player.Instance.IsRecalling() ||
                    Player.Instance.ManaPercent < 50f ||
                    !Settings.StackTearQ)
                {
                    return;
                }
                Q1.Cast(Player.Instance.ServerPosition.Extend(Game.CursorPos, Player.Instance.MoveSpeed).To3DWorld());
                Program.TearTick = Environment.TickCount + 4000;
            }
        }
Пример #27
0
        public void Combo()
        {
            var target = ARAMTargetSelector.getBestTarget(1400f);

            manageW();
            if (!player.IsInvulnerable &&
                target.IsValidTarget(Q1.Range) &&
                Q1.IsReady())
            {
                Q1.Cast();
            }
            if (player.IsInvulnerable &&
                target.IsValidTarget(Q2.Range) &&
                Q2.IsReady())
            {
                (Q2 as Skillshot).CastMinimumHitchance(target, HitChance.High);
            }
            if (player.IsInvulnerable &&
                target.IsValidTarget(E2.Range) &&
                E2.IsReady())
            {
                (E2 as Skillshot).CastMinimumHitchance(target, HitChance.High);
            }
        }
Пример #28
0
        public static void Routine()
        {
            var targetR = TargetSelector.GetTarget(R1.Range, TargetSelector.DamageType.Magical);
            var target  = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Magical);

            if (target == null || !target.IsValid || targetR == null || !targetR.IsValid)
            {
                return;
            }

            Ignite = player.GetSpellSlot("summonerdot");

            //[R] Aoe Cast
            byte hitcount;

            hitcount = (byte)Config.Item("advanced.R.aoe.count").GetValue <Slider>().Value;

            if (Config.Item("advanced.R.aoe").GetValue <bool>() && R1.IsReady() && !E1.IsReady() && target.IsValidTarget(E1.Range + E1.Width))
            {
                R1.CastIfWillHit(target, hitcount);
            }

            #region -- Variables/Floats etc.
            float qdmg    = Q1.GetDamage(target);
            float edmg    = E1.GetDamage(target);
            float rdmg    = R1.GetDamage(target);
            float aa      = (float)Player.GetAutoAttackDamage(target);
            var   insideE = Lux_E != null && target.Distance(Lux_E.Position) <= E1.Width;
            var   thp     = target.Health;
            var   AArange = Orbwalking.GetRealAutoAttackRange(player);
            var   debuff  = target.HasBuff("luxilluminatingfraulein");
            if (debuff)
            {
                rdmg += PassiveDMG(target);
            }
            if (debuff)
            {
                aa += PassiveDMG(target);
            }
            if (insideE)
            {
                rdmg += edmg;
            }
            var rooted = target.HasBuff("LuxLightBindingMis");
            #endregion


            if (insideE && thp < edmg && target.IsValidTarget(R1.Range))
            {
                return;
            }

            if (rooted && insideE && rdmg + edmg > thp && target.IsValidTarget(R1.Range))
            {
                SpellCastR(targetR);
            }

            #region -- Q spellcast

            var prediction = Q1.GetPrediction(target, true);
            var collision  = Q1.GetCollision(Player.Position.To2D(), new List <Vector2> {
                prediction.UnitPosition.To2D()
            });
            if (Config.Item("combo.Q").GetValue <bool>() &&
                Environment.TickCount - E1.LastCastAttemptT > 400 && Environment.TickCount - R1.LastCastAttemptT > 800 && prediction.Hitchance >= PredQ("prediction.Q"))
            {
                if (collision.Count == 2)
                {
                    if (collision[0].IsChampion() || collision[1].IsChampion())
                    {
                        Q1.Cast(prediction.CastPosition);
                    }
                }
                else if (collision.Count == 1 && collision[0].IsChampion())
                {
                    Q1.Cast(prediction.CastPosition);
                }
                else if (collision.Count <= 1)
                {
                    Q1.Cast(prediction.CastPosition);
                }
                #endregion -- Q spellcast end


                if (rooted && thp < aa && target.IsValidTarget(AArange))
                {
                    return;
                }

                if (Config.Item("combo.E").GetValue <bool>() && Environment.TickCount - Q1.LastCastAttemptT > 875 && Environment.TickCount - R1.LastCastAttemptT > 800)
                {
                    SpellCast(target, E1.Range, E1, false, 1, true, PredE("prediction.E"));
                }

                if (IgniteKillCheck() < thp && target.HasBuff("summonerdot"))
                {
                    return;
                }

                if (Config.Item("combo.R").GetValue <bool>() && R1.IsReady())
                {
                    SpellCastR(targetR);
                }

                if (!target.IsValidTarget(600))
                {
                    return;
                }

                var ignitemenu = Config.Item("autospells.ignite").GetValue <bool>();

                if (thp > IgniteDamage(target) && thp < IgniteDamage(target) + edmg + aa && rooted && E1.IsReady() && target.IsValidTarget(600) && Ignite.IsReady() && ignitemenu)
                {
                    player.Spellbook.CastSpell(Ignite, target);
                    Printchat("Ignite casted");
                }

                if (thp < IgniteDamage(target) + rdmg + aa && rooted && Ignite.IsReady() && R1.IsReady() && ignitemenu)
                {
                    player.Spellbook.CastSpell(Ignite, target);
                    Printchat("Ignite casted");
                }

                if (thp < IgniteDamage(target) + rdmg + aa && Ignite.IsReady() && R1.IsReady() && ignitemenu)
                {
                    player.Spellbook.CastSpell(Ignite, target);
                    Printchat("Ignite casted");
                }

                if (thp < IgniteDamage(target) && target.IsValidTarget(600) && AllyCheck(target, 600) < 1 && Ignite.IsReady() && ignitemenu)
                {
                    player.Spellbook.CastSpell(Ignite, target);
                    Printchat("Ignite casted");
                }
            }
        }
Пример #29
0
        private void LogicQ()
        {
            var t  = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
            var t1 = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                missileManager.Target = t;
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Harass && Config.Item("Harass" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + WMANA + QMANA + QMANA && OktwCommon.CanHarras())
                {
                    Program.CastSpell(Q, t);
                }
                else if (OktwCommon.GetKsDamage(t, Q) * 2 > t.Health)
                {
                    Program.CastSpell(Q, t);
                }
                if (Player.Mana > RMANA + QMANA + WMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy, true, true);
                    }
                }
            }
            else if (t1.IsValidTarget())
            {
                missileManager.Target = t1;
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q1, t1);
                }
                else if (Program.Harass && Config.Item("Harass" + t1.ChampionName).GetValue <bool>() && Player.Mana > RMANA + WMANA + QMANA + QMANA && OktwCommon.CanHarras())
                {
                    Program.CastSpell(Q1, t1);
                }
                else if (OktwCommon.GetKsDamage(t1, Q1) * 2 > t1.Health)
                {
                    Program.CastSpell(Q1, t1);
                }
                if (Player.Mana > RMANA + QMANA + WMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q1.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q1.Cast(enemy, true, true);
                    }
                }
            }
            else if (FarmSpells && Config.Item("farmQ", true).GetValue <bool>())
            {
                var allMinionsQ = Cache.GetMinions(Player.ServerPosition, Q1.Range);
                var Qfarm       = Q.GetLineFarmLocation(allMinionsQ, 100);
                if (Qfarm.MinionsHit >= FarmMinions)
                {
                    Q.Cast(Qfarm.Position);
                }
            }
        }
Пример #30
0
        private void LogicQ()
        {
            var t  = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
            var t1 = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                Program.debug("" + Q.GetDamage(t));
                var qDmg = GetQdmg(t);
                if (qDmg > t.Health)
                {
                    Q.Cast(t, true);
                }
                else if (Program.Combo && ObjectManager.Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Config.Item("haras" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + WMANA + QMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                if (Player.Mana > RMANA + QMANA + WMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy, true);
                    }
                }
            }
            else if (t1.IsValidTarget())
            {
                Program.debug("" + Q.GetDamage(t1));
                var qDmg = GetQdmg(t1);
                if (qDmg > t1.Health)
                {
                    Q1.Cast(t1, true);
                }
                else if (Program.Combo && ObjectManager.Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q1, t1);
                }
                else if (Program.Farm && Config.Item("haras" + t1.ChampionName).GetValue <bool>() && Player.Mana > RMANA + WMANA + QMANA + QMANA)
                {
                    Program.CastSpell(Q1, t1);
                }
                if (Player.Mana > RMANA + QMANA + WMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q1.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q1.Cast(enemy, true);
                    }
                }
            }
            else if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && Player.ManaPercentage() > Config.Item("Mana").GetValue <Slider>().Value&& Config.Item("farmQ").GetValue <bool>() && ObjectManager.Player.Mana > RMANA + QMANA + WMANA)
            {
                var allMinionsQ = MinionManager.GetMinions(Player.ServerPosition, Q1.Range, MinionTypes.All);
                var Qfarm       = Q.GetLineFarmLocation(allMinionsQ, 100);
                if (Qfarm.MinionsHit > 5 && Q1.IsReady())
                {
                    Q.Cast(Qfarm.Position);
                }
            }
        }