Beispiel #1
0
        public override void OnUpdate(EventArgs args)
        {
            base.OnUpdate(args);

            if (E.IsReady())
            {
                this.ELogic();
            }
            if (Orbwalker.ActiveMode == OrbwalkingMode.Combo && Q.IsReady() && Orbwalker.CanMove)
            {
                foreach (var enemy in ValidTargets.Where(e => e.Distance(ObjectManager.Player) < 900))
                {
                    var pred = Q.GetPrediction(enemy);
                    if (pred.Hitchance >= HitChance.High && !pred.CollisionObjects.Any())
                    {
                        Q.Cast(pred.UnitPosition);
                    }
                }
            }

            #region Orbwalk On Minions
            if (OrbwalkOnMinions && Orbwalker.ActiveMode == OrbwalkingMode.Combo && ValidTargets.Count(e => e.InAutoAttackRange()) == 0 && ObjectManager.Player.InventoryItems.Any(i => (int)i.Id == 3085))
            {
                var minion =
                    GameObjects.EnemyMinions.Where(m => m.InAutoAttackRange()).OrderBy(m => m.Health).FirstOrDefault();
                if (minion != null)
                {
                    EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, minion);
                }
            }
            #endregion Orbwalk On Minions
        }
Beispiel #2
0
        public override void OnUpdate(EventArgs args)
        {
            if (E.IsReady())
            {
                this.ELogic();
            }
            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && Q.IsReady() && Orbwalker.CanMove)
            {
                foreach (var enemy in ValidTargets.Where(e => e.Distance(ObjectManager.Player) < 900))
                {
                    var pred = Q.GetPrediction(enemy);
                    if (pred.Hitchance >= LeagueSharp.SDK.HitChance.High && !pred.CollisionObjects.Any())
                    {
                        Q.Cast(enemy);
                    }
                }
            }

            #region Orbwalk On Minions
            if (OrbwalkOnMinions && Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && ValidTargets.Count(e => e.IsInAutoAttackRange(ObjectManager.Player)) == 0)
            {
                var minion = GameObjects.EnemyMinions.Where(m => m.IsInAutoAttackRange(ObjectManager.Player)).OrderBy(m => m.Health).FirstOrDefault();
                if (minion != null)
                {
                    EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, minion);
                }
            }
            #endregion Orbwalk On Minions
        }
Beispiel #3
0
        public CSPlugin()
        {
            MainMenu = new Menu("challengerseries", ObjectManager.Player.ChampionName + " To The Challenger", true, ObjectManager.Player.ChampionName);
            CrossAssemblySettings = MainMenu.Add(new Menu("crossassemblysettings", "Challenger Utils: "));
            DrawEnemyWaypoints    =
                CrossAssemblySettings.Add(new MenuBool("drawenemywaypoints", "Draw Enemy Waypoints", true));
            PlayUrfThemeNextGame = CrossAssemblySettings.Add(new MenuBool("playsoundatstart", "Play URF Theme Next Game", true));
            DelayAction.Add(15000, () => Orbwalker.Enabled = true);
            Drawing.OnDraw += args =>
            {
                if (DrawEnemyWaypoints)
                {
                    foreach (
                        var e in
                        ValidTargets.Where(
                            en => en.Distance(ObjectManager.Player) < 5000))
                    {
                        var ip = Drawing.WorldToScreen(e.Position); //start pos

                        var wp = e.GetWaypoints();
                        var c  = wp.Count - 1;
                        if (wp.Count() <= 1)
                        {
                            break;
                        }

                        var w = Drawing.WorldToScreen(wp[c].ToVector3()); //endpos

                        Drawing.DrawLine(ip.X, ip.Y, w.X, w.Y, 2, Color.Red);
                        Drawing.DrawText(w.X, w.Y, Color.Red, e.CharData.BaseSkinName);
                    }
                }
            };
        }
Beispiel #4
0
        private void RLogic()
        {
            if (!UseRBool || !R.IsReady() || ObjectManager.Player.IsRecalling() || Orbwalker.ActiveMode == OrbwalkingMode.None) return;
            if (AlwaysSaveManaForWBool && ObjectManager.Player.Mana < GetRMana() + GetWMana()) return;
            var myPos = ObjectManager.Player.ServerPosition;
            foreach (
                var enemy in
                    ValidTargets.Where(h => h.Distance(myPos) < R.Range && h.HealthPercent < 25 && h.IsValidTarget()))
            {
                var prediction = R.GetPrediction(enemy, true);
                if ((int)prediction.Hitchance > (int)HitChance.Medium)
                {
                    R.Cast(prediction.UnitPosition);
                }
            }
            if (GetRStacks() >= MaxRStacksSlider.Value) return;
            if ((Orbwalker.ActiveMode != OrbwalkingMode.Combo && !UseRHarass)) return;

            foreach (var enemy in ValidTargets.Where(h => h.Distance(myPos) < R.Range && h.IsValidTarget() && h.HealthPercent < 35))
            {
                var dist = enemy.Distance(ObjectManager.Player.ServerPosition);
                if (Orbwalker.CanAttack && dist < 550) continue;
                var prediction = R.GetPrediction(enemy, true);
                if ((int) prediction.Hitchance > (int) HitChance.Medium)
                {
                    R.Cast(prediction.UnitPosition);
                }
            }
        }
Beispiel #5
0
        public override void OnDraw(EventArgs args)
        {
            base.OnDraw(args);
            base.W.Range = GetAttackRangeAfterWIsApplied();
            base.R.Range = GetRRange();
            if (DrawWRangeBool)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetAttackRangeAfterWIsApplied(), W.IsReady() || IsWActive() ? Color.LimeGreen : Color.Red);
            }
            if (DrawRRangeBool)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetRRange() + 25, R.IsReady() ? Color.LimeGreen : Color.Red);
            }
            if (Q.IsReady() && UseQBool && Orbwalker.ActiveMode == OrbwalkingMode.Combo && ObjectManager.Player.Mana > GetQMana() + GetWMana())
            {
                foreach (
                    var enemy in
                    ValidTargets.Where(t => t.Distance(ObjectManager.Player) < 800)
                    .OrderBy(e => e.Distance(ObjectManager.Player)))
                {
                    var prediction = Q.GetPrediction(enemy);
                    if ((int)prediction.Hitchance >= (int)HitChance.VeryHigh)
                    {
                        Q.Cast(prediction.UnitPosition);
                    }
                }
            }
            var attackrange = GetAttackRangeAfterWIsApplied();
            var target      = TargetSelector.GetTarget(attackrange, DamageType.Physical);

            if (IsWActive() && target != null && target.Distance(ObjectManager.Player) > attackrange - 150)
            {
                E.CastIfHitchanceMinimum(target, HitChance.Medium);
            }

            #region Humanizer
            if (_humanizer != null)
            {
                _attacksSoFar = 0;
            }
            else if (_attacksSoFar >= HumanizerMinAttacks.Value)
            {
                _humanizer = new Humanizer(HumanizerMovementTime.Value);
            }
            if (!IsWActive())
            {
                _humanizer    = null;
                _attacksSoFar = 0;
            }
            if (_humanizer != null && _humanizer.ShouldDestroy)
            {
                _humanizer = null;
            }
            Orbwalker.SetMovementState(CanMove());
            Orbwalker.SetAttackState(CanAttack());
            #endregion Humanizer
        }
Beispiel #6
0
 void QLogic(AttackableUnit target = null)
 {
     if (target != null)
     {
         if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
         {
             var hero = target as AIHeroClient;
             if (hero != null)
             {
                 if (hero.IsHPBarRendered)
                 {
                     var pred = Q.GetPrediction(hero);
                     if (pred.Hitchance >= LeagueSharp.SDK.HitChance.High)
                     {
                         Q.Cast(hero);
                         return;
                     }
                 }
             }
             else
             {
                 foreach (var tar in ValidTargets.Where(t => t.Distance(ObjectManager.Player) < 900))
                 {
                     if (ObjectManager.Player.ManaPercent > UseQManaSlider)
                     {
                         var pred = Q.GetPrediction(tar);
                         if (pred.Hitchance >= LeagueSharp.SDK.HitChance.High)
                         {
                             Q.Cast(hero);
                             return;
                         }
                     }
                 }
             }
         }
         if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
         {
             var minion = target as Obj_AI_Minion;
             if (minion != null && GetRendBuff(minion).Count >= UseQStackTransferMinStacksSlider &&
                 target.Health < Q.GetDamage(minion))
             {
                 foreach (var enemy in ValidTargets.Where(en => en.Distance(ObjectManager.Player) < 900))
                 {
                     var pred = Q.GetPrediction(enemy, false);
                     if (pred.Hitchance >= LeagueSharp.SDK.HitChance.High &&
                         pred.CollisionObjects.All(co => co is Obj_AI_Minion && co.Health < Q.GetDamage(co)) &&
                         pred.CollisionObjects.Any(m => m.NetworkId == target.NetworkId))
                     {
                         Q.Cast(enemy);
                     }
                 }
             }
         }
     }
 }
Beispiel #7
0
        public override void OnUpdate(EventArgs args)
        {
            base.OnUpdate(args);
            if (getCheckBoxItem(ComboMenu, "koggieusew"))
            {
                WLogic();
            }
            if (getCheckBoxItem(ComboMenu, "koggieuser"))
            {
                RLogic();
            }
            if (Q.IsReady() && getCheckBoxItem(ComboMenu, "koggieuseq") && Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && ObjectManager.Player.Mana > GetQMana() + GetWMana())
            {
                foreach (var enemy in ValidTargets.Where(t => t.Distance(ObjectManager.Player) < 800).OrderBy(e => e.Distance(ObjectManager.Player)))
                {
                    var prediction = Q.GetPrediction(enemy);
                    if ((int)prediction.Hitchance >= (int)HitChance.VeryHigh)
                    {
                        Q.Cast(prediction.UnitPosition);
                    }
                }
            }
            var attackrange = GetAttackRangeAfterWIsApplied();
            var target      = TargetSelector.GetTarget(attackrange, DamageType.Physical);

            if (IsWActive() && target != null && target.Distance(ObjectManager.Player) > attackrange - 150)
            {
                E.CastIfHitchanceMinimum(target, HitChance.Medium);
            }

            #region Humanizer
            if (_humanizer != null)
            {
                _attacksSoFar = 0;
            }
            else if (_attacksSoFar >= getSliderItem(HumanizerMenu, "koggieminattacks"))
            {
                _humanizer = new Humanizer(getSliderItem(HumanizerMenu, "koggiehumanizermovetime"));
            }
            if (!IsWActive())
            {
                _humanizer    = null;
                _attacksSoFar = 0;
            }
            if (_humanizer != null && _humanizer.ShouldDestroy)
            {
                _humanizer = null;
            }

            Orbwalker.DisableAttacking = !CanMove();
            Orbwalker.DisableMovement  = !CanAttack();
            #endregion Humanizer
        }
Beispiel #8
0
        private void RLogic()
        {
            if (!getCheckBoxItem(ComboMenu, "koggieuser") || !R.IsReady() || ObjectManager.Player.IsRecalling() || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.None))
            {
                return;
            }
            if (getCheckBoxItem(MainMenu, "koggiesavewmana") && ObjectManager.Player.Mana < GetRMana() + GetWMana())
            {
                return;
            }
            var myPos = ObjectManager.Player.ServerPosition;

            foreach (var enemy in ValidTargets.Where(h => h.Distance(myPos) < R.Range && h.HealthPercent < 25 && h.LSIsValidTarget()))
            {
                if (getCheckBoxItem(ComboMenu, "onlyRHP"))
                {
                    if (enemy.HealthPercent > getSliderItem(ComboMenu, "hpOfTarget"))
                    {
                        return;
                    }
                }
                var prediction = R.GetPrediction(enemy, true);
                if ((int)prediction.Hitchance > (int)HitChance.Medium)
                {
                    R.Cast(prediction.UnitPosition);
                }
            }
            if (GetRStacks() >= getSliderItem(MainMenu, "koggiermaxstacks"))
            {
                return;
            }
            if ((!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && !getCheckBoxItem(HarassMenu, "koggieuserharass")))
            {
                return;
            }

            foreach (var enemy in ValidTargets.Where(h => h.Distance(myPos) < R.Range && h.LSIsValidTarget() && h.HealthPercent < 35))
            {
                var dist = enemy.Distance(ObjectManager.Player.ServerPosition);
                if (Orbwalker.CanAutoAttack && dist < 550)
                {
                    break;
                }
                var prediction = R.GetPrediction(enemy, true);
                if ((int)prediction.Hitchance > (int)HitChance.Medium)
                {
                    R.Cast(prediction.UnitPosition);
                }
            }
        }
Beispiel #9
0
        public void UltLogic_OnUpdate(EventArgs args)
        {
            if (ObjectManager.Player.IsRecalling() || ObjectManager.Player.InFountain())
            {
                return;
            }

            if (SoulboundAlly == null)
            {
                SoulboundAlly = GameObjects.AllyHeroes.FirstOrDefault(a => a.HasBuff("kalistacoopstrikeally"));
                return;
            }
            if (UseRAllySaverBool && AllIncomingDamageToSoulbound > SoulboundAlly.Health &&
                SoulboundAlly.CountEnemyHeroesInRange(800) > 0)
            {
                R.Cast();
            }
            if ((SoulboundAlly.ChampionName == "Blitzcrank" || SoulboundAlly.ChampionName == "Skarner" ||
                 SoulboundAlly.ChampionName == "TahmKench"))
            {
                foreach (
                    var unit in
                    ObjectManager.Get <AIHeroClient>()
                    .Where(
                        h =>
                        h.IsEnemy && h.IsHPBarRendered && h.Distance(ObjectManager.Player.ServerPosition) > 700 &&
                        h.Distance(ObjectManager.Player.ServerPosition) < 1400)
                    )
                {
                    if ((unit.HasBuff("rocketgrab2") && BalistaBool) ||
                        (unit.HasBuff("tahmkenchwdevoured") && TalistaBool) ||
                        (unit.HasBuff("skarnerimpale") && SalistaBool))
                    {
                        R.Cast();
                    }
                }
            }
            if (UseREngageBool)
            {
                foreach (var enemy in ValidTargets.Where(en => en.IsValidTarget(1000) && en.LSIsFacing(ObjectManager.Player)))
                {
                    var waypoints = enemy.GetWaypoints();
                    if (waypoints.LastOrDefault().Distance(ObjectManager.Player.ServerPosition) < 400)
                    {
                        R.Cast();
                    }
                }
            }
        }
Beispiel #10
0
        public CSPlugin()
        {
            Bootstrap.Init(new string[1]);
            MainMenu = new Menu("challengerseries", ObjectManager.Player.ChampionName + " To The Challenger", true, ObjectManager.Player.ChampionName);
            CrossAssemblySettings = MainMenu.Add(new Menu("crossassemblysettings", "Challenger Utils: "));
            DrawEnemyWaypoints    =
                CrossAssemblySettings.Add(new MenuBool("drawenemywaypoints", "Draw Enemy Waypoints", true));
            this.IsPerformanceChallengerEnabled =
                this.CrossAssemblySettings.Add(
                    new MenuBool("performancechallengerx", "Use Performance Challenger", false));
            this.TriggerOnUpdate =
                this.CrossAssemblySettings.Add(
                    new MenuSlider("triggeronupdate", "Trigger OnUpdate X times a second", 26, 20, 33));
            Utils.Prediction.PredictionMode =
                this.CrossAssemblySettings.Add(new MenuList <string>("pred", "Use Prediction: ", new[] { "SDK", "Common" }));


            DelayAction.Add(15000, () => Orbwalker.Enabled = true);

            Game.OnUpdate += this.DelayOnUpdate;

            Drawing.OnDraw += args =>
            {
                if (DrawEnemyWaypoints)
                {
                    foreach (
                        var e in
                        ValidTargets.Where(
                            en => en.Distance(ObjectManager.Player) < 5000))
                    {
                        var ip = Drawing.WorldToScreen(e.Position); //start pos

                        var wp = e.GetWaypoints();
                        var c  = wp.Count - 1;
                        if (wp.Count() <= 1)
                        {
                            break;
                        }

                        var w = Drawing.WorldToScreen(wp[c].ToVector3()); //endpos

                        Drawing.DrawLine(ip.X, ip.Y, w.X, w.Y, 2, Color.Red);
                        Drawing.DrawText(w.X, w.Y, Color.Red, e.CharData.BaseSkinName);
                    }
                }
            };
        }
Beispiel #11
0
 void RLogic()
 {
     if (UseRCombo.Active && R.IsReady() && ObjectManager.Player.CountEnemyHeroesInRange(900) == 0)
     {
         foreach (var rTarget in
                  ValidTargets.Where(
                      e =>
                      SquishyTargets.Contains(e.CharData.BaseSkinName) && R.GetDamage(e) > 0.1 * e.MaxHealth ||
                      R.GetDamage(e) > e.Health))
         {
             if (rTarget.Distance(ObjectManager.Player) > 1400)
             {
                 var pred = Prediction.GetPrediction(rTarget, R);
                 if (!pred.Item3.Any(obj => obj is Obj_AI_Hero))
                 {
                     R.CastOnUnit(rTarget);
                 }
                 break;
             }
             R.CastOnUnit(rTarget);
         }
     }
 }
Beispiel #12
0
        public void QLogic()
        {
            if (!Q.IsReady() || (ObjectManager.Player.Mana < 3 * GetWManaCost() && CanW()))
            {
                return;
            }
            var shouldntKS =
                EntityManager.Heroes.Allies.Any(
                    h => h.Position.Distance(ObjectManager.Player.Position) < 600 && !h.IsDead && !h.IsMe);

            foreach (var hero in ValidTargets.Where(h => h.LSIsValidTarget(925)))
            {
                if (shouldntKS && Q.GetDamage(hero) > hero.Health)
                {
                    continue;
                }
                var pred = Prediction.GetPrediction(hero, Q);
                if (((int)pred.Item1 > (int)HitChance.Medium || hero.HasBuff("SorakaEPacify")) && pred.Item2.Distance(ObjectManager.Player.ServerPosition) < Q.Range)
                {
                    Q.Cast(pred.Item2);
                }
            }
        }
Beispiel #13
0
        public void QLogic()
        {
            if (!Q.IsReady() || (ObjectManager.Player.Mana < 3 * GetWManaCost() && CanW()))
            {
                return;
            }
            var shouldntKS =
                EntityManager.Heroes.Allies.Any(
                    h => h.Position.Distance(ObjectManager.Player.Position) < 600 && !h.IsDead && !h.IsMe);

            foreach (var hero in ValidTargets.Where(h => h.IsValidTarget(925)))
            {
                if (shouldntKS && Q.GetDamage(hero) > hero.Health)
                {
                    break;
                }
                var pred = Q.GetPrediction(hero);
                if ((int)pred.Hitchance > (int)HitChance.Medium && pred.UnitPosition.Distance(ObjectManager.Player.ServerPosition) < Q.Range)
                {
                    Q.Cast(hero);
                }
            }
        }
Beispiel #14
0
 public override void OnDraw(EventArgs args)
 {
     if (Orbwalker.ActiveMode == OrbwalkingMode.Combo && UseSheenCombo && HasSheenBuff && ObjectManager.Player.CountEnemyHeroesInRange(550) > 0)
     {
         return;
     }
     if (_lastTurretTarget == null || !_lastTurretTarget.IsHPBarRendered)
     {
         _lastTurretTarget = null;
     }
     if (Q.IsReady())
     {
         var targets = ValidTargets.Where(x => x.IsHPBarRendered && x.Health < Q.GetDamage(x) && x.IsValidTarget(Q.Range) && !x.IsZombie);
         if (targets != null && targets.Any())
         {
             foreach (var target in targets)
             {
                 if (target.Health < Q.GetDamage(target) &&
                     (!target.HasBuff("kindrednodeathbuff") && !target.HasBuff("Undying Rage") &&
                      !target.HasBuff("JudicatorIntervention")))
                 {
                     var pred = Q.GetPrediction(target);
                     if (pred.Hitchance >= HitChance.High && !pred.CollisionObjects.Any())
                     {
                         Q.Cast(pred.UnitPosition);
                     }
                 }
             }
         }
     }
     if (Orbwalker.ActiveMode != OrbwalkingMode.None)
     {
         if (Q.IsReady())
         {
             var qtarget = TargetSelector.GetTarget(Q);
             if (qtarget.IsHPBarRendered)
             {
                 var pred = Q.GetPrediction(qtarget);
                 if (Q.IsReady() && UseQ && pred.Hitchance >= HitChance.High && !pred.CollisionObjects.Any())
                 {
                     Q.Cast(pred.UnitPosition);
                     return;
                 }
             }
         }
         if (W.IsReady())
         {
             var wMode = UseWMode.SelectedValue;
             if (wMode == "ALWAYS" || (wMode == "COMBO" && Orbwalker.ActiveMode == OrbwalkingMode.Combo))
             {
                 var wtarget = TargetSelector.GetTarget(W);
                 if (wMode == "COMBO" && wtarget.Distance(ObjectManager.Player) < 500)
                 {
                     if (wtarget.IsHPBarRendered)
                     {
                         var pred = W.GetPrediction(wtarget);
                         if (pred.Hitchance >= HitChance.High)
                         {
                             W.Cast(pred.UnitPosition);
                             return;
                         }
                     }
                 }
                 else
                 {
                     if (wtarget.IsHPBarRendered)
                     {
                         var pred = W.GetPrediction(wtarget);
                         if (pred.Hitchance >= HitChance.High)
                         {
                             W.Cast(pred.UnitPosition);
                             return;
                         }
                     }
                 }
             }
         }
     }
     if (R.IsReady())
     {
         var rtarget = TargetSelector.GetTarget(R);
         if (UseRKey.Active)
         {
             var pred = R.GetPrediction(rtarget);
             if (pred.Hitchance >= HitChance.High)
             {
                 castedR = true;
                 R.Cast(pred.UnitPosition);
                 return;
             }
         }
         if (ObjectManager.Player.CountEnemyHeroesInRange(800) < 1)
         {
             R.CastIfWillHit(rtarget, 3);
             return;
         }
     }
     if (Orbwalker.CanMove() && QFarm && ObjectManager.Player.ManaPercent > QMana &&
         (Orbwalker.ActiveMode == OrbwalkingMode.LaneClear || Orbwalker.ActiveMode == OrbwalkingMode.LastHit))
     {
         var minions =
             GameObjects.EnemyMinions.Where(
                 m =>
                 m.Distance(ObjectManager.Player) < 1000 && m.IsHPBarRendered && Q.GetDamage(m) > m.Health);
         var lowhp = minions.FirstOrDefault(m => m.Health < ObjectManager.Player.GetAutoAttackDamage(m) / 2 + 10);
         if (lowhp != null)
         {
             var pred = Q.GetPrediction(lowhp);
             if (!pred.CollisionObjects.Any())
             {
                 Q.Cast(pred.UnitPosition);
                 return;
             }
         }
         var cannon = minions.FirstOrDefault(m => m.CharData.BaseSkinName.Contains("Siege"));
         if (cannon != null)
         {
             var pred = Q.GetPrediction(cannon);
             if (!pred.CollisionObjects.Any())
             {
                 Q.Cast(pred.UnitPosition);
                 return;
             }
         }
         if (minions.Count() > 1)
         {
             var lowesthp = minions.OrderBy(m => m.Health).FirstOrDefault();
             var pred     = Q.GetPrediction(lowesthp);
             if (!pred.CollisionObjects.Any())
             {
                 Q.Cast(pred.UnitPosition);
                 return;
             }
         }
     }
 }
Beispiel #15
0
        public override void OnUpdate(EventArgs args)
        {
            base.OnUpdate(args);
            if (UseWBool)
            {
                WLogic();
            }
            if (UseRBool)
            {
                RLogic();
            }
            if (Q.IsReady() && UseQBool && Orbwalker.ActiveMode == OrbwalkingMode.Combo && ObjectManager.Player.Mana > GetQMana() + GetWMana())
            {
                foreach (
                    var enemy in
                        ValidTargets.Where(t => t.Distance(ObjectManager.Player) < 800)
                            .OrderBy(e => e.Distance(ObjectManager.Player)))
                {
                    var prediction = Q.GetPrediction(enemy);
                    if ((int)prediction.Hitchance >= (int)HitChance.VeryHigh)
                    {
                        Q.Cast(prediction.UnitPosition);
                    }
                }
            }
            var attackrange = GetAttackRangeAfterWIsApplied();
            var target = TargetSelector.GetTarget(attackrange, DamageType.Physical);
            if (IsWActive() && target != null && target.Distance(ObjectManager.Player) > attackrange - 150)
            {
                E.CastIfHitchanceMinimum(target, HitChance.Medium);
            }

            #region Humanizer
            if (HumanizerEnabled)
            {
                if (_humanizer != null)
                {
                    _attacksSoFar = 0;
                }
                else if (_attacksSoFar >= HumanizerMinAttacks.Value)
                {
                    _humanizer = new Humanizer(HumanizerMovementTime.Value);
                }
                if (!IsWActive())
                {
                    _humanizer = null;
                    _attacksSoFar = 0;
                }
                if (_humanizer != null && _humanizer.ShouldDestroy)
                {
                    _humanizer = null;
                }
                Orbwalker.MovementState = CanMove();
                Orbwalker.AttackState = CanAttack();
            }
            else
            {
                _humanizer = null;
                Orbwalker.MovementState = true;
                Orbwalker.AttackState = true;
            }
            #endregion Humanizer
        }
Beispiel #16
0
        public override void OnDraw(EventArgs args)
        {
            #region Logic

            var ultTarget = TargetSelector.GetTarget(R);
            if (this.SemiAutoRKey.Active && ultTarget != null && ultTarget.IsHPBarRendered)
            {
                this.pressedR = true;
                R.Cast(R.GetPrediction(ultTarget).UnitPosition);
            }
            if (!this.HasPassive)

            {
                var target = TargetSelector.GetTarget(Q);

                if (target != null && Orbwalker.ActiveMode == OrbwalkingMode.Combo &&
                    target.Distance(ObjectManager.Player) < Q.Range)
                {
                    if (UseQCombo && Q.IsReady())
                    {
                        Q.Cast(target);
                        return;
                    }
                }
                if (Q.IsReady())
                {
                    var q2tg = TargetSelector.GetTarget(Q2.Range);
                    if (q2tg != null && q2tg.IsHPBarRendered)
                    {
                        if (q2tg.Distance(ObjectManager.Player) > 600)
                        {
                            if (Orbwalker.ActiveMode != OrbwalkingMode.None &&
                                Orbwalker.ActiveMode != OrbwalkingMode.Combo)
                            {
                                var menuItem = QExtendedBlacklist["qexbl" + q2tg.CharData.BaseSkinName];
                                if (UseQExtended && ObjectManager.Player.ManaPercent > QExManaPercent &&
                                    menuItem != null && !menuItem.GetValue <MenuBool>())
                                {
                                    var QPred = Q2.GetPrediction(q2tg);
                                    if (QPred.Hitchance >= HitChance.Medium)
                                    {
                                        var minions =
                                            GameObjects.EnemyMinions.Where(
                                                m => m.IsHPBarRendered && m.Distance(ObjectManager.Player) < Q.Range);
                                        var objAiMinions = minions as IList <Obj_AI_Minion> ?? minions.ToList();
                                        if (objAiMinions.Any())
                                        {
                                            foreach (var minion in objAiMinions)
                                            {
                                                var QHit = new Utils.Geometry.Rectangle(
                                                    ObjectManager.Player.Position,
                                                    ObjectManager.Player.Position.Extend(minion.Position, Q2.Range),
                                                    Q2.Width);
                                                if (!QPred.UnitPosition.IsOutside(QHit))
                                                {
                                                    Q.Cast(minion);
                                                    return;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else if (Q.IsReady() && UseQCombo)
                        {
                            Q.Cast(q2tg);
                        }
                    }
                }

                #endregion

                if (QKS && Q.IsReady())
                {
                    var targets =
                        ValidTargets.Where(
                            x =>
                            x.IsHPBarRendered && x.Health < Q.GetDamage(x) && x.IsValidTarget(Q.Range) && !x.IsZombie);
                    var objAiHeroes = targets as IList <Obj_AI_Hero> ?? targets.ToList();
                    if (targets != null && objAiHeroes.Any())
                    {
                        foreach (var tar in objAiHeroes)
                        {
                            if (tar.Health < Q.GetDamage(tar) &&
                                (!tar.HasBuff("kindrednodeathbuff") && !tar.HasBuff("Undying Rage") &&
                                 !tar.HasBuff("JudicatorIntervention")))
                            {
                                Q.Cast(target);
                                return;
                            }
                        }
                    }
                }
                if (R.IsReady() && ForceR)
                {
                    var rtarget = TargetSelector.GetTarget(900);
                    if (rtarget != null && rtarget.IsHPBarRendered && target.Health < R.GetDamage(rtarget) * 0.8 &&
                        rtarget.Distance(ObjectManager.Player) > 300)
                    {
                        var pred = R.GetPrediction(rtarget);
                        if (!pred.CollisionObjects.Any() && pred.Hitchance >= HitChance.High)
                        {
                            R.Cast(pred.UnitPosition);
                        }
                    }
                }
            }
            var tg = TargetSelector.GetTarget(ObjectManager.Player.AttackRange, DamageType.Physical);
            if (tg != null && HasPassive)
            {
                if (UsePassiveOnEnemy && tg.IsValidTarget())
                {
                    Orbwalker.ForceTarget = tg;
                    return;
                }
            }
            Orbwalker.ForceTarget = null;
        }
Beispiel #17
0
        //private Items.Item ZZrot = new Items.Item(3512, 400);
        #endregion

        #region Events

        public override void OnUpdate(EventArgs args)
        {
            base.OnUpdate(args);
            if (UseEBool && E.IsReady())
            {
                foreach (var enemy in ValidTargets.Where(e => e.IsValidTarget(550)))
                {
                    /*if (ZZrot.IsReady && enemy.IsValidTarget(ZZrot.Range))
                     * {
                     *  if (E.CastOnUnit(enemy))
                     *  {
                     *      DelayAction.Add(100,
                     *          () =>
                     *              {
                     *                  this.ZZrot.Cast(
                     *                      enemy.Position.ToVector2()
                     *                          .Extend(ObjectManager.Player.ServerPosition.ToVector2(), -100));
                     *              });
                     *      return;
                     *  }
                     * }*/
                    if (enemy.IsCastingInterruptableSpell())
                    {
                        E.CastOnUnit(enemy);
                    }
                    if (IsCondemnable(enemy))
                    {
                        if (EDelaySlider.Value > 0)
                        {
                            var thisEnemy = enemy;
                            DelayAction.Add(EDelaySlider.Value, () => E.CastOnUnit(thisEnemy));
                            return;
                        }
                        E.CastOnUnit(enemy);
                    }
                }
            }
            if (SemiAutomaticCondemnKey.Active)
            {
                foreach (
                    var hero in
                    ValidTargets.Where(
                        h => h.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < 550))
                {
                    var prediction = E.GetPrediction(hero);
                    for (var i = 40; i < 425; i += 125)
                    {
                        var flags = NavMesh.GetCollisionFlags(
                            prediction.UnitPosition.ToVector2()
                            .Extend(ObjectManager.Player.ServerPosition.ToVector2(),
                                    -i)
                            .ToVector3());
                        if (flags.HasFlag(CollisionFlags.Wall) || flags.HasFlag(CollisionFlags.Building))
                        {
                            if (EDelaySlider.Value > 0)
                            {
                                var thisEnemy = hero;
                                DelayAction.Add(EDelaySlider.Value, () => E.CastOnUnit(thisEnemy));
                                return;
                            }
                            E.CastOnUnit(hero);
                            return;
                        }
                    }
                }
            }
            if (UseEInterruptBool)
            {
                var possibleChannelingTarget =
                    ValidTargets.FirstOrDefault(
                        e =>
                        e.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < 550 &&
                        e.IsCastingInterruptableSpell());
                if (possibleChannelingTarget.IsValidTarget())
                {
                    if (EDelaySlider.Value > 0)
                    {
                        var thisEnemy = possibleChannelingTarget;
                        DelayAction.Add(EDelaySlider.Value, () => E.CastOnUnit(thisEnemy));
                        return;
                    }
                    E.CastOnUnit(possibleChannelingTarget);
                }
            }
        }
Beispiel #18
0
        public override void OnDraw(EventArgs args)
        {
            var drawRange = DrawRange.Value;

            if (drawRange > 0)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, drawRange, Color.Gold);
            }
            if (Orbwalker.ActiveMode == OrbwalkingMode.Combo)
            {
                if (UseQCombo && Q.IsReady() && ObjectManager.Player.CountEnemyHeroesInRange(800) == 0 &&
                    ObjectManager.Player.CountEnemyHeroesInRange(1100) > 0)
                {
                    Q.CastIfWillHit(TargetSelector.GetTarget(1100, DamageType.Physical), 2);
                    var goodQTarget =
                        ValidTargets.FirstOrDefault(
                            t =>
                            t.Distance(ObjectManager.Player) < 1150 && t.Health < Q.GetDamage(t) ||
                            SquishyTargets.Contains(t.CharData.BaseSkinName));
                    if (goodQTarget != null)
                    {
                        var pred = Q.GetPrediction(goodQTarget);
                        if ((int)pred.Hitchance > (int)HitChance.Medium)
                        {
                            Q.Cast(pred.UnitPosition);
                        }
                    }
                }
            }
            if (Orbwalker.ActiveMode != OrbwalkingMode.None && Orbwalker.ActiveMode != OrbwalkingMode.Combo &&
                ObjectManager.Player.CountEnemyHeroesInRange(850) == 0)
            {
                var qHarassMode = QHarassMode.SelectedValue;
                if (qHarassMode != "DISABLED")
                {
                    var qTarget = TargetSelector.GetTarget(1100, DamageType.Physical);
                    if (qTarget != null)
                    {
                        var pred = Q.GetPrediction(qTarget);
                        if ((int)pred.Hitchance > (int)HitChance.Medium)
                        {
                            if (qHarassMode == "ALLOWMINIONS")
                            {
                                Q.Cast(pred.UnitPosition);
                            }
                            else if (pred.CollisionObjects.Count == 0)
                            {
                                Q.Cast(pred.UnitPosition);
                            }
                        }
                    }
                }
            }

            #region ELogic

            if (!W.IsReady())
            {
                return;
            }
            var goodTarget =
                ValidTargets.FirstOrDefault(
                    e =>
                    e.IsValidTarget(820) && e.HasBuffOfType(BuffType.Knockup) || e.HasBuffOfType(BuffType.Snare) ||
                    e.HasBuffOfType(BuffType.Stun) || e.HasBuffOfType(BuffType.Suppression) || e.IsCharmed ||
                    e.IsCastingInterruptableSpell() || e.HasBuff("ChronoRevive") || e.HasBuff("ChronoShift"));
            if (goodTarget != null)
            {
                var pos = goodTarget.ServerPosition;
                if (pos.Distance(ObjectManager.Player.ServerPosition) < 820)
                {
                    W.Cast(goodTarget.ServerPosition);
                }
            }
            foreach (
                var enemyMinion in
                ObjectManager.Get <Obj_AI_Base>()
                .Where(
                    m =>
                    m.IsEnemy && m.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < W.Range &&
                    m.HasBuff("teleport_target")))
            {
                W.Cast(enemyMinion.ServerPosition);
            }

            #endregion ELogic

            #region RLogic


            if (UseRCombo.Active && R.IsReady() && ObjectManager.Player.CountEnemyHeroesInRange(900) == 0)
            {
                foreach (
                    var rTarget in
                    ValidTargets.Where(
                        e =>
                        SquishyTargets.Contains(e.CharData.BaseSkinName) && R.GetDamage(e) > 0.1 * e.MaxHealth ||
                        R.GetDamage(e) > e.Health)
                    )
                {
                    if (rTarget.Distance(ObjectManager.Player) > 1400)
                    {
                        var pred = R.GetPrediction(rTarget);
                        if (!pred.CollisionObjects.Any(obj => obj is Obj_AI_Hero))
                        {
                            R.CastOnUnit(rTarget);
                        }
                        break;
                    }
                    R.CastOnUnit(rTarget);
                }
            }

            #endregion RLogic
        }
Beispiel #19
0
        void QLogic()
        {
            var targets = ValidTargets.Where(x => x.IsHPBarRendered && x.Health < Q.GetDamage(x) && x.IsValidTarget(Q.Range) && !x.IsZombie);

            if (targets != null && targets.Any())
            {
                foreach (var target in targets)
                {
                    if (target == null)
                    {
                        continue;
                    }
                    if (target.Health < Q.GetDamage(target) &&
                        (!target.HasBuff("Undying Rage") &&
                         !target.HasBuff("JudicatorIntervention")))
                    {
                        var pred = Q.GetPrediction(target);
                        if (pred.Hitchance >= HitChance.High && !pred.CollisionObjects.Any())
                        {
                            Q.Cast(pred.UnitPosition);
                        }
                    }
                }
            }
            if (Orbwalker.ActiveMode != OrbwalkingMode.None)
            {
                if (Q.IsReady())
                {
                    var qtarget = TargetSelector.GetTarget(Q);
                    if (qtarget != null && qtarget.IsHPBarRendered)
                    {
                        var pred = Q.GetPrediction(qtarget);
                        if (Q.IsReady() && UseQ && pred.Hitchance >= HitChance.High && !pred.CollisionObjects.Any())
                        {
                            Q.Cast(pred.UnitPosition);
                            return;
                        }
                    }
                }
            }

            if (Orbwalker.CanMove() && QFarm && ObjectManager.Player.ManaPercent > QMana &&
                (Orbwalker.ActiveMode == OrbwalkingMode.LaneClear || Orbwalker.ActiveMode == OrbwalkingMode.LastHit))
            {
                var minion =
                    GameObjects.EnemyMinions.FirstOrDefault(
                        m =>
                        m.Position.Distance(ObjectManager.Player.Position) < 550 &&
                        m.Health < ObjectManager.Player.GetAutoAttackDamage(m) &&
                        Health.GetPrediction(m, (int)((Game.Ping / 2) + ObjectManager.Player.AttackCastDelay * 1000))
                        < 1 && Health.GetPrediction(m, (int)((Game.Ping / 2) + 250)) > 1);
                if (minion != null)
                {
                    var pred = Q.GetPrediction(minion);
                    if (!pred.CollisionObjects.Any(o => o is Obj_AI_Minion))
                    {
                        Q.Cast(pred.UnitPosition);
                    }
                }
            }
        }
Beispiel #20
0
 private void OnOrbwalkerAction(object sender, OrbwalkingActionArgs orbwalkingActionArgs)
 {
     if (orbwalkingActionArgs.Target == null)
     {
         return;
     }
     if (orbwalkingActionArgs.Type == OrbwalkingType.AfterAttack)
     {
         Orbwalker.ForceTarget = null;
         if (UseEIfResettedByAMinionBool && ObjectManager.Player.ManaPercent > EResetByAMinionMinManaSlider.Value)
         {
             if (
                 ValidTargets.Any(e =>
                                  e.Distance(ObjectManager.Player.ServerPosition) > 615 &&
                                  GetRendBuff(e).Count >= MinEnemyStacksForEMinionResetSlider.Value) &&
                 GameObjects.EnemyMinions.Any(m => IsRendKillable(m)))
             {
                 E.Cast();
             }
         }
         if (Orbwalker.ActiveMode == OrbwalkingMode.Combo && Q.IsReady())
         {
             var hero = orbwalkingActionArgs.Target as Obj_AI_Hero;
             if (hero != null)
             {
                 if (hero.IsHPBarRendered)
                 {
                     var pred = Q.GetPrediction(hero);
                     if (pred.Hitchance >= HitChance.High)
                     {
                         Q.Cast(pred.UnitPosition);
                         return;
                     }
                 }
             }
             else
             {
                 foreach (var target in ValidTargets.Where(t => t.Distance(ObjectManager.Player) < 900))
                 {
                     if (ObjectManager.Player.ManaPercent > UseQManaSlider.Value)
                     {
                         var pred = Q.GetPrediction(target);
                         if (pred.Hitchance >= HitChance.High)
                         {
                             Q.Cast(pred.UnitPosition);
                             return;
                         }
                     }
                 }
             }
         }
         if (UseQStackTransferBool && orbwalkingActionArgs.Target is Obj_AI_Minion)
         {
             var target = orbwalkingActionArgs.Target as Obj_AI_Minion;
             if (GetRendBuff(target).Count >= UseQStackTransferMinStacksSlider && target.Health < Q.GetDamage(target))
             {
                 foreach (var enemy in ValidTargets.Where(en => en.Distance(ObjectManager.Player) < 900))
                 {
                     var pred = Q.GetPrediction(enemy, false);
                     if (pred.CollisionObjects.All(co => co is Obj_AI_Minion && co.Health < Q.GetDamage(co)) && pred.CollisionObjects.Any(m => m.NetworkId == target.NetworkId))
                     {
                         Q.Cast(pred.UnitPosition);
                     }
                 }
             }
         }
     }
     if (orbwalkingActionArgs.Type == OrbwalkingType.BeforeAttack)
     {
         if (Orbwalker.ActiveMode == OrbwalkingMode.Combo && FocusWBuffedEnemyBool)
         {
             var wMarkedEnemy =
                 ValidTargets.FirstOrDefault(
                     h => h.Distance(ObjectManager.Player.ServerPosition) < 600 && h.HasBuff("kalistacoopstrikemarkally"));
             if (wMarkedEnemy != null && wMarkedEnemy.IsValidTarget())
             {
                 Orbwalker.ForceTarget = wMarkedEnemy;
             }
         }
         if (Orbwalker.ActiveMode != OrbwalkingMode.Combo && FocusWBuffedEnemyInHarassBool)
         {
             var wMarkedEnemy =
                 ValidTargets.FirstOrDefault(
                     h => h.Distance(ObjectManager.Player.ServerPosition) < 600 && h.HasBuff("kalistacoopstrikemarkally"));
             if (wMarkedEnemy != null && wMarkedEnemy.IsValidTarget())
             {
                 Orbwalker.ForceTarget = wMarkedEnemy;
             }
         }
         if (Orbwalker.ActiveMode == OrbwalkingMode.LaneClear &&
             orbwalkingActionArgs.Target.Type != GameObjectType.obj_AI_Hero)
         {
             if (FocusWBuffedMinions)
             {
                 Orbwalker.ForceTarget =
                     GameObjects.EnemyMinions.FirstOrDefault(
                         m =>
                         m.Distance(ObjectManager.Player.ServerPosition) < 615 && m.HasBuff("kalistacoopstrikemarkally") &&
                         m.Health < ObjectManager.Player.GetAutoAttackDamage(m) + W.GetDamage(m));
             }
         }
     }
 }