예제 #1
0
 private static void UseItems(Obj_AI_Hero target)
 {
     if (player.Distance(target) < player.AttackRange + player.BoundingRadius)
     {
         TMT.Cast();
         HYD.Cast();
     }
     BWC.Cast(target);
     BRK.Cast(target);
     RO.Cast(target);
     YMG.Cast();
 }
예제 #2
0
        private static void UseItems(Obj_AI_Base unit, bool isMinion = false)
        {
            if (!unit.IsValidTarget())
            {
                return;
            }


            if (SKOMenu.Item("Hydra").GetValue <bool>() && player.Distance(unit) < HYD.Range)
            {
                HYD.Cast();
            }
            if (SKOMenu.Item("Hydra").GetValue <bool>() && player.Distance(unit) < TMT.Range)
            {
                TMT.Cast();
            }
            if (SKOMenu.Item("BOTRK").GetValue <bool>() && player.Distance(unit) <= BRK.Range)
            {
                if (isMinion)
                {
                    return;
                }
                BRK.Cast(unit);
            }
            if (SKOMenu.Item("BOTRK").GetValue <bool>() && player.Distance(unit) <= BWC.Range)
            {
                BWC.Cast(unit);
            }
            if (SKOMenu.Item("RO").GetValue <bool>() && player.Distance(unit) <= RO.Range)
            {
                if (isMinion)
                {
                    return;
                }
                RO.Cast();
            }
            if (SKOMenu.Item("DFG").GetValue <bool>() && player.Distance(unit) <= DFG.Range)
            {
                if (isMinion)
                {
                    return;
                }
                DFG.Cast(unit);
            }
            if (SKOMenu.Item("YMU").GetValue <bool>() && player.Distance(unit) <= YMG.Range)
            {
                YMG.Cast();
            }
            if (SKOMenu.Item("SOD").GetValue <bool>() && player.Distance(unit) <= STD.Range)
            {
                STD.Cast();
            }
        }
예제 #3
0
        private static void Clear()
        {
            var allminions = MinionManager.GetMinions(_player.ServerPosition, 1000, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth);

            foreach (var minion in allminions.Where(minion => minion.IsValidTarget()))
            {
                if (_player.Mana <= 4)
                {
                    if (Q.IsReady() && SKOMenu.Item("UseQC").GetValue <bool>() && _player.Distance(minion) <= Q.Range)
                    {
                        Q.Cast();
                    }
                    if (W.IsReady() && SKOMenu.Item("UseWC").GetValue <bool>() && _player.Distance(minion) <= W.Range)
                    {
                        W.Cast();
                    }
                    if (E.IsReady() && SKOMenu.Item("UseEC").GetValue <bool>() && _player.Distance(minion) <= E.Range)
                    {
                        E.Cast(minion, PacketCast);
                    }
                }
                if (_player.Mana == 5)
                {
                    if (SKOMenu.Item("Save").GetValue <bool>())
                    {
                        return;
                    }
                    if (SKOMenu.Item("FPrio").GetValue <StringList>().SelectedIndex == 0 && Q.IsReady() && SKOMenu.Item("UseQC").GetValue <bool>() && _player.Distance(minion) <= Q.Range)
                    {
                        Q.Cast();
                    }
                    if (SKOMenu.Item("FPrio").GetValue <StringList>().SelectedIndex == 1 && W.IsReady() && SKOMenu.Item("UseWC").GetValue <bool>() && _player.Distance(minion) <= W.Range)
                    {
                        W.Cast();
                    }
                    if (SKOMenu.Item("FPrio").GetValue <StringList>().SelectedIndex == 2 && E.IsReady() && SKOMenu.Item("UseEC").GetValue <bool>() && _player.Distance(minion) <= E.Range)
                    {
                        E.Cast(minion, PacketCast);
                    }
                }
                if (SKOMenu.Item("UseItemsClear").GetValue <bool>())
                {
                    if (_player.Distance(minion) < _player.AttackRange + 50)
                    {
                        TMT.Cast();
                        HYD.Cast();
                    }
                    YMG.Cast();
                }
            }
        }
예제 #4
0
        private static void TripleQ(Obj_AI_Hero target)
        {
            if (target.IsValidTarget())
            {
                if (Player.Mana == 5 && R.IsReady() && Player.Distance(target) <= R.Range && Q.IsReady())
                {
                    R.Cast();
                }
                if (Player.Mana < 5)
                {
                    Drawing.DrawText(Player.Position.X, Player.Position.Y, Color.Red, "R is not ready, or you do not have 5 ferocity");
                }


                if (Player.Mana == 5 && Player.HasBuff("RengarR") && Q.IsReady() && Player.Distance(target) <= Q.Range)
                {
                    Q.Cast();
                }
                if (Player.Mana == 5 && !Player.HasBuff("RengarR") && Q.IsReady() && Player.Distance(target) <= Q.Range)
                {
                    Q.Cast();
                }
                if (Player.Mana <= 4)
                {
                    if (Q.IsReady() && Player.Distance(target) <= Q.Range)
                    {
                        Q.Cast();
                    }
                    if (W.IsReady() && Player.Distance(target) <= W.Range)
                    {
                        W.Cast();
                    }
                    if (E.IsReady() && Player.Distance(target) <= E.Range)
                    {
                        E.Cast(target, PacketCast);
                    }
                }
                if (Player.Distance(target) < Player.AttackRange + 50)
                {
                    TMT.Cast();
                    HYD.Cast();
                    STD.Cast();
                }
                BWC.Cast(target);
                BRK.Cast(target);
                RO.Cast(target);
                YMG.Cast();
            }
        }
예제 #5
0
 private static void TripleQ(Obj_AI_Hero target)
 {
     if (target.IsValidTarget())
     {
         if (_player.Mana == 5 && R.IsReady() && _player.Distance(target) <= R.Range && Q.IsReady())
         {
             R.Cast();
         }
         if (_player.Mana == 5 && _player.HasBuff("RengarR") && _player.Distance(target) <= Q.Range)
         {
             CastQ(target);
         }
         if (_player.Mana == 5 && !_player.HasBuff("RengarR") && _player.Distance(target) <= Q.Range)
         {
             CastQ(target);
         }
         if (_player.Mana <= 4)
         {
             if (_player.Distance(target) <= Q.Range)
             {
                 CastQ(target);
             }
             if (_player.Distance(target) <= W.Range)
             {
                 CastW(target);
             }
             if (_player.Distance(target) <= E.Range)
             {
                 CastE(target);
             }
         }
         if (_player.Distance(target) < _player.AttackRange + 50)
         {
             TMT.Cast();
             HYD.Cast();
             STD.Cast();
         }
         BWC.Cast(target);
         BRK.Cast(target);
         RO.Cast(target);
         YMG.Cast();
     }
 }
예제 #6
0
        private static void Harass()
        {
            var target = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);

            if (target.IsValidTarget())
            {
                if (_player.Mana <= 4)
                {
                    if (SKOMenu.Item("UseWH").GetValue <bool>() && _player.Distance(target) <= W.Range)
                    {
                        CastW(target);
                    }
                    if (SKOMenu.Item("UseEH").GetValue <bool>() && _player.Distance(target) <= E.Range)
                    {
                        CastE(target);
                    }
                }
                if (_player.Mana == 5)
                {
                    if (SKOMenu.Item("UseWH").GetValue <bool>() && SKOMenu.Item("HPrio").GetValue <StringList>().SelectedIndex == 0)
                    {
                        CastW(target);
                    }
                    if (SKOMenu.Item("UseEH").GetValue <bool>() && SKOMenu.Item("HPrio").GetValue <StringList>().SelectedIndex == 1)
                    {
                        CastE(target);
                    }
                }
                if (SKOMenu.Item("UseItemsHarass").GetValue <bool>())
                {
                    if (_player.Distance(target) < _player.AttackRange + 50)
                    {
                        TMT.Cast();
                        HYD.Cast();
                        STD.Cast();
                    }
                    BWC.Cast(target);
                    BRK.Cast(target);
                    RO.Cast(target);
                    YMG.Cast();
                }
            }
        }
예제 #7
0
        private static void Clear()
        {
            var allminions = MinionManager.GetMinions(player.ServerPosition, MiniQ.Range, MinionTypes.All,
                                                      MinionTeam.NotAlly, MinionOrderTypes.MaxHealth);


            foreach (var minions in allminions)
            {
                var qDmg     = player.GetSpellDamage(minions, SpellSlot.Q);
                var qpredmin = MiniQ.GetPrediction(minions);
                var qpredmeg = MegaQ.GetPrediction(minions);

                if (minions.IsValidTarget(MegaQ.Range) && MegaGnar)
                {
                    if (SKOMenu.Item("UseQC").GetValue <bool>() && MegaQ.IsReady() && player.Distance(minions) <= MegaQ.Range)
                    {
                        MegaQ.Cast(minions, PacketCast);
                    }
                    if (SKOMenu.Item("UseWC").GetValue <bool>() && MegaW.IsReady() && player.Distance(minions) <= MegaW.Range)
                    {
                        MegaW.Cast(minions, PacketCast);
                    }
                }
                else if (minions.IsValidTarget(MiniQ.Range) && !MegaGnar)
                {
                    if (SKOMenu.Item("UseQC").GetValue <bool>() && MiniQ.IsReady() && player.Distance(minions) <= MiniQ.Range)
                    {
                        MegaQ.Cast(minions, PacketCast);
                    }
                }
                if (SKOMenu.Item("UseItemsClear").GetValue <bool>())
                {
                    if (player.Distance(minions) < player.AttackRange + player.BoundingRadius)
                    {
                        TMT.Cast();
                        HYD.Cast();
                    }
                    YMG.Cast();
                }
            }
        }
예제 #8
0
 private static void Harass(Obj_AI_Hero target)
 {
     if (target.IsValidTarget())
     {
         if (Player.Mana <= 4)
         {
             if (SKOMenu.Item("UseWH").GetValue <bool>() && W.IsReady() && Player.Distance(target) <= W.Range)
             {
                 W.Cast();
             }
             if (SKOMenu.Item("UseEW").GetValue <bool>() && E.IsReady() && Player.Distance(target) <= E.Range)
             {
                 E.Cast(target, PacketCast);
             }
         }
         if (Player.Mana == 5)
         {
             if (SKOMenu.Item("UseWH").GetValue <bool>() && SKOMenu.Item("HPrio").GetValue <StringList>().SelectedIndex == 0 && W.IsReady())
             {
                 W.Cast();
             }
             if (SKOMenu.Item("UseEH").GetValue <bool>() && SKOMenu.Item("HPrio").GetValue <StringList>().SelectedIndex == 0 && E.IsReady())
             {
                 E.Cast(target, PacketCast);
             }
         }
         if (SKOMenu.Item("UseItemsHarass").GetValue <bool>())
         {
             if (Player.Distance(target) < Player.AttackRange + 50)
             {
                 TMT.Cast();
                 HYD.Cast();
                 STD.Cast();
             }
             BWC.Cast(target);
             BRK.Cast(target);
             RO.Cast(target);
             YMG.Cast();
         }
     }
 }
예제 #9
0
        private static void Combo(Obj_AI_Hero target)
        {
            if (target != null)
            {
                if (Config.Item("UseECombo").GetValue <bool>() && E.IsReady() && Player.Distance(target) <= Q.Range)
                {
                    E.Cast(target, true);
                }
                if (Config.Item("UseQCombo").GetValue <bool>() && Q.IsReady())
                {
                    Q.Cast(target, true);
                }
                if (Config.Item("UseWCombo").GetValue <bool>() && W.IsReady())
                {
                    W.Cast(target);
                }

                if (Config.Item("UseRCombo").GetValue <bool>() && R.IsReady() && !ult)
                {
                    if (GetEnemys(target) >= Config.Item("MinEnemys").GetValue <Slider>().Value)
                    {
                        R.Cast(target);
                    }
                }
                if (Config.Item("UseItems").GetValue <bool>())
                {
                    BKR.Cast(target);
                    YOU.Cast(target);
                    BWC.Cast(target);
                    DFG.Cast(target);
                    SOD.Cast(target);
                    RO.Cast(target);
                    HDR.Cast(target);
                    TMT.Cast(target);
                }
            }
        }
예제 #10
0
        private static void Combo()
        {
            Orbwalker.SetAttacks(true);

            var qTarget = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);
            var eTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Magical);
            var rTarget = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Magical);

            bool useQ = Config.Item("UseQCombo").GetValue <bool>();
            bool useW = Config.Item("UseWCombo").GetValue <bool>();
            bool useE = Config.Item("UseECombo").GetValue <bool>();
            bool useR = Config.Item("UseRCombo").GetValue <bool>();

            if (Config.Item("UseItems").GetValue <bool>())
            {
                BKR.Cast(qTarget);
                YOU.Cast();
                BWC.Cast(qTarget);
                if (Player.Distance(qTarget) <= HDR.Range)
                {
                    HDR.Cast(qTarget);
                }
                if (Player.Distance(qTarget) <= TMT.Range)
                {
                    TMT.Cast(qTarget);
                }
            }

            if (Q.IsReady() && E.IsReady() && R.IsReady() &&
                DamageLib.IsKillable(
                    qTarget,
                    new[]
            {
                DamageLib.SpellType.Q, DamageLib.SpellType.E, DamageLib.SpellType.R,
                DamageLib.SpellType.AD, DamageLib.SpellType.AD
            }))
            {
                if (qTarget != null && useQ && Q.IsReady())
                {
                    if ((Config.Item("NoQNear").GetValue <bool>() && Player.Distance(qTarget) < Player.AttackRange + 50) ||
                        (Config.Item("EbeforeQ").GetValue <bool>() && E.IsReady()))
                    {
                        return;
                    }
                }
                Q.Cast(qTarget, true, true);

                if (rTarget != null && useR && R.IsReady())
                {
                    R.Cast(rTarget, true);
                }

                if (useW && W.IsReady())
                {
                    if (Player.Health < (Player.MaxHealth * (Config.Item("SwitchLife").GetValue <Slider>().Value) * 0.01) && !WHealing)
                    {
                        W.Cast();
                    }
                    else
                    if (Player.Health > (Player.MaxHealth * (Config.Item("SwitchPower").GetValue <Slider>().Value) * 0.01) && WHealing)
                    {
                        W.Cast();
                    }
                }

                if (eTarget != null && useE && E.IsReady())
                {
                    E.Cast(eTarget, true);
                }
            }
            else
            {
                if (qTarget != null && useQ && Q.IsReady())
                {
                    if ((Config.Item("NoQNear").GetValue <bool>() && Player.Distance(qTarget) < Player.AttackRange + 50) ||
                        (Config.Item("EbeforeQ").GetValue <bool>() && E.IsReady()))
                    {
                        return;
                    }
                }
                Q.Cast(qTarget, true, true);

                if (useW && W.IsReady())
                {
                    if (Player.Health < (Player.MaxHealth * 0.4) && !WHealing)
                    {
                        W.Cast();
                    }
                    else
                    if (Player.Health > (Player.MaxHealth * 0.55) && WHealing)
                    {
                        W.Cast();
                    }
                }

                if (eTarget != null && useE && E.IsReady())
                {
                    E.Cast(eTarget, true);
                }
            }
        }
예제 #11
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            if (SKOMenu.Item("activeClear").GetValue <KeyBind>().Active)
            {
                Clear();
            }
            var tqtarget = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Physical);

            if (SKOMenu.Item("TripleQ").GetValue <KeyBind>().Active)
            {
                TripleQ(tqtarget);
            }

            var target = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical);

            Q   = new Spell(SpellSlot.Q, Player.AttackRange + 90);
            YMG = new Items.Item(3142, Player.AttackRange + 50);
            STD = new Items.Item(3131, Player.AttackRange + 50);

            AutoHeal();
            KillSteal(target);

            if (SKOMenu.Item("activeCombo").GetValue <KeyBind>().Active)
            {
                if (target.IsValidTarget())
                {
                    if (Player.Mana <= 4)
                    {
                        if (SKOMenu.Item("UseQ").GetValue <bool>() && Q.IsReady() && Player.Distance(target) <= Q.Range)
                        {
                            Q.Cast();
                        }
                        if (SKOMenu.Item("UseW").GetValue <bool>() && W.IsReady() && Player.Distance(target) <= W.Range)
                        {
                            W.Cast();
                        }
                        if (SKOMenu.Item("UseE").GetValue <bool>() && E.IsReady() && Player.Distance(target) <= E.Range)
                        {
                            E.Cast(target, PacketCast);
                        }
                    }
                    if (Player.Mana == 5)
                    {
                        if (SKOMenu.Item("UseQ").GetValue <bool>() && SKOMenu.Item("CPrio").GetValue <StringList>().SelectedIndex == 0 && Q.IsReady() && Player.Distance(target) <= Q.Range)
                        {
                            Q.Cast();
                        }
                        if (SKOMenu.Item("UseW").GetValue <bool>() && SKOMenu.Item("CPrio").GetValue <StringList>().SelectedIndex == 1 && W.IsReady() && Player.Distance(target) <= W.Range)
                        {
                            W.Cast();
                        }
                        if (SKOMenu.Item("UseE").GetValue <bool>() && SKOMenu.Item("CPrio").GetValue <StringList>().SelectedIndex == 2 && E.IsReady() && Player.Distance(target) <= E.Range)
                        {
                            E.Cast(target);
                        }

                        //E if !Q.IsReady()
                        if (SKOMenu.Item("UseE").GetValue <bool>() && !Q.IsReady() && E.IsReady() && Player.Distance(target) > Q.Range)
                        {
                            E.Cast(target);
                        }
                    }
                    if (SKOMenu.Item("UseItemsCombo").GetValue <bool>())
                    {
                        if (Player.Distance(target) < Player.AttackRange + 50)
                        {
                            TMT.Cast();
                            HYD.Cast();
                            STD.Cast();
                        }
                        BWC.Cast(target);
                        BRK.Cast(target);
                        RO.Cast(target);
                        YMG.Cast();
                    }
                }
            }
            if (SKOMenu.Item("activeHarass").GetValue <KeyBind>().Active)
            {
                Harass(target);
            }
        }
예제 #12
0
        private static void doCombo()
        {
            try
            {
                // Menu Config
                var FeroSpell = Config.Item("FeroSpellC").GetValue <StringList>();
                var ForceW    = Config.Item("ForceWC").GetValue <Slider>();
                var ForceE    = Config.Item("ForceEC").GetValue <bool>();

                var Target = TargetSelector.GetSelectedTarget() ??
                             TargetSelector.GetTarget(1600f, TargetSelector.DamageType.Physical);

                // Force Leap to target
                if (Player.HasBuff("RengarR", true))
                {
                    LXOrbwalker.ForcedTarget = Target;
                    LXOrbwalker.SetAttack(LXOrbwalker.GetPossibleTarget() == Target);
                }

                // Use Tiamat / Hydra
                if (Target.IsValidTarget(TMT.Range))
                {
                    if (TMT.IsReady())
                    {
                        TMT.Cast();
                    }
                    else if (HYD.IsReady())
                    {
                        HYD.Cast();
                    }
                }

                // Use Yommus Ghostblade
                if (YGB.IsReady() &&
                    Target.IsValidTarget(Orbwalking.GetRealAutoAttackRange(Player) +
                                         (Player.HasBuff("RengarR", true) ? Player.MoveSpeed / 2 : 0)))
                {
                    YGB.Cast();
                }

                // Cutlass
                if (BCL.IsReady() && Target.IsValidTarget(BCL.Range))
                {
                    BCL.Cast(Target);
                }

                // BORK
                if (BRK.IsReady() && Target.IsValidTarget(BRK.Range))
                {
                    BRK.Cast(Target);
                }

                // Ferocity Spell
                if (Player.Mana == 5)
                {
                    if (Player.Health / Player.MaxHealth < ForceW.Value / 100f && Target.IsValidTarget(W.Range))
                    {
                        W.CastOnUnit(Player, UsePackets);
                        return;
                    }

                    switch (FeroSpell.SelectedIndex)
                    {
                    case 1:
                        if (!Target.IsValidTarget(W.Range))
                        {
                            return;
                        }
                        W.CastOnUnit(Player, UsePackets);
                        break;

                    case 2:
                        if (!Target.IsValidTarget(E.Range) || Player.HasBuff("RengarR", true))
                        {
                            return;
                        }
                        E.Cast(Target, UsePackets);
                        break;
                    }
                    return;
                }

                // Don't cast W or E while ultimate is active (force leap)
                if (Player.HasBuff("RengarR", true))
                {
                    return;
                }

                if (E.IsReady() && Target.IsValidTarget(E.Range) &&
                    (!Target.HasBuff("RengarEFinalMAX", true) && !Target.HasBuff("rengareslow") &&
                     LastETick + 1500 < Environment.TickCount || ForceE))
                {
                    E.Cast(Target, UsePackets);
                }

                if (W.IsReady() && Target.IsValidTarget(W.Range))
                {
                    W.CastOnUnit(Player, UsePackets);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Combo Exception: {0}", e);
            }
        }
예제 #13
0
        private static void doCombo()
        {
            var useW = Config.Item("combo_W").GetValue <bool>();
            var useE = Config.Item("combo_E").GetValue <bool>();
            var useR = Config.Item("combo_R").GetValue <bool>();
            var useI = Config.Item("combo_IGN").GetValue <bool>();

            var useGB  = Config.Item("item_GB").GetValue <bool>();
            var useTMT = Config.Item("item_TMT").GetValue <bool>();
            var useHYD = Config.Item("item_HYD").GetValue <bool>();

            var useRush = Config.Item("combo_RUSH").GetValue <bool>();
            var useWE   = Config.Item("combo_WE").GetValue <bool>();

            var Target = LockedTarget ?? TargetSelector.GetTarget(1500f, TargetSelector.DamageType.Physical);

            // Ultimate Rush
            if (UltimateRush(Target) && useRush)
            {
                LockedTarget = Target;
                R.Cast();
            }

            // Items
            if (TMT.IsReady() && Target.IsValidTarget(TMT.Range) && useTMT)
            {
                TMT.Cast();
            }

            if (HYD.IsReady() && Target.IsValidTarget(HYD.Range) && useHYD)
            {
                HYD.Cast();
            }

            if (GB.IsReady() && Target.IsValidTarget(LXOrbwalker.GetAutoAttackRange(Player) + (Player.MoveSpeed / 2)) &&
                useGB)
            {
                GB.Cast();
            }

            // Spells
            if (W.IsReady() && useWE && useW && Target.IsValidTarget(W.Range) && !Player.HasBuff("TalonDisappear"))
            {
                W.Cast(Target);
            }
            else if (E.IsReady() && Target.IsValidTarget(E.Range) && useE)
            {
                E.CastOnUnit(Target);
            }
            else if (W.IsReady() && Target.IsValidTarget(W.Range) && useW)
            {
                W.Cast(Target.Position);
            }
            else if (R.IsReady() && Target.IsValidTarget(R.Range) && useR && R.GetDamage(Target) > Target.Health)
            {
                R.Cast();
            }

            // Auto Ignite
            if (!useI || Ignite == SpellSlot.Unknown || Player.Spellbook.CanUseSpell(Ignite) != SpellState.Ready)
            {
                return;
            }

            foreach (
                var enemy in
                ObjectManager.Get <Obj_AI_Hero>()
                .Where(
                    hero =>
                    hero.IsEnemy && hero.IsValidTarget(600f) && !hero.IsDead &&
                    hero.Health < Player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite))
                .OrderByDescending(TargetSelector.GetPriority))
            {
                Player.Spellbook.CastSpell(Ignite, enemy);
                return;
            }
        }