示例#1
0
        private static void Combo(bool extended = false, AIHeroClient sender = null)
        {
            if (Orbwalker.ActiveMode != OrbwalkerMode.Combo)
            {
                return;
            }

            //if (Config.Item("combo.r").GetValue<bool>())
            //{
            //    AIHeroClient RTarget = GameObjects.EnemyHeroes.FirstOrDefault(t => t.CountAlliesInRange(660) > 0);
            //    if (RTarget != null)
            //    {
            //        R.CastIfWillHit(RTarget, Config.Item("combo.rmin").GetValue<Slider>().Value);
            //    }
            //}
            //Config.Menu["Combo"]["combo.qe"].GetValue<MenuBool>()
            if (Config.Menu["Combo"]["combo.aae"].GetValue <MenuBool>() && Orbwalker.CanAttack())
            {
                List <Barrel> barrelsInAutoAttackRange = AllBarrel.Where(b => b.GetBarrel().Distance(Player) <= ObjectManager.Player.GetRealAutoAttackRange() && b.CanAANow()).ToList();
                if (barrelsInAutoAttackRange.Any() && (Player.Buffs.All(buff => buff.Name != "gangplankpassiveattack")))
                {
                    BarrelAAForced = false;
                    foreach (Barrel b in barrelsInAutoAttackRange)
                    {
                        if (GameObjects.EnemyHeroes.Any(enemy => b.GetBarrel().Position.CannotEscapeFromAA(enemy) || GetBarrelsInRange(b).Any(bar => bar.GetBarrel().Position.CannotEscapeFromAA(enemy))))
                        {
                            Orbwalker.Orbwalk(b.GetBarrel(), Game.CursorPos);
                            BarrelAAForced = true;
                        }
                    }
                }
            }

            if (Config.Menu["Combo"]["combo.qe"].GetValue <MenuBool>() && Q.IsReady() && !BarrelAAForced)
            {
                AIHeroClient target = TargetSelector.GetTarget(1200, DamageType.Physical);
                if (target != null)
                {
                    EnemyPosition = target.Position;
                    Helper.GetPredPos(target);
                    if (extended && target != sender)
                    {
                        extended = false;
                    }

                    foreach (var b in AllBarrel)
                    {
                        if (b.CanQNow() && (b.GetBarrel().Position.CannotEscape(target, extended) || GetBarrelsInRange(b).Any(bb => bb.GetBarrel().Position.CannotEscape(target, extended, true))))
                        {
                            QDelay.Delay(b.GetBarrel());
                            break;
                        }
                    }
                    if (E.IsReady() && !QDelay.Active())
                    {
                        if (Config.Menu["Combo"]["combo.doublee"].GetValue <MenuBool>().Enabled)
                        {
                            foreach (var b in AllBarrel)
                            {
                                if (b.CanQNow() && b.GetBarrel().Distance(Player) > 615 &&
                                    b.GetBarrel().Distance(target) < 850)
                                {
                                    Q.Cast(b.GetBarrel());
                                    break;
                                }
                            }
                        }
                        if (Config.Menu["Combo"]["combo.ex"].GetValue <MenuBool>())
                        {
                            foreach (var b in AllBarrel)
                            {
                                var castPos = b.GetBarrel().Position.ExtendToMaxRange(Helper.PredPos.ToVector3(), 685);

                                if (b.CanQNow() && castPos.Distance(Player.Position) < 1000 &&
                                    castPos.CannotEscape(target, extended, true))
                                {
                                    E.Cast(castPos);
                                    QDelay.Delay(b.GetBarrel());
                                    break;
                                }
                            }
                        }
                    }
                }
            }

            //Triple - Logic
            if (Q.IsReady() && E.IsReady() && Config.Menu["Combo"]["combo.triplee"].GetValue <MenuBool>().Enabled)
            {
                IEnumerable <Barrel> validBarrels = AllBarrel.Where(b => b.CanQNow() && b.GetBarrel().Distance(Player) <= 625);
                foreach (Barrel validBarrel in validBarrels)
                {
                    IEnumerable <Barrel> inRange = GetBarrelsInRange(validBarrel);
                    if (
                        inRange.Any(
                            b =>
                            GameObjects.EnemyHeroes.Any(
                                e => b.GetBarrel().Distance(e.Position) < 1100 && e.Distance(Player.Position) < 1000)))
                    {
                        Q.Cast(validBarrel.GetBarrel());
                    }
                }
            }
            if (Q.IsReady() && E.Instance.Ammo >= 2 && Config.Menu["Combo"]["combo.triplee"].GetValue <MenuBool>().Enabled)
            {
                List <Barrel> GetValidBarrels = AllBarrel.Where(b => b.CanQNow(400) && b.GetBarrel().Distance(Player) <= 625).ToList();
                AIHeroClient  target          = TargetSelector.GetTarget(1200, DamageType.Physical);
                if (target != null && GetValidBarrels.Any(b => b.GetBarrel().Distance(target) <= 1200))
                {
                    E.Cast(GetValidBarrels.First(b => b.GetBarrel().Distance(target) <= 1200).GetBarrel().Position.ExtendToMaxRange(Player.Position.ExtendToMaxRange(target.Position, 980), 685));
                    DelayAction.Add(600, () => QDelay.Delay(GetValidBarrels.First().GetBarrel()));
                }
            }
            //Config.Menu["Key"]["key.q"].GetValue<MenuKeyBind>().Active

            if (Config.Menu["Combo"]["combo.q"].GetValue <MenuBool>() && Q.IsReady())
            {
                AIHeroClient target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
                if (target != null && (Config.Menu["Key"]["key.q"].GetValue <MenuKeyBind>().Active || (!E.IsReady() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(target.Position) < 600))))
                {
                    Q.Cast(target);
                }
            }
            if (E.IsReady() && E.Instance.Ammo > 1 && Config.Menu["Combo"]["combo.e"].GetValue <MenuBool>() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(Player.Position) <= 1200))
            {
                AIHeroClient target = TargetSelector.GetTarget(1000, DamageType.Physical);
                if (target == null)
                {
                    return;
                }
                Helper.GetPredPos(target);
                Vector2 castPos = target.Position.Extend(Helper.PredPos.ToVector3(), 200).ToVector2();
                if (Player.Distance(castPos) <= E.Range)
                {
                    E.Cast(castPos);
                }
                else
                {
                    E.Cast(Player.Position.Extend(castPos.ToVector3(), 1000));
                }
            }
        }
示例#2
0
        private static void Combo(bool extended = false, Obj_AI_Hero sender = null)
        {
            if (Config.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
            {
                return;
            }

            //if (Config.Item("combo.r").GetValue<bool>())
            //{
            //    Obj_AI_Hero RTarget = HeroManager.Enemies.FirstOrDefault(t => t.CountAlliesInRange(660) > 0);
            //    if (RTarget != null)
            //    {
            //        R.CastIfWillHit(RTarget, Config.Item("combo.rmin").GetValue<Slider>().Value);
            //    }
            //}
            if (Config.Menu.Item("combo.aae").GetValue <bool>() && Orbwalking.CanAttack())
            {
                List <Barrel> barrelsInAutoAttackRange = AllBarrel.Where(b => b.GetBarrel().Distance(Player) <= Orbwalking.GetRealAutoAttackRange(Player) && b.CanAANow()).ToList();
                if (barrelsInAutoAttackRange.Any() && (!Player.GetEnemiesInRange(Orbwalking.GetRealAutoAttackRange(Player)).Any() || !Player.Buffs.Any(buff => buff.Name == "gangplankpassiveattack")))
                {
                    foreach (Barrel b in barrelsInAutoAttackRange)
                    {
                        if (HeroManager.Enemies.Any(enemy => b.GetBarrel().Position.CannotEscapeFromAA(enemy) || GetBarrelsInRange(b).Any(bar => bar.GetBarrel().Position.CannotEscapeFromAA(enemy))))
                        {
                            Config.Orbwalker.ForceTarget(b.GetBarrel());
                        }
                    }
                }
            }

            if (Config.Menu.Item("combo.qe").GetValue <bool>() && Q.IsReady())
            {
                Obj_AI_Hero target = TargetSelector.GetTarget(1200, TargetSelector.DamageType.Physical);
                if (target != null)
                {
                    EnemyPosition = target.Position;
                    Helper.GetPredPos(target);
                    if (extended && target != sender)
                    {
                        extended = false;
                    }

                    foreach (var b in AllBarrel)
                    {
                        if (b.CanQNow() && (b.GetBarrel().Position.CannotEscape(target, extended) || GetBarrelsInRange(b).Any(bb => bb.GetBarrel().Position.CannotEscape(target, extended, true))))
                        {
                            QDelay.Delay(b.GetBarrel());
                            break;
                        }
                    }
                    if (E.IsReady() && !QDelay.Active())
                    {
                        if (Config.Item("combo.doublee").GetValue <bool>())
                        {
                            foreach (var b in AllBarrel)
                            {
                                if (b.CanQNow() && b.GetBarrel().Distance(Player) > 615 &&
                                    b.GetBarrel().Distance(target) < 850)
                                {
                                    Q.Cast(b.GetBarrel());
                                    break;
                                }
                            }
                        }
                        if (Config.Item("combo.ex").GetValue <bool>())
                        {
                            foreach (var b in AllBarrel)
                            {
                                var castPos = b.GetBarrel().Position.ExtendToMaxRange(Helper.PredPos.To3D(), 685);

                                if (b.CanQNow() && castPos.Distance(Player.Position) < 1000 &&
                                    castPos.CannotEscape(target, extended, true))
                                {
                                    E.Cast(castPos);
                                    QDelay.Delay(b.GetBarrel());
                                    break;
                                }
                            }
                        }
                    }
                }
            }

            //Triple - Logic
            if (Q.IsReady() && E.Instance.Ammo >= 2 && Config.Item("combo.triplee").GetValue <bool>())
            {
                List <Barrel> GetValidBarrels = AllBarrel.Where(b => b.CanQNow(400) && b.GetBarrel().Distance(Player) <= 625).ToList();
                Obj_AI_Hero   target          = TargetSelector.GetTarget(1200, TargetSelector.DamageType.Physical);
                if (target != null && GetValidBarrels.Any(b => b.GetBarrel().Distance(target) <= 1200))
                {
                    E.Cast(GetValidBarrels.First(b => b.GetBarrel().Distance(target) <= 1200).GetBarrel().Position.ExtendToMaxRange(Player.Position.ExtendToMaxRange(target.Position, 980), 685));
                    Utility.DelayAction.Add(600, () => QDelay.Delay(GetValidBarrels.First().GetBarrel()));
                }
            }

            if (Config.Item("combo.q").GetValue <bool>() && Q.IsReady())
            {
                Obj_AI_Hero target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                if (target != null && (Config.Item("key.q").GetValue <KeyBind>().Active || (!E.IsReady() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(target.Position) < 600))))
                {
                    Q.Cast(target);
                }
            }
            if (E.IsReady() && E.Instance.Ammo > 1 && Config.Item("combo.e").GetValue <bool>() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(Player.Position) <= 1200))
            {
                Obj_AI_Hero target = TargetSelector.GetTarget(1000, TargetSelector.DamageType.Physical);
                if (target == null)
                {
                    return;
                }
                Helper.GetPredPos(target);
                Vector2 castPos = target.Position.Extend(Helper.PredPos.To3D(), 200).To2D();
                if (Player.Distance(castPos) <= E.Range)
                {
                    E.Cast(castPos);
                }
                else
                {
                    E.Cast(Player.Position.Extend(castPos.To3D(), 1000));
                }
            }
        }