Esempio n. 1
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            Jungle.CastSmite(config.Item("useSmite").GetValue <KeyBind>().Active);
            switch (orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                Clear();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                Lasthit();
                break;

            default:
                break;
            }
            if (config.Item("AutoR", true).GetValue <bool>() && R.IsReady())
            {
                foreach (var enemy in
                         HeroManager.Enemies.Where(
                             e =>
                             ((e.UnderTurret(true) &&
                               e.HealthPercent < config.Item("Rhealt", true).GetValue <Slider>().Value * 0.75) ||
                              (!e.UnderTurret(true) &&
                               e.HealthPercent < config.Item("Rhealt", true).GetValue <Slider>().Value)) &&
                             e.HealthPercent > config.Item("RhealtMin", true).GetValue <Slider>().Value&&
                             e.IsValidTarget() && e.Distance(player) > 1500))
                {
                    var ally =
                        HeroManager.Allies.OrderBy(a => a.Health)
                        .FirstOrDefault(
                            a =>
                            enemy.Distance(a) < 700 && CombatHelper.IsFacing(a, enemy.Position) ||
                            CombatHelper.IsFacing(enemy, a.Position));
                    if (ally != null)
                    {
                        var pos = Prediction.GetPrediction(enemy, 0.75f).CastPosition;
                        if (
                            !(CombatHelper.IsFacing(ally, enemy.Position) && CombatHelper.IsFacing(enemy, ally.Position)) &&
                            pos.Distance(enemy.Position) < 450 && enemy.IsMoving)
                        {
                            pos = enemy.Position.Extend(pos, 450);
                        }
                        if (pos.IsValid())
                        {
                            R.Cast(pos);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        private void Combo()
        {
            var target = TargetSelector.GetTarget(1700, DamageType.Magical);

            if (target == null || target.IsInvulnerable || target.MagicImmune)
            {
                return;
            }
            var edmg      = getEdamage(target);
            var qdmg      = getQdamage(target);
            var ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
            var hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;

            if (getCheckBoxItem(menuC, "useIgnite") &&
                ignitedmg > HealthPrediction.GetHealthPrediction(target, 700) && hasIgnite &&
                !CombatHelper.CheckCriticalBuffs(target) &&
                (!ActiveQ ||
                 !(CombatHelper.IsFacing(player, target.Position, 30) && target.Distance(player) < Q.Range)))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (Q.CanCast(target) && getCheckBoxItem(menuC, "useq") && Qhit(target.Position) &&
                (preventSilence(Q) ||
                 (target.Health < PassiveDmg(target) * 2 || qdmg > target.Health) &&
                 target.Distance(player) < Orbwalking.GetRealAutoAttackRange(target)))
            {
                Q.Cast(target.Position);
            }
            if (getCheckBoxItem(menuC, "usee") && E.CanCast(target) &&
                (((preventSilence(E) ||
                   (target.Health < PassiveDmg(target) * 2 &&
                    target.Distance(player) < Orbwalking.GetRealAutoAttackRange(target))) &&
                  (!ActiveE ||
                   Environment.TickCount - lastE > getSliderItem(menuC, "eDelay"))) ||
                 edmg > target.Health))
            {
                E.CastIfHitchanceEquals(target, HitChance.High, getCheckBoxItem(config, "packets"));
            }
            if (W.IsReady() && getCheckBoxItem(menuC, "wSpeed") && ActiveQ && preventSilence(W) &&
                target.Distance(player) < Q.Range &&
                Prediction.GetPrediction(target, 0.2f).UnitPosition.Distance(player.Position) > Q.Range)
            {
                W.Cast();
            }
            var canR = ComboDamage(target) > target.Health && qdmg < target.Health && target.Distance(player) < Q.Range &&
                       !Silenced;

            if (R.IsReady() &&
                ((target.Health <
                  getRdamage() * (target.CountAlliesInRange(600) > 0 && target.HealthPercent > 15 ? 5 : 3) &&
                  target.Distance(player) > Q.Range) ||
                 (target.Distance(player) < Q.Range && target.Health < getRdamage() * 3 + edmg &&
                  target.Health > qdmg) ||
                 player.CountEnemiesInRange(R.Range) >= getSliderItem(menuC, "Rmin")))
            {
                HandleR(target, canR);
            }
        }
Esempio n. 3
0
        private void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (args.Unit.IsMe && stance == Stance.Phoenix && player.GetBuff("UdyrPhoenixStance").Count == 3)
            {
                justR2 = true;
                LeagueSharp.Common.Utility.DelayAction.Add((int)(player.AttackDelay * 1000), () => justR2 = false);
            }
            if (!args.Unit.IsMe || !R.IsReady())
            {
                return;
            }
            var target =
                HeroManager.Enemies.FirstOrDefault(
                    h => h.Distance(player) < R2.Range && CombatHelper.IsFacing(player, h.Position, 45f));

            if (target != null && orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
            {
                Harass();
            }
        }
Esempio n. 4
0
 private bool Qhit(Vector3 target)
 {
     return(Q.IsReady() && CombatHelper.IsFacing(player, target, 80) &&
            target.Distance(player.Position) < Q.Range);
 }
Esempio n. 5
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            var target = TargetSelector.GetTarget(Q.Range + player.MoveSpeed * 3, DamageType.Physical);

            if (ShacoStealth && target != null && target.Health > ComboDamage(target) &&
                CombatHelper.IsFacing(target, player.Position) &&
                Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                Orbwalker.DisableAttacking = true;
            }
            else
            {
                Orbwalker.DisableAttacking = false;
            }

            if (!ShacoClone)
            {
                cloneTime = Environment.TickCount;
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                Combo(target);
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                Harass();
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear) ||
                Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear))
            {
                Clear();
            }

            if (E.IsReady())
            {
                var ksTarget =
                    HeroManager.Enemies.FirstOrDefault(
                        h => h.LSIsValidTarget() && !CombatHelper.IsInvulnerable2(h) && h.Health < E.GetDamage(h));
                if (ksTarget != null)
                {
                    if ((getCheckBoxItem(menuM, "ks") || getCheckBoxItem(menuM, "ksq")) &&
                        E.CanCast(ksTarget))
                    {
                        E.Cast(ksTarget);
                    }
                    if (Q.IsReady() && getCheckBoxItem(menuM, "ks") &&
                        ksTarget.LSDistance(player) < Q.Range + E.Range && ksTarget.LSDistance(player) > E.Range &&
                        !player.Position.LSExtend(ksTarget.Position, Q.Range).IsWall() &&
                        player.Mana > Q.Instance.SData.Mana + E.Instance.SData.Mana)
                    {
                        Q.Cast(player.Position.LSExtend(ksTarget.Position, Q.Range));
                    }
                }
            }

            if (getKeyBindItem(menuM, "stackBox") && W.IsReady())
            {
                var box =
                    ObjectManager.Get <Obj_AI_Minion>()
                    .Where(m => m.LSDistance(player) < W.Range && m.Name == "Jack In The Box" && !m.IsDead)
                    .OrderBy(m => m.LSDistance(Game.CursorPos))
                    .FirstOrDefault();

                if (box != null)
                {
                    W.Cast(box.Position);
                }
                else
                {
                    if (player.LSDistance(Game.CursorPos) < W.Range)
                    {
                        W.Cast(Game.CursorPos);
                    }
                    else
                    {
                        W.Cast(player.Position.LSExtend(Game.CursorPos, W.Range));
                    }
                }
            }

            if (ShacoClone && !GhostDelay && getCheckBoxItem(menuM, "autoMoveClone"))
            {
                moveClone();
            }
            var data = IncDamages.GetAllyData(player.NetworkId);

            if (getCheckBoxItem(menuC, "userCC") && R.IsReady() && target != null && player.LSDistance(target) < Q.Range &&
                data.AnyCC)
            {
                R.Cast();
            }
        }
Esempio n. 6
0
        private void Combo()
        {
            Obj_AI_Hero target = DrawHelper.GetBetterTarget(W.Range, TargetSelector.DamageType.Magical);

            if (target == null)
            {
                return;
            }

            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config);
            }
            if (config.Item("RunFOTT", true).GetValue <bool>() &&
                (!config.Item("RunFOTTHP", true).GetValue <bool>() ||
                 (config.Item("RunFOTTHP", true).GetValue <bool>() && player.Health > target.Health)))
            {
                Vector3 pos;
                if (target.IsMoving)
                {
                    var rand = new Random();
                    if (ChaseFix)
                    {
                        pos = target.Position.Extend(
                            Prediction.GetPrediction(target, 0.6f).UnitPosition, rand.Next(480, 550));
                    }
                    else
                    {
                        var positions = CombatHelper.PointsAroundTheTargetOuterRing(target.ServerPosition, 130, 16);
                        pos = positions[rand.Next(positions.Count)];
                    }
                    if (player.Distance(pos) < 90)
                    {
                        if (!ChaseFix)
                        {
                            ChaseFix = true;
                        }
                        else
                        {
                            ChaseFix = false;
                        }
                    }
                }
                else
                {
                    pos = Vector3.Zero;
                }
                if (Orbwalking.CanMove(100))
                {
                    if (player.Distance(pos) > 40 && pos.IsValid())
                    {
                        Orbwalking.Move   = false;
                        Orbwalking.Attack = false;
                        player.IssueOrder(GameObjectOrder.MoveTo, pos);
                    }
                }
            }
            var qTarget =
                HeroManager.Enemies.FirstOrDefault(
                    enemy =>
                    enemy.IsValidTarget() && enemy.Distance(player) < 200 &&
                    CombatHelper.IsFacing(enemy, player.Position, 90f) &&
                    !CombatHelper.IsFacing(player, enemy.Position, 90f) && player.IsMoving && enemy.IsMoving);

            if (config.Item("useq", true).GetValue <bool>() &&
                (qTarget != null || target.HasBuff("poisontrailtarget") || player.Distance(target) <= 500))
            {
                CastQ();
            }
            if (config.Item("usew", true).GetValue <bool>() && !config.Item("WwithE", true).GetValue <bool>() &&
                W.IsReady() && W.CanCast(target))
            {
                var tarPered = W.GetPrediction(target);
                if (W.Range - 80 > tarPered.CastPosition.Distance(player.Position) &&
                    tarPered.Hitchance >= HitChance.VeryHigh)
                {
                    W.Cast(tarPered.CastPosition);
                }
            }
            if (R.IsReady() && config.Item("user", true).GetValue <bool>() &&
                (((config.Item("rUnderHealt", true).GetValue <Slider>().Value > player.HealthPercent &&
                   0 < player.CountEnemiesInRange(750)) ||
                  config.Item("rMinEnemy", true).GetValue <Slider>().Value <= player.CountEnemiesInRange(750)) &&
                 (!config.Item("rkeepManaE", true).GetValue <bool>() ||
                  (config.Item("rkeepManaE", true).GetValue <bool>() &&
                   player.Mana - R.Instance.ManaCost > E.Instance.ManaCost))))
            {
                R.Cast();
            }
            var  ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;

            if (config.Item("useIgnite", true).GetValue <bool>() && ignitedmg > target.Health && hasIgnite)
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            var blockOrb = false;
            var throwPos = target.Position.Extend(player.Position, 500);

            if (config.Item("usee", true).GetValue <bool>() && E.IsReady() &&
                ((throwPos.CountAlliesInRange(700) > target.CountAlliesInRange(700) &&
                  HeroManager.Allies.FirstOrDefault(a => a.Distance(throwPos) < 700 && a.HealthPercent < 25) == null) ||
                 W.GetDamage(target) > target.Health || !target.HasBuff("poisontrailtarget") ||
                 config.Item("WwithE", true).GetValue <bool>()))
            {
                var pos = Prediction.GetPrediction(target, W.Delay / 2)
                          .UnitPosition.Extend(player.Position, 515 + player.Distance(target.Position));
                if (config.Item("WwithE", true).GetValue <bool>() && E.CanCast(target) && W.IsReady() &&
                    player.Mana > E.Instance.ManaCost + W.Instance.ManaCost + 15 && !pos.IsWall() &&
                    target.Health > E.GetDamage(target) + Q.GetDamage(target))
                {
                    W.Cast(pos);
                    return;
                }
                if (E.CanCast(target))
                {
                    E.CastOnUnit(target);
                }
                else if (target.Distance(player) < E.Range + 100)
                {
                    blockOrb = true;
                }
            }
            if (blockOrb)
            {
                Orbwalking.Attack = false;
            }
        }
Esempio n. 7
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            AIHeroClient target = DrawHelper.GetBetterTarget(
                Q.Range + player.MoveSpeed * 3, TargetSelector.DamageType.Physical);

            if (ShacoStealth && target != null && target.Health > ComboDamage(target) &&
                CombatHelper.IsFacing(target, player.Position) &&
                orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                orbwalker.SetAttack(false);
            }
            else
            {
                orbwalker.SetAttack(true);
            }
            if (false)
            {
                return;
            }
            switch (orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo(target);
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                Clear();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                break;

            default:
                break;
            }
            if (E.IsReady())
            {
                var ksTarget =
                    HeroManager.Enemies.FirstOrDefault(
                        h => h.IsValidTarget() && !CombatHelper.IsInvulnerable2(h) && h.Health < E.GetDamage(h));
                if (ksTarget != null)
                {
                    if ((config.Item("ks", true).GetValue <bool>() || config.Item("ksq", true).GetValue <bool>()) &&
                        E.CanCast(ksTarget))
                    {
                        E.CastOnUnit(ksTarget);
                    }
                    if (Q.IsReady() && config.Item("ks", true).GetValue <bool>() &&
                        ksTarget.Distance(player) < Q.Range + E.Range && ksTarget.Distance(player) > E.Range &&
                        !player.Position.Extend(ksTarget.Position, Q.Range).IsWall() &&
                        player.Mana > Q.Instance.SData.Mana + E.Instance.SData.Mana)
                    {
                        Q.Cast(player.Position.Extend(ksTarget.Position, Q.Range));
                    }
                }
            }

            if (config.Item("stackBox", true).GetValue <KeyBind>().Active&& W.IsReady())
            {
                var box =
                    ObjectManager.Get <Obj_AI_Minion>()
                    .Where(m => m.Distance(player) < W.Range && m.Name == "Jack In The Box" && !m.IsDead)
                    .OrderBy(m => m.Distance(Game.CursorPos))
                    .FirstOrDefault();

                if (box != null)
                {
                    W.Cast(box.Position);
                }
                else
                {
                    if (player.Distance(Game.CursorPos) < W.Range)
                    {
                        W.Cast(Game.CursorPos);
                    }
                    else
                    {
                        W.Cast(player.Position.Extend(Game.CursorPos, W.Range));
                    }
                }
            }
            if (R.IsReady() && ShacoClone)
            {
                PetHandler.MovePet(config, orbwalker.ActiveMode);
            }
            var data = Program.IncDamages.GetAllyData(player.NetworkId);

            if (config.Item("userCC", true).GetValue <bool>() && R.IsReady() && target != null &&
                player.Distance(target) < Q.Range && data.AnyCC)
            {
                R.Cast();
            }
        }
Esempio n. 8
0
        public static void Game_ProcessSpell(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args)
        {
            if (args == null || hero == null)
            {
                return;
            }
            Obj_AI_Hero targetW   = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
            var         spellName = args.SData.Name;
            Obj_AI_Hero target    = args.Target as Obj_AI_Hero;

            if (targetW != null)
            {
                hero = targetW;
            }
            if (target != null && (!hero.HasBuff("fiorarmark") || (hero.HasBuff("fiorarmark") && player.HealthPercent < 50)) &&
                (W.IsReady() && target.IsMe &&
                 (Orbwalking.IsAutoAttack(spellName) || CombatHelper.IsAutoattack(spellName)) &&
                 ((config.Item("usew", true).GetValue <bool>() && orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo &&
                   hero is Obj_AI_Hero &&
                   ((config.Item("usewDangerous", true).GetValue <bool>() &&
                     target.GetAutoAttackDamage(player, true) > player.Health * 0.1f) ||
                    !config.Item("usewDangerous", true).GetValue <bool>())) ||
                  config.Item("autoW", true).GetValue <bool>()) &&
                 !(hero is Obj_AI_Turret || hero.Name == "OdinNeutralGuardian") && player.Distance(hero) < 700))
            {
                var perc = config.Item("minmanaP", true).GetValue <Slider>().Value / 100f;
                if (player.Mana > player.MaxMana * perc && hero.TotalAttackDamage > 50 &&
                    ((player.UnderTurret(true) && orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) ||
                     !player.UnderTurret(true)))
                {
                    W.Cast(hero, config.Item("packets").GetValue <bool>());
                }
            }
            if (config.Item("usewCC", true).GetValue <bool>())
            {
                if (spellName == "CurseofTheSadMummy")
                {
                    if (player.Distance(hero.Position) <= 600f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (CombatHelper.IsFacing(target, player.Position) &&
                    (spellName == "EnchantedCrystalArrow" || spellName == "rivenizunablade" ||
                     spellName == "EzrealTrueshotBarrage" || spellName == "JinxR" || spellName == "sejuaniglacialprison"))
                {
                    if (player.Distance(hero.Position) <= W.Range - 60)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "InfernalGuardian" || spellName == "UFSlash" ||
                    (spellName == "RivenW" && player.HealthPercent < 25))
                {
                    if (player.Distance(args.End) <= 270f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "BlindMonkRKick" || spellName == "SyndraR" || spellName == "VeigarPrimordialBurst" ||
                    spellName == "AlZaharNetherGrasp" || spellName == "LissandraR")
                {
                    if (args.Target.IsMe)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "TristanaR" || spellName == "ViR")
                {
                    if (args.Target.IsMe || player.Distance(args.Target.Position) <= 100f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "GalioIdolOfDurand")
                {
                    if (player.Distance(hero.Position) <= 600f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (target != null && target.IsMe)
                {
                    if (CombatHelper.isTargetedCC(spellName) && spellName != "NasusW" && spellName != "ZedUlt")
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
            }
        }
Esempio n. 9
0
        private void Combo()
        {
            Obj_AI_Hero target = TargetSelector.GetTarget(700, TargetSelector.DamageType.Physical);

            if (target == null)
            {
                return;
            }
            var combodamage = ComboDamage(target);

            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config, combodamage);
            }
            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var  ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);

            if (config.Item("useIgnite").GetValue <bool>() && hasIgnite &&
                ((R.IsReady() && ignitedmg + R.GetDamage(target) > target.Health) || ignitedmg > target.Health) &&
                (target.Distance(player) > E.Range || player.HealthPercent < 20))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.IsReady() &&
                player.Distance(target) > player.AttackRange && !GarenE && !GarenQ &&
                CombatHelper.IsPossibleToReachHim(
                    target, 0.35f, new float[5] {
                1.5f, 2.25f, 3f, 3.75f, 4.5f
            }[Q.Level - 1]))
            {
                Q.Cast(config.Item("packets").GetValue <bool>());
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.IsReady() && !GarenQ &&
                (!GarenE || (Q.IsReady() && Damage.GetSpellDamage(player, target, SpellSlot.Q) > target.Health)))
            {
                if (GarenE)
                {
                    E.Cast(config.Item("packets").GetValue <bool>());
                }
                Q.Cast(config.Item("packets").GetValue <bool>());
                player.IssueOrder(GameObjectOrder.AutoAttack, target);
            }
            if (config.Item("usee", true).GetValue <bool>() && E.IsReady() && !Q.IsReady() && !GarenQ && !GarenE &&
                player.CountEnemiesInRange(E.Range) > 0)
            {
                E.Cast(config.Item("packets").GetValue <bool>());
            }
            var targHP = target.Health + 20 - CombatHelper.IgniteDamage(target);
            var rLogic = config.Item("user", true).GetValue <bool>() && R.IsReady() &&
                         (!config.Item("ult" + target.SkinName, true).GetValue <bool>() ||
                          player.CountEnemiesInRange(1500) == 1) &&
                         Damage.GetSpellDamage(player, target, SpellSlot.R) > targHP && targHP > 0;

            if (rLogic && target.Distance(player) < R.Range)
            {
                if (GarenE)
                {
                    E.Cast(config.Item("packets").GetValue <bool>());
                }
                else
                {
                    R.Cast(target, config.Item("packets").GetValue <bool>());
                }
            }
            if (config.Item("usew", true).GetValue <bool>() && W.IsReady() && player.CountEnemiesInRange(E.Range) > 0 &&
                target.IsFacing(player))
            {
                W.Cast(config.Item("packets").GetValue <bool>());
            }
            bool hasFlash = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerFlash")) == SpellState.Ready;

            if (config.Item("useFlash", true).GetValue <bool>() && hasFlash && rLogic &&
                target.Distance(player) < R.Range + 425 && target.Distance(player) > R.Range && !Q.IsReady() &&
                !CombatHelper.IsFacing(target, player.Position) && !GarenQ)
            {
                if (GarenE)
                {
                    E.Cast(config.Item("packets").GetValue <bool>());
                }
                else if (!player.Position.Extend(target.Position, 425f).IsWall())
                {
                }
                {
                    player.Spellbook.CastSpell(
                        player.GetSpellSlot("SummonerFlash"), player.Position.Extend(target.Position, 425f));
                }
            }
        }
Esempio n. 10
0
        private void Combo()
        {
            AIHeroClient target = DrawHelper.GetBetterTarget(1700, TargetSelector.DamageType.Magical, true);

            if (target == null || target.IsInvulnerable || target.MagicImmune)
            {
                return;
            }
            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config, ComboDamage(target));
            }
            var  edmg      = getEdamage(target);
            var  qdmg      = getQdamage(target);
            var  ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;

            if (config.Item("useIgnite", true).GetValue <bool>() &&
                ignitedmg > HealthPrediction.GetHealthPrediction(target, 700) && hasIgnite &&
                !CombatHelper.CheckCriticalBuffs(target) &&
                (!ActiveQ ||
                 (!(CombatHelper.IsFacing(player, target.Position, 30) && target.Distance(player) < Q.Range))))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (Q.CanCast(target) && config.Item("useq", true).GetValue <bool>() && Qhit(target.Position) &&
                (preventSilence(Q) ||
                 (target.Health < PassiveDmg(target) * 2 || qdmg > target.Health) &&
                 target.Distance(player) < Orbwalking.GetRealAutoAttackRange(target)))
            {
                Q.Cast(target.Position);
            }
            if (config.Item("usee", true).GetValue <bool>() && E.CanCast(target) &&
                (((preventSilence(E) ||
                   (target.Health < PassiveDmg(target) * 2 &&
                    target.Distance(player) < Orbwalking.GetRealAutoAttackRange(target))) &&
                  (!ActiveE ||
                   System.Environment.TickCount - lastE > config.Item("eDelay", true).GetValue <Slider>().Value)) ||
                 edmg > target.Health))
            {
                E.CastIfHitchanceEquals(target, HitChance.High);
            }
            if (W.IsReady() && config.Item("wSpeed", true).GetValue <bool>() && ActiveQ && preventSilence(W) &&
                target.Distance(player) < Q.Range &&
                Prediction.GetPrediction(target, 0.2f).UnitPosition.Distance(player.Position) > Q.Range)
            {
                W.Cast();
            }
            var canR = ComboDamage(target) > target.Health && qdmg < target.Health && target.Distance(player) < Q.Range &&
                       !Silenced;

            if (R.IsReady() &&
                (((target.Health <
                   getRdamage(target) * ((target.CountAlliesInRange(600) > 0 && target.HealthPercent > 15) ? 5 : 3) &&
                   target.Distance(player) > Q.Range) ||
                  (target.Distance(player) < Q.Range && target.Health < getRdamage(target) * 3 + edmg &&
                   target.Health > qdmg)) ||
                 player.CountEnemiesInRange(R.Range) >= config.Item("Rmin", true).GetValue <Slider>().Value))
            {
                HandleR(target, canR);
            }
        }
Esempio n. 11
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            Obj_AI_Hero target = TargetSelector.GetTarget(
                Q.Range + player.MoveSpeed * 3, TargetSelector.DamageType.Physical);

            if (ShacoStealth && target != null && target.Health > ComboDamage(target) &&
                CombatHelper.IsFacing(target, player.Position) &&
                orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                orbwalker.SetAttack(false);
            }
            else
            {
                orbwalker.SetAttack(true);
            }
            if (!ShacoClone)
            {
                cloneTime = System.Environment.TickCount;
            }
            switch (orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo(target);
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                Clear();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                break;

            default:
                break;
            }
            if (E.IsReady())
            {
                var ksTarget =
                    HeroManager.Enemies.FirstOrDefault(
                        h =>
                        h.IsValidTarget() && !h.Buffs.Any(b => CombatHelper.invulnerable.Contains(b.Name)) &&
                        h.Health < E.GetDamage(h));
                if (ksTarget != null)
                {
                    if ((config.Item("ks", true).GetValue <bool>() || config.Item("ksq", true).GetValue <bool>()) &&
                        E.CanCast(ksTarget) && player.Mana > E.Instance.ManaCost)
                    {
                        E.Cast(ksTarget);
                    }
                    if (Q.IsReady() && config.Item("ks", true).GetValue <bool>() &&
                        ksTarget.Distance(player) < Q.Range + E.Range && ksTarget.Distance(player) > E.Range &&
                        !player.Position.Extend(ksTarget.Position, Q.Range).IsWall() &&
                        player.Mana > Q.Instance.ManaCost + E.Instance.ManaCost)
                    {
                        Q.Cast(player.Position.Extend(ksTarget.Position, Q.Range));
                    }
                }
            }

            if (config.Item("stackBox", true).GetValue <KeyBind>().Active&& W.IsReady())
            {
                var box =
                    ObjectManager.Get <Obj_AI_Minion>()
                    .Where(m => m.Distance(player) < W.Range && m.Name == "Jack In The Box" && !m.IsDead)
                    .OrderBy(m => m.Distance(Game.CursorPos))
                    .FirstOrDefault();

                if (box != null)
                {
                    W.Cast(box.Position);
                }
                else
                {
                    if (player.Distance(Game.CursorPos) < W.Range)
                    {
                        W.Cast(Game.CursorPos);
                    }
                    else
                    {
                        W.Cast(player.Position.Extend(Game.CursorPos, W.Range));
                    }
                }
            }
            Jungle.CastSmite(config.Item("useSmite").GetValue <KeyBind>().Active);
            if (ShacoClone && !GhostDelay && config.Item("autoMoveClone", true).GetValue <bool>())
            {
                moveClone();
            }
        }
Esempio n. 12
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(700, DamageType.Physical);

            if (target == null)
            {
                return;
            }

            var hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);

            if (getCheckBoxItem(comboMenu, "useIgnite") && hasIgnite && ((R.IsReady() && ignitedmg + R.GetDamage(target) > target.Health) || ignitedmg > target.Health) && (target.LSDistance(player) > E.Range || player.HealthPercent < 20))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }

            if (getCheckBoxItem(comboMenu, "useq") && Q.IsReady() && player.LSDistance(target) > player.AttackRange && !GarenE && !GarenQ && player.LSDistance(target) > Orbwalking.GetRealAutoAttackRange(target) && CombatHelper.IsPossibleToReachHim(target, 0.30f, new float[5] {
                1.5f, 2f, 2.5f, 3f, 3.5f
            }[Q.Level - 1]))
            {
                Q.Cast(getCheckBoxItem(config, "packets"));
            }

            if (getCheckBoxItem(comboMenu, "useq") && Q.IsReady() && !GarenQ &&
                (!GarenE || (Q.IsReady() && player.LSGetSpellDamage(target, SpellSlot.Q) > target.Health)))
            {
                if (GarenE)
                {
                    E.Cast(getCheckBoxItem(config, "packets"));
                }
                Q.Cast(getCheckBoxItem(config, "packets"));
                Player.IssueOrder(GameObjectOrder.AutoAttack, target);
            }

            if (getCheckBoxItem(comboMenu, "usee") && E.IsReady() && !Q.IsReady() && !GarenQ && !GarenE &&
                player.CountEnemiesInRange(E.Range) > 0)
            {
                E.Cast(getCheckBoxItem(config, "packets"));
            }
            var targHP = target.Health + 20 - CombatHelper.IgniteDamage(target);
            var rLogic = getCheckBoxItem(comboMenu, "user") && R.IsReady() && target.LSIsValidTarget() &&
                         (!getCheckBoxItem(miscMenu, "ult" + target.BaseSkinName) ||
                          player.CountEnemiesInRange(1500) == 1) && getRDamage(target) > targHP && targHP > 0;

            if (rLogic && target.LSDistance(player) < R.Range)
            {
                R.Cast(target, getCheckBoxItem(config, "packets"));
            }
            var data = IncDamages.GetAllyData(player.NetworkId);

            if (getCheckBoxItem(comboMenu, "usew") && W.IsReady() && target.IsFacing(player) &&
                data.DamageTaken > 40)
            {
                W.Cast(getCheckBoxItem(config, "packets"));
            }
            var hasFlash = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerFlash")) == SpellState.Ready;

            if (getCheckBoxItem(comboMenu, "useFlash") && hasFlash && rLogic &&
                target.LSDistance(player) < R.Range + 425 && target.LSDistance(player) > R.Range + 250 && !Q.IsReady() &&
                !CombatHelper.IsFacing(target, player.Position) && !GarenQ)
            {
                if (target.LSDistance(player) < R.Range + 300 && player.MoveSpeed > target.MoveSpeed)
                {
                    return;
                }
                if (GarenE)
                {
                    E.Cast(getCheckBoxItem(config, "packets"));
                }
                else if (!player.Position.LSExtend(target.Position, 425f).IsWall())
                {
                }
                {
                    player.Spellbook.CastSpell(player.GetSpellSlot("SummonerFlash"),
                                               player.Position.LSExtend(target.Position, 425f));
                }
            }
        }
Esempio n. 13
0
        private void Combo()
        {
            AIHeroClient target = DrawHelper.GetBetterTarget(
                E.Range, TargetSelector.DamageType.Physical, true, HeroManager.Enemies.Where(h => h.IsInvulnerable));

            if (target == null)
            {
                return;
            }
            bool canKill = ComboDamage(target) + ItemHandler.GetItemsDamage(target) +
                           player.GetAutoAttackDamage(target) * 2 > target.Health;
            var  ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;

            if (config.Item("useIgnite", true).GetValue <bool>() && ignitedmg > target.Health && hasIgnite &&
                !CombatHelper.CheckCriticalBuffs(target) && !E.CanCast(target) && !justQ && !justE &&
                (target.Distance(player) > 500 || player.HealthPercent < 25))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (rActive)
            {
                return;
            }
            if (canKill)
            {
                orbwalker.SetAttack(true);
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.CanCast(target) &&
                target.Health < player.GetAutoAttackDamage(target) + Q.GetDamage(target))
            {
                Q.Cast();
                EloBuddy.Player.IssueOrder(GameObjectOrder.AutoAttack, target);
            }
            if (config.Item("usew", true).GetValue <bool>() && !Q.IsReady() && !qActive && !player.UnderTurret(true) &&
                W.IsReady() && !canKill &&
                ((!Q.IsReady() && !E.IsReady() && !justE && target.HealthPercent > 20 &&
                  config.Item("wHealth", true).GetValue <Slider>().Value > player.HealthPercent &&
                  Orbwalking.GetRealAutoAttackRange(target) > player.Distance(target) &&
                  CombatHelper.IsFacing(target, player.Position, 45)) ||
                 (config.Item("wOnFocus", true).GetValue <bool>() &&
                  Program.IncDamages.GetAllyData(player.NetworkId).DamageCount >= 3)))
            {
                W.Cast();
            }
            if (R.IsReady() && config.Item("userone", true).GetValue <bool>() && canKill && !eActive && !Q.IsReady() &&
                player.Distance(target) < R.Range && player.HealthPercent < 55 && player.HealthPercent > 10)
            {
                R.Cast();
            }
            if (R.IsReady() && config.Item("Rmin", true).GetValue <Slider>().Value <= player.CountEnemiesInRange(R.Range))
            {
                R.Cast();
            }
            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config);
            }
            if (config.Item("usee", true).GetValue <bool>() && E.CanCast(target) && Orbwalking.CanMove(100) &&
                (config.Item("eMinRange", true).GetValue <Slider>().Value < player.Distance(target) ||
                 player.HealthPercent < 20 || (player.CountEnemiesInRange(800) == 1 && target.HealthPercent < 20)))
            {
                E.CastOnUnit(target);
            }
        }
Esempio n. 14
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            orbwalker.SetAttack(true);
            Jungle.CastSmite(config.Item("useSmite").GetValue <KeyBind>().Active);
            switch (orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                Clear();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                Lasthit();
                break;

            default:
                break;
            }
            if (config.Item("AutoR", true).GetValue <bool>() && R.IsReady())
            {
                foreach (var enemy in
                         HeroManager.Enemies.Where(
                             e =>
                             ((e.UnderTurret(true) &&
                               e.HealthPercent < config.Item("Rhealt", true).GetValue <Slider>().Value * 0.75) ||
                              (!e.UnderTurret(true) &&
                               e.HealthPercent < config.Item("Rhealt", true).GetValue <Slider>().Value)) &&
                             e.HealthPercent > config.Item("RhealtMin", true).GetValue <Slider>().Value&&
                             e.IsValidTarget() && e.Distance(player) > 1500))
                {
                    var ally =
                        HeroManager.Allies.OrderBy(a => a.Health)
                        .FirstOrDefault(
                            a =>
                            enemy.Distance(a) < 700 && CombatHelper.IsFacing(a, enemy.Position) ||
                            CombatHelper.IsFacing(enemy, a.Position));
                    if (ally != null)
                    {
                        var pos = Prediction.GetPrediction(enemy, 0.75f).CastPosition;
                        if (
                            !(CombatHelper.IsFacing(ally, enemy.Position) && CombatHelper.IsFacing(enemy, ally.Position)) &&
                            pos.Distance(enemy.Position) < 450 && enemy.IsMoving)
                        {
                            pos = enemy.Position.Extend(pos, 450);
                        }
                        if (pos.IsValid())
                        {
                            R.Cast(pos);
                        }
                    }
                }
            }

            if (config.Item("AutoQBarrel", true).GetValue <bool>() && Q.IsReady())
            {
                var barrel =
                    GetBarrels()
                    .FirstOrDefault(
                        o =>
                        o.IsValid && !o.IsDead && o.Distance(player) < Q.Range &&
                        o.SkinName == "GangplankBarrel" && o.GetBuff("gangplankebarrellife").Caster.IsMe&&
                        KillableBarrel(o) && o.CountEnemiesInRange(BarrelExplosionRange - 50) > 0);

                if (barrel != null)
                {
                    Q.Cast(barrel);
                }
            }
        }
Esempio n. 15
0
        public static void Game_ProcessSpell(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args)
        {
            if (args == null || hero == null)
            {
                return;
            }
            Obj_AI_Hero targetW   = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
            var         spellName = args.SData.Name;
            Obj_AI_Hero target    = args.Target as Obj_AI_Hero;

            if (targetW != null)
            {
                hero = targetW;
            }
            if (hero.IsMe)
            {
                if (args.SData.Name == "FioraE")
                {
                    Orbwalking.ResetAutoAttackTimer();
                }
            }
            if (config.Item("usewCC", true).GetValue <bool>())
            {
                if (spellName == "CurseofTheSadMummy")
                {
                    if (player.Distance(hero.Position) <= 600f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (CombatHelper.IsFacing(target, player.Position) &&
                    (spellName == "EnchantedCrystalArrow" || spellName == "rivenizunablade" ||
                     spellName == "EzrealTrueshotBarrage" || spellName == "JinxR" || spellName == "sejuaniglacialprison"))
                {
                    if (player.Distance(hero.Position) <= W.Range - 60)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "InfernalGuardian" || spellName == "UFSlash" ||
                    (spellName == "RivenW" && player.HealthPercent < 25))
                {
                    if (player.Distance(args.End) <= 270f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "BlindMonkRKick" || spellName == "SyndraR" || spellName == "VeigarPrimordialBurst" ||
                    spellName == "AlZaharNetherGrasp" || spellName == "LissandraR")
                {
                    if (args.Target.IsMe)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "TristanaR" || spellName == "ViR")
                {
                    if (args.Target.IsMe || player.Distance(args.Target.Position) <= 100f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "GalioIdolOfDurand")
                {
                    if (player.Distance(hero.Position) <= 600f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (target != null && target.IsMe)
                {
                    if (CombatHelper.isTargetedCC(spellName) && spellName != "NasusW" && spellName != "ZedUlt")
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
            }
        }
Esempio n. 16
0
        private void Combo()
        {
            AIHeroClient target = DrawHelper.GetBetterTarget(700, TargetSelector.DamageType.Physical);

            if (target == null)
            {
                return;
            }
            var combodamage = ComboDamage(target);

            if (config.Item("useItems").GetValue <bool>() && !GarenQ)
            {
                ItemHandler.UseItems(target, config, combodamage);
            }
            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var  ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);

            if (config.Item("useIgnite").GetValue <bool>() && hasIgnite &&
                ((R.IsReady() && ignitedmg + R.GetDamage(target) > target.Health) || ignitedmg > target.Health) &&
                (target.Distance(player) > E.Range || player.HealthPercent < 20))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.IsReady() &&
                player.Distance(target) > player.AttackRange && !GarenE && !GarenQ &&
                player.Distance(target) > Orbwalking.GetRealAutoAttackRange(target) &&
                CombatHelper.IsPossibleToReachHim(target, 0.30f, new float[5] {
                1.5f, 2f, 2.5f, 3f, 3.5f
            }[Q.Level - 1]))
            {
                Q.Cast();
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.IsReady() && !GarenQ &&
                (!GarenE || (Q.IsReady() && Damage.GetSpellDamage(player, target, SpellSlot.Q) > target.Health)))
            {
                if (GarenE)
                {
                    E.Cast();
                }
                Q.Cast();
                Player.IssueOrder(GameObjectOrder.AutoAttack, target);
            }
            if (config.Item("usee", true).GetValue <bool>() && E.IsReady() && !Q.IsReady() && !GarenQ && !GarenE &&
                !Orbwalking.CanAttack() && !player.Spellbook.IsAutoAttacking && player.CountEnemiesInRange(E.Range) > 0)
            {
                E.Cast();
            }
            var targHP = target.Health + 20 - CombatHelper.IgniteDamage(target);
            var rLogic = config.Item("user", true).GetValue <bool>() && R.IsReady() && target.IsValidTarget() &&
                         (!config.Item("ult" + target.BaseSkinName, true).GetValue <bool>() ||
                          player.CountEnemiesInRange(1500) == 1) && getRDamage(target) > targHP && targHP > 0;

            if (rLogic && target.Distance(player) < R.Range)
            {
                if (!(GarenE && target.Health < getEDamage(target, true) && target.Distance(player) < E.Range))
                {
                    if (GarenE)
                    {
                        E.Cast();
                    }
                    else
                    {
                        R.Cast(target);
                    }
                }
            }
            var data = Program.IncDamages.GetAllyData(player.NetworkId);

            if (config.Item("usew", true).GetValue <bool>() && W.IsReady() && target.IsFacing(player) &&
                data.DamageTaken > 40)
            {
                W.Cast();
            }
            bool hasFlash = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerFlash")) == SpellState.Ready;

            if (config.Item("useFlash", true).GetValue <bool>() && hasFlash && rLogic &&
                target.Distance(player) < R.Range + 425 && target.Distance(player) > R.Range + 250 && !Q.IsReady() &&
                !CombatHelper.IsFacing(target, player.Position) && !GarenQ)
            {
                if (target.Distance(player) < R.Range + 300 && player.MoveSpeed > target.MoveSpeed)
                {
                    return;
                }
                if (GarenE)
                {
                    E.Cast();
                }
                else if (!player.Position.Extend(target.Position, 425f).IsWall())
                {
                }
                {
                    player.Spellbook.CastSpell(
                        player.GetSpellSlot("SummonerFlash"), player.Position.Extend(target.Position, 425f));
                }
            }
        }