示例#1
0
        public static Vector3 GetAJSPosition()
        {
            var positions             = GetRotatedQPositions();
            var enemyPositions        = GetEnemyPoints();
            var safePositions         = positions.Where(pos => !enemyPositions.Contains(pos.To2D())).ToList();
            var BestPosition          = Variables._Player.ServerPosition.Extend(Game.CursorPos, 300f).To3D();
            var AverageDistanceWeight = .65f;
            var ClosestDistanceWeight = .35f;
            var EndPosition           = Vector3.Zero;
            var bestWeightedAvg       = 0f;

            var enemiesNear = EntityManager.Heroes.Enemies.Where(m => m.IsValidTarget(Variables._Player.GetAutoAttackRange(m) + 300f + 65f)).ToList();

            var highHealthEnemiesNear = EntityManager.Heroes.Enemies.Where(m => !m.IsMelee && m.IsValidTarget(1300f) && m.HealthPercent > 7).ToList();

            if (Variables.MeleeEnemiesTowardsMe.Any() && Variables.MeleeEnemiesTowardsMe.Any(m => m.Position.Distance(Variables._Player) <= 300) &&
                !Variables.MeleeEnemiesTowardsMe.All(m => m.HealthPercent <= 35))
            {
                var Closest =
                    Variables.MeleeEnemiesTowardsMe.OrderBy(m => m.Distance(Variables._Player)).First();
                var position = (Vector3)Closest.ServerPosition.Extend(
                    Variables._Player.ServerPosition, Closest.Distance(Variables._Player) + 300f);

                EndPosition = position.IsSafeToQ(true) ? position : Vector3.Zero;
            }

            if (enemiesNear.All(x => x.Health > Variables._Player.Health - 300) && enemiesNear.Any(x => x.Position.Distance(Variables._Player.Position) >= 450))
            {
                var closest  = enemiesNear.OrderBy(x => x.Distance(Variables._Player)).First();
                var position = (Vector3)closest.ServerPosition.Extend(Variables._Player.ServerPosition, closest.Distance(Variables._Player) + 300f);

                EndPosition = position.IsSafeToQ(true) ? position : Vector3.Zero;
            }



            if (Variables._Player.CountEnemyChampionsInRange(1300f) == 1 && Variables.MeleeEnemiesTowardsMe.Count() == 0 && enemiesNear.All(x => x.HealthPercent >= 35))
            {
                var position = Variables._Player.ServerPosition.Extend(Game.CursorPos, 300f).To3D();
                EndPosition = position.IsSafeToQ(true) ? position : Vector3.Zero;
            }

            if (enemiesNear.Any(t => t.Health + 15 < Variables._Player.GetAutoAttackDamage(t) * 2 + DamageLibrary.GetSpellDamage(Variables._Player, t, SpellSlot.Q, DamageLibrary.SpellStages.Default) && t.Distance(Variables._Player) < Variables._Player.GetAutoAttackRange(t) + 80f))
            {
                var QPosition = Variables._Player.ServerPosition.Extend(enemiesNear.OrderBy(t => t.Health).First().ServerPosition, 300f).To3D();

                if (!QPosition.IsUnderTurret())
                {
                    EndPosition = QPosition;
                }
            }

            if (enemiesNear.Count() <= 2)
            {
                if (
                    enemiesNear.Any(
                        t =>
                        t.Health + 15 <
                        Variables._Player.GetAutoAttackDamage(t) + DamageLibrary.GetSpellDamage(Variables._Player, t, SpellSlot.Q, DamageLibrary.SpellStages.Default) &&
                        t.Distance(Variables._Player) < Variables._Player.GetAutoAttackRange(t) + 80f))
                {
                    var QPosition =
                        Variables._Player.ServerPosition.Extend(
                            highHealthEnemiesNear.OrderBy(t => t.Health).First().ServerPosition, 300f).To3D();

                    if (!QPosition.IsUnderTurret())
                    {
                        EndPosition = QPosition;
                    }
                }
            }

            if (enemiesNear.Count() >= 2 && enemiesNear.All(x => x.HealthPercent >= 35))
            {
                foreach (var position in safePositions)
                {
                    //Start le calculations
                    var enemy = GetClosestEnemy(position);
                    if (enemy == null)
                    {
                        continue;
                    }

                    if (Variables._Player.Distance(enemy) < enemy.AttackRange - 85 && !enemy.IsMelee)
                    {
                        return(Variables._Player.ServerPosition.Extend(Game.CursorPos, 300f).To3D());
                    }

                    var avgDist = GetAvgDistance(position);
                    if (avgDist > -1)
                    {
                        var closestDist = Variables._Player.ServerPosition.Distance(enemy.ServerPosition);
                        var weightedAvg = closestDist * ClosestDistanceWeight + avgDist * AverageDistanceWeight;
                        if (weightedAvg > bestWeightedAvg && position.IsSafeToQ())
                        {
                            bestWeightedAvg = weightedAvg;
                            BestPosition    = position;
                        }
                    }
                }


                EndPosition = (BestPosition.IsSafeToQ(true) && IsSafeEx(BestPosition)) ? BestPosition : Vector3.Zero;
            }

            if (EndPosition == Vector3.Zero && Game.CursorPos.IsSafeToQ(true))
            {
                EndPosition = Game.CursorPos;
            }

            return(EndPosition);
        }
示例#2
0
        private static void ActivatorSpells()
        {
            var target = TargetSelector.GetTarget(1000, DamageType.Mixed);

            var spell = Player.Instance.Spellbook;

            if (Player.Instance.IsInFountain() || Player.Instance.IsRecalling() || target == null)
            {
                return;
            }

            if (Value.Use("activator.barrier"))
            {
                if (Barrier != null)
                {
                    if (Value.Get("activator.barrier.hp") > Player.Instance.HealthPercent)
                    {
                        if (Barrier.IsReady())
                        {
                            Barrier.Cast();
                        }
                    }
                }
            }

            if (Value.Use("activator.heal"))
            {
                if (Heal != null && Heal.IsReady())
                {
                    if (Value.Use("activator.heal.lifesave"))
                    {
                        var ally =
                            EntityManager.Heroes.Allies.FirstOrDefault(
                                x =>
                                x.IsValidTarget(Player.Instance.GetAutoAttackRange()) &&
                                x.HealthPercent <= Value.Get("activator.barrier.hp"));

                        if (ally != null)
                        {
                            if (ally.IsFacing(target))
                            {
                                Heal.Cast();
                            }
                        }
                    }

                    if (Player.Instance.HealthPercent <= Value.Get("activator.heal.hp"))
                    {
                        if (Player.Instance.IsFacing(target))
                        {
                            Heal.Cast();
                        }
                    }
                }
            }

            if (Value.Use("activator.ignite"))
            {
                if (Ignite != null && Ignite.IsReady())
                {
                    if (Value.Use("activator.ignite.killsteal"))
                    {
                        if (target.Health <= DamageLibrary.GetSpellDamage(Player.Instance, target, Ignite.Slot))
                        {
                            Ignite.Cast(target);
                        }
                    }

                    if (Value.Use("activator.ignite.burst"))
                    {
                        if (spell.GetSpell(SpellSlot.Q).IsReady&& spell.GetSpell(SpellSlot.W).IsReady&& spell.GetSpell(SpellSlot.E).IsReady&& spell.GetSpell(SpellSlot.R).IsReady)
                        {
                            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                            {
                                Ignite.Cast(target);
                            }
                        }
                    }
                    if (Value.Use("activator.ignite.progressive"))
                    {
                        if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                        {
                            Ignite.Cast(target);
                        }
                    }
                }
            }
        }
示例#3
0
        public override void Execute()
        {
            var _jungleMobs = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Instance.ServerPosition, Q.Range, false);
            // assumes jungle item is on slot 1
            var _item = new InventorySlot((uint)Player.Instance.NetworkId, 1);

            foreach (var _monster in _jungleMobs.Where(x => x.IsValidTarget(S.Range)))
            {
                var _skinName = _monster.BaseSkinName;
                var _rDmg     = DamageLibrary.GetSpellDamage(Player.Instance, _monster, SpellSlot.R, DamageLibrary.SpellStages.Default);

                switch (_skinName)
                {
                case "SRU_Baron":
                case "SRU_Dragon":
                    // R+Smite steal
                    if (_rDmg + SmiteManager.SmiteDamage >= _monster.Health)
                    {
                        R.Cast(_monster);
                        S.Cast(_monster);
                    }
                    if (_monster.Health <= SmiteManager.SmiteDamage && S.IsInRange(_monster) && S.IsReady())
                    {
                        S.Cast(_monster);
                    }
                    if (Q.IsLearned && Q.IsReady())
                    {
                        Q.Cast(_monster);
                    }
                    if (W.IsInRange(_monster))
                    {
                        W.Cast();
                    }
                    break;

                case "SRU_Crab":
                case "SRU_Murkwolf":
                case "SRU_Razorbeak":
                case "SRU_Krug":
                case "SRU_Gromp":
                case "SRU_Blue":
                case "SRU_Red":
                    if (_monster.Health <= SmiteManager.SmiteDamage && S.IsInRange(_monster) && S.IsReady())
                    {
                        S.Cast(_monster);
                    }
                    if (Q.IsLearned && Q.IsReady())
                    {
                        Q.Cast(_monster);
                    }
                    if (W.IsInRange(_monster))
                    {
                        W.Cast();
                    }

                    // smite buff if next auto attack will kill you
                    if (_monster.GetAutoAttackDamage(Player.Instance) >= Player.Instance.Health)
                    {
                        S.Cast(_monster);
                    }
                    break;

                default: break;
                }
            }
        }
示例#4
0
 private void castR()
 {
     if (Settings.UseR && R.IsReady())
     {
         var target = TargetSelector.GetTarget(SpellManager.RRange, DamageType.Physical);
         if (target != null && ((target.Distance(Player.Instance) > 700 && Player.Instance.CountEnemiesInRange(650) == 0) || Settings.UseRAlways) && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.R) > target.Health + 2 / 5 * target.HPRegenRate)
         {
             R.Cast(target);
         }
         else if (target != null && target.Distance(Player.Instance) > 700 && !Settings.UseRAlways && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.R) > target.Health + 2 / 5 * target.HPRegenRate)
         {
             /*if (Settings.useScryingOrbMarker)
              * {
              *  InventorySlot[] inv = Player.Instance.InventoryItems;
              *  foreach (var item in inv)
              *  {
              *      if (item.Id == ItemId.Farsight_Alteration)
              *      {
              *          item.Cast(target);
              *      }
              *  }
              * }*/
         }
     }
 }
示例#5
0
        public static void castQ(bool NotkillOnly, bool killMinionOnly, bool onChampsOnly)
        {
            foreach (var killable in EntityManager.Heroes.Enemies.Where(e => e.IsInRange(EloBuddy.Player.Instance, 1000) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && (e.Health < DamageLibrary.GetSpellDamage(EloBuddy.Player.Instance, e, SpellSlot.Q) || NotkillOnly)))
            {
                var killablePosition = Prediction.Position.PredictUnitPosition(killable, 250).To3D();
                int i = -1;
                for (int j = 0; j < EntityManager.Heroes.Enemies.Count; j++)
                {
                    if (killable.NetworkId == EntityManager.Heroes.Enemies[j].NetworkId)
                    {
                        i = j;
                    }
                }
                if (i == -1 || !MissFortuneTheTrollMenu.ComboQ())
                {
                    continue;
                }

                bool buff = false;
                foreach (var b in killable.Buffs)
                {
                    if (b.Name == "missfortunepassivestack")
                    {
                        buff = true;
                    }
                }
                foreach (var t in EntityManager.Heroes.Enemies.Where(e => e.IsInRange(EloBuddy.Player.Instance, Q.Range) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && Prediction.Position.PredictUnitPosition(e, 250).To3D().Distance(killable) < 500))
                {
                    Vector3 meToTarget = Prediction.Position.PredictUnitPosition(t, 250).To3D() - Prediction.Position.PredictUnitPosition(EloBuddy.Player.Instance, 250).To3D();
                    if (meToTarget.AngleBetween(killablePosition) < 0.6981 && buff && meToTarget.AngleBetween(killablePosition) > 0)
                    {
                        Q.Cast(t);
                        return;
                    }
                    else if (meToTarget.AngleBetween(killablePosition) < 0.349066 && meToTarget.AngleBetween(killablePosition) > 0)
                    {
                        int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 0.349066 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count();
                        if (m == 0)
                        {
                            Q.Cast(t);
                            return;
                        }
                    }
                    else if (meToTarget.AngleBetween(killablePosition) < 0.6981 && meToTarget.AngleBetween(killablePosition) > 0)
                    {
                        int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 0.6981 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count();
                        if (m == 0)
                        {
                            Q.Cast(t);
                            return;
                        }
                    }
                    else if (meToTarget.AngleBetween(killablePosition) < 1.9 && meToTarget.AngleBetween(killablePosition) > 0)
                    {
                        int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 1.9 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count();
                        if (m == 0)
                        {
                            Q.Cast(t);
                            return;
                        }
                    }
                }
                if (onChampsOnly)
                {
                    return;
                }
                foreach (var t in EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(EloBuddy.Player.Instance, Q.Range) && Prediction.Position.PredictUnitPosition(e, 250).To3D().Distance(killable) < 500 && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && (!killMinionOnly || e.Health < EloBuddy.Player.Instance.GetSpellDamage(e, SpellSlot.Q))).OrderBy(t => t.Health))
                {
                    Vector3 meToTarget = Prediction.Position.PredictUnitPosition(t, 250).To3D() - Prediction.Position.PredictUnitPosition(EloBuddy.Player.Instance, 250).To3D();
                    if (meToTarget.AngleBetween(killablePosition) < 0.6981 && buff && meToTarget.AngleBetween(killablePosition) > 0)
                    {
                        Q.Cast(t);
                        return;
                    }
                    else if (meToTarget.AngleBetween(killablePosition) < 0.349066 && meToTarget.AngleBetween(killablePosition) > 0)
                    {
                        int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 0.349066 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count();
                        if (m == 0)
                        {
                            Q.Cast(t);
                            return;
                        }
                    }
                    else if (meToTarget.AngleBetween(killablePosition) < 0.6981 && meToTarget.AngleBetween(killablePosition) > 0)
                    {
                        int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 0.6981 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count();
                        if (m == 0)
                        {
                            Q.Cast(t);
                            return;
                        }
                    }
                    else if (meToTarget.AngleBetween(killablePosition) < 1.9 && meToTarget.AngleBetween(killablePosition) > 0)
                    {
                        int m = EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsInRange(t, 500) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(Prediction.Position.PredictUnitPosition(e, 250).To3D()) < 1.9 && Prediction.Position.PredictUnitPosition(t, 250).To3D().AngleBetween(killablePosition) > 0).Count();
                        if (m == 0)
                        {
                            Q.Cast(t);
                            return;
                        }
                    }
                }
            }
        }
示例#6
0
        private static void OnUpdate(EventArgs args)
        {
            // Check spell arrival
            foreach (var entry in IncDamage.Where(entry => entry.Key < Game.Time).ToArray())
            {
                IncDamage.Remove(entry.Key);
            }

            // Instant damage removal
            foreach (var entry in InstDamage.Where(entry => entry.Key < Game.Time).ToArray())
            {
                InstDamage.Remove(entry.Key);
            }
            foreach (var skillshot in Evade.Evade.GetSkillshotsAboutToHit(Player.Instance, 200))
            {
                AIHeroClient caster = null;
                foreach (var e in EntityManager.Heroes.Enemies.Where(t => t.ChampionName == skillshot.SpellData.ChampionName))
                {
                    caster = e;
                }
                if (caster != null && (skillshot.IsGlobal || caster.Distance(Player.Instance) <= skillshot.SpellData.Range + 50))
                {
                    if (Settings.useZhonyasDmg && (DamageLibrary.GetSpellDamage(caster, Player.Instance, skillshot.SpellData.Slot) > Settings.minDmgZhonyas / 100 * Player.Instance.MaxHealth))
                    {
                        if (castZhonyas())
                        {
                            return;
                        }
                    }
                    if (Settings.useSeraphsDmg && (DamageLibrary.GetSpellDamage(caster, Player.Instance, skillshot.SpellData.Slot) > Settings.minDmgSerpaphs / 100 * Player.Instance.MaxHealth))
                    {
                        if (castSeraphs())
                        {
                            return;
                        }
                    }
                    if (dangerousSpell(SpellData.GetSpellData(skillshot.SpellData.SpellName), caster))
                    {
                        if (Settings.useZhonyasDmg)
                        {
                            if (castZhonyas())
                            {
                                return;
                            }
                        }
                        if (Settings.useSeraphsDmg)
                        {
                            if (castSeraphs())
                            {
                                return;
                            }
                        }
                    }
                }
            }
            if (Settings.useZhonyasDmg)
            {
                if (Player.Instance.HealthPercent < 5 && Player.Instance.CountEnemiesInRange(500) > 0 ||
                    IncomingDamage > Player.Instance.Health || IncomingDamage > Player.Instance.MaxHealth * Settings.minDmgZhonyas / 100)
                {
                    if (castZhonyas())
                    {
                        return;
                    }
                }
            }
            if (Settings.useSeraphsDmg)
            {
                if (Player.Instance.HealthPercent < 5 && Player.Instance.CountEnemiesInRange(500) > 0 ||
                    IncomingDamage > Player.Instance.Health || IncomingDamage > Player.Instance.MaxMana * 0.2 ||
                    IncomingDamage > Player.Instance.MaxHealth * Settings.minDmgZhonyas / 100)
                {
                    if (castSeraphs())
                    {
                        return;
                    }
                }
            }
        }
示例#7
0
        public override void Execute()
        {
            if (Settings.mana >= Player.Instance.ManaPercent)
            {
                SpellManager.toPowpow();
                return;
            }

            if (Settings.UseQ && Q.IsReady())
            {
                var lasthitminions = EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(t => t.IsInRange(Player.Instance, SpellManager.Range)).OrderByDescending(t => t.MaxHealth);
                if (lasthitminions.Count() == 0)
                {
                    if (SpellManager.Fishbones)
                    {
                        Q.Cast();
                    }
                    Orbwalker.ForcedTarget = null;
                }
                int count = 0;
                foreach (var m in lasthitminions)
                {
                    count = 1;
                    foreach (var m2 in lasthitminions)
                    {
                        if (m.Distance(m2) < 150)
                        {
                            count++;
                        }
                    }
                    //hitting m with Fisbones is gonna blow up *count* minions

                    //worth Fishbones
                    if (SpellManager.Powpow && Orbwalker.ForcedTarget == null && count >= Settings.minMinionsToFishbones)
                    {
                        Q.Cast();
                        Orbwalker.ForcedTarget = m;
                        return;
                    }
                    if (SpellManager.Fishbones && Orbwalker.ForcedTarget == null && count >= Settings.minMinionsToFishbones)
                    {
                        Orbwalker.ForcedTarget = m;
                        return;
                    }
                }
                //no fishbones worthy minion
                if (SpellManager.Fishbones && Orbwalker.ForcedTarget == null && count < Settings.minMinionsToFishbones)
                {
                    Q.Cast();
                    Orbwalker.ForcedTarget = null;
                }
            }

            if (Settings.UseW && W.IsReady())
            {
                var e = EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(t => t.Health < DamageLibrary.GetSpellDamage(Player.Instance, t, SpellSlot.W) && t.IsInRange(Player.Instance, W.Range)).OrderByDescending(t => t.MaxHealth).FirstOrDefault();
                if (e != null)
                {
                    W.Cast(e);
                }

                e = EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(t => !t.IsInRange(Player.Instance, SpellManager.Range) && t.IsInRange(Player.Instance, W.Range)).OrderByDescending(t => t.MaxHealth).FirstOrDefault();
                if (e != null)
                {
                    W.Cast(e);
                }
            }
        }
示例#8
0
        private static void OnUpdate(EventArgs args)
        {
            for (int i = 0; i < EntityManager.Heroes.Allies.Count; i++)
            {
                // Check spell arrival
                foreach (var entry in IncDamage[i].Where(entry => entry.Key < Game.Time).ToArray())
                {
                    IncDamage[i].Remove(entry.Key);
                }

                // Instant damage removal
                foreach (var entry in InstDamage[i].Where(entry => entry.Key < Game.Time).ToArray())
                {
                    InstDamage[i].Remove(entry.Key);
                }
            }
            if (Settings.useE && SpellManager.E.IsReady())
            {
                foreach (var skillshot in Evade.Evade.GetSkillshotsAboutToHit(Player.Instance, 200))
                {
                    AIHeroClient caster = null;
                    foreach (var e in EntityManager.Heroes.Enemies.Where(t => t.ChampionName == skillshot.SpellData.ChampionName))
                    {
                        caster = e;
                    }
                    if (caster != null && (skillshot.IsGlobal || caster.Distance(Player.Instance) <= skillshot.SpellData.Range + 50))
                    {
                        if (DamageLibrary.GetSpellDamage(caster, Player.Instance, skillshot.SpellData.Slot) > Settings.minDamage / 100 * Player.Instance.MaxHealth)
                        {
                            SpellManager.E.Cast();
                            break;
                        }

                        if (skillshot.SpellData.IsDangerous)
                        {
                            SpellManager.E.Cast();
                            break;
                        }
                    }
                }
            }
            if (!Settings.useHeal || SpellManager.heal == null)
            {
                return;
            }
            for (int i = 0; i < EntityManager.Heroes.Allies.Count; i++)
            {
                if (SpellManager.heal.IsReady() && Settings.useHealOnI(i) && EntityManager.Heroes.Allies[i].IsInRange(Player.Instance, SpellManager.heal.Range))
                {
                    if ((Player.Instance.HealthPercent < 5) || (getIncomingDamageForI(i) >= EntityManager.Heroes.Allies[i].Health))
                    {
                        if (!Settings.useHeal)
                        {
                            return;
                        }
                        SpellManager.heal.Cast();
                        if (i == me)
                        {
                            castOnMe = true;
                        }
                        break;
                    }
                }
            }
        }
示例#9
0
 public int getComboDmg(Obj_AI_Base target)
 {
     return(Convert.ToInt32(ObjectManager.Player.CalculateDamageOnUnit(target, DamageType.Physical, DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.E) + DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.R))));
 }
示例#10
0
        public override void Execute()
        {
            if (Config.Drawings.ShowKillable)
            {
                DamageIndicator.DamageToUnit = GetComboDamage;
            }

            if (Player.Instance.GetSpellSlotFromName("summonerdot") == SpellSlot.Summoner1 ||
                Player.Instance.GetSpellSlotFromName("summonerdot") == SpellSlot.Summoner2)
            {
                if (ObjectManager.Player.IsDead || !Ig.IsReady() || !Settings.UseIgnite)
                {
                    return;
                }
                if (ObjectManager.Get <AIHeroClient>().Where(
                        h =>
                        h.IsValidTarget(Ig.Range) &&
                        h.Health <
                        ObjectManager.Player.GetSummonerSpellDamage(h, DamageLibrary.SummonerSpells.Ignite)).Count() <=
                    0)
                {
                    return;
                }

                var target = ObjectManager.Get <AIHeroClient>()
                             .Where(
                    h =>
                    h.IsValidTarget(Ig.Range) &&
                    h.Health <
                    ObjectManager.Player.GetSummonerSpellDamage(h, DamageLibrary.SummonerSpells.Ignite));
                var aiHeroClients = target as AIHeroClient[] ?? target.ToArray();
                if (aiHeroClients.First().Distance(Player.Instance) > 450 || (Player.Instance.HealthPercent < 25))
                {
                    Ig.Cast(aiHeroClients.First());
                }
            }

            if (Settings.UseW)
            {
                var target = TargetSelector.GetTarget(W.Range, DamageType.Magical);

                if (target != null && target.IsEnemy && target.Distance(Player.Instance.Position) > Player.Instance.AttackRange && (DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.W)) > target.Health)
                {
                    W.Cast(target.Position);
                }
            }
        }
 private void ksWithW()
 {
     if (Settings.ksW && W.IsReady())
     {
         foreach (var e in EntityManager.Heroes.Enemies.Where(e => e.IsInRange(Player.Instance, W.Range) && e.Health > 0 && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && e.Health < DamageLibrary.GetSpellDamage(Player.Instance, e, SpellSlot.W)))
         {
             if (W.GetPrediction(e).HitChance >= HitChance.Medium)
             {
                 W.Cast(W.GetPrediction(e).CastPosition);
                 return;
             }
         }
     }
 }
示例#12
0
 private void ks()
 {
     foreach (var enemy in EntityManager.Heroes.Enemies.Where(target => target.HealthPercent > 0 && !target.IsInvulnerable && target.IsEnemy && !target.IsPhysicalImmune && !target.IsZombie))
     {
         if (enemy.IsInRange(Player.Instance, Q.Range) && Settings.ksQ && Settings.ksR && Q.IsReady() && R.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId)
             {
                 Q.Cast(Q.GetPrediction(enemy).CastPosition);
                 R.Cast(R.GetPrediction(enemy).CastPosition);
             }
         }
         if (enemy.IsInRange(Player.Instance, Q.Range) && Settings.ksQ && Q.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q))
             {
                 Q.Cast(Q.GetPrediction(enemy).CastPosition);
             }
         }
         if (enemy.IsInRange(Player.Instance, R.Range) && Settings.ksR && R.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId)
             {
                 R.Cast(R.GetPrediction(enemy).CastPosition);
             }
         }
     }
 }
示例#13
0
        public override void Execute()
        {
            if (Settings.Mana >= Player.Instance.ManaPercent)
            {
                return;
            }

            if (Settings.UseQ && Q.IsReady())
            {
                var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
                if (target != null && Q.GetPrediction(target).HitChance >= HitChance.High && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.Q) > Player.Instance.GetAutoAttackDamage(target))
                {
                    if (target.HasBuff("caitlynyordletrapsight") || (
                            (target.HasBuffOfType(BuffType.Fear) || target.HasBuffOfType(BuffType.Flee) || target.HasBuffOfType(BuffType.Knockup) || target.HasBuffOfType(BuffType.Snare) || target.HasBuffOfType(BuffType.Stun) || target.HasBuffOfType(BuffType.Taunt) || target.HasBuffOfType(BuffType.Suppression))
                            ) && Q.GetPrediction(target).GetCollisionObjects <Obj_AI_Base>().Count() > 0 && Q.GetPrediction(target).GetCollisionObjects <Obj_AI_Base>()[0].NetworkId == target.NetworkId)
                    {
                        Q.Cast(Q.GetPrediction(target).CastPosition);
                    }
                    else if (Q.GetPrediction(target).GetCollisionObjects <Obj_AI_Base>().Count() > 0 && Q.GetPrediction(target).GetCollisionObjects <Obj_AI_Base>()[0].NetworkId == target.NetworkId && Q.GetPrediction(target).HitChance >= HitChance.Medium)
                    {
                        Q.Cast(Q.GetPrediction(target).CastPosition);
                    }
                    else if ((target.HasBuffOfType(BuffType.Fear) || target.HasBuffOfType(BuffType.Flee) || target.HasBuffOfType(BuffType.Knockup) || target.HasBuffOfType(BuffType.Snare) || target.HasBuffOfType(BuffType.Stun) || target.HasBuffOfType(BuffType.Taunt) || target.HasBuffOfType(BuffType.Suppression)
                              ) && Settings.UseQStunned && Player.Instance.ManaPercent > Settings.ManaQAlways)
                    {
                        Q.Cast(Q.GetPrediction(target).CastPosition);
                    }
                    else if (Settings.UseQNotStunned && Player.Instance.ManaPercent > Settings.ManaQAlways)
                    {
                        Q.Cast(Q.GetPrediction(target).CastPosition);
                    }

                    /**PRESEASON
                     * else if(target has Buff Snap Trap)
                     **/
                    //caitlynyordletrapsight
                }
            }
            if (Settings.UseW && W.IsReady())
            {
                if (Player.Instance.Spellbook.GetSpell(SpellSlot.W).Ammo > Settings.StockW)
                {
                    var target = TargetSelector.GetTarget(W.Range, DamageType.Physical);
                    if (target != null)
                    {
                        W.Cast(W.GetPrediction(target).CastPosition);
                    }
                }
            }
            if (Settings.UseR && R.IsReady())
            {
                var target = TargetSelector.GetTarget(SpellManager.RRange, DamageType.Physical);
                if (target != null && target.Distance(Player.Instance) > 700 && Player.Instance.CountEnemiesInRange(650) == 0)
                {
                    R.Cast(target);
                }
            }
        }
示例#14
0
        public void ks(bool Q, bool W, bool E, bool Smite)
        {
            var target = TargetSelector.GetTarget(KindredSpells.privW.Range, DamageType.Physical);

            if (target == null)
            {
                return;
            }
            if (Q && KindredSpells.privQ.IsReady())
            {
                if (KindredSpells.privQ.IsInRange(target) && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.Q) >= target.Health)
                {
                    KindredSpells.privQ.Cast(target);
                }
            }
            if (W && KindredSpells.privW.IsReady())
            {
                if (KindredSpells.privW.IsInRange(target) && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.W) >= target.Health)
                {
                    KindredSpells.privW.Cast(target);
                }
            }
            if (E && KindredSpells.privE.IsReady())
            {
                if (KindredSpells.privE.IsInRange(target) && DamageLibrary.GetSpellDamage(Player.Instance, target, SpellSlot.E) >= target.Health)
                {
                    KindredSpells.privE.Cast(target);
                }
            }
            if (Smite && KindredSpells.smite != null && KindredSpells.smite.IsReady() && DamageLibrary.GetSpellDamage(Player.Instance, target, KindredSpells.smite.Slot) >= target.Health)
            {
                KindredSpells.smite.Cast(target);
            }
        }
 private void ksWithQ()
 {
     if (Settings.ksQ && Q.IsReady())
     {
         foreach (var e in EntityManager.Heroes.Enemies.Where(e => e.IsInRange(Player.Instance, Q.Range) && !e.IsDead && !e.IsInvulnerable && e.IsTargetable && !e.IsZombie && e.Health < DamageLibrary.GetSpellDamage(Player.Instance, e, SpellSlot.Q)))
         {
             Q.Cast(e);
             return;
         }
         SpellManager.castQ(false, false, true);
         SpellManager.castQ(false, false);
     }
 }
示例#16
0
 private void ks()
 {
     foreach (var enemy in EntityManager.Heroes.Enemies.Where(target => target.HealthPercent > 0 && !target.IsInvulnerable && target.IsEnemy && !target.IsPhysicalImmune && !target.IsZombie))
     {
         if (enemy.IsInRange(Player.Instance, Q.MinimumRange) && Settings.ksQ && Q.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q))
             {
                 SpellManager.Q.StartCharging();
                 Core.DelayAction(() => checkQDelayedCast(enemy), 650);
                 break;
             }
         }
         if (enemy.IsInRange(Player.Instance, E.Range) && Settings.ksE && E.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.E))
             {
                 E.Cast(E.GetPrediction(enemy).CastPosition);
                 break;
             }
         }
         if (enemy.IsInRange(Player.Instance, R.Range) && Settings.ksR && R.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId)
             {
                 R.Cast(R.GetPrediction(enemy).CastPosition);
                 break;
             }
         }
         if (enemy.IsInRange(Player.Instance, Q.MinimumRange) && enemy.IsInRange(Player.Instance, E.Range) && Settings.ksQ && Settings.ksE && Q.IsReady() && E.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.E))
             {
                 SpellManager.Q.StartCharging();
                 Core.DelayAction(() => checkQDelayedCast(enemy), 650);
                 E.Cast(E.GetPrediction(enemy).CastPosition);
                 break;
             }
         }
         if (enemy.IsInRange(Player.Instance, Q.MinimumRange) && enemy.IsInRange(Player.Instance, R.Range) && Settings.ksQ && Settings.ksR && Q.IsReady() && R.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId)
             {
                 SpellManager.Q.StartCharging();
                 Core.DelayAction(() => SpellManager.Q.Cast(SpellManager.Q.GetPrediction(enemy).CastPosition), 650);
                 R.Cast(R.GetPrediction(enemy).CastPosition);
                 break;
             }
         }
         if (enemy.IsInRange(Player.Instance, E.Range) && enemy.IsInRange(Player.Instance, R.Range) && Settings.ksE && Settings.ksR && E.IsReady() && R.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.E) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId)
             {
                 E.Cast(E.GetPrediction(enemy).CastPosition);
                 R.Cast(R.GetPrediction(enemy).CastPosition);
                 break;
             }
         }
         if (enemy.IsInRange(Player.Instance, Q.MinimumRange) && enemy.IsInRange(Player.Instance, E.Range) && enemy.IsInRange(Player.Instance, R.Range) && Settings.ksQ && Settings.ksE && Settings.ksR && Q.IsReady() && E.IsReady() && R.IsReady())
         {
             if (enemy.Health < DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.Q) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.E) + DamageLibrary.GetSpellDamage(Player.Instance, enemy, SpellSlot.R) && R.GetPrediction(enemy).CollisionObjects.Count() > 0 && R.GetPrediction(enemy).CollisionObjects[0].NetworkId == enemy.NetworkId)
             {
                 SpellManager.Q.StartCharging();
                 Core.DelayAction(() => checkQDelayedCast(enemy), 650);
                 E.Cast(E.GetPrediction(enemy).CastPosition);
                 R.Cast(R.GetPrediction(enemy).CastPosition);
                 break;
             }
         }
     }
 }
示例#17
0
 public static void Steal()
 {
     if (KMenu.KAstealW && KSpells.W.IsReady())
     {
         foreach (var X in EntityManager.Heroes.Enemies.Where(X => X.IsInRange(Player.Instance, KSpells.W.Range) && X.HealthPercent > 0 && !X.IsInvulnerable && X.IsTargetable && !X.IsZombie && X.Health < DamageLibrary.GetSpellDamage(Player.Instance, X, SpellSlot.W)))
         {
             if (KSpells.W.GetPrediction(X).HitChance >= HitChance.Medium)
             {
                 KSpells.W.Cast(KSpells.W.GetPrediction(X).CastPosition);
             }
         }
     }
     if (KMenu.KAstealR && KSpells.W.IsReady())
     {
         foreach (var X in EntityManager.Heroes.Enemies.Where(X => X.IsInRange(Player.Instance, KMenu.KAstealRlimit) && X.HealthPercent > 0 && !X.IsInvulnerable && X.IsTargetable && !X.IsZombie && X.Health < DamageLibrary.GetSpellDamage(Player.Instance, X, SpellSlot.R)))
         {
             if (KSpells.R.GetPrediction(X).HitChance >= HitChance.High)
             {
                 KSpells.R.Cast(KSpells.R.GetPrediction(X).CastPosition);
             }
         }
     }
 }
 private void ks()
 {
     if (Settings.ksE && Settings.ksI && E.IsReady() && Ignite != null && Ignite.IsReady())
     {
         var enemy = EntityManager.Heroes.Enemies.Where(t => t.IsEnemy && !t.IsZombie && !t.IsDead && t.IsValid && !t.IsInvulnerable && t.IsInRange(Player.Instance.Position, Ignite.Range) && t.IsInRange(Player.Instance.Position, E.Range) && DamageLibrary.GetSummonerSpellDamage(Player.Instance, t, DamageLibrary.SummonerSpells.Ignite) + DamageLibrary.GetSpellDamage(Player.Instance, t, SpellSlot.E) > t.Health).FirstOrDefault();
         if (enemy != null)
         {
             E.Cast(enemy);
             Ignite.Cast(enemy);
             return;
         }
     }
     if (Settings.ksE && E.IsReady())
     {
         var enemy = EntityManager.Heroes.Enemies.Where(t => t.IsEnemy && !t.IsZombie && !t.IsDead && t.IsValid && !t.IsInvulnerable && t.IsInRange(Player.Instance.Position, E.Range) && DamageLibrary.GetSpellDamage(Player.Instance, t, SpellSlot.E) > Prediction.Health.GetPrediction(t, 250)).FirstOrDefault();
         if (enemy != null)
         {
             E.Cast(enemy);
         }
     }
     if (Settings.ksI && Ignite != null && Ignite.IsReady())
     {
         var enemy = EntityManager.Heroes.Enemies.Where(t => t.IsEnemy && !t.IsZombie && !t.IsDead && t.IsValid && !t.IsInvulnerable && t.IsInRange(Player.Instance.Position, Ignite.Range) && DamageLibrary.GetSummonerSpellDamage(Player.Instance, t, DamageLibrary.SummonerSpells.Ignite) > t.Health).FirstOrDefault();
         if (enemy != null)
         {
             Ignite.Cast(enemy);
         }
     }
 }