示例#1
0
        private static double Overkillcheck(Obj_AI_Hero target)
        {
            //needs ignite with health + duration check +++++
            double dmg = 0;
            var    aa  = Player.GetAutoAttackDamage(target);

            //Shit ain't done yet mate.

            if (Q.IsReady() && target.IsValidTarget(Q.Range) && Q1 == 0)
            {
                dmg += Qdmg(target) + aa;
            }
            if (Q1 == 1 && target.IsValidTarget(Q.Range))
            {
                dmg += Qdmg(target) + aa;
            }
            if (E.IsReady() && Player.Distance(target.Position) <= Player.GetRealAutoAttackRange())
            {
                dmg += aa;
            }
            if (Items.CanUseItem(3074) || Items.CanUseItem(3077))
            {
                dmg += aa + aa * 0.60;
            }
            if (Player.Distance(target) <= Player.GetRealAutoAttackRange())
            {
                dmg += aa;
            }

            return(dmg);
        }
 /// <summary>
 ///     Determines whether [is valid target] [the specified hero].
 /// </summary>
 /// <param name="hero">The hero.</param>
 /// <param name="range">The range.</param>
 /// <param name="damageType">Type of the damage.</param>
 /// <param name="ignoreShields">if set to <c>true</c> [ignore shields].</param>
 /// <param name="from">From.</param>
 /// <returns></returns>
 private bool IsValidTarget(
     Obj_AI_Hero hero,
     float range,
     DamageType damageType,
     bool ignoreShields = true,
     Vector3 from       = default(Vector3))
 {
     return(hero.IsValidTarget() &&
            hero.DistanceSquared(@from.Equals(default(Vector3)) ? GameObjects.Player.ServerPosition : @from)
            < Math.Pow(range <= 0 ? hero.GetRealAutoAttackRange() : range, 2) &&
            !Invulnerable.Check(hero, damageType, ignoreShields));
 }
        /// <summary>
        ///     Orbwalk command execution.
        /// </summary>
        private static void Orbwalk(OrbwalkerArgs args)
        {
            if (BlockOnce)
            {
                BlockOnce = false;
                return;
            }
            bool order;

            switch (args.Type)
            {
            case OrbwalkerType.AutoAttack:
                if (!args.Target.IsValidTarget(_player.GetRealAutoAttackRange()) || !CanAttack())
                {
                    break;
                }
                order = _player.IssueOrder(GameObjectOrder.AttackUnit, args.Target);
                if (order)
                {
                    _lastAutoAttackTick = Variables.TickCount + Game.Ping / 2;
                }
                break;

            case OrbwalkerType.Movement:
                if (!args.Position.IsValid() && !CanMove(args.Windup))
                {
                    break;
                }
                order = _player.IssueOrder(GameObjectOrder.MoveTo, args.Position);
                if (order)
                {
                    _nextMovementTick = Variables.TickCount + 200;
                }
                break;
            }
        }
示例#4
0
        /// <summary>
        ///     TODO The get dash objects.
        /// </summary>
        /// <param name="predefinedObjectList">
        ///     TODO The predefined object list.
        /// </param>
        /// <returns>
        ///     a list of objects attackable
        /// </returns>
        public static List <Obj_AI_Base> GetDashObjects(IEnumerable <Obj_AI_Base> predefinedObjectList = null)
        {
            var objects = predefinedObjectList != null
                              ? predefinedObjectList.ToList()
                              : ObjectManager.Get <Obj_AI_Base>()
                          .Where(o => o.IsValidTarget(o.GetRealAutoAttackRange()))
                          .ToList();

            var apexPoint = player.ServerPosition.ToVector2()
                            + (player.ServerPosition.ToVector2() - Game.CursorPos.ToVector2()).Normalized()
                            * player.GetRealAutoAttackRange();

            return
                (objects.Where(
                     o =>
                     IsLyingInCone(o.ServerPosition.ToVector2(), apexPoint, player.ServerPosition.ToVector2(), Math.PI))
                 .OrderBy(o => o.Distance(apexPoint))
                 .ToList());
        }
示例#5
0
        private static void FinishLoading()
        {
            LeagueSharp.Drawing.OnDraw += Draw;
            Game.OnUpdate                      += OnUpdate;
            Events.OnGapCloser                 += OnGapcloser;
            Events.OnInterruptableTarget       += OnInterruptableTarget;
            DelayAction.Add(3000, () => MyRange = Player.GetRealAutoAttackRange());
            //Variables.Orbwalker.Enabled = true;
            //DelayAction.Add(1000, () => Variables.Orbwalker.Enabled = true);
            //DelayAction.Add(5000, () => Variables.Orbwalker.Enabled = true);
            //DelayAction.Add(10000, () => Variables.Orbwalker.Enabled = true);
            Menu                     = new Menu("tyler1", "Tyler1", true);
            AutoCatch                = Menu.Add(new MenuBool("tyler1auto", "Auto catch axes?", true));
            CatchOnlyCloseToMouse    = Menu.Add(new MenuBool("tyler1onlyclose", "Catch only axes close to mouse?", true));
            MaxDistToMouse           = Menu.Add(new MenuSlider("tyler1maxdist", "Max axe distance to mouse", 500, 250, 1250));
            OnlyCatchIfSafe          = Menu.Add(new MenuBool("tyler1safeaxes", "Only catch axes if safe (anti melee)", false));
            MinQLaneclearManaPercent =
                Menu.Add(new MenuSlider("tyler1QLCMana", "Min Mana Percent for Q Laneclear", 60, 0, 100));
            EMenu           = Menu.Add(new Menu("tyler1E", "E Settings: "));
            ECombo          = EMenu.Add(new MenuBool("tyler1ECombo", "Use E in Combo", true));
            EGC             = EMenu.Add(new MenuBool("tyler1EGC", "Use E on Gapcloser", true));
            EInterrupt      = EMenu.Add(new MenuBool("tyler1EInterrupt", "Use E to Interrupt", true));
            RMenu           = Menu.Add(new Menu("tyler1R", "R Settings:"));
            RKS             = RMenu.Add(new MenuBool("tyler1RKS", "Use R to steal kills", true));
            RKSOnlyIfCantAA = RMenu.Add(new MenuBool("tyler1RKSOnlyIfCantAA", "Use R KS only if can't AA", true));
            RIfHit          = RMenu.Add(new MenuSlider("tyler1RIfHit", "Use R if it will hit X enemies", 2, 1, 5));
            R1vs1           = RMenu.Add(new MenuBool("tyler1R1v1", "Always use R in 1v1", true));

            WCombo   = Menu.Add(new MenuBool("tyler1WCombo", "Use W in Combo", true));
            UseItems = Menu.Add(new MenuBool("tyler1Items", "Use Items?", true));

            DrawingMenu        = Menu.Add(new Menu("tyler1DrawSettings", "Draw Settings:"));
            DrawAXECatchRadius = DrawingMenu.Add(new MenuBool("tyler1AxeCatchDraw", "Draw Axe Catch Radius", true));
            DrawAXELocation    = DrawingMenu.Add(new MenuBool("tyler1AxeLocationDraw", "Draw Axe Location", true));
            DrawAXELine        = DrawingMenu.Add(new MenuBool("tyler1AxeLineDraw", "Draw Line to Axe Position", true));
            ColorMenu          = DrawingMenu.Add(new MenuColor("tyler1DrawingColor", "Drawing Color", ColorBGRA.FromRgba(Color.Red.ToRgba())));

            Menu.Attach();
        }
示例#6
0
 private static void Swap(Obj_AI_Hero target)
 {
     var eCanKill = E.CanCast(target) && target.Health + target.PhysicalShield <= E.GetDamage(target);
     if (MainMenu["Combo"]["SwapIfKill"])
     {
         if (IsKillByMark(target) || eCanKill)
         {
             SwapCountEnemy();
         }
     }
     if (Player.HealthPercent < MainMenu["Combo"]["SwapIfHpU"])
     {
         if (IsKillByMark(target) || !eCanKill || Player.HealthPercent < target.HealthPercent)
         {
             SwapCountEnemy();
         }
     }
     else if (MainMenu["Combo"]["SwapGap"].GetValue<MenuList>().Index > 0 && !E.IsInRange(target)
              && !IsKillByMark(target))
     {
         var playerDist = target.DistanceToPlayer();
         var wDist = WState == 1 && wShadow.IsValid() ? wShadow.Distance(target) : float.MaxValue;
         var rDist = RState == 1 && rShadow.IsValid() ? rShadow.Distance(target) : float.MaxValue;
         var minDist = Math.Min(Math.Min(wDist, rDist), playerDist);
         if (minDist < playerDist)
         {
             switch (MainMenu["Combo"]["SwapGap"].GetValue<MenuList>().Index)
             {
                 case 1:
                     if (Math.Abs(minDist - wDist) < float.Epsilon)
                     {
                         var comboW = GetCombo(
                             target,
                             Q.IsReady() && minDist < Q.Range,
                             false,
                             E.IsReady() && minDist < E.Range,
                             MainMenu["Combo"]["R"] && MainMenu["Combo"]["RCast" + target.ChampionName]
                             && RState == 0 && minDist < R.Range);
                         if (minDist > target.GetRealAutoAttackRange())
                         {
                             comboW[0] -= Player.GetAutoAttackDamage(target);
                         }
                         if (target.Health + target.PhysicalShield <= comboW[0] && Player.Mana >= comboW[1]
                             && W.Cast())
                         {
                             return;
                         }
                         if (MainMenu["Combo"]["R"] && MainMenu["Combo"]["RCast" + target.ChampionName]
                             && RState == 0 && !R.IsInRange(target) && minDist < R.Range
                             && (MainMenu["Combo"]["RMode"].GetValue<MenuList>().Index == 0 || CanR)
                             && W.Cast())
                         {
                             return;
                         }
                     }
                     else if (Math.Abs(minDist - rDist) < float.Epsilon)
                     {
                         var comboR = GetCombo(
                             target,
                             Q.IsReady() && minDist < Q.Range,
                             false,
                             E.IsReady() && minDist < E.Range,
                             false);
                         if (minDist > target.GetRealAutoAttackRange())
                         {
                             comboR[0] -= Player.GetAutoAttackDamage(target);
                         }
                         if (target.Health + target.PhysicalShield <= comboR[0] && Player.Mana >= comboR[1]
                             && R.Cast())
                         {
                             return;
                         }
                     }
                     if (minDist < E.Range && target.HealthPercent <= 20
                         && target.HealthPercent < Player.HealthPercent && (Q.IsReady() || E.IsReady()))
                     {
                         if (Math.Abs(minDist - wDist) < float.Epsilon)
                         {
                             W.Cast();
                         }
                         else if (Math.Abs(minDist - rDist) < float.Epsilon)
                         {
                             R.Cast();
                         }
                     }
                     break;
                 case 2:
                     if (minDist <= 500)
                     {
                         if (Math.Abs(minDist - wDist) < float.Epsilon)
                         {
                             W.Cast();
                         }
                         else if (Math.Abs(minDist - rDist) < float.Epsilon)
                         {
                             R.Cast();
                         }
                     }
                     break;
             }
         }
     }
 }
示例#7
0
        private static void Swap(Obj_AI_Hero target)
        {
            var eCanKill = E.CanCast(target) && E.CanHitCircle(target) &&
                           target.Health + target.PhysicalShield <= E.GetDamage(target);
            var markCanKill = IsKillByMark(target);

            if (MainMenu["Combo"]["SwapIfKill"] && (markCanKill || eCanKill))
            {
                SwapCountEnemy();
                return;
            }
            if (Player.HealthPercent < MainMenu["Combo"]["SwapIfHpU"])
            {
                if (markCanKill || !eCanKill || Player.HealthPercent < target.HealthPercent)
                {
                    SwapCountEnemy();
                }
            }
            else if (MainMenu["Combo"]["SwapGap"].GetValue <MenuList>().Index > 0 && !E.IsInRange(target) && !markCanKill)
            {
                var wDist   = WState == 1 && wShadow.IsValid() ? wShadow.Distance(target) : float.MaxValue;
                var rDist   = RState == 1 && rShadow.IsValid() ? rShadow.Distance(target) : float.MaxValue;
                var minDist = Math.Min(wDist, rDist);
                if (minDist.Equals(float.MaxValue) || target.DistanceToPlayer() <= minDist)
                {
                    return;
                }
                var swapByW = Math.Abs(minDist - wDist) < float.Epsilon;
                var swapByR = Math.Abs(minDist - rDist) < float.Epsilon;
                if (swapByW && minDist < R.Range && !R.IsInRange(target) &&
                    MainMenu["Combo"]["R"].GetValue <MenuKeyBind>().Active &&
                    MainMenu["Combo"]["RCast" + target.ChampionName] && RState == 0 && CanR && W.Cast())
                {
                    return;
                }
                switch (MainMenu["Combo"]["SwapGap"].GetValue <MenuList>().Index)
                {
                case 1:
                    if (IsInRangeE(target) && target.HealthPercent < 15 && Player.HealthPercent > 30 &&
                        (Q.IsReady() || E.IsReady()))
                    {
                        if (swapByW)
                        {
                            W.Cast();
                        }
                        else if (swapByR)
                        {
                            R.Cast();
                        }
                        return;
                    }
                    var combo = GetCombo(
                        target,
                        Q.IsReady() && minDist < Q.Range,
                        false,
                        E.IsReady() && minDist < E.Range);
                    if (minDist > target.GetRealAutoAttackRange())
                    {
                        combo[0] -= Player.GetAutoAttackDamage(target);
                    }
                    if (minDist > target.GetRealAutoAttackRange() + 100)
                    {
                        combo[0] -= Player.GetAutoAttackDamage(target);
                    }
                    if (target.Health + target.PhysicalShield > combo[0] || Player.Mana < combo[1])
                    {
                        return;
                    }
                    if (swapByW)
                    {
                        W.Cast();
                    }
                    else if (swapByR)
                    {
                        R.Cast();
                    }
                    break;

                case 2:
                    if (minDist > 500)
                    {
                        return;
                    }
                    if (swapByW)
                    {
                        W.Cast();
                    }
                    else if (swapByR)
                    {
                        R.Cast();
                    }
                    break;
                }
            }
        }
 /// <summary>
 ///     Determines whether [is valid target] [the specified hero].
 /// </summary>
 /// <param name="hero">
 ///     The hero.
 /// </param>
 /// <param name="range">
 ///     The range.
 /// </param>
 /// <param name="damageType">
 ///     Type of the damage.
 /// </param>
 /// <param name="ignoreShields">
 ///     Indicates whether to ignore shields.
 /// </param>
 /// <param name="from">The from location.</param>
 /// <returns>
 ///     The <see cref="bool" />.
 /// </returns>
 private static bool IsValidTarget(
     Obj_AI_Hero hero,
     float range,
     DamageType damageType,
     bool ignoreShields = true,
     Vector3 from = default(Vector3))
 {
     return hero.IsValidTarget()
            && hero.DistanceSquared(@from.Equals(default(Vector3)) ? GameObjects.Player.ServerPosition : @from)
            < Math.Pow(range <= 0 ? hero.GetRealAutoAttackRange() : range, 2)
            && !Invulnerable.Check(hero, damageType, ignoreShields);
 }