Ejemplo n.º 1
0
        private static void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (t.IsValidTarget() && getCheckBoxItem(qMenu, "Qon" + t.NetworkId))
            {
                if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && OktwCommon.CanHarras() && getCheckBoxItem(qMenu, "harrasQ") &&
                         getCheckBoxItem(harassMenu, "harras" + t.NetworkId) &&
                         Player.ManaPercent > getSliderItem(qMenu, "QHarassMana"))
                {
                    Program.CastSpell(Q, t);
                }
                else if (OktwCommon.GetKsDamage(t, Q) > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                foreach (
                    var enemy in
                    Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                {
                    Program.CastSpell(Q, t);
                }
            }
            if (!OktwCommon.CanHarras())
            {
                return;
            }

            if (!Program.None && !Program.Combo && Player.Mana > RMANA + QMANA * 2)
            {
                var allMinions = Cache.GetMinions(Player.ServerPosition, Q.Range);

                if (getCheckBoxItem(farmMenu, "farmQout"))
                {
                    foreach (
                        var minion in
                        allMinions.Where(
                            minion =>
                            minion.IsValidTarget(Q.Range) &&
                            (!InAutoAttackRange(minion) || (!minion.UnderTurret(true) && minion.UnderTurret())))
                        )
                    {
                        var hpPred = HealthPrediction.GetHealthPrediction(minion, 1100);
                        if (hpPred < GetQDamage(minion) * 0.9 && hpPred > minion.Health - hpPred * 2)
                        {
                            Q.Cast(minion);
                            return;
                        }
                    }
                }

                if (Program.LaneClear && getCheckBoxItem(farmMenu, "farmQ") &&
                    Player.ManaPercent > getSliderItem(farmMenu, "Mana"))
                {
                    foreach (
                        var minion in
                        allMinions.Where(minion => minion.IsValidTarget(Q.Range) && InAutoAttackRange(minion)))
                    {
                        var hpPred = HealthPrediction.GetHealthPrediction(minion, 1100);
                        if (hpPred < GetQDamage(minion) * 0.9 && hpPred > minion.Health - hpPred * 2)
                        {
                            Q.Cast(minion);
                            return;
                        }
                    }
                }

                if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") &&
                    getCheckBoxItem(farmMenu, "farmQ"))
                {
                    var farmPos = Q.GetCircularFarmLocation(allMinions, Q.Width);
                    if (farmPos.MinionsHit >= getSliderItem(farmMenu, "QLCminions"))
                    {
                        Q.Cast(farmPos.Position);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void LogicE()
        {
            foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(E.Range) && E.GetDamage(enemy) + OktwCommon.GetKsDamage(enemy, Q) + W.GetDamage(enemy) + OktwCommon.GetEchoLudenDamage(enemy) > enemy.Health))
            {
                Program.CastSpell(E, enemy);
            }
            var t = Orbwalker.GetTarget() as AIHeroClient;

            if (!t.IsValidTargetLS())
            {
                t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
            }
            if (t.IsValidTargetLS())
            {
                if (Program.Combo && Player.Mana > RMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                if (Program.Farm && OktwCommon.CanHarras() && Config.Item("harrasE", true).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(E.Range) && !OktwCommon.CanMove(enemy)))
                {
                    E.Cast(enemy);
                }
            }
        }
Ejemplo n.º 3
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) + BonusDmg(t);
                if (wDmg > t.Health)
                {
                    Program.CastSpell(W, t);
                }
                else if (wDmg + qDmg > t.Health && Player.Mana > QMANA + EMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && Config.Item("harrasW", true).GetValue <bool>() && Config.Item("harras" + 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);
                }

                if (Player.Mana > RMANA + WMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmW", true).GetValue <bool>() && Player.Mana > RMANA + QMANA + WMANA)
            {
                var allMinions = MinionManager.GetMinions(Player.ServerPosition, W.Range, MinionTypes.All);
                var farmPos    = W.GetCircularFarmLocation(allMinions, W.Width);
                if (farmPos.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    W.Cast(farmPos.Position);
                }
            }
        }
Ejemplo n.º 4
0
        private void RUsage()
        {
            // Massive Thanks to Sebby for the time saved instead of writing it from scratch, instead I 'stole' it from him :feelsbadman:
            var bounceRange = 430;
            var t2          = TargetSelector.GetTarget(R.Range + bounceRange, TargetSelector.DamageType.Magical);

            if (t2.IsValidTarget(R.Range) &&
                (t2.CountEnemiesInRange(bounceRange) >= Config.NearbyREnemies.GetValue <Slider>().Value) &&
                (Config.NearbyREnemies.GetValue <Slider>().Value > 0))
            {
                R.Cast(t2);
            }

            if (t2.IsValidTarget() && OktwCommon.ValidUlt(t2))
            {
                if ((t2.CountAlliesInRange(550) == 0) || (Player.HealthPercent < 50) ||
                    (t2.CountEnemiesInRange(bounceRange) > 1))
                {
                    var prepos = R.GetPrediction(t2).CastPosition;
                    var dmgR   = R.GetDamage(t2);

                    if (t2.Health < dmgR * 3)
                    {
                        var totalDmg    = dmgR;
                        var minionCount = CountMinionsInRange(bounceRange, prepos);

                        if (t2.IsValidTarget(R.Range))
                        {
                            if (prepos.CountEnemiesInRange(bounceRange) > 1)
                            {
                                if (minionCount > 2)
                                {
                                    totalDmg = dmgR * 2;
                                }
                                else
                                {
                                    totalDmg = dmgR * 3;
                                }
                            }
                            else if (minionCount > 0)
                            {
                                totalDmg = dmgR * 2;
                            }

                            if (W.IsReady())
                            {
                                totalDmg += W.GetDamage(t2);
                            }

                            if (E.IsReady())
                            {
                                totalDmg += E.GetDamage(t2);
                            }

                            if (Q.IsReady())
                            {
                                totalDmg += Q.GetDamage(t2);
                            }

                            totalDmg += BonusDmg(t2);
                            totalDmg += OktwCommon.GetEchoLudenDamage(t2);

                            // Hex
                            if (Items.HasItem(3155, t2))
                            {
                                totalDmg = totalDmg - 250;
                            }

                            // MoM
                            if (Items.HasItem(3156, t2))
                            {
                                totalDmg = totalDmg - 300;
                            }

                            if ((totalDmg > t2.Health - OktwCommon.GetIncomingDamage(t2)) &&
                                (Player.GetAutoAttackDamage(t2) * 2 < t2.Health))
                            {
                                R.CastOnUnit(t2);
                            }
                        }
                        else if (t2.Health - OktwCommon.GetIncomingDamage(t2) < dmgR * 2 + BonusDmg(t2))
                        {
                            if (Player.CountEnemiesInRange(R.Range) > 0)
                            {
                                foreach (
                                    var t in
                                    HeroManager.Enemies.Where(
                                        enemy => enemy.IsValidTarget(R.Range) && (enemy.Distance(prepos) < bounceRange))
                                    )
                                {
                                    R.CastOnUnit(t);
                                }
                            }
                            else
                            {
                                var minions = Cache.GetMinions(Player.Position, R.Range);
                                foreach (
                                    var minion in
                                    minions.Where(
                                        minion =>
                                        minion.IsValidTarget(R.Range) && (minion.Distance(prepos) < bounceRange))
                                    )
                                {
                                    R.CastOnUnit(minion);
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

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

                if (wDmg > t.Health)
                {
                    Program.CastSpell(W, t);
                }
                else if (wDmg + qDmg > t.Health && Player.Mana > WMANA + QMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && OktwCommon.CanHarras() && Config.Item("harrasW", true).GetValue <bool>() && Config.Item("harras" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if ((Program.Combo || Program.Farm))
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmW", true).GetValue <bool>() && Player.Mana > RMANA + WMANA)
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, W.Range);
                var farmPosition = W.GetCircularFarmLocation(minionList, W.Width);

                if (farmPosition.MinionsHit > Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    W.Cast(farmPosition.Position);
                }
            }
        }
Ejemplo n.º 6
0
        private void Drawing_OnDraw(EventArgs args)
        {
            if (QMissile != null && QMissile.IsValid && Config.Item("Qhelp").GetValue <bool>())
            {
                OktwCommon.DrawLineRectangle(QMissile.Position, Player.Position, (int)Q.Width, 1, System.Drawing.Color.White);
            }

            if (Config.Item("qRange").GetValue <bool>())
            {
                if (Config.Item("onlyRdy").GetValue <bool>())
                {
                    if (Q.IsReady())
                    {
                        Utility.DrawCircle(Player.Position, Q.Range, System.Drawing.Color.Cyan, 1, 1);
                    }
                }
                else
                {
                    Utility.DrawCircle(Player.Position, Q.Range, System.Drawing.Color.Cyan, 1, 1);
                }
            }

            if (Config.Item("wRange").GetValue <bool>())
            {
                if (Config.Item("onlyRdy").GetValue <bool>())
                {
                    if (W.IsReady())
                    {
                        Utility.DrawCircle(Player.Position, W.Range, System.Drawing.Color.Orange, 1, 1);
                    }
                }
                else
                {
                    Utility.DrawCircle(Player.Position, W.Range, System.Drawing.Color.Orange, 1, 1);
                }
            }

            if (Config.Item("eRange").GetValue <bool>())
            {
                if (Config.Item("onlyRdy").GetValue <bool>())
                {
                    if (E.IsReady())
                    {
                        Utility.DrawCircle(Player.Position, E.Range, System.Drawing.Color.Yellow, 1, 1);
                    }
                }
                else
                {
                    Utility.DrawCircle(Player.Position, E.Range, System.Drawing.Color.Yellow, 1, 1);
                }
            }

            if (Config.Item("noti").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Physical);

                if (t.IsValidTarget())
                {
                    var comboDmg = 0f;
                    if (R.IsReady())
                    {
                        comboDmg += R.GetDamage(t) * 3;
                    }
                    if (Q.IsReady())
                    {
                        comboDmg += Q.GetDamage(t) * 2;
                    }
                    if (W.IsReady())
                    {
                        comboDmg += W.GetDamage(t) + W.GetDamage(t, 1);
                    }
                    if (comboDmg > t.Health)
                    {
                        Drawing.DrawText(Drawing.Width * 0.1f, Drawing.Height * 0.5f, System.Drawing.Color.Red, "COMBO KILL " + t.ChampionName + " have: " + t.Health + "hp");
                        drawLine(t.Position, Player.Position, 10, System.Drawing.Color.Yellow);
                    }
                }
            }
        }
Ejemplo n.º 7
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 HeroManager.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.Harass && RMANA + WMANA + QMANA < Player.Mana && Config.Item("harassQ", true).GetValue <bool>() && Config.Item("Harass" + t.ChampionName).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.Harass && RMANA + WMANA + QMANA < Player.Mana && Config.Item("harassW", 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.Harass)
                        {
                            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 = HeroManager.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;
                    }
                }
            }
        }
Ejemplo n.º 8
0
 private float GetWDmg(Obj_AI_Base target)
 {
     return(OktwCommon.GetBuffCount(target, "varuswdebuff") * W.GetDamage(target, 1));
 }
Ejemplo n.º 9
0
        private void OnUpdate(EventArgs args)
        {
            if (Player.IsDead || Player.IsRecalling())
            {
                return;
            }

            if (Player.IsChannelingImportantSpell() || (Game.Time - Rtime < 2.5) ||
                Player.HasBuff("malzaharrsound"))
            {
                Orbwalker.SetAttack(false);
                Orbwalker.SetMovement(false);
                return;
            }
            Orbwalker.SetAttack(true);
            Orbwalker.SetMovement(true);

            //new Activator().SeraphUsage();
            //new Activator().ProHexGLPUsage();
            if (E.IsReady() && Config.ksE.GetValue <bool>())
            {
                foreach (
                    var h in
                    HeroManager.Enemies.Where(
                        h =>
                        h.IsValidTarget(E.Range) &&
                        (h.Health < OktwCommon.GetKsDamage(h, E) + OktwCommon.GetEchoLudenDamage(h))))
                {
                    E.Cast(h);
                }
            }

            if (Q.IsReady() && Config.ksQ.GetValue <bool>())
            {
                foreach (
                    var h in
                    HeroManager.Enemies.Where(
                        h =>
                        h.IsValidTarget(Q.Range) &&
                        (h.Health < OktwCommon.GetKsDamage(h, Q) + OktwCommon.GetEchoLudenDamage(h))))
                {
                    SpellCast.SebbySpellMain(Q, h);
                }
            }

            // Combo
            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                if (Config.DontAAInCombo.GetValue <bool>())
                {
                    Orbwalker.SetAttack(false);
                }
                else
                {
                    Orbwalker.SetAttack(true);
                }

                Combo();
            }

            // Burst
            if (Config.oneshot.GetValue <KeyBind>().Active)
            {
                Oneshot();
            }

            // Lane
            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                Lane();
            }

            // AutoHarass
            AutoHarass();
        }
Ejemplo n.º 10
0
        private void LogicQ()
        {
            foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(1600) && Q.GetDamage(enemy) + GetWDmg(enemy) > enemy.Health))
            {
                if (enemy.IsValidTarget(R.Range))
                {
                    CastQ(enemy);
                }
                return;
            }

            if (Config.Item("maxQ", true).GetValue <bool>() && (Q.Range < 1500) && Player.CountEnemiesInRange(AArange) == 0)
            {
                return;
            }

            var t = Orbwalker.GetTarget() as Obj_AI_Hero;

            if (!t.IsValidTarget())
            {
                t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
            }

            if (t.IsValidTarget())
            {
                if (Q.IsCharging)
                {
                    if (Config.Item("fastQ", true).GetValue <bool>())
                    {
                        Q.Cast(Q.GetPrediction(t).CastPosition);
                    }

                    if (GetQEndTime() > 2)
                    {
                        Program.CastSpell(Q, t);
                    }
                    else
                    {
                        Q.Cast(Q.GetPrediction(t).CastPosition);
                    }
                    return;
                }

                if ((OktwCommon.GetBuffCount(t, "varuswdebuff") == 3 && CanCast && !E.IsReady()) || !SebbyLib.Orbwalking.InAutoAttackRange(t))
                {
                    if ((Program.Combo || (OktwCommon.GetBuffCount(t, "varuswdebuff") == 3 && Program.Farm)) && Player.Mana > RMANA + QMANA)
                    {
                        CastQ(t);
                    }
                    else if (Program.Farm && Player.Mana > RMANA + EMANA + QMANA + QMANA && Config.Item("harras" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && OktwCommon.CanHarras())
                    {
                        CastQ(t);
                    }
                    else if (!Program.None && Player.Mana > RMANA + WMANA)
                    {
                        foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                        {
                            CastQ(enemy);
                        }
                    }
                }
            }
            else if (Program.LaneClear && Config.Item("farmQ", true).GetValue <bool>() && Player.Mana > RMANA + QMANA + WMANA && Q.Range > 1500 && Player.CountEnemiesInRange(1450) == 0 && (Q.IsCharging || (Player.ManaPercentage() > Config.Item("Mana", true).GetValue <Slider>().Value)))
            {
                var allMinionsQ = Cache.GetMinions(Player.ServerPosition, Q.Range);
                var Qfarm       = Q.GetLineFarmLocation(allMinionsQ, Q.Width);
                if (Qfarm.MinionsHit > 3 || (Q.IsCharging && Qfarm.MinionsHit > 0))
                {
                    Q.Cast(Qfarm.Position);
                }
            }
        }
Ejemplo n.º 11
0
        private void LogicE()
        {
            foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(E.Range) && E.GetDamage(enemy) + GetWDmg(enemy) > enemy.Health))
            {
                Program.CastSpell(E, enemy);
            }
            var t = Orbwalker.GetTarget() as Obj_AI_Hero;

            if (!t.IsValidTarget())
            {
                t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
            }
            if (t.IsValidTarget())
            {
                if ((OktwCommon.GetBuffCount(t, "varuswdebuff") == 3 && CanCast) || !SebbyLib.Orbwalking.InAutoAttackRange(t))
                {
                    if (Program.Combo && Player.Mana > RMANA + QMANA)
                    {
                        Program.CastSpell(E, t);
                    }
                    else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA)
                    {
                        foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(E.Range) && !OktwCommon.CanMove(enemy)))
                        {
                            E.Cast(enemy);
                        }
                    }
                }
            }
        }
Ejemplo n.º 12
0
 private void LogicR()
 {
     foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(R.Range)))
     {
         if (enemy.CountEnemiesInRange(400) >= Config.Item("rCount", true).GetValue <Slider>().Value&& Config.Item("rCount", true).GetValue <Slider>().Value > 0)
         {
             R.Cast(enemy, true, true);
             Program.debug("R AOE");
         }
         if ((enemy.CountAlliesInRange(600) == 0 || Player.Health < Player.MaxHealth * 0.5) && R.GetDamage(enemy) + GetWDmg(enemy) + Q.GetDamage(enemy) > enemy.Health && OktwCommon.ValidUlt(enemy))
         {
             Program.CastSpell(R, enemy);
             Program.debug("R KS");
         }
     }
     if (Player.Health < Player.MaxHealth * 0.5)
     {
         foreach (var target in Program.Enemies.Where(target => target.IsValidTarget(270) && target.IsMelee && Config.Item("GapCloser" + target.ChampionName).GetValue <bool>()))
         {
             Program.CastSpell(R, target);
         }
     }
 }
Ejemplo n.º 13
0
        private void LogicR()
        {
            var targetR = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.True);

            if (targetR.IsValidTarget() && OktwCommon.ValidUlt(targetR) && Config.Item("autoRbuff", true).GetValue <bool>())
            {
                var buffTime = OktwCommon.GetPassiveTime(Player, "dariusexecutemulticast");
                if ((buffTime < 2 || (Player.HealthPercent < 10 && Config.Item("autoRdeath", true).GetValue <bool>())) && buffTime > 0)
                {
                    R.Cast(targetR, true);
                }
            }

            foreach (var target in Program.Enemies.Where(target => target.IsValidTarget(R.Range) && OktwCommon.ValidUlt(target)))
            {
                var dmgR = OktwCommon.GetKsDamage(target, R);
                if (target.HasBuff("dariushemo"))
                {
                    dmgR += R.GetDamage(target) * target.GetBuff("dariushemo").Count * 0.2f;
                }

                if (dmgR > target.Health + target.HPRegenRate)
                {
                    R.Cast(target);
                }
            }
        }
Ejemplo n.º 14
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (getCheckBoxItem(drawMenu, "qRange"))
            {
                if (getCheckBoxItem(drawMenu, "onlyRdy"))
                {
                    if (Q.IsReady())
                    {
                        Utility.DrawCircle(Player.Position, Q.Range, Color.Cyan, 1, 1);
                    }
                }
                else
                {
                    Utility.DrawCircle(Player.Position, Q.Range, Color.Cyan, 1, 1);
                }
            }
            if (getCheckBoxItem(drawMenu, "wRange"))
            {
                if (getCheckBoxItem(drawMenu, "onlyRdy"))
                {
                    if (W.IsReady())
                    {
                        Utility.DrawCircle(ObjectManager.Player.Position, W.Range, Color.Orange, 1, 1);
                    }
                }
                else
                {
                    Utility.DrawCircle(ObjectManager.Player.Position, W.Range, Color.Orange, 1, 1);
                }
            }
            if (getCheckBoxItem(drawMenu, "eRange"))
            {
                if (getCheckBoxItem(drawMenu, "onlyRdy"))
                {
                    if (E.IsReady())
                    {
                        Utility.DrawCircle(Player.Position, E.Range, Color.Yellow, 1, 1);
                    }
                }
                else
                {
                    Utility.DrawCircle(Player.Position, E.Range, Color.Yellow, 1, 1);
                }
            }
            if (getCheckBoxItem(drawMenu, "rRange"))
            {
                if (getCheckBoxItem(drawMenu, "onlyRdy"))
                {
                    if (R.IsReady())
                    {
                        Utility.DrawCircle(Player.Position, R.Range, Color.Gray, 1, 1);
                    }
                }
                else
                {
                    Utility.DrawCircle(Player.Position, R.Range, Color.Gray, 1, 1);
                }
            }
            if (R.IsReady() && getCheckBoxItem(drawMenu, "noti"))
            {
                var t = TargetSelector.GetTarget(R.Range, DamageType.Magical);

                if (t.IsValidTarget() && OktwCommon.GetKsDamage(t, R) > t.Health)
                {
                    Drawing.DrawText(Drawing.Width * 0.1f, Drawing.Height * 0.5f, Color.Red,
                                     "Ult can kill: " + t.ChampionName + " Heal - damage =  " +
                                     (t.Health - OktwCommon.GetKsDamage(t, R)) + " hp");
                }
            }
        }
Ejemplo n.º 15
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                if (EMissile == null || !EMissile.IsValid)
                {
                    if (Q.GetDamage(t) * 2 > t.Health)
                    {
                        Q.Cast(t, true);
                    }
                    else if (Program.Combo && ObjectManager.Player.Mana > RMANA + QMANA)
                    {
                        Program.CastSpell(Q, t);
                    }
                    else if (Program.Farm && Player.Mana > RMANA + WMANA + QMANA + QMANA && Config.Item("harrasQ").GetValue <bool>() && Config.Item("harras" + t.ChampionName).GetValue <bool>())
                    {
                        Program.CastSpell(Q, t);
                    }
                }
                if (Player.Mana > RMANA + QMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy, true);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana").GetValue <Slider>().Value&& Config.Item("farmQ").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);
                }
            }
        }
Ejemplo n.º 16
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > EMANA + QMANA - 10)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Harass && Config.Item("harassQ", true).GetValue <bool>() && Config.Item("Harass" + 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.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy, true);
                    }
                }
            }
        }
Ejemplo n.º 17
0
        private void LogicE()
        {
            foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(E.Range) && E.GetDamage(enemy) + Q.GetDamage(enemy) + W.GetDamage(enemy) > enemy.Health))
            {
                Program.CastSpell(E, enemy);
            }
            var t = Orbwalker.GetTarget() as Obj_AI_Hero;

            if (!t.IsValidTarget())
            {
                t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
            }
            if (t.IsValidTarget() && Config.Item("Eon" + t.ChampionName).GetValue <bool>())
            {
                if (Program.Combo && Player.Mana > RMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                if (Program.Farm && Config.Item("harrasE").GetValue <bool>() && Config.Item("harras" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(E.Range) && !OktwCommon.CanMove(enemy)))
                {
                    E.Cast(enemy);
                }
            }
        }
Ejemplo n.º 18
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.IsChannelingImportantSpell() || Game.Time - Rtime < 2.5 || Player.HasBuff("malzaharrsound"))
            {
                Program.debug("R chaneling");
                OktwCommon.blockMove   = true;
                OktwCommon.blockAttack = true;
                OktwCommon.blockSpells = true;
                Orbwalking.Attack      = false;
                Orbwalking.Move        = false;
                return;
            }
            else
            {
                OktwCommon.blockSpells = false;
                OktwCommon.blockMove   = false;
                OktwCommon.blockAttack = false;
                Orbwalking.Attack      = true;
                Orbwalking.Move        = true;
            }



            if (R.IsReady() && MainMenu.Item("useR", true).GetValue <KeyBind>().Active)
            {
                if (MainMenu.Item("useR", true).GetValue <KeyBind>().Active)
                {
                    var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                    if (t.IsValidTarget(R.Range) && MainMenu.Item("Ron" + t.ChampionName).GetValue <bool>() && OktwCommon.ValidUlt(t))
                    {
                        R.CastOnUnit(t);
                        return;
                    }
                }
                else if (MainMenu.Item("smartR", true).GetValue <KeyBind>().Active)
                {
                    var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                    if (t.IsValidTarget(R.Range) && OktwCommon.ValidUlt(t))
                    {
                        R.CastOnUnit(t);
                        return;
                    }
                }
            }

            if (Program.LagFree(0))
            {
                SetMana();
                Jungle();
            }

            if (Program.LagFree(1) && E.IsReady() && MainMenu.Item("autoE", true).GetValue <bool>())
            {
                LogicE();
            }
            if (Program.LagFree(2) && Q.IsReady() && MainMenu.Item("autoQ", true).GetValue <bool>())
            {
                LogicQ();
            }
            if (Program.LagFree(3) && W.IsReady() && MainMenu.Item("autoW", true).GetValue <bool>())
            {
                LogicW();
            }
            if (Program.LagFree(4) && R.IsReady() && MainMenu.Item("autoR", true).GetValue <bool>())
            {
                LogicR();
            }
        }
Ejemplo n.º 19
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.Harass && Config.Item("Harass" + 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.Harass) && Player.Mana > RMANA + WMANA + EMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
        }
Ejemplo n.º 20
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                var qDmg = OktwCommon.GetKsDamage(t, Q) + BonusDmg(t);

                if (qDmg > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                if (R.IsReady() && t.IsValidTarget(R.Range))
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Harass && MainMenu.Item("harassQ", true).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA && MainMenu.Item("Harass" + t.ChampionName).GetValue <bool>())
                {
                    Program.CastSpell(Q, t);
                }

                if (Player.Mana > RMANA + QMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (FarmSpells && MainMenu.Item("farmQ", true).GetValue <bool>())
            {
                var allMinions = Cache.GetMinions(Player.ServerPosition, Q.Range);
                var farmPos    = Q.GetCircularFarmLocation(allMinions, 150);
                if (farmPos.MinionsHit >= FarmMinions)
                {
                    Q.Cast(farmPos.Position);
                }
            }
        }
Ejemplo n.º 21
0
        private void QUsage()
        {
            var m = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (!m.IsValidTarget())
            {
                return;
            }
            // Q Improvement + KS Below
            if (OktwCommon.GetKsDamage(m, Q) + BonusDmg(m) + OktwCommon.GetEchoLudenDamage(m) > m.Health)
            {
                SpellCast.SebbySpellMain(Q, m);
            }
            if (Config.QAblazedEnemy.GetValue <bool>() && m.HasBuff("brandablaze"))
            {
                foreach (
                    var enemy in
                    HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && enemy.HasBuff("brandablaze")))
                {
                    SpellCast.SebbySpellMain(Q, enemy);
                }
            }
            else
            {
                if (m.HasBuff("brandablaze") && Config.QAblazedEnemy.GetValue <bool>())
                {
                    var spreadTarget = m;

                    foreach (
                        var enemy in
                        HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && enemy.HasBuff("brandablaze"))
                        )
                    {
                        m = enemy;
                    }

                    if ((spreadTarget == m) && !LogQUse(m))
                    {
                        return;
                    }
                }

                if ((Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) && !W.IsReady() &&
                    (Player.ManaPercent > RManaC + Q.ManaCost))
                {
                    var enemystunned =
                        HeroManager.Enemies.Find(
                            enemy =>
                            (enemy.IsValidTarget(Q.Range) && enemy.HasBuff("stun")) ||
                            (enemy.IsStunned && Config.PrioritizeStunned.GetValue <bool>()));
                    if (enemystunned != null)
                    {
                        Orbwalker.ForceTarget(enemystunned);
                        SpellCast.SebbySpellMain(Q, enemystunned);
                    }
                    else
                    {
                        Orbwalker.ForceTarget(m);
                        SpellCast.SebbySpellMain(Q, m);
                    }
                }
                if (Player.Mana > RManaC + Q.ManaCost)
                {
                    var enemystunned =
                        HeroManager.Enemies.Find(
                            enemy =>
                            (enemy.IsValidTarget(Q.Range) && enemy.HasBuff("stun")) ||
                            (enemy.IsStunned && Config.PrioritizeStunned.GetValue <bool>()));
                    if (enemystunned != null)
                    {
                        Orbwalker.ForceTarget(enemystunned);
                        SpellCast.SebbySpellMain(Q, enemystunned);
                    }
                    else
                    {
                        Orbwalker.ForceTarget(m);
                        SpellCast.SebbySpellMain(Q, m);
                    }
                }
            }
        }
Ejemplo n.º 22
0
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                var qDmg = Q.GetDamage(t);
                var wDmg = OktwCommon.GetKsDamage(t, W) + BonusDmg(t);
                if (wDmg > t.Health)
                {
                    W.Cast(Player.Position.Extend(t.Position, 450));
                }
                else if (wDmg + qDmg > t.Health && Player.Mana > QMANA + EMANA)
                {
                    W.Cast(Player.Position.Extend(t.Position, 450));
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA)
                {
                    W.Cast(Player.Position.Extend(t.Position, 450));
                }
                else if (Program.Harass && MainMenu.Item("harassW", true).GetValue <bool>() && MainMenu.Item("Harass" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA && OktwCommon.CanHarras())
                {
                    W.Cast(Player.Position.Extend(t.Position, 450));
                }
            }
            else if (FarmSpells && MainMenu.Item("farmW", true).GetValue <bool>())
            {
                var allMinions = Cache.GetMinions(Player.ServerPosition, W.Range);
                var farmPos    = W.GetCircularFarmLocation(allMinions, W.Width);
                if (farmPos.MinionsHit >= FarmMinions)
                {
                    W.Cast(farmPos.Position);
                }
            }
        }
Ejemplo n.º 23
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (Program.LagFree(3) && R.IsReady())
            {
                LogicR();
            }


            //Program.debug(""+OktwCommon.GetPassiveTime(Player, "XerathArcanopulseChargeUp"));
            if (IsCastingR || Player.IsChannelingImportantSpell())
            {
                OktwCommon.blockMove   = true;
                OktwCommon.blockAttack = true;
                OktwCommon.blockAttack = true;
                OktwCommon.blockMove   = true;
                LeagueSharp.Common.Orbwalking.Attack = false;
                LeagueSharp.Common.Orbwalking.Move   = false;
                return;
            }
            else
            {
                OktwCommon.blockMove   = false;
                OktwCommon.blockAttack = false;
                OktwCommon.blockAttack = false;
                OktwCommon.blockMove   = false;
                LeagueSharp.Common.Orbwalking.Attack = true;
                LeagueSharp.Common.Orbwalking.Move   = true;
            }

            if (Q.IsCharging && (int)(Game.Time * 10) % 2 == 0)
            {
                EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            }

            if (Program.LagFree(1))
            {
                SetMana();
                Jungle();
                int[] mana = new int[] { 0, 30, 33, 36, 42, 48, 54, 63, 72, 81, 90, 102, 114, 126, 138, 150, 165, 180, 195 };
                if (!Player.HasBuff("xerathascended2onhit") || Player.Mana + mana[Player.Level] > Player.MaxMana)
                {
                    Orbwalker.ForceTarget(null);
                }
                else if ((Program.Combo || Program.Farm) && Config.Item("force", true).GetValue <bool>() && Orbwalker.GetTarget() == null)
                {
                    var minion = Cache.GetMinions(Player.ServerPosition, Player.AttackRange + Player.BoundingRadius * 2).OrderByDescending(x => x.Health).FirstOrDefault();

                    if (minion != null && OktwCommon.CanHarras())
                    {
                        Orbwalker.ForceTarget(minion);
                    }
                }
            }

            if (E.IsReady() && Config.Item("autoE", true).GetValue <bool>())
            {
                LogicE();
            }
            if (Program.LagFree(2) && W.IsReady() && !Player.Spellbook.IsAutoAttacking && Config.Item("autoW", true).GetValue <bool>())
            {
                LogicW();
            }
            if (Program.LagFree(4) && Q.IsReady() && !Player.Spellbook.IsAutoAttacking && Config.Item("autoQ", true).GetValue <bool>())
            {
                LogicQ();
            }
        }
Ejemplo n.º 24
0
        private static void SebbySpell(Spell WR, Obj_AI_Base target)
        {
            var CoreType2 = SebbyLib.Prediction.SkillshotType.SkillshotLine;
            var aoe2      = false;

            if (WR.Type == SkillshotType.SkillshotCircle)
            {
                CoreType2 = SebbyLib.Prediction.SkillshotType.SkillshotCircle;
                aoe2      = true;
            }

            if ((WR.Width > 80) && !WR.Collision)
            {
                aoe2 = true;
            }

            var predInput2 = new PredictionInput
            {
                Aoe       = aoe2,
                Collision = WR.Collision,
                Speed     = WR.Speed,
                Delay     = WR.Delay,
                Range     = WR.Range,
                From      = Player.ServerPosition,
                Radius    = WR.Width,
                Unit      = target,
                Type      = CoreType2
            };
            var poutput2 = Prediction.GetPrediction(predInput2);

            if (OktwCommon.CollisionYasuo(Player.ServerPosition, poutput2.CastPosition))
            {
                return;
            }

            if ((WR.Speed != float.MaxValue) && OktwCommon.CollisionYasuo(Player.ServerPosition, poutput2.CastPosition))
            {
                return;
            }

            if (Menu.Item("HitChance").GetValue <StringList>().SelectedIndex == 0)
            {
                if (poutput2.Hitchance >= HitChance.Medium)
                {
                    WR.Cast(poutput2.CastPosition);
                }
            }
            else if (Menu.Item("HitChance").GetValue <StringList>().SelectedIndex == 1)
            {
                if (poutput2.Hitchance >= HitChance.High)
                {
                    WR.Cast(poutput2.CastPosition);
                }
            }
            else if (Menu.Item("HitChance").GetValue <StringList>().SelectedIndex == 2)
            {
                if (poutput2.Hitchance >= HitChance.VeryHigh)
                {
                    WR.Cast(poutput2.CastPosition);
                }
            }
        }
Ejemplo n.º 25
0
        private void LogicQ()
        {
            var t  = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
            var t2 = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Magical);

            if (t.IsValidTargetLS() && t2.IsValidTargetLS() && t == t2 && !(Config.Item("separate", true).GetValue <bool>() && Program.LaneClear))
            {
                if (Q.IsCharging)
                {
                    Program.CastSpell(Q, t);
                    if (OktwCommon.GetPassiveTime(Player, "XerathArcanopulseChargeUp") < 1 || (Player.CountEnemiesInRange(800) > 0) || Player.Distance(t) > 1450)
                    {
                        Q.Cast(Q.GetPrediction(t).CastPosition);
                    }
                    else if (OktwCommon.GetPassiveTime(Player, "XerathArcanopulseChargeUp") < 2 || (Player.CountEnemiesInRange(1000) > 0))
                    {
                        Q.CastIfHitchanceEquals(t, HitChance.VeryHigh);
                    }

                    return;
                }
                else if (t.IsValidTargetLS(Q.Range - 300))
                {
                    if (t.Health < OktwCommon.GetKsDamage(t, Q))
                    {
                        Q.StartCharging();
                    }
                    else if (Program.Combo && Player.Mana > EMANA + QMANA)
                    {
                        Q.StartCharging();
                    }
                    else if (t.IsValidTargetLS(1200) && Program.Farm && Player.Mana > RMANA + EMANA + QMANA + QMANA && Config.Item("harras" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && OktwCommon.CanHarras())
                    {
                        Q.StartCharging();
                    }
                    else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA)
                    {
                        foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(Q.Range) && !OktwCommon.CanMove(enemy)))
                        {
                            Q.StartCharging();
                        }
                    }
                }
            }
            else if (Program.LaneClear && Q.Range > 1000 && Player.CountEnemiesInRange(1450) == 0 && (Q.IsCharging || (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, Q.Range);
                var Qfarm       = Q.GetLineFarmLocation(allMinionsQ, Q.Width);
                if (Qfarm.MinionsHit > Config.Item("LCminions", true).GetValue <Slider>().Value || (Q.IsCharging && Qfarm.MinionsHit > 0))
                {
                    Q.Cast(Qfarm.Position);
                }
            }
        }
Ejemplo n.º 26
0
        private static void Combo()
        {
            // If target's champion target him, if it's not target surrounding enemy [creep, etc]
            var target = Orbwalker.GetTarget() as AIHeroClient;

            if (target == null)
            {
                target = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
            }

            if ((target != null) && target.IsValidTarget())
            {
                if ((Menu.Item("ComboUseQ").GetValue <bool>() &&
                     target.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null)) && Q.IsReady() &&
                     (Player.Mana > Q.Instance.SData.Mana + R.Instance.SData.Mana)) ||
                    (target.Health < 5 * Player.GetAutoAttackDamage(Player)))
                {
                    Q.Cast();
                }
                if (Menu.Item("ComboUseW").GetValue <bool>() && W.IsReady() &&
                    (Player.Mana > W.Instance.SData.Mana + R.Instance.SData.Mana) && target.IsValidTarget(W.Range))
                {
                    SebbySpell(W, target);
                }
                DontREnemyNearAlly();
                foreach (
                    var ulttarget in
                    HeroManager.Enemies.Where(ulttarget => target.IsValidTarget(2000) && OktwCommon.ValidUlt(ulttarget))
                    )
                {
                    if (Menu.Item("ComboUseR").GetValue <bool>() && target.IsValidTarget(W.Range) &&
                        (target.Health <
                         W.GetDamage(target) + R.GetDamage(target) + 3 * Player.GetAutoAttackDamage(target) +
                         OktwCommon.GetIncomingDamage(target)) && !target.HasBuff("rebirth"))
                    {
                        SebbySpell(R, target);
                        if (Q.IsReady())
                        {
                            Q.Cast();
                        }
                    }
                }
            }
        }
Ejemplo n.º 27
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                var qDmg = Q.GetDamage(t) + BonusDmg(t) + OktwCommon.GetEchoLudenDamage(t);

                if (qDmg > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                if (!t.HasBuff("brandablaze") && Config.Item("QAblazed", true).GetValue <bool>())
                {
                    var otherEnemy = t;

                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && enemy.HasBuff("brandablaze")))
                    {
                        t = enemy;
                    }

                    if (otherEnemy == t && !LogicQuse(t))
                    {
                        return;
                    }
                }

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

                if (Player.Mana > RMANA + QMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
        }
Ejemplo n.º 28
0
        public Vector3 CastDash(bool asap = false)
        {
            int DashMode = Config.Item("DashMode", true).GetValue <StringList>().SelectedIndex;

            Vector3 bestpoint = Vector3.Zero;

            if (DashMode == 0)
            {
                bestpoint = Player.Position.Extend(Game.CursorPos, DashSpell.Range);
            }
            else if (DashMode == 1)
            {
                var orbT = Orbwalker.GetTarget();
                if (orbT != null && orbT is Obj_AI_Hero)
                {
                    Vector2 start = Player.Position.To2D();
                    Vector2 end   = orbT.Position.To2D();
                    var     dir   = (end - start).Normalized();
                    var     pDir  = dir.Perpendicular();

                    var rightEndPos = end + pDir * Player.Distance(orbT);
                    var leftEndPos  = end - pDir * Player.Distance(orbT);

                    var rEndPos = new Vector3(rightEndPos.X, rightEndPos.Y, Player.Position.Z);
                    var lEndPos = new Vector3(leftEndPos.X, leftEndPos.Y, Player.Position.Z);

                    if (Game.CursorPos.Distance(rEndPos) < Game.CursorPos.Distance(lEndPos))
                    {
                        bestpoint = Player.Position.Extend(rEndPos, DashSpell.Range);
                    }
                    else
                    {
                        bestpoint = Player.Position.Extend(lEndPos, DashSpell.Range);
                    }
                }
            }
            else if (DashMode == 2)
            {
                var points = OktwCommon.CirclePoints(15, DashSpell.Range, Player.Position);
                bestpoint = Player.Position.Extend(Game.CursorPos, DashSpell.Range);
                int enemies = bestpoint.CountEnemiesInRange(350);
                foreach (var point in points)
                {
                    int count = point.CountEnemiesInRange(350);
                    if (!InAARange(point))
                    {
                        continue;
                    }
                    if (point.UnderAllyTurret())
                    {
                        bestpoint = point;
                        enemies   = count - 1;
                    }
                    else if (count < enemies)
                    {
                        enemies   = count;
                        bestpoint = point;
                    }
                    else if (count == enemies && Game.CursorPos.Distance(point) < Game.CursorPos.Distance(bestpoint))
                    {
                        enemies   = count;
                        bestpoint = point;
                    }
                }
            }

            if (bestpoint.IsZero)
            {
                return(Vector3.Zero);
            }

            var isGoodPos = IsGoodPosition(bestpoint);

            if (asap && isGoodPos)
            {
                return(bestpoint);
            }
            else if (isGoodPos && InAARange(bestpoint))
            {
                return(bestpoint);
            }
            return(Vector3.Zero);
        }
Ejemplo n.º 29
0
        private void LogicR()
        {
            var bounceRange = 460;
            var t2          = TargetSelector.GetTarget(R.Range + bounceRange, TargetSelector.DamageType.Magical);

            if (t2.IsValidTarget(R.Range) && t2.CountEnemiesInRange(bounceRange) >= Config.Item("rCount", true).GetValue <Slider>().Value&& Config.Item("rCount", true).GetValue <Slider>().Value > 0)
            {
                R.Cast(t2);
            }

            if (t2.IsValidTarget())
            {
                if (t2.CountAlliesInRange(550) == 0 || Player.HealthPercent < 50 || t2.CountEnemiesInRange(bounceRange) > 1)
                {
                    var prepos = R.GetPrediction(t2).CastPosition;
                    var dmgR   = R.GetDamage(t2);



                    if (t2.Health < dmgR * 3)
                    {
                        var totalDmg    = dmgR;
                        var minionCount = CountMinionsInRange(bounceRange, prepos);

                        if (t2.IsValidTarget(R.Range))
                        {
                            if (prepos.CountEnemiesInRange(bounceRange) > 1)
                            {
                                if (minionCount > 2)
                                {
                                    totalDmg = dmgR * 2;
                                }
                                else
                                {
                                    totalDmg = dmgR * 3;
                                }
                            }
                            else if (minionCount > 0)
                            {
                                totalDmg = dmgR * 2;
                            }

                            if (W.IsReady())
                            {
                                totalDmg += W.GetDamage(t2);
                            }

                            if (E.IsReady())
                            {
                                totalDmg += E.GetDamage(t2);
                            }

                            if (Q.IsReady())
                            {
                                totalDmg += Q.GetDamage(t2);
                            }

                            totalDmg += BonusDmg(t2);
                            totalDmg += OktwCommon.GetEchoLudenDamage(t2);

                            if (Items.HasItem(3155, t2))
                            {
                                totalDmg = totalDmg - 250;
                            }

                            if (Items.HasItem(3156, t2))
                            {
                                totalDmg = totalDmg - 400;
                            }

                            if (totalDmg > t2.Health - OktwCommon.GetIncomingDamage(t2) && Player.GetAutoAttackDamage(t2) * 2 < t2.Health)
                            {
                                R.CastOnUnit(t2);
                            }
                        }
                        else if (t2.Health - OktwCommon.GetIncomingDamage(t2) < dmgR * 2 + BonusDmg(t2))
                        {
                            if (Player.CountEnemiesInRange(R.Range) > 0)
                            {
                                foreach (var t in Program.Enemies.Where(enemy => enemy.IsValidTarget(R.Range) && enemy.Distance(prepos) < bounceRange))
                                {
                                    R.CastOnUnit(t);
                                }
                            }
                            else
                            {
                                var minions = MinionManager.GetMinions(Player.Position, R.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth);
                                foreach (var minion in minions.Where(minion => minion.IsValidTarget(R.Range) && minion.Distance(prepos) < bounceRange))
                                {
                                    R.CastOnUnit(minion);
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 30
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.IsRecalling())
            {
                return;
            }

            if (Player.IsZombie)
            {
                if (getCheckBoxItem(miscMenu, "autoZombie"))
                {
                    Orbwalker.ActiveModesFlags = Player.CountEnemiesInRange(Q.Range) > 0 ? Orbwalker.ActiveModes.Combo : Orbwalker.ActiveModes.LaneClear;
                }
                if (R.IsReady() && getCheckBoxItem(miscMenu, "autoRzombie"))
                {
                    float timeDeadh = 8;
                    timeDeadh = OktwCommon.GetPassiveTime(Player, "KarthusDeathDefiedBuff");
                    Program.debug("Time " + timeDeadh);
                    if (timeDeadh < 4)
                    {
                        foreach (var target in Program.Enemies.Where(target => target.IsValidTarget() && OktwCommon.ValidUlt(target)))
                        {
                            var rDamage = R.GetDamage(target);
                            if (target.Health < 3 * rDamage && target.CountAlliesInRange(800) > 0)
                            {
                                R.Cast();
                            }
                            if (target.Health < rDamage * 1.5 && target.LSDistance(Player.Position) < 900)
                            {
                                R.Cast();
                            }
                            if (target.Health + target.HPRegenRate * 5 < rDamage)
                            {
                                R.Cast();
                            }
                        }
                    }
                }
            }

            if (Program.LagFree(0))
            {
                SetMana();
                Jungle();
            }
            if (Program.LagFree(1) && Q.IsReady() && getCheckBoxItem(qMenu, "autoQ"))
            {
                LogicQ();
            }
            if (Program.LagFree(2) && E.IsReady() && getCheckBoxItem(eMenu, "autoE"))
            {
                LogicE();
            }
            if (Program.LagFree(3) && R.IsReady())
            {
                LogicR();
            }
            if (Program.LagFree(4) && W.IsReady() && getCheckBoxItem(wMenu, "autoW"))
            {
                LogicW();
            }
        }