예제 #1
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (sender.IsMe && Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                if (Args.Target is Obj_LampBulb)
                {
                    return;
                }

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

                    if (target != null)
                    {
                        if (Menu.GetBool("ComboE") && E.IsReady())
                        {
                            Cast_E(target, false);
                        }
                        else if (Menu.GetBool("ComboQ") && Q.IsReady())
                        {
                            Q.Cast(target, true);
                        }
                        else if (Menu.GetBool("ComboW") && W.IsReady())
                        {
                            W.Cast(target.Position, true);
                        }
                    }
                }

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

                        if (mobs.Any())
                        {
                            var mob = mobs.FirstOrDefault();

                            if (Menu.GetBool("JungleClearE") && E.IsReady())
                            {
                                var ex = Me.Position.Extend(Game.CursorPos, 150);

                                E.Cast(ex, true);
                            }
                            else if (Menu.GetBool("JungleClearQ") && Q.IsReady())
                            {
                                Q.Cast(mob, true);
                            }
                            else if (Menu.GetBool("JungleClearW") && W.IsReady())
                            {
                                W.Cast(mob, true);
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe)
            {
                return;
            }

            if (Args.SData.Name.Contains("GravesChargeShot"))
            {
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Burst &&
                    TargetSelector.GetSelectedTarget() != null && E.IsReady())
                {
                    var target = TargetSelector.GetSelectedTarget();
                    var pos    = Me.Position.Extend(target.Position, E.Range);
                    E.Cast(pos);
                }
            }

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

                    if (target != null && !target.IsDead && !target.IsZombie)
                    {
                        if (Menu.GetBool("ComboEAA") && E.IsReady())
                        {
                            ELogic(target);
                        }
                    }
                }

                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
                {
                    var target = Args.Target as Obj_AI_Minion;

                    if (target != null && !target.IsDead)
                    {
                        if (ManaManager.HasEnoughMana(Menu.GetSlider("JungleClearMana")) && ManaManager.SpellFarm)
                        {
                            if (Menu.GetBool("JungleClearE") && E.IsReady())
                            {
                                var mobs =
                                    MinionManager.GetMinions(Me.Position, W.Range, MinionTypes.All, MinionTeam.Neutral,
                                                             MinionOrderTypes.MaxHealth).Where(x => !x.Name.ToLower().Contains("mini"));

                                if (mobs.FirstOrDefault() != null)
                                {
                                    if (!Me.Spellbook.IsCastingSpell)
                                    {
                                        ELogic(mobs.FirstOrDefault());
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #3
0
        internal static void InitJungle(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || Args.SData == null || !Orbwalking.IsAutoAttack(Args.SData.Name) || !Orbwalking.isLaneClear ||
                !(Args.Target is Obj_AI_Minion))
            {
                return;
            }

            var mobs = MinionManager.GetMinions(E.Range + Me.AttackRange, MinionTypes.All,
                                                MinionTeam.Neutral, MinionOrderTypes.MaxHealth);
            var mob = mobs.FirstOrDefault();

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

                if (Menu.GetBool("JungleClearE") && E.IsReady())
                {
                    E.Cast(mob.Position, true);
                }
                else if (Menu.GetBool("JungleClearQ") && Q.IsReady())
                {
                    SpellManager.CastQ(mob);
                }
                else if (Menu.GetBool("JungleClearW") && W.IsReady() && mob.IsValidTarget(W.Range))
                {
                    W.Cast(true);
                }
            }
        }
예제 #4
0
        private bool CanE(Obj_AI_Hero e, GameObjectProcessSpellCastEventArgs Args)
        {
            if (Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                switch (e.ChampionName)
                {
                case "TwistedFate":
                    if (Args.SData.Name == "GoldCardLock" || Args.SData.Name == "RedCardLock" || Args.SData.Name == "BlueCardLock")
                    {
                        return(true);
                    }
                    break;

                case "Leona":
                    if (Args.SData.Name == "LeonaQ")
                    {
                        return(true);
                    }
                    break;

                default:
                    return(false);
                }
            }
            else
            {
                return(!Args.SData.Name.ToLower().Contains("summoner"));
            }

            return(false);
        }
예제 #5
0
        private static void LaneClear(GameObjectProcessSpellCastEventArgs Args)
        {
            if (Args.SData == null || !Orbwalking.IsAutoAttack(Args.SData.Name) || Args.Target == null ||
                !Orbwalking.isLaneClear || !Args.Target.IsEnemy ||
                !ManaManager.HasEnoughMana(Menu.GetSlider("LaneClearMana")) || !ManaManager.SpellFarm)
            {
                return;
            }

            if (Menu.GetBool("LaneClearW") && W.IsReady())
            {
                if (Args.Target.Type == GameObjectType.obj_AI_Turret || Args.Target.Type == GameObjectType.obj_Turret ||
                    Args.Target.Type == GameObjectType.obj_LampBulb)
                {
                    if (!Args.Target.IsDead)
                    {
                        W.Cast();
                    }
                }
                else
                {
                    var minion = (Obj_AI_Minion)Args.Target;

                    if (minion != null && minion.Health <= DamageCalculate.GetWDamage(minion))
                    {
                        W.Cast();
                        Orbwalker.ForceTarget(minion);
                    }
                }
            }
        }
예제 #6
0
        internal static void InitClear(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || Args.SData == null || !Orbwalking.IsAutoAttack(Args.SData.Name) || !Orbwalking.isLaneClear)
            {
                return;
            }

            if (Menu.GetBool("LaneClearQ") && Q.IsReady())
            {
                if (Args.Target.Type == GameObjectType.obj_AI_Turret || Args.Target.Type == GameObjectType.obj_Turret ||
                    Args.Target.Type == GameObjectType.obj_LampBulb)
                {
                    if (Q.IsReady() && !Args.Target.IsDead)
                    {
                        SpellManager.CastQ((Obj_AI_Base)Args.Target);
                    }
                }
                else if (Args.Target is Obj_AI_Minion)
                {
                    var minion  = (Obj_AI_Minion)Args.Target;
                    var minions = MinionManager.GetMinions(Me.Position, 500f);

                    if (minion != null)
                    {
                        if (minions.Count >= 2)
                        {
                            SpellManager.CastItem(true);
                            SpellManager.CastQ(minion);
                        }
                    }
                }
            }
        }
예제 #7
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;
            }
        }
예제 #8
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (sender.IsMe && Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    var target = Args.Target as Obj_AI_Hero;

                    if (target != null)
                    {
                        if (Menu.GetBool("ComboR") && R.IsReady() && R.Instance.Ammo >= Menu.GetSlider("ComboRLimit"))
                        {
                            SpellManager.PredCast(R, target, true);
                        }
                        else if (Menu.GetBool("ComboQ") && Q.IsReady())
                        {
                            SpellManager.PredCast(Q, target, true);
                        }
                        else if (Menu.GetBool("ComboE") && E.IsReady())
                        {
                            E.Cast();
                        }
                    }
                }

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

                        if (mobs.Any())
                        {
                            var mob = mobs.FirstOrDefault();

                            if (Menu.GetBool("JungleClearR") && R.IsReady() && R.Instance.Ammo >= Menu.GetSlider("JungleClearRLimit"))
                            {
                                R.Cast(mob, true);
                            }
                            else if (Menu.GetBool("JungleClearQ") && Q.IsReady())
                            {
                                Q.Cast(mob, true);
                            }
                            else if (Menu.GetBool("JungleClearE") && E.IsReady())
                            {
                                E.Cast();
                            }
                        }
                    }
                }
            }
        }
예제 #9
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (sender.IsMe && Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                var t = (Obj_AI_Base)Args.Target;

                if (t != null && !t.IsDead && !t.IsZombie)
                {
                    if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                    {
                        if (t is Obj_AI_Hero)
                        {
                            var target = (Obj_AI_Hero)Args.Target;

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

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

                    if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
                    {
                        if (ManaManager.HasEnoughMana(Menu.GetSlider("HarassMana")))
                        {
                            if (t is Obj_AI_Hero)
                            {
                                var target = (Obj_AI_Hero)Args.Target;

                                if (Menu.GetBool("Harasstarget" + target.ChampionName.ToLower()))
                                {
                                    if (Menu.GetBool("HarassQ") && Q.IsReady() && t.IsValidTarget(Q.Range))
                                    {
                                        SpellManager.PredCast(Q, target);
                                    }

                                    if (Menu.GetBool("HarassW") && W.IsReady() && t.IsValidTarget(W.Range))
                                    {
                                        SpellManager.PredCast(W, target, true);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #10
0
        internal static void InitMixed(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || Args.SData == null || !Orbwalking.IsAutoAttack(Args.SData.Name) || !Orbwalking.isHarass)
            {
                return;
            }

            SpellManager.CastItem(true);
            var ForcusTarget = TargetSelector.GetSelectedTarget();

            if (ForcusTarget != null && !ForcusTarget.IsDead && !ForcusTarget.IsZombie)
            {
                if (Menu.GetBool("HarassQ") && Q.IsReady())
                {
                    if (Menu.GetList("HarassMode") == 0)
                    {
                        if (qStack == 1)
                        {
                            SpellManager.CastQ(ForcusTarget);
                        }
                    }
                    else
                    {
                        SpellManager.CastQ(ForcusTarget);
                    }
                }
            }
            else if (Args.Target is Obj_AI_Hero)
            {
                var target = (Obj_AI_Hero)Args.Target;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (Menu.GetBool("HarassQ") && Q.IsReady())
                    {
                        if (Menu.GetList("HarassMode") == 0)
                        {
                            if (qStack == 1)
                            {
                                SpellManager.CastQ(target);
                            }
                        }
                        else
                        {
                            SpellManager.CastQ(target);
                        }
                    }
                }
            }
        }
예제 #11
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (sender.IsMe && Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    var target = Args.Target as Obj_AI_Hero;

                    if (target != null)
                    {
                        if (!target.IsDead && !target.IsZombie)
                        {
                            if (Menu.GetBool("ComboQ") && Q.IsReady())
                            {
                                if (Menu.GetBool("ComboMana"))
                                {
                                    if (Me.Mana > Q.ManaCost + E.ManaCost)
                                    {
                                        SpellManager.PredCast(Q, target);
                                    }
                                }
                                else
                                {
                                    SpellManager.PredCast(Q, target);
                                }
                            }
                        }
                    }
                }

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

                        if (mobs.Any())
                        {
                            var mob = mobs.FirstOrDefault();

                            if (Menu.GetBool("JungleClearQ") && Q.IsReady())
                            {
                                Q.Cast(mob, true);
                            }
                        }
                    }
                }
            }
        }
예제 #12
0
        internal static void InitCombo(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || Args.SData == null || !Orbwalking.IsAutoAttack(Args.SData.Name) || !Orbwalking.isCombo)
            {
                return;
            }

            SpellManager.CastItem(true, true);
            var ForcusTarget = TargetSelector.GetSelectedTarget();

            if (ForcusTarget != null && !ForcusTarget.IsDead && !ForcusTarget.IsZombie)
            {
                if (Q.IsReady())
                {
                    SpellManager.CastQ(ForcusTarget);
                    return;
                }

                if (W.IsReady() && ForcusTarget.IsValidTarget(W.Range) &&
                    !ForcusTarget.HasBuffOfType(BuffType.SpellShield) &&
                    (ForcusTarget.IsMelee || ForcusTarget.IsFacing(Me) || !Q.IsReady() ||
                     Me.HasBuff("RivenFeint") ||
                     qStack != 0))
                {
                    W.Cast();
                }
            }
            else if (Args.Target is Obj_AI_Hero)
            {
                var target = (Obj_AI_Hero)Args.Target;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (Q.IsReady())
                    {
                        SpellManager.CastQ(target);
                        return;
                    }

                    if (W.IsReady() && target.IsValidTarget(W.Range) && !target.HasBuffOfType(BuffType.SpellShield) &&
                        (target.IsMelee || target.IsFacing(Me) || !Q.IsReady() || Me.HasBuff("RivenFeint") ||
                         qStack != 0))
                    {
                        W.Cast();
                    }
                }
            }
        }
예제 #13
0
        internal static void Init(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || Args.SData == null || !Orbwalking.IsAutoAttack(Args.SData.Name) || Args.Target == null)
            {
                return;
            }

            if (Orbwalking.isCombo && Args.Target.Type == GameObjectType.obj_AI_Hero)
            {
                SpellManager.CastItem();

                var target = (Obj_AI_Hero)Args.Target;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (Menu.GetBool("ComboW") && W.IsReady() && Orbwalking.InAutoAttackRange(target))
                    {
                        W.Cast();
                        Orbwalker.ForceTarget(target);
                    }
                }
            }

            if (Orbwalking.isHarass && Args.Target.Type == GameObjectType.obj_AI_Hero)
            {
                SpellManager.CastItem();

                var target = (Obj_AI_Hero)Args.Target;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (Menu.GetBool("HarassW") && W.IsReady() && Orbwalking.InAutoAttackRange(target))
                    {
                        W.Cast();
                        Orbwalker.ForceTarget(target);
                    }
                }
            }

            if (Orbwalking.isLaneClear)
            {
                LaneClear(Args);
                JungleClear(Args);
            }
        }
예제 #14
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();
                        }
                    }
                }
            }
        }
예제 #15
0
        private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe)
            {
                return;
            }

            var spellslot = Me.GetSpellSlot(Args.SData.Name);

            if (spellslot == SpellSlot.E)
            {
                LastECast = Utils.TickCount;
            }

            if (Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                IsAttack = true;
                Utility.DelayAction.Add(500, () => IsAttack = false);
            }
        }
예제 #16
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);
                }
            }
        }
예제 #17
0
        internal static void InitBurst(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || Args.SData == null || !Orbwalking.IsAutoAttack(Args.SData.Name) || !Orbwalking.isBurst)
            {
                return;
            }

            SpellManager.CastItem(true, true);

            var target = TargetSelector.GetSelectedTarget();

            if (target != null && !target.IsDead && !target.IsZombie)
            {
                if (Q.IsReady())
                {
                    SpellManager.CastQ(target);
                }
                else if (W.IsReady() && target.IsValidTarget(W.Range))
                {
                    W.Cast();
                }
            }
        }
예제 #18
0
        private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (!sender.IsMe || !Orbwalking.IsAutoAttack(Args.SData.Name))
            {
                return;
            }

            if (Args.Target is Obj_LampBulb)
            {
                return;
            }

            switch (Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
            {
                var target = Args.Target as Obj_AI_Hero;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (Menu.GetBool("ComboYoumuu") && Items.HasItem(3142) && Items.CanUseItem(3142))
                    {
                        Items.UseItem(3142);
                    }

                    if (Menu.GetBool("ComboQ") && Q.IsReady() && target.IsValidTarget(Q.Range))
                    {
                        Q.CastOnUnit(target, true);
                    }
                    else if (Menu.GetBool("ComboW") && Menu.GetBool("ComboWAA") && W.IsReady() &&
                             target.IsValidTarget(W.Range) && target.HasBuff("jhinespotteddebuff"))
                    {
                        SpellManager.PredCast(W, target, true);
                    }
                }
            }
            break;

            case Orbwalking.OrbwalkingMode.Mixed:
            {
                if (ManaManager.HasEnoughMana(Menu.GetSlider("HarassMana")))
                {
                    var hero = Args.Target as Obj_AI_Hero;

                    if (hero != null && !hero.IsDead)
                    {
                        var target = hero;

                        if (Menu.GetBool("HarassQ") && Q.IsReady() && target.IsValidTarget(Q.Range))
                        {
                            Q.CastOnUnit(target, true);
                        }
                        else if (Menu.GetBool("HarassW") && W.IsReady() && target.IsValidTarget(W.Range) &&
                                 target.HasBuff("jhinespotteddebuff"))
                        {
                            SpellManager.PredCast(W, target, true);
                        }
                    }
                }
            }
            break;
            }
        }
예제 #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 target = (Obj_AI_Hero)Args.Target;

                if (target != null && !target.IsDead && !target.IsZombie)
                {
                    if (Menu.GetBool("ComboW") && W.IsReady() && target.IsValidTarget(W.Range))
                    {
                        W.Cast();
                    }
                    else if (Menu.GetBool("ComboR") && R.IsReady() && Menu.GetSlider("ComboRLimit") >= GetRCount &&
                             target.IsValidTarget(R.Range))
                    {
                        SpellManager.PredCast(R, target, true);
                    }
                    else if (Menu.GetBool("ComboQ") && Q.IsReady() && target.IsValidTarget(Q.Range))
                    {
                        SpellManager.PredCast(Q, target);
                    }
                    else if (Menu.GetBool("ComboE") && E.IsReady() && target.IsValidTarget(E.Range))
                    {
                        SpellManager.PredCast(E, target, true);
                    }
                }
            }

            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.GetBool("JungleClearW") && W.IsReady() && bigmob != null && bigmob.IsValidTarget(W.Range))
                        {
                            W.Cast();
                        }
                        else if (Menu.GetBool("JungleClearR") && R.IsReady() && Menu.GetSlider("JungleClearRLimit") >= GetRCount &&
                                 bigmob != null)
                        {
                            R.Cast(bigmob);
                        }
                        else if (Menu.GetBool("JungleClearE") && E.IsReady())
                        {
                            if (bigmob != null && bigmob.IsValidTarget(E.Range))
                            {
                                E.Cast(bigmob);
                            }
                            else
                            {
                                var eMobs = MinionManager.GetMinions(Me.Position, E.Range, MinionTypes.All, MinionTeam.Neutral,
                                                                     MinionOrderTypes.MaxHealth);
                                var eFarm = E.GetLineFarmLocation(eMobs, E.Width);

                                if (eFarm.MinionsHit >= 2)
                                {
                                    E.Cast(eFarm.Position);
                                }
                            }
                        }
                        else if (Menu.GetBool("JungleClearQ") && Q.IsReady() && mob != null && mob.IsValidTarget(Q.Range))
                        {
                            Q.Cast(mob);
                        }
                    }
                }
            }
        }
예제 #20
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);
                        }
                    }
                }
            }
        }
예제 #21
0
        private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (sender == null || !sender.IsEnemy || Args.Target == null || Me.IsDead || Me.InFountain())
            {
                return;
            }

            switch (sender.Type)
            {
            case GameObjectType.obj_AI_Hero:
                if (Args.Target.IsMe)
                {
                    if (sender.IsMelee && Q.IsReady() && Menu.GetBool("QMelee"))
                    {
                        Q.Cast(Me.Position.Extend(sender.Position, -Q.Range));
                    }

                    if (R.IsReady() && Menu.GetBool("AutoR"))
                    {
                        if (Me.HealthPercent <= Menu.GetSlider("AutoRHp"))
                        {
                            R.Cast();
                        }

                        if (Orbwalking.IsAutoAttack(Args.SData.Name))
                        {
                            if (sender.GetAutoAttackDamage(Me, true) >= Me.Health)
                            {
                                R.Cast();
                            }
                        }
                        else
                        {
                            var target = (Obj_AI_Hero)Args.Target;

                            if (target.GetSpellSlot(Args.SData.Name) != SpellSlot.Unknown)
                            {
                                if (target.GetSpellDamage(Me, Args.SData.Name) > Me.Health)
                                {
                                    if (Args.End.DistanceToPlayer() < 150 + Me.BoundingRadius)
                                    {
                                        R.Cast();
                                    }

                                    if (target.DistanceToPlayer() < 150 + Me.BoundingRadius)
                                    {
                                        R.Cast();
                                    }
                                }
                            }
                        }
                    }
                }
                else if (Args.Target.IsAlly && Args.Target.Type == GameObjectType.obj_AI_Hero && !Args.Target.IsDead)
                {
                    var ally = (Obj_AI_Hero)Args.Target;

                    if (R.IsReady() && Menu.GetBool("AutoSave") && ally.DistanceToPlayer() <= R.Range)
                    {
                        if (ally.HealthPercent <= Menu.GetSlider("AutoSaveHp"))
                        {
                            R.Cast();
                        }

                        if (Orbwalking.IsAutoAttack(Args.SData.Name))
                        {
                            if (sender.GetAutoAttackDamage(ally, true) >= ally.Health)
                            {
                                R.Cast();
                            }
                        }
                        else
                        {
                            var target = (Obj_AI_Hero)Args.Target;

                            if (target.GetSpellSlot(Args.SData.Name) != SpellSlot.Unknown)
                            {
                                if (target.GetSpellDamage(Me, Args.SData.Name) > Me.Health)
                                {
                                    if (Args.End.DistanceToPlayer() < 150 + ally.BoundingRadius)
                                    {
                                        R.Cast();
                                    }

                                    if (target.DistanceToPlayer() < 150 + ally.BoundingRadius)
                                    {
                                        R.Cast();
                                    }
                                }
                            }
                        }
                    }
                }
                break;

            case GameObjectType.obj_AI_Turret:
                if (Args.Target.IsMe)
                {
                    if (sender.IsMelee && Q.IsReady() && Menu.GetBool("QMelee"))
                    {
                        Q.Cast(Me.Position.Extend(sender.Position, -Q.Range));
                    }

                    if (R.IsReady() && Menu.GetBool("AutoR"))
                    {
                        if (sender.TotalAttackDamage > Me.Health)
                        {
                            R.Cast();
                        }
                    }
                }
                else if (Args.Target.IsAlly && Args.Target.Type == GameObjectType.obj_AI_Hero && !Args.Target.IsDead)
                {
                    var ally = (Obj_AI_Hero)Args.Target;

                    if (R.IsReady() && Menu.GetBool("AutoSave") && ally.DistanceToPlayer() <= R.Range)
                    {
                        if (sender.TotalAttackDamage > ally.Health)
                        {
                            R.Cast();
                        }
                    }
                }
                break;
            }
        }