protected override void LaneClear() { if (Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady() && ManaManager.Check("lane-clear-e")) { var minions = MinionManager.GetMinions( MaxERange * 1.5f, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth); var minHits = minions.Any(m => m.Team == GameObjectTeam.Neutral) ? 1 : Menu.Item(Menu.Name + ".lane-clear.e-min").GetValue <Slider>().Value; if (minions.Count >= minHits) { ELogic(null, (minions.Concat(GameObjects.EnemyHeroes)).ToList(), HitChance.High, minHits); } } if (Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady() && ManaManager.Check("lane-clear-q")) { var minion = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth) .FirstOrDefault(m => m.Health <Q.GetDamage(m) || m.Health * 2> Q.GetDamage(m)); if (minion != null) { Casting.TargetSkill(minion, Q); } } }
protected override void Harass() { if (ManaManager.Check("harass")) { var useQ = Menu.Item(Menu.Name + ".harass.q").GetValue <bool>() && Q.IsReady(); var useW = Menu.Item(Menu.Name + ".harass.w").GetValue <bool>() && W.IsReady(); if (useQ) { Casting.SkillShot(Q, Q.GetHitChance("harass")); } if (useW) { WLogic(); } } if (ManaManager.Check("harass-r")) { var useR = Menu.Item(Menu.Name + ".harass.r").GetValue <bool>() && R.IsReady(); if (useR && Menu.Item(Menu.Name + ".miscellaneous.r-max").GetValue <Slider>().Value > GetRBuffCount()) { var target = TargetSelector.GetTarget(R); if (target != null && (Player.FlatMagicDamageMod > 50 || !GameObjects.Enemy.Any(e => e.IsValidTarget() && Orbwalking.InAutoAttackRange(e)))) { Casting.SkillShot(R, R.GetHitChance("harass")); } } } }
protected override void Harass() { var q = Menu.Item(Menu.Name + ".harass.q").GetValue <bool>(); var w = Menu.Item(Menu.Name + ".harass.w").GetValue <bool>(); if (w && W.IsReady()) { var target = TargetSelector.GetTarget(W, false); if (target != null) { var best = GetBestCard(target, "harass"); if (best.Any()) { Cards.Select(best); } } } if (ManaManager.Check("harass") && q && Q.IsReady()) { var target = TargetSelector.GetTarget(Q, false); if (target != null) { { var best = BestQPosition( target, GameObjects.EnemyHeroes.Cast <Obj_AI_Base>().ToList(), Q.GetHitChance("harass")); if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= 1) { Q.Cast(best.Item2); } } } } }
protected override void LaneClear() { if (!ManaManager.Check("lane-clear")) { return; } var useW = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>() && W.IsReady(); var useE = Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady(); var useR = Menu.Item(Menu.Name + ".lane-clear.r").GetValue <bool>() && R.IsReady(); var minE = Menu.Item(Menu.Name + ".lane-clear.e-min").GetValue <Slider>().Value; var minR = Menu.Item(Menu.Name + ".lane-clear.r-min").GetValue <Slider>().Value; if (useW) { Casting.FarmSelfAoe(W, 1, Player.AttackRange + Player.BoundingRadius * 1.25f + 20 * W.Level); } if (useE) { Casting.Farm(E, minE); } if (useR && Menu.Item(Menu.Name + ".miscellaneous.r-max").GetValue <Slider>().Value > GetRBuffCount()) { Casting.Farm(R, minR); } }
private void OnCorePreUpdate(EventArgs args) { try { if ((Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit && ManaManager.Check("lasthit")) && E.IsReady()) { var ePoison = Menu.Item(Menu.Name + ".lasthit.e-poison").GetValue <bool>(); var eHit = Menu.Item(Menu.Name + ".lasthit.e").GetValue <bool>(); if (eHit || ePoison) { var m = MinionManager.GetMinions( Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly) .FirstOrDefault( e => e.Health < E.GetDamage(e) - 5 && (ePoison && GetPoisonBuffEndTime(e) > E.ArrivalTime(e) || eHit)); if (m != null) { Casting.TargetSkill(m, E); } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
protected override void LaneClear() { var min = Menu.Item(Menu.Name + ".lane-clear.min").GetValue <Slider>().Value; if (Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady() && (ManaManager.Check("lane-clear") || Q.IsCharging)) { var minions = MinionManager.GetMinions( Q.ChargedMaxRange, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth); if (Q.IsCharging || minions.Count >= min || minions.Any(m => m.Team == GameObjectTeam.Neutral)) { if (!Q.IsCharging) { Q.StartCharging(); _lastLaneClearQStart = Game.Time; } if (Q.IsCharging && IsFullyCharged()) { Casting.Farm( Q, Game.Time - _lastLaneClearQStart > 3 ? 1 : (minions.Count < min ? minions.Count : min), -1f, false, minions); } } } if (Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady() && ManaManager.Check("lane-clear")) { Casting.Farm(E, min); } }
protected override void Harass() { if (!ManaManager.Check("harass")) { return; } if (Menu.Item(Menu.Name + ".harass.q").GetValue <bool>() && Q.IsReady()) { Casting.SkillShot(Q, Q.GetHitChance("harass")); } }
private void OnOrbwalkingAfterAttack(AttackableUnit unit, AttackableUnit target) { try { if (unit.IsMe && W.IsReady()) { var useW = false; var wMin = 0; var laneclear = false; switch (Orbwalker.ActiveMode) { case Orbwalking.OrbwalkingMode.Combo: useW = Menu.Item(Menu.Name + ".combo.w").GetValue <bool>(); break; case Orbwalking.OrbwalkingMode.Mixed: useW = Menu.Item(Menu.Name + ".harass.w").GetValue <bool>(); break; case Orbwalking.OrbwalkingMode.LaneClear: useW = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>(); wMin = Menu.Item(Menu.Name + ".lane-clear.w-min").GetValue <Slider>().Value; laneclear = true; break; } if (useW && (!laneclear || ManaManager.Check("lane-clear-w"))) { var range = W.Range + Player.BoundingRadius * 2f; var targets = laneclear ? MinionManager.GetMinions( range + 450, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth) : GameObjects.EnemyHeroes.Where(e => e.IsValidTarget(range + 450)) .Cast <Obj_AI_Base>() .ToList(); if (targets.Count >= wMin && targets.Any(Orbwalking.InAutoAttackRange) && (wMin == 0 || targets.Any( t => Orbwalking.InAutoAttackRange(t) && targets.Any(t2 => t2.NetworkId != t.NetworkId && t2.Distance(t) <= 450)))) { W.Cast(); Orbwalking.ResetAutoAttackTimer(); } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
protected override void Harass() { if (!ManaManager.Check("harass")) { return; } if (Menu.Item(Menu.Name + ".harass.q").GetValue <bool>() && Q.IsReady() && (!Menu.Item(Menu.Name + ".harass.w").GetValue <bool>() || (W.Level == 0 || !W.IsReady() || !GameObjects.EnemyHeroes.Any(Orbwalking.InAutoAttackRange)))) { Casting.SkillShot(Q, Q.GetHitChance("combo")); } }
protected override void Harass() { if (Menu.Item(Menu.Name + ".harass.q").GetValue <bool>()) { QLogic(Q.GetHitChance("harass")); } if (Menu.Item(Menu.Name + ".harass.w").GetValue <bool>()) { WLogic(W.GetHitChance("harass")); } if (Menu.Item(Menu.Name + ".harass.e").GetValue <bool>() && ManaManager.Check("harass")) { ELogic(); } }
protected override void LaneClear() { if (!ManaManager.Check("lane-clear")) { return; } var useQ = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady(); var minQ = Menu.Item(Menu.Name + ".lane-clear.q-min").GetValue <Slider>().Value; if (useQ) { Casting.Farm(Q, minQ, 200f); } }
private void OnOrbwalkingBeforeAttack(Orbwalking.BeforeAttackEventArgs args) { try { var t = args.Target as Obj_AI_Hero; if (t != null && (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)) { args.Process = Q.Instance.ManaCost > Player.Mana && W.Instance.ManaCost > Player.Mana && (E.Instance.ManaCost > Player.Mana || GetPoisonBuffEndTime(t) < E.ArrivalTime(t)) || !Q.IsReady() && !E.IsReady(); } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { args.Process = Menu.Item(Menu.Name + ".lane-clear.aa").GetValue <bool>(); if (args.Process == false) { var m = args.Target as Obj_AI_Minion; if (m != null && (_lastEEndTime < Game.Time || E.IsReady()) || (GetPoisonBuffEndTime(m) < E.ArrivalTime(m) || E.Instance.ManaCost > Player.Mana) || !ManaManager.Check("lane-clear")) { args.Process = true; } } } if ((Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)) { var m = args.Target as Obj_AI_Minion; if (m != null && E.CanCast(m)) { if (E.Instance.ManaCost < Player.Mana) { args.Process = Menu.Item(Menu.Name + ".lasthit.e").GetValue <bool>() || (Menu.Item(Menu.Name + ".lasthit.e-poison").GetValue <bool>() && GetPoisonBuffEndTime(m) > E.ArrivalTime(m)) && ManaManager.Check("lasthit"); } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnOrbwalkingNonKillableMinion(AttackableUnit unit) { try { if (Menu.Item(Menu.Name + ".lasthit.e-unkillable").GetValue <bool>() && E.IsReady() && ManaManager.Check("lasthit")) { var target = unit as Obj_AI_Base; if (target != null && Rend.IsKillable(target, true)) { E.Cast(); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
protected override void Harass() { if (!ManaManager.Check("harass") && !Q.IsCharging) { return; } if (Menu.Item(Menu.Name + ".harass.e").GetValue <bool>() && !Q.IsCharging && E.IsReady()) { var target = TargetSelector.GetTarget(E); if (target != null) { var stacks = W.Level == 0 && Menu.Item(Menu.Name + ".harass.e-stacks").GetValue <Slider>().Value > 0; if (Menu.Item(Menu.Name + ".harass.e-always").GetValue <bool>() || stacks || GetWStacks(target) >= Menu.Item(Menu.Name + ".harass.e-stacks").GetValue <Slider>().Value || E.IsKillable(target) || CPrediction.Circle(E, target, E.GetHitChance("harass")).TotalHits >= Menu.Item(Menu.Name + ".combo.e-min").GetValue <Slider>().Value) { ELogic(target, E.GetHitChance("harass")); } } } if (Menu.Item(Menu.Name + ".harass.q").GetValue <bool>() && Q.IsReady()) { var target = TargetSelector.GetTarget((Q.ChargedMaxRange + Q.Width) * 1.1f, Q.DamageType); if (target != null) { var stacks = W.Level == 0 && Menu.Item(Menu.Name + ".harass.q-stacks").GetValue <Slider>().Value > 0; if (Q.IsCharging || Menu.Item(Menu.Name + ".harass.q-always").GetValue <bool>() || Menu.Item(Menu.Name + ".harass.q-range").GetValue <bool>() && !Orbwalking.InAutoAttackRange(target) || stacks || GetWStacks(target) >= Menu.Item(Menu.Name + ".harass.q-stacks").GetValue <Slider>().Value || Q.IsKillable(target) || CPrediction.Line(Q, target, Q.GetHitChance("harass")).TotalHits >= Menu.Item(Menu.Name + ".harass.q-min").GetValue <Slider>().Value) { QLogic( target, Q.GetHitChance("harass"), Menu.Item(Menu.Name + ".harass.q-fast-cast-min").GetValue <Slider>().Value); } } } }
protected override void LaneClear() { var q = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>(); var qMin = Menu.Item(Menu.Name + ".lane-clear.q-min").GetValue <Slider>().Value; var w = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>(); if (ManaManager.Check("lane-clear") && q && Q.IsReady()) { var minions = MinionManager.GetMinions( Q.Range * 1.2f, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth); var m = minions.OrderBy(x => x.Distance(Player)).FirstOrDefault(); if (m == null) { return; } if (m.Team != GameObjectTeam.Neutral) { minions.RemoveAll(x => x.Team == GameObjectTeam.Neutral); } else { qMin = 1; } var best = BestQPosition(null, minions, HitChance.High); if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= qMin) { Q.Cast(best.Item2); } } if (w && W.IsReady()) { var minions = MinionManager.GetMinions( W.Range * 1.2f, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth); if (minions.Any()) { Cards.Select(!ManaManager.Check("lane-clear-blue") ? CardColor.Blue : CardColor.Red); } } }
private void OnEnemyTargetCast(object sender, TargetCastArgs args) { try { if (Menu.Item(Menu.Name + ".shield.enabled").GetValue <bool>() && args.Target.IsMe && ManaManager.Check("shield")) { if (args.Type == SpellDataTargetType.SelfAoe) { E.Cast(); } if (args.Type == SpellDataTargetType.Unit && args.Target != null && args.Target.IsMe) { var delay = (int)(Utils.SpellArrivalTime(args.Sender, Player, args.Delay, args.Speed, true)) * 1000; var ping = Game.Ping / 2000; if (delay - 200 - ping > 0) { Utility.DelayAction.Add( delay - 100 - ping, delegate { if (E.IsReady()) { E.Cast(); } }); } else if (E.IsReady()) { E.Cast(); } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
protected override void Harass() { if (!ManaManager.Check("harass")) { return; } if (Menu.Item(Menu.Name + ".harass.e").GetValue <bool>()) { var target = TargetSelector.GetTarget((MaxERange + E.Width) * 1.1f, E.DamageType); if (target != null) { ELogic(target, GameObjects.EnemyHeroes.ToList(), E.GetHitChance("harass")); } } if (Menu.Item(Menu.Name + ".harass.q").GetValue <bool>()) { var target = TargetSelector.GetTarget(Q.Range, Q.DamageType); if (target != null) { Q.CastOnUnit(target); } } }
protected override void LaneClear() { var q = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady(); var w = Menu.Item(Menu.Name + ".lane-clear.w").GetValue <bool>() && W.IsReady(); if (Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady() && ManaManager.Check("lane-clear") && DelayManager.Check("e-delay", _lastECast)) { var minion = MinionManager.GetMinions( Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth) .Where( e => GetPoisonBuffEndTime(e) > E.ArrivalTime(e) && (e.Team == GameObjectTeam.Neutral || (e.Health > E.GetDamage(e) * 2 || e.Health < E.GetDamage(e) - 5))) .OrderByDescending( m => m.CharData.BaseSkinName.Contains("MinionSiege", StringComparison.OrdinalIgnoreCase)) .FirstOrDefault(); if (minion != null) { _lastEEndTime = Game.Time + E.ArrivalTime(minion) + 0.1f; _lastECast = Environment.TickCount; Casting.TargetSkill(minion, E); } } if (q || w) { var minions = MinionManager.GetMinions(Player.ServerPosition, Q.Range + Q.Width) .Where(e => GetPoisonBuffEndTime(e) < Q.Delay * 1.1) .OrderByDescending( m => m.CharData.BaseSkinName.Contains("MinionSiege", StringComparison.OrdinalIgnoreCase)) .ToList(); if (minions.Any()) { if (q) { var prediction = Q.GetCircularFarmLocation(minions, Q.Width + 30); if (prediction.MinionsHit > 1 && _lastPoisonClearDelay < Game.Time) { _lastPoisonClearDelay = Game.Time + Q.Delay; Q.Cast(prediction.Position); } } if (w) { var prediction = W.GetCircularFarmLocation(minions, W.Width + 50); if (prediction.MinionsHit > 2 && _lastPoisonClearDelay < Game.Time) { _lastPoisonClearDelay = Game.Time + W.Delay; W.Cast(prediction.Position); } } } else { var creep = MinionManager.GetMinions( Player.ServerPosition, Q.Range + Q.Width, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth).FirstOrDefault(e => GetPoisonBuffEndTime(e) < Q.Delay * 1.1); if (creep != null) { if (q) { Q.Cast(creep); } if (w) { W.Cast(creep); } } } } }
private List <CardColor> GetBestCard(Obj_AI_Hero target, string mode) { var cards = new List <CardColor>(); if (target == null || !target.IsValid) { return(cards); } try { if (IsWKillable(target, 2) && !target.IsDead) { cards.Add(CardColor.Gold); } if (IsWKillable(target) && !target.IsDead) { cards.Add(CardColor.Blue); } if (IsWKillable(target, 1) && !target.IsDead) { cards.Add(CardColor.Red); } if (cards.Any()) { return(cards); } var burst = Menu.Item(Menu.Name + ".miscellaneous.mode").GetValue <StringList>().SelectedIndex == 0; var red = 0; var blue = 0; var gold = 0; if (!burst && (mode == "combo" || mode == "harass" && Menu.Item(Menu.Name + ".harass.w-auto").GetValue <bool>())) { if (Q.Level == 0) { return(new List <CardColor> { CardColor.Blue }); } gold++; if (target.Distance(Player) > W.Range * 0.8f) { gold++; } if (!ManaManager.Check(mode + "-blue")) { blue = 4; } var minRed = Menu.Item(Menu.Name + ".combo.red-min").GetValue <Slider>().Value; var redHits = GetWHits(target, GameObjects.EnemyHeroes.Cast <Obj_AI_Base>().ToList(), CardColor.Red); red += redHits; if (red > blue && red > gold && redHits >= minRed) { cards.Add(CardColor.Red); if (red == blue) { cards.Add(CardColor.Blue); } if (red == gold) { cards.Add(CardColor.Gold); } } else if (gold > blue && gold > red) { cards.Add(CardColor.Gold); if (gold == blue) { cards.Add(CardColor.Blue); } if (gold == red && redHits >= minRed) { cards.Add(CardColor.Red); } } else if (blue > red && blue > gold) { cards.Add(CardColor.Blue); if (blue == red && redHits >= minRed) { cards.Add(CardColor.Red); } if (blue == gold) { cards.Add(CardColor.Gold); } } } if (mode == "combo" && !cards.Any()) { if (Q.Level == 0) { return(new List <CardColor> { CardColor.Blue }); } var distance = target.Distance(Player); var damage = ItemManager.CalculateComboDamage(target) - target.HPRegenRate * 2f - 10; if (HasEBuff()) { damage += E.GetDamage(target); } if (Q.IsReady() && (Utils.GetStunTime(target) > 0.5f || distance < Q.Range / 4f)) { damage += Q.GetDamage(target); } if (W.GetDamage(target, 2) + damage > target.Health) { cards.Add(CardColor.Gold); } if (distance < Orbwalking.GetRealAutoAttackRange(target) * 0.85f) { if (W.GetDamage(target) + damage > target.Health) { cards.Add(CardColor.Blue); } if (W.GetDamage(target, 1) + damage > target.Health) { cards.Add(CardColor.Red); } } var blueMana1 = (ObjectManager.Player.Mana <(W.Instance.ManaCost + Q.Instance.ManaCost) && ObjectManager.Player.Mana> (Q.Instance.ManaCost - 10)); var blueMana2 = (ObjectManager.Player.Mana <(W.Instance.ManaCost + Q.Instance.ManaCost) && ObjectManager.Player.Mana> (Q.Instance.ManaCost - 20)); var blueMana3 = (ObjectManager.Player.Mana < (W.Instance.ManaCost + Q.Instance.ManaCost)); if (!cards.Any()) { if (ObjectManager.Player.HealthPercent <= Menu.Item(Menu.Name + ".combo.gold-percent").GetValue <Slider>().Value) { cards.Add(CardColor.Gold); } else if ((!ManaManager.Check("combo-blue") || (W.Level == 1 && blueMana1) || W.Level == 2 && blueMana2) || W.Level > 2 && blueMana3) { cards.Add(CardColor.Blue); } else { var redHits = GetWHits( target, GameObjects.EnemyHeroes.Cast <Obj_AI_Base>().ToList(), CardColor.Red); if (redHits >= Menu.Item(Menu.Name + ".combo.red-min").GetValue <Slider>().Value) { cards.Add(CardColor.Red); } } } if (!cards.Any()) { cards.Add(CardColor.Gold); } } else if (mode == "harass" && !cards.Any()) { if (Menu.Item(Menu.Name + ".harass.w-auto").GetValue <bool>() && burst) { cards.Add(target.Distance(Player) > W.Range * 0.8f ? CardColor.Gold : CardColor.Blue); } else { var card = !ManaManager.Check("harass-blue") ? CardColor.Blue : GetSelectedCardColor( Menu.Item(Menu.Name + ".harass.w-card").GetValue <StringList>().SelectedIndex); if (card != CardColor.None) { cards.Add(card); } } } else if (mode == "flee") { cards.Add( GetWHits(target, GameObjects.EnemyHeroes.Cast <Obj_AI_Base>().ToList(), CardColor.Red) >= 2 ? CardColor.Red : CardColor.Gold); } if (!cards.Any()) { cards.Add(CardColor.Gold); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(cards); }
protected override void LaneClear() { if (!ManaManager.Check("lane-clear")) { return; } var useQ = Menu.Item(Menu.Name + ".lane-clear.q").GetValue <bool>() && Q.IsReady(); var useE = Menu.Item(Menu.Name + ".lane-clear.e").GetValue <bool>() && E.IsReady(); if (!useQ && !useE) { return; } var minQ1 = Menu.Item(Menu.Name + ".lane-clear.q-min-1").GetValue <Slider>().Value; var minQ2 = Menu.Item(Menu.Name + ".lane-clear.q-min-2").GetValue <Slider>().Value; var minQ3 = Menu.Item(Menu.Name + ".lane-clear.q-min-3").GetValue <Slider>().Value; var minE = ItemData.Runaans_Hurricane_Ranged_Only.GetItem().IsOwned(Player) ? 3 : 2; var minQ = 0; var minions = MinionManager.GetMinions( Q.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth); if (minions.Count == 0) { return; } if (minions.Count >= 10) { minQ = minQ3; } else if (minions.Count <= 7) { minQ = minQ2; } else if (minions.Count <= 4) { minQ = minQ1; } if (useQ && minions.Count >= minQ && !Player.IsWindingUp && !Player.IsDashing()) { foreach (var minion in minions.Where(x => x.Health <= Q.GetDamage(x))) { var killcount = 0; foreach (var colminion in QGetCollisions(Player, Player.ServerPosition.Extend(minion.ServerPosition, Q.Range))) { if (colminion.Health <= Q.GetDamage(colminion)) { killcount++; } else { break; } } if (killcount >= minQ) { Q.Cast(minion.ServerPosition); break; } } } if (useE) { var killable = minions.Where(m => E.IsInRange(m) && Rend.IsKillable(m, false)).ToList(); if (killable.Count >= minE) { E.Cast(); } } }
protected override void Harass() { if (Menu.Item(Menu.Name + ".harass.q").GetValue <bool>() && Q.IsReady() && ManaManager.Check("harass-q")) { Casting.SkillShot(Q, Q.GetHitChance("harass")); } if (Menu.Item(Menu.Name + ".harass.e").GetValue <bool>() && E.IsReady() && ManaManager.Check("harass-e")) { foreach (var enemy in GameObjects.EnemyHeroes.Where(e => E.IsInRange(e))) { if (Rend.IsKillable(enemy, true)) { E.Cast(); } else { var buff = Rend.GetBuff(enemy); if (buff != null && buff.Count >= Menu.Item(Menu.Name + ".harass.e-min").GetValue <Slider>().Value) { if (enemy.Distance(Player) > E.Range * 0.8 || buff.EndTime - Game.Time < 0.3) { E.Cast(); } } } } } }
protected override void Combo() { var useQ = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady() && ManaManager.Check("combo-q"); var useE = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady(); if (useQ) { Casting.SkillShot(Q, Q.GetHitChance("combo")); } if (useE) { var target = TargetSelector.GetTarget(E); if (target != null && Rend.HasBuff(target)) { if (target.Distance(Player) > Orbwalking.GetRealAutoAttackRange(target)) { if ( GameObjects.EnemyMinions.Any( m => m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(m)) && Rend.IsKillable(m, true))) { E.Cast(); } else { var minion = GetDashObjects( GameObjects.EnemyMinions.Where( m => m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(m))) .Select(e => e as Obj_AI_Base) .ToList()) .Find( m => m.Health > Player.GetAutoAttackDamage(m) && m.Health < Player.GetAutoAttackDamage(m) + Rend.GetDamage(m, 1)); if (minion != null) { Orbwalker.ForceTarget(minion); } } } else if (E.IsInRange(target)) { if (Rend.IsKillable(target, false)) { E.Cast(); } else { var buff = Rend.GetBuff(target); if (buff != null && buff.Count >= Menu.Item(Menu.Name + ".combo.e-min").GetValue <Slider>().Value) { if (target.Distance(Player) > E.Range * 0.8 && !target.IsFacing(Player)) { E.Cast(); } } } } } } if (Menu.Item(Menu.Name + ".combo.minions").GetValue <bool>() && !GameObjects.EnemyHeroes.Any( e => e.IsValidTarget() && e.Distance(Player) < Orbwalking.GetRealAutoAttackRange(e) * 1.1f) && !Player.IsWindingUp && !Player.IsDashing()) { var obj = GetDashObjects().FirstOrDefault(); if (obj != null) { Orbwalker.ForceTarget(obj); } } else { Orbwalker.ForceTarget(null); } }
protected override void Combo() { var useQ = Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady() && ManaManager.Check("combo-q"); var useE = Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady(); if (useQ) { Casting.SkillShot(Q, Q.GetHitChance("combo")); } if (useE) { var target = TargetSelector.GetTarget(E); if (target != null && Rend.HasBuff(target)) { if (target.Distance(Player) > Orbwalking.GetRealAutoAttackRange(target)) { if ( GameObjects.EnemyMinions.Any( m => m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(m)) && Rend.IsKillable(m, true))) { E.Cast(); } else { var minion = GetDashObjects( GameObjects.EnemyMinions.Where( m => m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(m))) .Cast <Obj_AI_Base>() .ToList()) .Find( m => m.Health > Player.GetAutoAttackDamage(m) && m.Health < Player.GetAutoAttackDamage(m) + Rend.GetDamage(m, 1)); if (minion != null) { Orbwalker.ForceTarget(minion); } } } else if (E.IsInRange(target)) { if (Rend.IsKillable(target, false)) { E.Cast(); } else { var buff = Rend.GetBuff(target); if (buff != null && buff.Count >= Menu.Item(Menu.Name + ".combo.e-min").GetValue <Slider>().Value) { if (target.Distance(Player) > E.Range * 0.8 || buff.EndTime - Game.Time < 0.3) { E.Cast(); } } } } } } }
private void OnCorePostUpdate(EventArgs args) { try { if (Menu.Item(Menu.Name + ".ultimate.follow").GetValue <bool>()) { RFollowLogic(); } if (UltimateManager.Assisted() && R.IsReady()) { if (Menu.Item(Menu.Name + ".ultimate.assisted.move-cursor").GetValue <bool>()) { Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius); } var target = TargetSelector.GetTarget(R); if (target != null && !RLogic( target, Menu.Item(Menu.Name + ".ultimate.assisted.min").GetValue <Slider>().Value, Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(), Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady())) { if (Menu.Item(Menu.Name + ".ultimate.assisted.duel").GetValue <bool>()) { RLogicDuel( Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(), Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady()); } } } if (UltimateManager.Auto() && R.IsReady()) { var target = TargetSelector.GetTarget(R); if (target != null && !RLogic( target, Menu.Item(Menu.Name + ".ultimate.auto.min").GetValue <Slider>().Value, Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(), Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady(), false, "auto")) { if (Menu.Item(Menu.Name + ".ultimate.auto.duel").GetValue <bool>()) { RLogicDuel( Menu.Item(Menu.Name + ".combo.q").GetValue <bool>() && Q.IsReady(), Menu.Item(Menu.Name + ".combo.e").GetValue <bool>() && E.IsReady()); } } } if (HeroListManager.Enabled("w-stunned") && W.IsReady()) { var target = GameObjects.EnemyHeroes.FirstOrDefault( t => t.IsValidTarget(W.Range) && HeroListManager.Check("w-stunned", t) && Utils.IsStunned(t)); if (target != null) { Casting.SkillShot(target, W, W.GetHitChance("combo")); } } if (HeroListManager.Enabled("w-slowed") && W.IsReady()) { var target = GameObjects.EnemyHeroes.FirstOrDefault( t => t.IsValidTarget(W.Range) && HeroListManager.Check("w-slowed", t) && t.Buffs.Any(b => b.Type == BuffType.Slow && b.EndTime - Game.Time > 0.5f)); if (target != null) { Casting.SkillShot(target, W, W.GetHitChance("combo")); } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { if (Menu.Item(Menu.Name + ".lasthit.q-unkillable").GetValue <bool>() && Q.IsReady() && ManaManager.Check("lasthit")) { var canAttack = Game.Time >= _lastAutoAttack + Player.AttackDelay; var minions = MinionManager.GetMinions(Q.Range) .Where( m => (!canAttack || !Orbwalking.InAutoAttackRange(m)) && m.HealthPercent <= 50 && (_lastAfterFarmTarget == null || _lastAfterFarmTarget.NetworkId != m.NetworkId) && (_lastBeforeFarmTarget == null || _lastBeforeFarmTarget.NetworkId != m.NetworkId)) .ToList(); if (minions.Any()) { foreach (var minion in minions) { var health = HealthPrediction.GetHealthPrediction( minion, (int)(Q.ArrivalTime(minion) * 1000)); if (health > 0 && Math.Abs(health - minion.Health) > 10 && Q.GetDamage(minion) * 0.85f > health) { if (Q.CastOnUnit(minion)) { _lastQKillableTarget = minion; } break; } } } } } Orbwalking.PreventStuttering(HasQBuff()); } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
protected override void OnPreUpdate() { if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit) { var eBig = Menu.Item(Menu.Name + ".lasthit.e-big").GetValue <bool>(); var eJungle = Menu.Item(Menu.Name + ".lasthit.e-jungle").GetValue <bool>(); var eSiege = Menu.Item(Menu.Name + ".lasthit.e-siege").GetValue <bool>(); var eTurret = Menu.Item(Menu.Name + ".lasthit.e-turret").GetValue <bool>(); var eReset = Menu.Item(Menu.Name + ".miscellaneous.e-reset").GetValue <bool>(); IEnumerable <Obj_AI_Minion> minions = new HashSet <Obj_AI_Minion>(); if (eSiege || eTurret || eReset) { minions = GameObjects.EnemyMinions.Where(e => e.IsValidTarget(E.Range) && Rend.IsKillable(e, true)); } if (E.IsReady()) { if (ManaManager.Check("lasthit")) { if (eSiege) { if ( minions.Any( m => (m.CharData.BaseSkinName.Contains("MinionSiege") || m.CharData.BaseSkinName.Contains("Super")))) { E.Cast(); return; } } if (eTurret) { if (minions.Any(m => Utils.UnderAllyTurret(m.Position))) { E.Cast(); return; } } } if (eBig || eJungle) { var enemySmites = GameObjects.EnemyHeroes.Where( e => !e.IsDead && e.Distance(Player) < SummonerManager.Smite.Range * 1.5f && SummonerManager.IsSmiteReady(e)); var allySmites = (from ally in GameObjects.AllyHeroes.Where( e => !e.IsDead && e.Distance(Player) < SummonerManager.Smite.Range) let spell = SummonerManager.GetSmiteSpell(ally) where spell != null && (spell.IsReady() || spell.Cooldown - spell.CooldownExpires - Game.Time <= 3) select ally).ToList(); if (eJungle && Player.Level > 3 || eBig && (enemySmites.Any() || !allySmites.Any() || Player.CountEnemiesInRange(1000) > 1)) { var creeps = GameObjects.Jungle.Where(e => e.IsValidTarget(E.Range) && Rend.IsKillable(e, false)) .ToList(); if (eJungle && creeps.Any() || eBig && creeps.Any( m => (m.CharData.BaseSkinName.StartsWith("SRU_Dragon") || m.CharData.BaseSkinName.StartsWith("SRU_Baron")))) { E.Cast(); return; } } } } if (eReset && E.IsReady() && ManaManager.Check("misc") && GameObjects.EnemyHeroes.Any(e => Rend.HasBuff(e) && e.IsValidTarget(E.Range))) { if (minions.Any()) { E.Cast(); return; } } } if (Menu.Item(Menu.Name + ".ultimate.save").GetValue <bool>() && SoulBound.Unit != null && R.IsReady() && !SoulBound.Unit.InFountain()) { SoulBound.Clean(); var enemies = SoulBound.Unit.CountEnemiesInRange(500); if ((SoulBound.Unit.HealthPercent <= 10 && SoulBound.Unit.CountEnemiesInRange(500) > 0) || (SoulBound.Unit.HealthPercent <= 5 && SoulBound.TotalDamage > SoulBound.Unit.Health && enemies == 0) || (SoulBound.Unit.HealthPercent <= 50 && SoulBound.TotalDamage > SoulBound.Unit.Health && enemies > 0)) { R.Cast(); } } if (Menu.Item(Menu.Name + ".miscellaneous.w-baron").GetValue <KeyBind>().Active&& W.IsReady() && Player.Distance(SummonersRift.River.Baron) <= W.Range) { W.Cast(SummonersRift.River.Baron); } if (Menu.Item(Menu.Name + ".miscellaneous.w-dragon").GetValue <KeyBind>().Active&& W.IsReady() && Player.Distance(SummonersRift.River.Dragon) <= W.Range) { W.Cast(SummonersRift.River.Dragon); } if (SoulBound.Unit == null) { SoulBound.Unit = GameObjects.AllyHeroes.FirstOrDefault( a => a.Buffs.Any( b => b.Caster.IsMe && b.Name.Equals("kalistacoopstrikeally", StringComparison.OrdinalIgnoreCase))); } if (SoulBound.Unit != null && SoulBound.Unit.Distance(Player) < R.Range && R.IsReady()) { var blitz = Menu.Item(Menu.Name + ".ultimate.blitzcrank.r").GetValue <bool>(); var tahm = Menu.Item(Menu.Name + ".ultimate.tahm-kench.r").GetValue <bool>(); foreach (var enemy in GameObjects.EnemyHeroes.Where(e => (blitz || tahm) && !e.IsDead && e.Distance(Player) < 3000)) { if (blitz) { var blitzBuff = enemy.Buffs.FirstOrDefault( b => b.IsActive && b.Caster.NetworkId.Equals(SoulBound.Unit.NetworkId) && b.Name.Equals("rocketgrab2", StringComparison.OrdinalIgnoreCase)); if (blitzBuff != null) { if (!HeroListManager.Check("blitzcrank", enemy)) { if (!SoulBound.Unit.UnderTurret(false) && SoulBound.Unit.Distance(enemy) > 750f && SoulBound.Unit.Distance(Player) > R.Range / 3f) { R.Cast(); } } return; } } if (tahm) { var tahmBuff = enemy.Buffs.FirstOrDefault( b => b.IsActive && b.Caster.NetworkId.Equals(SoulBound.Unit.NetworkId) && b.Name.Equals("tahmkenchwdevoured", StringComparison.OrdinalIgnoreCase)); if (tahmBuff != null) { if (!HeroListManager.Check("tahm-kench", enemy)) { if (!SoulBound.Unit.UnderTurret(false) && (SoulBound.Unit.Distance(enemy) > Player.AttackRange || GameObjects.AllyHeroes.Where( a => a.NetworkId != SoulBound.Unit.NetworkId && a.NetworkId != Player.NetworkId) .Any(t => t.Distance(Player) > 600) || GameObjects.AllyTurrets.Any(t => t.Distance(Player) < 600))) { R.Cast(); } } return; } } } } }
private void OnCorePreUpdate(EventArgs args) { try { if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo && Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Flee) { var eBig = Menu.Item(Menu.Name + ".lasthit.e-big").GetValue <bool>(); var eTurret = Menu.Item(Menu.Name + ".lasthit.e-turret").GetValue <bool>(); var eReset = Menu.Item(Menu.Name + ".miscellaneous.e-reset").GetValue <bool>(); IEnumerable <Obj_AI_Minion> minions = new HashSet <Obj_AI_Minion>(); if (eBig || eTurret || eReset) { minions = GameObjects.EnemyMinions.Where(e => e.IsValidTarget(E.Range) && Rend.IsKillable(e, true)); } if (E.IsReady()) { if (eBig) { var creeps = GameObjects.Jungle.Where(e => e.IsValidTarget(E.Range) && Rend.IsKillable(e, false)) .Concat(minions) .ToList(); if ( creeps.Any( m => (m.CharData.BaseSkinName.Contains("MinionSiege") || m.CharData.BaseSkinName.Contains("Super") || m.CharData.BaseSkinName.StartsWith("SRU_Dragon") || m.CharData.BaseSkinName.StartsWith("SRU_Baron")))) { E.Cast(); return; } } if (eTurret && ManaManager.Check("lasthit")) { var minion = minions.FirstOrDefault( m => Utils.UnderAllyTurret(m.Position) && Rend.IsKillable(m, false)); if (minion != null) { E.Cast(); return; } } } if (eReset && E.IsReady() && ManaManager.Check("misc") && GameObjects.EnemyHeroes.Any(e => Rend.HasBuff(e) && e.IsValidTarget(E.Range))) { if (minions.Any()) { E.Cast(); return; } } } if (Menu.Item(Menu.Name + ".ultimate.save").GetValue <bool>() && SoulBound.Unit != null && R.IsReady() && !SoulBound.Unit.InFountain()) { SoulBound.Clean(); var enemies = SoulBound.Unit.CountEnemiesInRange(500); if ((SoulBound.Unit.HealthPercent <= 10 && SoulBound.Unit.CountEnemiesInRange(500) > 0) || (SoulBound.Unit.HealthPercent <= 5 && SoulBound.TotalDamage > SoulBound.Unit.Health && enemies == 0) || (SoulBound.Unit.HealthPercent <= 50 && SoulBound.TotalDamage > SoulBound.Unit.Health && enemies > 0)) { R.Cast(); } } if (Menu.Item(Menu.Name + ".miscellaneous.w-baron").GetValue <KeyBind>().Active&& W.IsReady() && Player.Distance(SummonersRift.River.Baron) <= W.Range) { W.Cast(SummonersRift.River.Baron); } if (Menu.Item(Menu.Name + ".miscellaneous.w-dragon").GetValue <KeyBind>().Active&& W.IsReady() && Player.Distance(SummonersRift.River.Dragon) <= W.Range) { W.Cast(SummonersRift.River.Dragon); } if (SoulBound.Unit == null) { SoulBound.Unit = GameObjects.AllyHeroes.FirstOrDefault( a => a.Buffs.Any( b => b.Caster.IsMe && b.Name.Equals("kalistacoopstrikeally", StringComparison.OrdinalIgnoreCase))); } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }