Пример #1
0
        private void LaneClear()
        {
            if (ManaManager.HasEnoughMana(Menu.GetSlider("LaneClearMana")) && ManaManager.SpellFarm)
            {
                if (Menu.GetBool("LaneClearQ") && Q.IsReady())
                {
                    var minions = MinionManager.GetMinions(Me.Position, Q.Range);

                    if (minions.Any())
                    {
                        if (Menu.GetBool("LaneClearQOut"))
                        {
                            var mins =
                                minions.Where(
                                    x =>
                                    x.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) &&
                                    x.Health < Q.GetDamage(x) &&
                                    HealthPrediction.GetHealthPrediction(x, 250) > 0);

                            Q.Cast(mins.Any() ? mins.FirstOrDefault() : minions.FirstOrDefault(), true);
                        }
                        else
                        {
                            Q.Cast(minions.FirstOrDefault(), true);
                        }
                    }
                }
            }
        }
Пример #2
0
        private static void EDash(Obj_AI_Hero target)
        {
            if (target == null || target.IsDead || !E.IsReady())
            {
                return;
            }

            if (Menu.GetBool("ComboQ") && Q.IsReady() && qStack == 0 &&
                target.DistanceToPlayer() < Q.Range + Orbwalking.GetRealAutoAttackRange(Me))
            {
                return;
            }

            if (target.DistanceToPlayer() <= E.Range + (Q.IsReady() && qStack == 0 ? Q.Range : 0))
            {
                E.Cast(target.Position, true);
            }

            if (target.DistanceToPlayer() <= E.Range + (W.IsReady() ? W.Range : 0))
            {
                E.Cast(target.Position, true);
            }

            if (!Q.IsReady() && !W.IsReady() && target.DistanceToPlayer() < E.Range + Me.AttackRange)
            {
                E.Cast(target.Position, true);
            }
        }
Пример #3
0
        private void BeforeAttack(Orbwalking.BeforeAttackEventArgs Args)
        {
            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var ForcusETarget =
                    HeroManager.Enemies.FirstOrDefault(
                        x =>
                        x.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Me)) &&
                        x.HasBuff("kindredecharge"));

                var ForcusTarget =
                    HeroManager.Enemies.FirstOrDefault(
                        x =>
                        x.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Me)) &&
                        x.HasBuff("kindredhittracker"));

                if (ForcusETarget.Check(Orbwalking.GetRealAutoAttackRange(Me)) &&
                    Menu.GetBool("ForcusE"))
                {
                    Orbwalker.ForceTarget(ForcusETarget);
                }
                else if (Menu.GetBool("Forcus") &&
                         ForcusTarget.Check(Orbwalking.GetRealAutoAttackRange(Me)))
                {
                    Orbwalker.ForceTarget(ForcusTarget);
                }
                else
                {
                    Orbwalker.ForceTarget(null);
                }
            }
        }
Пример #4
0
        private void Combo()
        {
            var target = TargetSelector.GetSelectedTarget() ??
                         TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (target.Check(Q.Range))
            {
                if (Menu.GetBool("ComboE") && E.IsReady() && Me.HasBuff("QuinnR"))
                {
                    E.CastOnUnit(target);
                }

                if (Menu.GetBool("ComboQ") && Q.IsReady() && !Me.HasBuff("QuinnR"))
                {
                    if (target.DistanceToPlayer() <= Orbwalking.GetRealAutoAttackRange(Me) && HavePassive(target))
                    {
                        return;
                    }

                    SpellManager.PredCast(Q, target, true);
                }

                if (Menu.GetBool("ComboW") && W.IsReady())
                {
                    var WPred = W.GetPrediction(target);

                    if ((NavMesh.GetCollisionFlags(WPred.CastPosition) == CollisionFlags.Grass ||
                         NavMesh.IsWallOfGrass(target.ServerPosition, 20)) && !target.IsVisible)
                    {
                        W.Cast();
                    }
                }
            }
        }
Пример #5
0
        internal static void Init(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (sender == null || !sender.IsMe || Args.SData == null)
            {
                return;
            }

            if (Args.SData.Name.Contains("DariusAxeGrabCone"))
            {
                lastETime = Utils.TickCount;
            }

            if (Args.SData.Name.Contains("ItemTiamatCleave"))
            {
                if (Orbwalking.isCombo)
                {
                    if (!HeroManager.Enemies.Any(x => x.DistanceToPlayer() <= Orbwalking.GetRealAutoAttackRange(Me)))
                    {
                        return;
                    }

                    if (Menu.GetBool("ComboW") && W.IsReady())
                    {
                        W.Cast();
                    }
                }
            }
        }
Пример #6
0
        private void OnDraw(EventArgs Args)
        {
            if (!Me.IsDead && !MenuGUI.IsShopOpen && !MenuGUI.IsChatOpen && !MenuGUI.IsScoreboardOpen)
            {
                if (Menu.GetBool("DrawQ") && Q.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, Q.Range, Color.Green, 1);
                }

                if (Menu.GetBool("DrawW") && W.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, W.Range, Color.FromArgb(9, 253, 242), 1);
                }

                if (Menu.GetBool("DrawE") && E.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, E.Range, Color.FromArgb(188, 6, 248), 1);
                }

                if (Menu.GetBool("DrawR") && R.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, R.Range, Color.FromArgb(19, 130, 234), 1);
                }

                if (Menu.GetBool("DrawBurst"))
                {
                    Render.Circle.DrawCircle(Me.Position, Orbwalking.GetRealAutoAttackRange(Me), Color.FromArgb(90, 255, 255), 1);
                }
            }
        }
Пример #7
0
        private void Combo()
        {
            var target = TargetSelector.GetSelectedTarget() ??
                         TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);

            if (target.Check(R.Range))
            {
                if (Menu.GetBool("ComboR") && R.IsReady() &&
                    Menu.GetSlider("ComboRLimit") >= GetRCount &&
                    target.IsValidTarget(R.Range))
                {
                    SpellManager.PredCast(R, target, true);
                }

                if (Menu.GetBool("ComboQ") && Q.IsReady() && target.IsValidTarget(Q.Range))
                {
                    SpellManager.PredCast(Q, target, true);
                }

                if (Menu.GetBool("ComboE") && E.IsReady() && target.IsValidTarget(E.Range))
                {
                    SpellManager.PredCast(E, target);
                }

                if (Menu.GetBool("ComboW") && W.IsReady() && target.IsValidTarget(W.Range) &&
                    target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) && Me.CanAttack)
                {
                    W.Cast();
                }
            }
        }
Пример #8
0
        private void Combo()
        {
            var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);

            if (target.Check(R.Range))
            {
                if (Menu.GetBool("ComboQ") && Q.IsReady() && target.IsValidTarget(Q.Range))
                {
                    SpellManager.PredCast(Q, target);
                }

                if (Menu.GetBool("ComboE") && E.IsReady() && target.IsValidTarget(SearchERange))
                {
                    ELogic(target);
                }

                if (Menu.GetBool("ComboW") && W.IsReady() && target.IsValidTarget(W.Range) &&
                    (target.DistanceToPlayer() <= target.AttackRange + 70 ||
                     (target.DistanceToPlayer() >= Orbwalking.GetRealAutoAttackRange(Me) + 80)))
                {
                    SpellManager.PredCast(W, target);
                }

                if (Menu.GetBool("ComboR") && R.IsReady() && target.IsValidTarget(R.Range))
                {
                    R.CastIfWillHit(target, Menu.GetSlider("ComboRCount"));
                }
            }
        }
Пример #9
0
        private void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (Menu.GetBool("Forcus"))
            {
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo ||
                    Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(x => !x.IsDead && !x.IsZombie &&
                                                                    Orbwalking.InAutoAttackRange(x) &&
                                                                    x.HasBuff("kalistacoopstrikemarkally")))
                    {
                        Orbwalker.ForceTarget(enemy);
                    }
                }
                else if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
                {
                    var all = MinionManager.GetMinions(Me.Position, Orbwalking.GetRealAutoAttackRange(Me),
                                                       MinionTypes.All, MinionTeam.NotAlly)
                              .Where(x => Orbwalking.InAutoAttackRange(x) && x.HasBuff("kalistacoopstrikemarkally"));

                    if (all.Any())
                    {
                        Orbwalker.ForceTarget(all.FirstOrDefault());
                    }
                }
            }
        }
Пример #10
0
        private void Combo()
        {
            if (Menu.GetBool("ComboELogic") && E.IsReady())
            {
                var target = TargetSelector.GetTarget(975f, TargetSelector.DamageType.Physical);

                if (target.IsValidTarget(975f) && target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me))
                {
                    if (Utils.TickCount - CastSpellTime > 400)
                    {
                        Cast_E(target, true);
                    }
                }
            }

            if (Menu.GetBool("ComboQExtended") && Q.IsReady() && !Me.IsDashing() && !Me.IsWindingUp)
            {
                var target = TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical);

                if (target.Check(QExtend.Range) && target.DistanceToPlayer() > Q.Range &&
                    (!E.IsReady() || (E.IsReady() && target.DistanceToPlayer() > 975f)))
                {
                    var pred       = QExtend.GetPrediction(target, true);
                    var collisions = MinionManager.GetMinions(Me.ServerPosition, Q.Range, MinionTypes.All,
                                                              MinionTeam.NotAlly);

                    if (!collisions.Any())
                    {
                        return;
                    }

                    foreach (var minion in collisions)
                    {
                        var poly = new Geometry.Polygon.Rectangle(Me.ServerPosition,
                                                                  Me.ServerPosition.Extend(minion.ServerPosition, QExtend.Range), QExtend.Width);

                        if (poly.IsInside(pred.UnitPosition))
                        {
                            Q.Cast(minion);
                        }
                    }
                }
            }

            if (Menu.GetBool("ComboR") && R.IsReady())
            {
                var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);

                if (target.Check(R.Range) &&
                    R.GetDamage(target) * (7.5 + 7.5 * Me.AttackSpeedMod) > target.Health &&
                    target.Distance(Me) > Orbwalking.GetAttackRange(Me) + 300)
                {
                    R.Cast(target);
                }
            }
        }
Пример #11
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || !Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                return;
            }

            switch (Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                if (Menu.GetBool("ComboQ"))
                {
                    var target = (Obj_AI_Hero)Args.Target;

                    if (target != null && !target.IsDead && !target.IsZombie)
                    {
                        if (Me.HasBuff("asheqcastready"))
                        {
                            Q.Cast();
                            Orbwalking.ResetAutoAttackTimer();
                        }
                    }
                }
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                if (ManaManager.HasEnoughMana(Menu.GetSlider("JungleClearMana")) && ManaManager.SpellFarm)
                {
                    if (Menu.GetBool("JungleClearQ") && Args.Target is Obj_AI_Minion)
                    {
                        var mobs = MinionManager.GetMinions(Me.Position, Orbwalking.GetRealAutoAttackRange(Me),
                                                            MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

                        if (mobs.Any())
                        {
                            foreach (var mob in mobs)
                            {
                                if (!mob.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Me)) ||
                                    !(mob.Health > Me.GetAutoAttackDamage(mob) * 2))
                                {
                                    continue;
                                }

                                if (Me.HasBuff("asheqcastready"))
                                {
                                    Q.Cast();
                                    Orbwalking.ResetAutoAttackTimer();
                                }
                            }
                        }
                    }
                }
                break;
            }
        }
Пример #12
0
        internal static void Init()
        {
            var target = TargetSelector.GetSelectedTarget() ??
                         TargetSelector.GetTarget(900, TargetSelector.DamageType.Physical);

            if (target.Check(900f))
            {
                if (Menu.GetBool("ComboIgnite") && Ignite != SpellSlot.Unknown && Ignite.IsReady() &&
                    DamageCalculate.GetComboDamage(target) > target.Health)
                {
                    Me.Spellbook.CastSpell(Ignite, target);
                    return;
                }

                if (Menu.GetBool("ComboE") && E.IsReady() && Me.CanMoveMent() && target.DistanceToPlayer() <= 650 &&
                    target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) + 100)
                {
                    EDash(target);
                }

                if (Menu.GetBool("ComboQ") && Q.IsReady() && Me.CanMoveMent() && qStack == 0 &&
                    target.DistanceToPlayer() <= Q.Range + Orbwalking.GetRealAutoAttackRange(Me) &&
                    target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) + 50 &&
                    Utils.TickCount - lastQTime > 900)
                {
                    if (!Me.IsDashing())
                    {
                        SpellManager.CastQ(target);
                    }
                }

                if (Menu.GetBool("ComboW") && W.IsReady() &&
                    target.IsValidTarget(W.Range) && !target.HasBuffOfType(BuffType.SpellShield))
                {
                    WLogic(target);
                }

                if (Menu.GetBool("ComboR") && R.IsReady())
                {
                    if (Menu.GetKey("R1Combo") && R.Instance.Name == "RivenFengShuiEngine" && !E.IsReady())
                    {
                        if (target.DistanceToPlayer() < 500 && Me.CountEnemiesInRange(500) >= 1)
                        {
                            R.Cast(true);
                        }
                    }
                    else if (R.Instance.Name == "RivenIzunaBlade")
                    {
                        SpellManager.R2Logic(target);
                    }
                }
            }
        }
Пример #13
0
        private void LaneClear()
        {
            if (ManaManager.HasEnoughMana(Menu.GetSlider("LaneClearMana")) && ManaManager.SpellFarm)
            {
                var minions = MinionManager.GetMinions(Me.Position, R.Range);

                if (minions.Any())
                {
                    if (Menu.GetBool("LaneClearR") && R.IsReady() && Menu.GetSlider("LaneClearRLimit") >= GetRCount)
                    {
                        var rMinion =
                            minions.FirstOrDefault(x => x.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me));

                        if (rMinion != null && HealthPrediction.GetHealthPrediction(rMinion, 250) > 0)
                        {
                            R.Cast(rMinion);
                        }
                    }

                    if (Menu.GetBool("LaneClearE") && E.IsReady())
                    {
                        var eMinions = MinionManager.GetMinions(Me.Position, E.Range);
                        var eFarm    =
                            MinionManager.GetBestLineFarmLocation(eMinions.Select(x => x.Position.To2D()).ToList(),
                                                                  E.Width, E.Range);

                        if (eFarm.MinionsHit >= Menu.GetSlider("LaneClearECount"))
                        {
                            E.Cast(eFarm.Position);
                        }
                    }

                    if (Menu.GetBool("LaneClearQ") && Q.IsReady())
                    {
                        var qMinion =
                            MinionManager
                            .GetMinions(
                                Me.Position, Q.Range)
                            .FirstOrDefault(
                                x =>
                                x.Health < Q.GetDamage(x) &&
                                HealthPrediction.GetHealthPrediction(x, 250) > 0 &&
                                x.Health > Me.GetAutoAttackDamage(x));

                        if (qMinion != null)
                        {
                            Q.Cast(qMinion);
                        }
                    }
                }
            }
        }
Пример #14
0
        private void Burst()
        {
            var target = TargetSelector.GetSelectedTarget();

            if (target.Check(800f))
            {
                var pos = Me.Position.Extend(target.Position, E.Range);

                if (R.IsReady())
                {
                    if (!Menu.GetBool("BurstER"))
                    {
                        if (E.IsReady() && target.IsValidTarget(600f))
                        {
                            if (R.CanCast(target))
                            {
                                R.Cast(target, true);
                            }
                        }
                    }
                    else
                    {
                        if (E.IsReady() && target.IsValidTarget(600f))
                        {
                            E.Cast(target.Position, true);
                        }
                    }
                }
                else
                {
                    if (Q.IsReady() && target.IsValidTarget(Q.Range))
                    {
                        SpellManager.PredCast(Q, target);
                    }

                    if (W.IsReady() && target.IsValidTarget(W.Range) &&
                        (target.DistanceToPlayer() <= target.AttackRange + 70 ||
                         (target.DistanceToPlayer() >= Orbwalking.GetRealAutoAttackRange(Me) + 80)))
                    {
                        SpellManager.PredCast(W, target);
                    }

                    if (E.IsReady() && !R.IsReady())
                    {
                        ELogic(target);
                    }
                }
            }
        }
Пример #15
0
        private void Combo()
        {
            var target = TargetSelector.GetSelectedTarget() ??
                         TargetSelector.GetTarget(qRange, TargetSelector.DamageType.Physical);

            if (target.Check(qRange))
            {
                if (Menu.GetBool("ComboR") && R.IsReady() && target.IsValidTarget(R.Range))
                {
                    if (Menu.GetBool("ComboRSolo") && Me.CountEnemiesInRange(1000) <= 2)
                    {
                        if (target.Health + target.HPRegenRate * 2 <
                            R.GetDamage(target) + W.GetDamage(target) + (E.IsReady() ? E.GetDamage(target) : 0) +
                            (Q.IsReady() ? Q.GetDamage(target) : 0) + Me.GetAutoAttackDamage(target) * 3)
                        {
                            SpellManager.PredCast(R, target);
                        }
                    }

                    var rPred = R.GetPrediction(target, true);

                    if (rPred.AoeTargetsHitCount >= Menu.GetSlider("ComboRCount") ||
                        Me.CountEnemiesInRange(R.Range) >= Menu.GetSlider("ComboRCount"))
                    {
                        SpellManager.PredCast(R, target);
                    }
                }

                if (Menu.GetBool("ComboQ") && target.IsValidTarget(qRange))
                {
                    if (target.DistanceToPlayer() >= Orbwalking.GetRealAutoAttackRange(Me) + 200 ||
                        GetPassiveCount(target) >= Menu.GetSlider("ComboPassive") ||
                        W.Level == 0 || target.Health < Q.GetDamage(target))
                    {
                        CastQ(target);
                    }
                }

                if (Menu.GetBool("ComboE") && E.IsReady() && target.IsValidTarget(E.Range))
                {
                    if (GetPassiveCount(target) >= Menu.GetSlider("ComboPassive") ||
                        W.Level == 0 || target.Health < E.GetDamage(target))
                    {
                        SpellManager.PredCast(E, target, true);
                    }
                }
            }
        }
Пример #16
0
        private void LaneClearW()
        {
            if (ManaManager.HasEnoughMana(Menu.GetSlider("LaneClearMana")) && ManaManager.SpellFarm)
            {
                if (Menu.GetBool("LaneClearW") && W.IsReady())
                {
                    var minions = MinionManager.GetMinions(Me.Position, Orbwalking.GetRealAutoAttackRange(Me));

                    if (minions.Count >= 3)
                    {
                        W.Cast();
                        Orbwalking.ResetAutoAttackTimer();
                    }
                }
            }
        }
Пример #17
0
        private void JungleClearW()
        {
            if (ManaManager.HasEnoughMana(Menu.GetSlider("JungleClearMana")) && ManaManager.SpellFarm)
            {
                if (Menu.GetBool("JungleClearW") && W.IsReady())
                {
                    var Mobs = MinionManager.GetMinions(Me.Position, Orbwalking.GetRealAutoAttackRange(Me),
                                                        MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

                    if (Mobs.Any())
                    {
                        W.Cast();
                        Orbwalking.ResetAutoAttackTimer();
                    }
                }
            }
        }
Пример #18
0
        private void KillSteal()
        {
            if (Menu.GetBool("KillStealW") && W.IsReady())
            {
                foreach (var target in HeroManager.Enemies.Where(x => x.Check(W.Range)))
                {
                    if (!target.IsValidTarget(W.Range) || !(target.Health < W.GetDamage(target)))
                    {
                        continue;
                    }

                    if (target.DistanceToPlayer() <= Orbwalking.GetRealAutoAttackRange(Me) &&
                        Me.HasBuff("AsheQAttack"))
                    {
                        continue;
                    }

                    SpellManager.PredCast(W, target);
                    return;
                }
            }

            if (!Menu.GetBool("KillStealR") || !R.IsReady())
            {
                return;
            }

            foreach (
                var target in
                HeroManager.Enemies.Where(
                    x =>
                    x.Check(2000) &&
                    Menu.GetBool("KillStealR" + x.ChampionName.ToLower())))
            {
                if (!(target.DistanceToPlayer() > 800) || !(target.Health < R.GetDamage(target)) ||
                    target.HasBuffOfType(BuffType.SpellShield))
                {
                    continue;
                }

                SpellManager.PredCast(R, target);
                return;
            }
        }
Пример #19
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || !Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                return;
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var hero = Args.Target as Obj_AI_Hero;

                if (hero != null && Menu.GetBool("ComboW") && W.IsReady())
                {
                    var WTarget = hero;

                    if (WTarget.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Me)) && Me.CanAttack)
                    {
                        W.Cast();
                        Orbwalking.ResetAutoAttackTimer();
                    }
                }
            }
            else if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                if (Args.Target is Obj_AI_Minion)
                {
                    LaneClearW();
                    JungleClearW();
                }
                else if (Args.Target is Obj_AI_Turret || Args.Target.Type == GameObjectType.obj_AI_Turret)
                {
                    if (ManaManager.HasEnoughMana(Menu.GetSlider("LaneClearMana")) && ManaManager.SpellFarm)
                    {
                        if (Menu.GetBool("LaneClearWTurret") && W.IsReady() &&
                            Me.CountEnemiesInRange(1000) == 0)
                        {
                            W.Cast();
                            Orbwalking.ResetAutoAttackTimer();
                        }
                    }
                }
            }
        }
Пример #20
0
        private void AutoRLogic()
        {
            if (Menu.GetBool("AutoR") && R.IsReady())
            {
                foreach (var target in HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) && x.Check(R.Range)))
                {
                    if (!(target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me)) ||
                        !(target.DistanceToPlayer() <= 700) ||
                        !(target.Health > Me.GetAutoAttackDamage(target)) ||
                        !(target.Health < R.GetDamage(target) + Me.GetAutoAttackDamage(target) * 3) ||
                        target.HasBuffOfType(BuffType.SpellShield))
                    {
                        continue;
                    }

                    SpellManager.PredCast(R, target);
                    return;
                }
            }
        }
Пример #21
0
        private void LastHit()
        {
            if (ManaManager.HasEnoughMana(Menu.GetSlider("LastHitMana")))
            {
                if (Menu.GetBool("LastHitQ") && Q.IsReady())
                {
                    var minions =
                        MinionManager.GetMinions(Me.Position, Q.Range)
                        .Where(
                            x =>
                            x.DistanceToPlayer() <= Q.Range &&
                            x.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) &&
                            x.Health < Q.GetDamage(x));

                    if (minions.Any())
                    {
                        Q.Cast(minions.FirstOrDefault(), true);
                    }
                }
            }
        }
Пример #22
0
        private void BeforeAttack(Orbwalking.BeforeAttackEventArgs Args)
        {
            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo ||
                Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                var ForcusTarget =
                    HeroManager.Enemies.FirstOrDefault(
                        x =>
                        x.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Me)) &&
                        x.HasBuff("VayneSilveredDebuff") && x.GetBuffCount("VayneSilveredDebuff") == 2);

                if (Menu.GetBool("Forcus") && ForcusTarget.Check())
                {
                    Orbwalker.ForceTarget(ForcusTarget);
                }
                else
                {
                    Orbwalker.ForceTarget(null);
                }
            }
        }
Пример #23
0
        private static void JungleClear(GameObjectProcessSpellCastEventArgs Args)
        {
            if (Args.SData == null || !Orbwalking.IsAutoAttack(Args.SData.Name) || Args.Target == null ||
                !Orbwalking.isLaneClear || Args.Target.Type != GameObjectType.obj_AI_Minion ||
                !ManaManager.HasEnoughMana(Menu.GetSlider("JungleClearMana")) || !ManaManager.SpellFarm)
            {
                return;
            }

            var mobs = MinionManager.GetMinions(Orbwalking.GetRealAutoAttackRange(Me), MinionTypes.All,
                                                MinionTeam.Neutral, MinionOrderTypes.MaxHealth);
            var mob = mobs.FirstOrDefault();

            if (mob != null)
            {
                SpellManager.CastItem();

                if (Menu.GetBool("JungleClearW") && W.IsReady() && Orbwalking.InAutoAttackRange(Me))
                {
                    W.Cast(true);
                }
            }
        }
Пример #24
0
        private void LaneClear()
        {
            if (ManaManager.HasEnoughMana(Menu.GetSlider("LaneClearMana")) && ManaManager.SpellFarm)
            {
                if (Menu.GetBool("LaneClearQ") && Q.IsReady())
                {
                    var minions =
                        MinionManager.GetMinions(Me.Position, 700)
                        .Where(m => m.Health < Q.GetDamage(m) + Me.GetAutoAttackDamage(m));

                    var minion = minions.FirstOrDefault();

                    if (minion != null)
                    {
                        if (minion.Distance(Me.Position.Extend(Game.CursorPos, Q.Range)) <=
                            Orbwalking.GetRealAutoAttackRange(Me))
                        {
                            Q.Cast(Me.Position.Extend(Game.CursorPos, Q.Range));
                            Orbwalker.ForceTarget(minions.FirstOrDefault());
                        }
                    }
                }
            }
        }
Пример #25
0
        private void Combo()
        {
            if (Menu.GetBool("ComboR") && R.IsReady())
            {
                foreach (var target in HeroManager.Enemies.Where(x => x.Check(1200)))
                {
                    if (target.IsValidTarget(600) && Me.CountEnemiesInRange(600) >= 3 && target.CountAlliesInRange(200) <= 2)
                    {
                        SpellManager.PredCast(R, target);
                    }

                    if (Me.CountEnemiesInRange(800) == 1 &&
                        target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) &&
                        target.DistanceToPlayer() <= 700 &&
                        target.Health > Me.GetAutoAttackDamage(target) &&
                        target.Health < R.GetDamage(target) + Me.GetAutoAttackDamage(target) * 3 &&
                        !target.HasBuffOfType(BuffType.SpellShield))
                    {
                        SpellManager.PredCast(R, target);
                    }

                    if (target.DistanceToPlayer() <= 1000 &&
                        (!target.CanMove || target.HasBuffOfType(BuffType.Stun) ||
                         R.GetPrediction(target).Hitchance == HitChance.Immobile))
                    {
                        SpellManager.PredCast(R, target);
                    }
                }
            }

            if (Menu.GetBool("ComboW") && W.IsReady() && !Me.HasBuff("AsheQAttack"))
            {
                if ((Menu.GetBool("ComboSaveMana") &&
                     Me.Mana > (R.IsReady() ? R.Instance.ManaCost : 0) + W.Instance.ManaCost + Q.Instance.ManaCost) ||
                    !Menu.GetBool("ComboSaveMana"))
                {
                    var target = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

                    if (target.Check(W.Range))
                    {
                        SpellManager.PredCast(W, target);
                    }
                }
            }

            if (Menu.GetBool("ComboE") && E.IsReady())
            {
                var target = TargetSelector.GetTarget(1000, TargetSelector.DamageType.Physical);

                if (target.Check(1000))
                {
                    var EPred = E.GetPrediction(target);

                    if ((NavMesh.GetCollisionFlags(EPred.CastPosition) == CollisionFlags.Grass ||
                         NavMesh.IsWallOfGrass(target.ServerPosition, 20)) && !target.IsVisible)
                    {
                        E.Cast(EPred.CastPosition);
                    }
                }
            }
        }
Пример #26
0
        private void ELogic(Obj_AI_Base target)
        {
            if (!E.IsReady())
            {
                return;
            }

            var ePosition  = Me.ServerPosition.Extend(Game.CursorPos, E.Range);
            var targetDisE = target.ServerPosition.Distance(ePosition);

            if (ePosition.UnderTurret(true) && Me.HealthPercent <= 60)
            {
                canE = false;
            }

            if (Menu.GetBool("ComboECheck"))
            {
                if (ePosition.CountEnemiesInRange(350f) >= 3)
                {
                    canE = false;
                }

                //Catilyn W
                if (ObjectManager
                    .Get <Obj_GeneralParticleEmitter>()
                    .FirstOrDefault(
                        x =>
                        x != null && x.IsValid &&
                        x.Name.ToLower().Contains("yordletrap_idle_red.troy") &&
                        x.Position.Distance(ePosition) <= 100) != null)
                {
                    canE = false;
                }

                //Jinx E
                if (ObjectManager.Get <Obj_AI_Minion>()
                    .FirstOrDefault(x => x.IsValid && x.IsEnemy && x.Name == "k" &&
                                    x.Position.Distance(ePosition) <= 100) != null)
                {
                    canE = false;
                }

                //Teemo R
                if (ObjectManager.Get <Obj_AI_Minion>()
                    .FirstOrDefault(x => x.IsValid && x.IsEnemy && x.Name == "Noxious Trap" &&
                                    x.Position.Distance(ePosition) <= 100) != null)
                {
                    canE = false;
                }

                if (ePosition.CountEnemiesInRange(350) >= 3)
                {
                    canE = false;
                }
            }

            if (target.Distance(ePosition) > Orbwalking.GetRealAutoAttackRange(Me))
            {
                canE = false;
            }

            if (target.Health < Me.GetAutoAttackDamage(target, true) * 2 &&
                target.Distance(ePosition) <= Orbwalking.GetRealAutoAttackRange(Me) && Me.CanAttack)
            {
                canE = true;
            }

            if (!Me.HasBuff("GravesBasicAttackAmmo2") && Me.HasBuff("GravesBasicAttackAmmo1") &&
                target.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Me)) &&
                target.Distance(ePosition) <= Orbwalking.GetRealAutoAttackRange(Me))
            {
                canE = true;
            }

            if (!Me.HasBuff("GravesBasicAttackAmmo2") && !Me.HasBuff("GravesBasicAttackAmmo1") &&
                target.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Me)))
            {
                canE = true;
            }

            if (canE)
            {
                E.Cast(Game.CursorPos, true);
                canE = false;
            }
        }
Пример #27
0
        private void Combo()
        {
            var target = TargetSelector.GetSelectedTarget() ??
                         (isADMode
                             ? TargetSelector.GetTarget(EQ.Range, TargetSelector.DamageType.Physical)
                             : TargetSelector.GetTarget(EQ.Range, TargetSelector.DamageType.Magical));

            if (target.Check(EQ.Range))
            {
                if (Menu.GetBool("ComboQ") && Q.IsReady() && target.IsValidTarget(Q.Range))
                {
                    SpellManager.PredCast(Q, target);
                }

                if (Menu.GetBool("ComboW") && W.IsReady() && target.IsValidTarget(W.Range))
                {
                    SpellManager.PredCast(W, target, true);
                }

                if (Menu.GetBool("ComboE") && E.IsReady() && target.IsValidTarget(EQ.Range))
                {
                    if (Menu.GetBool("ComboECheck") && !Me.UnderTurret(true) &&
                        Me.CountEnemiesInRange(1200) <= 2)
                    {
                        var useECombo = false;

                        if (target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) &&
                            target.Check() && HealthPrediction.GetHealthPrediction(target, 750) > 0)
                        {
                            if (target.Health < E.GetDamage(target) + Me.GetAutoAttackDamage(target) &&
                                target.Distance(Game.CursorPos) < Me.Distance(Game.CursorPos))
                            {
                                useECombo = true;
                            }

                            if (target.Health < E.GetDamage(target) + W.GetDamage(target) && W.IsReady() &&
                                target.Distance(Game.CursorPos) + 350 < Me.Distance(Game.CursorPos))
                            {
                                useECombo = true;
                            }

                            if (target.Health < E.GetDamage(target) + Q.GetDamage(target) && Q.IsReady() &&
                                target.Distance(Game.CursorPos) + 300 < Me.Distance(Game.CursorPos))
                            {
                                useECombo = true;
                            }
                        }

                        if (useECombo)
                        {
                            var CastEPos = Me.Position.Extend(target.Position, 475f);

                            if (Menu.GetBool("ComboEWall"))
                            {
                                if (NavMesh.GetCollisionFlags(CastEPos) != CollisionFlags.Wall &&
                                    NavMesh.GetCollisionFlags(CastEPos) != CollisionFlags.Building &&
                                    NavMesh.GetCollisionFlags(CastEPos) != CollisionFlags.Prop)
                                {
                                    E.Cast(CastEPos);
                                    useECombo = false;
                                }
                            }
                            else
                            {
                                E.Cast(CastEPos);
                                useECombo = false;
                            }
                        }
                    }
                }

                if (Menu.GetBool("ComboR") && R.IsReady())
                {
                    if (Me.UnderTurret(true) || Me.CountEnemiesInRange(800) > 1)
                    {
                        return;
                    }

                    foreach (
                        var rTarget in
                        HeroManager.Enemies.Where(
                            x =>
                            x.Check(R.Range) &&
                            target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) &&
                            HealthPrediction.GetHealthPrediction(x, 3000) > 0))
                    {
                        if (target.Health < R.GetDamage(rTarget) && R.GetPrediction(rTarget).Hitchance >= HitChance.High &&
                            target.DistanceToPlayer() > Q.Range + E.Range / 2)
                        {
                            R.Cast(rTarget, true);
                        }

                        if (rTarget.IsValidTarget(Q.Range + E.Range) &&
                            R.GetDamage(rTarget) + (Q.IsReady() ? Q.GetDamage(rTarget) : 0) +
                            (W.IsReady() ? W.GetDamage(rTarget) : 0) > rTarget.Health + rTarget.HPRegenRate * 2)
                        {
                            R.Cast(rTarget, true);
                        }
                    }
                }
            }
        }
Пример #28
0
        private void Combo()
        {
            var target = TargetSelector.GetSelectedTarget() ??
                         TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (target.Check(Q.Range))
            {
                if (Menu.GetBool("ComboAttack") && target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me))
                {
                    var minion =
                        MinionManager.GetMinions(Me.Position, Orbwalking.GetRealAutoAttackRange(Me), MinionTypes.All,
                                                 MinionTeam.NotAlly)
                        .Where(Orbwalking.InAutoAttackRange)
                        .OrderBy(x => x.DistanceToPlayer())
                        .FirstOrDefault();

                    if (minion != null && !minion.IsDead)
                    {
                        Orbwalking.Orbwalk(minion, Game.CursorPos);
                    }
                }

                if (Menu.GetBool("ComboQ") && Q.IsReady() && target.IsValidTarget(Q.Range) && !Orbwalking.InAutoAttackRange(target))
                {
                    if (Menu.GetBool("ComboMana"))
                    {
                        if (Me.Mana > Q.ManaCost + E.ManaCost)
                        {
                            SpellManager.PredCast(Q, target);
                        }
                    }
                    else
                    {
                        SpellManager.PredCast(Q, target);
                    }
                }

                if (Menu.GetBool("ComboW") && W.IsReady() && Utils.TickCount - lastWCast > 2000)
                {
                    if (NavMesh.IsWallOfGrass(target.ServerPosition, 20) && !target.IsVisible)
                    {
                        if (Menu.GetBool("ComboMana"))
                        {
                            if (Me.Mana > Q.ManaCost + E.ManaCost * 2 + W.ManaCost + R.ManaCost)
                            {
                                W.Cast(target.ServerPosition);
                            }
                        }
                        else
                        {
                            W.Cast(target.ServerPosition);
                        }
                    }
                }

                if (Menu.GetBool("ComboE") && E.IsReady() && target.IsValidTarget(E.Range) &&
                    target.HasBuff("kalistaexpungemarker") && Utils.TickCount - lastECast >= 500)
                {
                    if (target.Health < GetRealEDamage(target))
                    {
                        E.Cast();
                    }

                    if (Menu.GetBool("ComboEUse") && target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) + 100)
                    {
                        var EKillMinion =
                            MinionManager
                            .GetMinions(Me.Position, E.Range, MinionTypes.All, MinionTeam.NotAlly)
                            .FirstOrDefault(x => x.HasBuff("kalistaexpungemarker") &&
                                            x.DistanceToPlayer() <= E.Range && x.Health < GetRealEDamage(x));

                        if (EKillMinion != null && EKillMinion.DistanceToPlayer() <= E.Range &&
                            target.IsValidTarget(E.Range))
                        {
                            E.Cast();
                        }
                    }
                }
            }
        }
Пример #29
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || !Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                return;
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var target = (Obj_AI_Hero)Args.Target;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (Menu.GetBool("ComboE") && E.IsReady() && (Q.IsReady() || target.Health < E.GetDamage(target)))
                    {
                        SpellManager.PredCast(E, target, true);
                    }

                    if (Menu.GetBool("ComboW") && W.IsReady())
                    {
                        if (target.DistanceToPlayer() <= Orbwalking.GetRealAutoAttackRange(Me))
                        {
                            if (Menu.GetBool("ComboWAlways"))
                            {
                                W.Cast();
                            }

                            if (Me.HealthPercent <= Menu.GetSlider("ComboWLowHp"))
                            {
                                W.Cast();
                            }
                        }

                        if (Menu.GetBool("ComboWBuff") && HaveEBuff(target) && Q.IsReady())
                        {
                            W.Cast();
                        }
                    }
                    else if (Menu.GetBool("ComboQ") && Q.IsReady() && target.IsValidTarget(QExtend.Range))
                    {
                        if (!HaveEBuff(target) && target.IsValidTarget(Q.Range))
                        {
                            if (Menu.GetBool("ComboFirstE") && E.IsReady() && Menu.GetBool("ComboE") && target.IsValidTarget(E.Range))
                            {
                                SpellManager.PredCast(E, target, true);
                            }
                            else
                            {
                                SpellManager.PredCast(Q, target);
                            }
                        }
                        else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target))
                        {
                            QExtend.Cast(target);
                        }
                    }
                }
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                if (ManaManager.HasEnoughMana(Menu.GetSlider("JungleClearMana")) && ManaManager.SpellFarm)
                {
                    var mobs = MinionManager.GetMinions(Me.Position, R.Range, MinionTypes.All, MinionTeam.Neutral,
                                                        MinionOrderTypes.MaxHealth);

                    if (mobs.Any())
                    {
                        var mob    = mobs.FirstOrDefault();
                        var bigmob = mobs.FirstOrDefault(x => !x.Name.ToLower().Contains("mini"));

                        if (Menu.Item("JungleClearW", true).GetValue <bool>() && W.IsReady() && bigmob != null &&
                            bigmob.IsValidTarget(W.Range))
                        {
                            W.Cast();
                        }
                        else if (Menu.Item("JungleClearQ", true).GetValue <bool>() && Q.IsReady() && mob != null &&
                                 mob.IsValidTarget(Q.Range))
                        {
                            Q.Cast(mob);
                        }
                    }
                }
            }
        }
Пример #30
0
        private void Combo()
        {
            var target = TargetSelector.GetSelectedTarget() ??
                         TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical);

            if (target.Check(QExtend.Range))
            {
                if (Menu.GetBool("ComboR") && R.IsReady() && target.IsValidTarget(R.Range))
                {
                    if (Menu.GetBool("RSafe") && !Me.UnderTurret(true))
                    {
                        foreach (
                            var rTarget in
                            HeroManager.Enemies.Where(
                                x =>
                                x.IsValidTarget(R.Range) &&
                                !Menu.GetBool("Dontr" + target.ChampionName.ToLower()))
                            .OrderByDescending(x => E.IsReady() ? E.GetDamage(x) : 0 + Q.GetDamage(x) * 2))
                        {
                            if (rTarget.CountEnemiesInRange(R.Range) <= Menu.GetSlider("RSwap"))
                            {
                                if (Menu.GetBool("RAlly") && Me.UnderAllyTurret() && rTarget.DistanceToPlayer() <= 350)
                                {
                                    R.CastOnUnit(rTarget);
                                }

                                if (Menu.GetBool("RKill") && target.Health < DamageCalculate.GetComboDamage(target))
                                {
                                    R.CastOnUnit(rTarget);
                                }
                            }
                        }
                    }
                }

                if (Menu.GetBool("ComboE") && E.IsReady() && target.IsValidTarget(E.Range) &&
                    (Q.IsReady() || target.Health < E.GetDamage(target)))
                {
                    SpellManager.PredCast(E, target, true);
                }

                if (Menu.GetBool("ComboW") && W.IsReady())
                {
                    if (target.DistanceToPlayer() <= Orbwalking.GetRealAutoAttackRange(Me))
                    {
                        if (Menu.GetBool("ComboWAlways"))
                        {
                            W.Cast();
                        }

                        if (Me.HealthPercent <= Menu.GetSlider("ComboWLowHp"))
                        {
                            W.Cast();
                        }
                    }

                    if (Menu.GetBool("ComboWBuff") && HaveEBuff(target) && Q.IsReady())
                    {
                        W.Cast();
                    }
                }

                if (Menu.GetBool("ComboQ") && Q.IsReady() && target.IsValidTarget(QExtend.Range))
                {
                    if (!HaveEBuff(target) && target.IsValidTarget(Q.Range))
                    {
                        if (Menu.GetBool("ComboFirstE") && E.IsReady() && Menu.GetBool("ComboE") && target.IsValidTarget(E.Range))
                        {
                            SpellManager.PredCast(E, target, true);
                        }
                        else
                        {
                            SpellManager.PredCast(Q, target);
                        }
                    }
                    else if (target.IsValidTarget(QExtend.Range) && HaveEBuff(target))
                    {
                        QExtend.Cast(target);
                    }
                }
            }
        }