Ejemplo n.º 1
0
        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
                };

            }
        }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
 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;
             }
         };
     }
 }
Ejemplo n.º 4
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;
        }
Ejemplo n.º 5
0
        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());
            }
        }
Ejemplo n.º 6
0
 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());
     }
 }
Ejemplo n.º 7
0
 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);
             }
         }
     }
 }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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);
                }
            }
        }
Ejemplo n.º 10
0
 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);
 }
Ejemplo n.º 11
0
 public static int getSliderItem(EloBuddy.SDK.Menu.Menu m, string item)
 {
     return m[item].Cast<Slider>().CurrentValue;
 }
Ejemplo n.º 12
0
 public static bool getCheckBoxItem(EloBuddy.SDK.Menu.Menu m, string item)
 {
     return m[item].Cast<CheckBox>().CurrentValue;
 }
Ejemplo n.º 13
0
 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"));
     }
 }
Ejemplo n.º 14
0
 private bool IsKillable(EloBuddy.AIHeroClient hero)
 {
     return EloBuddy.ObjectManager.Player.GetAutoAttackDamage(hero) * 2 < hero.Health;
 }
Ejemplo n.º 15
0
 private bool IsInvulnerable(EloBuddy.AIHeroClient target)
 {
     return target.HasBuffOfType(EloBuddy.BuffType.SpellShield) || target.HasBuffOfType(EloBuddy.BuffType.SpellImmunity);
 }
Ejemplo n.º 16
0
        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;
        }
Ejemplo n.º 17
0
        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);
            }
        }
Ejemplo n.º 18
0
 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);
 }
Ejemplo n.º 19
0
 public static int getBoxItem(EloBuddy.SDK.Menu.Menu m, string item)
 {
     return m[item].Cast<ComboBox>().CurrentValue;
 }
Ejemplo n.º 20
0
 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));
     }
 }
Ejemplo n.º 21
0
 public static bool getKeyBindItem(EloBuddy.SDK.Menu.Menu m, string item)
 {
     return m[item].Cast<KeyBind>().CurrentValue;
 }
Ejemplo n.º 22
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 23
0
        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);
        }
Ejemplo n.º 24
0
 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);
     }
 }
Ejemplo n.º 25
0
        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;
        }
Ejemplo n.º 26
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);
                }
            }
        }
Ejemplo n.º 27
0
 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;
         }
     }
 }
Ejemplo n.º 28
0
 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);
             }
         }
     }
 }
Ejemplo n.º 29
0
        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;
        }
Ejemplo n.º 30
0
 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);
             }
         }
     }
 }