示例#1
0
        private void LogicR(Obj_AI_Base target, bool extendedR = false, bool useE = false,
                            Orbwalker.ActiveModes activeMode   = Orbwalker.ActiveModes.None)
        {
            var t = target as AIHeroClient;

            if (t == null)
            {
                return;
            }

            if (extendedR)
            {
                if (!R2.IsInRange(t) && useE)
                {
                    var dist = Player.Instance.Distance(target) - R2.Range;

                    if (dist > E.Range)
                    {
                        return;
                    }

                    var ePrediction = E.GetPrediction(target);

                    if (ePrediction.CastPosition.IsInRange(target, R2.Range))
                    {
                        E.Cast(ePrediction.CastPosition);
                    }

                    var rPrediction = R2.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R2.Cast(rPrediction.CastPosition);
                    }
                }
                else if (R2.IsInRange(t))
                {
                    var rPrediction = R2.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R2.Cast(rPrediction.CastPosition);
                    }
                }
            }
            else
            {
                if (!R.IsInRange(t) && useE)
                {
                    var dist = Player.Instance.Distance(target) - R.Range;

                    if (dist > E.Range)
                    {
                        return;
                    }

                    var ePrediction = E.GetPrediction(target);

                    if (ePrediction.CastPosition.IsInRange(target, R.Range))
                    {
                        E.Cast(ePrediction.CastPosition);
                    }

                    var rPrediction = R.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R.Cast(rPrediction.CastPosition);
                    }
                }
                else if (activeMode == Orbwalker.ActiveModes.Combo)
                {
                    var enemiesAroundTarget = t.CountEnemiesInRange(R.Width);

                    if (enemiesAroundTarget < ComboMenu.GetSliderValue("combo.r.aoe"))
                    {
                        return;
                    }

                    var rPrediction = R.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R.Cast(rPrediction.CastPosition);
                    }
                }
                else if (R.IsInRange(t))
                {
                    var rPrediction = R.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R.Cast(rPrediction.CastPosition);
                    }
                }
            }
        }