Beispiel #1
0
        private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe)
            {
                return;
            }

            if (SpellNames.Contains(args.SData.Name.ToLower()))
            {
                PassiveStacks = 2;
                passiveTimer  = Environment.TickCount + 3000;
                LastSpellTime = Environment.TickCount;
            }

            if (args.SData.Name.Equals("BlindMonkQOne", StringComparison.InvariantCultureIgnoreCase))
            {
                castQAgain = false;
                Core.DelayAction(delegate { castQAgain = true; }, 2900);
            }

            if (R.IsReady() && Flash.IsReady())
            {
                var target = InsecMenu.GetCheckBoxValue("insecMode")
                                 ? TargetSelector.SelectedTarget
                                 : TargetSelector.GetTarget(R.Range, DamageType.Physical);

                if (target == null)
                {
                    return;
                }
                if (args.SData.Name.Equals("BlindMonkRKick", StringComparison.InvariantCultureIgnoreCase) &&
                    InsecMenu.GetKeyBindValue("insecflash"))
                {
                    Core.DelayAction(delegate { Flash.Cast(GetInsecPos(target)); }, 80);
                }
            }

            if (args.SData.Name.Equals("summonerflash", StringComparison.InvariantCultureIgnoreCase) &&
                insecComboStep != InsecComboStepSelect.None)
            {
                var target = InsecMenu.GetCheckBoxValue("insecMode")
                                 ? TargetSelector.SelectedTarget
                                 : TargetSelector.GetTarget(Q.Range, DamageType.Physical);

                insecComboStep = InsecComboStepSelect.Pressr;

                Core.DelayAction(delegate { R.Cast(target); }, 80);
            }
            if (args.SData.Name.Equals("BlindMonkQTwo", StringComparison.InvariantCultureIgnoreCase))
            {
                waitingForQ2 = true;
                Core.DelayAction(delegate { waitingForQ2 = false; }, 3000);
            }
            if (args.SData.Name.Equals("BlindMonkRKick", StringComparison.InvariantCultureIgnoreCase))
            {
                insecComboStep = InsecComboStepSelect.None;
            }

            switch (args.SData.Name.ToLower())
            {
            case "blindmonkqone":
                LastQ         = Environment.TickCount;
                LastSpell     = Environment.TickCount;
                PassiveStacks = 2;
                break;

            case "blindmonkwone":
                LastW         = Environment.TickCount;
                LastSpell     = Environment.TickCount;
                PassiveStacks = 2;
                break;

            case "blindmonkeone":
                LastE         = Environment.TickCount;
                LastSpell     = Environment.TickCount;
                PassiveStacks = 2;
                break;

            case "blindmonkqtwo":
                LastQ2        = Environment.TickCount;
                LastSpell     = Environment.TickCount;
                PassiveStacks = 2;
                CheckQ        = false;
                break;

            case "blindmonkwtwo":
                LastW2        = Environment.TickCount;
                LastSpell     = Environment.TickCount;
                PassiveStacks = 2;
                break;

            case "blindmonketwo":
                LastQ         = Environment.TickCount;
                LastSpell     = Environment.TickCount;
                PassiveStacks = 2;
                break;

            case "blindmonkrkick":
                LastR         = Environment.TickCount;
                LastSpell     = Environment.TickCount;
                PassiveStacks = 2;
                break;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Put in here what you want to do when the mode is running
        /// </summary>
        public static void InsecCombo(AIHeroClient target)
        {
            if (target != null && target.IsVisible)
            {
                if (myHero.Distance(GetInsecPos(target)) < 200)
                {
                    insecComboStep = InsecComboStepSelect.Pressr;
                }
                else if (insecComboStep == InsecComboStepSelect.None &&
                         GetInsecPos(target).Distance(myHero.Position) < 600)
                {
                    insecComboStep = InsecComboStepSelect.Wgapclose;
                }
                else if (insecComboStep == InsecComboStepSelect.None &&
                         target.Distance(myHero) < Q.Range)
                {
                    insecComboStep = InsecComboStepSelect.Qgapclose;
                }

                switch (insecComboStep)
                {
                case InsecComboStepSelect.Qgapclose:

                    var prediction = Q.GetPrediction(target);
                    if (prediction.CollisionObjects.Count(h => h.IsEnemy && !h.IsDead && h is Obj_AI_Minion) >= 1 && InsecMenu.GetCheckBoxValue("inseccheck") && Q.IsReady())
                    {
                        foreach (var unit in ObjectManager.Get <Obj_AI_Base>().Where(obj => (((obj is Obj_AI_Minion) && myHero.GetSpellDamage(target, SpellSlot.Q) < obj.Health + 10) || (obj is AIHeroClient)) && obj.IsValidTarget(Q.Range) && obj.Distance(GetInsecPos(target)) < 500))
                        {
                            var pred = Q.GetPrediction(unit);
                            if (pred.HitChance >= HitChance.High)
                            {
                                Q.Cast(pred.CastPosition);
                            }
                            break;
                        }
                    }

                    if (!(target.HasQBuff()) && QState)
                    {
                        CastQ(target, MiscMenu.GetCheckBoxValue("smiteq"));
                    }
                    else if (target.HasQBuff())
                    {
                        Q2.Cast();
                        insecComboStep = InsecComboStepSelect.Wgapclose;
                    }
                    else
                    {
                        if (Q.Name == "blindmonkqtwo" && ReturnQBuff().Distance(target) <= 600 && target.HasQBuff())
                        {
                            Q2.Cast();
                        }
                    }
                    break;

                case InsecComboStepSelect.Wgapclose:

                    if (myHero.Distance(target) < WardRange)
                    {
                        WardJumper.WardJump(GetInsecPos(target), false, true, true);


                        if (FindBestWardItem() == null && R.IsReady() &&
                            InsecMenu.GetCheckBoxValue("insecnoward") &&
                            Flash.IsReady())
                        {
                            if ((GetInsecPos(target).Distance(myHero.Position) < FlashRange &&
                                 LastWard + 1000 < Environment.TickCount) || !W.IsReady())
                            {
                                Flash.Cast(GetInsecPos(target));
                            }
                        }
                    }
                    else if (myHero.Distance(target) < WardFlashRange)
                    {
                        WardJumper.WardJump(target.Position);

                        if (R.IsReady() && InsecMenu.GetCheckBoxValue("insecnoward") &&
                            Flash.IsReady())
                        {
                            if (myHero.Distance(target) < FlashRange - 25)
                            {
                                if (FindBestWardItem() == null || LastWard + 1000 < Environment.TickCount)
                                {
                                    Flash.Cast(GetInsecPos(target));
                                }
                            }
                        }
                    }
                    break;

                case InsecComboStepSelect.Pressr:
                    R.Cast(target);
                    break;
                }
            }
        }
Beispiel #3
0
        protected override void CreateMenu()
        {
            try
            {
                #region Mainmenu
                Menu = MainMenu.AddMenu("UB" + player.Hero, "UBAddons.MainMenu" + player.Hero, "UB" + player.Hero + " - UBAddons - by U.Boruto");
                Menu.AddGroupLabel("General Setting");
                Menu.CreatSlotHitChance(SpellSlot.Q);
                Menu.CreatSlotHitChance(SpellSlot.R);
                #endregion

                #region Insec
                InsecMenu = Menu.AddSubMenu("Insec", "UBAddons.Insec" + player.Hero, "UB" + player.Hero + " - Settings your insec below");
                {
                    InsecMenu.Add("UBAddons.Azir.Insec.Key", new KeyBind("Insec Key", true, KeyBind.BindTypes.HoldActive));
                    InsecMenu.Add("UBAddons.Azir.Insec.To", new ComboBox("Insec Target to", 0, "My Cursor", "My Turret", "My Ally", "Select Position"));
                }
                #endregion

                #region Combo
                ComboMenu = Menu.AddSubMenu("Combo", "UBAddons.ComboMenu" + player.Hero, "UB" + player.Hero + " - Settings your combo below");
                {
                    ComboMenu.CreatSlotCheckBox(SpellSlot.Q);
                    ComboMenu.CreatSlotCheckBox(SpellSlot.W);
                    ComboMenu.Add("UBAddons.Azir.W.Soldier", new Slider("Max soldier", 2, 1, 3));
                    ComboMenu.CreatSlotCheckBox(SpellSlot.E);
                    ComboMenu.Add("UBAddons.Azir.E.OnlyCanKill", new CheckBox("E to Killable Target only"));
                    ComboMenu.CreatSlotCheckBox(SpellSlot.R);
                    ComboMenu.CreatSlotComboBox(SpellSlot.R, 0, "Smart", "Ally", "Turret", "Push");
                }
                #endregion

                #region Harass
                HarassMenu = Menu.AddSubMenu("Harass", "UBAddons.HarassMenu" + player.Hero, "UB" + player.Hero + " - Settings your harass below");
                {
                    HarassMenu.CreatSlotCheckBox(SpellSlot.Q);
                    HarassMenu.CreatSlotCheckBox(SpellSlot.W);
                    HarassMenu.Add("UBAddons.Azir.W.Soldier", new Slider("Max soldier", 2, 1, 3));
                    HarassMenu.CreatManaLimit();
                }
                #endregion

                #region LaneClear
                LaneClearMenu = Menu.AddSubMenu("LaneClear", "UBAddons.LaneClear" + player.Hero, "UB" + player.Hero + " - Settings your laneclear below");
                {
                    LaneClearMenu.CreatLaneClearOpening();
                    LaneClearMenu.CreatSlotCheckBox(SpellSlot.Q, null, false);
                    LaneClearMenu.CreatSlotHitSlider(SpellSlot.Q, 5, 1, 10);
                    LaneClearMenu.CreatSlotCheckBox(SpellSlot.W, null, false);
                    LaneClearMenu.Add("UBAddons.Azir.W.Soldier", new Slider("Max soldier", 2, 1, 3));
                    LaneClearMenu.CreatSlotCheckBox(SpellSlot.E, null, false);
                    LaneClearMenu.CreatManaLimit();
                }
                #endregion

                #region JungleClear
                JungleClearMenu = Menu.AddSubMenu("JungleClear", "UBAddons.JungleClear" + player.Hero, "UB" + player.Hero + " - Settings your jungleclear below");
                {
                    JungleClearMenu.CreatSlotCheckBox(SpellSlot.Q, null, false);
                    JungleClearMenu.CreatSlotCheckBox(SpellSlot.W);
                    JungleClearMenu.Add("UBAddons.Azir.W.Soldier", new Slider("Max soldier", 2, 1, 3));
                    JungleClearMenu.CreatSlotCheckBox(SpellSlot.E, null, false);
                    JungleClearMenu.CreatManaLimit();
                }
                #endregion

                #region Lasthit
                LasthitMenu = Menu.AddSubMenu("Lasthit", "UBAddons.Lasthit" + player.Hero, "UB" + player.Hero + " - Settings your unkillable minion below");
                {
                    LasthitMenu.CreatLasthitOpening();
                    LasthitMenu.CreatSlotCheckBox(SpellSlot.Q);
                    LasthitMenu.CreatManaLimit();
                }
                #endregion

                #region Misc
                MiscMenu = Menu.AddSubMenu("Misc", "UBAddons.Misc" + player.Hero, "UB" + player.Hero + " - Settings your misc below");
                {
                    MiscMenu.AddGroupLabel("Anti Gapcloser settings");
                    MiscMenu.CreatMiscGapCloser();
                    MiscMenu.CreatSlotCheckBox(SpellSlot.R, "GapCloser");
                    MiscMenu.AddGroupLabel("Interrupter settings");
                    MiscMenu.CreatDangerValueBox();
                    MiscMenu.CreatSlotCheckBox(SpellSlot.R, "Interrupter");
                    MiscMenu.AddGroupLabel("Killsteal settings");
                    MiscMenu.CreatSlotCheckBox(SpellSlot.Q, "KillSteal");
                    MiscMenu.CreatSlotCheckBox(SpellSlot.W, "KillSteal");
                    MiscMenu.CreatSlotCheckBox(SpellSlot.E, "KillSteal");
                    MiscMenu.CreatSlotCheckBox(SpellSlot.R, "KillSteal");
                }
                #endregion

                #region Drawings
                DrawMenu = Menu.AddSubMenu("Drawings");
                {
                    DrawMenu.CreatDrawingOpening();
                    DrawMenu.Add("UBAddons.Insec.Position", new CheckBox("Draw Selected Position"));
                    DrawMenu.CreatColorPicker(SpellSlot.Q);
                    DrawMenu.CreatColorPicker(SpellSlot.W);
                    DrawMenu.CreatColorPicker(SpellSlot.E);
                    DrawMenu.CreatColorPicker(SpellSlot.R);
                    DrawMenu.CreatColorPicker(SpellSlot.Unknown);
                }
                #endregion

                DamageIndicator.Initalize(MenuValue.Drawings.ColorDmg);
            }
            catch (Exception exception)
            {
                Debug.Print(exception.ToString(), Console_Message.Error);
            }
        }
Beispiel #4
0
        /// <summary>
        /// This event is triggered every tick of the game
        /// </summary>
        /// <param name="args"></param>
        ///



        private static void Game_OnTick(EventArgs args)
        {
            if (Extensions.doubleClickReset <= Environment.TickCount && Extensions.clickCount != 0)
            {
                Extensions.doubleClickReset = float.MaxValue;
                Extensions.clickCount       = 0;
            }

            if (Extensions.clickCount >= 2)
            {
                Extensions.resetTime       = Environment.TickCount + 3000;
                Extensions.ClicksecEnabled = true;
                Extensions.InsecClickPos   = Game.CursorPos;
                Extensions.clickCount      = 0;
            }


            if (Extensions.passiveTimer <= Environment.TickCount)
            {
                Extensions.PassiveStacks = 0;
            }

            if (Extensions.resetTime <= Environment.TickCount && !InsecMenu.GetKeyBindValue("insec") &&
                Extensions.ClicksecEnabled)
            {
                Extensions.ClicksecEnabled = false;
            }

            if (Extensions.q2Timer <= Environment.TickCount)
            {
                Extensions.q2Done = false;
            }

            if (myHero.IsDead || MenuGUI.IsChatOpen || myHero.IsRecalling())
            {
                return;
            }


            if ((InsecMenu.GetCheckBoxValue("insecMode") ? TargetSelector.SelectedTarget
                     : TargetSelector.GetTarget(SpellsManager.Q.Range, DamageType.Physical)) == null)
            {
                Extensions.insecComboStep = Extensions.InsecComboStepSelect.None;
            }

            if (ComboMenu.GetKeyBindValue("starCombo"))
            {
                WardCombo.Execute();
            }

            if (MiscMenu.GetCheckBoxValue("igniteks"))
            {
                var newTarget = TargetSelector.GetTarget(600, DamageType.True);

                if (newTarget != null && SpellsManager.igniteSlot != SpellSlot.Unknown &&
                    myHero.Spellbook.CanUseSpell(SpellsManager.igniteSlot) == SpellState.Ready &&
                    ObjectManager.Player.GetSummonerSpellDamage(newTarget, DamageLibrary.SummonerSpells.Ignite) > newTarget.Health)
                {
                    myHero.Spellbook.CastSpell(SpellsManager.igniteSlot, newTarget);
                }
            }

            if (InsecMenu.GetKeyBindValue("insec") && SpellsManager.R.IsReady())
            {
                if (InsecMenu.GetCheckBoxValue("insecorbw"))
                {
                    Extensions.Orbwalk(Game.CursorPos);
                }

                var newTarget = InsecMenu.GetCheckBoxValue("insecMode") ? TargetSelector.SelectedTarget : TargetSelector.GetTarget(SpellsManager.Q.Range, DamageType.Physical);

                if (newTarget != null)
                {
                    Insec.InsecCombo(newTarget);
                }
            }
            else
            {
                Extensions.isNullInsecPos = true;
                Extensions.wardJumped     = false;
            }

            if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                Extensions.insecComboStep = Extensions.InsecComboStepSelect.None;
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                Combo.Execute();
            }
            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                Harass.Execute();
            }
            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear))
            {
                LaneClear.Execute();
            }
            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
            {
                JungleClear.Execute();
            }

            Killsteal.Execute();


            if (WardJumpMenu.GetKeyBindValue("wardjump"))
            {
                WardJumper.WardjumpToMouse();
            }

            if (InsecMenu.GetKeyBindValue("insecflash"))
            {
                Extensions.Orbwalk(Game.CursorPos);

                var target = TargetSelector.GetTarget(SpellsManager.R.Range, DamageType.Physical);
                if (target == null)
                {
                    return;
                }

                if (SpellsManager.R.IsReady() && !target.IsZombie &&
                    SpellsManager.Flash.IsReady() &&
                    target.IsValidTarget(SpellsManager.R.Range))
                {
                    SpellsManager.R.Cast(target);
                }
            }


            if (!ComboMenu.GetCheckBoxValue("rkickkill") || !SpellsManager.R.IsReady())
            {
                return;
            }

            AIHeroClient t =
                EntityManager.Heroes.Enemies.Find(
                    e =>
                    e.IsValidTarget(SpellsManager.Q.Range + SpellsManager.W.Range) && !e.IsDead && !e.IsZombie &&
                    e.Distance(Game.CursorPos) < e.Distance(ObjectManager.Player.Position) &&

                    !e.IsValidTarget(myHero.GetAutoAttackRange(null) + 65) && e.Health < e.MaxHealth * 0.14);

            if (t == null)
            {
                return;
            }

            foreach (var enemy in EntityManager.Heroes.Enemies.Where(e => e.Distance(t.Position) < 800 && e.NetworkId != t.NetworkId && ObjectManager.Player.Distance(e) < ObjectManager.Player.Distance(t)))
            {
                toPolygon = new Geometry2.Rectangle(t.Position.To2D(), t.Position.To2D().Extend(ObjectManager.Player.Position.To2D(), 800), 100).ToPolygon();
                toPolygon.Draw(Color.Blue, 3);

                if (toPolygon.IsInside(enemy.Position.To2D()))
                {
                    SpellsManager.R.Cast(enemy);
                }
            }


            if (ComboMenu.GetCheckBoxValue("rkick"))
            {
                float leeSinRKickDistance = 700;
                float leeSinRKickWidth    = 100;
                var   minREnemies         = ComboMenu.GetSliderValue("rkickcount");
                foreach (var enemy in EntityManager.Heroes.Enemies)
                {
                    var startPos  = enemy.ServerPosition;
                    var endPos    = myHero.ServerPosition.Extend(startPos, myHero.Distance(enemy) + leeSinRKickDistance);
                    var rectangle = new Geometry.Polygon.Rectangle(startPos, endPos, leeSinRKickWidth);

                    if (EntityManager.Heroes.Enemies.Count(x => rectangle.IsInside(x)) >= minREnemies)
                    {
                        SpellsManager.R.Cast(enemy);
                    }
                }
            }
        }
Beispiel #5
0
        /// <summary>
        /// Normal drawings
        /// </summary>
        /// <param name="args"></param>
        private static void Drawing_OnDraw(EventArgs args)
        {
            var newTarget = InsecMenu.GetCheckBoxValue("insecMode") ? TargetSelector.SelectedTarget : TargetSelector.GetTarget(Q.Range, DamageType.Physical);


            if (Extensions.ClicksecEnabled && InsecMenu.GetCheckBoxValue("clickInsec"))
            {
                Drawing.DrawCircle(Extensions.InsecClickPos, 100, Color.DeepSkyBlue);
            }

            var playerPos = Drawing.WorldToScreen(ObjectManager.Player.Position);

            if (InsecMenu.GetKeyBindValue("insecflash"))
            {
                Drawing.DrawText(playerPos.X - 55, playerPos.Y + 40, Color.Yellow, "Flash Insec enabled");
            }

            if (DrawingsMenu.GetCheckBoxValue("drawinseclines") && R.IsReady())
            {
                if (newTarget != null && newTarget.IsVisible && newTarget.IsValidTarget() && !newTarget.IsDead && myHero.Distance(newTarget) < 3000)
                {
                    Vector2 targetPos = Drawing.WorldToScreen(newTarget.Position);
                    Drawing.DrawLine(
                        Extensions.InsecLinePos.X,
                        Extensions.InsecLinePos.Y,
                        targetPos.X,
                        targetPos.Y,
                        3,
                        Color.Gold);

                    Drawing.DrawText(
                        Drawing.WorldToScreen(newTarget.Position).X - 40,
                        Drawing.WorldToScreen(newTarget.Position).Y + 10,
                        Color.White,
                        "Selected Target");

                    Drawing.DrawCircle(Extensions.GetInsecPos(newTarget), 100, Color.DeepSkyBlue);
                }
            }

            if (!DrawingsMenu.GetCheckBoxValue("drawsenabled"))
            {
                return;
            }



            if (WardJumpMenu.GetKeyBindValue("wardjump") && DrawingsMenu.GetCheckBoxValue("drawwardjump"))
            {
                Drawing.DrawCircle(Extensions.JumpPos.To3D(), 20, Color.Red);
                Drawing.DrawCircle(myHero.Position, 600, Color.Red);
            }
            var readyDraw = DrawingsMenu.GetCheckBoxValue("readyDraw");

            if (DrawingsMenu.GetCheckBoxValue("qDraw") && readyDraw ? Q.IsReady() : DrawingsMenu.GetCheckBoxValue("qDraw"))
            {
                Circle.Draw(QColorSlide.GetSharpColor(), Q.Range, 1f, Player.Instance);
            }

            if (DrawingsMenu.GetCheckBoxValue("wDraw") && readyDraw ? W.IsReady() : DrawingsMenu.GetCheckBoxValue("wDraw"))
            {
                Circle.Draw(WColorSlide.GetSharpColor(), W.Range, 1f, Player.Instance);
            }

            if (DrawingsMenu.GetCheckBoxValue("eDraw") && readyDraw ? E.IsReady() : DrawingsMenu.GetCheckBoxValue("eDraw"))
            {
                Circle.Draw(EColorSlide.GetSharpColor(), E.Range, 1f, Player.Instance);
            }

            if (DrawingsMenu.GetCheckBoxValue("rDraw") && readyDraw ? R.IsReady() : DrawingsMenu.GetCheckBoxValue("rDraw"))
            {
                Circle.Draw(RColorSlide.GetSharpColor(), R.Range, 1f, Player.Instance);
            }
        }