public static void LastHit() { Menu menu = MenuHandler.LastHit; List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.EnemyMinions.Where(a => a.MeetsCriteria()).ToList().ToObj_AI_BaseList(); if (menu.GetCheckboxValue("Use Q") && Program.Q.IsReady()) { List <Obj_AI_Base> QEnemies = enemies.Where(a => a.Health <= Calculations.Q(a, 1.25f) && a.IsInRange(Vi, Program.Q.Range())).ToList(); if (QEnemies.Count >= 1 && !Program.Q.IsCharging) { ChargeQ(); } else { QEnemies = enemies.Where(a => a.Health <= Calculations.Q(a, Program.Q.TimeSinceCharge()) && a.IsInRange(Vi, Program.Q.Range())).ToList(); Spell.Skillshot.BestPosition bestPos = Program.Q.GetBestLinearCastPosition(QEnemies, 0, Vi.Position.To2D()); if (bestPos.CastPosition != null && bestPos.CastPosition != Vector3.Zero && bestPos.CastPosition.IsInRange(Vi, Program.Q.Range()) && bestPos.HitNumber > 0) { CastQ(bestPos.CastPosition); } } } if (menu.GetCheckboxValue("Use E")) { CastE(enemies.Where(a => a.Health <= Calculations.E(a) + Vi.GetAutoAttackDamage(a)).ToList()); } if (menu.GetCheckboxValue("Use Items")) { UseItems(enemies, true); } }
public static List <Obj_AI_Base> GetUnitsHitBySpell(this Spell.Skillshot.BestPosition bestpos, Spell.Skillshot spell, List <Obj_AI_Base> enemies) { List <Obj_AI_Base> units = new List <Obj_AI_Base>(); Geometry.Polygon shape = new Geometry.Polygon(); if (spell.Type == SkillShotType.Circular) { shape = new Geometry.Polygon.Circle(bestpos.CastPosition, spell.Radius); } else if (spell.Type == SkillShotType.Cone) { shape = new Geometry.Polygon.Arc(Player.Instance.Position, bestpos.CastPosition, MathUtil.DegreesToRadians(spell.ConeAngleDegrees), spell.Radius); } foreach (Obj_AI_Base o in enemies) { if (shape.IsInside(o.PredictedPositionInTime(spell.CastDelay))) { units.Add(o); } } return(units); }
public static void LaneClear() { Menu menu = MenuHandler.LaneClear; List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.EnemyMinions.Where(a => a.MeetsCriteria()).ToList().ToObj_AI_BaseList(); if (menu.GetCheckboxValue("Use Q") && Program.Q.IsReady()) { List <Obj_AI_Base> QEnemies = enemies.Where(a => a.IsInRange(Vi, Program.Q.Range())).ToList(); if (QEnemies.Count >= 1 && !Program.Q.IsCharging) { ChargeQ(); } else { Spell.Skillshot.BestPosition bestPos = Program.Q.GetBestLinearCastPosition(QEnemies, 0, Vi.Position.To2D()); if (bestPos.CastPosition != null && bestPos.CastPosition != Vector3.Zero && bestPos.CastPosition.IsInRange(Vi, Program.Q.Range()) && bestPos.HitNumber > 0) { CastQ(bestPos.CastPosition); } } } if (menu.GetCheckboxValue("Use E")) { CastE(enemies); } if (menu.GetCheckboxValue("Use Items")) { UseItems(enemies, false); } }
public static void LastHit() { Menu menu = MenuHandler.LastHit; List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.EnemyMinions.Where(a => a.MeetsCriteria()).ToList().ToObj_AI_BaseList(); //eq Spell.Skillshot.BestPosition bestQPos = Program.Q.GetBestLinearCastPosition(enemies.Where(a => a.Health <= Calculations.Q(a))); Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestCircularCastPosition(enemies.Where(a => a.Health <= Calculations.E(a))); if (menu.GetCheckboxValue("Use EQ") && Program.Q.IsReady() && Program.E.IsReady() && bestQPos.HitNumber >= 1) { CastE(bestQPos.CastPosition); Core.DelayAction(new Action(delegate { CastQ(bestQPos.CastPosition); }), 100); } if (menu.GetCheckboxValue("Use Q") && JarvanIV.IsAutoCanceling(enemies) && bestQPos.HitNumber >= 1) { CastQ(bestQPos.CastPosition); } if (menu.GetCheckboxValue("Use E") && bestEPos.HitNumber >= 1) { CastE(bestEPos.CastPosition); } if (menu.GetCheckboxValue("Use Items")) { UseItems(enemies, true); } }
public static void LastHit() { Menu menu = MenuHandler.LastHit; List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.Monsters.ToList().ToObj_AI_BaseList(); Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestLinearCastPosition(enemies); }
public static int HitNumber(this Spell.Skillshot.BestPosition self, Spell.Skillshot spell) { if (spell.Type == EloBuddy.SDK.Enumerations.SkillShotType.Cone) { Geometry.Polygon.Sector cone = new Geometry.Polygon.Sector(Program.JarvanIV.Position, Program.JarvanIV.Position - self.CastPosition, spell.ConeAngleDegrees, spell.Range); return(EntityManager.Heroes.Enemies.Where(a => a.MeetsCriteria() && cone.IsInside(a)).Count()); } return(0); }
public static void Harass() { Menu menu = MenuHandler.Harass; List <Obj_AI_Base> enemies = EntityManager.Heroes.Enemies.ToList().ToObj_AI_BaseList(); Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestLinearCastPosition(enemies); if (menu.GetCheckboxValue("Use E") && bestEPos.HitNumber >= 1) { CastE(bestEPos.CastPosition); } }
public static Vector3 GetBestRLocation(GameObjectType type) { Spell.Skillshot.BestPosition pos = Program.R.GetBestCircularCastPosition(EntityManager.Enemies.Where(a => a.Type == type && a.Distance(Annie) <= Program.R.Range + (Program.R.Width / 2))); if (pos.HitNumber >= 1) { return(pos.CastPosition); } else { return(Vector3.Zero); } }
public static void JunglerClear() { Menu menu = MenuHandler.JunglerClear; List <Obj_AI_Base> enemies = EntityManager.MinionsAndMonsters.Monsters.ToList().ToObj_AI_BaseList(); Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestLinearCastPosition(enemies); if (menu.GetCheckboxValue("Use E") && bestEPos.HitNumber >= 1) { CastE(bestEPos.CastPosition); } }
public static int GetBestRLocationUnits(GameObjectType type, out Vector3 pos) { Spell.Skillshot.BestPosition position = Program.R.GetBestCircularCastPosition(EntityManager.Enemies.Where(a => a.Type == type && a.Distance(Annie) <= Program.R.Range + (Program.R.Width / 2))); pos = position.CastPosition; if (position.HitNumber >= 1) { return(position.HitNumber); } else { return(0); } }
public static void CastE(List <Obj_AI_Base> enemies) { if (!Program.E.IsReady() || hasDoneActionThisTick) { return; } Spell.Skillshot.BestPosition bestPos = Program.E.GetBestCircularCastPosition(enemies); if (bestPos.HitNumber >= 1) { hasDoneActionThisTick = Program.E.Cast(bestPos.CastPosition); } }
public static void Combo() { Menu menu = MenuHandler.Combo; List <Obj_AI_Base> enemies = EntityManager.Heroes.Enemies.Where(a => a.MeetsCriteria()).ToList().ToObj_AI_BaseList(); //eq Spell.Skillshot.BestPosition bestQPos = Program.Q.GetBestLinearCastPosition(enemies); Spell.Skillshot.BestPosition bestEPos = Program.E.GetBestCircularCastPosition(enemies); if (menu.GetCheckboxValue("Use EQ") && Program.Q.IsReady() && Program.E.IsReady() && bestQPos.HitNumber >= 1) { CastE(bestQPos.CastPosition); Core.DelayAction(new Action(delegate { CastQ(bestQPos.CastPosition); }), 100); } if (menu.GetCheckboxValue("Use Q") && JarvanIV.IsAutoCanceling(enemies) && bestQPos.HitNumber >= 1) { CastQ(bestQPos.CastPosition); } if (menu.GetCheckboxValue("Use W") && enemies.Where(a => a.IsInRange(JarvanIV, Program.W.Range)).Count() >= 1) { CastW(); } if (menu.GetCheckboxValue("Use E") && bestEPos.HitNumber >= 1) { CastE(bestEPos.CastPosition); } if (menu.GetCheckboxValue("Use R") && bestEPos.HitNumber >= 1) { CastR(enemies, false); } if (menu.GetCheckboxValue("Use Items")) { UseItems(enemies, false); } if (menu.GetCheckboxValue("Use Smite")) { UseSmite(enemies, false); } if (menu.GetCheckboxValue("Use Ignite")) { UseIgnite(enemies, true); } }
//working and tested private static void CastEOnBestPosition(List <Obj_AI_Base> enemies, int enemiesToUseEOn, bool ks) { enemies = enemies.Where(a => a.Distance(Gangplank) <= Program.E.Range + (Program.barrelRadius / 2)).ToList(); if (ks) { enemies = enemies.Where(a => a.Health <= Calculations.E(a, false)).ToList(); } if (!Program.E.IsReady() || enemies.Count == 0) { return; } Spell.Skillshot.BestPosition bestPos = Program.E.GetBestCircularCastPosition(enemies); if (bestPos.CastPosition != Vector3.Zero && bestPos.CastPosition.IsInRange(Gangplank, Program.E.Range) && bestPos.EHitNumber(enemies) >= enemiesToUseEOn) { CastE(bestPos.CastPosition); } }
public static void CastR(List <Obj_AI_Base> enemies, int enemiesToUlt, bool ks) { if (!Program.R.IsReady() || didActionThisTick) { return; } if (ks) { enemies = enemies.Where(a => a.Health <= (Calculations.RDamagePerWave(a) * 5)).ToList(); } if (enemies.Count() < enemiesToUlt) { return; } Spell.Skillshot.BestPosition bestPos = Program.R.GetBestCircularCastPosition(enemies); if (bestPos.CastPosition != Vector3.Zero && bestPos.RHitNumber(enemies) >= enemiesToUlt) { didActionThisTick = Program.R.Cast(bestPos.CastPosition); } }
public static int RHitNumber(this Spell.Skillshot.BestPosition self, List <Obj_AI_Base> enemies) { return(enemies.Count(a => self.CastPosition.IsInRange(a.Position(250), 525f))); }
public static void Execute() { if (MenuValue.Combo.UseQ && Q.IsReady() && !player.HasBuff("twitchhideinshadowsbuff")) { var target = TargetSelector.GetTarget(300, DamageType.Mixed, Game.CursorPos); if (target != null && player.Distance(target) <= 1500) { Q.Cast(); } } if (MenuValue.Combo.UseW && W.IsReady()) { var target = W.GetTarget(); if (target != null) { var pred = W.GetPrediction(target); if (pred.CanNext(W, MenuValue.General.WHitChance, false)) { W.Cast(pred.CastPosition); } } } if (MenuValue.Combo.UseE && E.IsReady()) { var Enemies = EntityManager.Heroes.Enemies; switch (MenuValue.Combo.ELogic) { case 0: { if (Enemies.Any(x => IsKillable(x, false))) { E.Cast(); } } break; case 1: { if (Math.Max(EntityManager.Heroes.Allies.Count(), Enemies.Count()) >= MenuValue.Combo.HeroCount) { if (Enemies.Any(x => IsKillable(x, false))) { E.Cast(); } } else { if (Enemies.Count(x => IsKillable(x, false)) < 2 && Enemies.Count(x => IsNearToKillable(x, true)) >= 1) { Orbwalker.ForcedTarget = Enemies.FirstOrDefault(x => IsNearToKillable(x, true)); } else if (Enemies.Any(x => IsKillable(x, x.IsUnderHisturret() && MenuValue.Combo.SmartE))) { E.Cast(); } } } break; case 2: { if (Enemies.Any(x => GetECount(x) >= MenuValue.Combo.BuffCount)) { E.Cast(); } } break; case 3: { if (Enemies.Count(x => GetECount(x) >= MenuValue.Combo.BuffCount) >= MenuValue.Combo.HeroCount) { E.Cast(); } } break; default: { throw new ArgumentOutOfRangeException(); } } } if (MenuValue.Combo.UseR && R.IsReady()) { AIHeroClient[] entities = EntityManager.Heroes.Enemies.Where(new Func <AIHeroClient, bool>(R.CanCast)).ToArray(); Spell.Skillshot.BestPosition castPos = R.GetBestLinearCastPosition(entities); if (castPos.CastPosition != Vector3.Zero && castPos.HitNumber >= MenuValue.Combo.RHit) { Player.CastSpell(SpellSlot.R); } var target = R.GetTarget(); if (target != null && !IsKillable(target, true) && MenuValue.Combo.UseROut && !player.IsInAutoAttackRange(target)) { if (target.TotalShieldHealth() <= player.GetAutoAttackDamage(target, true) * Math.Pow(player.AttackDelay, -1) + (E.IsReady() ? EDamage(target, GetECount(target) + (int)Math.Pow(player.AttackDelay, -1)) : 0)) { Player.CastSpell(SpellSlot.R); } } } }
public static int EHitNumber(this Spell.Skillshot.BestPosition self, List <Obj_AI_Base> enemies) { return(enemies.Count(a => self.CastPosition.IsInRange(a.Position(250), Program.barrelRadius))); }