/// <summary> /// Gapcloser /// </summary> /// <param name="gapcloser"></param> #region GapCloser private static void OnGapCloser(ActiveGapcloser gapcloser) { if (!gapcloser.Sender.IsEnemy) { return; } var gap = GlobalManager.getCheckBoxItem(miscMenu, "miscMenu.qwgap"); if (!gap) { return; } if (Player.HasBuff("pyromania_particle")) { if (Q.IsReady() && Q.IsInRange(gapcloser.Start)) { Q.Cast(gapcloser.Start); } if (W.IsReady() && W.IsInRange(gapcloser.Start)) { W.Cast(gapcloser.Start); } } }
public static IEnumerable <Obj_AI_Base> GetMins(this LeagueSharp.Common.Spell spell, FarmMode farmMode, GameObjectTeam minionTeam, MinionType minionType = MinionType.All, MinionGroup minionGroup = MinionGroup.Alone, int minionCount = 1) { IEnumerable <Obj_AI_Base> list = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.LSIsValidTarget(spell.Range)); IEnumerable <Obj_AI_Base> mobs; if (farmMode == FarmMode.JungleClear) { mobs = list.Where(w => w.Team == minionTeam); if (minionType == MinionType.BigMobs) { IEnumerable <Obj_AI_Base> oMob = (from fMobs in mobs from fBigBoys in new[] { "SRU_Blue", "SRU_Gromp", "SRU_Murkwolf", "SRU_Razorbeak", "SRU_Red", "SRU_Krug", "SRU_Dragon", "SRU_Baron", "Sru_Crab" } where fBigBoys == fMobs.BaseSkinName select fMobs).AsEnumerable(); mobs = oMob; } } else { mobs = list; } var objAiBases = mobs as IList <Obj_AI_Base> ?? mobs.ToList(); List <Obj_AI_Base> m1 = objAiBases.ToList(); var locLine = spell.GetLineFarmLocation(m1); if (locLine.MinionsHit >= 3 && spell.IsInRange(locLine.Position.To3D())) { spell.Cast(locLine.Position); } var locCircular = spell.GetCircularFarmLocation(m1, spell.Width); if (locCircular.MinionsHit >= minionCount && spell.IsInRange(locCircular.Position.To3D())) { spell.Cast(locCircular.Position); } return(null); }
private static void Clear() { var minionObj = GetMinions(600, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth); if (!minionObj.Any() || HaveQ) { return; } if (getCheckBoxItem(clearMenu, "Q") && Q.IsReady() && !HaveW && (minionObj.Count(i => Q.IsInRange(i)) > 2 || minionObj.Any(i => i.MaxHealth >= 1200 && Q.IsInRange(i)) || !minionObj.Any(i => Player.IsInAutoAttackRange(i))) && Q.Cast()) { return; } if (getCheckBoxItem(clearMenu, "E") && E.IsReady() && Player.HealthPercent >= getSliderItem(clearMenu, "EHpA") && (!getCheckBoxItem(clearMenu, "EW") || HaveW)) { var obj = minionObj.FirstOrDefault(i => E.IsInRange(i) && i.Team == GameObjectTeam.Neutral); if (obj != null && E.CastOnUnit(obj)) { return; } } if (getCheckBoxItem(clearMenu, "W") && W.IsReady() && (minionObj.Count(i => Player.IsInAutoAttackRange(i)) > 2 || minionObj.Any(i => i.MaxHealth >= 1200 && Player.IsInAutoAttackRange(i)))) { W.Cast(); } }
private static void Clear() { if (getCheckBoxItem(clearMenu, "E") && E.IsReady()) { var minionObj = GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth); if (minionObj.Any()) { var pos = E.GetCircularFarmLocation(minionObj.Cast <Obj_AI_Base>().ToList()); if (pos.MinionsHit > 1) { if (E.Cast(pos.Position, getCheckBoxItem(miscMenu, "Packet"))) { if (getCheckBoxItem(clearMenu, "Q") && Q.IsReady()) { Q.Cast(pos.Position, getCheckBoxItem(miscMenu, "Packet")); } return; } } else { var obj = minionObj.FirstOrDefault(i => i.MaxHealth >= 1200); if (obj != null && E.Cast(obj, getCheckBoxItem(miscMenu, "Packet")).IsCasted()) { return; } } } } if (getCheckBoxItem(clearMenu, "Q") && Q.IsReady()) { var minionObj = GetMinions(Q2.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth) .Cast <Obj_AI_Base>() .ToList(); if (minionObj.Any() && (!getCheckBoxItem(clearMenu, "E") || !E.IsReady() || (E.IsReady() && E.GetCircularFarmLocation(minionObj).MinionsHit == 1))) { if (getCheckBoxItem(clearMenu, "E") && Flag.Where(i => minionObj.Count(a => Q2.WillHit(a, i.ServerPosition)) > 1) .Any(i => Q.Cast(i.ServerPosition, getCheckBoxItem(miscMenu, "Packet")))) { return; } var pos = Q.GetLineFarmLocation(minionObj.Where(i => Q.IsInRange(i)).ToList()); if (pos.MinionsHit > 0 && Q.Cast(pos.Position, getCheckBoxItem(miscMenu, "Packet"))) { return; } } } if (getCheckBoxItem(clearMenu, "W") && W.IsReady() && Player.HealthPercent < getSliderItem(clearMenu, "WHpU") && GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly).Any() && W.Cast(getCheckBoxItem(miscMenu, "Packet"))) { } }
public static Vector2 GetLineFarmMinions(this LeagueSharp.Common.Spell spell, int minionCount) { List <Obj_AI_Base> minions = MinionManager.GetMinions(ObjectManager.Player.Position, spell.Range); MinionManager.FarmLocation location = spell.GetLineFarmLocation(minions); if (location.MinionsHit >= minionCount && spell.IsInRange(location.Position.To3D())) { return(location.Position); } return(new Vector2(0, 0)); }
public static Vector2 Minions(Spell spell, MobTypes mobTypes = MobTypes.All, int minMobCount = 1) { var rangedMinionsE = LeagueSharp.Common.MinionManager.GetMinions( ObjectManager.Player.ServerPosition, Spells.E.Range); var minionsE = Spells.E.GetCircularFarmLocation(rangedMinionsE, spell.Range); if (minionsE.MinionsHit < minMobCount || !spell.IsInRange(minionsE.Position)) { return(new Vector2()); } return(minionsE.Position); }
public static Vector2 GetCircularFarmLocation(Spell spell, MobTypes mobTypes = MobTypes.All, int minMobCount = 1) { var cVector = new Vector2(); var rangedMinionsE = LeagueSharp.Common.MinionManager.GetMinions(ObjectManager.Player.ServerPosition, spell.Range); var minionsE = spell.GetCircularFarmLocation(rangedMinionsE, spell.Range); if (minionsE.MinionsHit > minMobCount && spell.IsInRange(minionsE.Position)) { cVector = minionsE.Position; } return(cVector); }
private static void JungleFarm() { var mobs = MinionManager.GetMinions( myHero.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Count > 0) { var mob = mobs[0]; if (Q.IsReady()) { Q.CastOnUnit(mob); } if (E.IsReady() && E.IsInRange(mob)) { E.Cast(); } } }
private static void OnDraw(EventArgs args) { var Target = TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (getCheckBoxItem(drawMenu, "Draw_Disabled")) { return; } if (getCheckBoxItem(drawMenu, "Qdraw")) { Render.Circle.DrawCircle(player.Position, Q.Range, Color.White, 3); } if (getCheckBoxItem(drawMenu, "Wdraw")) { Render.Circle.DrawCircle(player.Position, W.Range, Color.White, 3); } if (getCheckBoxItem(drawMenu, "Rdraw")) { Render.Circle.DrawCircle(player.Position, R.Range, Color.White, 3); } if (Target == null) { return; } if (getCheckBoxItem(drawMenu, "combodamage") && Q.IsInRange(Target)) { var Positions = GetLength(); Drawing.DrawLine ( new Vector2(Target.HPBarPosition.X + 10 + Positions[0] * 104, Target.HPBarPosition.Y + 20), new Vector2(Target.HPBarPosition.X + 10 + Positions[1] * 104, Target.HPBarPosition.Y + 20), 9, Color.Orange ); } }
public static void useRSmart() { var obj = (from enemy in HeroManager.Enemies.Where(i => R.IsInRange(i) && CanCastR(i)) let sub = enemy.GetEnemiesInRange(RWidth).Where(CanCastR).ToList() where (sub.Count > 1 && R.IsKillable(enemy)) || sub.Any(i => i.HealthPercent < YasuoSharp.smartR["useRHP"].Cast <Slider>().CurrentValue) || sub.Count >= YasuoSharp.smartR["useRHit"].Cast <Slider>().CurrentValue orderby sub.Count descending select enemy).ToList(); if (obj.Any()) { var target = !YasuoSharp.smartR["useRHitTime"].Cast <CheckBox>().CurrentValue ? obj.FirstOrDefault() : obj.Where(i => TimeLeftR(i) * 1000 < 150 + Game.Ping * 2).MinOrDefault(TimeLeftR); if (target != null && R.CastOnUnit(target)) { return; } } /* * float timeToLand = float.MaxValue; * List<AIHeroClient> enemInAir = getKockUpEnemies(ref timeToLand); * foreach (AIHeroClient enem in enemInAir) * { * int aroundAir = 0; * foreach (AIHeroClient enem2 in enemInAir) * { * if (Vector3.DistanceSquared(enem.ServerPosition, enem2.ServerPosition) < 400 * 400) * aroundAir++; * } * if (aroundAir >= YasuoSharp.smartR["useRHit"].Cast<Slider>().CurrentValue && timeToLand < 0.4f) * R.Cast(enem); * } */ }
public static Vector2 Minions(Spell spell, MobTypes mobTypes = MobTypes.All, int minMobCount = 1) { var rangedMinionsE = LeagueSharp.Common.MinionManager.GetMinions( ObjectManager.Player.ServerPosition, Spells.E.Range); var minionsE = Spells.E.GetCircularFarmLocation(rangedMinionsE, spell.Range); if (minionsE.MinionsHit < minMobCount || !spell.IsInRange(minionsE.Position)) { return new Vector2(); } return minionsE.Position; }
public static Vector2 GetCircularFarmLocation(Spell spell, MobTypes mobTypes = MobTypes.All, int minMobCount = 1) { var cVector = new Vector2(); var rangedMinionsE = LeagueSharp.Common.MinionManager.GetMinions(ObjectManager.Player.ServerPosition, spell.Range); var minionsE = spell.GetCircularFarmLocation(rangedMinionsE, spell.Range); if (minionsE.MinionsHit > minMobCount && spell.IsInRange(minionsE.Position)) { cVector = minionsE.Position; } return cVector; }
//Combo private static void Combo() { var useQ = (combo["useQ"].Cast <CheckBox>().CurrentValue); var useW = (combo["useW"].Cast <CheckBox>().CurrentValue); var useE = (combo["useE"].Cast <CheckBox>().CurrentValue); var useR = (combo["useR"].Cast <CheckBox>().CurrentValue); var m = TargetSelector.GetTarget(Q.Range, DamageType.Magical); var pred = Q.GetPrediction(m); if (!m.LSIsValidTarget()) { return; } if (Player.Mana > E.ManaCost + W.ManaCost + R.ManaCost) { if (useE && E.IsReady() && E.IsInRange(m)) { E.CastOnUnit(m); } if (useQ && Q.IsReady() && Player.Mana > Q.ManaCost && Q.IsInRange(m)) { if (pred.Hitchance >= HitChance.High) { Q.Cast(pred.CastPosition); } } if (useW && W.IsReady()) { W.Cast(m); } if (useR && R.IsReady() && m != null && E.IsInRange(m)) { R.CastOnUnit(m); } } else { if (useE && E.IsReady() && E.IsInRange(m)) { E.CastOnUnit(m); } if (useQ && Q.IsReady() && Player.Mana > Q.ManaCost && Q.IsInRange(m)) { if (pred.Hitchance >= HitChance.High) { Q.Cast(pred.CastPosition); } } if (useW && W.IsReady() && Player.Mana > W.ManaCost && W.IsInRange(m)) { W.Cast(m); } } if (combo["useIgniteInCombo"].Cast <CheckBox>().CurrentValue) { if (m.Health < Player.GetSummonerSpellDamage(m, LeagueSharp.Common.Damage.SummonerSpell.Ignite)) { Player.Spellbook.CastSpell(igniteSlot, m); } } }
private static void Unit_OnDash(Obj_AI_Base sender, Dash.DashItem args) { if (sender.IsEnemy && Player.LSDistance(args.EndPos) > Player.LSDistance(args.StartPos)) { if (E.IsInRange(args.StartPos)) { E.Cast(sender); } if (getCheckBoxItem(SpellConfig, "autoQ") && SpellQ.GetState() == QState.ThreshQ && Q.IsInRange(args.EndPos) && !E.IsInRange(args.EndPos) && Math.Abs(args.Duration - args.EndPos.LSDistance(sender) / Q.Speed * 1000) < 150) { List <Vector2> to = new List <Vector2>(); to.Add(args.EndPos); var QCollision = Q.GetCollision(Player.Position.LSTo2D(), to); if (QCollision == null || QCollision.Count == 0 || QCollision.All(a => !a.IsMinion)) { if (Q.Cast(args.EndPos)) { return; } } } } }
public static bool SpellPrediction(Spell spell, Obj_AI_Hero target,bool collisionable) { // var dist = ObjectManager.Player.Distance(target.Position); var pos1 = LeagueSharp.Common.Prediction.GetPrediction(target, dist / spell.Speed).UnitPosition; var e = pos1.Distance(target.GetWaypoints()[1].To3D()); pos1.Extend(target.GetWaypoints()[1].To3D(), -e); Render.Circle.DrawCircle(pos1, 10, System.Drawing.Color.BlueViolet, 2); // var point = PointsAroundTheTarget(target.Position, target.BoundingRadius + 50).FirstOrDefault(t => t.IsWall()); if (point.X != 0 && point.Y != 0 && point.Z != 0) { if (MinionCollideLine(ObjectManager.Player.Position, ExtendWallpos(target, point), spell,collisionable)) return false; Render.Circle.DrawCircle(ExtendWallpos(target, point), 10, System.Drawing.Color.Brown, 2); spell.Cast(ExtendWallpos(target, point)); return true; } else { var range = spell.Range; if (target.Position.Distance(ObjectManager.Player.Position) < target.GetWaypoints()[1].Distance(ObjectManager.Player.Position)) { range -= 100; } if (!spell.IsInRange(target, range)) return false; if (target.IsFacing(ObjectManager.Player) && target.Position.Distance(ObjectManager.Player.Position) > target.GetWaypoints()[1].Distance(ObjectManager.Player.Position)) { if (MinionCollideLine(ObjectManager.Player.Position, target.Position, spell,collisionable)) return false; spell.Cast(target.Position); return true; } // float speed = if (target.IsImmovable) // check for cc guys { if (MinionCollideLine(ObjectManager.Player.Position, target.Position, spell,collisionable)) return false; spell.Cast(target.Position); return true; } // if(target.IsChannelingImportantSpell()) if (target.IsWindingUp && !target.IsMelee()) { if (MinionCollideLine(ObjectManager.Player.Position, target.Position, spell,collisionable)) return false; spell.Cast(target.Position); return true; } if (target.Position.Distance(ObjectManager.Player.Position) <= 300) { CastToDirection( target, spell,collisionable); } else { var oldPos = target.GetWaypoints()[0].To3D(); var h = false; Utility.DelayAction.Add(Game.Ping + 1000, () => h = Next(target, oldPos, spell,collisionable)); return h; } } return false; }
public static bool SpellPrediction(Spell spell, Obj_AI_Hero target,bool collisionable) { // var dist = ObjectManager.Player.Distance(target.Position); var pos1 = LeagueSharp.Common.Prediction.GetPrediction(target, dist / spell.Speed).UnitPosition-40; var dister = target.Position.Extend(target.GetWaypoints()[1].To3D(), target.GetWaypoints()[1].To3D().Distance(target.Position) + 50); // var pos1 = LeagueSharp.Common.Prediction.GetPrediction(target, dist / spell.Speed).UnitPosition - 40; var wts = Drawing.WorldToScreen(target.Position); var wtsx = target.GetWaypoints()[1]; Drawing.DrawLine(wts[0], wts[1], wtsx[0], wtsx[1], 2f, System.Drawing.Color.Red); var e = pos1.Distance(target.GetWaypoints()[1].To3D()); pos1.Extend(target.GetWaypoints()[1].To3D(), -e); Render.Circle.DrawCircle(dister, 10, System.Drawing.Color.GreenYellow, 2); Render.Circle.DrawCircle(pos1, 10, System.Drawing.Color.BlueViolet, 2); // var point = PointsAroundTheTarget(target.Position, target.BoundingRadius + 50).FirstOrDefault(t => t.IsWall()); if (point.X != 0 && point.Y != 0 && point.Z != 0) { if (MinionCollideLine(ObjectManager.Player.Position, ExtendWallpos(target, point), spell,collisionable)) return false; Render.Circle.DrawCircle(ExtendWallpos(target, point), 10, System.Drawing.Color.Brown, 2); spell.Cast(ExtendWallpos(target, point)); return true; } else { var range = spell.Range; if (target.Position.Distance(ObjectManager.Player.Position) < target.GetWaypoints()[1].Distance(ObjectManager.Player.Position)) { range -= 100; } if (!spell.IsInRange(target, range)) return false; /*if (target.IsFacing(ObjectManager.Player) && target.Position.Distance(ObjectManager.Player.Position) > target.GetWaypoints()[1].Distance(ObjectManager.Player.Position)) { if (MinionCollideLine(ObjectManager.Player.Position, target.Position, spell,collisionable)) return false; { Game.PrintChat("Casteando por inface"); spell.Cast(target.Position); return true; } }*/ // code of dashes if (target.IsDashing()) { float timeforArrive=(target.Position.Distance(target.GetDashInfo().EndPos.To3D()))/target.GetDashInfo().Speed; float grabtime =( ObjectManager.Player.Position.Distance(target.GetDashInfo().EndPos.To3D()) / spell.Speed)+spell.Delay; if (timeforArrive<grabtime) { spell.Cast(target.GetDashInfo().EndPos); return true; } } /* if (target.IsImmovable) // check for cc guys { if (MinionCollideLine(ObjectManager.Player.Position, target.Position, spell,collisionable)) return false; spell.Cast(target.Position); return true; }*/ // if(target.IsChannelingImportantSpell()) if (target.IsWindingUp && !target.IsMelee()) { if (MinionCollideLine(ObjectManager.Player.Position, target.Position, spell,collisionable)) return false; spell.Cast(target.Position); return true; } if (target.Position.Distance(ObjectManager.Player.Position) <= 300) { CastToDirection( target, spell,collisionable); } else { var oldPos = target.GetWaypoints()[0].To3D(); var h = false; Utility.DelayAction.Add(Game.Ping + 1000, () => h = Next(target, oldPos, spell,collisionable)); return h; } } return false; }
public Obj_AI_Base getMinionsOnRange(Spell spell) { return ObjectManager.Get<Obj_AI_Base>().Where(x => spell.IsInRange(x)).MinOrDefault(x => x.Distance(Game.CursorPos)); }
private static void Combo() { var comboQ = getSliderItem(comboMenu, "comboQ"); var comboW = getCheckBoxItem(comboMenu, "comboW"); var comboE = getCheckBoxItem(comboMenu, "comboE"); var comboR = getSliderItem(comboMenu, "comboR"); if (comboQ > 1 && _spellQ.IsReady()) { if (_spellR.IsReady() && comboR > 0) //search unit that provides most targets hit by ult. prioritize hero target unit { var maxTargetsHit = 0; Obj_AI_Base unitMostTargetsHit = null; foreach ( var unit in ObjectManager.Get <Obj_AI_Base>() .Where( x => x.LSIsValidTarget(_spellQ.Range) && _spellQ.GetPrediction(x).HitChance >= EloBuddy.SDK.Enumerations.HitChance.High)) //causes troubles? { var targetsHit = unit.LSCountEnemiesInRange((int)_spellR.Range); //unitposition might not reflect where you land with Q if (targetsHit > maxTargetsHit || (unitMostTargetsHit != null && targetsHit >= maxTargetsHit && unit.Type == GameObjectType.AIHeroClient)) { maxTargetsHit = targetsHit; unitMostTargetsHit = unit; } } if (maxTargetsHit >= comboR) { CastQ(unitMostTargetsHit); } } Obj_AI_Base target = TargetSelector.GetTarget(_spellQ.Range, DamageType.Magical); if (target != null) { var pred = _spellQ.GetPrediction(target); if (comboQ == 2 || (comboQ == 3 && !Orbwalking.InAutoAttackRange(target)) && _spellQ.IsReady() && target.LSIsValidTarget() && pred.HitChance >= EloBuddy.SDK.Enumerations.HitChance.High) { _spellQ.Cast(pred.CastPosition); } else if (!target.CanMove && comboQ == 2 || comboQ == 3) { _spellQ.Cast(target); } } } if (comboW && _spellW.IsReady()) { var target = TargetSelector.GetTarget(_spellW.Range + 200, DamageType.Magical); if (target != null) { var enoughMana = GetManaPercent() >= getSliderItem(comboMenu, "comboWPercent"); if (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).ToggleState == 1) { if (ObjectManager.Player.LSDistance(target.ServerPosition) <= _spellW.Range && enoughMana) { _comboW = true; _spellW.Cast(); } } else if (!enoughMana) { RegulateWState(true); } } else { RegulateWState(); } } if (comboE && _spellE.IsReady()) { CastE(Helper.EnemyTeam.OrderBy(x => x.LSDistance(ObjectManager.Player)).FirstOrDefault(x => _spellE.IsInRange(x))); } }
private static void Farm(bool laneClear) { if (!menuFarm["EnabledFarm"].Cast<CheckBox>().CurrentValue) { return; } if (Player.ManaPercent < menuFarm["Lane.Mana"].Cast<Slider>().CurrentValue) { return; } if (!Orbwalker.CanMove) { return; } var rangedMinionsQ = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range + Q.Width + 30, MinionTypes.Ranged); var allMinionsQ = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range + Q.Width + 30); var rangedMinionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range + W.Width + 30, MinionTypes.Ranged); var allMinionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range + W.Width + 30); var useQi = menuFarm["UseQFarm"].Cast<ComboBox>().CurrentValue; var useWi = menuFarm["UseWFarm"].Cast<ComboBox>().CurrentValue; var useQ = (laneClear && (useQi == 1 || useQi == 2)) || (!laneClear && (useQi == 0 || useQi == 2)); var useW = (laneClear && (useWi == 1 || useWi == 2)) || (!laneClear && (useWi == 0 || useWi == 2)); if (useQ && Q.IsReady()) if (laneClear) { var fl1 = Q.GetCircularFarmLocation(rangedMinionsQ, Q.Width); var fl2 = Q.GetCircularFarmLocation(allMinionsQ, Q.Width); if (fl1.MinionsHit >= 3) { Q.Cast(fl1.Position); } else if (fl2.MinionsHit >= 2 || allMinionsQ.Count == 1) { Q.Cast(fl2.Position); } } else { foreach (var minion in allMinionsQ.Where(minion => !Orbwalking.InAutoAttackRange(minion) && minion.Health < 0.75 * Q.GetDamage(minion))) { Q.Cast(minion); } } if (useW && W.IsReady() && allMinionsW.Count > 3) { if (laneClear) { if (Player.Spellbook.GetSpell(SpellSlot.W).ToggleState == 1) { //WObject var gObjectPos = GetGrabableObjectPos(false); if (gObjectPos.LSTo2D().IsValid() && Utils.TickCount - W.LastCastAttemptT > Game.Ping + 150) { W.Cast(gObjectPos); } } else if (Player.Spellbook.GetSpell(SpellSlot.W).ToggleState != 1) { var fl1 = Q.GetCircularFarmLocation(rangedMinionsW, W.Width); var fl2 = Q.GetCircularFarmLocation(allMinionsW, W.Width); if (fl1.MinionsHit >= 3 && W.IsInRange(fl1.Position.To3D())) { W.Cast(fl1.Position); } else if (fl2.MinionsHit >= 1 && W.IsInRange(fl2.Position.To3D()) && fl1.MinionsHit <= 2) { W.Cast(fl2.Position); } } } } }
private static void Clear() { SmiteMob(); var minionObj = Helper.GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth) .Cast <Obj_AI_Base>() .ToList(); if (!minionObj.Any()) { return; } if (clearQ && Q.IsReady()) { var pos = Q.GetCircularFarmLocation(minionObj.Where(i => Q.IsInRange(i, Q.Range + Q.Width / 2)).ToList()); if (pos.MinionsHit > 1) { Q.Cast(pos.Position); return; } var obj = minionObj.FirstOrDefault(i => i.MaxHealth >= 1200); if (obj != null && Q.IsInRange(obj, Q.Range + Q2.Width / 2) && Q.IsReady()) { Q.Cast(obj); return; } } if (clearE && E.IsReady()) { var pos = E.GetLineFarmLocation(minionObj); if (pos.MinionsHit > 0) { E.Cast(pos.Position); return; } } if (clearW && W.IsReady()) { if (myHero.HealthPercent >= (WPriority ? 85 : ClearWHpU)) { if (!HaveWDmg) { W.Cast(); return; } } else if (HaveWDmg) { W.Cast(); return; } } if (Item) { var item = Hydra.IsReady() ? Hydra : Tiamat; if (item.IsReady() && (minionObj.Count(i => item.IsInRange(i)) > 2 || minionObj.Any(i => i.MaxHealth >= 1200 && i.Distance(myHero) < item.Range - 80))) { item.Cast(); } } }
public static bool SmiteCollision(Obj_AI_Hero Target, Spell Skill) { if (!SmiteReady()) return false; var ListCol = Skill.GetPrediction(Target).CollisionObjects.Where(i => IsValid(i, Skill.Range) && Skill.WillHit(i.Position, Target.Position, (int)i.BoundingRadius)); if (Skill.IsInRange(Target.Position) && ListCol.Count() == 1) { if (ListCol.First() is Obj_AI_Minion && CastSmite(ListCol.First())) { Skill.Cast(Target.Position); return true; } } return false; }
public override void ExecuteLaneClear() { List <Obj_AI_Base> laneMinions; var laneWValue = Program.laneclear["Lane.UseW"].Cast <ComboBox>().CurrentValue; if (laneWValue != 0 && W.IsReady()) { var totalAa = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65 + W.Range)) .Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa > laneWValue * 5) { W.Cast(); } } var laneQValue = Program.laneclear["Lane.UseQ"].Cast <ComboBox>().CurrentValue; if (laneQValue != 0 && W.IsReady()) { if (laneQValue == 1 || laneQValue == 3) { var vMinions = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range); foreach (var minions in vMinions .Where(minions => minions.Health < ObjectManager.Player.LSGetSpellDamage(minions, SpellSlot.Q)) .Where( m => m.LSIsValidTarget(Q.Range) && m.LSDistance(ObjectManager.Player.Position) > GetRealAARange) ) { var qP = Q.GetPrediction(minions); var hit = qP.CastPosition.LSExtend(ObjectManager.Player.Position, -140); if (qP.HitChance >= EloBuddy.SDK.Enumerations.HitChance.High) { Q.Cast(hit); } } } if (laneQValue == 2 || laneQValue == 3) { var minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range * 1); foreach (var n in from n in minions let xH = HealthPrediction.GetHealthPrediction(n, (int)(ObjectManager.Player.AttackCastDelay * 1000), Game.Ping / 2 + 100) where xH < 0 where n.Health < Q.GetDamage(n) select n) { Q.Cast(n); } } } var laneEValue = Program.laneclear["Lane.UseE"].Cast <ComboBox>().CurrentValue; if (laneEValue != 0 && E.IsReady()) { laneMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range, MinionTypes.All); if (laneMinions != null) { var locE = E.GetLineFarmLocation(laneMinions); if (laneMinions.Count == laneMinions.Count(m => ObjectManager.Player.LSDistance(m) < E.Range) && locE.MinionsHit > laneEValue && locE.Position.IsValid()) { E.Cast(locE.Position); } } } var laneRValue = Program.laneclear["Lane.UseR"].Cast <ComboBox>().CurrentValue; if (laneRValue != 0 && R.IsReady() && UltiBuffStacks < Program.laneclear["Lane.UseRLim"].Cast <Slider>().CurrentValue) { switch (laneRValue) { case 1: { var vMinions = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range); foreach (var minions in vMinions .Where(minions => minions.Health < R.GetDamage(minions)) .Where( m => m.LSIsValidTarget(R.Range) && m.LSDistance(ObjectManager.Player.Position) > GetRealAARange) ) { R.Cast(minions); } break; } case 2: { laneMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, R.Range + R.Width + 30, MinionTypes.Ranged); if (laneMinions != null) { var locR = R.GetCircularFarmLocation(laneMinions, R.Width * 0.75f); if (locR.MinionsHit >= laneEValue && R.IsInRange(locR.Position.To3D())) { R.Cast(locR.Position); } } break; } } } }