예제 #1
0
        private static void Combo()
        {
            if (ComboMenu["ComboQ"].Cast <CheckBox>().CurrentValue&& Q.IsReady())
            {
                var target = TargetSelector.GetTarget(Q.Range, DamageType.Magical);

                if (target.IsValidTarget(Q.Range) &&
                    ComboMenu["ComboQ" + target.ChampionName].Cast <CheckBox>().CurrentValue&& !HaveShiled(target))
                {
                    CastQ(target);
                }
            }

            if (ComboMenu["ComboW"].Cast <CheckBox>().CurrentValue&& W.IsReady())
            {
                if ((EntityManager.Heroes.Enemies.Any(x => x.IsValidTarget(Q.Range)) && !Q.IsReady()) ||
                    Player.HasBuffOfType(BuffType.Slow))
                {
                    Player.Instance.Spellbook.CastSpell(SpellSlot.W);
                }
            }

            if (ComboMenu["ComboE"].Cast <CheckBox>().CurrentValue&& E.IsReady())
            {
                var target = TargetSelector.GetTarget(Player.Instance.GetAutoAttackRange() + 65, DamageType.Physical);

                if (target.IsValidTarget() && !Q.IsReady())
                {
                    Player.Instance.Spellbook.CastSpell(SpellSlot.E);
                    Orbwalker.ForcedTarget = target;
                }
            }

            if (ComboMenu["ComboR"].Cast <CheckBox>().CurrentValue&& R.IsReady())
            {
                var target = TargetSelector.GetTarget(R.Range, DamageType.Magical);

                if (target.IsValidTarget(R.Range) && target.HasBuff("rocketgrab2"))
                {
                    Player.Instance.Spellbook.CastSpell(SpellSlot.R);
                }
                else if (target.IsValidTarget(R.Range) && target.Health < DamageCalculate.GetRDamage(target) && !IsUnKillable(target))
                {
                    Player.Instance.Spellbook.CastSpell(SpellSlot.R);
                }
                else if (Player.Instance.CountEnemyChampionsInRange(R.Range) >= 3)
                {
                    Player.Instance.Spellbook.CastSpell(SpellSlot.R);
                }
                else if (Player.Instance.CountEnemyChampionsInRange(R.Range) >= 2 && Player.Instance.IsMelee)
                {
                    Player.Instance.Spellbook.CastSpell(SpellSlot.R);
                }
            }
        }
예제 #2
0
        private static void Combo()
        {
            if (MenuInit.ComboEDash && E.IsReady())
            {
                var target = TargetSelector.GetTarget(Player.Instance.GetAutoAttackRange() + E.Range, DamageType.Physical);

                if (target.IsValidTarget(Player.Instance.GetAutoAttackRange() + E.Range) &&
                    !target.IsValidTarget(Player.Instance.GetAutoAttackRange()))
                {
                    ELogic(target, 0);
                }
            }

            if (MenuInit.ComboQExtend && QExtend.IsReady() && !Player.Instance.IsDashing() && !havePassive && !havePassiveBuff)
            {
                var target = TargetSelector.GetTarget(QExtend.Range, DamageType.Physical);

                if (target.IsValidTarget(QExtend.Range) && !target.IsValidTarget(Q.Range))
                {
                    QLogic(target);
                }
            }

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

                if (target.IsValidTarget(R.Range) && !target.IsUnKillable() && !Player.Instance.IsUnderEnemyturret() &&
                    !target.IsValidTarget(Player.Instance.GetAutoAttackRange()))
                {
                    if (EntityManager.Heroes.Enemies.Any(x => x.NetworkId != target.NetworkId && x.Distance(target) <= 550))
                    {
                        return;
                    }

                    var rAmmo = new float[] { 20, 25, 30 }[Player.Instance.Spellbook.GetSpell(SpellSlot.R).Level - 1];
                    var rDMG  = DamageCalculate.GetRDamage(target) * rAmmo;

                    if (target.Health + target.HPRegenRate * 3 < rDMG)
                    {
                        if (target.DistanceToPlayer() <= 800 && target.Health < rDMG * 0.6)
                        {
                            R.Cast(target);
                            return;
                        }

                        if (target.DistanceToPlayer() <= 1000 && target.Health < rDMG * 0.4)
                        {
                            R.Cast(target);
                        }
                    }
                }
            }
        }
예제 #3
0
        internal static void R2Logic(Obj_AI_Hero target)
        {
            if (target == null || R.Instance.Name == "RivenFengShuiEngine")
            {
                return;
            }

            if (target.Check(850))
            {
                switch (Menu.GetList("R2Mode"))
                {
                case 0:
                    if (DamageCalculate.GetRDamage(target) > target.Health && target.DistanceToPlayer() < 600)
                    {
                        var pred = R.GetPrediction(target, true);

                        if (pred.Hitchance >= HitChance.VeryHigh)
                        {
                            R.Cast(pred.CastPosition, true);
                        }
                    }
                    break;

                case 1:
                    if (target.HealthPercent < 20 ||
                        (target.Health > DamageCalculate.GetRDamage(target) + Me.GetAutoAttackDamage(target) * 2 &&
                         target.HealthPercent < 40) ||
                        (target.Health <= DamageCalculate.GetRDamage(target)) ||
                        (target.Health <= DamageCalculate.GetComboDamage(target) * 1.3))
                    {
                        var pred = R.GetPrediction(target, true);

                        if (pred.Hitchance >= HitChance.VeryHigh)
                        {
                            R.Cast(pred.CastPosition, true);
                        }
                    }
                    break;

                case 2:
                    if (target.DistanceToPlayer() < 600)
                    {
                        var pred = R.GetPrediction(target, true);

                        if (pred.Hitchance >= HitChance.VeryHigh)
                        {
                            R.Cast(pred.CastPosition, true);
                        }
                    }
                    break;
                }
            }
        }
예제 #4
0
        private static void ComboLogic()
        {
            var target = TargetSelector.GetSelectedTarget() ??
                         TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (target != null && !target.IsDead && !target.IsZombie && target.IsHPBarRendered)
            {
                if (Menu.Item("ComboQ").GetValue <bool>() && Q.IsReady() && target.IsValidTarget(Q.Range) && Q.CanCast(target))
                {
                    Q.Cast(true);
                }

                if (Menu.Item("ComboW").GetValue <bool>() && W.IsReady())
                {
                    if (player.HealthPercent <= Menu.Item("WM").GetValue <Slider>().Value)
                    {
                        W.Cast(true);
                    }

                    var ally = HeroManager.Allies.Where(
                        x => x.IsValidTarget(W.Range) && x.HealthPercent <= Menu.Item("WA").GetValue <Slider>().Value).FirstOrDefault();

                    if (ally != null)
                    {
                        W.Cast(true);
                    }
                }

                if (Menu.Item("ComboR").GetValue <bool>() && R.IsReady() && target.IsValidTarget(R.Range))
                {
                    if (target.Health <= DamageCalculate.GetRDamage(target) + player.GetAutoAttackDamage(target) * 2)
                    {
                        R.Cast(target);
                    }
                    else
                    {
                        R.CastIfWillHit(target, Menu.Item("RComboMin").GetValue <Slider>().Value, true);
                    }
                }

                if (Menu.Item("IgniteCombo").GetValue <bool>() && Ignite != SpellSlot.Unknown && Ignite.IsReady())
                {
                    if (DamageCalculate.GetIgniteDmage(target) > target.Health)
                    {
                        player.Spellbook.CastSpell(Ignite, target);
                    }
                }
            }
        }
예제 #5
0
        private static void JungleSteal()
        {
            var mobs =
                ObjectManager.Get <Obj_AI_Minion>()
                .Where(
                    x =>
                    x != null && x.IsMonster && x.Distance(Player.Instance) <= 950 &&
                    !x.Name.ToLower().Contains("mini") && !x.Name.ToLower().Contains("respawn") &&
                    !x.Name.ToLower().Contains("plant"))
                .OrderBy(x => x.MaxHealth);

            foreach (var mob in mobs)
            {
                if (mob.Distance(Player.Instance) > (Q.IsReady() ? Q.Range : R.IsReady() ? R.Range : 1000))
                {
                    continue;
                }

                if (JungleStealMenu["JungleAlly"].Cast <CheckBox>().CurrentValue&&
                    EntityManager.Heroes.Allies.Any(
                        x =>
                        !x.IsDead && !x.IsMe &&
                        x.Distance(mob) <= JungleStealMenu["JungleAllyRange"].Cast <Slider>().CurrentValue))
                {
                    continue;
                }

                if (JungleStealMenu[mob.CharData.BaseSkinName] != null &&
                    JungleStealMenu[mob.CharData.BaseSkinName].Cast <CheckBox>().CurrentValue)
                {
                    if (JungleStealMenu["JungleR"].Cast <CheckBox>().CurrentValue&&
                        mob.Distance(Player.Instance) <= R.Range && mob.Health <= DamageCalculate.GetRDamage(mob))
                    {
                        Player.Instance.Spellbook.CastSpell(SpellSlot.R);
                    }
                    else if (JungleStealMenu["JungleQ"].Cast <CheckBox>().CurrentValue&&
                             mob.Distance(Player.Instance) <= Q.Range && mob.Health <= DamageCalculate.GetQDamage(mob))
                    {
                        var Pred = Q.GetPrediction(mob);

                        if (Pred.HitChance == HitChance.High && !Pred.CollisionObjects.Any())
                        {
                            Q.Cast(mob.Position);
                        }
                    }
                }
            }
        }
예제 #6
0
 internal static void InitTick()
 {
     if (MenuInit.KillStealR && isRActive && R1.IsReady())
     {
         foreach (
             var target in
             EntityManager.Heroes.Enemies.Where(
                 x => x.IsValidRange(R.Range) && DamageCalculate.GetRDamage(x) > x.Health && !x.IsUnKillable()))
         {
             if (target.IsValidRange(R.Range - 100) && !target.IsValidRange(500))
             {
                 R1.Cast(target.Position);
             }
         }
     }
 }
예제 #7
0
        internal static void Init()
        {
            foreach (var target in HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range)))
            {
                if (target.Check(R.Range + E.Range - 100))
                {
                    if (W.IsReady() && Menu.GetBool("KillStealW") && target.IsValidTarget(W.Range) &&
                        target.Health < DamageCalculate.GetWDamage(target))
                    {
                        W.Cast(true);
                    }

                    if (R.IsReady() && Menu.GetBool("KillStealR") && R.Instance.Name == "RivenIzunaBlade" &&
                        DamageCalculate.GetRDamage(target) > target.Health + target.HPRegenRate)
                    {
                        if (E.IsReady() && Menu.GetBool("KillStealE"))
                        {
                            if (Me.ServerPosition.CountEnemiesInRange(R.Range + E.Range) < 3 &&
                                Me.HealthPercent > 50 && target.IsValidTarget(R.Range + E.Range - 100))
                            {
                                if (E.IsReady())
                                {
                                    E.Cast(target.Position, true);
                                    LeagueSharp.Common.Utility.DelayAction.Add(100,
                                                                               () => R.CastIfHitchanceEquals(target, HitChance.High, true));
                                }
                            }
                        }
                        else
                        {
                            if (target.IsValidTarget(R.Range - 50))
                            {
                                R.CastIfHitchanceEquals(target, HitChance.High, true);
                            }
                        }
                    }
                }
            }
        }
예제 #8
0
        internal static void Init()
        {
            if (Menu.GetBool("KillStealR") && R.IsReady())
            {
                if (Menu.GetBool("KillStealRNotCombo") && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    return;
                }

                foreach (
                    var target in
                    HeroManager.Enemies.Where(
                        x =>
                        x.DistanceToPlayer() <= R.Range && x.Health <= DamageCalculate.GetRDamage(x) &&
                        !x.HasBuff("willrevive")))
                {
                    if (target.DistanceToPlayer() <= R.Range && !target.IsDead && Me.CanMoveMent())
                    {
                        R.CastOnUnit(target, true);
                    }
                }
            }

            if (Menu.GetBool("KillStealQ") && Q.IsReady())
            {
                foreach (
                    var target in
                    HeroManager.Enemies.Where(
                        x => x.DistanceToPlayer() <= Q.Range && x.Health <= DamageCalculate.GetQDamage(x)))
                {
                    if (target.IsValidTarget(Q.Range) && !target.IsDead && Me.CanMoveMent())
                    {
                        Q.Cast(true);
                        return;
                    }
                }
            }
        }
예제 #9
0
        internal static bool R2Logic(AIHeroClient target)
        {
            if (!target.IsValidRange() || R.Name == "RivenFengShuiEngine" || MenuInit.ComboR2 == 3)
            {
                return(false);
            }

            switch (MenuInit.ComboR2)
            {
            case 0:
                if (target.HealthPercent < 20 ||
                    (target.Health > DamageCalculate.GetRDamage(target) + Player.Instance.GetAutoAttackDamage(target) * 2 &&
                     target.HealthPercent < 40) ||
                    (target.Health <= DamageCalculate.GetRDamage(target)) ||
                    (target.Health <= DamageCalculate.GetComboDamage(target)))
                {
                    return(R1.Cast(target.Position));
                }
                break;

            case 1:
                if (DamageCalculate.GetRDamage(target) > target.Health && target.DistanceToPlayer() < 600)
                {
                    return(R1.Cast(target.Position));
                }
                break;

            case 2:
                if (target.DistanceToPlayer() < 600)
                {
                    return(R1.Cast(target.Position));
                }
                break;
            }

            return(false);
        }
예제 #10
0
        internal static bool CanQHit(Obj_AI_Hero target)
        {
            if (target == null)
            {
                return(false);
            }

            if (target.DistanceToPlayer() > Q.Range)
            {
                return(false);
            }

            if (target.DistanceToPlayer() <= 240)
            {
                return(false);
            }

            if (target.Health < DamageCalculate.GetRDamage(target) && R.IsReady() && target.IsValidTarget(R.Range))
            {
                return(false);
            }

            return(true);
        }
예제 #11
0
파일: Combo.cs 프로젝트: wade1990/PortAIO
        internal static void Init()
        {
            var target = TargetSelector.GetTarget(600f, TargetSelector.DamageType.Physical);

            if (target != null)
            {
                if (Menu.GetBool("ComboIgnite") && Ignite != SpellSlot.Unknown && Ignite.IsReady() &&
                    target.DistanceToPlayer() <= 600f &&
                    (target.Health < DamageCalculate.GetComboDamage(target) ||
                     target.Health < DamageCalculate.GetIgniteDmage(target)))
                {
                    Me.Spellbook.CastSpell(Ignite, target);
                }

                if (HeroManager.Enemies.Any(x => x.DistanceToPlayer() <= 400))
                {
                    SpellManager.CastItem();
                }

                if (Menu.GetKey("ComboR") && R.IsReady())
                {
                    foreach (var rTarget in HeroManager.Enemies.Where(x => x.DistanceToPlayer() <= R.Range &&
                                                                      x.Health <= DamageCalculate.GetRDamage(x) &&
                                                                      !x.HasBuff("willrevive")))
                    {
                        if (rTarget.IsValidTarget(R.Range))
                        {
                            R.CastOnUnit(target, true);
                        }
                    }
                }

                if (Menu.GetBool("ComboQLock") && Me.HasBuff("dariusqcast") && Me.CountEnemiesInRange(800) < 3)
                {
                    Orbwalker.SetMovement(false);
                    Orbwalker.SetAttack(false);

                    if (target.DistanceToPlayer() <= 250)
                    {
                        EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Me.Position.Extend(target.Position, -Q.Range));
                    }
                    else if (target.DistanceToPlayer() <= Q.Range)
                    {
                        EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                    }
                    else
                    {
                        EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, target.Position);
                    }
                }
                else
                {
                    Orbwalker.SetMovement(true);
                    Orbwalker.SetAttack(true);
                }

                if (Menu.GetBool("ComboQ") && Q.IsReady() && target.DistanceToPlayer() <= Q.Range &&
                    SpellManager.CanQHit(target) && Me.CanMoveMent())
                {
                    if (Menu.GetBool("ComboSaveMana") && Me.Mana < SpellManager.RMana + Q.Instance.SData.Mana)
                    {
                        return;
                    }

                    if (Utils.TickCount - lastETime > 1000)
                    {
                        Q.Cast(true);
                    }
                }

                if (Menu.GetBool("ComboE") && E.IsReady() && target.DistanceToPlayer() <= E.Range - 30 &&
                    !Orbwalking.InAutoAttackRange(target) && !target.HaveShiled())
                {
                    if (Menu.GetBool("ComboSaveMana") && Me.Mana < SpellManager.RMana + Q.Instance.SData.Mana)
                    {
                        return;
                    }

                    var pred = E.GetPrediction(target);
                    E.Cast(pred.UnitPosition, true);
                }
            }
        }
예제 #12
0
파일: Combo.cs 프로젝트: Dekryptor/Port-1
        internal static void Init()
        {
            if (SpellManager.isCastingUlt)
            {
                return;
            }

            var target = TargetSelector.GetTarget(E.Range + 300f, TargetSelector.DamageType.Magical);

            if (target.Check(E.Range + 300f))
            {
                if (Menu.GetBool("ComboDot") && Ignite != SpellSlot.Unknown && Ignite.IsReady() &&
                    target.IsValidTarget(600) &&
                    (target.Health < DamageCalculate.GetComboDamage(target) ||
                     target.Health < Me.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite)))
                {
                    Me.Spellbook.CastSpell(Ignite, target);
                }

                switch (Menu.GetList("ComboMode"))
                {
                case 0:
                    SpellManager.QEWLogic(Menu.GetBool("ComboQ"), Menu.GetBool("ComboW"), Menu.GetBool("ComboE"));
                    break;

                case 1:
                    SpellManager.EQWLogic(Menu.GetBool("ComboQ"), Menu.GetBool("ComboW"), Menu.GetBool("ComboE"));
                    break;
                }

                if (Menu.GetBool("ComboW") && W.IsReady() && target.IsValidTarget(W.Range))
                {
                    W.Cast();
                }

                if (Menu.GetBool("ComboR") && R.IsReady() &&
                    HeroManager.Enemies.Any(x => x.DistanceToPlayer() <= R.Range) && !Q.IsReady() && !W.IsReady() &&
                    !E.IsReady())
                {
                    if (Menu.GetBool("ComboRalways"))
                    {
                        Orbwalker.SetAttack(false);
                        Orbwalker.SetMovement(false);
                        R.Cast();
                    }

                    if (Menu.GetBool("ComboRcanKill") &&
                        (target.Health <= DamageCalculate.GetComboDamage(target) ||
                         target.Health <= DamageCalculate.GetRDamage(target) * 0.8))
                    {
                        Orbwalker.SetAttack(false);
                        Orbwalker.SetMovement(false);
                        R.Cast();
                    }

                    if (Menu.GetBool("ComboRhitCount") &&
                        HeroManager.Enemies.Count(x => !x.IsDead && x.DistanceToPlayer() <= R.Range) >=
                        Menu.GetSlider("ComboRhitCountcount"))
                    {
                        Orbwalker.SetAttack(false);
                        Orbwalker.SetMovement(false);
                        R.Cast();
                    }
                }
            }
        }
예제 #13
0
        private static void KillSteal()
        {
            if (Menu.Item("KillStealQ").GetValue <bool>() && Q.IsReady())
            {
                var qt = HeroManager.Enemies.Where(x => x.IsValidTarget(Q.Range) && x.Health < DamageCalculate.GetQDamage(x)).FirstOrDefault();

                if (qt != null)
                {
                    Q.Cast();
                    return;
                }
            }

            if (Menu.Item("KillStealR").GetValue <bool>() && R.IsReady())
            {
                var rt = HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) && x.Health < DamageCalculate.GetRDamage(x) &&
                                                   Menu.Item("Ult" + x.ChampionName.ToLower()).GetValue <bool>()).FirstOrDefault();

                if (rt != null)
                {
                    R.Cast();
                    return;
                }
            }
        }