示例#1
0
        private static void ThreshQ()
        {
            var target = TargetSelector.GetTarget(Main["combo"]["QMaximumRange"].As <MenuSlider>().Value);

            if (target == null)
            {
                return;
            }
            var prediction = _q.GetPrediction(target);

            if (Main["combo"]["q"].As <MenuBool>().Enabled&& Main["whiteList"]["qWhiteList" + target.ChampionName.ToLower()].As <MenuBool>().Enabled&& target.IsInRange(_q.Range) && target.IsValidTarget() && !target.HasBuff("threshQ") && _q.Ready && target.Distance(Thresh) > Main["combo"]["QMinimumRange"].As <MenuSlider>().Value)
            {
                if (prediction.HitChance >= HitChance.High)
                {
                    _q.Cast(prediction.CastPosition);
                }
            }
            if (target.HasBuff("threshQ") && Main["combo"]["q2"].As <MenuBool>().Enabled&& !target.IsUnderEnemyTurret())
            {
                if (target.Distance(Thresh.ServerPosition) >= 400)
                {
                    DelayAction.Queue(1000, () => _q.CastOnUnit(Thresh));
                }
            }
            if (target.HasBuff("threshQ") && target.IsUnderEnemyTurret() && Main["combo"]["q2Turret"].As <MenuBool>().Enabled)
            {
                if (target.Distance(Thresh.ServerPosition) >= 400)
                {
                    DelayAction.Queue(1000, () => _q.CastOnUnit(Thresh));
                }
            }
        }
示例#2
0
        private void CastUlt(Vector3 pos)
        {
            if (pos.IsZero)
            {
                DebugConsole.WriteLine("POSITION IS ZERO, CORE IS LIKELY BROKEN", MessageState.Warn);
                return;
            }

            var rectangle = new Geometry.Rectangle(Global.Player.ServerPosition.To2D(), pos.To2D(), _width);

            if (_menu["Collision"].Enabled &&
                GameObjects.EnemyHeroes.Count(x => x.NetworkId != _target.NetworkId && rectangle.IsInside(x.ServerPosition.To2D())) > _maxCollisionObjects ||
                pos.Distance(Global.Player) > _range ||
                pos.Distance(Global.Player) < 1200)
            {
                return;
            }

            DebugConsole.WriteLine($"Successfully Fired At: {_target.ChampionName} With The Distance: {Global.Player.Distance(pos)}", MessageState.Debug);

            _ultimate.Cast(pos);
            Reset();

            DelayAction.Queue(1500,
                              () =>
            {
                _lastSeenPosition  = Vector3.Zero;
                _predictedPosition = Vector3.Zero;
            },
                              new CancellationToken(false));
        }
示例#3
0
        public static void Orbwalker_OnPostAttack(Object sender, PostAttackEventArgs args)
        {
            //For post attack. If none, return.
            if (IOrbwalker.Mode == OrbwalkingMode.None)
            {
                return;
            }

            var dashPosition = Player.Position.Extend(Game.CursorPos, 350);

            if (!Q.Ready) // || !target.IsValidTarget(Player.AttackRange
            {
                return;
            }

            if (IOrbwalker.Mode == OrbwalkingMode.Laneclear)
            {
                if (!Champions.Kindred.MenuClass.JungleClearq["useq"].Enabled || Player.ManaPercent() < Champions.Kindred.MenuClass.JungleClearq["useqmana"].Value)
                {
                    return;
                }
            }

            if (IOrbwalker.Mode == OrbwalkingMode.Mixed)
            {
                if (!Champions.Kindred.MenuClass.harassqmenu["useq"].Enabled || Player.ManaPercent() < Champions.Kindred.MenuClass.harassqmenu["useqmana"].Value)
                {
                    return;
                }
            }

            //First Q logic - just Q to mouse
            Q.Cast(dashPosition);
            DelayAction.Queue(100 + Game.Ping, Orbwalker.ResetAutoAttackTimer);
        }
示例#4
0
        public static void CastR2(Obj_AI_Base target)
        {
            if (InvulnerableSpells.Any(target.HasBuff))
            {
                return;
            }

            if (target.IsValidAutoRange())
            {
                if (Items.CanUseTiamat())
                {
                    Items.CastTiamat();
                    DelayAction.Queue(1000, () => SpellConfig.R2.Cast(target));
                }
                else
                {
                    DelayAction.Queue(500, () => SpellConfig.R2.Cast(target));
                }
                canUseQ = true;
            }
            else
            {
                SpellConfig.R2.Cast(target);
            }
        }
示例#5
0
 private static void Killsteal()
 {
     if (MenuManager.Killsteal["q"].Enabled && SpellManager.Q.Ready)
     {
         var killable = GameObjects.EnemyHeroes.Where(x => !x.IsDead && !x.IsInvulnerable && x.Health < Player.GetQDamage(x) && x.Distance(Player) <= SpellManager.Q.Range).ToList();
         if (killable.Count == 0)
         {
             return;
         }
         SpellManager.Q.Cast();
         return;
     }
     if (MenuManager.Killsteal["w"].Enabled && SpellManager.W.Ready)
     {
         var killable = GameObjects.EnemyHeroes.Where(x => !x.IsDead && !x.IsInvulnerable && x.Health < Player.GetWDamage(x) && x.Distance(Player) <= SpellManager.W.Range).OrderBy(x => x.Health).FirstOrDefault();
         if (killable == null)
         {
             return;
         }
         SpellManager.W.Cast();
         DelayAction.Queue(250, () => Orbwalker.Implementation.Attack(killable));
         return;
     }
     if (MenuManager.Killsteal["e"].Enabled && SpellManager.E.Ready)
     {
         var killable = GameObjects.EnemyHeroes.Where(x => !x.IsDead && !x.IsInvulnerable && x.Health < Player.GetEDamage(x) && x.Distance(Player) <= SpellManager.E.Range).OrderBy(x => x.Health).FirstOrDefault();
         if (killable == null)
         {
             return;
         }
         SpellManager.E.Cast(killable.ServerPosition);
     }
 }
示例#6
0
        private void OnTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs args)
        {
            if (sender.IsAlly)
            {
                return;
            }

            //normal recall 8 sec
            if (args.Name.ToLower() == "recall")
            {
                //Console.WriteLine(Game.ClockTime + " | " + sender.Name.ToLower() + " is recalling.");

                var TeleportingChamp = _lastPositions.FirstOrDefault(t => t.Champ.Name.ToLower().Equals(sender.Name.ToLower()));
                TeleportingChamp.IsTeleporting = true;
                DelayAction.Queue(8000, () => TeleportingChamp.Teleported = true);
            }

            //baron recall 4 sec
            if (args.Name.ToLower() == "superrecall")
            {
                var TeleportingChamp = _lastPositions.FirstOrDefault(t => t.Champ.Name.ToLower().Equals(sender.Name.ToLower()));
                TeleportingChamp.IsTeleporting = true;
                DelayAction.Queue(4000, () => TeleportingChamp.Teleported = true);
            }
        }
示例#7
0
        private static void LaneClear()
        {
            foreach (var target in GameObjects.EnemyMinions.Where(m => m.IsValidTarget(Q.Range)))
            {
                if (target != null)
                {
                    if (Main["laneclear"]["q"].As <MenuSliderBool>().Enabled&& Q.Ready && Player.HealthPercent() >= Main["laneclear"]["q"].As <MenuSliderBool>().Value)
                    {
                        if (target.Health < QDamage(target) && Main["laneclear"]["qlast"].As <MenuBool>().Enabled || target.IsValidTarget(Q.Range) && !Main["laneclear"]["qlast"].As <MenuBool>().Enabled)
                        {
                            Q.Cast(target);
                        }
                    }

                    if (Main["laneclear"]["w"].As <MenuSliderBool>().Enabled&& W.Ready)
                    {
                        if (GameObjects.EnemyMinions.Count(x => x.Distance(Player) < 300 && x.IsValidTarget(300)) >= Main["laneclear"]["UnitsWhit"].As <MenuSlider>().Value&& Player.HealthPercent() >= Main["laneclear"]["w"].As <MenuSliderBool>().Value&& !IsBurning())
                        {
                            W.Cast();
                        }
                        else if (IsBurning() && GameObjects.EnemyMinions.Count(x => x.Distance(Player) < 400 && x.IsValidTarget(400)) <= 1)
                        {
                            W.Cast();
                        }
                    }
                    if (Main["laneclear"]["e"].As <MenuBool>().Enabled&& E.Ready)
                    {
                        if (GameObjects.EnemyMinions.Count(x => x.Distance(Player) < 300 && x.IsValidTarget(300)) >= 3)
                        {
                            DelayAction.Queue(300, () => E.Cast());
                        }
                    }
                }
            }
        }
示例#8
0
        private void FlashR()
        {
            Player.IssueOrder(OrderType.MoveTo, Game.CursorPos);
            var target = GetBestEnemyHeroTargetInRange(Menu["combo"]["rset"]["ranger"].As <MenuSlider>().Value + 410);

            if (R.Ready)
            {
                if (Flash.Ready && Flash != null && target.IsValidTarget())
                {
                    if (target.IsValidTarget(Menu["combo"]["rset"]["ranger"].As <MenuSlider>().Value + 410))
                    {
                        if (target.Distance(Player) > R.Range)
                        {
                            if (R.Cast(target.ServerPosition))
                            {
                                DelayAction.Queue(200 + Game.Ping, () =>
                                {
                                    Flash.Cast(target.ServerPosition);
                                });
                            }
                        }
                    }
                }
            }
        }
示例#9
0
        public void OnPostAttack()
        {
            var minion = GameObjects.EnemyMinions.FirstOrDefault(x =>
                                                                 x.Distance(Global.Player) < Global.Player.AttackRange + x.BoundingRadius && x.Health > Global.Player.GetAutoAttackDamage(x));

            if (minion == null || this.CheckEnabled && Global.Player.CountEnemyHeroesInRange(2000) >= 1)
            {
                return;
            }

            if (_spellConfig.E.Ready && this.EEnabled)
            {
                if (Items.CanUseTiamat())
                {
                    Items.CastTiamat(false);
                    DelayAction.Queue(50, () => _spellConfig.E.Cast(minion));
                }
                else
                {
                    _spellConfig.E.Cast(minion);
                }
            }
            else if (_spellConfig.W.Ready && this.WEnabled)
            {
                _spellConfig.W.CastOnUnit(Global.Player);
            }
        }
示例#10
0
        private static void AutoExplode()
        {
            var closestHittingBarrel = BarrelManager.GetBarrelsThatWillHit().FirstOrDefault();

            if (closestHittingBarrel != null)
            {
                var chainedBarrels = BarrelManager.GetChainedBarrels(closestHittingBarrel);
                var barrelToQ      = BarrelManager.GetBestBarrelToQ(chainedBarrels);
                if (barrelToQ != null)
                {
                    if (SpellManager.Q.Ready)
                    {
                        var timeWhenCanE = LastECast + 500;
                        var delay        = timeWhenCanE - Game.TickCount;
                        delay = Ammo < 1 ? 0 : delay <= 0 ? 0 : delay;
                        var castDelay = MenuManager.Combo["triple"].Enabled ? delay : 0;
                        DelayAction.Queue(castDelay, () => SpellManager.Q.Cast(barrelToQ.Object));
                        return;
                    }
                    if (barrelToQ.Object.IsInAutoAttackRange() && Orbwalker.Implementation.CanAttack() && MenuManager.Combo["explodeQCooldown"].Enabled)
                    {
                        Orbwalker.Implementation.ForceTarget(barrelToQ.Object);
                        Orbwalker.Implementation.Attack(barrelToQ.Object);
                    }
                }
            }
        }
示例#11
0
        private static void ChaseTarget()
        {
            var target = GameObjects.EnemyHeroes.FirstOrDefault(x => x.IsValidTarget(1500));

            if (target == null)
            {
                return;
            }

            if (MenuConfig.Combo["Chase"].Value == 0 || target.Distance(Global.Player) < Global.Player.AttackRange + 65)
            {
                return;
            }

            switch (MenuConfig.Combo["Chase"].Value)
            {
            case 1:
                if (target.Distance(Global.Player) <= Global.Player.AttackRange + SpellConfig.Q.Range && Extensions.CurrentQCount == 1 &&
                    target.Distance(Global.Player) > Global.Player.AttackRange)
                {
                    SpellManager.CastQ(target, true);
                }
                break;

            case 2:
                if (target.Distance(Global.Player) <= Global.Player.AttackRange + SpellConfig.Q.Range + SpellConfig.E.Range &&
                    target.Distance(Global.Player) > Global.Player.AttackRange + SpellConfig.Q.Range && SpellConfig.E.Ready && SpellConfig.Q.Ready && Extensions.CurrentQCount == 1)
                {
                    SpellConfig.E.Cast(target.ServerPosition);
                    DelayAction.Queue(190, () => SpellManager.CastQ(target, true), new CancellationToken(false));
                }
                break;
            }
        }
示例#12
0
        public static void DisableAutoAttack(int duration = 500)
        {
            duration += Game.Ping / 2 + 50;
            Global.Orbwalker.AttackingEnabled = false;

            DelayAction.Queue(duration, () => Global.Orbwalker.AttackingEnabled = true, new CancellationToken(false));
        }
示例#13
0
        public static void OnPlayAnimation(Obj_AI_Base sender, Obj_AI_BasePlayAnimationEventArgs args)
        {
            if (sender == null || !sender.IsMe)
            {
                return;
            }

            switch (args.Animation)
            {
            case "Spell3":
                if (Extension.CurrentMode == Mode.Tornado)
                {
                    SpellConfig.SetSkill(Mode.DashingTornado);
                }
                else
                {
                    SpellConfig.SetSkill(Mode.Dashing);

                    DelayAction.Queue(1000,
                                      () =>
                    {
                        SpellConfig.SetSkill(Mode.Normal);
                    },
                                      new CancellationToken(false));
                }
                break;
            }
        }
示例#14
0
        private static void Flee()
        {
            if (!Setup.Flee["Key"].Enabled)
            {
                return;
            }

            Player.IssueOrder(OrderType.MoveTo, Game.CursorPos);

            if (Player.ManaPercent() < Setup.Flee["Mana"].As <MenuSlider>().Value)
            {
                return;
            }

            if (Setup.Flee["E"].As <MenuBool>().Enabled&& Spells.E.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.E.Range);
                if (target.IsValidTarget())
                {
                    Spells.E.Cast(target);
                }
            }
            if (Setup.Flee["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready)
            {
                Spells.Q.Cast(Game.CursorPos);
                if (Setup.Misc["Anim"].As <MenuBool>().Enabled)
                {
                    DelayAction.Queue(200, () => MenuGUI.DoEmote(EmoteType.Dance));
                }
            }
        }
示例#15
0
        public static void CastE(Obj_AI_Base target, bool flash = false)
        {
            var canFlash = flash && SummonerSpells.IsValid(SummonerSpells.Flash) && target.Distance(Global.Player) > E.Range && target.Distance(Global.Player) < E.Range + 425;

            var pred = E.GetPrediction(target);

            BodySlam = new Geometry.Rectangle(
                canFlash ? Global.Player.ServerPosition.Extend(target.ServerPosition, 425 + E.Range - target.BoundingRadius).To2D() : Global.Player.ServerPosition.To2D(),
                Global.Player.ServerPosition.Extend(pred.CastPosition, E.Range).To2D(),
                EHitboxRadius);

            if (BodySlam.IsOutside(target.ServerPosition.To2D()))
            {
                return;
            }

            if (GameObjects.EnemyMinions.Any(x => BodySlam.IsInside(x.ServerPosition.To2D()) && x.Distance(BodySlam.Start) <= target.Distance(BodySlam.Start) &&
                                             x.Distance(target) >= Global.Player.BoundingRadius + 200))
            {
                return;
            }

            if (canFlash)
            {
                E.Cast(target.ServerPosition);
                DelayAction.Queue(300, () => SummonerSpells.Flash.Cast(target.ServerPosition), new CancellationToken(false));
                return;
            }

            E.Cast(target.ServerPosition);
        }
示例#16
0
 private static void Main()
 {
     Loading.OnLoadingComplete += () =>
     {
         DelayAction.Queue(Bootstrap.Initialize, 1750);
     };
 }
示例#17
0
        public static void OnRender()
        {
            if (Global.Player.IsDead)
            {
                return;
            }

            if (MenuConfig.Drawings["Q"].Enabled && SpellConfig.Q.Ready)
            {
                Render.Circle(Global.Player.Position, SpellConfig.Q.Range, (uint)MenuConfig.Drawings["Segments"].Value, Color.Cyan);
            }

            if (MenuConfig.Drawings["W"].Enabled && SpellConfig.W.Ready)
            {
                Render.Circle(Global.Player.Position, SpellConfig.W.Range, (uint)MenuConfig.Drawings["Segments"].Value, Color.Cyan);
            }

            if (MenuConfig.Drawings["E"].Enabled && SpellConfig.E.Ready)
            {
                Render.Circle(Global.Player.Position, SpellConfig.E.Range, (uint)MenuConfig.Drawings["Segments"].Value, Color.Cyan);
            }

            if (Extensions.AssassinTarget != null)
            {
                Render.WorldToScreen(Global.Player.Position, out var screen);
                Render.Text("Target: " + Extensions.AssassinTarget.ChampionName, new Vector2(screen.X - 55, screen.Y + 40), RenderTextFlags.Center, Color.White);
                DelayAction.Queue(2500, () => Extensions.AssassinTarget = null, new CancellationToken(false));
            }
        }
示例#18
0
        public static void OnPostAttack()
        {
            var target = GameObjects.EnemyHeroes.OrderBy(x => x.Distance(Global.Player)).FirstOrDefault(x => x.Distance(Global.Player) <= Global.Player.AttackRange + 200);

            if (target == null)
            {
                return;
            }

            if (!target.HasBuff("YasuoDashWrapper"))
            {
                SpellConfig.E.Cast(target);

                DelayAction.Queue(Game.Ping / 2, () => SpellConfig.Q.Cast(), new CancellationToken(false));

                DelayAction.Queue(Game.Ping / 2 + 70, () => SpellConfig.R.Cast(), new CancellationToken(false));
            }
            else if (SpellConfig.R.Ready)
            {
                SpellConfig.R.Cast();
            }
            else if (SpellConfig.Q.Ready)
            {
                SpellConfig.Q.Cast(target);
            }
        }
示例#19
0
        public static void OnKeyPressed()
        {
            var target = Global.TargetSelector.GetSelectedTarget();

            if (target == null || !SpellManager.E.Ready)
            {
                return;
            }

            if (target.IsValidTarget(SpellManager.E.Range))
            {
                SpellManager.CastE(target);
            }

            var point = WallExtension.NearestWall(target, 430);

            if (point.IsZero)
            {
                return;
            }

            var pos = target.ServerPosition + (target.ServerPosition - point).Normalized() * 200;

            SpellManager.DrawingPred = pos;

            if (pos.Distance(Global.Player) <= SummonerSpells.Flash.Range && SummonerSpells.IsValid(SummonerSpells.Flash))
            {
                SpellManager.E.CastOnUnit(target);
                DelayAction.Queue(100, () => SummonerSpells.Flash.Cast(pos), new CancellationToken(false));
            }
        }
示例#20
0
        public static void OnTick(EntropyEventArgs args)
        {
            if (LocalPlayer.Instance.IsDead)
            {
                return;
            }

            if (Definitions.IsCulling())
            {
                DelayAction.Queue(() => { Orbwalker.Move(Hud.CursorPositionUnclipped); },
                                  100 + EnetClient.Ping);
            }

            if (Orbwalker.IsWindingUp)
            {
                return;
            }

            switch (Orbwalker.Mode)
            {
            case OrbwalkingMode.Combo:
                if (E.Ready)
                {
                    Combo.E(args);
                }

                if (R.Ready)
                {
                    Combo.R(args);
                }
                break;

            case OrbwalkingMode.LaneClear:
                if (Q.Ready)
                {
                    Laneclear.Q(args);
                }

                if (W.Ready)
                {
                    Laneclear.W(args);
                }
                break;

            case OrbwalkingMode.Harass:
                if (Q.Ready)
                {
                    Harass.Q(args);
                    Harass.ExtendedQ(args);
                }

                if (W.Ready)
                {
                    Harass.W(args);
                }
                break;
            }
        }
示例#21
0
        private static void Harass()
        {
            if (Player.ManaPercent() < Setup.Harass["Mana"].As <MenuSlider>().Value || !Setup.Harass["Key"].Enabled)
            {
                return;
            }

            if (Setup.Harass["E"].As <MenuBool>().Enabled&& Spells.E.Ready && Spells.Q.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.EQ.Range);
                var pred   = Spells.EQ.GetPrediction(target);
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High)
                {
                    if (Player.ServerPosition.Distance(target.ServerPosition) > Spells.Q.Range)
                    {
                        var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed));
                        Spells.Q.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range));
                        DelayAction.Queue((int)EDelay * 1000, () => Spells.E.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range)));
                    }
                    else
                    {
                        var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed));
                        Spells.Q.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150));
                        DelayAction.Queue((int)EDelay * 2000, () => Spells.E.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150)));
                    }
                }
            }

            if (Setup.Harass["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.Q.Range);
                var pred   = Spells.Q.GetPrediction(target);
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High)
                {
                    Spells.Q.Cast(pred.CastPosition);
                }
            }

            if (Setup.Harass["W"].As <MenuBool>().Enabled&& Spells.W.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.W.Range);
                var pred   = Spells.W.GetPrediction(target);
                if (target.IsValidTarget() && !Player.HasBuff("syndrawtooltip") && delay < Game.TickCount)
                {
                    if (Objects() != null && Objects().Distance(Player.ServerPosition) < Spells.W.Range - 25)
                    {
                        Spells.W.Cast(Objects().ServerPosition);
                        delay = Game.TickCount + 1000;
                        Spells.W.LastCastAttemptT = Game.TickCount;
                    }
                }
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Player.HasBuff("syndrawtooltip") && Game.TickCount - Spells.W.LastCastAttemptT > Game.Ping + 100)
                {
                    Spells.W.Cast(pred.CastPosition);
                }
            }
        }
示例#22
0
        private static void OnIssueOrder(Obj_AI_Base sender, Obj_AI_BaseIssueOrderEventArgs /*Obj_AI_BaseMissileClientDataEventArgs*/ Args)
        {
            if (!sender.IsMe)
            {
                return;
            }

            if (Args.OrderType != OrderType.AttackUnit || !E.Ready)
            {
                return;
            }

            if (Orbwalker.Mode != OrbwalkingMode.Combo && Orbwalker.Mode != OrbwalkingMode.Laneclear)
            {
                return;
            }

            var target = (AttackableUnit)Args.Target;

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            if (!Orbwalker.CanAttack() || !target.IsValidTarget(Me.AttackRange + Me.BoundingRadius + target.BoundingRadius - 20))
            {
                Args.ProcessEvent = false;
                return;
            }

            if (Orbwalker.Mode == OrbwalkingMode.Combo && ComboOption.UseE &&
                ComboOption.GetBool("ComboEReset").Enabled&& target.Type == GameObjectType.obj_AI_Hero)
            {
                if (ELogic((Obj_AI_Hero)target))
                {
                    DelayAction.Queue(1, () =>
                    {
                        //E.Cast(Me.ServerPosition.Extend(Args.Target.ServerPosition, E.Range - Args.Target.BoundingRadius));
                        Orbwalker.ResetAutoAttackTimer();
                        //Me.IssueOrder(OrderType.AttackUnit, target);
                    });
                }
            }
            else if (Orbwalker.Mode == OrbwalkingMode.Laneclear && JungleClearOption.HasEnouguMana() &&
                     JungleClearOption.UseE && target.IsMob())
            {
                if (ELogic((Obj_AI_Minion)target))
                {
                    DelayAction.Queue(1, () =>
                    {
                        // E.Cast(Me.ServerPosition.Extend(Args.Target.ServerPosition, E.Range - Args.Target.BoundingRadius));
                        Orbwalker.ResetAutoAttackTimer();
                        //Me.IssueOrder(OrderType.AttackUnit, target);
                    });
                }
            }
        }
示例#23
0
        public static void OnUpdate()
        {
            try
            {
                if (Global.Player.IsDead || Global.Orbwalker.IsWindingUp || Global.Player.IsRecalling())
                {
                    return;
                }

                foreach (var soldier in SoldierManager.Soldiers)
                {
                    if (soldier.Distance(Global.Player) > 660)
                    {
                        continue;
                    }

                    var enemy = GameObjects.Enemy.FirstOrDefault(x => x.Distance(soldier) <= 250 + x.BoundingRadius && !x.IsDead && x.MaxHealth > 10 && soldier.Distance(Global.Player) <= SpellConfig.Q.Range + 65 && soldier.Distance(Global.Player) > Global.Player.AttackRange);
                    if (enemy == null || Game.TickCount - _lastAa <= 1000)
                    {
                        continue;
                    }

                    _lastAa = Game.TickCount;
                    Global.Player.IssueOrder(OrderType.AttackUnit, enemy);
                    DelayAction.Queue(250, () => Global.Player.IssueOrder(OrderType.MoveTo, Game.CursorPos), new CancellationToken(false));
                }

                SpellConfig.R.Width = 133 * (3 + Global.Player.GetSpell(SpellSlot.R).Level);

                Insec.OnKeyPressed();

                switch (Global.Orbwalker.Mode)
                {
                case OrbwalkingMode.Combo:
                    Combo.OnUpdate();
                    break;

                case OrbwalkingMode.Mixed:
                    Harass.OnUpdate();
                    break;

                case OrbwalkingMode.Laneclear:
                    JungleClear.OnUpdate();
                    LaneClear.OnUpdate();
                    break;

                case OrbwalkingMode.None:
                    AzirHelper.Rect = null;
                    break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
示例#24
0
        private void OnProcessSpellCast(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs args)
        {
            if (sender.IsMe)
            {
                if (args.SpellData.Name == "AhriSeduce")
                {
                    if (Menu["combo"]["flashe"].Enabled)
                    {
                        var target = GetBestEnemyHeroTargetInRange(Menu["combo"]["rangee"].As <MenuSlider>().Value);


                        if (Flash.Ready && Flash != null && target.IsValidTarget())
                        {
                            DelayAction.Queue(50, () =>
                            {
                                Flash.Cast(target.ServerPosition);
                            });
                        }
                    }

                    if (Orbwalker.Mode == OrbwalkingMode.Combo)
                    {
                        var target = GetBestEnemyHeroTargetInRange(E.Range);

                        if (Menu["combo"]["rset"]["burstr"].Enabled && Menu["combo"]["rset"]["user"].Enabled)
                        {
                            if (target != null)
                            {
                                if (target.Health <
                                    Player.GetSpellDamage(target, SpellSlot.Q) +
                                    Player.GetSpellDamage(target, SpellSlot.W) +
                                    Player.GetSpellDamage(target, SpellSlot.E) +
                                    Player.GetSpellDamage(target, SpellSlot.R) * 3)
                                {
                                    if (Menu["combo"]["rset"]["waster"].As <MenuSlider>().Value >=
                                        target.CountEnemyHeroesInRange(600))
                                    {
                                        if (!Player.HasBuff("AhriTumble"))
                                        {
                                            if (R.Ready)
                                            {
                                                DelayAction.Queue(200, () =>
                                                {
                                                    R.Cast(
                                                        target.ServerPosition.Extend(Player.ServerPosition, -200));
                                                }
                                                                  );
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
示例#25
0
        private static void ThreshEq()
        {
            if (Main["harass"]["EqHarass"].As <MenuBool>().Enabled)
            {
                var target = TargetSelector.GetTarget(Main["combo"]["QMaximumRange"].As <MenuSlider>().Value);
                if (target == null)
                {
                    return;
                }
                if (target.IsInRange(_e.Range) && !target.HasBuff("threshQ") && _e.Ready)
                {
                    _e.Cast(target.Position.Extend(Thresh.ServerPosition, Vector3.Distance(target.Position, Thresh.Position) + 400));
                }
                var prediction = _q.GetPrediction(target);

                if (Main["whiteList"]["qWhiteList" + target.ChampionName.ToLower()].As <MenuBool>().Enabled&& target.IsInRange(_q.Range) && target.IsValidTarget() && !target.HasBuff("threshQ") && _q.Ready && target.Distance(Thresh) > _e.Range && !_e.Ready)
                {
                    if (prediction.HitChance >= HitChance.High)
                    {
                        _q.Cast(prediction.CastPosition);
                    }
                }
                if (target.HasBuff("threshQ") && Main["combo"]["q2"].As <MenuBool>().Enabled&& !target.IsUnderEnemyTurret())
                {
                    if (target.Distance(Thresh.ServerPosition) >= 400)
                    {
                        DelayAction.Queue(1000, () => _q.CastOnUnit(Thresh));
                    }
                }
                if (target.HasBuff("threshQ") && target.IsUnderEnemyTurret() && Main["combo"]["q2Turret"].As <MenuBool>().Enabled)
                {
                    if (target.Distance(Thresh.ServerPosition) >= 400)
                    {
                        DelayAction.Queue(1000, () => _q.CastOnUnit(Thresh));
                    }
                }

                var ally = GameObjects.AllyHeroes.Where(x => x.IsInRange(_q.Range + 400) && !x.IsDead && x.IsAlly && !x.IsMe).FirstOrDefault(x => x.Distance(Thresh.Position) <= 1400);

                if (ally != null && _w.Ready)
                {
                    if (ally.Distance(Thresh.ServerPosition) <= 700)
                    {
                        return;
                    }
                    if (target.HasBuff("threshQ"))
                    {
                        _w.Cast(ally.ServerPosition);
                    }
                    if (target.Distance(Thresh) <= 400 && Main["combo"]["wAlly"].As <MenuBool>().Enabled)
                    {
                        _w.Cast(ally.ServerPosition);
                    }
                }
            }
        }
示例#26
0
        private static void Game_OnUpdate()
        {
            BarrelManager.Barrels.RemoveAll(x => x.Object.IsDead);
            RemoveCC();
            Killsteal();

            var closestHittingBarrel = BarrelManager.GetBarrelsThatWillHit().FirstOrDefault();

            if (closestHittingBarrel != null)
            {
                var chainedBarrels = BarrelManager.GetChainedBarrels(closestHittingBarrel);
                var barrelToQ      = BarrelManager.GetBestBarrelToQ(chainedBarrels);
                if (barrelToQ != null && SpellManager.Q.Ready)
                {
                    var timeWhenCanE = LastECast + 500;
                    var delay        = timeWhenCanE - Game.TickCount;
                    delay = delay <= 0 ? 0 : delay;
                    var castDelay = MenuManager.Combo["triple"].Enabled ? delay : 0;
                    DelayAction.Queue(castDelay, () => SpellManager.Q.Cast(barrelToQ.Object));
                    return;
                }
            }

            if ((Orbwalker.Implementation.Mode == OrbwalkingMode.Combo || Orbwalker.Implementation.Mode == OrbwalkingMode.Mixed || Orbwalker.Implementation.Mode == OrbwalkingMode.Lasthit ||
                 Orbwalker.Implementation.Mode == OrbwalkingMode.Laneclear || MenuManager.Keys["comboToMouse"].Enabled || MenuManager.Keys["qBarrel"].Enabled) && MenuManager.Misc["aaBarrel"].Enabled)
            {
                AttackNearestBarrel();
            }

            if (MenuManager.Keys["comboToMouse"].Enabled)
            {
                AttackNearestBarrel();
                ComboToMouse();
            }

            if (MenuManager.Keys["qBarrel"].Enabled)
            {
                AttackNearestBarrel();
                QNearestBarrel();
            }

            switch (Orbwalker.Implementation.Mode)
            {
            case OrbwalkingMode.Combo:
                Combo();
                break;

            case OrbwalkingMode.Mixed:
                Harass();
                break;

            case OrbwalkingMode.Lasthit:
                LastHit();
                break;
            }
        }
示例#27
0
        public void Assasinate()
        {
            if (HasEvolvedJump)
            {
                if (MidAssasination)
                {
                    if (AssasinationTarget == null || AssasinationTarget.IsDead ||
                        Game.TickCount - StartAssasinationTick > 2500)
                    {
                        MidAssasination = false;

                        if (Variables.Spells[SpellSlot.E].Ready)
                        {
                            var mode  = Variables.Menu["combo"]["jumpMode"].Value; // 0 = old pos, 1 = mouse pos
                            var point = mode == 0 ? PreJumpPos : Game.CursorPos;

                            if (point.Distance(ObjectManager.GetLocalPlayer().ServerPosition) >
                                Variables.Spells[SpellSlot.E].Range)
                            {
                                PreJumpPos = ObjectManager.GetLocalPlayer()
                                             .ServerPosition.Extend(point, Variables.Spells[SpellSlot.E].Range);
                            }
                        }
                    }
                    else
                    {
                        Khazix.ExecuteAssasinationCombo(AssasinationTarget);
                    }
                }
                else if (Variables.Spells[SpellSlot.E].Ready)
                {
                    var selectedTarget = TargetSelector.GetSelectedTarget();
                    var bestEnemy      =
                        selectedTarget != null && selectedTarget.IsInRange(Variables.Spells[SpellSlot.E].Range) &&
                        ObjectManager.GetLocalPlayer().GetBurstDamage(selectedTarget) >= selectedTarget.Health
                            ? selectedTarget
                            : GameObjects.EnemyHeroes
                        .Where(x => x.IsValidTarget(Variables.Spells[SpellSlot.E].Range) &&
                               x.Health <= ObjectManager.GetLocalPlayer().GetBurstDamage(x))
                        .MaxBy(
                            x => TargetSelector.Implementation.Config["TargetsMenu"][
                                "priority" + selectedTarget?.ChampionName]
                            .Value);

                    if (bestEnemy != null)
                    {
                        PreJumpPos = ObjectManager.GetLocalPlayer().ServerPosition;
                        Variables.Spells[SpellSlot.E].Cast(bestEnemy.ServerPosition);
                        AssasinationTarget    = bestEnemy;
                        MidAssasination       = true;
                        StartAssasinationTick = Game.TickCount;
                        DelayAction.Queue(2500, () => MidAssasination = false);
                    }
                }
            }
        }
示例#28
0
        public static void OnProcessSpellCast(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs args)
        {
            if (!sender.IsMe || args.SpellSlot != SpellSlot.Q || args.SpellData.Name != "GragasQ")
            {
                return;
            }

            Barrel = new Geometry.Circle(args.End.To2D(), QRadius);
            DelayAction.Queue(4000, () => Barrel = null);
        }
示例#29
0
        private static void ResetAutoAttack()
        {
            Global.Orbwalker.AttackingEnabled = false;

            DelayAction.Queue((int)GetDelay(), () =>
            {
                Global.Orbwalker.AttackingEnabled = true;
                Global.Orbwalker.ResetAutoAttackTimer();
            });
        }
示例#30
0
 private static void Implementation_PostAttack(object sender, PostAttackEventArgs e)
 {
     if (sender is Obj_AI_Hero hero && e.Target is Obj_AI_Hero target)
     {
         if (hero.IsMe && target.GetPassiveMarks() == 1 && AutoIsCharged && SpellManager.W.Ready)
         {
             DelayAction.Queue(25, () => SpellManager.W.Cast());
         }
     }
 }