public static Vector3 GetAJSPosition() { var positions = GetRotatedQPositions(); var enemyPositions = GetEnemyPoints(); var safePositions = positions.Where(pos => !enemyPositions.Contains(pos.To2D())).ToList(); var BestPosition = Variables._Player.ServerPosition.Extend(Game.CursorPos, 300f).To3D(); var AverageDistanceWeight = .65f; var ClosestDistanceWeight = .35f; var EndPosition = Vector3.Zero; var bestWeightedAvg = 0f; var enemiesNear = EntityManager.Heroes.Enemies.Where(m => m.IsValidTarget(Variables._Player.GetAutoAttackRange(m) + 300f + 65f)).ToList(); var highHealthEnemiesNear = EntityManager.Heroes.Enemies.Where(m => !m.IsMelee && m.IsValidTarget(1300f) && m.HealthPercent > 7).ToList(); if (Variables.MeleeEnemiesTowardsMe.Any() && Variables.MeleeEnemiesTowardsMe.Any(m => m.Position.Distance(Variables._Player) <= 300) && !Variables.MeleeEnemiesTowardsMe.All(m => m.HealthPercent <= 35)) { var Closest = Variables.MeleeEnemiesTowardsMe.OrderBy(m => m.Distance(Variables._Player)).First(); var position = (Vector3)Closest.ServerPosition.Extend( Variables._Player.ServerPosition, Closest.Distance(Variables._Player) + 300f); EndPosition = position.IsSafeToQ(true) ? position : Vector3.Zero; } if (enemiesNear.All(x => x.Health > Variables._Player.Health - 300) && enemiesNear.Any(x => x.Position.Distance(Variables._Player.Position) >= 450)) { var closest = enemiesNear.OrderBy(x => x.Distance(Variables._Player)).First(); var position = (Vector3)closest.ServerPosition.Extend(Variables._Player.ServerPosition, closest.Distance(Variables._Player) + 300f); EndPosition = position.IsSafeToQ(true) ? position : Vector3.Zero; } if (Variables._Player.CountEnemyChampionsInRange(1300f) == 1 && Variables.MeleeEnemiesTowardsMe.Count() == 0 && enemiesNear.All(x => x.HealthPercent >= 35)) { var position = Variables._Player.ServerPosition.Extend(Game.CursorPos, 300f).To3D(); EndPosition = position.IsSafeToQ(true) ? position : Vector3.Zero; } if (enemiesNear.Any(t => t.Health + 15 < Variables._Player.GetAutoAttackDamage(t) * 2 + DamageLibrary.GetSpellDamage(Variables._Player, t, SpellSlot.Q, DamageLibrary.SpellStages.Default) && t.Distance(Variables._Player) < Variables._Player.GetAutoAttackRange(t) + 80f)) { var QPosition = Variables._Player.ServerPosition.Extend(enemiesNear.OrderBy(t => t.Health).First().ServerPosition, 300f).To3D(); if (!QPosition.IsUnderTurret()) { EndPosition = QPosition; } } if (enemiesNear.Count() <= 2) { if ( enemiesNear.Any( t => t.Health + 15 < Variables._Player.GetAutoAttackDamage(t) + DamageLibrary.GetSpellDamage(Variables._Player, t, SpellSlot.Q, DamageLibrary.SpellStages.Default) && t.Distance(Variables._Player) < Variables._Player.GetAutoAttackRange(t) + 80f)) { var QPosition = Variables._Player.ServerPosition.Extend( highHealthEnemiesNear.OrderBy(t => t.Health).First().ServerPosition, 300f).To3D(); if (!QPosition.IsUnderTurret()) { EndPosition = QPosition; } } } if (enemiesNear.Count() >= 2 && enemiesNear.All(x => x.HealthPercent >= 35)) { foreach (var position in safePositions) { //Start le calculations var enemy = GetClosestEnemy(position); if (enemy == null) { continue; } if (Variables._Player.Distance(enemy) < enemy.AttackRange - 85 && !enemy.IsMelee) { return(Variables._Player.ServerPosition.Extend(Game.CursorPos, 300f).To3D()); } var avgDist = GetAvgDistance(position); if (avgDist > -1) { var closestDist = Variables._Player.ServerPosition.Distance(enemy.ServerPosition); var weightedAvg = closestDist * ClosestDistanceWeight + avgDist * AverageDistanceWeight; if (weightedAvg > bestWeightedAvg && position.IsSafeToQ()) { bestWeightedAvg = weightedAvg; BestPosition = position; } } } EndPosition = (BestPosition.IsSafeToQ(true) && IsSafeEx(BestPosition)) ? BestPosition : Vector3.Zero; } if (EndPosition == Vector3.Zero && Game.CursorPos.IsSafeToQ(true)) { EndPosition = Game.CursorPos; } return(EndPosition); }
private static void ActivatorSpells() { var target = TargetSelector.GetTarget(1000, DamageType.Mixed); var spell = Player.Instance.Spellbook; if (Player.Instance.IsInFountain() || Player.Instance.IsRecalling() || target == null) { return; } if (Value.Use("activator.barrier")) { if (Barrier != null) { if (Value.Get("activator.barrier.hp") > Player.Instance.HealthPercent) { if (Barrier.IsReady()) { Barrier.Cast(); } } } } if (Value.Use("activator.heal")) { if (Heal != null && Heal.IsReady()) { if (Value.Use("activator.heal.lifesave")) { var ally = EntityManager.Heroes.Allies.FirstOrDefault( x => x.IsValidTarget(Player.Instance.GetAutoAttackRange()) && x.HealthPercent <= Value.Get("activator.barrier.hp")); if (ally != null) { if (ally.IsFacing(target)) { Heal.Cast(); } } } if (Player.Instance.HealthPercent <= Value.Get("activator.heal.hp")) { if (Player.Instance.IsFacing(target)) { Heal.Cast(); } } } } if (Value.Use("activator.ignite")) { if (Ignite != null && Ignite.IsReady()) { if (Value.Use("activator.ignite.killsteal")) { if (target.Health <= DamageLibrary.GetSpellDamage(Player.Instance, target, Ignite.Slot)) { Ignite.Cast(target); } } if (Value.Use("activator.ignite.burst")) { if (spell.GetSpell(SpellSlot.Q).IsReady&& spell.GetSpell(SpellSlot.W).IsReady&& spell.GetSpell(SpellSlot.E).IsReady&& spell.GetSpell(SpellSlot.R).IsReady) { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { Ignite.Cast(target); } } } if (Value.Use("activator.ignite.progressive")) { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { Ignite.Cast(target); } } } } }
public override void Execute() { var _jungleMobs = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Instance.ServerPosition, Q.Range, false); // assumes jungle item is on slot 1 var _item = new InventorySlot((uint)Player.Instance.NetworkId, 1); foreach (var _monster in _jungleMobs.Where(x => x.IsValidTarget(S.Range))) { var _skinName = _monster.BaseSkinName; var _rDmg = DamageLibrary.GetSpellDamage(Player.Instance, _monster, SpellSlot.R, DamageLibrary.SpellStages.Default); switch (_skinName) { case "SRU_Baron": case "SRU_Dragon": // R+Smite steal if (_rDmg + SmiteManager.SmiteDamage >= _monster.Health) { R.Cast(_monster); S.Cast(_monster); } if (_monster.Health <= SmiteManager.SmiteDamage && S.IsInRange(_monster) && S.IsReady()) { S.Cast(_monster); } if (Q.IsLearned && Q.IsReady()) { Q.Cast(_monster); } if (W.IsInRange(_monster)) { W.Cast(); } break; case "SRU_Crab": case "SRU_Murkwolf": case "SRU_Razorbeak": case "SRU_Krug": case "SRU_Gromp": case "SRU_Blue": case "SRU_Red": if (_monster.Health <= SmiteManager.SmiteDamage && S.IsInRange(_monster) && S.IsReady()) { S.Cast(_monster); } if (Q.IsLearned && Q.IsReady()) { Q.Cast(_monster); } if (W.IsInRange(_monster)) { W.Cast(); } // smite buff if next auto attack will kill you if (_monster.GetAutoAttackDamage(Player.Instance) >= Player.Instance.Health) { S.Cast(_monster); } break; default: break; } } }
private void castR() { if (Settings.UseR && R.IsReady()) { var target = TargetSelector.GetTarget(SpellManager.RRange, DamageType.Physical); if (target != null && ((target.Distance(Player.Instance) > 700 && Player.Instance.CountEnemiesInRange(650) == 0) || Settings.UseRAlways) && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.R) > target.Health + 2 / 5 * target.HPRegenRate) { R.Cast(target); } else if (target != null && target.Distance(Player.Instance) > 700 && !Settings.UseRAlways && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.R) > target.Health + 2 / 5 * target.HPRegenRate) { /*if (Settings.useScryingOrbMarker) * { * InventorySlot[] inv = Player.Instance.InventoryItems; * foreach (var item in inv) * { * if (item.Id == ItemId.Farsight_Alteration) * { * item.Cast(target); * } * } * }*/ } } }
public static void castQ(bool NotkillOnly, bool killMinionOnly, bool onChampsOnly) { foreach (var killable in EntityManager.Heroes.Enemies.Where(e => e.IsInRange(EloBuddy.Player.Instance, 1000) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && (e.Health < DamageLibrary.GetSpellDamage(EloBuddy.Player.Instance, e, SpellSlot.Q) || NotkillOnly))) { var killablePosition = Prediction.Position.PredictUnitPosition(killable, 250).To3D(); int i = -1; for (int j = 0; j < EntityManager.Heroes.Enemies.Count; j++) { if (killable.NetworkId == EntityManager.Heroes.Enemies[j].NetworkId) { i = j; } } if (i == -1 || !MissFortuneTheTrollMenu.ComboQ()) { continue; } bool buff = false; foreach (var b in killable.Buffs) { if (b.Name == "missfortunepassivestack") { buff = true; } } foreach (var t in EntityManager.Heroes.Enemies.Where(e => e.IsInRange(EloBuddy.Player.Instance, Q.Range) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && Prediction.Position.PredictUnitPosition(e, 250).To3D().Distance(killable) < 500)) { Vector3 meToTarget = Prediction.Position.PredictUnitPosition(t, 250).To3D() - Prediction.Position.PredictUnitPosition(EloBuddy.Player.Instance, 250).To3D(); if (meToTarget.AngleBetween(killablePosition) < 0.6981 && buff && meToTarget.AngleBetween(killablePosition) > 0) { Q.Cast(t); return; } else if (meToTarget.AngleBetween(killablePosition) < 0.349066 && meToTarget.AngleBetween(killablePosition) > 0) { int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 0.349066 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count(); if (m == 0) { Q.Cast(t); return; } } else if (meToTarget.AngleBetween(killablePosition) < 0.6981 && meToTarget.AngleBetween(killablePosition) > 0) { int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 0.6981 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count(); if (m == 0) { Q.Cast(t); return; } } else if (meToTarget.AngleBetween(killablePosition) < 1.9 && meToTarget.AngleBetween(killablePosition) > 0) { int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 1.9 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count(); if (m == 0) { Q.Cast(t); return; } } } if (onChampsOnly) { return; } foreach (var t in EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(EloBuddy.Player.Instance, Q.Range) && Prediction.Position.PredictUnitPosition(e, 250).To3D().Distance(killable) < 500 && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && (!killMinionOnly || e.Health < EloBuddy.Player.Instance.GetSpellDamage(e, SpellSlot.Q))).OrderBy(t => t.Health)) { Vector3 meToTarget = Prediction.Position.PredictUnitPosition(t, 250).To3D() - Prediction.Position.PredictUnitPosition(EloBuddy.Player.Instance, 250).To3D(); if (meToTarget.AngleBetween(killablePosition) < 0.6981 && buff && meToTarget.AngleBetween(killablePosition) > 0) { Q.Cast(t); return; } else if (meToTarget.AngleBetween(killablePosition) < 0.349066 && meToTarget.AngleBetween(killablePosition) > 0) { int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 0.349066 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count(); if (m == 0) { Q.Cast(t); return; } } else if (meToTarget.AngleBetween(killablePosition) < 0.6981 && meToTarget.AngleBetween(killablePosition) > 0) { int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 0.6981 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count(); if (m == 0) { Q.Cast(t); return; } } else if (meToTarget.AngleBetween(killablePosition) < 1.9 && meToTarget.AngleBetween(killablePosition) > 0) { int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 1.9 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count(); if (m == 0) { Q.Cast(t); return; } } } } }
private static void OnUpdate(EventArgs args) { // Check spell arrival foreach (var entry in IncDamage.Where(entry => entry.Key < Game.Time).ToArray()) { IncDamage.Remove(entry.Key); } // Instant damage removal foreach (var entry in InstDamage.Where(entry => entry.Key < Game.Time).ToArray()) { InstDamage.Remove(entry.Key); } foreach (var skillshot in Evade.Evade.GetSkillshotsAboutToHit(Player.Instance, 200)) { AIHeroClient caster = null; foreach (var e in EntityManager.Heroes.Enemies.Where(t => t.ChampionName == skillshot.SpellData.ChampionName)) { caster = e; } if (caster != null && (skillshot.IsGlobal || caster.Distance(Player.Instance) <= skillshot.SpellData.Range + 50)) { if (Settings.useZhonyasDmg && (DamageLibrary.GetSpellDamage(caster, Player.Instance, skillshot.SpellData.Slot) > Settings.minDmgZhonyas / 100 * Player.Instance.MaxHealth)) { if (castZhonyas()) { return; } } if (Settings.useSeraphsDmg && (DamageLibrary.GetSpellDamage(caster, Player.Instance, skillshot.SpellData.Slot) > Settings.minDmgSerpaphs / 100 * Player.Instance.MaxHealth)) { if (castSeraphs()) { return; } } if (dangerousSpell(SpellData.GetSpellData(skillshot.SpellData.SpellName), caster)) { if (Settings.useZhonyasDmg) { if (castZhonyas()) { return; } } if (Settings.useSeraphsDmg) { if (castSeraphs()) { return; } } } } } if (Settings.useZhonyasDmg) { if (Player.Instance.HealthPercent < 5 && Player.Instance.CountEnemiesInRange(500) > 0 || IncomingDamage > Player.Instance.Health || IncomingDamage > Player.Instance.MaxHealth * Settings.minDmgZhonyas / 100) { if (castZhonyas()) { return; } } } if (Settings.useSeraphsDmg) { if (Player.Instance.HealthPercent < 5 && Player.Instance.CountEnemiesInRange(500) > 0 || IncomingDamage > Player.Instance.Health || IncomingDamage > Player.Instance.MaxMana * 0.2 || IncomingDamage > Player.Instance.MaxHealth * Settings.minDmgZhonyas / 100) { if (castSeraphs()) { return; } } } }
public override void Execute() { if (Settings.mana >= Player.Instance.ManaPercent) { SpellManager.toPowpow(); return; } if (Settings.UseQ && Q.IsReady()) { var lasthitminions = EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(t => t.IsInRange(Player.Instance, SpellManager.Range)).OrderByDescending(t => t.MaxHealth); if (lasthitminions.Count() == 0) { if (SpellManager.Fishbones) { Q.Cast(); } Orbwalker.ForcedTarget = null; } int count = 0; foreach (var m in lasthitminions) { count = 1; foreach (var m2 in lasthitminions) { if (m.Distance(m2) < 150) { count++; } } //hitting m with Fisbones is gonna blow up *count* minions //worth Fishbones if (SpellManager.Powpow && Orbwalker.ForcedTarget == null && count >= Settings.minMinionsToFishbones) { Q.Cast(); Orbwalker.ForcedTarget = m; return; } if (SpellManager.Fishbones && Orbwalker.ForcedTarget == null && count >= Settings.minMinionsToFishbones) { Orbwalker.ForcedTarget = m; return; } } //no fishbones worthy minion if (SpellManager.Fishbones && Orbwalker.ForcedTarget == null && count < Settings.minMinionsToFishbones) { Q.Cast(); Orbwalker.ForcedTarget = null; } } if (Settings.UseW && W.IsReady()) { var e = EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(t => t.Health < DamageLibrary.GetSpellDamage(Player.Instance, t, SpellSlot.W) && t.IsInRange(Player.Instance, W.Range)).OrderByDescending(t => t.MaxHealth).FirstOrDefault(); if (e != null) { W.Cast(e); } e = EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(t => !t.IsInRange(Player.Instance, SpellManager.Range) && t.IsInRange(Player.Instance, W.Range)).OrderByDescending(t => t.MaxHealth).FirstOrDefault(); if (e != null) { W.Cast(e); } } }
private static void OnUpdate(EventArgs args) { for (int i = 0; i < EntityManager.Heroes.Allies.Count; i++) { // Check spell arrival foreach (var entry in IncDamage[i].Where(entry => entry.Key < Game.Time).ToArray()) { IncDamage[i].Remove(entry.Key); } // Instant damage removal foreach (var entry in InstDamage[i].Where(entry => entry.Key < Game.Time).ToArray()) { InstDamage[i].Remove(entry.Key); } } if (Settings.useE && SpellManager.E.IsReady()) { foreach (var skillshot in Evade.Evade.GetSkillshotsAboutToHit(Player.Instance, 200)) { AIHeroClient caster = null; foreach (var e in EntityManager.Heroes.Enemies.Where(t => t.ChampionName == skillshot.SpellData.ChampionName)) { caster = e; } if (caster != null && (skillshot.IsGlobal || caster.Distance(Player.Instance) <= skillshot.SpellData.Range + 50)) { if (DamageLibrary.GetSpellDamage(caster, Player.Instance, skillshot.SpellData.Slot) > Settings.minDamage / 100 * Player.Instance.MaxHealth) { SpellManager.E.Cast(); break; } if (skillshot.SpellData.IsDangerous) { SpellManager.E.Cast(); break; } } } } if (!Settings.useHeal || SpellManager.heal == null) { return; } for (int i = 0; i < EntityManager.Heroes.Allies.Count; i++) { if (SpellManager.heal.IsReady() && Settings.useHealOnI(i) && EntityManager.Heroes.Allies[i].IsInRange(Player.Instance, SpellManager.heal.Range)) { if ((Player.Instance.HealthPercent < 5) || (getIncomingDamageForI(i) >= EntityManager.Heroes.Allies[i].Health)) { if (!Settings.useHeal) { return; } SpellManager.heal.Cast(); if (i == me) { castOnMe = true; } break; } } } }
public int getComboDmg(Obj_AI_Base target) { return(Convert.ToInt32(ObjectManager.Player.CalculateDamageOnUnit(target, DamageType.Physical, DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.E) + DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.R)))); }
public override void Execute() { if (Config.Drawings.ShowKillable) { DamageIndicator.DamageToUnit = GetComboDamage; } if (Player.Instance.GetSpellSlotFromName("summonerdot") == SpellSlot.Summoner1 || Player.Instance.GetSpellSlotFromName("summonerdot") == SpellSlot.Summoner2) { if (ObjectManager.Player.IsDead || !Ig.IsReady() || !Settings.UseIgnite) { return; } if (ObjectManager.Get <AIHeroClient>().Where( h => h.IsValidTarget(Ig.Range) && h.Health < ObjectManager.Player.GetSummonerSpellDamage(h, DamageLibrary.SummonerSpells.Ignite)).Count() <= 0) { return; } var target = ObjectManager.Get <AIHeroClient>() .Where( h => h.IsValidTarget(Ig.Range) && h.Health < ObjectManager.Player.GetSummonerSpellDamage(h, DamageLibrary.SummonerSpells.Ignite)); var aiHeroClients = target as AIHeroClient[] ?? target.ToArray(); if (aiHeroClients.First().Distance(Player.Instance) > 450 || (Player.Instance.HealthPercent < 25)) { Ig.Cast(aiHeroClients.First()); } } if (Settings.UseW) { var target = TargetSelector.GetTarget(W.Range, DamageType.Magical); if (target != null && target.IsEnemy && target.Distance(Player.Instance.Position) > Player.Instance.AttackRange && (DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.W)) > target.Health) { W.Cast(target.Position); } } }
private void ksWithW() { if (Settings.ksW && W.IsReady()) { foreach (var e in EntityManager.Heroes.Enemies.Where(e => e.IsInRange(Player.Instance, W.Range) && e.Health > 0 && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && e.Health < DamageLibrary.GetSpellDamage(Player.Instance, e, SpellSlot.W))) { if (W.GetPrediction(e).HitChance >= HitChance.Medium) { W.Cast(W.GetPrediction(e).CastPosition); return; } } } }
private void ks() { foreach (var enemy in EntityManager.Heroes.Enemies.Where(target => target.HealthPercent > 0 && !target.IsInvulnerable && target.IsEnemy && !target.IsPhysicalImmune && !target.IsZombie)) { if (enemy.IsInRange(Player.Instance, Q.Range) && Settings.ksQ && Settings.ksR && Q.IsReady() && R.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId) { Q.Cast(Q.GetPrediction(enemy).CastPosition); R.Cast(R.GetPrediction(enemy).CastPosition); } } if (enemy.IsInRange(Player.Instance, Q.Range) && Settings.ksQ && Q.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q)) { Q.Cast(Q.GetPrediction(enemy).CastPosition); } } if (enemy.IsInRange(Player.Instance, R.Range) && Settings.ksR && R.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId) { R.Cast(R.GetPrediction(enemy).CastPosition); } } } }
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.GetPrediction(target).HitChance >= HitChance.High && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.Q) > Player.Instance.GetAutoAttackDamage(target)) { if (target.HasBuff("caitlynyordletrapsight") || ( (target.HasBuffOfType(BuffType.Fear) || target.HasBuffOfType(BuffType.Flee) || target.HasBuffOfType(BuffType.Knockup) || target.HasBuffOfType(BuffType.Snare) || target.HasBuffOfType(BuffType.Stun) || target.HasBuffOfType(BuffType.Taunt) || target.HasBuffOfType(BuffType.Suppression)) ) && Q.GetPrediction(target).GetCollisionObjects <Obj_AI_Base>().Count() > 0 && Q.GetPrediction(target).GetCollisionObjects <Obj_AI_Base>()[0].NetworkId == target.NetworkId) { Q.Cast(Q.GetPrediction(target).CastPosition); } else if (Q.GetPrediction(target).GetCollisionObjects <Obj_AI_Base>().Count() > 0 && Q.GetPrediction(target).GetCollisionObjects <Obj_AI_Base>()[0].NetworkId == target.NetworkId && Q.GetPrediction(target).HitChance >= HitChance.Medium) { Q.Cast(Q.GetPrediction(target).CastPosition); } else if ((target.HasBuffOfType(BuffType.Fear) || target.HasBuffOfType(BuffType.Flee) || target.HasBuffOfType(BuffType.Knockup) || target.HasBuffOfType(BuffType.Snare) || target.HasBuffOfType(BuffType.Stun) || target.HasBuffOfType(BuffType.Taunt) || target.HasBuffOfType(BuffType.Suppression) ) && Settings.UseQStunned && Player.Instance.ManaPercent > Settings.ManaQAlways) { Q.Cast(Q.GetPrediction(target).CastPosition); } else if (Settings.UseQNotStunned && Player.Instance.ManaPercent > Settings.ManaQAlways) { Q.Cast(Q.GetPrediction(target).CastPosition); } /**PRESEASON * else if(target has Buff Snap Trap) **/ //caitlynyordletrapsight } } if (Settings.UseW && W.IsReady()) { if (Player.Instance.Spellbook.GetSpell(SpellSlot.W).Ammo > Settings.StockW) { var target = TargetSelector.GetTarget(W.Range, DamageType.Physical); if (target != null) { W.Cast(W.GetPrediction(target).CastPosition); } } } if (Settings.UseR && R.IsReady()) { var target = TargetSelector.GetTarget(SpellManager.RRange, DamageType.Physical); if (target != null && target.Distance(Player.Instance) > 700 && Player.Instance.CountEnemiesInRange(650) == 0) { R.Cast(target); } } }
public void ks(bool Q, bool W, bool E, bool Smite) { var target = TargetSelector.GetTarget(KindredSpells.privW.Range, DamageType.Physical); if (target == null) { return; } if (Q && KindredSpells.privQ.IsReady()) { if (KindredSpells.privQ.IsInRange(target) && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.Q) >= target.Health) { KindredSpells.privQ.Cast(target); } } if (W && KindredSpells.privW.IsReady()) { if (KindredSpells.privW.IsInRange(target) && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.W) >= target.Health) { KindredSpells.privW.Cast(target); } } if (E && KindredSpells.privE.IsReady()) { if (KindredSpells.privE.IsInRange(target) && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.E) >= target.Health) { KindredSpells.privE.Cast(target); } } if (Smite && KindredSpells.smite != null && KindredSpells.smite.IsReady() && DamageLibrary.GetSpellDamage(Player.Instance, target, KindredSpells.smite.Slot) >= target.Health) { KindredSpells.smite.Cast(target); } }
private void ksWithQ() { if (Settings.ksQ && Q.IsReady()) { foreach (var e in EntityManager.Heroes.Enemies.Where(e => e.IsInRange(Player.Instance, Q.Range) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && e.Health < DamageLibrary.GetSpellDamage(Player.Instance, e, SpellSlot.Q))) { Q.Cast(e); return; } SpellManager.castQ(false, false, true); SpellManager.castQ(false, false); } }
private void ks() { foreach (var enemy in EntityManager.Heroes.Enemies.Where(target => target.HealthPercent > 0 && !target.IsInvulnerable && target.IsEnemy && !target.IsPhysicalImmune && !target.IsZombie)) { if (enemy.IsInRange(Player.Instance, Q.MinimumRange) && Settings.ksQ && Q.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q)) { SpellManager.Q.StartCharging(); Core.DelayAction(() => checkQDelayedCast(enemy), 650); break; } } if (enemy.IsInRange(Player.Instance, E.Range) && Settings.ksE && E.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.E)) { E.Cast(E.GetPrediction(enemy).CastPosition); break; } } if (enemy.IsInRange(Player.Instance, R.Range) && Settings.ksR && R.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId) { R.Cast(R.GetPrediction(enemy).CastPosition); break; } } if (enemy.IsInRange(Player.Instance, Q.MinimumRange) && enemy.IsInRange(Player.Instance, E.Range) && Settings.ksQ && Settings.ksE && Q.IsReady() && E.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.E)) { SpellManager.Q.StartCharging(); Core.DelayAction(() => checkQDelayedCast(enemy), 650); E.Cast(E.GetPrediction(enemy).CastPosition); break; } } if (enemy.IsInRange(Player.Instance, Q.MinimumRange) && enemy.IsInRange(Player.Instance, R.Range) && Settings.ksQ && Settings.ksR && Q.IsReady() && R.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId) { SpellManager.Q.StartCharging(); Core.DelayAction(() => SpellManager.Q.Cast(SpellManager.Q.GetPrediction(enemy).CastPosition), 650); R.Cast(R.GetPrediction(enemy).CastPosition); break; } } if (enemy.IsInRange(Player.Instance, E.Range) && enemy.IsInRange(Player.Instance, R.Range) && Settings.ksE && Settings.ksR && E.IsReady() && R.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.E) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId) { E.Cast(E.GetPrediction(enemy).CastPosition); R.Cast(R.GetPrediction(enemy).CastPosition); break; } } if (enemy.IsInRange(Player.Instance, Q.MinimumRange) && enemy.IsInRange(Player.Instance, E.Range) && enemy.IsInRange(Player.Instance, R.Range) && Settings.ksQ && Settings.ksE && Settings.ksR && Q.IsReady() && E.IsReady() && R.IsReady()) { if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.E) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId) { SpellManager.Q.StartCharging(); Core.DelayAction(() => checkQDelayedCast(enemy), 650); E.Cast(E.GetPrediction(enemy).CastPosition); R.Cast(R.GetPrediction(enemy).CastPosition); break; } } } }
public static void Steal() { if (KMenu.KAstealW && KSpells.W.IsReady()) { foreach (var X in EntityManager.Heroes.Enemies.Where(X => X.IsInRange(Player.Instance, KSpells.W.Range) && X.HealthPercent > 0 && !X.IsInvulnerable && X.IsTargetable && !X.IsZombie && X.Health < DamageLibrary.GetSpellDamage(Player.Instance, X, SpellSlot.W))) { if (KSpells.W.GetPrediction(X).HitChance >= HitChance.Medium) { KSpells.W.Cast(KSpells.W.GetPrediction(X).CastPosition); } } } if (KMenu.KAstealR && KSpells.W.IsReady()) { foreach (var X in EntityManager.Heroes.Enemies.Where(X => X.IsInRange(Player.Instance, KMenu.KAstealRlimit) && X.HealthPercent > 0 && !X.IsInvulnerable && X.IsTargetable && !X.IsZombie && X.Health < DamageLibrary.GetSpellDamage(Player.Instance, X, SpellSlot.R))) { if (KSpells.R.GetPrediction(X).HitChance >= HitChance.High) { KSpells.R.Cast(KSpells.R.GetPrediction(X).CastPosition); } } } }
private void ks() { if (Settings.ksE && Settings.ksI && E.IsReady() && Ignite != null && Ignite.IsReady()) { var enemy = EntityManager.Heroes.Enemies.Where(t => t.IsEnemy && !t.IsZombie && !t.IsDead && t.IsValid && !t.IsInvulnerable && t.IsInRange(Player.Instance.Position, Ignite.Range) && t.IsInRange(Player.Instance.Position, E.Range) && DamageLibrary.GetSummonerSpellDamage(Player.Instance, t, DamageLibrary.SummonerSpells.Ignite) + DamageLibrary.GetSpellDamage(Player.Instance, t, SpellSlot.E) > t.Health).FirstOrDefault(); if (enemy != null) { E.Cast(enemy); Ignite.Cast(enemy); return; } } if (Settings.ksE && E.IsReady()) { var enemy = EntityManager.Heroes.Enemies.Where(t => t.IsEnemy && !t.IsZombie && !t.IsDead && t.IsValid && !t.IsInvulnerable && t.IsInRange(Player.Instance.Position, E.Range) && DamageLibrary.GetSpellDamage(Player.Instance, t, SpellSlot.E) > Prediction.Health.GetPrediction(t, 250)).FirstOrDefault(); if (enemy != null) { E.Cast(enemy); } } if (Settings.ksI && Ignite != null && Ignite.IsReady()) { var enemy = EntityManager.Heroes.Enemies.Where(t => t.IsEnemy && !t.IsZombie && !t.IsDead && t.IsValid && !t.IsInvulnerable && t.IsInRange(Player.Instance.Position, Ignite.Range) && DamageLibrary.GetSummonerSpellDamage(Player.Instance, t, DamageLibrary.SummonerSpells.Ignite) > t.Health).FirstOrDefault(); if (enemy != null) { Ignite.Cast(enemy); } } }