public override void Execute() { if (!Config.Modes.LC.UseQ) { return; } LastHit(Q1); if (EntityManager.MinionsAndMonsters.CombinedAttackable.Any(m => m.Distance(Player.Instance) < Q1.Range && m.Health <= 2 * Player.Instance.GetSpellDamage(m, SpellSlot.Q))) { return; } //Logger.Debug("Hi, I'm trying to lane clear"); Obj_AI_Minion laneClear = EntityManager.MinionsAndMonsters.EnemyMinions.FirstOrDefault( m => m.Health > 2.5 * Player.Instance.GetSpellDamage(m, SpellSlot.Q)); if (laneClear == null || !laneClear.IsValid || laneClear.IsDead) { return; } { if (Q1.GetPrediction(laneClear).HitChancePercent > 25) { Q1.Cast(laneClear); } } }
public override void KillSteal() { foreach (var target in EntityManager.Heroes.Enemies.Where(e => e != null && e.IsValidTarget())) { foreach ( var spell in SpellList.Where( s => s.WillKill(target) && s != R && s.IsReady() && target.IsKillable(s.Range) && KillStealMenu.CheckBoxValue(s.Slot))) { if (spell.Slot == SpellSlot.Q) { if (Q.GetPrediction(target).HitChance >= HitChance.Medium || Q1.GetPrediction(target).HitChance >= HitChance.Medium) { Q.Cast(target); } } else { (spell as Spell.Targeted)?.Cast(target); } } } }
//c public static void Combo() { var Target = TargetSelector.GetTarget(Q1.Range, DamageType.Physical); if (Target == null) { return; } var useQ = ModesMenu1["ComboQ"].Cast <CheckBox>().CurrentValue; var useQ2 = ModesMenu1["ComboQ2"].Cast <CheckBox>().CurrentValue; var Qp = Q1.GetPrediction(Target); if (!Target.IsValid()) { return; } if (Q1.IsReady() && useQ && !Target.IsInvulnerable && Q1.Name.Equals("BlindMonkQOne", StringComparison.InvariantCultureIgnoreCase)) { if (Qp.HitChance >= HitChance.High) { Q1.Cast(Qp.CastPosition); } } if (Q2.IsReady() && useQ2 && !Target.IsInvulnerable && Q2.Name.Equals("blindmonkqtwo", StringComparison.InvariantCultureIgnoreCase)) { Q2.Cast(); } }
private void LogicFarm() { if (LaneClear && Player.Mana > QMANA + RMANA) { var mobs = GameObjects.GetJungles(Q.Range); if (mobs.Count > 0) { var mob = mobs.First(); if (Q.IsReady()) { Q.Cast(mob); return; } if (W.IsReady()) { W.Cast(mob); return; } } if (FarmSpells) { if (Q.IsReady() && farmQ.Enabled) { var minions = GameObjects.GetMinions(Q1.Range); foreach (var minion in minions) { var poutput = Q1.GetPrediction(minion); var col = poutput.CollisionObjects; if (col.Count > 2) { var minionQ = col.First(); if (minionQ.IsValidTarget(Q.Range)) { Q.Cast(minionQ); return; } } } } if (W.IsReady() && farmW.Enabled) { var minions = GameObjects.GetMinions(W.Range).ToList(); var wFarm = W.GetCircularFarmLocation(minions, 150); if (wFarm.MinionsHit > 3) { W.Cast(wFarm.Position); } } } } }
public override void Execute() { if (Settings.mana >= Player.Instance.ManaPercent) { return; } if (Settings.UseQ && Q.IsReady()) { var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(t => t.IsEnemy && !t.IsDead && t.IsValid && !t.IsInvulnerable && t.IsInRange(Player.Instance.Position, Q1.Range)); foreach (var m in minions) { if (Q1.GetPrediction(m).CollisionObjects.Where(t => t.IsEnemy && !t.IsDead && t.IsValid && !t.IsInvulnerable).Count() >= 3) { Q.Cast(m); break; } } }/* * if (Settings.UseW && W.IsReady()) * { * var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(t => t.IsEnemy && !t.IsDead && t.IsValid && !t.IsInvulnerable && t.IsInRange(Player.Instance.Position, W.Range)); * if (minions.Count() > 3) * { * W.Cast(); * } * }*/ }
public override void Execute() { if (Settings.Mana >= Player.Instance.ManaPercent) { return; } if (Settings.UseQ && Q.IsReady()) { var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (target != null) { Q.Cast(target); } } if (Settings.UseQ && Q.IsReady()) { var target = TargetSelector.GetTarget(Q1.Range, DamageType.Physical); if (target != null && Q1.GetPrediction(target).HitChance >= HitChance.Medium) { SpellManager.castQ1(target); } } if (Settings.UseE && Settings.UseQ && Q.IsReady() && E.IsReady()) { var target = TargetSelector.GetTarget(Q.Range + E.Range, DamageType.Physical); if (target != null) { SpellManager.dashToQ1(target); } } }
private static void AutoSpells(EventArgs args) { //E Edetonation(); //R Actives(); if (Config.Item("semi-ult").GetValue <KeyBind>().Active) { var target = TargetSelector.GetTarget(R1.Range, TargetSelector.DamageType.Magical); if (target == null || !target.IsValid) { return; } if (R1.IsReady()) { SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R")); } } if (Config.Item("semi-w").GetValue <KeyBind>().Active) { var ally = HeroManager.Allies.Where(a => a.IsValid && !a.IsMinion && !a.IsMe).OrderBy(a => a.Distance(Game.CursorPosRaw)).FirstOrDefault(); if (W1.IsReady()) { W1.Cast(ally); } } if (Q1.IsReady() && Config.Item("autospells.Q.cc").GetValue <bool>()) { var target = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Magical); if (target == null || !target.IsValid) { return; } var cc = target.HasBuffOfType(BuffType.Snare) || target.HasBuffOfType(BuffType.Suppression) || target.HasBuffOfType(BuffType.Taunt) || target.HasBuffOfType(BuffType.Stun) || target.HasBuffOfType(BuffType.Charm) || target.HasBuffOfType(BuffType.Fear); } if (Q1.IsReady() && Config.Item("autospells.Q.collision").GetValue <bool>()) { var enemies = HeroManager.Enemies.Where(e => e.IsValidTarget(Q1.Range)); foreach (var enemy in enemies) { if (enemy == null) { return; } var collisionobjects = Q1.GetPrediction(enemy).CollisionObjects.Where(c => c.IsEnemy && !c.IsMinion); if (collisionobjects.Count() == 1) { Q1.Cast(enemy); } } } }
private void LogicQ() { var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); var t1 = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical); if (t.IsValidTarget(Q.Range) && Player.Distance(t.ServerPosition) > 500) { if (Q.GetDamage(t) + Player.GetAutoAttackDamage(t) > t.Health) { Q.Cast(t); } else if (Q.GetDamage(t) + Player.GetAutoAttackDamage(t) * 3 > t.Health) { Q.Cast(t); } else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA) { Q.Cast(t); } else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA) { Q.Cast(t); } } else if (t1.IsValidTarget(Q1.Range) && Config.Item("harasQ").GetValue <bool>() && Player.Distance(t1.ServerPosition) > Q.Range + 50) { var poutput = Q1.GetPrediction(t1); var col = poutput.CollisionObjects; if (col.Count() == 0) { return; } var minionQ = col.Last(); if (minionQ.IsValidTarget(Q.Range)) { if (Config.Item("killQ").GetValue <bool>() && Q.GetDamage(minionQ) > minionQ.Health - minionQ.GetAutoAttackDamage(minionQ) * 2) { return; } if (minionQ.Distance(Player.Position) > 400 && minionQ.Distance(poutput.CastPosition) < 380 && minionQ.Distance(t1.Position) < 380 && minionQ.Distance(poutput.CastPosition) > 150) { if (Q.GetDamage(t1) + Player.GetAutoAttackDamage(t1) > t1.Health) { Q.Cast(col.Last()); } else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA) { Q.Cast(col.Last()); } else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA + QMANA) { Q.Cast(col.Last()); } } } } }
public override void Harass() { foreach (var spell in SpellList.Where(s => s.IsReady() && HarassMenu.CheckBoxValue(s.Slot) && s != R)) { var target = Pix != null ? TargetSelector.GetTarget(E.Range + Q.Range, DamageType.Magical) : TargetSelector.GetTarget(Q.Range, DamageType.Magical); if (target == null) { return; } var qPredPlayer = Q.GetPrediction(target); var qPredPix = Q1.GetPrediction(target); if (spell.Slot == SpellSlot.Q) { foreach ( var enemy in from enemy in EntityManager.Heroes.Enemies.Where(e => e.IsKillable(E.Range + Q.Range)) let qPredPlayer1 = Q.GetPrediction(enemy) let qPredPix1 = Q1.GetPrediction(enemy) where qPredPlayer1.HitChance >= HitChance.Medium && qPredPix1.HitChance >= HitChance.Medium select enemy) { Q.Cast(enemy); } if (qPredPlayer.HitChance >= HitChance.Medium || qPredPix.HitChance >= HitChance.Medium) { Q.Cast(target); } } if (spell.Slot == SpellSlot.W) { { if (target.IsKillable(W.Range)) { W.Cast(target); } } } if (spell.Slot != SpellSlot.E) { continue; } { if (target.IsKillable(E.Range)) { E.Cast(target); } } } }
private static void CastQ(AIBaseClient t) { var poutput = Q1.GetPrediction(t); var col = poutput.CollisionObjects.Count(ColObj => !ColObj.IsAlly && ColObj.IsMinion() && !ColObj.IsDead); if (col < 4 && poutput.Hitchance >= HitChance.VeryHigh) { Q.Cast(poutput.CastPosition); } }
private void CastQ(Obj_AI_Base t) { var poutput = Q1.GetPrediction(t); var col = poutput.CollisionObjects.Count(ColObj => ColObj.IsEnemy && ColObj.IsMinion && !ColObj.IsDead); if (col < 4) { Program.CastSpell(Q, t); } }
public void farm() { if (Program.LaneClear && Player.Mana > RMANA + QMANA) { var mobs = Cache.GetMinions(Player.ServerPosition, Q.Range, MinionTeam.Neutral); if (mobs.Count > 0) { var mob = mobs[0]; if (Q.IsReady()) { Q.Cast(mob); return; } if (W.IsReady()) { W.Cast(mob); return; } } if (FarmSpells) { if (Q.IsReady() && Config.Item("farmQ", true).GetValue <bool>()) { var minions = Cache.GetMinions(Player.ServerPosition, Q1.Range); foreach (var minion in minions) { var poutput = Q1.GetPrediction(minion); var col = poutput.CollisionObjects; if (col.Count() > 2) { var minionQ = col.First(); if (minionQ.IsValidTarget(Q.Range)) { Q.Cast(minion); return; } } } } if (W.IsReady() && Config.Item("farmW", true).GetValue <bool>()) { var minions = Cache.GetMinions(Player.ServerPosition, Q1.Range); var Wfarm = W.GetCircularFarmLocation(minions, 150); if (Wfarm.MinionsHit > 3) { W.Cast(Wfarm.Position); } } } } }
public void farm() { if (LaneClear && Player.Mana > RMANA + QMANA) { var mobs = Cache.GetMinions(Player.PreviousPosition, Q.Range, SebbyLib.MinionTeam.Neutral); if (mobs.Count > 0) { var mob = mobs[0]; if (Q.IsReady()) { Q.Cast(mob); return; } if (W.IsReady()) { W.Cast(mob); return; } } if (LaneClear) { if (Q.IsReady() && Config[Player.CharacterName]["farm"].GetValue <MenuBool>("farmQ").Enabled) { var minions = Cache.GetMinions(Player.PreviousPosition, Q1.Range); foreach (var minion in minions) { var poutput = Q1.GetPrediction(minion); var col = poutput.CollisionObjects; if (col.Count() > 2) { var minionQ = col.First(); if (minionQ.IsValidTarget(Q.Range)) { Q.Cast(minion); return; } } } } if (W.IsReady() && Config[Player.CharacterName]["farm"].GetValue <MenuBool>("farmW").Enabled) { var minions = Cache.GetMinions(Player.PreviousPosition, Q1.Range); var Wfarm = W.GetCircularFarmLocation(minions, 150); if (Wfarm.MinionsHit > 3) { W.Cast(Wfarm.Position); } } } } }
public static void farm() { if (Program.LaneClear && Player.Mana > RMANA + QMANA) { var mobs = Cache.GetMinions(Player.ServerPosition, Q.Range, MinionTeam.Neutral); if (mobs.Count > 0) { var mob = mobs[0]; if (Q.IsReady()) { Q.Cast(mob); return; } if (W.IsReady()) { W.Cast(mob); return; } } if (Player.ManaPercent > getSliderItem(farmMenu, "Mana")) { if (Q.IsReady() && getCheckBoxItem(farmMenu, "farmQ")) { var minions = Cache.GetMinions(Player.ServerPosition, Q1.Range); foreach (var minion in minions) { var poutput = Q1.GetPrediction(minion); var col = poutput.CollisionObjects; if (col.Count() > 2) { var minionQ = col.First(); if (minionQ.LSIsValidTarget(Q.Range)) { Q.Cast(minion); return; } } } } if (W.IsReady() && getCheckBoxItem(farmMenu, "farmW")) { var minions = Cache.GetMinions(Player.ServerPosition, Q1.Range); var Wfarm = W.GetCircularFarmLocation(minions, 150); if (Wfarm.MinionsHit > 3) { W.Cast(Wfarm.Position); } } } } }
public void farm() { if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { var mobs = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Count > 0 && Player.Mana > RMANA + WMANA + EMANA + QMANA) { var mob = mobs[0]; if (Q.IsReady() && Config.Item("farmQ", true).GetValue <bool>()) { Q.Cast(mob); return; } if (W.IsReady() && Config.Item("farmW", true).GetValue <bool>()) { W.Cast(mob); return; } } if (Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value) { var minions = MinionManager.GetMinions(Player.ServerPosition, Q1.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth); if (Q.IsReady() && Config.Item("farmQ", true).GetValue <bool>()) { foreach (var minion in minions) { var poutput = Q1.GetPrediction(minion); var col = poutput.CollisionObjects; if (col.Count() > 2) { var minionQ = col.First(); if (minionQ.IsValidTarget(Q.Range)) { Q.Cast(minion); return; } } } } if (W.IsReady() && Config.Item("farmW", true).GetValue <bool>()) { var Wfarm = W.GetCircularFarmLocation(minions, 150); if (Wfarm.MinionsHit > 3) { W.Cast(Wfarm.Position); } } } } }
private static void OnGapcloser(AIHeroClient sender, Gapcloser.GapcloserArgs args) { if (sender.IsEnemy && !sender.IsDead && !myhero.IsDead && args.EndPosition.DistanceToPlayer() < Q1.Range && Q1.IsReady()) { //Q1.CastIfHitchanceEquals(sender, HitChance.Dash, true); var pred = Q1.GetPrediction(sender); if (pred.Hitchance == HitChance.Dash) { Q1.Cast(pred.CastPosition); } } }
public static void CastExtendedQ() { var target = TargetSelector.SelectedTarget != null && TargetSelector.SelectedTarget.Distance(PlayerInstance) < 2000 ? TargetSelector.SelectedTarget : TargetSelector.GetTarget(Q1.Range, DamageType.Physical); if (!target.IsValidTarget(Q1.Range)) { return; } var predPos = Q1.GetPrediction(target); var minions = EntityManager.MinionsAndMonsters.EnemyMinions.Where(m => m.Distance(PlayerInstance) <= Q.Range); var champs = EntityManager.Heroes.Enemies.Where(m => m.Distance(PlayerInstance) <= Q.Range); var monsters = EntityManager.MinionsAndMonsters.Monsters.Where(m => m.Distance(PlayerInstance) <= Q.Range); { foreach (var minion in from minion in minions let polygon = new Geometry.Polygon.Rectangle( (Vector2)PlayerInstance.ServerPosition, PlayerInstance.ServerPosition.Extend(minion.ServerPosition, Q1.Range), 65f) where polygon.IsInside(predPos.CastPosition) select minion) { Q.Cast(minion); } foreach (var champ in from champ in champs let polygon = new Geometry.Polygon.Rectangle( (Vector2)PlayerInstance.ServerPosition, PlayerInstance.ServerPosition.Extend(champ.ServerPosition, Q1.Range), 65f) where polygon.IsInside(predPos.CastPosition) select champ) { Q.Cast(champ); } foreach (var monster in from monster in monsters let polygon = new Geometry.Polygon.Rectangle( (Vector2)PlayerInstance.ServerPosition, PlayerInstance.ServerPosition.Extend(monster.ServerPosition, Q1.Range), 65f) where polygon.IsInside(predPos.CastPosition) select monster) { Q.Cast(monster); } } }
private static void Edetonation() { var target = TargetSelector.GetTarget(R1.Range, TargetSelector.DamageType.Magical); if (target != null) { if (Lux_E == null) { return; } var rooted = target.HasBuff("LuxLightBindingMis"); var debuff = target.HasBuff("luxilluminatingfraulein"); var qcollision = Q1.GetCollision(player.Position.To2D(), new List <Vector2> { Q1.GetPrediction(target).CastPosition.To2D() }); var minioncol = qcollision.Where(x => (x is AIHeroClient) && x.IsEnemy).Count(); //Lux E detonation (Object Bounding Radius) if (Lux_E != null && rooted && target.Distance(player.Position) <= Orbwalking.GetRealAutoAttackRange(player) && target.Health > E1.GetDamage(target) && debuff) { Printchat("[E] Detonation Blocked. Reason: AA-able"); return; } if (Lux_E != null && rooted && target.Distance(player.Position) <= Orbwalking.GetRealAutoAttackRange(player) + 300 && target.Health > E1.GetDamage(target) && debuff && target.CountEnemiesInRange(600) <= 1) { Printchat("[E] Detonation Blocked. Reason: AA-able"); return; } if (Lux_E != null && Lux_E.Position.CountEnemiesInRange(E1.Width) >= 1) { E1.Cast(); Printchat("[E] Toggle Cast. Reason: Enemy Detected"); } } else if (Lux_E != null && Lux_E.Position.CountEnemiesInRange(E1.Width) >= 1) { E1.Cast(); Printchat("[E] Toggle Cast. Reason: Enemy Detected"); } }
private static void AutoUseQ() { if (Q.IsReady() && AutoQ && Player.ManaPercent > MinMana) { var extarget = TargetSelector.GetTarget(Q1.Range, DamageType.Physical); var Minions = MinionManager.GetMinions(Q.Range); foreach (var Minion in Minions) { var QHit = new Geometry.Polygon.Rectangle(Player.Position, Player.Position.LSExtend(Minion.Position, Q1.Range), Q1.Width); var QPred = Q1.GetPrediction(extarget); if (!QHit.IsOutside(QPred.UnitPosition.LSTo2D()) && QPred.Hitchance == HitChance.High) { Q.Cast(Minion); break; } } } }
/// <summary> /// Quick and Easy Spellcasts params for Lux /// </summary> /// <param name="target"></param> Which unit should we cast spells on /// <param name="range"></param> Range check for targets /// <param name="spellslot"></param> Which spellslot /// <param name="collision"></param> Collision Check for Q usage /// <param name="count"></param> Only use said ability if it can hit X amount of enemies /// <param name="objectcheck"></param> Objectcheck for E usage public static void SpellCast(AIHeroClient target, float range, Spell spell, bool collision, byte count, bool objectcheck, HitChance Hitchance) { var CastPosition = Prediction.GetPrediction(target, 0.25f); if (spell.IsReady() && target.IsValidTarget(range) && CastPosition.Hitchance >= Hitchance && !collision && !objectcheck) { spell.Cast(target); } if (spell.IsReady() && target.IsValidTarget(range) && collision && CastPosition.Hitchance >= Hitchance && Q1.GetPrediction(target).CollisionObjects.Count() <= 1 && !objectcheck) { spell.Cast(target); } if (Lux_E == null && spell.IsReady() && objectcheck && target.IsValidTarget(E1.Range) && CastPosition.Hitchance >= Hitchance && !collision) { spell.Cast(target); } }
private static void Harass() { if (Player.ManaPercent < HMinMana) { return; } if (Q.IsReady() && HEXQ) { var target = TargetSelector.GetTarget(Q1.Range); var Minions = GameObjects.GetMinions(Q.Range); foreach (var Minion in Minions) { var QHit = new Geometry.Rectangle(Player.Position, Player.Position.Extend(Minion.Position, Q1.Range), Q1.Width); var QPred = Q1.GetPrediction(target); if (!QHit.IsOutside(QPred.UnitPosition.ToVector2()) && QPred.Hitchance == HitChance.High) { Q.Cast(Minion); break; } } } }
private static void Harass() { if (Player.ManaPercent < HMinMana) { return; } if (Q.IsReady() && HEXQ) { var target = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical); var Minions = MinionManager.GetMinions(Q.Range); foreach (var Minion in Minions) { var QHit = new LeagueSharp.Common.Geometry.Polygon.Rectangle(Player.Position, Player.Position.Extend(Minion.Position, Q1.Range).To3DWorld(), Q1.Width); var QPred = Q1.GetPrediction(target); if (!QHit.IsOutside(QPred.UnitPosition.To2D()) && QPred.Hitchance == HitChance.High) { Q.Cast(Minion); break; } } } }
static void LaneClear() { if (Player.ManaPercent < LMinMana) { return; } if (Q.IsReady() && LHQ) { var extarget = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical); var Minions = MinionManager.GetMinions(Q.Range); foreach (var Minion in Minions) { var QHit = new Geometry.Polygon.Rectangle(Player.Position, Player.Position.Extend(Minion.Position, Q1.Range), Q1.Width); var QPred = Q1.GetPrediction(extarget); if (!QHit.IsOutside(QPred.UnitPosition.To2D()) && QPred.Hitchance == HitChance.High) { Q.Cast(Minion); break; } } } }
public override void Execute() { if (Settings.mana >= Player.Instance.ManaPercent) { return; } if (Settings.UseQ && Q.IsReady()) { var minions = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Instance.Position, Q.Range).Where(t => !t.IsDead && t.IsValid && !t.IsInvulnerable); foreach (var m in minions) { if (Q1.GetPrediction(m).CollisionObjects.Where(t => t.IsEnemy && !t.IsDead && t.IsValid && !t.IsInvulnerable).Count() >= minions.Count() - 1) { Q.Cast(m); break; } } } if (Settings.UseE && E.IsReady()) { var minions = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Instance.Position, Q.Range).Where(t => !t.IsDead && t.IsValid && !t.IsInvulnerable); if (minions.Count() > 1) { E.Cast(Game.CursorPos); } } /* * if (Settings.UseW && W.IsReady()) * { * var minions = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Instance.Position, W.Range).Where(t => !t.IsDead && t.IsValid && !t.IsInvulnerable); * if (minions.Count() > 0) * { * W.Cast(minions.First()); * } * }*/ }
public static void SpellCastR(AIHeroClient target) { if (target == null) { return; } if (!target.IsValid) { return; } var rslider = Config.Item("combo.r.slider").GetValue <Slider>().Value; #region variables/floats //[R] Combo Sequences double qdmg = Q1.GetDamage(target); double edmg = E1.GetDamage(target); double rdmg = R1.GetDamage(target); double aa = Player.GetAutoAttackDamage(target); Ignite = player.GetSpellSlot("summonerdot"); var insideE = Lux_E != null && target.Distance(Lux_E.Position) < E1.Width; var thp = target.Health; var AArange = Orbwalking.GetRealAutoAttackRange(player); var debuff = target.HasBuff("luxilluminatingfraulein"); if (debuff) { rdmg += PassiveDMG(target); } if (debuff) { aa += PassiveDMG(target); } if (insideE) { rdmg += edmg; } var qcollision = Q1.GetCollision(player.Position.To2D(), new List <Vector2> { Q1.GetPrediction(target).CastPosition.To2D() }); var minioncol = qcollision.Where(x => (x is AIHeroClient) && x.IsEnemy).Count(); var qpred = Q1.GetPrediction(target).Hitchance >= HitChance.High; var epred = E1.GetPrediction(target).Hitchance >= HitChance.High; var rooted = target.HasBuff("LuxLightBindingMis"); if (target.Distance(player.Position) < rslider && !rooted) { return; } #endregion if (insideE && Lux_E != null) { return; } //Checks if Allies can kill the bitch if (AllyCheck(target, 600) >= 2 && target.Health < rdmg / 2) { return; } //Checks if an Ally can kill le bitch if (AllyCheck(target, 600) >= 1 && target.Health < rdmg / 2) { return; } if (rooted && insideE && rdmg + edmg > thp && target.IsValidTarget(R1.Range)) { SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R")); } if (E1.IsReady() && thp < edmg && target.IsValidTarget(E1.Range) && epred) { return; } if (Q1.IsReady() && thp < qdmg && target.IsValidTarget(Q1.Range) && minioncol <= 1 && qpred) { return; } if (insideE && thp < edmg) { return; } if (insideE && thp < edmg + aa && target.IsValidTarget(AArange)) { return; } if (thp < aa && target.IsValidTarget(AArange)) { return; } if (thp < edmg && E1.IsReady() && rooted && target.IsValidTarget(E1.Range)) { return; } if (Q1.IsReady() && !E1.IsReady() && thp < qdmg && target.IsValidTarget(Q1.Range) && minioncol <= 1 && qpred) { return; } if (E1.IsReady() && !Q1.IsReady() && thp < edmg && target.IsValidTarget(E1.Range) && epred) { return; } if (rooted && debuff && thp < aa && target.IsValidTarget(AArange)) { return; } if (Environment.TickCount - E1.LastCastAttemptT < 100 || Environment.TickCount - Q1.LastCastAttemptT < 800 && !rooted) { return; } if (rooted && insideE && thp < rdmg + edmg && target.IsValidTarget(R1.Range)) { SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R")); } if (rooted && E1.IsReady() && target.IsValidTarget(E1.Range) && thp < rdmg + edmg && target.IsValidTarget(R1.Range)) { SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R")); } if (rooted && debuff && thp < rdmg + aa && target.IsValidTarget(AArange)) { SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R")); } if (rooted && debuff && thp < rdmg && target.IsValidTarget(R1.Range)) { SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R")); } if (thp < rdmg) { SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R")); } }
public static void Routine() { var targetR = TargetSelector.GetTarget(R1.Range, TargetSelector.DamageType.Magical); var target = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Magical); if (target == null || !target.IsValid || targetR == null || !targetR.IsValid) { return; } Ignite = player.GetSpellSlot("summonerdot"); //[R] Aoe Cast byte hitcount; hitcount = (byte)Config.Item("advanced.R.aoe.count").GetValue <Slider>().Value; if (Config.Item("advanced.R.aoe").GetValue <bool>() && R1.IsReady() && !E1.IsReady() && target.IsValidTarget(E1.Range + E1.Width)) { R1.CastIfWillHit(target, hitcount); } #region -- Variables/Floats etc. float qdmg = Q1.GetDamage(target); float edmg = E1.GetDamage(target); float rdmg = R1.GetDamage(target); float aa = (float)Player.GetAutoAttackDamage(target); var insideE = Lux_E != null && target.Distance(Lux_E.Position) <= E1.Width; var thp = target.Health; var AArange = Orbwalking.GetRealAutoAttackRange(player); var debuff = target.HasBuff("luxilluminatingfraulein"); if (debuff) { rdmg += PassiveDMG(target); } if (debuff) { aa += PassiveDMG(target); } if (insideE) { rdmg += edmg; } var rooted = target.HasBuff("LuxLightBindingMis"); #endregion if (insideE && thp < edmg && target.IsValidTarget(R1.Range)) { return; } if (rooted && insideE && rdmg + edmg > thp && target.IsValidTarget(R1.Range)) { SpellCastR(targetR); } #region -- Q spellcast var prediction = Q1.GetPrediction(target, true); var collision = Q1.GetCollision(Player.Position.To2D(), new List <Vector2> { prediction.UnitPosition.To2D() }); if (Config.Item("combo.Q").GetValue <bool>() && Environment.TickCount - E1.LastCastAttemptT > 400 && Environment.TickCount - R1.LastCastAttemptT > 800 && prediction.Hitchance >= PredQ("prediction.Q")) { if (collision.Count == 2) { if (collision[0].IsChampion() || collision[1].IsChampion()) { Q1.Cast(prediction.CastPosition); } } else if (collision.Count == 1 && collision[0].IsChampion()) { Q1.Cast(prediction.CastPosition); } else if (collision.Count <= 1) { Q1.Cast(prediction.CastPosition); } #endregion -- Q spellcast end if (rooted && thp < aa && target.IsValidTarget(AArange)) { return; } if (Config.Item("combo.E").GetValue <bool>() && Environment.TickCount - Q1.LastCastAttemptT > 875 && Environment.TickCount - R1.LastCastAttemptT > 800) { SpellCast(target, E1.Range, E1, false, 1, true, PredE("prediction.E")); } if (IgniteKillCheck() < thp && target.HasBuff("summonerdot")) { return; } if (Config.Item("combo.R").GetValue <bool>() && R1.IsReady()) { SpellCastR(targetR); } if (!target.IsValidTarget(600)) { return; } var ignitemenu = Config.Item("autospells.ignite").GetValue <bool>(); if (thp > IgniteDamage(target) && thp < IgniteDamage(target) + edmg + aa && rooted && E1.IsReady() && target.IsValidTarget(600) && Ignite.IsReady() && ignitemenu) { player.Spellbook.CastSpell(Ignite, target); Printchat("Ignite casted"); } if (thp < IgniteDamage(target) + rdmg + aa && rooted && Ignite.IsReady() && R1.IsReady() && ignitemenu) { player.Spellbook.CastSpell(Ignite, target); Printchat("Ignite casted"); } if (thp < IgniteDamage(target) + rdmg + aa && Ignite.IsReady() && R1.IsReady() && ignitemenu) { player.Spellbook.CastSpell(Ignite, target); Printchat("Ignite casted"); } if (thp < IgniteDamage(target) && target.IsValidTarget(600) && AllyCheck(target, 600) < 1 && Ignite.IsReady() && ignitemenu) { player.Spellbook.CastSpell(Ignite, target); Printchat("Ignite casted"); } } }
static void Combo() { var target = TargetSelector.GetTarget(1200f, DamageType.Physical); if (target == null || myhero.HasBuff(RBuffName)) { return; } if (!myhero.HasBuff(PassiveName) && target.InAARangeOf(myhero)) { WaitforAA = true; return; } if (combo.check("CQ") && Q1.IsReady() && !(WaitforAA || LastAttackType == 1)) { if (target.DistanceToPlayer() < Q2.Range) { var pred = Q2.GetPrediction(target); if (pred.Hitchance >= hitchance && Q2.Cast(pred.CastPosition)) { LastAttackType = 1; WaitforAA = true; } } else { var pred = Q1.GetPrediction(target); if (pred.Hitchance >= hitchance && Q1.Cast(pred.CastPosition, true)) { WaitforAA = true; LastAttackType = 1; } } } if (combo.check("CW") && W.IsReady() && (myhero.CountEnemies(W.Range - 10) >= slider(combo, "CWMIN") || (combo.check("CWS") && Q1.CooldownTime > 1f)) && !Q1.IsReady() && !E.IsReady() && GameObjects.EnemyHeroes.Any(x => x.IsFacing(myhero))) { //Game.Print(true); W.Cast(); LastAttackType = 2; WaitforAA = true; } if (combo.check("CE") && E.IsReady()) { var closeenemyturret = GameObjects.EnemyTurrets.OrderByDescending(x => x.Distance(target)).FirstOrDefault().Position; if (combo.check("CEQ") && Q1.IsReady() && myhero.CountEnemies(E.Range) > 1) { foreach (var enemy in GameObjects.EnemyHeroes.Where(x => x.DistanceToPlayer() < E.Range)) { var pred = E.GetPrediction(enemy); if (pred.AoeTargetsHitCount > 1) { E.Cast(enemy); DelayAction.Add(50, delegate { Q1.Cast(); WaitforAA = true; }); } } } else if (target.DistanceToPlayer() <= E.Range && combo.check("CES") && !WaitforAA && LastAttackType != 3 && (target.Distance(closeenemyturret) >= 850 || (myhero.HealthPercent > 40 || target.GetTotalSpelldamage() > target.Health)) /*&& !(Q1.IsReady() && !WaitforAA && LastAttackType != 3) *//*!((Q1.IsReady() && LastAttackType != 1 && target.DistanceToPlayer() < Q1.Range) || !(WaitforAA && target.InAARangeOf(myhero)))*/) { //Game.Print(true); E.Cast(target); LastAttackType = 3; WaitforAA = true; } else if (combo.check("CEG") && !target.InAARangeOf(myhero) && !target.IsFacing(myhero) && myhero.IsFacing(target) && !GameObjects.AllyHeroes.Any(x => target.InAARangeOf(x))) { var closerminion = GameObjects.Minions.Where(x => myhero.Position.Extend(x.Position, 650f).Distance(target) < myhero.Distance(target) && x.Distance(target) < 500).OrderBy(x => x.Distance(target)).FirstOrDefault(); if (closerminion != null) { E.Cast(closerminion); } } } if (combo.check("CR") && R.IsReady() && myhero.CountEnemies(R.Range - 100) > 0) { R.Cast(); LastAttackType = 4; } if (combo.check("CIGN") && ignite != null && ignite.CanCast(target) && ((target.Health <= myhero.GetSummonerSpellDamage(target, SummonerSpell.Ignite) && myhero.Distance(target) < 400 && !GameObjects.AllyHeroes.Any(x => target.InAARangeOf(x))) || (target.HealthPercent > 5 && GameObjects.AllyHeroes.Count(x => x != myhero && target.InAARangeOf(x) && x.IsFacing(target)) > 0))) { ignite.Cast(target, true); } }
private void LogicQ() { var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); var t1 = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical); if (t.IsValidTarget(Q.Range) && Player.Distance(t.ServerPosition) > 500) { var qDmg = OktwCommon.GetKsDamage(t, Q); if (qDmg + Player.GetAutoAttackDamage(t) > t.Health) { Q.Cast(t); } else if (qDmg + Player.GetAutoAttackDamage(t) * 3 > t.Health) { Q.Cast(t); } else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA) { Q.Cast(t); } else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA) { Q.Cast(t); } } else if (t1.IsValidTarget(Q1.Range) && Config.Item("harasQ", true).GetValue <bool>() && Player.Distance(t1.ServerPosition) > Q.Range + 50) { if (Config.Item("qMinionMove", true).GetValue <bool>()) { var minions = MinionManager.GetMinions(Player.ServerPosition, Q1.Range); if (minions.Exists(x => x.IsMoving)) { return; } } Q1.Width = Config.Item("qMinionWidth", true).GetValue <Slider>().Value; var poutput = Q1.GetPrediction(t1); var col = poutput.CollisionObjects; if (col.Count() == 0) { return; } var minionQ = col.Last(); if (minionQ.IsValidTarget(Q.Range)) { if (Config.Item("killQ", true).GetValue <bool>() && Q.GetDamage(minionQ) < minionQ.Health) { return; } var minionToT = minionQ.Distance(t1.Position); var minionToP = minionQ.Distance(poutput.CastPosition); if (minionToP < 400 && minionToT < 420 && minionToT > 150 && minionToP > 200) { if (Q.GetDamage(t1) + Player.GetAutoAttackDamage(t1) > t1.Health) { Q.Cast(col.Last()); } else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA) { Q.Cast(col.Last()); } else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA + QMANA) { Q.Cast(col.Last()); } } } } }
private static void LogicQ() { var t = TargetSelector.GetTarget(Q.Range, DamageType.Physical); var t1 = TargetSelector.GetTarget(Q1.Range, DamageType.Physical); if (t.IsValidTarget(Q.Range) && Player.Distance(t.ServerPosition) > 500) { var qDmg = OktwCommon.GetKsDamage(t, Q); if (qDmg + Player.GetAutoAttackDamage(t) > t.Health) { Q.Cast(t); } else if (qDmg + Player.GetAutoAttackDamage(t) * 3 > t.Health) { Q.Cast(t); } else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA) { Q.Cast(t); } else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA) { Q.Cast(t); } } else if (t1.IsValidTarget(Q1.Range) && getCheckBoxItem(qMenu, "harasQ") && Player.Distance(t1.ServerPosition) > Q.Range + 50) { if (getCheckBoxItem(qMenu, "qMinionMove")) { var minions = Cache.GetMinions(Player.ServerPosition, Q1.Range); if (minions.Exists(x => x.IsMoving)) { return; } } Q1.Width = getSliderItem(qMenu, "qMinionWidth"); var poutput = Q1.GetPrediction(t1); var col = poutput.CollisionObjects; if (!col.Any()) { return; } var minionQ = col.Last(); if (minionQ.IsValidTarget(Q.Range)) { if (getCheckBoxItem(qMenu, "killQ") && Q.GetDamage(minionQ) < minionQ.Health) { return; } var minionToT = minionQ.Distance(t1.Position); var minionToP = minionQ.Distance(poutput.CastPosition); if (minionToP < 400 && minionToT < 420 && minionToT > 150 && minionToP > 200) { if (Q.GetDamage(t1) + Player.GetAutoAttackDamage(t1) > t1.Health) { Q.Cast(col.Last()); } else if (Program.Combo && Player.Mana > RMANA + QMANA + WMANA) { Q.Cast(col.Last()); } else if (Program.Farm && Player.Mana > RMANA + QMANA + EMANA + WMANA + QMANA) { Q.Cast(col.Last()); } } } } }