public static void Game_OnTick(EventArgs args)
        {
            updatespells();

            if (Insec.NewInsec)
            {
                var rpos = Player.Instance.ServerPosition.Extend(Insec.insectpos(), Azir.R.Range).To3D();

                var qtime = Game.Time - Insec.qtime;
                if ((qtime > 0.1f && qtime < 0.1) || TargetSelector.SelectedTarget.IsValidTarget(Azir.R.Range - 75))
                {
                    Azir.R.Cast(rpos);
                }
            }

            if (Menus.ComboMenu.keybind("key"))
            {
                Combo.Execute();
            }

            if (Menus.HarassMenu.keybind("key") || Menus.HarassMenu.keybind("toggle"))
            {
                Harass.Execute();
            }
            if (Menus.LaneClearMenu.keybind("key"))
            {
                LaneClear.Execute();
            }
            if (Menus.JungleClearMenu.keybind("key"))
            {
                JungleClear.Execute();
            }
            if (Menus.JumperMenu.keybind("jump"))
            {
                Jumper.Jump(Game.CursorPos);
            }
            if (Menus.JumperMenu.keybind("normal"))
            {
                var target = TargetSelector.SelectedTarget;
                Insec.Normal(target);
            }

            if (Menus.JumperMenu.keybind("new"))
            {
                Insec.New();
            }

            if (Menus.Auto.checkbox("tower"))
            {
                var azirtower =
                    ObjectManager.Get <GameObject>()
                    .FirstOrDefault(o => o != null && o.Name.ToLower().Contains("towerclicker") && Player.Instance.Distance(o) < 500);
                if (azirtower != null && azirtower.CountEnemeis(800) >= Menus.Auto.slider("Tenemy"))
                {
                    Player.UseObject(azirtower);
                }
            }

            Insec.NormalInsec = Menus.JumperMenu.keybind("normal");
            Insec.NewInsec    = Menus.JumperMenu.keybind("new");
        }
        public static void Drawing_OnDraw(EventArgs args)
        {
            // Insec Helper
            var target = TargetSelector.SelectedTarget;
            var colors = System.Drawing.Color.White;

            if (Menus.DrawMenu.checkbox("insec") && (Insec.NormalInsec || Insec.NewInsec))
            {
                var   insecpos = Insec.insectpos(target);
                float x;
                float y;
                if (target == null)
                {
                    x = Game.CursorPos.WorldToScreen().X;
                    y = Game.CursorPos.WorldToScreen().Y - 15;
                    Drawing.DrawText(x, y, colors, "SELECT A TARGET", 5);
                }
                else
                {
                    x = target.ServerPosition.WorldToScreen().X;
                    y = target.ServerPosition.WorldToScreen().Y;
                    Drawing.DrawText(x, y, colors, "SELECTED TARGET", 5);
                    Circle.Draw(Color.Red, target.BoundingRadius, target.ServerPosition);
                    if (Insec.NewInsec && !Orbwalker.AzirSoldiers.Any(s => s.IsInRange(target, 420) && s.IsAlly))
                    {
                        x = Game.CursorPos.WorldToScreen().X;
                        y = Game.CursorPos.WorldToScreen().Y - 15;
                        Drawing.DrawText(x, y, colors, "CREATE A SOLDIER NEAR THE TARGET FIRST", 5);
                    }
                }

                if (insecpos == Vector3.Zero)
                {
                    x = Game.CursorPos.WorldToScreen().X;
                    y = Game.CursorPos.WorldToScreen().Y - 15;
                    Drawing.DrawText(x, y, colors, "Cant Detect Insec Position", 5);
                }
                else
                {
                    x = insecpos.WorldToScreen().X;
                    y = insecpos.WorldToScreen().Y;
                    Drawing.DrawText(x, y, colors, "Insec Position", 5);
                }

                if (target != null && insecpos != Vector3.Zero)
                {
                    var pos  = target.ServerPosition.Extend(insecpos, -200).To3D();
                    var rpos = Player.Instance.ServerPosition.Extend(insecpos, Azir.R.Range).To3D();
                    Circle.Draw(Color.White, 100, rpos);
                    Circle.Draw(Color.White, 100, pos);
                    Circle.Draw(Color.White, 200, insecpos);
                    Line.DrawLine(colors, pos, rpos);
                }
            }

            // Spells Drawings
            foreach (var spell in Azir.SpellList)
            {
                var color = Menus.ColorMenu.Color(spell.Slot.ToString());
                var draw  = Menus.DrawMenu.checkbox(spell.Slot.ToString());

                if (draw)
                {
                    Circle.Draw(new ColorBGRA(color.R, color.G, color.B, color.A), spell.Range, Player.Instance.ServerPosition);
                }
            }
        }
Esempio n. 3
0
        public static void Execute()
        {
            var menu   = Menus.ComboMenu;
            var QS     = Orbwalker.ValidAzirSoldiers.Count(s => s.IsAlly) >= menu.slider("QS");
            var Q      = QS && menu.checkbox("Q") && Azir.Q.IsReady();
            var Qaoe   = menu.checkbox("Qaoe");
            var W      = menu.checkbox("W") && Azir.W.IsReady();
            var E      = menu.checkbox("E") && Azir.E.IsReady();
            var R      = menu.checkbox("R") && Azir.R.IsReady();
            var Wsave  = menu.checkbox("Wsave") && Azir.W.Handle.Ammo < 2;
            var Wlimit = menu.slider("WS") >= Orbwalker.ValidAzirSoldiers.Count(s => s.IsAlly);
            var target = TargetSelector.GetTarget(Azir.Q.Range + 25, DamageType.Magical);

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

            if (W && Wlimit)
            {
                if (Wsave)
                {
                    return;
                }

                if (target.IsValidTarget(Azir.W.Range))
                {
                    var pred = Azir.W.GetPrediction(target);
                    Azir.W.Cast(pred.CastPosition);
                }
                if (menu.checkbox("Q") && !target.IsValidTarget(Azir.W.Range) && Azir.Q.IsReady() &&
                    Player.Instance.Mana > Azir.Q.Mana() + Azir.W.Mana() && target.IsValidTarget(Azir.Q.Range - 25) && menu.checkbox("WQ"))
                {
                    var p = Player.Instance.Position.Extend(target.Position, Azir.W.Range);
                    Azir.W.Cast(p.To3D());
                }
            }

            if (Orbwalker.AzirSoldiers.Count(s => s.IsAlly) == 0)
            {
                return;
            }

            if (Q)
            {
                var predQ = Azir.Q.GetPrediction(target);
                if (predQ.HitChance >= HitChance.High || target.IsCC())
                {
                    Azir.Q.Cast(predQ.CastPosition);
                }

                if (Q && E && Player.Instance.Mana > Azir.Q.Mana() + Azir.E.Mana() && target.Ehit(predQ.CastPosition) &&
                    predQ.HitChance >= HitChance.Medium)
                {
                    if ((target.CountEnemeis(750) >= menu.slider("Esafe")) || (menu.slider("EHP") >= Player.Instance.HealthPercent) ||
                        (!menu.checkbox("Edive") && target.IsUnderHisturret()))
                    {
                        return;
                    }
                    if (Azir.E.Cast(predQ.CastPosition))
                    {
                        Azir.Q.Cast(predQ.CastPosition);
                    }
                }

                if (Qaoe)
                {
                    var enemies = EntityManager.Heroes.Enemies.Where(e => e.IsValidTarget(Azir.Q.Range) && e.IsKillable());
                    var pred    = Prediction.Position.PredictCircularMissileAoe(
                        enemies.Cast <Obj_AI_Base>().ToArray(),
                        Azir.Q.Range,
                        (int)Orbwalker.AzirSoldierAutoAttackRange,
                        Azir.Q.CastDelay,
                        Azir.Q.Speed);
                    var castpos =
                        pred.OrderByDescending(p => p.GetCollisionObjects <AIHeroClient>().Length)
                        .FirstOrDefault(p => p.CollisionObjects.Contains(target));
                    if (castpos?.GetCollisionObjects <AIHeroClient>().Length > 1)
                    {
                        Azir.Q.Cast(castpos.CastPosition);
                    }
                }
            }

            if (E && target.Ehit())
            {
                if ((target.CountEnemeis(750) >= menu.slider("Esafe")) || (menu.slider("EHP") >= Player.Instance.HealthPercent) ||
                    (menu.checkbox("Edive") && target.IsUnderEnemyturret() && target.IsUnderHisturret()))
                {
                    return;
                }

                var time     = Player.Instance.Distance(target) / Azir.E.Speed;
                var killable = target.Damage() >= Prediction.Health.GetPrediction(target, (int)time);
                if (menu.checkbox("Ekill") && killable && Player.Instance.Mana >= Common.Mana())
                {
                    Azir.E.Cast(target);
                }
                else
                {
                    Azir.E.Cast(target);
                }
            }
            if (R)
            {
                var Raoe = Player.Instance.CountEnemeis(Azir.R.Range) >= menu.slider("Raoe") ||
                           Player.Instance.CountEnemeis(Azir.R.Width) >= menu.slider("Raoe");

                if (target.IsValidTarget(Azir.R.Range - 25))
                {
                    if ((menu.checkbox("Rkill") && Azir.R.GetDamage(target) >= Prediction.Health.GetPrediction(target, Azir.R.CastDelay)) ||
                        (menu.checkbox("Rsave") && menu.slider("RHP") >= Player.Instance.HealthPercent) || (Raoe))
                    {
                        Azir.R.Cast(target.Rpos());
                    }
                }
            }

            if (menu.checkbox("insec") && target.IsKillable() && !target.IsValidTarget(Azir.R.Range))
            {
                if (target.CountEnemeis(750) >= menu.slider("Esafe") || menu.slider("EHP") >= Player.Instance.HealthPercent)
                {
                    return;
                }

                var time = Azir.R.CastDelay + Azir.Q.CastDelay + Azir.E.CastDelay;
                var kill = target.Damage() + 100 > Prediction.Health.GetPrediction(target, time);
                if (kill)
                {
                    Insec.Normal(target);
                }
            }
        }