示例#1
0
        public static void Harass()
        {
            var target = TargetSelector.GetTarget(360, TargetSelector.DamageType.Physical);

            if (target == null)
            {
                return;
            }

            if (Spells.Q.IsReady() && Spells.W.IsReady() && Qstack == 1)
            {
                BackgroundData.CastQ(target);
            }

            if (Spells.W.IsReady() && BackgroundData.InRange(target))
            {
                BackgroundData.CastW(target);
            }

            if (!Spells.Q.IsReady() ||
                !Spells.E.IsReady() ||
                Qstack != 3 ||
                Orbwalking.CanAttack() ||
                !Orbwalking.CanMove(5))
            {
                return;
            }

            Spells.E.Cast(Game.CursorPos);

            Utility.DelayAction.Add(190, () => Spells.Q.Cast(target.Position));
        }
示例#2
0
        public static void Harass()
        {
            var target = TargetSelector.GetTarget(360, DamageType.Physical);

            if (target == null)
            {
                return;
            }

            if (Spells.Q.IsReady() && Spells.W.IsReady() && Qstack == 1)
            {
                BackgroundData.CastQ(target);
            }

            if (Spells.W.IsReady() && BackgroundData.InRange(target))
            {
                BackgroundData.CastW(target);
            }

            if (!Spells.Q.IsReady() ||
                !Spells.E.IsReady() ||
                Qstack != 3 ||
                Orbwalker.CanAutoAttack ||//Orbwalking.CanAttack()
                !Orbwalker.CanMove)   //!Orbwalking.CanMove(5))
            {
                return;
            }

            Spells.E.Cast(Game.CursorPos);
            EloBuddy.SDK.Core.DelayAction(() => Spells.Q.Cast(target.Position), 190);
        }
示例#3
0
        public static void Update(EventArgs args)
        {
            var target = TargetSelector.GetTarget(Spells.R.Range, TargetSelector.DamageType.Physical);

            if (target == null || target.HasBuff(BackgroundData.InvulnerableList.ToString()))
            {
                return;
            }

            if (Spells.W.IsReady() &&
                MenuConfig.KsW &&
                target.Health <= Spells.W.GetDamage(target) &&
                BackgroundData.InRange(target))
            {
                BackgroundData.CastW(target);
            }

            if (Spells.R.IsReady() &&
                Spells.R.Instance.Name == IsSecondR &&
                MenuConfig.KsR2)
            {
                if (target.Health < Dmg.RDmg(target))
                {
                    var pred = Spells.R.GetPrediction(target);

                    Spells.R.Cast(pred.CastPosition);
                }
            }

            if (target.Health < Spells.Q.GetDamage(target) && Spells.Q.IsReady() && Qstack != 3)
            {
                Spells.Q.Cast(target.Position);
            }

            if (!Spells.Ignite.IsReady() || !MenuConfig.Ignite)
            {
                return;
            }

            if (target.IsValidTarget(600f) && Dmg.IgniteDamage(target) >= target.Health)
            {
                Player.Spellbook.CastSpell(Spells.Ignite, target);
            }
        }
示例#4
0
        public static void Update(EventArgs args)
        {
            var target = TargetSelector.GetTarget(Spells.R.Range, DamageType.Physical);

            if (target == null || target.IsDead || target.HasBuff(BackgroundData.InvulnerableList.ToString()))
            {
                return;
            }

            if (Spells.W.IsReady() &&
                MenuConfig.KsW &&
                target.Health <= Spells.W.GetSpellDamage(target) &&
                BackgroundData.InRange(target))
            {
                BackgroundData.CastW(target);
            }

            if (Spells.R.IsReady() && Spells.R.Name == IsSecondR && MenuConfig.KsR2)
            {
                var rDmg = Dmg.RDmg(target);
                //Chat.Print("Ult dmg= " + rDmg);
                if (rDmg != 0 && (target.Health + target.TotalShieldHealth()) < rDmg)
                {
                    var pred = Spells.R.GetPrediction(target);
                    Player.Spellbook.CastSpell(SpellSlot.R, pred.CastPosition);
                }
            }

            if (target.Health < Spells.Q.GetSpellDamage(target) && Spells.Q.IsReady() && Qstack != 3)
            {
                Player.Spellbook.CastSpell(SpellSlot.Q, target.Position);
            }

            if (Player.Spellbook.CanUseSpell(Spells.Ignite) != SpellState.Ready || !MenuConfig.Ignite)
            {
                return;
            }

            if (target.IsValidTarget(600f) && Dmg.IgniteDamage(target) >= target.Health)
            {
                Player.Spellbook.CastSpell(Spells.Ignite, target);
            }
        }
示例#5
0
        public static void Laneclear()
        {
            var minions = MinionManager.GetMinions(Player.AttackRange + 380);

            if (minions == null || Player.IsWindingUp || (MenuConfig.LaneEnemy && ObjectManager.Player.CountEnemiesInRange(1500) > 0))
            {
                return;
            }

            if (minions.Count <= 2)
            {
                return;
            }

            foreach (var m in minions)
            {
                if (m.UnderTurret(true))
                {
                    return;
                }

                if (Spells.E.IsReady() && MenuConfig.LaneE)
                {
                    BackgroundData.CastE(m);
                }

                if (MenuConfig.LaneQFast && m.Health < Spells.Q.GetDamage(m) && Spells.Q.IsReady())
                {
                    BackgroundData.CastQ(m);
                }

                else if (Spells.W.IsReady() &&
                         MenuConfig.LaneW &&
                         !Player.IsWindingUp &&
                         !(m.Health > Spells.W.GetDamage(m)) &&
                         BackgroundData.InRange(m))
                {
                    BackgroundData.CastW(m);
                }
            }
        }
示例#6
0
        public static void Laneclear()
        {
            var minions = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Position, Player.AttackRange + 380).ToList();

            if (minions == null || (MenuConfig.LaneEnemy && Player.CountEnemiesInRange(1500) > 0))// || Player.IsWindingUp)
            {
                return;
            }

            if (minions.Count <= 2)
            {
                return;
            }

            foreach (var m in minions)
            {
                if (m.IsUnderEnemyturret())
                {
                    return;
                }
                if (Spells.E.IsReady() && MenuConfig.LaneE)
                {
                    BackgroundData.CastE(m);
                }
                if (MenuConfig.LaneQFast && m.Health < RivenSharp.Managers.DamageManager.GetQDamage(m) && Spells.Q.IsReady())
                {
                    BackgroundData.CastQ(m);
                }
                else if (Spells.W.IsReady() &&
                         MenuConfig.LaneW
                         //&& !Player.IsWindingUp
                         && !(m.Health > RivenSharp.Managers.DamageManager.GetWDamage(m)) &&
                         BackgroundData.InRange(m))
                {
                    BackgroundData.CastW(m);
                }
            }
        }
示例#7
0
        public static void Combo()
        {
            if (Target == null)
            {
                return;
            }

            if (Spells.R.IsReady() && Spells.R.Instance.Name == IsSecondR)
            {
                ComboCastR2(Target);
            }

            if (Spells.E.IsReady() && MenuConfig.Q3Wall && Qstack >= 3)
            {
                Q3Wall(Target);
            }

            if (Spells.E.IsReady())
            {
                Spells.E.Cast(Target.Position);
            }

            if (Spells.R.IsReady() &&
                Spells.R.Instance.Name == IsFirstR &&
                MenuConfig.UseR1 &&
                Target.Health > Dmg.GetComboDamage(Target) - Spells.R.GetDamage(Target))
            {
                Spells.R.Cast();
            }

            if (!Spells.W.IsReady() || !BackgroundData.InRange(Target))
            {
                return;
            }

            DoublecastWQ(Target);
        }
示例#8
0
        public static void Harass()
        {
            var target = TargetSelector.GetTarget(360, TargetSelector.DamageType.Physical);

            if (target == null)
            {
                return;
            }

            if (Spells.Q.IsReady() && Spells.W.IsReady() && Qstack == 1)
            {
                BackgroundData.CastQ(target);
            }

            if (Spells.W.IsReady() && BackgroundData.InRange(target))
            {
                BackgroundData.CastW(target);
            }

            if (!Spells.Q.IsReady() ||
                !Spells.E.IsReady() ||
                Qstack != 3 ||
                Orbwalking.CanAttack() ||
                !Orbwalking.CanMove(0))
            {
                return;
            }

            Spells.E.Cast(Game.CursorPos);

            if (Spells.R.IsReady() && Spells.R.Instance.Name == IsFirstR && MenuConfig.UltHarass && target.Health < Dmg.GetComboDamage(target) * 1.2)
            {
                Spells.R.Cast(target);
            }

            LeagueSharp.Common.Utility.DelayAction.Add(190, () => Spells.Q.Cast(target.Position));
        }
示例#9
0
        public static void OnProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsEnemy || !sender.IsValidTarget(1000))
            {
                return;
            }

            if (Spells.E.IsReady() &&
                args.Target.IsMe &&
                (BackgroundData.AntigapclosingSpells.Contains(args.SData.Name) ||
                 BackgroundData.TargetedSpells.Contains(args.SData.Name)))
            {
                LeagueSharp.Common.Utility.DelayAction.Add(30, () => Spells.E.Cast(Game.CursorPos));
            }

            if (!BackgroundData.InterrupterSpell.Contains(args.SData.Name) ||
                !Spells.W.IsReady() ||
                !BackgroundData.InRange(sender))
            {
                return;
            }

            BackgroundData.CastW(sender);
        }
示例#10
0
        // Jungle, Combo etc.
        public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe || !Orbwalker.IsAutoAttacking)//!Orbwalking.IsAutoAttack(args.SData.Name))
            {
                return;
            }
            var a = EntityManager.Enemies.Where(x => x.IsValidTarget(Player.AttackRange + 360, true));

            var targets = a as AIHeroClient[] ?? a.ToArray();

            foreach (var target in targets)
            {
                if (target.HasBuff("FioraW") && Qstack == 3)
                {
                    return;
                }
                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && !MenuConfig.BurstEnabled)
                {
                    if (Spells.Q.IsReady())
                    {
                        Usables.CastYoumoo();
                        BackgroundData.CastQ(target);
                    }
                }
                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
                {
                    if (Qstack == 2)
                    {
                        BackgroundData.CastQ(target);
                    }
                }

                /*
                 * if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.FastHarass)
                 * {
                 *  if (Spells.Q.IsReady() && Qstack == 2)
                 *  {
                 *      BackgroundData.CastQ(target);
                 *  }
                 * }
                 */

                if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) || !MenuConfig.BurstEnabled)
                {
                    return;
                }

                if (Spells.Q.IsReady())
                {
                    BackgroundData.CastQ(target);
                }
            }
            if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
            //if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear)
            {
                return;
            }

            if (args.Target is Obj_AI_Minion)
            {
                if (MenuConfig.LaneEnemy && ObjectManager.Player.CountEnemiesInRange(1500) > 0)
                {
                    return;
                }
                var minions = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Position, Player.AttackRange + 360);
                foreach (var m in minions)
                {
                    if (!MenuConfig.LaneQ || (m.IsUnderEnemyturret() && ObjectManager.Player.CountEnemiesInRange(1500) >= 1))
                    {
                        return;
                    }

                    if (Spells.Q.IsReady())
                    {
                        BackgroundData.CastQ(m);
                    }
                }
                var mobs = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Position, 360);
                if (mobs == null)
                {
                    return;
                }

                foreach (var m in mobs)
                {
                    if (MenuConfig.JnglQ && Spells.Q.IsReady())
                    {
                        BackgroundData.CastQ(m);
                    }

                    if (!Spells.W.IsReady() || !MenuConfig.JnglW || Player.HasBuff("RivenFeint") || !BackgroundData.InRange(m))
                    {
                        return;
                    }

                    BackgroundData.CastW(m);
                }
            }

            if (!Spells.Q.IsReady() || !MenuConfig.LaneQ)
            {
                return;
            }

            var nexus = args.Target as Obj_HQ;

            if (nexus != null && nexus.IsValid)
            {
                IsGameObject = true;
                Spells.Q.Cast(nexus.Position - 500);
            }

            var inhib = args.Target as Obj_BarracksDampener;

            if (inhib != null && inhib.IsValid)
            {
                IsGameObject = true;
                Spells.Q.Cast(inhib.Position - 250);
            }

            var turret = args.Target as Obj_AI_Turret;

            if (turret == null || !turret.IsValid)
            {
                return;
            }

            IsGameObject = true;
            Spells.Q.Cast(turret.Position - 250);
        }
示例#11
0
        public static void Combo()
        {
            var target = TargetSelector.GetTarget(Player.AttackRange + 310, TargetSelector.DamageType.Physical);

            if (target == null || !target.IsValidTarget(Player.AttackRange + 310))
            {
                return;
            }

            if (Spells.R.IsReady() && Spells.R.Instance.Name == IsSecondR)
            {
                var pred = Spells.R.GetPrediction(target, true, collisionable: new[] { CollisionableObjects.YasuoWall });

                if (pred.Hitchance < HitChance.High || target.HasBuff(BackgroundData.InvulnerableList.ToString()) || Player.IsWindingUp)
                {
                    return;
                }

                if ((!MenuConfig.OverKillCheck && Qstack > 1) ||
                    MenuConfig.OverKillCheck &&
                    (target.HealthPercent <= 40 &&
                     !Spells.Q.IsReady() && Qstack == 1 ||
                     target.Distance(Player) >= Player.AttackRange + 310))
                {
                    Spells.R.Cast(pred.CastPosition);
                }
            }

            #region Q3 Wall

            if (Qstack == 3 &&
                target.Distance(Player) >= Player.AttackRange &&
                target.Distance(Player) <= 650 &&
                MenuConfig.Q3Wall &&
                Spells.E.IsReady())
            {
                var wallPoint = FleeLogic.GetFirstWallPoint(Player.Position, Player.Position.Extend(target.Position, 650));

                Player.GetPath(wallPoint);

                if (!Spells.E.IsReady() || wallPoint.Distance(Player.Position) > Spells.E.Range || !wallPoint.IsValid())
                {
                    return;
                }

                Spells.E.Cast(wallPoint);

                if (Spells.R.IsReady() && Spells.R.Instance.Name == IsFirstR)
                {
                    Spells.R.Cast();
                }

                Utility.DelayAction.Add(190, () => Spells.Q.Cast(wallPoint));

                if (wallPoint.Distance(Player.Position) <= 100)
                {
                    Spells.Q.Cast(wallPoint);
                }
            }
            #endregion

            if (Spells.E.IsReady())
            {
                Spells.E.Cast(target.Position);

                if (MenuConfig.AlwaysR && Spells.R.IsReady() && Spells.R.Instance.Name == IsFirstR)
                {
                    Spells.R.Cast();
                }
                else
                {
                    Utility.DelayAction.Add(10, Usables.CastHydra);
                }
            }

            if (!Spells.W.IsReady() || !BackgroundData.InRange(target))
            {
                return;
            }

            if (MenuConfig.Doublecast && Spells.Q.IsReady() && Qstack != 2)
            {
                BackgroundData.CastW(target);
                BackgroundData.DoubleCastQ(target);
            }
            else
            {
                BackgroundData.CastW(target);
            }
        }
示例#12
0
        public static void Combo()
        {
            var targetAquireRange = Spells.R.IsReady() ? Player.AttackRange + 390 : Player.AttackRange + 370;
            var target            = TargetSelector.GetTarget(targetAquireRange, DamageType.Physical);

            //var target = TargetSelector.GetTarget(targetAquireRange, DamageType.Physical, Player.Position);

            if (target == null || !target.IsValidTarget() || target.Type != Player.Type)
            {
                return;
            }

            if (Spells.R.IsReady() && Spells.R.Name == IsSecondR)
            {
                var pred = Spells.R.GetPrediction(target);                                                                                    //, true, collisionable: new[] { CollisionableObjects.YasuoWall });

                if (pred.HitChance != EloBuddy.SDK.Enumerations.HitChance.High || target.HasBuff(BackgroundData.InvulnerableList.ToString())) // || Player.IsWindingUp)
                {
                    //return;
                }
                else
                {
                    if ((!MenuConfig.OverKillCheck && Qstack > 1) || MenuConfig.OverKillCheck &&
                        (target.HealthPercent <= 40 &&
                         !Spells.Q.IsReady() && Qstack == 1 || target.Distance(Player) >= Player.AttackRange + 310))
                    {
                        Player.Spellbook.CastSpell(SpellSlot.R, pred.UnitPosition);
                    }
                }
            }

            #region Q3 Wall

            if (Qstack == 3 && target.Distance(Player) >= Player.AttackRange && target.Distance(Player) <= 650 && MenuConfig.Q3Wall && Spells.E.IsReady())
            {
                var wallPoint = FleeLogic.GetFirstWallPoint(Player.Position, Player.Position.Extend(target.Position, 650).To3D());//TODO: Fix this...

                Player.GetPath(wallPoint);

                if (!Spells.E.IsReady() || wallPoint.Distance(Player.Position) > Spells.E.Range || !wallPoint.IsValid())
                {
                    //return;
                }
                else
                {
                    Player.Spellbook.CastSpell(SpellSlot.E, wallPoint);

                    if (Spells.R.IsReady() && Spells.R.Name == IsFirstR)
                    {
                        Player.Spellbook.CastSpell(SpellSlot.R, target);
                    }

                    EloBuddy.SDK.Core.DelayAction(() => Player.Spellbook.CastSpell(SpellSlot.Q, wallPoint), 190);

                    if (wallPoint.Distance(Player.Position) <= 100)
                    {
                        Player.Spellbook.CastSpell(SpellSlot.Q, wallPoint);
                    }
                }
            }
            #endregion

            if (Spells.E.IsReady())
            {
                //Chat.Print("I casted E toward " + target.Name);
                Usables.CastYoumoo();

                if (MenuConfig.AlwaysR && Spells.R.IsReady() && !Spells.R.IsOnCooldown && Spells.R.Name == IsFirstR)
                {
                    Player.Spellbook.CastSpell(SpellSlot.R, target);
                }
                else
                {
                    Player.Spellbook.CastSpell(SpellSlot.E, target);
                    //if (Player.Distance(target) < 350)

                    EloBuddy.SDK.Core.DelayAction(Usables.CastHydra, 10);
                }
            }

            if (Spells.W.IsReady() && BackgroundData.InRange(target))
            {
                if (MenuConfig.Doublecast && Spells.Q.IsReady() && Qstack != 2)
                {
                    BackgroundData.CastW(target);
                    BackgroundData.DoubleCastQ(target);
                }
                else
                {
                    BackgroundData.CastW(target);
                }
            }
            //Added....
            if (Spells.Q.IsReady() && Spells.Q.IsInRange(target))
            {
                BackgroundData.CastQ(target);
                //Player.Spellbook.CastSpell(SpellSlot.Q, target);
            }
        }
示例#13
0
        public static void Flee()
        {
            if (MenuConfig.WallFlee && ObjectManager.Player.CountEnemiesInRange(1500) == 0)
            {
                var end        = Player.ServerPosition.Extend(Game.CursorPos, 350);
                var isWallDash = FleeLogic.IsWallDash(end, 350);

                var eend      = Player.ServerPosition.Extend(Game.CursorPos, 350);
                var wallE     = FleeLogic.GetFirstWallPoint(Player.ServerPosition, eend);
                var wallPoint = FleeLogic.GetFirstWallPoint(Player.ServerPosition, end);

                Player.GetPath(wallPoint);

                if (Spells.Q.IsReady() && Qstack < 3)
                {
                    Spells.Q.Cast(Game.CursorPos);
                }

                if (Qstack != 3 || !isWallDash)
                {
                    return;
                }

                Player.IssueOrder(GameObjectOrder.MoveTo, wallPoint);

                if (Spells.E.IsReady() && wallPoint.Distance(Player.ServerPosition) <= Spells.E.Range)
                {
                    Spells.E.Cast(wallE);

                    Utility.DelayAction.Add(190, () => Spells.Q.Cast(wallPoint));
                }

                if (wallPoint.Distance(Player.ServerPosition) <= 65)
                {
                    Spells.Q.Cast(wallPoint);
                }
            }
            else
            {
                var enemy = HeroManager.Enemies.Where(target => BackgroundData.InRange(target) && Spells.W.IsReady());

                var x = Player.Position.Extend(Game.CursorPos, 300);

                var targets = enemy as Obj_AI_Hero[] ?? enemy.ToArray();

                if (Spells.W.IsReady() && targets.Any())
                {
                    foreach (var target in targets)
                    {
                        if (BackgroundData.InRange(target))
                        {
                            Spells.W.Cast();
                        }
                    }
                }

                if (Spells.Q.IsReady() && !Player.IsDashing())
                {
                    Spells.Q.Cast(Game.CursorPos);
                }

                if (MenuConfig.FleeYomuu)
                {
                    Usables.CastYoumoo();
                }

                if (Spells.E.IsReady() && !Player.IsDashing())
                {
                    Spells.E.Cast(x);
                }
            }
        }
示例#14
0
        public static void OnSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe || !Orbwalking.IsAutoAttack(args.SData.Name))
            {
                return;
            }

            var a = HeroManager.Enemies.Where(x => x.IsValidTarget(Player.AttackRange + 360));

            var targets = a as AIHeroClient[] ?? a.ToArray();

            foreach (var target in targets)
            {
                if (target.HasBuff("FioraW") && Qstack == 3)
                {
                    return;
                }

                switch (Orbwalker.ActiveMode)
                {
                case Orbwalking.OrbwalkingMode.Combo:

                    if (Spells.Q.IsReady())
                    {
                        Usables.CastYoumoo();
                        BackgroundData.CastQ(target);
                    }

                    break;

                case Orbwalking.OrbwalkingMode.Burst:

                    if (Spells.Q.IsReady())
                    {
                        BackgroundData.CastQ(target);
                    }

                    break;

                case Orbwalking.OrbwalkingMode.Mixed:

                    if (Qstack == 2)
                    {
                        BackgroundData.CastQ(target);
                    }

                    if (Spells.R.IsReady() && Spells.R.Instance.Name == IsSecondR)
                    {
                        Spells.R.Cast(target);
                    }
                    break;

                case Orbwalking.OrbwalkingMode.QuickHarass:

                    if (Spells.Q.IsReady() && Qstack == 2)
                    {
                        BackgroundData.CastQ(target);
                    }

                    break;
                }
            }

            if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear)
            {
                return;
            }

            if (args.Target is Obj_AI_Minion)
            {
                if (MenuConfig.LaneEnemy && ObjectManager.Player.CountEnemiesInRange(1500) > 0)
                {
                    return;
                }

                var minions = MinionManager.GetMinions(Player.AttackRange + 360);

                foreach (var m in minions)
                {
                    if (!MenuConfig.LaneQ || (m.UnderTurret(true) && ObjectManager.Player.CountEnemiesInRange(1500) >= 1))
                    {
                        return;
                    }

                    if (Spells.Q.IsReady())
                    {
                        BackgroundData.CastQ(m);
                    }
                }

                var mobs = MinionManager.GetMinions(Player.Position, 360f, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.None);

                if (mobs == null)
                {
                    return;
                }

                foreach (var m in mobs)
                {
                    if (MenuConfig.JnglQ && Spells.Q.IsReady())
                    {
                        BackgroundData.CastQ(m);
                    }

                    if (!Spells.W.IsReady() || !MenuConfig.JnglW || Player.HasBuff("RivenFeint") || !BackgroundData.InRange(m))
                    {
                        return;
                    }

                    BackgroundData.CastW(m);
                }
            }

            if (!Spells.Q.IsReady() || !MenuConfig.LaneQ)
            {
                return;
            }

            var nexus = args.Target as Obj_HQ;

            if (nexus != null && nexus.IsValid)
            {
                IsGameObject = true;
                Spells.Q.Cast(nexus.Position - 500);
            }

            var inhib = args.Target as Obj_BarracksDampener;

            if (inhib != null && inhib.IsValid)
            {
                IsGameObject = true;
                Spells.Q.Cast(inhib.Position - 250);
            }

            var turret = args.Target as Obj_AI_Turret;

            if (turret == null || !turret.IsValid)
            {
                return;
            }

            IsGameObject = true;
            Spells.Q.Cast(turret.Position - 250);
        }
示例#15
0
文件: FleeMode.cs 项目: Taazuma/EB-T
        public static void Flee()
        {
            if (MenuConfig.WallFlee && Player.CountEnemiesInRange(1200) == 0)
            {
                var end        = Player.ServerPosition.Extend(Game.CursorPos, 350).To3D();
                var isWallDash = FleeLogic.IsWallDash(end, 350);

                var eend      = Player.ServerPosition.Extend(Game.CursorPos, 350).To3D();
                var wallE     = FleeLogic.GetFirstWallPoint(Player.ServerPosition, eend);
                var wallPoint = FleeLogic.GetFirstWallPoint(Player.ServerPosition, end);

                Player.GetPath(wallPoint);

                if (Spells.Q.IsReady() && Qstack < 3)
                {
                    Spells.Q.Cast(Game.CursorPos);
                }

                if (Qstack != 3 || !isWallDash)
                {
                    return;
                }

                if (Spells.E.IsReady() && wallPoint.Distance(Player.ServerPosition) <= Spells.E.Range)
                {
                    Spells.E.Cast(wallE);
                    EloBuddy.SDK.Core.DelayAction(() => Spells.Q.Cast(wallPoint), 190);
                }
                else if (wallPoint.Distance(Player.ServerPosition) <= 65)
                {
                    Spells.Q.Cast(wallPoint);
                }
                else
                {
                    EloBuddy.SDK.Orbwalker.MoveTo(wallPoint);
                }
            }
            else
            {
                var enemy = TargetSelector.GetTarget(RivenSharp.Core.Spells.Q.Range, DamageType.Physical);

                if (enemy == null || enemy.IsInvulnerable || enemy.MagicImmune)
                {
                    return;
                }

                var x = Player.Position.Extend(Game.CursorPos, 300).To3D();

                if (Spells.W.IsReady() && enemy.IsValidTarget(200))
                {
                    if (BackgroundData.InRange(enemy))
                    {
                        Spells.W.Cast();
                    }
                }

                if (Spells.Q.IsReady())// && !Player.IsDashing())
                {
                    Spells.Q.Cast(Game.CursorPos);
                }

                if (MenuConfig.FleeYomuu)
                {
                    Usables.CastYoumoo();
                }

                if (Spells.E.IsReady())// && !Player.IsDashing())
                {
                    Spells.E.Cast(x);
                }
            }
        }
示例#16
0
        public static void OnProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsEnemy || !sender.IsValid())// || !sender.IsValid(1000))//TODO: Fix this...
            {
                return;
            }

            if (Spells.E.IsReady())
            {
                if (BackgroundData.AntigapclosingSpells.Contains(args.SData.Name) || (BackgroundData.TargetedSpells.Contains(args.SData.Name) && args.Target.IsMe))
                {
                    EloBuddy.SDK.Core.DelayAction(() => Spells.E.Cast(Game.CursorPos), 120);
                }
            }

            if (!BackgroundData.InterrupterSpell.Contains(args.SData.Name) || !Spells.W.IsReady() || !BackgroundData.InRange(sender))
            {
                return;
            }

            BackgroundData.CastW(sender);
        }
示例#17
0
        public static void Burst()
        {
            if (Player.Spellbook.CanUseSpell(Spells.Flash) == SpellState.Ready && MenuConfig.AlwaysF)
            {
                var selectedTarget = TargetSelector.GetTarget(Player.AttackRange + 625, DamageType.Physical);

                if (selectedTarget == null ||
                    Player.Distance(selectedTarget.Position) > (Player.AttackRange + 625) ||
                    Player.Distance(selectedTarget.Position) < Player.AttackRange ||
                    (MenuConfig.Flash && selectedTarget.Health > Dmg.GetComboDamage(selectedTarget) && !Spells.R.IsReady()) ||
                    (!MenuConfig.Flash || (!Spells.R.IsReady() || !Spells.W.IsReady()))
                    )
                {
                    return;
                }

                Usables.CastYoumoo();
                BackgroundData.CastE(selectedTarget);

                Player.Spellbook.CastSpell(SpellSlot.R, selectedTarget);
                EloBuddy.SDK.Core.DelayAction(() => BackgroundData.FlashW(selectedTarget), 170);
            }
            else
            {
                var target = TargetSelector.GetTarget(Player.AttackRange + 360, DamageType.Physical);

                if (target == null)
                {
                    return;
                }

                if (!MenuConfig.AlwaysF)
                {
                    Usables.CastYoumoo();
                }

                if (Spells.R.IsReady() && Spells.R.Name == IsSecondR && Qstack > 1)
                {
                    var pred = Spells.R.GetPrediction(target);

                    if (pred.HitChance == EloBuddy.SDK.Enumerations.HitChance.High)
                    {
                        Player.Spellbook.CastSpell(SpellSlot.R, pred.CastPosition);
                    }
                }

                if (Spells.E.IsReady())
                {
                    BackgroundData.CastE(target);
                    EloBuddy.SDK.Core.DelayAction(Usables.CastHydra, 10);
                    //Spells.E.Cast(target.Position);
                }

                if (Spells.R.IsReady() && Spells.R.Name == IsFirstR)
                {
                    Player.Spellbook.CastSpell(SpellSlot.R, target);
                    //Spells.R.Cast(target);
                }

                if (!Spells.W.IsReady() || !BackgroundData.InRange(target))
                {
                    return;
                }

                BackgroundData.CastW(target);
                BackgroundData.DoubleCastQ(target);
            }
        }
示例#18
0
        public static void Flee()
        {
            if (MenuConfig.WallFlee && Player.CountEnemiesInRange(1200) == 0)
            {
                var end        = Player.ServerPosition.Extend(Game.CursorPos, 350).To3D();
                var isWallDash = FleeLogic.IsWallDash(end, 350);

                var eend      = Player.ServerPosition.Extend(Game.CursorPos, 350).To3D();
                var wallE     = FleeLogic.GetFirstWallPoint(Player.ServerPosition, eend);
                var wallPoint = FleeLogic.GetFirstWallPoint(Player.ServerPosition, end);

                Player.GetPath(wallPoint);

                if (Spells.Q.IsReady() && Qstack < 3)
                {
                    Spells.Q.Cast(Game.CursorPos);
                }

                if (Qstack != 3 || !isWallDash)
                {
                    return;
                }

                if (Spells.E.IsReady() && wallPoint.Distance(Player.ServerPosition) <= Spells.E.Range)
                {
                    Spells.E.Cast(wallE);
                    EloBuddy.SDK.Core.DelayAction(() => Spells.Q.Cast(wallPoint), 190);
                }
                else if (wallPoint.Distance(Player.ServerPosition) <= 65)
                {
                    Spells.Q.Cast(wallPoint);
                }
                else
                {
                    EloBuddy.SDK.Orbwalker.MoveTo(wallPoint);
                }
            }
            else
            {
                var enemy = EntityManager.Enemies.Where(target => BackgroundData.InRange(target) && Spells.W.IsReady());

                var x = Player.Position.Extend(Game.CursorPos, 300).To3D();

                var targets = enemy as AIHeroClient[] ?? enemy.ToArray();

                if (Spells.W.IsReady() && targets.Any())
                {
                    foreach (var target in targets)
                    {
                        if (BackgroundData.InRange(target))
                        {
                            Spells.W.Cast();
                        }
                    }
                }

                if (Spells.Q.IsReady())// && !Player.IsDashing())
                {
                    Spells.Q.Cast(Game.CursorPos);
                }

                if (MenuConfig.FleeYomuu)
                {
                    Usables.CastYoumoo();
                }

                if (Spells.E.IsReady())// && !Player.IsDashing())
                {
                    Spells.E.Cast(x);
                }
            }
        }
示例#19
0
        public static void Burst()
        {
            if (Spells.Flash.IsReady() &&
                MenuConfig.AlwaysF)
            {
                var selectedTarget = TargetSelector.GetSelectedTarget();

                if (selectedTarget == null ||
                    !selectedTarget.IsValidTarget(Player.AttackRange + 625) ||
                    Player.Distance(selectedTarget.Position) < Player.AttackRange ||
                    (MenuConfig.Flash && selectedTarget.Health > Dmg.GetComboDamage(selectedTarget) && !Spells.R.IsReady()) ||
                    (!MenuConfig.Flash && (!Spells.R.IsReady() || !Spells.W.IsReady())))
                {
                    return;
                }

                Usables.CastYoumoo();
                Spells.E.Cast(selectedTarget.Position);
                Spells.R.Cast();
                Utility.DelayAction.Add(170, BackgroundData.FlashW);
            }
            else
            {
                var target = TargetSelector.GetTarget(Player.AttackRange + 360, TargetSelector.DamageType.Physical);

                if (target == null)
                {
                    return;
                }

                if (Spells.R.IsReady() && Spells.R.Instance.Name == IsSecondR && Qstack > 1)
                {
                    var pred = Spells.R.GetPrediction(
                        target,
                        true,
                        collisionable: new[] { CollisionableObjects.YasuoWall });

                    if (pred.Hitchance < HitChance.High)
                    {
                        return;
                    }

                    Spells.R.Cast(pred.CastPosition);
                }

                if (Spells.E.IsReady())
                {
                    Spells.E.Cast(target.Position);
                }

                if (Spells.R.IsReady() && Spells.R.Instance.Name == IsFirstR)
                {
                    Spells.R.Cast();
                }

                if (!Spells.W.IsReady() || !BackgroundData.InRange(target))
                {
                    return;
                }

                BackgroundData.CastW(target);
                BackgroundData.DoubleCastQ(target);
            }
        }