示例#1
0
文件: Lux.cs 项目: wx8829110/WUYANZZZ
        private void LogicQ()
        {
            foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && E.GetDamage(enemy) + Q.GetDamage(enemy) + BonusDmg(enemy) > enemy.Health))
            {
                CastQ(enemy);
                return;
            }

            var t = Orbwalker.GetTarget() as Obj_AI_Hero;

            if (!t.IsValidTarget())
            {
                t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
            }
            if (t.IsValidTarget() && Config.Item("Qon" + t.ChampionName).GetValue <bool>())
            {
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    CastQ(t);
                }
                else if (Program.Farm && Config.Item("harrasQ", true).GetValue <bool>() && Config.Item("harras" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    CastQ(t);
                }
                else if (OktwCommon.GetKsDamage(t, Q) > t.Health)
                {
                    CastQ(t);
                }

                foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                {
                    CastQ(enemy);
                }
            }
        }
示例#2
0
        private void LogicE()
        {
            foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(E.Range) && E.GetDamage(enemy) + Q.GetDamage(enemy) + W.GetDamage(enemy) + OktwCommon.GetEchoLudenDamage(enemy) > enemy.Health))
            {
                Program.CastSpell(E, enemy);
            }
            var t = Orbwalker.GetTarget() as Obj_AI_Hero;

            if (!t.IsValidTarget())
            {
                t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
            }
            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > RMANA + EMANA && Config.Item("Eon" + t.ChampionName, true).GetValue <bool>())
                {
                    Program.CastSpell(E, t);
                }
                else if (Program.Farm && Config.Item("harrasE", true).GetValue <bool>() && Config.Item("harras" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                else if (OktwCommon.GetKsDamage(t, E) > t.Health)
                {
                    Program.CastSpell(E, t);
                }
                if (Player.Mana > RMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(E.Range) && !OktwCommon.CanMove(enemy) && Config.Item("Eon" + enemy.ChampionName, true).GetValue <bool>()))
                    {
                        E.Cast(enemy);
                    }
                }
            }
        }
示例#3
0
文件: Twitch.cs 项目: s1m421/ls-tools
        private void LogicQ()
        {
            if (Config.Item("autoQ", true).GetValue <bool>() && Program.Combo && Orbwalker.GetTarget().IsValid <Obj_AI_Hero>() && Player.Mana > RMANA + QMANA)
            {
                Q.Cast();
            }

            if (Config.Item("countQ", true).GetValue <Slider>().Value == 0 || Player.Mana < RMANA + QMANA)
            {
                return;
            }

            var count = 0;

            foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(3000)))
            {
                List <Vector2> waypoints = enemy.GetWaypoints();

                if (Player.Distance(waypoints.Last().To3D()) < 600)
                {
                    count++;
                }
            }

            if (count >= Config.Item("countQ", true).GetValue <Slider>().Value)
            {
                Q.Cast();
            }
        }
示例#4
0
        private void LogicQ()
        {
            var torb = Orbwalker.GetTarget();

            if (torb == null || torb.Type != GameObjectType.obj_AI_Hero)
            {
                if (Config.Item("Qminion", true).GetValue <bool>())
                {
                    var t = TargetSelector.GetTarget(Q.Range + 300, TargetSelector.DamageType.Physical);
                    if (t.IsValidTarget())
                    {
                        var minion = Cache.GetMinions(Prediction.GetPrediction(t, 0.1f).CastPosition, 300).Where(minion2 => minion2.IsValidTarget(Q.Range)).OrderBy(x => x.Distance(t)).FirstOrDefault();
                        if (minion.IsValidTarget())
                        {
                            if (t.Health < GetQdmg(t))
                            {
                                Q.CastOnUnit(minion);
                            }
                            if (Program.Combo && Player.Mana > RMANA + EMANA)
                            {
                                Q.CastOnUnit(minion);
                            }
                            else if (Program.Farm && Config.Item("harrasQ", true).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA && Config.Item("harras" + t.ChampionName).GetValue <bool>())
                            {
                                Q.CastOnUnit(minion);
                            }
                        }
                    }
                }
            }
            else if (!SebbyLib.Orbwalking.CanAttack() && !Player.IsWindingUp)
            {
                var t = torb as Obj_AI_Hero;
                if (t.Health < GetQdmg(t) + GetWdmg(t))
                {
                    Q.CastOnUnit(t);
                }
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Q.CastOnUnit(t);
                }
                else if (Program.Farm && Config.Item("harrasQ", true).GetValue <bool>() && Player.Mana > RMANA + QMANA + WMANA + EMANA && Config.Item("harras" + t.ChampionName).GetValue <bool>())
                {
                    Q.CastOnUnit(t);
                }
            }
            if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>())
            {
                var minionList = Cache.GetMinions(Player.ServerPosition, Q.Range);

                if (minionList.Count >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    var minionAttack = minionList.FirstOrDefault(x => Q.GetDamage(x) > SebbyLib.HealthPrediction.GetHealthPrediction(x, 300));
                    if (minionAttack.IsValidTarget())
                    {
                        Q.CastOnUnit(minionAttack);
                    }
                }
            }
        }
示例#5
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (Q.IsCharging && (int)(Game.Time * 10) % 2 == 0)
            {
                Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            }

            //Program.debug(""+OktwCommon.GetPassiveTime(Player, "XerathArcanopulseChargeUp"));
            if (IsCastingR)
            {
                OktwCommon.blockAttack = true;
                OktwCommon.blockMove   = true;
            }
            else
            {
                OktwCommon.blockAttack = false;
                OktwCommon.blockMove   = false;
            }

            if (Program.LagFree(1))
            {
                SetMana();
                Jungle();
                int[] mana = new int[] { 0, 30, 33, 36, 42, 48, 54, 63, 72, 81, 90, 102, 114, 126, 138, 150, 165, 180, 195 };
                if (!Player.HasBuff("xerathascended2onhit") || Player.Mana + mana[Player.Level] > Player.MaxMana)
                {
                    Orbwalker.ForceTarget(null);
                }
                else if ((Program.Combo || Program.Farm) && Config.Item("force", true).GetValue <bool>() && Orbwalker.GetTarget() == null)
                {
                    var minion = Cache.GetMinions(Player.ServerPosition, Player.AttackRange + Player.BoundingRadius * 2).OrderByDescending(x => x.Health).FirstOrDefault();

                    if (minion != null)
                    {
                        Orbwalker.ForceTarget(minion);
                    }
                }
            }

            if (E.IsReady() && Config.Item("autoE", true).GetValue <bool>())
            {
                LogicE();
            }
            if (Program.LagFree(2) && W.IsReady() && !Player.IsWindingUp && Config.Item("autoW", true).GetValue <bool>())
            {
                LogicW();
            }
            if (Program.LagFree(3) && R.IsReady() && Config.Item("autoR", true).GetValue <bool>())
            {
                LogicR();
            }
            if (Program.LagFree(4) && Q.IsReady() && !Player.IsWindingUp && Config.Item("autoQ", true).GetValue <bool>())
            {
                LogicQ();
            }
        }
示例#6
0
        private bool Sheen()
        {
            var target = Orbwalker.GetTarget();

            if (target.IsValidTarget() && Player.HasBuff("sheen"))
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
示例#7
0
        private void LogicR()
        {
            var t = TargetSelector.GetTarget(800, TargetSelector.DamageType.Physical);

            if (Player.CountEnemiesInRange(800f) > 2)
            {
                R.Cast();
            }
            else if (t.IsValidTarget() && Orbwalker.GetTarget() == null && Program.Combo && Player.GetAutoAttackDamage(t) * 2 > t.Health && !Q.IsReady() && t.CountEnemiesInRange(800) < 3)
            {
                R.Cast();
            }
        }
示例#8
0
文件: Jinx.cs 项目: s1m421/ls-tools
        private void LogicQ()
        {
            if (Program.Farm && !FishBoneActive && !Player.IsWindingUp && Orbwalker.GetTarget() == null && SebbyLib.Orbwalking.CanAttack() && Config.Item("farmQout", true).GetValue <bool>() && Player.Mana > RMANA + WMANA + EMANA + 10)
            {
                foreach (var minion in Cache.GetMinions(Player.Position, bonusRange() + 30).Where(
                             minion => !SebbyLib.Orbwalking.InAutoAttackRange(minion) && GetRealPowPowRange(minion) < GetRealDistance(minion) && bonusRange() < GetRealDistance(minion)))
                {
                    var hpPred = SebbyLib.HealthPrediction.GetHealthPrediction(minion, 400, 70);
                    if (hpPred < Player.GetAutoAttackDamage(minion) * 1.1 && hpPred > 5)
                    {
                        Orbwalker.ForceTarget(minion);
                        Q.Cast();
                        return;
                    }
                }
            }

            var t = TargetSelector.GetTarget(bonusRange() + 60, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                if (!FishBoneActive && (!SebbyLib.Orbwalking.InAutoAttackRange(t) || t.CountEnemiesInRange(250) > 2) && Orbwalker.GetTarget() == null)
                {
                    var distance = GetRealDistance(t);
                    if (Program.Combo && (Player.Mana > RMANA + WMANA + 10 || Player.GetAutoAttackDamage(t) * 3 > t.Health))
                    {
                        Q.Cast();
                    }
                    else if (Program.Farm && !Player.IsWindingUp && SebbyLib.Orbwalking.CanAttack() && Config.Item("Qharras", true).GetValue <bool>() && !ObjectManager.Player.UnderTurret(true) && Player.Mana > RMANA + WMANA + EMANA + 20 && distance < bonusRange() + t.BoundingRadius + Player.BoundingRadius)
                    {
                        Q.Cast();
                    }
                }
            }
            else if (!FishBoneActive && Program.Combo && Player.Mana > RMANA + WMANA + 20 && Player.CountEnemiesInRange(2000) > 0)
            {
                Q.Cast();
            }
            else if (FishBoneActive && Program.Combo && Player.Mana < RMANA + WMANA + 20)
            {
                Q.Cast();
            }
            else if (FishBoneActive && Program.Combo && Player.CountEnemiesInRange(2000) == 0)
            {
                Q.Cast();
            }
            else if (FishBoneActive && (Program.Farm || Orbwalker.ActiveMode == SebbyLib.Orbwalking.OrbwalkingMode.LastHit))
            {
                Q.Cast();
            }
        }
示例#9
0
        private static void KSAshe()
        {
            if (Menu.Item("KillSteal").GetValue <bool>())
            {
                var target = Orbwalker.GetTarget() as Obj_AI_Hero;

                if (target.IsValidTarget(W.Range) && target.Health < W.GetDamage(target) + R.GetDamage(target) + OktwCommon.GetIncomingDamage(target))
                {
                    if (!OktwCommon.IsSpellHeroCollision(target, R))
                    {
                        SebbySpell(R, target);
                    }
                    if (!target.CanMove || target.IsStunned)
                    {
                        W.Cast(target.Position);
                    }
                }
                if (target.IsValidTarget(1600) && target.Health < R.GetDamage(target) + OktwCommon.GetIncomingDamage(target))
                {
                    if (!OktwCommon.IsSpellHeroCollision(target, R))
                    {
                        SebbySpell(R, target);
                    }
                }
                if (target.IsValidTarget(W.Range) && target.Health < W.GetDamage(target) + OktwCommon.GetIncomingDamage(target))
                {
                    if (target.CanMove)
                    {
                        SebbySpell(W, target);
                    }
                    else
                    {
                        W.Cast(target.Position);
                    }
                }
                // More to be Added
            }
        }
示例#10
0
 private void LogicQ()
 {
     if (Program.Combo && Player.Mana > RMANA + QMANA)
     {
         if (Orbwalker.GetTarget() != null)
         {
             return;
         }
         var dashPos = Dash.CastDash();
         if (!dashPos.IsZero && dashPos.CountEnemiesInRange(500) > 0)
         {
             Q.Cast(dashPos);
         }
     }
     if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>() && Player.Mana > RMANA + QMANA)
     {
         var allMinionsQ = Cache.GetMinions(Player.ServerPosition, 400);
         if (allMinionsQ.Count >= Config.Item("LCminions", true).GetValue <Slider>().Value)
         {
             Q.Cast(Game.CursorPos);
         }
     }
 }
示例#11
0
        private void OnUpdate(EventArgs args)
        {
            if (Config.Item("TsAa").GetValue <StringList>().SelectedIndex == 2 || !SebbyLib.Orbwalking.CanAttack() || !Program.Combo)
            {
                return;
            }

            var orbT = Orbwalker.GetTarget();

            if (orbT != null)
            {
                var bestTarget      = (Obj_AI_Hero)orbT;
                var hitToBestTarget = bestTarget.Health / Player.GetAutoAttackDamage(bestTarget);

                if (Config.Item("TsAa").GetValue <StringList>().SelectedIndex == 0)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget() && Orbwalker.InAutoAttackRange(enemy)))
                    {
                        if (enemy.Health / Player.GetAutoAttackDamage(enemy) < hitToBestTarget)
                        {
                            bestTarget = enemy;
                        }
                    }
                }
                else
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget() && Orbwalker.InAutoAttackRange(enemy)))
                    {
                        if (enemy.Health / Player.GetAutoAttackDamage(enemy) < 3)
                        {
                            bestTarget = enemy;
                            break;
                        }
                        if (Config.Item("TsAaPriority" + enemy.ChampionName).GetValue <Slider>().Value > Config.Item("TsAaPriority" + bestTarget.ChampionName).GetValue <Slider>().Value)
                        {
                            bestTarget = enemy;
                        }
                    }
                }
                if (bestTarget.NetworkId != orbT.NetworkId)
                {
                    Program.debug("force " + bestTarget.ChampionName);
                    Orbwalker.ForceTarget(bestTarget);
                }
            }
        }
示例#12
0
        private bool Sheen()
        {
            var target = Orbwalker.GetTarget();

            if (!(target is Obj_AI_Hero))
            {
                attackNow = true;
            }
            if (target.IsValidTarget() && Player.HasBuff("sheen") && Config.Item("sheen", true).GetValue <bool>() && target is Obj_AI_Hero)
            {
                Program.debug("shen true");
                return(false);
            }
            else if (target.IsValidTarget() && Config.Item("AApriority", true).GetValue <bool>() && target is Obj_AI_Hero && !attackNow)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
示例#13
0
 private static void Qlogic()
 {
     if (FishBoneActive)
     {
         var orbT = Orbwalker.GetTarget();
         if (Orbwalker.ActiveMode == SebbyLib.Orbwalking.OrbwalkingMode.LaneClear && Player.ManaPercent > Config.Item("QmanaLC").GetValue <Slider>().Value&& orbT.IsValid <Obj_AI_Minion>())
         {
         }
         else if (Config.Item("Qchange").GetValue <StringList>().SelectedIndex == 0 && orbT.IsValid <Obj_AI_Hero>())
         {
             var t = (Obj_AI_Hero)Orbwalker.GetTarget();
             FishBoneToMiniGun(t);
         }
         else
         {
             if (!Combo && Orbwalker.ActiveMode != SebbyLib.Orbwalking.OrbwalkingMode.None)
             {
                 Q.Cast();
             }
         }
     }
     else
     {
         var t = TargetSelector.GetTarget(Q.Range + 40, TargetSelector.DamageType.Physical);
         if (t.IsValidTarget())
         {
             if ((!SebbyLib.Orbwalking.InAutoAttackRange(t) || t.CountEnemiesInRange(250) >= Config.Item("Qaoe").GetValue <Slider>().Value))
             {
                 if (Combo && Config.Item("Qcombo").GetValue <bool>() && (Player.ManaPercent > Config.Item("QmanaCombo").GetValue <Slider>().Value || Player.GetAutoAttackDamage(t) * Config.Item("QmanaIgnore").GetValue <Slider>().Value > t.Health))
                 {
                     Q.Cast();
                 }
                 if (Farm && SebbyLib.Orbwalking.CanAttack() && !Player.IsWindingUp && Config.Item("harasQ" + t.ChampionName).GetValue <bool>() && Config.Item("Qharass").GetValue <bool>() && (Player.ManaPercent > Config.Item("QmanaHarass").GetValue <Slider>().Value || Player.GetAutoAttackDamage(t) * Config.Item("QmanaIgnore").GetValue <Slider>().Value > t.Health))
                 {
                     Q.Cast();
                 }
             }
         }
         else
         {
             if (Combo && Player.ManaPercent > Config.Item("QmanaCombo").GetValue <Slider>().Value)
             {
                 Q.Cast();
             }
             else if (Farm && !Player.IsWindingUp && Config.Item("farmQout").GetValue <bool>() && SebbyLib.Orbwalking.CanAttack())
             {
                 foreach (var minion in MinionManager.GetMinions(Q.Range + 30).Where(
                              minion => !SebbyLib.Orbwalking.InAutoAttackRange(minion) && minion.Health < Player.GetAutoAttackDamage(minion) * 1.2 && GetRealPowPowRange(minion) < GetRealDistance(minion) && Q.Range < GetRealDistance(minion)))
                 {
                     Orbwalker.ForceTarget(minion);
                     Q.Cast();
                     return;
                 }
             }
             if (Orbwalker.ActiveMode == SebbyLib.Orbwalking.OrbwalkingMode.LaneClear && Player.ManaPercent > Config.Item("QmanaLC").GetValue <Slider>().Value)
             {
                 var orbT = Orbwalker.GetTarget();
                 if (orbT.IsValid <Obj_AI_Minion>() && CountMinionsInRange(250, orbT.Position) >= Config.Item("Qlaneclear").GetValue <Slider>().Value)
                 {
                     Q.Cast();
                 }
             }
         }
     }
 }
示例#14
0
        private void LogicW()
        {
            var wName = W.Instance.Name;
            var t     = TargetSelector.GetTarget(1100, TargetSelector.DamageType.Magical);

            if (wName == "PickACard" && Utils.TickCount - W.LastCastAttemptT > 150)
            {
                if (R.IsReady() && (Player.HasBuff("destiny_marker") || Player.HasBuff("gate")))
                {
                    W.Cast();
                }
                else if (t.IsValidTarget() && Program.Combo)
                {
                    W.Cast();
                }
                else if (Orbwalker.GetTarget() != null)
                {
                    if (Program.Farm && Orbwalker.GetTarget().Type == GameObjectType.obj_AI_Hero && Config.Item("harasW", true).GetValue <bool>())
                    {
                        W.Cast();
                    }
                    else if (Program.LaneClear && (Orbwalker.GetTarget().Type == GameObjectType.obj_AI_Minion || Orbwalker.GetTarget().Type == GameObjectType.obj_AI_Turret) && Config.Item("farmW", true).GetValue <bool>())
                    {
                        W.Cast();
                    }
                }
            }
            else if (Player.HasBuff("pickacard_tracker"))
            {
                if (temp == null)
                {
                    temp = wName;
                }
                else if (temp != wName)
                {
                    cardok = true;
                }

                if (cardok)
                {
                    Obj_AI_Hero orbTarget = null;

                    var getTarget = Orbwalker.GetTarget();
                    if (getTarget != null && getTarget.Type == GameObjectType.obj_AI_Hero)
                    {
                        orbTarget = (Obj_AI_Hero)getTarget;
                    }

                    if (R.IsReady() && (Player.HasBuff("destiny_marker") || Player.HasBuff("gate")))
                    {
                        FindCard = 1;
                        if (wName == "GoldCardLock")
                        {
                            W.Cast();
                        }
                    }
                    else if (Program.Combo && orbTarget.IsValidTarget() && W.GetDamage(orbTarget) + Player.GetAutoAttackDamage(orbTarget) > orbTarget.Health)
                    {
                        W.Cast();
                        Program.debug("1" + wName);
                    }
                    else if (Player.Mana < RMANA + QMANA + WMANA)
                    {
                        FindCard = 2;
                        if (wName == "BlueCardLock")
                        {
                            W.Cast();
                        }
                    }
                    else if (Program.Farm && orbTarget.IsValidTarget())
                    {
                        FindCard = 1;
                        if (wName == "GoldCardLock")
                        {
                            W.Cast();
                        }
                    }
                    else if (Player.ManaPercent > Config.Item("WredFarm", true).GetValue <Slider>().Value&& Program.LaneClear && Config.Item("farmW", true).GetValue <bool>())
                    {
                        FindCard = 3;
                        if (wName == "RedCardLock")
                        {
                            W.Cast();
                        }
                    }
                    else if ((Program.LaneClear || Player.Mana < RMANA + QMANA) && Config.Item("farmW", true).GetValue <bool>())
                    {
                        FindCard = 2;
                        if (wName == "BlueCardLock")
                        {
                            W.Cast();
                        }
                    }
                    else if (Program.Combo)
                    {
                        FindCard = 1;
                        if (wName == "GoldCardLock")
                        {
                            W.Cast();
                        }
                    }
                }
            }
        }
示例#15
0
        public Vector3 CastDash(bool asap = false)
        {
            int DashMode = Config.Item("DashMode", true).GetValue <StringList>().SelectedIndex;

            Vector3 bestpoint = Vector3.Zero;

            if (DashMode == 0)
            {
                bestpoint = Player.Position.Extend(Game.CursorPos, DashSpell.Range);
            }
            else if (DashMode == 1)
            {
                var orbT = Orbwalker.GetTarget();
                if (orbT != null && orbT is AIHeroClient)
                {
                    Vector2 start = Player.Position.To2D();
                    Vector2 end   = orbT.Position.To2D();
                    var     dir   = (end - start).Normalized();
                    var     pDir  = dir.Perpendicular();

                    var rightEndPos = end + pDir * Player.Distance(orbT);
                    var leftEndPos  = end - pDir * Player.Distance(orbT);

                    var rEndPos = new Vector3(rightEndPos.X, rightEndPos.Y, Player.Position.Z);
                    var lEndPos = new Vector3(leftEndPos.X, leftEndPos.Y, Player.Position.Z);

                    if (Game.CursorPos.Distance(rEndPos) < Game.CursorPos.Distance(lEndPos))
                    {
                        bestpoint = Player.Position.Extend(rEndPos, DashSpell.Range);
                    }
                    else
                    {
                        bestpoint = Player.Position.Extend(lEndPos, DashSpell.Range);
                    }
                }
            }
            else if (DashMode == 2)
            {
                var points = OktwCommon.CirclePoints(15, DashSpell.Range, Player.Position);
                bestpoint = Player.Position.Extend(Game.CursorPos, DashSpell.Range);
                int enemies = bestpoint.CountEnemiesInRange(350);
                foreach (var point in points)
                {
                    int count = point.CountEnemiesInRange(350);
                    if (!InAARange(point))
                    {
                        continue;
                    }
                    if (point.UnderAllyTurret())
                    {
                        bestpoint = point;
                        enemies   = count - 1;
                    }
                    else if (count < enemies)
                    {
                        enemies   = count;
                        bestpoint = point;
                    }
                    else if (count == enemies && Game.CursorPos.Distance(point) < Game.CursorPos.Distance(bestpoint))
                    {
                        enemies   = count;
                        bestpoint = point;
                    }
                }
            }

            if (bestpoint.IsZero)
            {
                return(Vector3.Zero);
            }

            var isGoodPos = IsGoodPosition(bestpoint);

            if (asap && isGoodPos)
            {
                return(bestpoint);
            }
            else if (isGoodPos && InAARange(bestpoint))
            {
                return(bestpoint);
            }
            return(Vector3.Zero);
        }
示例#16
0
        private void OnUpdate(EventArgs args)
        {
            if (Range && E.IsReady() && Utils.TickCount - Etick < 250 + Game.Ping)
            {
                E.Cast(EcastPos);
            }

            if (Config.Item("flee", true).GetValue <KeyBind>().Active)
            {
                FleeMode();
            }

            if (Range)
            {
                if (Config.Item("autoWmove", true).GetValue <bool>() && Orbwalker.GetTarget() != null && Player.HasBuff("jaycehyperchargevfx"))
                {
                    SebbyLib.Orbwalking.Move = false;
                }
                else
                {
                    SebbyLib.Orbwalking.Move = true;
                }

                if (Program.LagFree(1) && Q.IsReady() && Config.Item("autoQ", true).GetValue <bool>())
                {
                    LogicQ();
                }

                if (Program.LagFree(2) && W.IsReady() && Config.Item("autoW", true).GetValue <bool>())
                {
                    LogicW();
                }
            }
            else
            {
                if (Program.LagFree(1) && E2.IsReady() && Config.Item("autoEm", true).GetValue <bool>())
                {
                    LogicE2();
                }

                if (Program.LagFree(2) && Q2.IsReady() && Config.Item("autoQm", true).GetValue <bool>())
                {
                    LogicQ2();
                }
                if (Program.LagFree(3) && W2.IsReady() && Config.Item("autoWm", true).GetValue <bool>())
                {
                    LogicW2();
                }
            }

            if (Program.LagFree(4))
            {
                if (Program.None && Config.Item("stack", true).GetValue <bool>() && !Player.HasBuff("Recall") && Player.Mana > Player.MaxMana * 0.90 && (Items.HasItem(Tear) || Items.HasItem(Manamune)))
                {
                    if (Utils.TickCount - Q.LastCastAttemptT > 4200 && Utils.TickCount - W.LastCastAttemptT > 4200 && Utils.TickCount - E.LastCastAttemptT > 4200)
                    {
                        if (Range)
                        {
                            if (W.IsReady())
                            {
                                W.Cast();
                            }
                            else if (E.IsReady() && (Player.InFountain() || Player.IsMoving))
                            {
                                E.Cast(Player.ServerPosition);
                            }
                            else if (Q.IsReady() && !E.IsReady())
                            {
                                Q.Cast(Player.Position.Extend(Game.CursorPos, 500));
                            }
                            else if (R.IsReady() && Player.InFountain())
                            {
                                R.Cast();
                            }
                        }
                        else
                        {
                            if (W.IsReady())
                            {
                                W.Cast();
                            }
                            else if (R.IsReady() && Player.InFountain())
                            {
                                R.Cast();
                            }
                        }
                    }
                }

                SetValue();
                if (R.IsReady())
                {
                    LogicR();
                }
            }

            Jungle();
            LaneClearLogic();
        }
示例#17
0
文件: Urgot.cs 项目: s1m421/ls-tools
        public void farmQ()
        {
            if (Program.LaneClear)
            {
                var mobs = Cache.GetMinions(Player.ServerPosition, 800, MinionTeam.Neutral);
                if (mobs.Count > 0)
                {
                    var mob = mobs[0];
                    Q.Cast(mob, true);
                    return;
                }
            }

            if (!Config.Item("farmQ", true).GetValue <bool>())
            {
                return;
            }

            var minions = Cache.GetMinions(Player.ServerPosition, Q.Range);

            int orbTarget = 0;

            if (Orbwalker.GetTarget() != null)
            {
                orbTarget = Orbwalker.GetTarget().NetworkId;
            }

            foreach (var minion in minions.Where(minion => orbTarget != minion.NetworkId && !Orbwalker.InAutoAttackRange(minion) && minion.Health < Q.GetDamage(minion)))
            {
                if (Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                {
                    return;
                }
            }

            if (Config.Item("LC", true).GetValue <bool>() && Program.LaneClear && !SebbyLib.Orbwalking.CanAttack() && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value)
            {
                var LCP = Config.Item("LCP", true).GetValue <bool>();

                foreach (var minion in minions.Where(minion => Orbwalker.InAutoAttackRange(minion) && orbTarget != minion.NetworkId))
                {
                    var hpPred    = SebbyLib.HealthPrediction.GetHealthPrediction(minion, 300);
                    var dmgMinion = minion.GetAutoAttackDamage(minion);
                    var qDmg      = Q.GetDamage(minion);
                    if (hpPred < qDmg)
                    {
                        if (hpPred > dmgMinion)
                        {
                            if (Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                            {
                                return;
                            }
                        }
                    }
                    else if (LCP)
                    {
                        if (hpPred > dmgMinion + qDmg)
                        {
                            if (Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                            {
                                return;
                            }
                        }
                    }
                }
            }
        }
示例#18
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (Config.Item("disableBlock", true).GetValue <KeyBind>().Active)
            {
                SebbyLib.Orbwalking.Attack = true;
                SebbyLib.Orbwalking.Move   = true;
                OktwCommon.blockSpells     = false;
                OktwCommon.blockAttack     = false;
                OktwCommon.blockMove       = false;
                return;
            }
            else if (Player.IsChannelingImportantSpell() || Game.Time - RCastTime < 0.3)
            {
                if (Config.Item("forceBlockMove", true).GetValue <bool>())
                {
                    OktwCommon.blockMove   = true;
                    OktwCommon.blockAttack = true;
                    OktwCommon.blockSpells = true;
                }

                SebbyLib.Orbwalking.Attack = false;
                SebbyLib.Orbwalking.Move   = false;

                Program.debug("cast R");
                return;
            }
            else
            {
                SebbyLib.Orbwalking.Attack = true;
                SebbyLib.Orbwalking.Move   = true;
                if (Config.Item("forceBlockMove", true).GetValue <bool>())
                {
                    OktwCommon.blockAttack = false;
                    OktwCommon.blockMove   = false;
                    OktwCommon.blockSpells = false;
                }
                if (R.IsReady() && Config.Item("useR", true).GetValue <KeyBind>().Active)
                {
                    var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);
                    if (t.IsValidTarget(R.Range))
                    {
                        R.Cast(t, true, true);
                        RCastTime = Game.Time;
                        return;
                    }
                }
            }

            if (Config.Item("newTarget", true).GetValue <bool>())
            {
                var orbT = Orbwalker.GetTarget();

                Obj_AI_Hero t2 = null;

                if (orbT != null && orbT is Obj_AI_Hero)
                {
                    t2 = (Obj_AI_Hero)orbT;
                }

                if (t2.IsValidTarget() && t2.NetworkId == LastAttackId)
                {
                    var ta = ObjectManager.Get <Obj_AI_Hero>().Where(enemy =>
                                                                     enemy.IsValidTarget() && SebbyLib.Orbwalking.InAutoAttackRange(enemy) &&
                                                                     (enemy.NetworkId != LastAttackId || enemy.Health < Player.GetAutoAttackDamage(enemy) * 2)).FirstOrDefault();

                    if (ta != null)
                    {
                        Orbwalker.ForceTarget(ta);
                    }
                }
            }

            if (Program.LagFree(1))
            {
                SetMana();
                Jungle();
            }

            if (Program.LagFree(2) && !Player.IsWindingUp && Q.IsReady() && Config.Item("autoQ", true).GetValue <bool>())
            {
                LogicQ();
            }

            if (Program.LagFree(3) && !Player.IsWindingUp && E.IsReady() && Config.Item("autoE", true).GetValue <bool>())
            {
                LogicE();
            }

            if (Program.LagFree(4) && !Player.IsWindingUp && R.IsReady() && Config.Item("autoR", true).GetValue <bool>())
            {
                LogicR();
            }
        }
示例#19
0
        private void Offensive()
        {
            if (Botrk.IsReady() && Config.Item("Botrk").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(Botrk.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget())
                {
                    if (Config.Item("BotrkKS").GetValue <bool>() && Player.CalcDamage(t, Damage.DamageType.Physical, t.MaxHealth * 0.1) > t.Health - OktwCommon.GetIncomingDamage(t))
                    {
                        Botrk.Cast(t);
                    }
                    if (Config.Item("BotrkLS").GetValue <bool>() && Player.Health < Player.MaxHealth * 0.5 - OktwCommon.GetIncomingDamage(Player))
                    {
                        Botrk.Cast(t);
                    }
                    if (Config.Item("BotrkCombo").GetValue <bool>() && Program.Combo)
                    {
                        Botrk.Cast(t);
                    }
                }
            }

            if (Hextech.IsReady() && Config.Item("Hextech").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(Hextech.Range, TargetSelector.DamageType.Magical);
                if (t.IsValidTarget())
                {
                    if (Config.Item("HextechKS").GetValue <bool>() && Player.CalcDamage(t, Damage.DamageType.Magical, 150 + Player.FlatMagicDamageMod * 0.4) > t.Health - OktwCommon.GetIncomingDamage(t))
                    {
                        Hextech.Cast(t);
                    }
                    if (Config.Item("HextechCombo").GetValue <bool>() && Program.Combo)
                    {
                        Hextech.Cast(t);
                    }
                }
            }

            if (Program.Combo && FrostQueen.IsReady() && Config.Item("FrostQueen").GetValue <bool>() && Player.CountEnemiesInRange(800) > 0)
            {
                FrostQueen.Cast();
            }

            if (Cutlass.IsReady() && Config.Item("Cutlass").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(Cutlass.Range, TargetSelector.DamageType.Magical);
                if (t.IsValidTarget())
                {
                    if (Config.Item("CutlassKS").GetValue <bool>() && Player.CalcDamage(t, Damage.DamageType.Magical, 100) > t.Health - OktwCommon.GetIncomingDamage(t))
                    {
                        Cutlass.Cast(t);
                    }
                    if (Config.Item("CutlassCombo").GetValue <bool>() && Program.Combo)
                    {
                        Cutlass.Cast(t);
                    }
                }
            }

            if (Youmuus.IsReady() && Config.Item("Youmuus").GetValue <bool>())
            {
                var t = Orbwalker.GetTarget();

                if (t.IsValidTarget() && t is Obj_AI_Hero)
                {
                    if (Config.Item("YoumuusKS").GetValue <bool>() && t.Health < Player.MaxHealth)
                    {
                        Youmuus.Cast();
                    }
                    if (Config.Item("YoumuusCombo").GetValue <bool>() && Program.Combo)
                    {
                        Youmuus.Cast();
                    }
                }
            }

            if (Config.Item("Hydra").GetValue <bool>())
            {
                if (Hydra.IsReady() && Player.CountEnemiesInRange(Hydra.Range) > 0)
                {
                    Hydra.Cast();
                }
                else if (Hydra2.IsReady() && Player.CountEnemiesInRange(Hydra2.Range) > 0)
                {
                    Hydra2.Cast();
                }
            }
        }
示例#20
0
        private void LogicW()
        {
            if (Config.Item("Wdragon", true).GetValue <bool>() && !Orbwalker.GetTarget().IsValidTarget() && !Program.Combo && Player.CountEnemiesInRange(800) == 0)
            {
                if (wCount > 0)
                {
                    Vector3 baronPos;
                    baronPos.X = 5232;
                    baronPos.Y = 10788;
                    baronPos.Z = 0;
                    if (Player.Distance(baronPos) < 5000)
                    {
                        W.Cast(baronPos);
                    }
                }
                if (wCount == 0)
                {
                    Vector3 dragonPos;
                    dragonPos.X = 9919f;
                    dragonPos.Y = 4475f;
                    dragonPos.Z = 0f;
                    if (Player.Distance(dragonPos) < 5000)
                    {
                        W.Cast(dragonPos);
                    }
                    else
                    {
                        wCount++;
                    }
                    return;
                }

                if (wCount == 1)
                {
                    Vector3 redPos;
                    redPos.X = 8022;
                    redPos.Y = 4156;
                    redPos.Z = 0;
                    if (Player.Distance(redPos) < 5000)
                    {
                        W.Cast(redPos);
                    }
                    else
                    {
                        wCount++;
                    }
                    return;
                }
                if (wCount == 2)
                {
                    Vector3 bluePos;
                    bluePos.X = 11396;
                    bluePos.Y = 7076;
                    bluePos.Z = 0;
                    if (Player.Distance(bluePos) < 5000)
                    {
                        W.Cast(bluePos);
                    }
                    else
                    {
                        wCount++;
                    }
                    return;
                }
                if (wCount > 2)
                {
                    wCount = 0;
                }
            }
        }
示例#21
0
文件: Ezreal.cs 项目: s1m421/ls-tools
        public void farmQ()
        {
            if (Program.LaneClear)
            {
                var mobs = Cache.GetMinions(Player.ServerPosition, 800, MinionTeam.Neutral);
                if (mobs.Count > 0)
                {
                    var mob = mobs[0];
                    Q.Cast(mob.Position);
                }
            }

            var minions   = Cache.GetMinions(Player.ServerPosition, Q.Range);
            int orbTarget = 0;

            if (Orbwalker.GetTarget() != null)
            {
                orbTarget = Orbwalker.GetTarget().NetworkId;
            }

            if (Config.Item("FQ", true).GetValue <bool>())
            {
                foreach (var minion in minions.Where(minion => minion.IsValidTarget() && orbTarget != minion.NetworkId && minion.HealthPercent < 70 && !Orbwalker.InAutoAttackRange(minion) && minion.Health < Q.GetDamage(minion)))
                {
                    if (Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                    {
                        return;
                    }
                }
            }

            if (Config.Item("farmQ", true).GetValue <bool>() && Program.LaneClear && !SebbyLib.Orbwalking.CanAttack() && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value)
            {
                var LCP = Config.Item("LCP", true).GetValue <bool>();
                var PT  = Game.Time - GetPassiveTime() > -1.5 || !E.IsReady();

                foreach (var minion in minions.Where(minion => Orbwalker.InAutoAttackRange(minion)))
                {
                    var hpPred = SebbyLib.HealthPrediction.GetHealthPrediction(minion, 300);
                    if (hpPred < 20)
                    {
                        continue;
                    }

                    var qDmg = Q.GetDamage(minion);
                    if (hpPred < qDmg && orbTarget != minion.NetworkId)
                    {
                        if (Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                        {
                            return;
                        }
                    }
                    else if (PT || LCP)
                    {
                        if (minion.HealthPercent > 80)
                        {
                            if (Q.Cast(minion) == Spell.CastStates.SuccessfullyCasted)
                            {
                                return;
                            }
                        }
                    }
                }
            }
        }
示例#22
0
        private void Offensive()
        {
            if (Botrk.IsReady() && Config.Item("Botrk").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(Botrk.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget())
                {
                    if (Config.Item("BotrkKS").GetValue <bool>() && Player.CalcDamage(t, Damage.DamageType.Physical, t.MaxHealth * 0.1) > t.Health - OktwCommon.GetIncomingDamage(t))
                    {
                        Botrk.Cast(t);
                    }
                    if (Config.Item("BotrkLS").GetValue <bool>() && Player.Health < Player.MaxHealth * 0.5 - OktwCommon.GetIncomingDamage(Player))
                    {
                        Botrk.Cast(t);
                    }
                    if (Config.Item("BotrkCombo").GetValue <bool>() && Program.Combo)
                    {
                        Botrk.Cast(t);
                    }
                }
            }

            if (GLP800.IsReady() && Config.Item("GLP800").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(GLP800.Range, TargetSelector.DamageType.Magical);
                if (t.IsValidTarget())
                {
                    if (Config.Item("GLP800KS").GetValue <bool>() && Player.CalcDamage(t, Damage.DamageType.Magical, 200 + Player.FlatMagicDamageMod * 0.35) > t.Health - OktwCommon.GetIncomingDamage(t))
                    {
                        GLP800.Cast(Prediction.GetPrediction(t, 0.5f).CastPosition);
                    }
                    if (Config.Item("GLP800Combo").GetValue <bool>() && Program.Combo)
                    {
                        Program.debug("PRO");
                        GLP800.Cast(Prediction.GetPrediction(t, 0.5f).CastPosition);
                    }
                }
            }

            if (Protobelt.IsReady() && Config.Item("Protobelt").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(Protobelt.Range, TargetSelector.DamageType.Magical);
                if (t.IsValidTarget())
                {
                    if (Config.Item("ProtobeltKS").GetValue <bool>() && Player.CalcDamage(t, Damage.DamageType.Magical, 150 + Player.FlatMagicDamageMod * 0.35) > t.Health - OktwCommon.GetIncomingDamage(t))
                    {
                        Protobelt.Cast(Prediction.GetPrediction(t, 0.5f).CastPosition);
                    }
                    if (Config.Item("ProtobeltCombo").GetValue <bool>() && Program.Combo)
                    {
                        Program.debug("PRO");
                        Protobelt.Cast(Prediction.GetPrediction(t, 0.5f).CastPosition);
                    }
                }
            }

            if (Hextech.IsReady() && Config.Item("Hextech").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(Hextech.Range, TargetSelector.DamageType.Magical);
                if (t.IsValidTarget())
                {
                    if (Config.Item("HextechKS").GetValue <bool>() && Player.CalcDamage(t, Damage.DamageType.Magical, 150 + Player.FlatMagicDamageMod * 0.4) > t.Health - OktwCommon.GetIncomingDamage(t))
                    {
                        Hextech.Cast(t);
                    }
                    if (Config.Item("HextechCombo").GetValue <bool>() && Program.Combo)
                    {
                        Hextech.Cast(t);
                    }
                }
            }

            if (Program.Combo && FrostQueen.IsReady() && Config.Item("FrostQueen").GetValue <bool>() && Player.CountEnemiesInRange(800) > 0)
            {
                FrostQueen.Cast();
            }

            if (Cutlass.IsReady() && Config.Item("Cutlass").GetValue <bool>())
            {
                var t = TargetSelector.GetTarget(Cutlass.Range, TargetSelector.DamageType.Magical);
                if (t.IsValidTarget())
                {
                    if (Config.Item("CutlassKS").GetValue <bool>() && Player.CalcDamage(t, Damage.DamageType.Magical, 100) > t.Health - OktwCommon.GetIncomingDamage(t))
                    {
                        Cutlass.Cast(t);
                    }
                    if (Config.Item("CutlassCombo").GetValue <bool>() && Program.Combo)
                    {
                        Cutlass.Cast(t);
                    }
                }
            }

            if (Youmuus.IsReady() && Config.Item("Youmuus").GetValue <bool>() && Program.Combo)
            {
                var t = Orbwalker.GetTarget();

                if (t.IsValidTarget() && t is AIHeroClient)
                {
                    if (Config.Item("YoumuusKS").GetValue <bool>() && t.Health < Player.MaxHealth)
                    {
                        Youmuus.Cast();
                    }
                    if (Config.Item("YoumuusCombo").GetValue <bool>())
                    {
                        Youmuus.Cast();
                    }
                }
            }

            if (Config.Item("Hydra").GetValue <bool>())
            {
                if (Hydra.IsReady() && Player.CountEnemiesInRange(Hydra.Range) > 0)
                {
                    Hydra.Cast();
                }
                else if (Hydra2.IsReady() && Player.CountEnemiesInRange(Hydra2.Range) > 0)
                {
                    Hydra2.Cast();
                }
            }
        }
示例#23
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.HasBuff("Recall"))
            {
                return;
            }

            HaveStun = Player.HasBuff("pyromania_particle");

            SetMana();

            if (R.IsReady() && (Program.LagFree(1) || Program.LagFree(3)) && !HaveTibers)
            {
                var realRange = R.Range;

                if (flash.IsReady())
                {
                    realRange = FR.Range;
                }

                foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(realRange) && OktwCommon.ValidUlt(enemy)))
                {
                    if (enemy.IsValidTarget(R.Range))
                    {
                        int Rmode = Config.Item("UM" + enemy.ChampionName, true).GetValue <StringList>().SelectedIndex;

                        if (Rmode == 2)
                        {
                            continue;
                        }

                        var poutput  = R.GetPrediction(enemy, true);
                        var aoeCount = poutput.AoeTargetsHitCount;

                        if (Rmode == 1)
                        {
                            R.Cast(poutput.CastPosition);
                        }

                        if (Rmode == 3 && HaveStun)
                        {
                            R.Cast(poutput.CastPosition);
                        }

                        if (aoeCount >= Config.Item("rCount", true).GetValue <Slider>().Value&& Config.Item("rCount", true).GetValue <Slider>().Value > 0)
                        {
                            R.Cast(poutput.CastPosition);
                        }
                        else if (Program.Combo && HaveStun && Config.Item("autoRcombo", true).GetValue <bool>())
                        {
                            R.Cast(poutput.CastPosition);
                        }
                        else if (Config.Item("autoRks", true).GetValue <bool>())
                        {
                            var comboDmg = OktwCommon.GetKsDamage(enemy, R);

                            if (W.IsReady() && RMANA + WMANA < Player.Mana)
                            {
                                comboDmg += W.GetDamage(enemy);
                            }

                            if (Q.IsReady() && RMANA + WMANA + QMANA < Player.Mana)
                            {
                                comboDmg += Q.GetDamage(enemy);
                            }

                            if (enemy.Health < comboDmg)
                            {
                                R.Cast(poutput.CastPosition);
                            }
                        }
                    }
                    else if (HaveStun && flash.IsReady())
                    {
                        var poutputFlas   = FR.GetPrediction(enemy, true);
                        var aoeCountFlash = poutputFlas.AoeTargetsHitCount;
                        if (HaveStun && aoeCountFlash >= Config.Item("rCountFlash", true).GetValue <Slider>().Value&& Config.Item("rCountFlash", true).GetValue <Slider>().Value > 0)
                        {
                            Player.Spellbook.CastSpell(flash, poutputFlas.CastPosition);
                            R.Cast(poutputFlas.CastPosition);
                        }
                    }
                }
            }

            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget() && Program.LagFree(2))
            {
                if (Q.IsReady() && Config.Item("autoQ", true).GetValue <bool>())
                {
                    if (Program.Combo && RMANA + WMANA < Player.Mana)
                    {
                        Q.Cast(t);
                    }
                    else if (Program.Farm && RMANA + WMANA + QMANA < Player.Mana && Config.Item("harrasQ", true).GetValue <bool>())
                    {
                        Q.Cast(t);
                    }
                    else
                    {
                        var qDmg = OktwCommon.GetKsDamage(t, Q);
                        var wDmg = W.GetDamage(t);
                        if (qDmg > t.Health)
                        {
                            Q.Cast(t);
                        }
                        else if (qDmg + wDmg > t.Health && Player.Mana > QMANA + WMANA)
                        {
                            Q.Cast(t);
                        }
                    }
                }
                if (W.IsReady() && Config.Item("autoW", true).GetValue <bool>() && t.IsValidTarget(W.Range))
                {
                    var poutput  = W.GetPrediction(t, true);
                    var aoeCount = poutput.AoeTargetsHitCount;

                    if (Program.Combo && RMANA + WMANA < Player.Mana)
                    {
                        W.Cast(poutput.CastPosition);
                    }
                    else if (Program.Farm && RMANA + WMANA + QMANA < Player.Mana && Config.Item("harrasW", true).GetValue <bool>())
                    {
                        W.Cast(poutput.CastPosition);
                    }
                    else
                    {
                        var wDmg = OktwCommon.GetKsDamage(t, W);
                        var qDmg = Q.GetDamage(t);
                        if (wDmg > t.Health)
                        {
                            W.Cast(poutput.CastPosition);
                        }
                        else if (qDmg + wDmg > t.Health && Player.Mana > QMANA + WMANA)
                        {
                            W.Cast(poutput.CastPosition);
                        }
                    }
                }
            }
            else if (Q.IsReady() || W.IsReady())
            {
                if (Config.Item("farmQ", true).GetValue <bool>())
                {
                    if (Config.Item("supportMode", true).GetValue <bool>())
                    {
                        if (Program.LaneClear && Player.Mana > RMANA + QMANA)
                        {
                            farm();
                        }
                    }
                    else
                    {
                        if ((!HaveStun || Program.LaneClear) && Program.Farm)
                        {
                            farm();
                        }
                    }
                }
            }

            if (Program.LagFree(3))
            {
                if (!HaveStun)
                {
                    if (E.IsReady() && !Program.LaneClear && Config.Item("autoE", true).GetValue <bool>() && Player.Mana > RMANA + EMANA + QMANA + WMANA)
                    {
                        E.Cast();
                    }
                    else if (W.IsReady() && Player.InFountain())
                    {
                        W.Cast(Player.Position);
                    }
                }
                if (R.IsReady())
                {
                    if (Config.Item("tibers", true).GetValue <bool>() && HaveTibers && Tibbers != null && Tibbers.IsValid)
                    {
                        var enemy = Program.Enemies.Where(x => x.IsValidTarget() && Tibbers.Distance(x.Position) < 1000 && !x.UnderTurret(true)).OrderBy(x => x.Distance(Tibbers)).FirstOrDefault();
                        if (enemy != null)
                        {
                            if (Tibbers.Distance(enemy.Position) > 200)
                            {
                                Player.IssueOrder(GameObjectOrder.MovePet, enemy);
                            }
                            else
                            {
                                Tibbers.IssueOrder(GameObjectOrder.AttackUnit, enemy);
                            }
                        }
                        else
                        {
                            var annieTarget = Orbwalker.GetTarget() as Obj_AI_Base;
                            if (annieTarget != null)
                            {
                                if (Tibbers.Distance(annieTarget.Position) > 200)
                                {
                                    Player.IssueOrder(GameObjectOrder.MovePet, annieTarget);
                                }
                                else
                                {
                                    Tibbers.IssueOrder(GameObjectOrder.AttackUnit, annieTarget);
                                }
                            }
                            else if (Tibbers.UnderTurret(true))
                            {
                                Player.IssueOrder(GameObjectOrder.MovePet, Player);
                            }
                        }
                    }
                    else
                    {
                        Tibbers = null;
                    }
                }
            }
        }
示例#24
0
文件: Lucian.cs 项目: s1m421/ls-tools
        private void LogicW()
        {
            var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTarget())
            {
                if (Config.Item("ignoreCol", true).GetValue <bool>() && SebbyLib.Orbwalking.InAutoAttackRange(t))
                {
                    W.Collision = false;
                }
                else
                {
                    W.Collision = true;
                }

                var qDmg = Q.GetDamage(t);
                var wDmg = OktwCommon.GetKsDamage(t, W);

                if (SebbyLib.Orbwalking.InAutoAttackRange(t))
                {
                    qDmg += (float)AaDamage(t);
                    wDmg += (float)AaDamage(t);
                }

                if (wDmg > t.Health)
                {
                    Program.CastSpell(W, t);
                }
                else if (wDmg + qDmg > t.Health && Q.IsReady() && Player.Mana > RMANA + WMANA + QMANA)
                {
                    Program.CastSpell(W, t);
                }

                var orbT = Orbwalker.GetTarget() as Obj_AI_Hero;
                if (orbT == null)
                {
                    if (Config.Item("wInAaRange", true).GetValue <bool>())
                    {
                        return;
                    }
                }
                else if (orbT.IsValidTarget())
                {
                    t = orbT;
                }


                if (Orbwalker.ActiveMode == SebbyLib.Orbwalking.OrbwalkingMode.Combo && Player.Mana > RMANA + WMANA + EMANA + QMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if (Program.Farm && Config.Item("harras" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && Player.Mana > Player.MaxMana * 0.8 && Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA)
                {
                    Program.CastSpell(W, t);
                }
                else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        W.Cast(enemy, true);
                    }
                }
            }
        }