Esempio n. 1
0
        internal static bool R2Logic(AIHeroClient target)
        {
            if (!target.IsValidTarget() || R.Instance.Name == "RivenFengShuiEngine" || MenuInit.ComboR2 == 3)
            {
                return(false);
            }

            switch (MenuInit.ComboR2)
            {
            case 0:
                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)
                    {
                        return(R.Cast(pred.CastPosition, true));
                    }
                }
                break;

            case 1:
                if (DamageCalculate.GetRDamage(target) > target.Health && target.DistanceToPlayer() < 600)
                {
                    var pred = R.GetPrediction(target, true);

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

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

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

            return(false);
        }
Esempio n. 2
0
        private static void Combo()
        {
            var target = myTarget.IsValidTarget()
                ? myTarget
                : TargetSelector.GetTarget(800f, TargetSelector.DamageType.Physical);

            if (target != null && target.IsValidTarget(800f))
            {
                if (MenuInit.ComboDot && IgniteSlot != SpellSlot.Unknown && Ignite.IsReady() &&
                    target.IsValidTarget(Ignite.Range) &&
                    (target.Health < DamageCalculate.GetComboDamage(target) ||
                     target.Health < DamageCalculate.GetIgniteDmage(target)) &&
                    Ignite.Cast(target, true) == Spell.CastStates.SuccessfullyCasted)
                {
                    return;
                }

                if (MenuInit.ComboYoumuu && Items.HasItem(3142) && Items.CanUseItem(3142) &&
                    target.IsValidTarget(580) && Items.UseItem(3142))
                {
                    return;
                }

                if (MenuInit.ComboR && R.IsReady() && !isRActive &&
                    target.Health <= DamageCalculate.GetComboDamage(target) &&
                    target.IsValidTarget(600f) && Riven.R1Logic(target))
                {
                    return;
                }

                if (MenuInit.ComboR2 != 3 && R.IsReady() && isRActive && Riven.R2Logic(target))
                {
                    return;
                }

                if (MenuInit.ComboQGap && Q.IsReady() && Utils.TickCount - lastQTime > 3600 && !Me.IsDashing() &&
                    target.IsValidTarget(480) && target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me))
                {
                    var pred = Prediction.GetPrediction(target, Q.Delay);

                    if (pred.UnitPosition != Vector3.Zero &&
                        (pred.UnitPosition.DistanceToPlayer() < target.DistanceToPlayer() ||
                         pred.UnitPosition.Distance(target.Position) <= target.DistanceToPlayer()) &&
                        Riven.CastQ(target))
                    {
                        return;
                    }
                }

                if (MenuInit.ComboEGap && E.IsReady() && target.IsValidTarget(600) &&
                    target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) + 50)
                {
                    E.Cast(target.Position, true);
                }

                if (MenuInit.ComboWLogic && W.IsReady() && target.IsValidTarget(W.Range))
                {
                    if (!Q.IsReady() && qStack == 0 && W.Cast(true))
                    {
                        return;
                    }

                    if (!target.IsFacing(Me) && W.Cast(true))
                    {
                        return;
                    }

                    if (Q.IsReady() && qStack > 0 && W.Cast(true))
                    {
                        return;
                    }

                    if (Me.HasBuff("RivenFeint"))
                    {
                        W.Cast(true);
                    }
                }
            }
        }