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)); } } }
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)); } } }