Пример #1
0
        private static void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, DamageType.Magical);

            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > RMANA + WMANA + EMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && getCheckBoxItem(wMenu, "harrasW") &&
                         getCheckBoxItem(harassMenu, "haras" + t.ChampionName) &&
                         (Player.Mana > Player.MaxMana * 0.8 || getCheckBoxItem(miscMenu, "apEz")) &&
                         Player.ManaPercent > getSliderItem(harassMenu, "HarassMana") && OktwCommon.CanHarras())
                {
                    Program.CastSpell(W, t);
                }
                else
                {
                    var qDmg = Q.GetDamage(t);
                    var wDmg = OktwCommon.GetKsDamage(t, W);
                    if (wDmg > t.Health)
                    {
                        Program.CastSpell(W, t);
                        OverKill = Game.Time;
                    }
                    else if (wDmg + qDmg > t.Health && Q.IsReady())
                    {
                        Program.CastSpell(W, t);
                    }
                }

                if (!Program.None && Player.Mana > RMANA + WMANA + EMANA)
                {
                    foreach (
                        var enemy in
                        Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
        }
Пример #2
0
        private void LogicE()
        {
            var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTargetLS())
            {
                var qCd = Q.Instance.CooldownExpires - Game.Time;
                var rCd = R.Instance.CooldownExpires - Game.Time;
                if (Player.Level < 7)
                {
                    rCd = 10;
                }
                //debug("Q " + qCd + "R " + rCd + "E now " + E.Instance.Cooldown);
                var eDmg = OktwCommon.GetKsDamage(t, E);

                if (eDmg > t.Health)
                {
                    E.Cast(t, true);
                }

                if (t.HasBuff("chilled") || qCd > E.Instance.Cooldown - 1 && rCd > E.Instance.Cooldown - 1)
                {
                    if (eDmg * 3 > t.Health)
                    {
                        E.Cast(t, true);
                    }
                    else if (Program.Combo && (t.HasBuff("chilled") || Player.Mana > RMANA + EMANA))
                    {
                        E.Cast(t, true);
                    }
                    else if (Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA && !Player.UnderTurret(true) && QMissile == null)
                    {
                        E.Cast(t, true);
                    }
                }
                else if (Program.Combo && R.IsReady() && Player.Mana > RMANA + EMANA && QMissile == null)
                {
                    R.Cast(t, true, true);
                }
            }
            farmE();
        }
Пример #3
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget(Q.Range))
            {
                if (GetRealDistance(t) > bonusRange() + 150 && OktwCommon.GetKsDamage(t, Q) > t.Health && Player.CountEnemiesInRange(400) == 0)
                {
                    Program.CastSpell(Q, t);
                    Program.debug("Q KS");
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA + EMANA + 10 && Player.CountEnemiesInRange(bonusRange() + 100 + t.BoundingRadius) == 0 && !Config.Item("autoQ", true).GetValue <bool>())
                {
                    Program.CastSpell(Q, t);
                }
                if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + QMANA && Player.CountEnemiesInRange(400) == 0)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && (!OktwCommon.CanMove(enemy) || enemy.HasBuff("caitlynyordletrapinternal"))))
                    {
                        Q.Cast(enemy, true);
                    }
                    if (Player.CountEnemiesInRange(bonusRange()) == 0 && OktwCommon.CanHarras())
                    {
                        if (t.HasBuffOfType(BuffType.Slow))
                        {
                            Q.Cast(t);
                        }

                        Q.CastIfWillHit(t, 2, true);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>() && Player.Mana > RMANA + QMANA)
            {
                var minionList   = MinionManager.GetMinions(Player.ServerPosition, Q.Range, MinionTypes.All);
                var farmPosition = Q.GetLineFarmLocation(minionList, Q.Width);
                if (farmPosition.MinionsHit > Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    Q.Cast(farmPosition.Position);
                }
            }
        }
Пример #4
0
        private void LogicE()
        {
            var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget(E.Range) && !t.HasBuff("QuinnW") && t.CountEnemiesInRange(800) < 3)
            {
                if (OktwCommon.GetKsDamage(t, E) > t.Health)
                {
                    E.Cast(t);
                }
                else if (Program.Combo && Player.Mana > RMANA + EMANA)
                {
                    E.Cast(t);
                }
                else if ((Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA) && Config.Item("harrasE", true).GetValue <bool>() && !ObjectManager.Player.UnderTurret(true))
                {
                    E.Cast(t);
                }
            }
        }
Пример #5
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget(Q.Range))
            {
                if (OktwCommon.GetKsDamage(t, Q) > t.Health)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if ((Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA) && Config.Item("harrasQ", true).GetValue <bool>() && !ObjectManager.Player.UnderTurret(true))
                {
                    Program.CastSpell(Q, t);
                }
            }
        }
Пример #6
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTargetLS())
            {
                if (EloBuddy.Player.Instance.IsInAutoAttackRange(t) && t.HasBuff("quinnw"))
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA && Config.Item("harrasQ", true).GetValue <bool>() && Config.Item("harras" + t.ChampionName).GetValue <bool>() && OktwCommon.CanHarras())
                {
                    Program.CastSpell(Q, t);
                }
                else if (OktwCommon.GetKsDamage(t, Q) > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                if (!Program.None && Player.Mana > RMANA + QMANA + EMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>() && Player.Mana > RMANA + QMANA)
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, Q.Range - 150);
                var farmPosition = Q.GetCircularFarmLocation(minionList, 150);
                if (farmPosition.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    Q.Cast(farmPosition.Position);
                }
            }
        }
Пример #7
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
            if (t.IsValidTarget())
            {
 
                foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && enemy.Distance(Player) > bonusRange()))
                {
                    var comboDmg = OktwCommon.GetKsDamage(enemy, W);
                    if (R.IsReady() && Player.Mana > RMANA + WMANA + 20)
                    {
                        comboDmg += R.GetDamage(enemy, 1);
                    }
                    if (comboDmg > enemy.Health && OktwCommon.ValidUlt(enemy))
                    {
                        Program.CastSpell(W, enemy);
                        return;
                    }
                }
                

                if (Player.CountEnemiesInRange(bonusRange()) == 0)
                {
                    if (Program.Combo && Player.Mana > RMANA + WMANA + 10)
                    {
                        foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && GetRealDistance(enemy) > bonusRange() ).OrderBy(enemy => enemy.Health))
                            Program.CastSpell(W, enemy);
                    }
                    else if (Program.Farm && Player.Mana > RMANA + EMANA + WMANA + WMANA + 40 && OktwCommon.CanHarras())
                    {
                        foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && Config.Item("haras" + enemy.ChampionName).GetValue<bool>()))
                            Program.CastSpell(W, enemy);
                    }
                }
                if (!Program.None && Player.Mana > RMANA + WMANA && Player.CountEnemiesInRange(GetRealPowPowRange(t)) == 0)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                        W.Cast(enemy, true);
                }
            }
        }
Пример #8
0
        private static void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

            if (t.LSIsValidTarget())
            {
                if (SebbyLib.Orbwalking.InAutoAttackRange(t) && t.HasBuff("quinnw"))
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA && getCheckBoxItem(qMenu, "harrasQ") && getCheckBoxItem(harassMenu, "harras" + t.ChampionName) && OktwCommon.CanHarras())
                {
                    Program.CastSpell(Q, t);
                }
                else if (OktwCommon.GetKsDamage(t, Q) > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                if (!Program.None && Player.Mana > RMANA + QMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmQ") && Player.Mana > RMANA + QMANA)
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, Q.Range - 150);
                var farmPosition = Q.GetCircularFarmLocation(minionList, 150);
                if (farmPosition.MinionsHit >= getSliderItem(farmMenu, "LCminions"))
                {
                    Q.Cast(farmPosition.Position);
                }
            }
        }
Пример #9
0
        private static void LogicE()
        {
            var t = TargetSelector.GetTarget(E.Range, DamageType.Magical);

            if (t.LSIsValidTarget())
            {
                var eDmg = OktwCommon.GetKsDamage(t, E);
                if (eDmg > t.Health)
                {
                    Program.CastSpell(E, t);
                }
                else if (eDmg + Q.GetDamage(t) > t.Health && Player.Mana > QMANA + EMANA + RMANA)
                {
                    Program.CastSpell(E, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA + QMANA + EMANA)
                {
                    if (!SebbyLib.Orbwalking.InAutoAttackRange(t) || Player.CountEnemiesInRange(300) > 0 || t.CountEnemiesInRange(250) > 1)
                    {
                        Program.CastSpell(E, t);
                    }
                    else
                    {
                        foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(E.Range) && !OktwCommon.CanMove(enemy)))
                        {
                            E.Cast(enemy, true, true);
                        }
                    }
                }
            }
            if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmE"))
            {
                var minions = Cache.GetMinions(Player.ServerPosition, E.Range);
                var farmPos = E.GetCircularFarmLocation(minions, E.Width);
                if (farmPos.MinionsHit >= getSliderItem(farmMenu, "LCminions"))
                {
                    E.Cast(farmPos.Position);
                }
            }
        }
Пример #10
0
        private void LogicE()
        {
            var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTargetLS())
            {
                var eDmg = OktwCommon.GetKsDamage(t, E);
                if (eDmg > t.Health)
                {
                    Program.CastSpell(E, t);
                }
                else if (eDmg + Q.GetDamage(t) > t.Health && Player.Mana > QMANA + EMANA + RMANA)
                {
                    Program.CastSpell(E, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA + QMANA + EMANA)
                {
                    if (!EloBuddy.Player.Instance.IsInAutoAttackRange(t) || Player.CountEnemiesInRange(300) > 0 || t.CountEnemiesInRange(250) > 1)
                    {
                        Program.CastSpell(E, t);
                    }
                    else
                    {
                        foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(E.Range) && !OktwCommon.CanMove(enemy)))
                        {
                            E.Cast(enemy, true, true);
                        }
                    }
                }
            }
            if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmE", true).GetValue <bool>())
            {
                var minions = Cache.GetMinions(Player.ServerPosition, E.Range);
                var farmPos = E.GetCircularFarmLocation(minions, E.Width);
                if (farmPos.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    E.Cast(farmPos.Position);
                }
            }
        }
Пример #11
0
        private void LogicR()
        {
            bool cast = false;

            foreach (var target in Program.Enemies.Where(target => target.IsValidTarget(R.Range) && Player.Distance(target.Position) > Config.Item("Rrange", true).GetValue <Slider>().Value&& target.CountEnemiesInRange(Config.Item("Rcol", true).GetValue <Slider>().Value) == 1 && target.CountAlliesInRange(500) == 0 && OktwCommon.ValidUlt(target)))
            {
                if (OktwCommon.GetKsDamage(target, R) > target.Health)
                {
                    cast = true;
                    PredictionOutput output    = R.GetPrediction(target);
                    Vector2          direction = output.CastPosition.To2D() - Player.Position.To2D();
                    direction.Normalize();
                    List <Obj_AI_Hero> enemies = Program.Enemies.Where(x => x.IsValidTarget()).ToList();
                    foreach (var enemy in enemies)
                    {
                        if (enemy.SkinName == target.SkinName || !cast)
                        {
                            continue;
                        }
                        PredictionOutput prediction        = R.GetPrediction(enemy);
                        Vector3          predictedPosition = prediction.CastPosition;
                        Vector3          v      = output.CastPosition - Player.ServerPosition;
                        Vector3          w      = predictedPosition - Player.ServerPosition;
                        double           c1     = Vector3.Dot(w, v);
                        double           c2     = Vector3.Dot(v, v);
                        double           b      = c1 / c2;
                        Vector3          pb     = Player.ServerPosition + ((float)b * v);
                        float            length = Vector3.Distance(predictedPosition, pb);
                        if (length < (Config.Item("Rcol", true).GetValue <Slider>().Value + enemy.BoundingRadius) && Player.Distance(predictedPosition) < Player.Distance(target.ServerPosition))
                        {
                            cast = false;
                        }
                    }
                    if (cast)
                    {
                        R.CastOnUnit(target);
                    }
                }
            }
        }
Пример #12
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                if (OktwCommon.GetKsDamage(t, W) > t.Health)
                {
                    W.Cast(t, true, true);
                    return;
                }
                else if (W.GetDamage(t) + Q.GetDamage(t) > t.Health && Player.Mana > QMANA + WMANA + RMANA)
                {
                    W.Cast(t, true, true);
                }
                else if (Program.Combo)
                {
                    if (ObjectManager.Player.Mana > RMANA + WMANA + QMANA + EMANA && !Orbwalking.InAutoAttackRange(t))
                    {
                        W.Cast(t, true, true);
                    }
                    else if (Program.Combo && ObjectManager.Player.Mana > RMANA + QMANA + WMANA && ObjectManager.Player.CountEnemiesInRange(300) > 0)
                    {
                        W.Cast(t, true, true);
                    }
                    else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA && t.CountEnemiesInRange(250) > 1)
                    {
                        W.Cast(t, true, true);
                    }
                    else if (ObjectManager.Player.Mana > RMANA + WMANA + QMANA + EMANA)
                    {
                        foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                        {
                            W.Cast(enemy, true, true);
                        }
                    }
                }
            }
        }
Пример #13
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

            if (Player.CountEnemiesInRange(700) > 0)
            {
                t = TargetSelector.GetTarget(700, TargetSelector.DamageType.Physical);
            }
            if (t.IsValidTarget())
            {
                var poutput = W.GetPrediction(t);
                var col     = poutput.CollisionObjects.Count(ColObj => ColObj.IsEnemy && ColObj.IsMinion && !ColObj.IsDead);
                if (t.IsDead || col > 0 || t.Path.Count() > 1 || (int)poutput.Hitchance < 5)
                {
                    return;
                }


                if (OktwCommon.GetKsDamage(t, W) > t.Health)
                {
                    W.Cast(t, true);
                }
                else if (Program.Combo && ObjectManager.Player.Mana > RMANA + WMANA)
                {
                    W.Cast(t, true, true);
                }
                else if (Program.Farm && Config.Item("haras" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && Player.Mana > RMANA + WMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    W.Cast(t, true, true);
                }
                else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(t, true, true);
                    }
                }
            }
        }
Пример #14
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget() && Player.CountEnemiesInRange(bonusRange() + 50) == 0)
            {
                if (Game.Time - QCastTime > 0.6)
                {
                    var comboDmg = OktwCommon.GetKsDamage(t, W);
                    if (R.IsReady() && Player.Mana > RMANA + WMANA + 20)
                    {
                        comboDmg += R.GetDamage(t, 1);
                    }
                    if (comboDmg > t.Health)
                    {
                        Program.CastSpell(W, t);
                        return;
                    }
                }
                if (Program.Combo && Player.Mana > RMANA + WMANA + 10 && GetRealDistance(t) > bonusRange() - 50)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && Player.Mana > RMANA + EMANA + WMANA + WMANA + 40 && !Player.UnderTurret(true) && OktwCommon.CanHarras())
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && Config.Item("haras" + enemy.ChampionName).GetValue <bool>()))
                    {
                        Program.CastSpell(W, enemy);
                    }
                }
                else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA && Player.CountEnemiesInRange(GetRealPowPowRange(t)) == 0)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
        }
Пример #15
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                var qDmg = Q.GetDamage(t);
                var wDmg = OktwCommon.GetKsDamage(t, W);
                if (wDmg > t.Health)
                {
                    Program.CastSpell(W, t);
                    OverKill = Game.Time;
                }
                else if (wDmg + qDmg > t.Health && Q.IsReady())
                {
                    Program.CastSpell(W, t);
                }
                else if (qDmg * 2 > t.Health && Config.Item("noob", true).GetValue <bool>() && t.CountAlliesInRange(800) > 1)
                {
                    Program.debug("W noob mode");
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA + EMANA + QMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Farm && Config.Item("harrasW", true).GetValue <bool>() && Config.Item("haras" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && (Player.Mana > Player.MaxMana * 0.8 || W.Level >= Q.Level) && Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    Program.CastSpell(W, t);
                }
                else if ((Program.Combo || Farm) && Player.Mana > RMANA + WMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
        }
Пример #16
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > RMANA + WMANA + EMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && Config.Item("harrasW", true).GetValue <bool>() && Config.Item("haras" + t.ChampionName).GetValue <bool>() && (Player.Mana > Player.MaxMana * 0.8 || Config.Item("apEz", true).GetValue <bool>()) && Player.Mana > RMANA + WMANA + EMANA + QMANA && OktwCommon.CanHarras())
                {
                    Program.CastSpell(W, t);
                }
                else
                {
                    var qDmg = Q.GetDamage(t);
                    var wDmg = OktwCommon.GetKsDamage(t, W);
                    if (wDmg > t.Health)
                    {
                        Program.CastSpell(W, t);
                        OverKill = Game.Time;
                    }
                    else if (wDmg + qDmg > t.Health && Q.IsReady())
                    {
                        Program.CastSpell(W, t);
                    }
                }

                if (!Program.None && Player.Mana > RMANA + WMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
        }
Пример #17
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTargetLS())
            {
                if (Program.Combo && Player.Mana > EMANA + QMANA - 10)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Config.Item("harrasQ", true).GetValue <bool>() && Config.Item("haras" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + EMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    Program.CastSpell(Q, t);
                }
                else
                {
                    var qDmg = OktwCommon.GetKsDamage(t, Q);
                    var eDmg = E.GetDamage(t);
                    if (qDmg > t.Health)
                    {
                        Program.CastSpell(Q, t);
                    }
                    else if (qDmg + eDmg > t.Health && Player.Mana > QMANA + WMANA)
                    {
                        Program.CastSpell(Q, t);
                    }
                }
                if (!Program.None && Player.Mana > RMANA + EMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy, true);
                    }
                }
            }
        }
Пример #18
0
        private void LogicQ()
        {
            var t  = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
            var t1 = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget(Q.Range) && Player.Distance(t.ServerPosition) > 500)
            {
                var qDmg = OktwCommon.GetKsDamage(t, Q);
                if (qDmg + Player.GetAutoAttackDamage(t) > t.Health)
                {
                    Q.Cast(t);
                }
                else if (qDmg + Player.GetAutoAttackDamage(t) * 3 > t.Health)
                {
                    Q.Cast(t);
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA)
                {
                    Q.Cast(t);
                }
                else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA)
                {
                    Q.Cast(t);
                }
            }
            else if (t1.IsValidTarget(Q1.Range) && Config.Item("harasQ", true).GetValue <bool>() && Player.Distance(t1.ServerPosition) > Q.Range + 50)
            {
                if (Config.Item("qMinionMove", true).GetValue <bool>())
                {
                    var minions = MinionManager.GetMinions(Player.ServerPosition, Q1.Range);

                    if (minions.Exists(x => x.IsMoving))
                    {
                        return;
                    }
                }

                Q1.Width = Config.Item("qMinionWidth", true).GetValue <Slider>().Value;

                var poutput = Q1.GetPrediction(t1);
                var col     = poutput.CollisionObjects;
                if (col.Count() == 0)
                {
                    return;
                }

                var minionQ = col.Last();
                if (minionQ.IsValidTarget(Q.Range))
                {
                    if (Config.Item("killQ", true).GetValue <bool>() && Q.GetDamage(minionQ) < minionQ.Health)
                    {
                        return;
                    }
                    var minionToT = minionQ.Distance(t1.Position);
                    var minionToP = minionQ.Distance(poutput.CastPosition);
                    if (minionToP < 400 && minionToT < 420 && minionToT > 150 && minionToP > 200)
                    {
                        if (Q.GetDamage(t1) + Player.GetAutoAttackDamage(t1) > t1.Health)
                        {
                            Q.Cast(col.Last());
                        }
                        else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA)
                        {
                            Q.Cast(col.Last());
                        }
                        else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA + QMANA)
                        {
                            Q.Cast(col.Last());
                        }
                    }
                }
            }
        }
Пример #19
0
        private void LogicQ()
        {
            if (Program.Combo && Player.Spellbook.IsAutoAttacking)
            {
                return;
            }
            var t = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

            if (t.LSIsValidTarget(Q.Range))
            {
                if (GetRealDistance(t) > bonusRange() + 250 && !SebbyLib.Orbwalking.InAutoAttackRange(t) && OktwCommon.GetKsDamage(t, Q) > t.Health && Player.LSCountEnemiesInRange(400) == 0)
                {
                    Program.CastSpell(Q, t);
                    Program.debug("Q KS");
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA + EMANA + 10 && Player.LSCountEnemiesInRange(bonusRange() + 100 + t.BoundingRadius) == 0 && !getCheckBoxItem(qMenu, "autoQ"))
                {
                    Program.CastSpell(Q, t);
                }
                if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + QMANA && Player.LSCountEnemiesInRange(400) == 0)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(Q.Range) && (!OktwCommon.CanMove(enemy) || enemy.HasBuff("caitlynyordletrapinternal"))))
                    {
                        Q.Cast(enemy, true);
                    }
                    if (Player.LSCountEnemiesInRange(bonusRange()) == 0 && OktwCommon.CanHarras())
                    {
                        if (t.HasBuffOfType(BuffType.Slow))
                        {
                            Q.Cast(t);
                        }

                        Q.CastIfWillHit(t, 2, true);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmQ") && Player.Mana > RMANA + QMANA)
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, Q.Range);
                var farmPosition = Q.GetLineFarmLocation(minionList, Q.Width);
                if (farmPosition.MinionsHit > getSliderItem(farmMenu, "LCminions"))
                {
                    Q.Cast(farmPosition.Position);
                }
            }
        }
Пример #20
0
        private void LogicR()
        {
            bool   cast        = false;
            double secoundDmgR = 0.80;

            foreach (var target in Program.Enemies.Where(target => target.IsValidTarget(R1.Range) && OktwCommon.ValidUlt(target)))
            {
                float  predictedHealth = target.Health + target.HPRegenRate;
                double Rdmg            = OktwCommon.GetKsDamage(target, R);
                var    collisionTarget = target;
                cast = true;
                PredictionOutput output    = R.GetPrediction(target);
                Vector2          direction = output.CastPosition.To2D() - Player.Position.To2D();
                direction.Normalize();
                List <Obj_AI_Hero> enemies = ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsEnemy && x.IsValidTarget()).ToList();
                foreach (var enemy in enemies)
                {
                    if (enemy.SkinName == target.SkinName || !cast)
                    {
                        continue;
                    }
                    PredictionOutput prediction        = R.GetPrediction(enemy);
                    Vector3          predictedPosition = prediction.CastPosition;
                    Vector3          v      = output.CastPosition - Player.ServerPosition;
                    Vector3          w      = predictedPosition - Player.ServerPosition;
                    double           c1     = Vector3.Dot(w, v);
                    double           c2     = Vector3.Dot(v, v);
                    double           b      = c1 / c2;
                    Vector3          pb     = Player.ServerPosition + ((float)b * v);
                    float            length = Vector3.Distance(predictedPosition, pb);
                    if (length < (120 + enemy.BoundingRadius) && Player.Distance(predictedPosition) < Player.Distance(target.ServerPosition))
                    {
                        cast            = false;
                        collisionTarget = enemy;
                    }
                }
                if (cast &&
                    Rdmg > predictedHealth &&
                    target.IsValidTarget(R.Range) &&
                    (!Orbwalking.InAutoAttackRange(target) || ObjectManager.Player.Health < ObjectManager.Player.MaxHealth * 0.6))
                {
                    Program.CastSpell(R, target);
                    Program.debug("Rdmg");
                }
                else if (cast &&
                         Rdmg * secoundDmgR > predictedHealth &&
                         target.IsValidTarget(R1.Range) &&
                         target.CountAlliesInRange(300) == 0 && (!Orbwalking.InAutoAttackRange(target) || ObjectManager.Player.Health < ObjectManager.Player.MaxHealth * 0.6))
                {
                    Program.CastSpell(R, target);
                    Program.debug("Rdmg 0.7");
                }
                else if (!cast && Rdmg * secoundDmgR > predictedHealth && target.IsValidTarget(Player.Distance(collisionTarget.Position) + 700))
                {
                    Program.CastSpell(R, target);
                    Program.debug("Rdmg 0.7 collision");
                }
                else if (cast && Config.Item("fastR", true).GetValue <bool>() && Rdmg > predictedHealth && Orbwalking.InAutoAttackRange(target) && Program.Combo)
                {
                    Program.CastSpell(R, target);
                    Program.debug("R fast");
                }
            }
        }
Пример #21
0
        private static void LogicQ()
        {
            var t  = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
            var t1 = TargetSelector.GetTarget(Q1.Range, DamageType.Physical);

            if (t.LSIsValidTarget(Q.Range) && Player.LSDistance(t.ServerPosition) > 500)
            {
                var qDmg = OktwCommon.GetKsDamage(t, Q);
                if (qDmg + Player.LSGetAutoAttackDamage(t) > t.Health)
                {
                    Q.Cast(t);
                }
                else if (qDmg + Player.LSGetAutoAttackDamage(t) * 3 > t.Health)
                {
                    Q.Cast(t);
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA)
                {
                    Q.Cast(t);
                }
                else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA)
                {
                    Q.Cast(t);
                }
            }
            else if (t1.LSIsValidTarget(Q1.Range) && getCheckBoxItem(qMenu, "harasQ") && Player.LSDistance(t1.ServerPosition) > Q.Range + 50)
            {
                var minions = Cache.GetMinions(Player.ServerPosition, Q1.Range);



                if (getCheckBoxItem(qMenu, "qMinionMove"))
                {
                    if (minions.Exists(x => x.IsMoving))
                    {
                        return;
                    }
                }

                var enemyPredictionPos = SebbyLib.Prediction.Prediction.GetPrediction(t1, 0.2f).CastPosition;
                foreach (var minion in minions)
                {
                    if (getCheckBoxItem(qMenu, "killQ") && Q.GetDamage(minion) < minion.Health)
                    {
                        continue;
                    }

                    var posExt = Player.ServerPosition.LSExtend(minion.ServerPosition, 420 + Player.LSDistance(minion));

                    if (InCone(enemyPredictionPos, posExt, minion.ServerPosition, getSliderItem(qMenu, "qMinionWidth")))
                    {
                        Program.debug("dupa");
                        if (minions.Exists(x =>
                                           InCone(x.Position, posExt, minion.ServerPosition, getSliderItem(qMenu, "qMinionWidth"))
                                           ))
                        {
                            continue;
                        }
                        Q.Cast(minion);
                        return;
                    }
                }
            }
        }
Пример #22
0
        private void LogicQ()
        {
            if (Config.Item("mura", true).GetValue <bool>())
            {
                int Mur = Items.HasItem(Muramana) ? 3042 : 3043;
                if (Program.Combo && Items.HasItem(Mur) && Items.CanUseItem(Mur) && Player.Mana > RMANA + EMANA + QMANA + WMANA)
                {
                    if (!Player.HasBuff("Muramana"))
                    {
                        Items.UseItem(Mur);
                    }
                }
                else if (Player.HasBuff("Muramana") && Items.HasItem(Mur) && Items.CanUseItem(Mur))
                {
                    Items.UseItem(Mur);
                }
            }
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (Player.CountEnemiesInRange(900) > 0)
            {
                t = TargetSelector.GetTarget(900, TargetSelector.DamageType.Physical);
            }

            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && Config.Item("haras" + enemy.ChampionName).GetValue <bool>()))
                    {
                        Program.CastSpell(Q, enemy);
                    }
                }
                else
                {
                    var qDmg = OktwCommon.GetKsDamage(t, Q);
                    var wDmg = W.GetDamage(t);
                    if (qDmg > t.Health)
                    {
                        Program.CastSpell(Q, t);
                        OverKill = Game.Time;
                    }
                    else if (t.IsValidTarget(W.Range) && qDmg + wDmg > t.Health)
                    {
                        Program.CastSpell(Q, t);
                        OverKill = Game.Time;
                    }
                }

                if (!Program.None && Player.Mana > RMANA + QMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy, true);
                    }
                }
            }
            if (Farm && Player.Mana > RMANA + EMANA + WMANA + QMANA * 3)
            {
                farmQ();
                lag = Game.Time;
            }
            else if (Config.Item("stack", true).GetValue <bool>() && Utils.TickCount - Q.LastCastAttemptT > 4000 && !Player.HasBuff("Recall") && Player.Mana > Player.MaxMana * 0.95 && Program.None && (Items.HasItem(Tear) || Items.HasItem(Manamune)))
            {
                Q.Cast(Player.ServerPosition);
            }
        }
Пример #23
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.HasBuff("Recall"))
            {
                return;
            }

            HaveStun = Player.HasBuff("pyromania_particle");

            SetMana();

            if (R.IsReady() && (Program.LagFree(1) || Program.LagFree(3)) && !HaveTibers)
            {
                var realRange = R.Range;

                if (flash.IsReady())
                {
                    realRange = FR.Range;
                }

                foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(realRange) && OktwCommon.ValidUlt(enemy)))
                {
                    if (enemy.IsValidTarget(R.Range))
                    {
                        int Rmode = Config.Item("UM" + enemy.ChampionName, true).GetValue <StringList>().SelectedIndex;

                        if (Rmode == 2)
                        {
                            continue;
                        }

                        var poutput  = R.GetPrediction(enemy, true);
                        var aoeCount = poutput.AoeTargetsHitCount;

                        if (Rmode == 1)
                        {
                            R.Cast(poutput.CastPosition);
                        }

                        if (Rmode == 3 && HaveStun)
                        {
                            R.Cast(poutput.CastPosition);
                        }

                        if (aoeCount >= Config.Item("rCount", true).GetValue <Slider>().Value&& Config.Item("rCount", true).GetValue <Slider>().Value > 0)
                        {
                            R.Cast(poutput.CastPosition);
                        }
                        else if (Program.Combo && HaveStun && Config.Item("autoRcombo", true).GetValue <bool>())
                        {
                            R.Cast(poutput.CastPosition);
                        }
                        else if (Config.Item("autoRks", true).GetValue <bool>())
                        {
                            var comboDmg = OktwCommon.GetKsDamage(enemy, R);

                            if (W.IsReady() && RMANA + WMANA < Player.Mana)
                            {
                                comboDmg += W.GetDamage(enemy);
                            }

                            if (Q.IsReady() && RMANA + WMANA + QMANA < Player.Mana)
                            {
                                comboDmg += Q.GetDamage(enemy);
                            }

                            if (enemy.Health < comboDmg)
                            {
                                R.Cast(poutput.CastPosition);
                            }
                        }
                    }
                    else if (HaveStun && flash.IsReady())
                    {
                        var poutputFlas   = FR.GetPrediction(enemy, true);
                        var aoeCountFlash = poutputFlas.AoeTargetsHitCount;
                        if (HaveStun && aoeCountFlash >= Config.Item("rCountFlash", true).GetValue <Slider>().Value&& Config.Item("rCountFlash", true).GetValue <Slider>().Value > 0)
                        {
                            Player.Spellbook.CastSpell(flash, poutputFlas.CastPosition);
                            R.Cast(poutputFlas.CastPosition);
                        }
                    }
                }
            }

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

            if (t.IsValidTarget() && Program.LagFree(2))
            {
                if (Q.IsReady() && Config.Item("autoQ", true).GetValue <bool>())
                {
                    if (Program.Combo && RMANA + WMANA < Player.Mana)
                    {
                        Q.Cast(t);
                    }
                    else if (Program.Farm && RMANA + WMANA + QMANA < Player.Mana && Config.Item("harrasQ", true).GetValue <bool>())
                    {
                        Q.Cast(t);
                    }
                    else
                    {
                        var qDmg = OktwCommon.GetKsDamage(t, Q);
                        var wDmg = W.GetDamage(t);
                        if (qDmg > t.Health)
                        {
                            Q.Cast(t);
                        }
                        else if (qDmg + wDmg > t.Health && Player.Mana > QMANA + WMANA)
                        {
                            Q.Cast(t);
                        }
                    }
                }
                if (W.IsReady() && Config.Item("autoW", true).GetValue <bool>() && t.IsValidTarget(W.Range))
                {
                    var poutput  = W.GetPrediction(t, true);
                    var aoeCount = poutput.AoeTargetsHitCount;

                    if (Program.Combo && RMANA + WMANA < Player.Mana)
                    {
                        W.Cast(poutput.CastPosition);
                    }
                    else if (Program.Farm && RMANA + WMANA + QMANA < Player.Mana && Config.Item("harrasW", true).GetValue <bool>())
                    {
                        W.Cast(poutput.CastPosition);
                    }
                    else
                    {
                        var wDmg = OktwCommon.GetKsDamage(t, W);
                        var qDmg = Q.GetDamage(t);
                        if (wDmg > t.Health)
                        {
                            W.Cast(poutput.CastPosition);
                        }
                        else if (qDmg + wDmg > t.Health && Player.Mana > QMANA + WMANA)
                        {
                            W.Cast(poutput.CastPosition);
                        }
                    }
                }
            }
            else if (Q.IsReady() || W.IsReady())
            {
                if (Config.Item("farmQ", true).GetValue <bool>())
                {
                    if (Config.Item("supportMode", true).GetValue <bool>())
                    {
                        if (Program.LaneClear && Player.Mana > RMANA + QMANA)
                        {
                            farm();
                        }
                    }
                    else
                    {
                        if ((!HaveStun || Program.LaneClear) && Program.Farm)
                        {
                            farm();
                        }
                    }
                }
            }

            if (Program.LagFree(3))
            {
                if (!HaveStun)
                {
                    if (E.IsReady() && !Program.LaneClear && Config.Item("autoE", true).GetValue <bool>() && Player.Mana > RMANA + EMANA + QMANA + WMANA)
                    {
                        E.Cast();
                    }
                    else if (W.IsReady() && Player.InFountain())
                    {
                        W.Cast(Player.Position);
                    }
                }
                if (R.IsReady())
                {
                    if (Config.Item("tibers", true).GetValue <bool>() && HaveTibers && Tibbers != null && Tibbers.IsValid)
                    {
                        var enemy = Program.Enemies.Where(x => x.IsValidTarget() && Tibbers.Distance(x.Position) < 1000 && !x.UnderTurret(true)).OrderBy(x => x.Distance(Tibbers)).FirstOrDefault();
                        if (enemy != null)
                        {
                            if (Tibbers.Distance(enemy.Position) > 200)
                            {
                                Player.IssueOrder(GameObjectOrder.MovePet, enemy);
                            }
                            else
                            {
                                Tibbers.IssueOrder(GameObjectOrder.AttackUnit, enemy);
                            }
                        }
                        else
                        {
                            var annieTarget = Orbwalker.GetTarget() as Obj_AI_Base;
                            if (annieTarget != null)
                            {
                                if (Tibbers.Distance(annieTarget.Position) > 200)
                                {
                                    Player.IssueOrder(GameObjectOrder.MovePet, annieTarget);
                                }
                                else
                                {
                                    Tibbers.IssueOrder(GameObjectOrder.AttackUnit, annieTarget);
                                }
                            }
                            else if (Tibbers.UnderTurret(true))
                            {
                                Player.IssueOrder(GameObjectOrder.MovePet, Player);
                            }
                        }
                    }
                    else
                    {
                        Tibbers = null;
                    }
                }
            }
        }
Пример #24
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.Farm && Config.Item("haras" + 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.Farm && Config.Item("haras" + 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 (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>() && Player.Mana > RMANA + QMANA + WMANA)
            {
                var allMinionsQ = Cache.GetMinions(Player.ServerPosition, Q1.Range);
                var Qfarm       = Q.GetLineFarmLocation(allMinionsQ, 100);
                if (Qfarm.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    Q.Cast(Qfarm.Position);
                }
            }
        }
Пример #25
0
        private void LogicQ()
        {
            var t  = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
            var t1 = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTargetLS(Q.Range) && Player.Distance(t.ServerPosition) > 500)
            {
                var qDmg = OktwCommon.GetKsDamage(t, Q);
                if (qDmg + Player.GetAutoAttackDamage(t) > t.Health)
                {
                    Q.Cast(t);
                }
                else if (qDmg + Player.GetAutoAttackDamage(t) * 3 > t.Health)
                {
                    Q.Cast(t);
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA)
                {
                    Q.Cast(t);
                }
                else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA)
                {
                    Q.Cast(t);
                }
            }
            else if (t1.IsValidTargetLS(Q1.Range) && Config.Item("harasQ", true).GetValue <bool>() && Player.Distance(t1.ServerPosition) > Q.Range + 50)
            {
                var minions = Cache.GetMinions(Player.ServerPosition, Q1.Range);



                if (Config.Item("qMinionMove", true).GetValue <bool>())
                {
                    if (minions.Exists(x => x.IsMoving))
                    {
                        return;
                    }
                }

                var enemyPredictionPos = SebbyLib.Prediction.Prediction.GetPrediction(t1, 0.2f).CastPosition;
                foreach (var minion in minions)
                {
                    if (Config.Item("killQ", true).GetValue <bool>() && Q.GetDamage(minion) < minion.Health)
                    {
                        continue;
                    }

                    var posExt = Player.ServerPosition.Extend(minion.ServerPosition, 420 + Player.Distance(minion)).To3DWorld();

                    if (InCone(enemyPredictionPos, posExt, minion.ServerPosition, Config.Item("qMinionWidth", true).GetValue <Slider>().Value))
                    {
                        Program.debug("dupa");
                        if (minions.Exists(x =>
                                           InCone(x.Position, posExt, minion.ServerPosition, Config.Item("qMinionWidth", true).GetValue <Slider>().Value)
                                           ))
                        {
                            continue;
                        }
                        Q.Cast(minion);
                        return;
                    }
                }
            }
        }
Пример #26
0
        private static void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, DamageType.Physical);

            if (t.IsValidTarget())
            {
                if (getCheckBoxItem(wMenu, "ignoreCol") && SebbyLib.Orbwalking.InAutoAttackRange(t))
                {
                    W.Collision = false;
                }
                else
                {
                    W.Collision = true;
                }

                var qDmg = Q.GetDamage(t);
                var wDmg = OktwCommon.GetKsDamage(t, W);

                if (SebbyLib.Orbwalking.InAutoAttackRange(t))
                {
                    qDmg += (float)AaDamage(t);
                    wDmg += (float)AaDamage(t);
                }

                if (wDmg > t.Health)
                {
                    Program.CastSpell(W, t);
                }
                else if (wDmg + qDmg > t.Health && Q.IsReady() && Player.Mana > RMANA + WMANA + QMANA)
                {
                    Program.CastSpell(W, t);
                }

                var orbT = Orbwalker.LastTarget as AIHeroClient;
                if (orbT == null)
                {
                    if (getCheckBoxItem(wMenu, "wInAaRange"))
                    {
                        return;
                    }
                }
                else if (orbT.LSIsValidTarget())
                {
                    t = orbT;
                }


                if (Program.Combo && Player.Mana > RMANA + WMANA + EMANA + QMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && getCheckBoxItem(harassMenu, "harras" + t.ChampionName) && !Player.UnderTurret(true) && Player.Mana > Player.MaxMana * 0.8 && Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
        }
Пример #27
0
        private static void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

            if (t.LSIsValidTarget() && t.IsVisible && t.IsHPBarRendered)
            {
                var step = t.LSDistance(Player) / 20;
                for (var i = 0; i < 20; i++)
                {
                    var p = Player.Position.LSExtend(t.Position, step * i);
                    if (p.IsWall())
                    {
                        return;
                    }
                }

                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && getCheckBoxItem(qMenu, "haras" + t.NetworkId) &&
                         Player.Mana > RMANA + EMANA + WMANA + QMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else
                {
                    var qDmg = OktwCommon.GetKsDamage(t, Q);
                    var rDmg = GetRDamage(t);
                    if (qDmg > t.Health)
                    {
                        Q.Cast(t, true);
                        OverKill = Game.Time;
                        Program.debug("Q ks");
                    }
                    else if (qDmg + rDmg > t.Health && R.IsReady() && Player.Mana > RMANA + QMANA)
                    {
                        Program.CastSpell(Q, t);
                        if (getCheckBoxItem(rMenu, "fastR") && rDmg < t.Health)
                        {
                            Program.CastSpell(R, t);
                        }
                        Program.debug("Q + R ks");
                    }
                }

                if (!Program.None && Player.Mana > RMANA + QMANA + EMANA)
                {
                    foreach (
                        var enemy in
                        Program.Enemies.Where(enemy => enemy.LSIsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") &&
                     getCheckBoxItem(farmMenu, "farmQ") && Player.Mana > RMANA + QMANA)
            {
                var allMinionsQ = Cache.GetMinions(Player.ServerPosition, Q.Range);
                var Qfarm       = Q.GetLineFarmLocation(allMinionsQ, Q.Width);
                if (Qfarm.MinionsHit > 2)
                {
                    Q.Cast(Qfarm.Position);
                }
            }
        }
Пример #28
0
        private static void LogicQ()
        {
            var t  = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
            var t1 = TargetSelector.GetTarget(Q1.Range, DamageType.Physical);

            if (t.IsValidTarget(Q.Range) && Player.Distance(t.ServerPosition) > 500)
            {
                var qDmg = OktwCommon.GetKsDamage(t, Q);
                if (qDmg + Player.GetAutoAttackDamage(t) > t.Health)
                {
                    Q.Cast(t);
                }
                else if (qDmg + Player.GetAutoAttackDamage(t) * 3 > t.Health)
                {
                    Q.Cast(t);
                }
                else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA)
                {
                    Q.Cast(t);
                }
                else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA)
                {
                    Q.Cast(t);
                }
            }
            else if (t1.IsValidTarget(Q1.Range) && getCheckBoxItem(qMenu, "harasQ") &&
                     Player.Distance(t1.ServerPosition) > Q.Range + 50)
            {
                if (getCheckBoxItem(qMenu, "qMinionMove"))
                {
                    var minions = Cache.GetMinions(Player.ServerPosition, Q1.Range);

                    if (minions.Exists(x => x.IsMoving))
                    {
                        return;
                    }
                }

                Q1.Width = getSliderItem(qMenu, "qMinionWidth");

                var poutput = Q1.GetPrediction(t1);
                var col     = poutput.CollisionObjects;
                if (!col.Any())
                {
                    return;
                }

                var minionQ = col.Last();
                if (minionQ.IsValidTarget(Q.Range))
                {
                    if (getCheckBoxItem(qMenu, "killQ") && Q.GetDamage(minionQ) < minionQ.Health)
                    {
                        return;
                    }
                    var minionToT = minionQ.Distance(t1.Position);
                    var minionToP = minionQ.Distance(poutput.CastPosition);
                    if (minionToP < 400 && minionToT < 420 && minionToT > 150 && minionToP > 200)
                    {
                        if (Q.GetDamage(t1) + Player.GetAutoAttackDamage(t1) > t1.Health)
                        {
                            Q.Cast(col.Last());
                        }
                        else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA)
                        {
                            Q.Cast(col.Last());
                        }
                        else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA + QMANA)
                        {
                            Q.Cast(col.Last());
                        }
                    }
                }
            }
        }
Пример #29
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                var step = t.Distance(Player) / 20;
                for (var i = 0; i < 20; i++)
                {
                    var p = Player.Position.Extend(t.Position, step * i);
                    if (p.IsWall())
                    {
                        return;
                    }
                }

                var qDmg = OktwCommon.GetKsDamage(t, Q);
                var rDmg = R.GetDamage(t);
                if (qDmg > t.Health)
                {
                    Q.Cast(t, true);
                    OverKill = Game.Time;
                    Program.debug("Q ks");
                }

                else if (qDmg + rDmg > t.Health && R.IsReady())
                {
                    Program.CastSpell(Q, t);
                    if (Config.Item("fastR", true).GetValue <bool>() && rDmg < t.Health)
                    {
                        Program.CastSpell(R, t);
                    }
                    Program.debug("Q + R ks");
                }

                else
                {
                    if (Program.Combo && Player.Mana > RMANA + QMANA)
                    {
                        Program.CastSpell(Q, t);
                    }
                    else if ((Program.Farm && Config.Item("haras" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + QMANA + QMANA))
                    {
                        Program.CastSpell(Q, t);
                    }
                }

                if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + QMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>() && ObjectManager.Player.Mana > RMANA + QMANA + EMANA + WMANA)
            {
                var allMinionsQ = MinionManager.GetMinions(Player.ServerPosition, Q.Range, MinionTypes.All);
                var Qfarm       = Q.GetLineFarmLocation(allMinionsQ, Q.Width);
                if (Qfarm.MinionsHit > 3)
                {
                    Q.Cast(Qfarm.Position);
                }
            }
        }
Пример #30
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                if (Config.Item("ignoreCol", true).GetValue <bool>() && Orbwalking.InAutoAttackRange(t))
                {
                    W.Collision = false;
                }
                else
                {
                    W.Collision = true;
                }

                var qDmg = Q.GetDamage(t);
                var wDmg = OktwCommon.GetKsDamage(t, W);

                if (Orbwalking.InAutoAttackRange(t))
                {
                    qDmg += (float)AaDamage(t);
                    wDmg += (float)AaDamage(t);
                }

                if (wDmg > t.Health)
                {
                    Program.CastSpell(W, t);
                }
                else if (wDmg + qDmg > t.Health && Q.IsReady() && Player.Mana > RMANA + WMANA + QMANA)
                {
                    Program.CastSpell(W, t);
                }

                var orbT = Orbwalker.GetTarget() as AIHeroClient;
                if (orbT == null)
                {
                    if (Config.Item("wInAaRange", true).GetValue <bool>())
                    {
                        return;
                    }
                }
                else if (orbT.IsValidTarget())
                {
                    t = orbT;
                }


                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && Player.Mana > RMANA + WMANA + EMANA + QMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && Config.Item("harras" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && Player.Mana > Player.MaxMana * 0.8 && Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA + EMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
        }