private static void Dash_OnDash(Obj_AI_Base sender, EloBuddy.SDK.Events.Dash.DashEventArgs e) { var hero = sender as AIHeroClient; if (hero != null && hero.IsValid) { if (!DetectedDashes.ContainsKey(hero.NetworkId)) { DetectedDashes.Add(hero.NetworkId, new DashArgs()); } var path = new List<Vector2> { hero.ServerPosition.ToVector2() }; if(e.Path != null) { path.AddRange(e.Path.ToList()); } DetectedDashes[hero.NetworkId] = new DashArgs { StartTick = (int)((Game.Time * 1000) - (Game.Ping / 2)), Speed = e.Speed, StartPos = hero.ServerPosition.To2D(), Unit = sender, Path = path, EndPos = DetectedDashes[hero.NetworkId].Path.Last(), EndTick = DetectedDashes[hero.NetworkId].StartTick + (int) (1000 * (DetectedDashes[hero.NetworkId].EndPos.Distance( DetectedDashes[hero.NetworkId].StartPos) / DetectedDashes[hero.NetworkId].Speed)), Duration = DetectedDashes[hero.NetworkId].EndTick - DetectedDashes[hero.NetworkId].StartTick }; } }
private static void Teleport_OnTeleport(Obj_AI_Base sender, EloBuddy.SDK.Events.Teleport.TeleportEventArgs args) { if (sender.NetworkId==p.NetworkId && args.Type == TeleportType.Recall) { recalling = args.Status == TeleportStatus.Start; } }
public static void AddRTracker(EloBuddy.Champion hero, string rObjectName, int timeToWait) { if (EntityManager.Heroes.Enemies.Any(h => h.Hero == hero)) { GameObject rObject = null; var rObjectTime = 0; var allyCastedR = false; Game.OnTick += delegate { if (SpellSlot.E.IsReady()) { if (rObject != null) { if (rObjectTime > 0 && Core.GameTickCount - rObjectTime >= timeToWait && Core.GameTickCount - rObjectTime <= 4000) { if (MenuManager.GetSubMenu("Automatic").CheckBox("E.Spells") || Combo.IsActive) { SpellManager.E.Cast(rObject.Position); } } } } }; Obj_AI_Base.OnProcessSpellCast += delegate (Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { var senderHero = sender as AIHeroClient; if (senderHero != null && senderHero.IsAlly && senderHero.Hero == hero) { if (args.Slot == SpellSlot.R) { allyCastedR = true; Core.DelayAction(delegate { allyCastedR = false; }, 10000); } } }; GameObject.OnCreate += delegate (GameObject sender, EventArgs args) { if (sender.Name.Equals(rObjectName) && !allyCastedR) { rObject = sender; rObjectTime = Core.GameTickCount; Core.DelayAction(delegate { rObject = null; rObjectTime = 0; }, 5200); } }; GameObject.OnDelete += delegate (GameObject sender, EventArgs args) { if (rObject != null && rObject.IdEquals(sender)) { //rObject = null; //rObjectTime = 0; } }; } }
/// <summary> /// Get total damge using the custom values provided by you in the spellmanager /// </summary> /// <param name="target"></param> /// <returns></returns> public static float GetTotalDamage(this Obj_AI_Base target) { var slots = new[] {SpellSlot.Q, SpellSlot.W, SpellSlot.E, SpellSlot.R}; var dmg = Player.Spells.Where(s => slots.Contains(s.Slot)).Sum(s => target.GetDamage(s.Slot)); dmg += Orbwalker.CanAutoAttack ? Player.Instance.GetAutoAttackDamage(target) : 0f; return dmg; }
private static void Gapcloser_OnGapCloser(AIHeroClient sender, EloBuddy.SDK.Events.Gapcloser.GapcloserEventArgs e) { if (sender == null || sender.IsAlly) return; if ((e.End.Distance(Variables._Player) <= 70) && Manager.MenuManager.GapcloseE && Manager.SpellManager.E.IsReady()) { Manager.SpellManager.E.Cast(sender); } if ((e.End.Distance(Variables._Player) <= 70) && Manager.MenuManager.GapcloseQ && Manager.SpellManager.Q.IsReady()) { var QPos = e.End.Extend(Variables._Player.Position, Manager.SpellManager.Q.Range); Player.CastSpell(SpellSlot.Q, QPos.To3D()); } }
private void FleeMode(EkkoCore core, EloBuddy.AIHeroClient target, bool useQ, bool useE, bool useW) { this.CastEOut(target, core); if (useQ && core.spells.Q.IsInRange(target)) { var predQ = core.spells.Q.GetPrediction(target); if (predQ.HitChance >= HitChance.High) { core.spells.Q.Cast(predQ.CastPosition); } } if (useW && core.spells.W.IsInRange(Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping).To3D())) { var pos = Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping); core.spells.Q.Cast(pos.To3D()); } }
internal void OnGapCloser(EloBuddy.AIHeroClient sender, EloBuddy.SDK.Events.Gapcloser.GapcloserEventArgs args ,EkkoCore core) { if (sender == null || sender.IsAlly ) return; var Gapcloser = core._menu.MiscMenu["MG"].Cast<CheckBox>().CurrentValue; if (Gapcloser != false) { if (sender.IsAttackingPlayer) { core.spells.W.Cast(core.Player.Position); this.CastEOut(sender, core); var predQ = core.spells.Q.GetPrediction(sender); if (predQ.HitChance >= HitChance.High) { core.spells.Q.Cast(predQ.CastPosition); } } } }
public static void Interrupt(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs e) { if (!MenuManager.MiscMenu["InterruptE"].Cast<CheckBox>().CurrentValue) return; var dangerLevel = new[] { DangerLevel.Low, DangerLevel.Medium, DangerLevel.High, }[MenuManager.MiscMenu["dangerLevel"].Cast<Slider>().CurrentValue - 1]; if (dangerLevel == DangerLevel.Medium && e.DangerLevel.HasFlag(DangerLevel.High) || dangerLevel == DangerLevel.Low && e.DangerLevel.HasFlag(DangerLevel.High) && e.DangerLevel.HasFlag(DangerLevel.Medium)) return; if (Extensions.IsValidTarget(e.Sender)) { Program.E.Cast(e.Sender); } }
private static void Obj_AI_Hero_OnProcessSpellCast(EloBuddy.Obj_AI_Base sender, EloBuddy.GameObjectProcessSpellCastEventArgs args) { if (sender.IsEnemy) { if (Player != null && spells[Spells.R].IsReady()) { if ((!(sender is EloBuddy.AIHeroClient) || args.SData.IsAutoAttack()) && args.Target != null && args.Target.NetworkId == Player.NetworkId) { incomingDamage.Add( Player.ServerPosition.LSDistance(sender.ServerPosition) / args.SData.MissileSpeed + EloBuddy.Game.Time, (float)sender.LSGetAutoAttackDamage(Player)); } else if (sender is EloBuddy.AIHeroClient) { var attacker = (EloBuddy.AIHeroClient)sender; var slot = attacker.GetSpellSlot(args.SData.Name); if (slot != EloBuddy.SpellSlot.Unknown) { if (slot == attacker.GetSpellSlot("SummonerDot") && args.Target != null && args.Target.NetworkId == Player.NetworkId) { instantDamage.Add( EloBuddy.Game.Time + 2, (float)attacker.GetSummonerSpellDamage(Player, LeagueSharp.Common.Damage.SummonerSpell.Ignite)); } else if (slot.HasFlag(EloBuddy.SpellSlot.Q | EloBuddy.SpellSlot.W | EloBuddy.SpellSlot.E | EloBuddy.SpellSlot.R) && ((args.Target != null && args.Target.NetworkId == Player.NetworkId) || args.End.LSDistance(Player.ServerPosition) < Math.Pow(args.SData.LineWidth, 2))) { instantDamage.Add(EloBuddy.Game.Time + 2, (float)attacker.LSGetSpellDamage(Player, slot)); } } } } } if (sender.IsMe) { if (args.SData.Name.Equals("EkkoE", StringComparison.InvariantCultureIgnoreCase)) { LeagueSharp.Common.Utility.DelayAction.Add(250, EloBuddy.SDK.Orbwalker.ResetAutoAttack); } } }
private static float IgniteDamage(EloBuddy.AIHeroClient target) { if (ignite == EloBuddy.SpellSlot.Unknown || Player.Spellbook.CanUseSpell(ignite) != EloBuddy.SpellState.Ready) { return 0f; } return (float)Player.GetSummonerSpellDamage(target, LeagueSharp.Common.Damage.SummonerSpell.Ignite); }
public static int getSliderItem(EloBuddy.SDK.Menu.Menu m, string item) { return m[item].Cast<Slider>().CurrentValue; }
public static bool getCheckBoxItem(EloBuddy.SDK.Menu.Menu m, string item) { return m[item].Cast<CheckBox>().CurrentValue; }
private void handeQ(AIHeroClient target, EloBuddy.SDK.Enumerations.HitChance hitChance) { if (player.LSDistance(target) <= Orbwalking.GetRealAutoAttackRange(target) && !Orbwalker.CanAutoAttack && target.GetBuffCount("TahmKenchPDebuffCounter") != 2) { Q.CastIfHitchanceEquals(target, hitChance, getCheckBoxItem(config, "packets")); } else if (player.LSDistance(target) > Orbwalking.GetRealAutoAttackRange(target)) { Q.CastIfHitchanceEquals(target, hitChance, getCheckBoxItem(config, "packets")); } }
private bool IsKillable(EloBuddy.AIHeroClient hero) { return EloBuddy.ObjectManager.Player.GetAutoAttackDamage(hero) * 2 < hero.Health; }
private bool IsInvulnerable(EloBuddy.AIHeroClient target) { return target.HasBuffOfType(EloBuddy.BuffType.SpellShield) || target.HasBuffOfType(EloBuddy.BuffType.SpellImmunity); }
private bool IsCondemnable(EloBuddy.AIHeroClient hero) { if (!hero.LSIsValidTarget(550f) || hero.HasBuffOfType(EloBuddy.BuffType.SpellShield) || hero.HasBuffOfType(EloBuddy.BuffType.SpellImmunity) || hero.IsDashing()) return false; //values for pred calc pP = player position; p = enemy position; pD = push distance var pP = EloBuddy.ObjectManager.Player.ServerPosition; var p = hero.ServerPosition; var pD = EPushDistanceSlider; var mode = EModeStringList; if (mode == 1 && (IsCollisionable(p.LSExtend(pP, -pD)) || IsCollisionable(p.LSExtend(pP, -pD / 2f)) || IsCollisionable(p.LSExtend(pP, -pD / 3f)))) { if (!hero.CanMove) return true; var enemiesCount = EloBuddy.ObjectManager.Player.CountEnemyHeroesInRange(1200); if (enemiesCount > 1 && enemiesCount <= 3) { var prediction = E.GetPrediction(hero); for (var i = 15; i < pD; i += 75) { if (i > pD) { var lastPosFlags = EloBuddy.NavMesh.GetCollisionFlags( prediction.UnitPosition.ToVector2() .Extend( pP.ToVector2(), -pD) .ToVector3()); if (lastPosFlags.HasFlag(EloBuddy.CollisionFlags.Wall) || lastPosFlags.HasFlag(EloBuddy.CollisionFlags.Building)) { return true; } return false; } var posFlags = EloBuddy.NavMesh.GetCollisionFlags( prediction.UnitPosition.ToVector2() .Extend( pP.ToVector2(), -i) .ToVector3()); if (posFlags.HasFlag(EloBuddy.CollisionFlags.Wall) || posFlags.HasFlag(EloBuddy.CollisionFlags.Building)) { return true; } } return false; } else { var hitchance = EHitchanceSlider; var angle = 0.20 * hitchance; const float travelDistance = 0.5f; var alpha = new Vector2((float)(p.X + travelDistance * Math.Cos(Math.PI / 180 * angle)), (float)(p.X + travelDistance * Math.Sin(Math.PI / 180 * angle))); var beta = new Vector2((float)(p.X - travelDistance * Math.Cos(Math.PI / 180 * angle)), (float)(p.X - travelDistance * Math.Sin(Math.PI / 180 * angle))); for (var i = 15; i < pD; i += 100) { if (i > pD) return false; if (IsCollisionable(pP.ToVector2().Extend(alpha, i) .ToVector3()) && IsCollisionable(pP.ToVector2().Extend(beta, i).ToVector3())) return true; } return false; } } if (mode == 2 && (IsCollisionable(p.LSExtend(pP, -pD)) || IsCollisionable(p.LSExtend(pP, -pD / 2f)) || IsCollisionable(p.LSExtend(pP, -pD / 3f)))) { if (!hero.CanMove || (hero.Spellbook.IsAutoAttacking)) return true; var hitchance = EHitchanceSlider; var angle = 0.20 * hitchance; const float travelDistance = 0.5f; var alpha = new Vector2((float)(p.X + travelDistance * Math.Cos(Math.PI / 180 * angle)), (float)(p.X + travelDistance * Math.Sin(Math.PI / 180 * angle))); var beta = new Vector2((float)(p.X - travelDistance * Math.Cos(Math.PI / 180 * angle)), (float)(p.X - travelDistance * Math.Sin(Math.PI / 180 * angle))); for (var i = 15; i < pD; i += 100) { if (i > pD) { return IsCollisionable(alpha.Extend(pP.ToVector2(), -pD) .ToVector3()) && IsCollisionable(beta.Extend(pP.ToVector2(), -pD).ToVector3()); } if (IsCollisionable(alpha.Extend(pP.ToVector2(), -i) .ToVector3()) && IsCollisionable(beta.Extend(pP.ToVector2(), -i).ToVector3())) return true; } return false; } if (mode == 9) { if (!hero.CanMove || (hero.Spellbook.IsAutoAttacking)) return true; var hitchance = EHitchanceSlider; var angle = 0.20 * hitchance; const float travelDistance = 0.5f; var alpha = new Vector2((float)(p.X + travelDistance * Math.Cos(Math.PI / 180 * angle)), (float)(p.X + travelDistance * Math.Sin(Math.PI / 180 * angle))); var beta = new Vector2((float)(p.X - travelDistance * Math.Cos(Math.PI / 180 * angle)), (float)(p.X - travelDistance * Math.Sin(Math.PI / 180 * angle))); for (var i = 15; i < pD; i += 100) { if (IsCollisionable(pP.ToVector2().Extend(alpha, i) .ToVector3()) || IsCollisionable(pP.ToVector2().Extend(beta, i).ToVector3())) return true; } return false; } if (mode == 3) { var prediction = E.GetPrediction(hero); return EloBuddy.NavMesh.GetCollisionFlags( prediction.UnitPosition.ToVector2() .Extend( pP.ToVector2(), -pD) .ToVector3()).HasFlag(EloBuddy.CollisionFlags.Wall) || EloBuddy.NavMesh.GetCollisionFlags( prediction.UnitPosition.ToVector2() .Extend( pP.ToVector2(), -pD / 2f) .ToVector3()).HasFlag(EloBuddy.CollisionFlags.Wall); } if (mode == 4) { var prediction = E.GetPrediction(hero); for (var i = 15; i < pD; i += 100) { if (i > pD) return false; var posCF = EloBuddy.NavMesh.GetCollisionFlags( prediction.UnitPosition.ToVector2() .Extend( pP.ToVector2(), -i) .ToVector3()); if (posCF.HasFlag(EloBuddy.CollisionFlags.Wall) || posCF.HasFlag(EloBuddy.CollisionFlags.Building)) { return true; } } return false; } if (mode == 5) { var prediction = E.GetPrediction(hero); for (var i = 15; i < pD; i += 75) { var posCF = EloBuddy.NavMesh.GetCollisionFlags( prediction.UnitPosition.ToVector2() .Extend( pP.ToVector2(), -i) .ToVector3()); if (posCF.HasFlag(EloBuddy.CollisionFlags.Wall) || posCF.HasFlag(EloBuddy.CollisionFlags.Building)) { return true; } } return false; } if (mode == 6) { var prediction = E.GetPrediction(hero); for (var i = 15; i < pD; i += (int)hero.BoundingRadius) //:frosty: { var posCF = EloBuddy.NavMesh.GetCollisionFlags( prediction.UnitPosition.ToVector2() .Extend( pP.ToVector2(), -i) .ToVector3()); if (posCF.HasFlag(EloBuddy.CollisionFlags.Wall) || posCF.HasFlag(EloBuddy.CollisionFlags.Building)) { return true; } } return false; } if (mode == 7) { var prediction = E.GetPrediction(hero); for (var i = 15; i < pD; i += 75) { var posCF = EloBuddy.NavMesh.GetCollisionFlags( prediction.UnitPosition.ToVector2() .Extend( pP.ToVector2(), -i) .ToVector3()); if (posCF.HasFlag(EloBuddy.CollisionFlags.Wall) || posCF.HasFlag(EloBuddy.CollisionFlags.Building)) { return true; } } return false; } if (mode == 8 && (IsCollisionable(p.LSExtend(pP, -pD)) || IsCollisionable(p.LSExtend(pP, -pD / 2f)) || IsCollisionable(p.LSExtend(pP, -pD / 3f)))) { return true; } return false; }
private void Gapcloser_OnGapcloser(AIHeroClient sender, EloBuddy.SDK.Events.Gapcloser.GapcloserEventArgs e) { if (getCheckBoxItem(gapCloser, "antiGap") && e.Sender.IsHPBarRendered && e.Sender.IsVisible) { if (e.Sender.LSIsValidTarget(_q.Range)) if (_q.IsReady()) _q.CastOnUnit(e.Sender); if (_w.IsReady()) _w.Cast(); if (e.End.LSDistance(ObjectManager.Player.Position) <= 300) if (_r.IsReady()) _r.Cast(ObjectManager.Player.Position); } }
private bool IsMinionCondemnable(EloBuddy.Obj_AI_Minion minion) { return GameObjects.JungleLarge.Any(m => minion.NetworkId == m.NetworkId) && EloBuddy.NavMesh.GetCollisionFlags( minion.Position.ToVector2() .Extend( EloBuddy.ObjectManager.Player.Position.ToVector2(), -400) .ToVector3()).HasFlag(EloBuddy.CollisionFlags.Wall) || EloBuddy.NavMesh.GetCollisionFlags( minion.Position.ToVector2() .Extend( EloBuddy.ObjectManager.Player.Position.ToVector2(), -200) .ToVector3()).HasFlag(EloBuddy.CollisionFlags.Wall); }
public static int getBoxItem(EloBuddy.SDK.Menu.Menu m, string item) { return m[item].Cast<ComboBox>().CurrentValue; }
private void Orbwalker_OnPostAttack(EloBuddy.AttackableUnit target, EventArgs args) { EloBuddy.SDK.Orbwalker.ForcedTarget = null; var possible2WTarget = ValidTargets.FirstOrDefault( h => h.ServerPosition.Distance(EloBuddy.ObjectManager.Player.ServerPosition) < 500 && h.GetBuffCount("vaynesilvereddebuff") == 2); if (!EloBuddy.SDK.Orbwalker.ActiveModesFlags.HasFlag(EloBuddy.SDK.Orbwalker.ActiveModes.Combo)) { if (possible2WTarget.LSIsValidTarget() && UseEAs3rdWProcBool && LeagueSharp.SDK.Core.Utils.MathUtils.GetWaypoints(possible2WTarget).LastOrDefault().Distance(EloBuddy.ObjectManager.Player.ServerPosition) < 1000) { if (EDelaySlider > 0) { var thisEnemy = possible2WTarget; LeagueSharp.SDK.Core.Utils.DelayAction.Add(EDelaySlider, () => E.CastOnUnit(thisEnemy)); return; } E.CastOnUnit(possible2WTarget); } } if (target is EloBuddy.AIHeroClient && UseQBool) { if (Q.IsReady()) { var tg = target as EloBuddy.AIHeroClient; if (tg != null) { var mode = QModeStringList; var tumblePosition = EloBuddy.Game.CursorPos; switch (mode) { case 1: tumblePosition = GetTumblePos(tg); break; default: tumblePosition = EloBuddy.Game.CursorPos; break; } if (tumblePosition.Distance(EloBuddy.ObjectManager.Player.Position) > 2000 || IsDangerousPosition(tumblePosition)) return; Q.Cast(tumblePosition); } } } if (target is EloBuddy.Obj_AI_Minion && EloBuddy.SDK.Orbwalker.ActiveModesFlags.HasFlag(EloBuddy.SDK.Orbwalker.ActiveModes.LaneClear)) { var tg = target as EloBuddy.Obj_AI_Minion; if (E.IsReady()) { if (this.IsMinionCondemnable(tg) && GameObjects.Jungle.Any(m => m.NetworkId == tg.NetworkId) && tg.LSIsValidTarget() && this.UseEJungleFarm) { if (this.EDelaySlider > 0) { var thisEnemy = tg; LeagueSharp.SDK.Core.Utils.DelayAction.Add(EDelaySlider, () => E.CastOnUnit(thisEnemy)); return; } E.CastOnUnit(tg); } } if (this.UseQFarm && this.Q.IsReady()) { if (tg.CharData.BaseSkinName.Contains("SRU_") && !tg.CharData.BaseSkinName.Contains("Mini") && tg.LSIsValidTarget() && !this.IsDangerousPosition(EloBuddy.Game.CursorPos)) { Q.Cast(EloBuddy.Game.CursorPos); } if (EloBuddy.ObjectManager.Player.UnderAllyTurret() && GameObjects.EnemyMinions.Count( m => m.Position.Distance(EloBuddy.ObjectManager.Player.Position) < 550 && m.Health < EloBuddy.ObjectManager.Player.GetAutoAttackDamage(m) && Health.GetPrediction(m, (int)(100 + (EloBuddy.Game.Ping / 2) + EloBuddy.ObjectManager.Player.AttackCastDelay * 1000)) > 3) > 1 && !this.IsDangerousPosition(EloBuddy.Game.CursorPos)) { Q.Cast(EloBuddy.Game.CursorPos); } if (EloBuddy.ObjectManager.Player.UnderAllyTurret()) { if (GameObjects.EnemyMinions.Count( m => m.Position.Distance(EloBuddy.ObjectManager.Player.Position) < 550 && m.Health < EloBuddy.ObjectManager.Player.GetAutoAttackDamage(m) + Q.GetDamage(m)) > 0 && !this.IsDangerousPosition(EloBuddy.Game.CursorPos)) { Q.Cast(EloBuddy.Game.CursorPos); } } } } if (UseQOnlyAt2WStacksBool && !EloBuddy.SDK.Orbwalker.ActiveModesFlags.HasFlag(EloBuddy.SDK.Orbwalker.ActiveModes.Combo) && possible2WTarget.LSIsValidTarget()) { Q.Cast(GetTumblePos(possible2WTarget)); } }
public static bool getKeyBindItem(EloBuddy.SDK.Menu.Menu m, string item) { return m[item].Cast<KeyBind>().CurrentValue; }
private void Orbwalker_OnPreAttack(EloBuddy.AttackableUnit target, EloBuddy.SDK.Orbwalker.PreAttackArgs args) { if (args.Process) { IsWindingUp = true; } else { IsWindingUp = false; } if (R.IsReady() && EloBuddy.SDK.Orbwalker.ActiveModesFlags.HasFlag(EloBuddy.SDK.Orbwalker.ActiveModes.Combo) && UseRBool && args.Target is EloBuddy.AIHeroClient && (!(args.Target as EloBuddy.AIHeroClient).IsUnderEnemyTurret() || EloBuddy.ObjectManager.Player.IsUnderEnemyTurret()) && EloBuddy.ObjectManager.Player.CountAllyHeroesInRange(800) >= EloBuddy.ObjectManager.Player.CountEnemyHeroesInRange(800)) { R.Cast(); } var possible2WTarget = ValidTargets.FirstOrDefault( h => h.ServerPosition.Distance(EloBuddy.ObjectManager.Player.ServerPosition) < 500 && h.GetBuffCount("vaynesilvereddebuff") == 2); if (TryToFocus2WBool && possible2WTarget.LSIsValidTarget()) { EloBuddy.SDK.Orbwalker.ForcedTarget = possible2WTarget; } if (EloBuddy.ObjectManager.Player.HasBuff("vaynetumblefade") && DontAttackWhileInvisibleAndMeelesNearBool) { if ( ValidTargets.Any( e => e.ServerPosition.Distance(EloBuddy.ObjectManager.Player.ServerPosition) < 350 && e.IsMelee)) { args.Process = false; } } var possibleTarget = EloBuddy.SDK.TargetSelector.GetTarget(615, EloBuddy.DamageType.Physical); if (possibleTarget != null && args.Target is EloBuddy.Obj_AI_Minion && UseQBonusOnEnemiesNotCS && EloBuddy.ObjectManager.Player.HasBuff("vaynetumblebonus")) { EloBuddy.SDK.Orbwalker.ForcedTarget = possibleTarget; args.Process = false; } var possibleNearbyMeleeChampion = ValidTargets.FirstOrDefault( e => e.ServerPosition.Distance(EloBuddy.ObjectManager.Player.ServerPosition) < 350); if (possibleNearbyMeleeChampion.LSIsValidTarget()) { if (Q.IsReady() && UseQBool) { var pos = EloBuddy.ObjectManager.Player.ServerPosition.LSExtend(possibleNearbyMeleeChampion.ServerPosition, -350); if (!IsDangerousPosition(pos)) { Q.Cast(pos); args.Process = false; } } if (UseEWhenMeleesNearBool && !Q.IsReady() && E.IsReady()) { var possibleMeleeChampionsGapclosers = from tuplet in CachedGapclosers where tuplet.Item1 == possibleNearbyMeleeChampion.CharData.BaseSkinName select tuplet.Item2; if (possibleMeleeChampionsGapclosers.FirstOrDefault() != null) { if ( possibleMeleeChampionsGapclosers.Any( gapcloserEntry => possibleNearbyMeleeChampion.Spellbook.GetSpell(gapcloserEntry.Slot).IsReady())) { return; } } if ( LeagueSharp.SDK.Core.Utils.MathUtils.GetWaypoints(possibleNearbyMeleeChampion) .LastOrDefault() .Distance(EloBuddy.ObjectManager.Player.ServerPosition) < possibleNearbyMeleeChampion.AttackRange) { if (EDelaySlider > 0) { var thisEnemy = possibleNearbyMeleeChampion; LeagueSharp.SDK.Core.Utils.DelayAction.Add(EDelaySlider, () => E.CastOnUnit(thisEnemy)); return; } E.CastOnUnit(possibleNearbyMeleeChampion); } } } }
internal void CastWE(Obj_AI_Base unit, Vector2 unitPosition, int minTargets = 0, EloBuddy.SDK.Enumerations.HitChance hc = EloBuddy.SDK.Enumerations.HitChance.Medium) { var points = new List<Vector2>(); var hitBoxes = new List<int>(); Vector2 startPoint = Khazix.ServerPosition.LSTo2D(); Vector2 originalDirection = W.Range * (unitPosition - startPoint).Normalized(); foreach (AIHeroClient enemy in HeroManager.Enemies) { if (enemy.LSIsValidTarget() && enemy.NetworkId != unit.NetworkId) { var pos = WE.GetPrediction(enemy); if (pos.HitChance >= hc) { points.Add(pos.UnitPosition.LSTo2D()); hitBoxes.Add((int)enemy.BoundingRadius + 275); } } } var posiblePositions = new List<Vector2>(); for (int i = 0; i < 3; i++) { if (i == 0) posiblePositions.Add(unitPosition + originalDirection.Rotated(0)); if (i == 1) posiblePositions.Add(startPoint + originalDirection.Rotated(Wangle)); if (i == 2) posiblePositions.Add(startPoint + originalDirection.Rotated(-Wangle)); } if (startPoint.LSDistance(unitPosition) < 900) { for (int i = 0; i < 3; i++) { Vector2 pos = posiblePositions[i]; Vector2 direction = (pos - startPoint).Normalized().Perpendicular(); float k = (2 / 3 * (unit.BoundingRadius + W.Width)); posiblePositions.Add(startPoint - k * direction); posiblePositions.Add(startPoint + k * direction); } } var bestPosition = new Vector2(); int bestHit = -1; foreach (Vector2 position in posiblePositions) { int hits = CountHits(position, points, hitBoxes); if (hits > bestHit) { bestPosition = position; bestHit = hits; } } if (bestHit + 1 <= minTargets) return; W.Cast(bestPosition.To3D(), false); }
private static void Gapcloser_OnGapcloser(AIHeroClient sender, EloBuddy.SDK.Events.Gapcloser.GapcloserEventArgs e) { if (getCheckBoxItem(misc, "miscGapcloser") && W.IsInRange(e.End) && sender.IsEnemy) { GapCloserPos = e.End; if (LeagueSharp.Common.Geometry.LSDistance(e.Start, e.End) > e.Sender.Spellbook.GetSpell(e.Slot).SData.CastRangeDisplayOverride && e.Sender.Spellbook.GetSpell(e.Slot).SData.CastRangeDisplayOverride > 100) { GapCloserPos = LeagueSharp.Common.Geometry.LSExtend(e.Start, e.End, e.Sender.Spellbook.GetSpell(e.Slot).SData.CastRangeDisplayOverride); } W.Cast(GapCloserPos.LSTo2D(), true); } }
private static int CountPassive(EloBuddy.Obj_AI_Base target) { var ekkoPassive = target.Buffs.FirstOrDefault(x => x.Name.Equals("EkkoStacks", StringComparison.InvariantCultureIgnoreCase)); if (ekkoPassive != null) { return ekkoPassive.Count; } return 0; }
private static void Interrupter_OnInterruptableSpell(Obj_AI_Base sender, EloBuddy.SDK.Events.Interrupter.InterruptableSpellEventArgs e) { if (sender.IsAlly || sender.IsMe) { return; } if (e.DangerLevel >= DangerLevel.High) { var useW = getCheckBoxItem(misc, "wInterrupt"); var useR = getCheckBoxItem(misc, "rInterrupt"); if (useW && W.IsReady() && sender.LSIsValidTarget(W.Range) && (Game.Time + 1.5 + W.Delay) >= e.EndTime) { if (W.Cast(sender) == LeagueSharp.Common.Spell.CastStates.SuccessfullyCasted) return; } else if (useR && sender.LSIsValidTarget(R.Range) && R.Instance.Name == "ViktorChaosStorm") { R.Cast(sender); } } }
private static void Obj_AI_Base_OnDelete(EloBuddy.GameObject obj, EventArgs args) { var particle = obj as EloBuddy.Obj_GeneralParticleEmitter; if (particle != null) { if (particle.Name.Equals("Ekko_Base_R_TrailEnd.troy")) { Troy = null; } } }
private static void OnEnemyGapcloser(AIHeroClient sender, EloBuddy.SDK.Events.Gapcloser.GapcloserEventArgs e) { if (sender.IsAlly || e.Sender.IsAlly) { return; } if (gapcloser) { if (E.IsReady()) { if (e.Sender.LSIsValidTarget(E.Range)) { E.Cast(e.Sender); } } } }
public static float GetComboDamage(EloBuddy.Obj_AI_Base enemy) { float damage = 0; if (spells[Spells.Q].IsReady()) { damage += spells[Spells.Q].GetDamage(enemy); } if (spells[Spells.W].IsReady()) { damage += spells[Spells.W].GetDamage(enemy); } if (spells[Spells.E].IsReady()) { damage += spells[Spells.E].GetDamage(enemy); } if (spells[Spells.R].IsReady()) { damage += spells[Spells.R].GetDamage(enemy); } if (ignite == EloBuddy.SpellSlot.Unknown || Player.Spellbook.CanUseSpell(ignite) != EloBuddy.SpellState.Ready) { damage += (float)Player.GetSummonerSpellDamage(enemy, LeagueSharp.Common.Damage.SummonerSpell.Ignite); } return damage + 15 + (12 * Player.Level) + Player.FlatMagicDamageMod; }
private static void OnInterruptableTarget(Obj_AI_Base sender, EloBuddy.SDK.Events.Interrupter.InterruptableSpellEventArgs e) { if (interrupt) { if (E.IsReady()) { if (sender.LSIsValidTarget(E.Range)) { E.Cast(sender); } } } }