示例#1
0
        private static void OnTick(EventArgs args)
        {
            if (doubleClickReset <= Environment.TickCount && clickCount != 0)
            {
                doubleClickReset = float.MaxValue;
                clickCount       = 0;
            }

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

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

            if (TargetSelector.GetTarget(Q.Range, DamageType.Physical) == null)
            {
                insecComboStep = InsecComboStepSelect.None;
            }

            if (starCombo)
            {
                WardCombo();
            }

            if (ElLeeSinIgniteKS)
            {
                var newTarget = TargetSelector.GetTarget(600, DamageType.True);

                if (newTarget != null && ignite != null && ignite.IsReady() && ObjectManager.Player.GetSummonerSpellDamage(newTarget, DamageLibrary.SummonerSpells.Ignite) > newTarget.Health)
                {
                    ignite.Cast(newTarget);
                }
            }

            if (InsecEnabled)
            {
                if (insecOrbwalk)
                {
                    Orbwalk(Game.CursorPos);
                }

                var newTarget = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

                if (newTarget != null && R.IsReady())
                {
                    InsecCombo(newTarget);
                }
            }
            else
            {
                isNullInsecPos = true;
            }

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

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                Combo();
            }
            else if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
            {
                AllClear();
                JungleClear();
            }
            else if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                Harass();
            }

            if (ElLeeSinWardjump)
            {
                Orbwalk(Game.CursorPos);
                WardjumpToMouse();
            }

            if (ElLeeSinInsecUseInstaFlash)
            {
                Orbwalk(Game.CursorPos);

                var target = TargetSelector.GetTarget(flashSlot.Range - 25, DamageType.Physical);

                if (target == null)
                {
                    return;
                }

                if (!R.IsReady() && !flashSlot.IsReady())
                {
                    castR = false;
                    return;
                }

                if (GetInsecPos(target).Distance(myHero.Position) < 425 && ElLeeSinInsecUseInstaFlash && flashSlot.IsReady() && R.IsReady())
                {
                    flashSlot.Cast(GetInsecPos(target));
                    castR = true;
                    return;
                }

                if (R.IsReady() && !target.IsZombie && R.IsInRange(target) && castR)
                {
                    R.Cast(target);
                    castR = false;
                }
            }

            if (ElLeeSinComboNew)
            {
                float leeSinRKickDistance = 700;
                float leeSinRKickWidth    = 100;
                var   minREnemies         = ElLeeSinComboRCount;
                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)
                    {
                        R.Cast(enemy);
                    }
                }
            }
        }
示例#2
0
        private static void OnProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe)
            {
                return;
            }

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

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

            if (R.IsReady() && flashSlot.IsReady())
            {
                var target = TargetSelector.GetTarget(R.Range, DamageType.Physical);

                if (target == null)
                {
                    return;
                }
            }

            if (args.SData.Name == "summonerflash" && insecComboStep != InsecComboStepSelect.None)
            {
                var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

                insecComboStep = InsecComboStepSelect.Pressr;

                Core.DelayAction(delegate { R.Cast(target); }, 80);
            }

            if (args.SData.Name == "blindmonkqtwo")
            {
                waitingForQ2 = true;
                Core.DelayAction(delegate { waitingForQ2 = false; }, 3000);
            }
            if (args.SData.Name == "BlindMonkRKick")
            {
                insecComboStep = InsecComboStepSelect.None;
            }

            switch (args.SData.Name)
            {
            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;
            }
        }
示例#3
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

            if (target == null)
            {
                return;
            }

            UseItems(target);

            if (Q.IsReady() && Q.Name == "BlindMonkQOne" && ElLeeSinComboQ)
            {
                CastQ(target, ElLeeSinSmiteQ);
            }

            if (!target.IsZombie && R.IsReady() && ElLeeSinComboR && ElLeeSinComboQ && target.IsValidTarget(R.Range) && (myHero.GetSpellDamage(target, SpellSlot.R) >= target.Health || target.HasQBuff() && target.Health < myHero.GetSpellDamage(target, SpellSlot.R) + Q2Damage(target, myHero.GetSpellDamage(target, SpellSlot.R))))
            {
                R.Cast(target);
            }

            if (target.HasQBuff() && ElLeeSinComboQ2)
            {
                if (!target.IsZombie && target.HasQBuff() && target.Health < myHero.GetSpellDamage(target, SpellSlot.R) + Q2Damage(target, myHero.GetSpellDamage(target, SpellSlot.R)))
                {
                    if (ElLeeSinComboKSR)
                    {
                        R.Cast(target);
                    }
                }

                var prediction = Q.GetPrediction(target);

                if (castQAgain || target.HasBuffOfType(BuffType.Knockback) && !myHero.IsValidTarget(300) && !R.IsReady() && prediction.HitChance >= HitChance.High || !target.IsValidTarget(myHero.GetAutoAttackRange()) || myHero.GetSpellDamage(target, SpellSlot.R, DamageLibrary.SpellStages.SecondCast) > target.Health || ReturnQBuff().Distance(target) < myHero.Distance(target) && !target.IsValidTarget(myHero.GetAutoAttackRange()))
                {
                    Q.Cast(target);
                }
            }

            if (!target.IsZombie && myHero.GetSpellDamage(target, SpellSlot.R) >= target.Health && ElLeeSinComboKSR && target.IsValidTarget())
            {
                R.Cast(target);
            }

            if (ElLeeSinComboAAStacks && PassiveStacks > ElLeeSinComboPassiveStacks && myHero.GetAutoAttackRange() > myHero.Distance(target))
            {
                return;
            }

            if (ElLeeSinComboW)
            {
                if (ElLeeSinComboModeWW && target.Distance(myHero) > myHero.GetAutoAttackRange())
                {
                    WardJump(target.Position, false, true);
                }

                if (!ElLeeSinComboModeWW && target.Distance(myHero) > Q.Range)
                {
                    WardJump(target.Position, false, true);
                }
            }

            if (E.IsReady() && ElLeeSinComboE)
            {
                if (EState && E.IsInRange(target))
                {
                    E.Cast();
                    LastSpell = Environment.TickCount;
                    return;
                }

                if (!EState && E.IsInRange(target) && LastE + 400 < Environment.TickCount)
                {
                    E.Cast();
                    LastSpell = Environment.TickCount;
                }
            }

            if (W.IsReady() && ElLeeSinComboW2)
            {
                if (WState && myHero.Distance(target) <= myHero.GetAutoAttackRange())
                {
                    W.Cast(myHero);
                    LastW = Environment.TickCount;
                    return;
                }

                if (!WState && target.Distance(myHero) <= myHero.GetAutoAttackRange() &&
                    LastW + 200 < Environment.TickCount)
                {
                    W.Cast(myHero);
                }
            }
        }