Ejemplo n.º 1
0
        public static void Combo(Obj_AI_Hero targetHero) //Thanks Roach_ For helping me with combo
        {
            if (!targetHero.IsValidTarget())
            {
                return;
            }
            var enemyQBuffed = targetHero.HasBuff("BlindMonkQOne", true);
            var autoAttacks  = Config.Menu.Item("aaBetween").GetValue <Slider>().Value;
            var passiveCount = LeeUtility.BuffCount("blindmonkpassive_cosmetic");

            if (!enemyQBuffed && autoAttacks != 0 && passiveCount >= Math.Abs(autoAttacks - 2))
            {
                return;
            }
            if (LeeUtility.MenuParamBool("useQC") && Q.IsReady() && Q.Instance.Name == "BlindMonkQOne" && R.IsReady() &&
                Vector3.DistanceSquared(targetHero.ServerPosition, Player.ServerPosition) <= 375 * 375)
            {
                LeeUtility.CastQ(targetHero, QMode.Combo);
            }
            else if (LeeUtility.MenuParamBool("useQC") && enemyQBuffed && R.IsReady())
            {
                if (targetHero.Distance(Player) <= R.Range)
                {
                    R.Cast(targetHero, LeeUtility.MenuParamBool("packetCast"));
                    Utility.DelayAction.Add(750, () => Q.Cast(targetHero));
                }
                else
                {
                    Player.IssueOrder(GameObjectOrder.MoveTo, targetHero.ServerPosition);
                }
            }
            else
            {
                if (LeeUtility.MenuParamBool("useQC") && LeeUtility.CastQ(targetHero, QMode.Combo))
                {
                    var qPos = Q.GetPrediction(targetHero);
                    Utility.DelayAction.Add(
                        (int)(targetHero.Distance(qPos.UnitPosition) / Q.Speed * 1000) + 300 + Game.Ping, () => Q.Cast());
                }
                if (Vector3.DistanceSquared(targetHero.ServerPosition, Player.ServerPosition) <= 350 * 350 &&
                    E.IsReady())
                {
                    if (E.IsReady() && LeeUtility.MenuParamBool("useE1C") &&
                        (E.Instance.Name == "BlindMonkEOne" || LeeUtility.MenuParamBool("useE2C")))
                    {
                        E.Cast();
                    }
                    else if (!Q.IsReady() && !E.IsReady() && !R.IsReady() && LeeUtility.MenuParamBool("useW1C") &&
                             (W.Instance.Name == "BlindMonkWOne" || LeeUtility.MenuParamBool("useW2C")) &&
                             Player.Mana - 50 >= 50)
                    {
                        W.Cast();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public static void Harass(Obj_AI_Hero targetHero, bool useW = true)
        {
            if (!targetHero.IsValidTarget())
            {
                _harassStage = HarassStage.Nothing;
                return;
            }
            switch (_harassStage)
            {
            case HarassStage.Nothing:
                _harassStage = HarassStage.Started;
                break;

            case HarassStage.Started:
                _harassStage = HarassStage.Doing;
                if (E.IsReady() &&
                    Vector3.DistanceSquared(Player.ServerPosition, targetHero.ServerPosition) <= 350 * 350 &&
                    LeeUtility.MenuParamBool("UseE1H"))
                {
                    E.Cast();
                    if (LeeUtility.MenuParamBool("UseE2H"))
                    {
                        Utility.DelayAction.Add(
                            250 - Game.Ping / 2 + 10, () =>
                        {
                            E.Cast(Player, true);
                            _harassStage = LeeUtility.MenuParamBool("UseQ1H") && Q.IsReady()
                                        ? HarassStage.Doing
                                        : HarassStage.Finished;
                        });
                    }
                }
                else
                {
                    _harassStage = HarassStage.Finished;
                }
                if (Q.IsReady() && LeeUtility.MenuParamBool("UseQ1H"))
                {
                    //LeeUtility.CastQ(targetHero, QMode.Harass);
                    if (LeeUtility.CastQ(targetHero, QMode.Harass) && LeeUtility.MenuParamBool("UseQ2H"))
                    {
                        var delay = (int)(targetHero.Distance(Player) / Q.Speed * 1000) + 300 + Game.Ping;
                        Utility.DelayAction.Add(
                            delay, () =>
                        {
                            if (Vector3.DistanceSquared(_harassInitialVector3, Player.ServerPosition) <= 600 * 600)
                            {
                                _harassInitialVector3 = Player.ServerPosition;
                            }
                            Q.Cast(targetHero);
                        });
                        Utility.DelayAction.Add(delay * 2, () => _harassStage = HarassStage.Finished);
                    }
                    else
                    {
                        _harassStage = HarassStage.Finished;
                    }
                }
                else
                {
                    _harassStage = HarassStage.Finished;
                }
                break;

            case HarassStage.Doing:
                break;

            case HarassStage.Finished:
                if (LeeUtility.MenuParamBool("UseWH") && useW)
                {
                    LeeUtility.WardJump(_harassInitialVector3, LeeUtility.MenuParamBool("UseWardWH"));
                }
                _harassStage = HarassStage.Nothing;
                break;
            }
        }
Ejemplo n.º 3
0
        public static void InsecCombo(Obj_AI_Hero targetHero)
        {
            if (((!W.IsReady() || Items.GetWardSlot() == null) &&
                 Player.SummonerSpellbook.CanUseSpell(LeeSinSharp.FlashSlot) != SpellState.Ready) || !R.IsReady() ||
                !Q.IsReady() || Q.Instance.Name != "BlindMonkQOne")
            {
                if (Config.Menu.Item("insec1").GetValue <KeyBind>().Active ||
                    Config.Menu.Item("insec2").GetValue <KeyBind>().Active)
                {
                    Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                }
                return;
            }
            if (!targetHero.IsValidTarget())
            {
                return;
            }
            var useFlash = LeeUtility.MenuParamBool("useFlashInsec") &&
                           ((Config.Menu.Item("insecMode").GetValue <StringList>().SelectedIndex == 0 &&
                             (!W.IsReady() || Items.GetWardSlot() == null)) ||
                            (Config.Menu.Item("insecMode").GetValue <StringList>().SelectedIndex == 1 &&
                             Player.SummonerSpellbook.CanUseSpell(LeeSinSharp.FlashSlot) == SpellState.Ready));
            //Console.WriteLine(Game.Time + useFlash.ToString());
            //useFlash = true;

            var pos  = Player.ServerPosition.To2D();
            var qPos = Q.GetPrediction(targetHero);

            if (Config.Menu.Item("insec1").GetValue <KeyBind>().Active)
            {
                if (LeeUtility.CastQ(targetHero, QMode.Insec))
                {
                    var delay = (int)(Player.Distance(qPos.UnitPosition) / Q.Speed * 1000) + 300 + Game.Ping;
                    Utility.DelayAction.Add(delay, () => Q.Cast());
                    if (useFlash)
                    {
                        Utility.DelayAction.Add(
                            (int)(delay * 1.2), () =>
                        {
                            if (Vector3.DistanceSquared(targetHero.ServerPosition, Player.ServerPosition) <=
                                375 * 375)
                            {
                                R.Cast(targetHero);
                                //Console.WriteLine("casted R");
                                Utility.DelayAction.Add(
                                    200 - Game.Ping,
                                    () =>
                                    Player.SummonerSpellbook.CastSpell(
                                        LeeSinSharp.FlashSlot, LeeUtility.GetInsecVector3(targetHero, true, pos)));
                            }
                        });
                    }
                    else
                    {
                        Utility.DelayAction.Add(
                            (int)(delay * 1.1), () =>
                        {
                            var wardJumpPos = LeeUtility.GetInsecVector3(targetHero, false, pos);
                            if (Vector3.DistanceSquared(wardJumpPos, Player.ServerPosition) <= 600 * 600)
                            {
                                LeeUtility.WardJump(wardJumpPos, true, false);
                                //Utility.DelayAction.Add(300 + Game.Ping, () => LeeUtility.WardJump(wardJumpPos, true, false));
                                Utility.DelayAction.Add(
                                    250 + Game.Ping, () =>
                                {
                                    if (Vector3.DistanceSquared(wardJumpPos, Player.ServerPosition) <= 100 * 100)
                                    {
                                        R.Cast(targetHero, LeeUtility.MenuParamBool("packetCast"));
                                    }
                                });
                            }
                        });
                    }
                }
                else
                {
                    Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                }
            }
            else if (Config.Menu.Item("insec2").GetValue <KeyBind>().Active)
            {
                var insecPos   = LeeUtility.GetInsecVector3(targetHero, useFlash, pos);
                var inDistance = Player.Distance(insecPos) <= (useFlash ? 400 : 600);
                if (useFlash)
                {
                    if (inDistance &&
                        Vector3.DistanceSquared(Player.ServerPosition, targetHero.ServerPosition) <= 375 * 375)
                    {
                        R.Cast(targetHero);
                        Utility.DelayAction.Add(
                            200 - Game.Ping, () => Player.SummonerSpellbook.CastSpell(LeeSinSharp.FlashSlot, insecPos));
                        Utility.DelayAction.Add(
                            250, () =>
                        {
                            Q.Cast(targetHero);
                            var delay = (int)(Player.Distance(targetHero) / Q.Speed * 1000) + 300 + Game.Ping;
                            Utility.DelayAction.Add(delay + 500, () => Q.Cast(targetHero));
                        });
                    }
                    else
                    {
                        Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                    }
                }
                else
                {
                    if (inDistance)
                    {
                        LeeUtility.WardJump(insecPos);
                        Utility.DelayAction.Add(250 + Game.Ping, () => R.Cast(targetHero, false));
                        Utility.DelayAction.Add(
                            250, () =>
                        {
                            var delay = (int)(Player.Distance(targetHero) / Q.Speed * 1000) + 300 + Game.Ping;
                            Q.Cast(targetHero);
                            Utility.DelayAction.Add(delay + 500, () => Q.Cast(targetHero));
                        });
                    }
                    else
                    {
                        Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                    }
                }
            }
        }