示例#1
0
        /// <summary>
        /// Put in here what you want to do when the mode is running
        /// </summary>
        public static void Execute()
        {
            var target = TargetSelector.GetTarget(1500, DamageType.Physical);

            Orbwalker.OrbwalkTo(Game.CursorPos);

            if (target == null)
            {
                return;
            }

            UseItems(target);

            if (target.HasQBuff())
            {
                if (castQAgain ||
                    target.HasBuffOfType(BuffType.Knockback) && !myHero.IsValidTarget(300) &&
                    !R.IsReady() ||
                    !target.IsValidTarget(myHero.GetAutoAttackRange()) && !R.IsReady())
                {
                    Q.Cast(target);
                }
            }
            if (target.Distance(myHero) > R.Range &&
                target.Distance(myHero) < R.Range + 580 && target.HasQBuff())
            {
                WardJumper.WardJump(target.Position, false);
            }

            if (E.IsReady() && EState && target.IsValidTarget(E.Range))
            {
                E.Cast();
            }

            if (R.IsReady() && Q.IsReady() && target.HasQBuff())
            {
                R.Cast(target);
            }

            if (Q.IsReady() && QState)
            {
                Core.DelayAction(delegate { CastQ(target); }, 200);
            }
        }
示例#2
0
文件: Combo.cs 项目: Muse30/FUELeesin
        /// <summary>
        /// Put in here what you want to do when the mode is running
        /// </summary>
        public static void Execute()
        {
            var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

            if (target == null)
            {
                return;
            }

            if (!target.IsZombie && R.IsReady() && ComboMenu.GetCheckBoxValue("rUse") && ComboMenu.GetCheckBoxValue("qUse") && 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 (ComboMenu.GetCheckBoxValue("q2Use") && Q.IsReady() &&
                Q.Name.Equals("blindmonkqtwo", StringComparison.InvariantCultureIgnoreCase) &&
                target.HasQBuff() && (castQAgain))
            {
                CastQ(target, MiscMenu.GetCheckBoxValue("smiteq"));
                return;
            }

            if (target.HasQBuff() && ComboMenu.GetCheckBoxValue("q2Use"))
            {
                if (!target.IsZombie && target.HasQBuff() && target.Health < myHero.GetSpellDamage(target, SpellSlot.R) + Q2Damage(target, myHero.GetSpellDamage(target, SpellSlot.R)))
                {
                    if (ComboMenu.GetCheckBoxValue("rUseks"))
                    {
                        R.Cast(target);
                    }
                }
            }

            if (target.IsValidTarget(385f))
            {
                UseItems(target);
            }

            if (ComboMenu.GetCheckBoxValue("q2Use") && Q.IsReady() &&
                Q.Name.Equals("blindmonkqtwo", StringComparison.InvariantCultureIgnoreCase) &&
                target.HasQBuff() &&
                (castQAgain || myHero.GetSpellDamage(target, SpellSlot.Q, 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 &&
                ComboMenu.GetCheckBoxValue("rUseks") && target.IsValidTarget(R.Range))
            {
                R.Cast(target);
            }

            if (Q.IsReady() && QState && ComboMenu.GetCheckBoxValue("qUse"))
            {
                CastQ(target, MiscMenu.GetCheckBoxValue("smiteq"));
            }

            if (ComboMenu.GetCheckBoxValue("Cpassive") &&
                PassiveStacks > ComboMenu.GetSliderValue("passivestacks") &&
                myHero.GetAutoAttackRange() > myHero.Distance(target))
            {
                return;
            }

            if (ComboMenu.GetCheckBoxValue("q2Use") && Q.IsReady() &&
                Q.Name.Equals("blindmonkqtwo", StringComparison.InvariantCultureIgnoreCase) &&
                target.HasQBuff() &&
                (castQAgain || myHero.Distance(target) > myHero.GetAutoAttackRange() ||
                 myHero.GetSpellDamage(target, SpellSlot.Q, DamageLibrary.SpellStages.SecondCast) > target.Health + target.AttackShield))
            {
                CastQ(target, MiscMenu.GetCheckBoxValue("smiteq"));
                return;
            }

            if (ComboMenu.GetCheckBoxValue("wardjumpC"))
            {
                if (ComboMenu.GetCheckBoxValue("wardjumpCAA") &&
                    target.Distance(myHero) > myHero.GetAutoAttackRange())
                {
                    WardJumper.WardJump(target.Position, false, true);
                }

                if (!ComboMenu.GetCheckBoxValue("wardjumpCAA") && target.Distance(myHero) > Q.Range)
                {
                    WardJumper.WardJump(target.Position, false, true);
                }
            }

            if (E.IsReady() && ComboMenu.GetCheckBoxValue("eUse") && target.Distance(myHero) < 400 &&
                !myHero.IsDashing())
            {
                if (Environment.TickCount - LastW <= 150)
                {
                    return;
                }

                if (EState)
                {
                    if (GetEHits().Item1 > 0 || (PassiveStacks == 0 && myHero.Mana >= 70) ||
                        target.Distance(myHero) > myHero.GetAutoAttackRange() + 70)
                    {
                        E.Cast();
                    }
                }
                else
                {
                    if (LastE + 1800 < Environment.TickCount)
                    {
                        if (GetEHits().Item1 > 0 ||
                            target.Distance(myHero) > myHero.GetAutoAttackRange() + 50)
                        {
                            E.Cast();
                        }
                    }
                }
            }

            if (W.IsReady() && ComboMenu.GetCheckBoxValue("wUse"))
            {
                if (Environment.TickCount - LastE <= 250)
                {
                    return;
                }

                if (WState && target.IsValidTarget(myHero.GetAutoAttackRange()))
                {
                    W.Cast(myHero);
                    LastW = Environment.TickCount;
                }

                if (!WState && LastW + 1800 < Environment.TickCount)
                {
                    W.Cast(myHero);
                }
            }
        }
示例#3
0
文件: Insec.cs 项目: Muse30/FUELeesin
        /// <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;
                }
            }
        }
示例#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);
                    }
                }
            }
        }