示例#1
0
        public static void CastBasicFarm(Spell spell)
        {
            if (!spell.IsReady())
                return;
            var minion = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, spell.Range, MinionTypes.All, MinionTeam.NotAlly);

            if (minion.Count == 0)
                return;

            if (spell.Type == SkillshotType.SkillshotCircle)
            {
                spell.UpdateSourcePosition();

                var predPosition = spell.GetCircularFarmLocation(minion);

                if (predPosition.MinionsHit >= 2)
                {
                    spell.Cast(predPosition.Position);
                }
            }
            else if (spell.Type == SkillshotType.SkillshotLine || spell.Type == SkillshotType.SkillshotCone)
            {
                spell.UpdateSourcePosition();

                var predPosition = spell.GetLineFarmLocation(minion);

                if (predPosition.MinionsHit >= 2)
                    spell.Cast(predPosition.Position);
            }
        }
示例#2
0
文件: Galio.cs 项目: yashine59fr/Port
        private void Clear()
        {
            float perc = config.Item("minmana", true).GetValue <Slider>().Value / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            if (config.Item("useqLC", true).GetValue <bool>() && Q.IsReady())
            {
                MinionManager.FarmLocation bestPositionQ =
                    Q.GetCircularFarmLocation(MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly));

                if (bestPositionQ.MinionsHit >= config.Item("qMinHit", true).GetValue <Slider>().Value)
                {
                    Q.Cast(bestPositionQ.Position);
                }
            }
            if (config.Item("useeLC", true).GetValue <bool>() && E.IsReady())
            {
                MinionManager.FarmLocation bestPositionE =
                    E.GetLineFarmLocation(
                        MinionManager.GetMinions(
                            ObjectManager.Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly));

                if (bestPositionE.MinionsHit >= config.Item("eMinHit", true).GetValue <Slider>().Value)
                {
                    E.Cast(bestPositionE.Position);
                }
            }
        }
示例#3
0
        private static void Clear()
        {
            var perc = getSliderItem(laneClearMenu, "minmana") / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            if (getCheckBoxItem(laneClearMenu, "useqLC") && Q.IsReady())
            {
                var bestPositionQ =
                    Q.GetCircularFarmLocation(MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly));

                if (bestPositionQ.MinionsHit >= getSliderItem(laneClearMenu, "qMinHit"))
                {
                    Q.Cast(bestPositionQ.Position, getCheckBoxItem(config, "packets"));
                }
            }
            if (getCheckBoxItem(laneClearMenu, "useeLC") && E.IsReady())
            {
                var bestPositionE =
                    E.GetLineFarmLocation(
                        MinionManager.GetMinions(
                            ObjectManager.Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly));

                if (bestPositionE.MinionsHit >= getSliderItem(laneClearMenu, "eMinHit"))
                {
                    E.Cast(bestPositionE.Position, getCheckBoxItem(config, "packets"));
                }
            }
        }
示例#4
0
        private static void LogicE()
        {
            var t = TargetSelector.GetTarget(E.Range, DamageType.Magical);

            if (t.IsValidTarget())
            {
                if (Program.Combo && Player.Mana > RMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                else if (Program.Farm && OktwCommon.CanHarras() && getCheckBoxItem(eMenu, "harrasE") &&
                         getCheckBoxItem(harassMenu, "harras" + t.NetworkId) &&
                         Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                else
                {
                    var eDmg = OktwCommon.GetKsDamage(t, E);
                    var qDmg = Q.GetDamage(t);
                    if (qDmg + eDmg > t.Health)
                    {
                        if (eDmg > t.Health)
                        {
                            Program.CastSpell(E, t);
                        }
                        else if (Player.Mana > QMANA + EMANA)
                        {
                            Program.CastSpell(E, t);
                        }
                        return;
                    }
                }
                if (!Program.None && Player.Mana > RMANA + EMANA)
                {
                    foreach (
                        var enemy in
                        Program.Enemies.Where(enemy => enemy.IsValidTarget(E.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        E.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") &&
                     getCheckBoxItem(farmMenu, "farmE") && Player.Mana > RMANA + EMANA)
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, E.Range);
                var farmPosition = E.GetCircularFarmLocation(minionList, E.Width);

                if (farmPosition.MinionsHit >= getSliderItem(farmMenu, "LCminions"))
                {
                    E.Cast(farmPosition.Position);
                }
            }
        }
示例#5
0
文件: Karthus.cs 项目: geramz/PortAIO
        private void LaneClear(bool ignoreConfig = false)
        {
            var farmQ = ignoreConfig || getBoxItem(farmMenu, "farmQ") == 1 ||
                        getBoxItem(farmMenu, "farmQ") == 2;
            var farmE = ignoreConfig || getCheckBoxItem(farmMenu, "farmE");

            List <Obj_AI_Base> minions;

            bool jungleMobs;

            if (farmQ && _spellQ.IsReady())
            {
                minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, _spellQ.Range, MinionTypes.All,
                                                   MinionTeam.NotAlly);
                minions.RemoveAll(x => x.MaxHealth <= 5); //filter wards the ghetto method lel

                jungleMobs = minions.Any(x => x.Team == GameObjectTeam.Neutral);

                _spellQ.Width = SpellQWidth;
                var farmInfo = _spellQ.GetCircularFarmLocation(minions, _spellQ.Width);

                if (farmInfo.MinionsHit >= 1)
                {
                    CastQ(farmInfo.Position, jungleMobs ? 0 : getSliderItem(farmMenu, "farmQPercent"));
                }
            }

            if (!farmE || !_spellE.IsReady() || IsInPassiveForm())
            {
                return;
            }
            _comboE = false;

            minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, _spellE.Range, MinionTypes.All,
                                               MinionTeam.NotAlly);
            minions.RemoveAll(x => x.MaxHealth <= 5); //filter wards the ghetto method lel

            jungleMobs = minions.Any(x => x.Team == GameObjectTeam.Neutral);

            var enoughMana = GetManaPercent() > getSliderItem(farmMenu, "farmEPercent");

            if (enoughMana &&
                ((minions.Count >= 3 || jungleMobs) &&
                 ObjectManager.Player.Spellbook.GetSpell(SpellSlot.E).ToggleState == 1))
            {
                _spellE.CastOnUnit(ObjectManager.Player);
            }
            else if (!enoughMana ||
                     ((minions.Count <= 2 && !jungleMobs) &&
                      ObjectManager.Player.Spellbook.GetSpell(SpellSlot.E).ToggleState == 2))
            {
                RegulateEState(!enoughMana);
            }
        }
示例#6
0
文件: Utils.cs 项目: Burbb/Portaio
        public static Vector2 GetCircularFarmMinions(this LeagueSharp.Common.Spell spell, int minionCount = 1)
        {
            List <Obj_AI_Base> minions = MinionManager.GetMinions(ObjectManager.Player.Position, spell.Range);

            MinionManager.FarmLocation location = spell.GetCircularFarmLocation(minions, spell.Width * 0.75f);
            if (location.MinionsHit >= minionCount && spell.IsInRange(location.Position.To3D()))
            {
                return(location.Position);
            }

            return(new Vector2(0, 0));
        }
示例#7
0
        private void Clear()
        {
            if (Q.IsReady() && savedQ != null &&
                ((Environment.Minion.countMinionsInrange(savedQ.position, QExplosionRange) >
                  config.Item("qMinHit", true).GetValue <Slider>().Value&& savedQ.deltaT() > 2000) ||
                 MinionManager.GetMinions(
                     ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.NotAlly)
                 .Count(m => HealthPrediction.GetHealthPrediction(m, 600) < 0 || m.Health < 35) > 0))
            {
                Q.Cast();
            }

            float perc = config.Item("minmana", true).GetValue <Slider>().Value / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            if (Q.IsReady() && savedQ == null && SimpleQ && config.Item("useqLC", true).GetValue <bool>())
            {
                MinionManager.FarmLocation bestPositionQ =
                    Q.GetCircularFarmLocation(
                        MinionManager.GetMinions(
                            ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.NotAlly),
                        QExplosionRange);
                if (bestPositionQ.MinionsHit > config.Item("qMinHit", true).GetValue <Slider>().Value)
                {
                    Q.Cast(bestPositionQ.Position);
                    return;
                }
            }

            if (config.Item("useeLC", true).GetValue <bool>() && E.IsReady())
            {
                MinionManager.FarmLocation bestPositionE =
                    E.GetLineFarmLocation(
                        MinionManager.GetMinions(
                            ObjectManager.Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly));

                if (bestPositionE.MinionsHit >= config.Item("eMinHit", true).GetValue <Slider>().Value)
                {
                    E.Cast(bestPositionE.Position);
                }
            }
            if (W.IsReady() && config.Item("usewLC", true).GetValue <bool>() &&
                MinionManager.GetMinions(
                    ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.NotAlly)
                .Count(m => m.Health > 600) > 0)
            {
                W.Cast();
            }
        }
示例#8
0
        private static void Clear()
        {
            var minions = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.LSIsValidTarget(400)).ToList();

            if (minions.Count > 2)
            {
                if (Items.HasItem(3077) && Items.CanUseItem(3077))
                {
                    Items.UseItem(3077);
                }
                if (Items.HasItem(3074) && Items.CanUseItem(3074))
                {
                    Items.UseItem(3074);
                }
            }

            var perc = getSliderItem(laneClearMenu, "minmana") / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }

            if (getCheckBoxItem(laneClearMenu, "usewLC") && W.IsReady() &&
                player.Spellbook.GetSpell(SpellSlot.W).SData.Mana <= player.Mana)
            {
                var minionsForW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range, MinionTypes.All,
                                                           MinionTeam.NotAlly);
                var bestPositionW = W.GetLineFarmLocation(minionsForW);
                if (bestPositionW.Position.IsValid())
                {
                    if (bestPositionW.MinionsHit >= getSliderItem(laneClearMenu, "whitLC"))
                    {
                        W.Cast(bestPositionW.Position, getCheckBoxItem(config, "packets"));
                    }
                }
            }

            if (getCheckBoxItem(laneClearMenu, "useqLC") && Q.IsReady() &&
                player.Spellbook.GetSpell(SpellSlot.Q).SData.Mana <= player.Mana)
            {
                var minionsForQ = MinionManager.GetMinions(
                    ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.NotAlly);
                var bestPositionQ = Q.GetCircularFarmLocation(minionsForQ);
                if (Q.IsReady() && bestPositionQ.MinionsHit > getSliderItem(laneClearMenu, "qhitLC"))
                {
                    Q.Cast(bestPositionQ.Position, getCheckBoxItem(config, "packets"));
                }
            }
        }
示例#9
0
        private void LogicE()
        {
            var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTargetLS())
            {
                if (Program.Combo && Player.Mana > RMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                else if (Program.Farm && OktwCommon.CanHarras() && Config.Item("harrasE", true).GetValue <bool>() && Config.Item("harras" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Program.CastSpell(E, t);
                }
                else
                {
                    var eDmg = OktwCommon.GetKsDamage(t, E);
                    var qDmg = Q.GetDamage(t);
                    if (qDmg + eDmg > t.Health)
                    {
                        if (eDmg > t.Health)
                        {
                            Program.CastSpell(E, t);
                        }
                        else if (Player.Mana > QMANA + EMANA)
                        {
                            Program.CastSpell(E, t);
                        }
                        return;
                    }
                }
                if (!Program.None && Player.Mana > RMANA + EMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(E.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        E.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmE", true).GetValue <bool>() && Player.Mana > RMANA + EMANA)
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, E.Range);
                var farmPosition = E.GetCircularFarmLocation(minionList, E.Width);

                if (farmPosition.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    E.Cast(farmPosition.Position);
                }
            }
        }
示例#10
0
文件: Utils.cs 项目: Burbb/Portaio
        public static IEnumerable <Obj_AI_Base> GetMins(this LeagueSharp.Common.Spell spell, FarmMode farmMode, GameObjectTeam minionTeam,
                                                        MinionType minionType = MinionType.All, MinionGroup minionGroup = MinionGroup.Alone, int minionCount = 1)
        {
            IEnumerable <Obj_AI_Base> list = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.LSIsValidTarget(spell.Range));
            IEnumerable <Obj_AI_Base> mobs;

            if (farmMode == FarmMode.JungleClear)
            {
                mobs = list.Where(w => w.Team == minionTeam);
                if (minionType == MinionType.BigMobs)
                {
                    IEnumerable <Obj_AI_Base> oMob = (from fMobs in mobs
                                                      from fBigBoys in
                                                      new[]
                    {
                        "SRU_Blue", "SRU_Gromp", "SRU_Murkwolf", "SRU_Razorbeak", "SRU_Red",
                        "SRU_Krug", "SRU_Dragon", "SRU_Baron", "Sru_Crab"
                    }
                                                      where fBigBoys == fMobs.BaseSkinName
                                                      select fMobs).AsEnumerable();

                    mobs = oMob;
                }
            }
            else
            {
                mobs = list;
            }

            var objAiBases        = mobs as IList <Obj_AI_Base> ?? mobs.ToList();
            List <Obj_AI_Base> m1 = objAiBases.ToList();

            var locLine = spell.GetLineFarmLocation(m1);

            if (locLine.MinionsHit >= 3 && spell.IsInRange(locLine.Position.To3D()))
            {
                spell.Cast(locLine.Position);
            }

            var locCircular = spell.GetCircularFarmLocation(m1, spell.Width);

            if (locCircular.MinionsHit >= minionCount && spell.IsInRange(locCircular.Position.To3D()))
            {
                spell.Cast(locCircular.Position);
            }

            return(null);
        }
示例#11
0
            public static Vector2 GetCircularFarmLocation(Spell spell, MobTypes mobTypes = MobTypes.All,
                                                          int minMobCount = 1)
            {
                var cVector        = new Vector2();
                var rangedMinionsE = LeagueSharp.Common.MinionManager.GetMinions(ObjectManager.Player.ServerPosition,
                                                                                 spell.Range);

                var minionsE = spell.GetCircularFarmLocation(rangedMinionsE, spell.Range);

                if (minionsE.MinionsHit > minMobCount && spell.IsInRange(minionsE.Position))
                {
                    cVector = minionsE.Position;
                }

                return(cVector);
            }
示例#12
0
        private static void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (t.IsValidTarget())
            {
                var qDmg = OktwCommon.GetKsDamage(t, Q) + BonusDmg(t);

                if (qDmg > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                if (R.IsReady() && t.IsValidTarget(R.Range))
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && getCheckBoxItem(qMenu, "harrasQ") && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Program.CastSpell(Q, t);
                }

                if (Player.Mana > RMANA + QMANA)
                {
                    foreach (
                        var enemy in
                        Program.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") &&
                     getCheckBoxItem(farmMenu, "farmQ"))
            {
                var allMinions = Cache.GetMinions(Player.ServerPosition, Q.Range);
                var farmPos    = Q.GetCircularFarmLocation(allMinions, 150);
                if (farmPos.MinionsHit > getSliderItem(farmMenu, "LCminions"))
                {
                    Q.Cast(farmPos.Position);
                }
            }
        }
示例#13
0
 private void Game_OnDraw(EventArgs args)
 {
     DrawHelper.DrawCircle(config.Item("drawqq", true).GetValue <Circle>(), Q.Range);
     DrawHelper.DrawCircle(config.Item("drawee", true).GetValue <Circle>(), E.Range);
     DrawHelper.DrawCircle(
         config.Item("drawrr", true).GetValue <Circle>(), R.Level >= 1 ? rRanges[R.Level - 1] : rRanges[0]);
     HpBarDamageIndicator.Enabled = config.Item("drawcombo").GetValue <bool>();
     if (!config.Item("bestpospas", true).GetValue <bool>())
     {
         return;
     }
     MinionManager.FarmLocation bestPositionP =
         P.GetCircularFarmLocation(MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly));
     if (bestPositionP.Position.IsValid() && bestPositionP.MinionsHit > 2 && uBlades)
     {
         Drawing.DrawCircle(bestPositionP.Position.To3D(), 150f, Color.Crimson);
     }
 }
示例#14
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTarget())
            {
                var qDmg = OktwCommon.GetKsDamage(t, Q) + BonusDmg(t);

                if (qDmg > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                if (R.IsReady() && t.IsValidTarget(R.Range))
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Config.Item("harrasQ", true).GetValue <bool>() && Player.Mana > RMANA + EMANA + WMANA + EMANA)
                {
                    Program.CastSpell(Q, t);
                }

                if (Player.Mana > RMANA + QMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>())
            {
                var allMinions = Cache.GetMinions(Player.ServerPosition, Q.Range);
                var farmPos    = Q.GetCircularFarmLocation(allMinions, 150);
                if (farmPos.MinionsHit > Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    Q.Cast(farmPos.Position);
                }
            }
        }
示例#15
0
文件: Program.cs 项目: riwalry1/AIO
        //Lane
        private static void Lane()
        {
            if (Player.ManaPercent < lc["laneclearEMinimumMana"].Cast <Slider>().CurrentValue || Player.ManaPercent < lc["laneclearQMinimumMana"].Cast <Slider>().CurrentValue || Player.ManaPercent < lc["laneclearWMinimumMana"].Cast <Slider>().CurrentValue)
            {
                return;
            }

            var allMinions  = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range);
            var allMinionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, 450f);

            if (allMinions.Count > lc["LaneClearEMinMinions"].Cast <Slider>().CurrentValue)
            {
                if (lc["laneclearE"].Cast <CheckBox>().CurrentValue&& E.IsReady())
                {
                    foreach (var minion in allMinions)
                    {
                        if (minion.LSIsValidTarget() && !minion.HasBuff("malzahare") && minion.Health < E.GetDamage(minion))
                        {
                            E.CastOnUnit(minion);
                        }
                    }
                }
            }
            if (lc["laneclearW"].Cast <CheckBox>().CurrentValue&& W.IsReady())
            {
                foreach (var minion in allMinionsW)
                {
                    if (minion.IsValidTarget())
                    {
                        W.Cast(minion);
                    }
                }
            }
            if (lc["laneclearQ"].Cast <CheckBox>().CurrentValue&& Q.IsReady())
            {
                var allMinionsQ = MinionManager.GetMinions(Player.ServerPosition, Q.Range);
                var farmPos     = Q.GetCircularFarmLocation(allMinionsQ, 150);
                if (farmPos.MinionsHit > lc["LaneClearMinions"].Cast <Slider>().CurrentValue)
                {
                    Q.Cast(farmPos.Position);
                }
            }
        }
示例#16
0
        private static void LaneClear()
        {
            var minions = MinionManager.GetMinions(Player.Position, _q.Range, MinionTypes.All, MinionTeam.Enemy,
                                                   MinionOrderTypes.MaxHealth);

            var mana        = GetValue("minmana");
            var useqlasthit = GetBool("qlasthitlane", typeof(bool));
            var usewlasthit = GetBool("wlasthitlane", typeof(bool));
            var qlaneclear  = GetBool("qlaneclear", typeof(bool));
            var wlaneclear  = GetBool("wlaneclear", typeof(bool));
            var minminionsw = GetValue("wlaneclearmin");

            if (Player.ManaPercent < mana)
            {
                return;
            }

            foreach (var minion in minions)
            {
                if (minion.Health <= _q.GetDamage(minion) && useqlasthit && _q.IsReady())
                {
                    _q.Cast(minion);
                }
                if (minion.Health <= _w.GetDamage(minion) && usewlasthit && _w.IsReady() && minion.Distance(Player) <= _w.Range)
                {
                    _w.Cast(minion);
                }

                if (qlaneclear && _q.IsReady())
                {
                    _q.Cast(minion);
                }
            }



            var circularposition = _w.GetCircularFarmLocation(minions);

            if (qlaneclear && circularposition.MinionsHit >= minminionsw && _w.IsReady())
            {
                _w.Cast(circularposition.Position);
            }
        }
示例#17
0
        private static void LaneClear()
        {
            var minions = MinionManager.GetMinions(Player.Position, _q.Range, MinionTypes.All, MinionTeam.Enemy,
                                                   MinionOrderTypes.MaxHealth);

            var mana        = getSliderItem(MenuConfig.clearMenu, "minmana");
            var useqlasthit = getCheckBoxItem(MenuConfig.clearMenu, "qlasthitlane");
            var usewlasthit = getCheckBoxItem(MenuConfig.clearMenu, "wlasthitlane");
            var qlaneclear  = getCheckBoxItem(MenuConfig.clearMenu, "qlaneclear");
            var wlaneclear  = getCheckBoxItem(MenuConfig.clearMenu, "wlaneclear");
            var minminionsw = getSliderItem(MenuConfig.clearMenu, "wlaneclearmin");

            if (Player.ManaPercent < mana)
            {
                return;
            }

            foreach (var minion in minions)
            {
                if (minion.Health <= _q.GetDamage(minion) && useqlasthit && _q.IsReady())
                {
                    _q.Cast(minion);
                }
                if (minion.Health <= _w.GetDamage(minion) && usewlasthit && _w.IsReady() && minion.LSDistance(Player) <= _w.Range)
                {
                    _w.Cast(minion);
                }

                if (qlaneclear && _q.IsReady())
                {
                    _q.Cast(minion);
                }
            }



            var circularposition = _w.GetCircularFarmLocation(minions);

            if (qlaneclear && circularposition.MinionsHit >= minminionsw && _w.IsReady())
            {
                _w.Cast(circularposition.Position);
            }
        }
示例#18
0
文件: Program.cs 项目: geramz/PortAIO
        private static void OnGameUpdate(EventArgs args)
        {
            if (Player.IsDead || Player.LSIsRecalling())
            {
                return;
            }
            var lanemana = getSliderItem(laneClearMenu, "LaneMana");
            var MinionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range + W.Width);
            var MinionsE = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range + E.Width);
            var Wfarmpos = W.GetLineFarmLocation(MinionsW, W.Width);
            var Efarmpos = E.GetCircularFarmLocation(MinionsE, E.Width);

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) && Wfarmpos.MinionsHit >= 3 &&
                getCheckBoxItem(laneClearMenu, "LaneclearW") &&
                Player.ManaPercent >= lanemana)
            {
                W.Cast(Wfarmpos.Position);
            }
            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) && Efarmpos.MinionsHit >= 3 &&
                MinionsE.Count >= 1 && getCheckBoxItem(laneClearMenu, "LaneclearE") &&
                Player.ManaPercent >= lanemana)
            {
                E.Cast(Efarmpos.Position);
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                Combo();
            }
            if (getCheckBoxItem(comboMenu, "KS"))
            {
                KS();
            }
            if (getCheckBoxItem(comboMenu, "ZhoUlt"))
            {
                ZhoUlt();
            }
            if (getKeyBindItem(miscMenu, "AutoHarras"))
            {
                AutoHarras();
            }
        }
示例#19
0
        private void Game_OnDraw(EventArgs args)
        {
            DrawHelper.DrawCircle(getCheckBoxItem(menuD, "drawqq"), Q.Range, Color.FromArgb(180, 100, 146, 166));
            DrawHelper.DrawCircle(getCheckBoxItem(menuD, "drawee"), E.Range, Color.FromArgb(180, 100, 146, 166));
            DrawHelper.DrawCircle(getCheckBoxItem(menuD, "drawrr"), R.Level >= 1 ? rRanges[R.Level - 1] : rRanges[0],
                                  Color.FromArgb(180, 100, 146, 166));

            if (!getCheckBoxItem(menuD, "bestpospas"))
            {
                return;
            }

            var bestPositionP =
                P.GetCircularFarmLocation(MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly));

            if (bestPositionP.Position.IsValid() && bestPositionP.MinionsHit > 2 && uBlades)
            {
                Drawing.DrawCircle(bestPositionP.Position.To3D(), 150f, Color.Crimson);
            }
        }
示例#20
0
        private void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTargetLS())
            {
                if (EloBuddy.Player.Instance.IsInAutoAttackRange(t) && t.HasBuff("quinnw"))
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA && Config.Item("harrasQ", true).GetValue <bool>() && Config.Item("harras" + t.ChampionName).GetValue <bool>() && OktwCommon.CanHarras())
                {
                    Program.CastSpell(Q, t);
                }
                else if (OktwCommon.GetKsDamage(t, Q) > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                if (!Program.None && Player.Mana > RMANA + QMANA + EMANA)
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>() && Player.Mana > RMANA + QMANA)
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, Q.Range - 150);
                var farmPosition = Q.GetCircularFarmLocation(minionList, 150);
                if (farmPosition.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    Q.Cast(farmPosition.Position);
                }
            }
        }
示例#21
0
文件: Quinn.cs 项目: Burbb/Portaio
        private static void LogicQ()
        {
            var t = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

            if (t.LSIsValidTarget())
            {
                if (SebbyLib.Orbwalking.InAutoAttackRange(t) && t.HasBuff("quinnw"))
                {
                    return;
                }
                if (Program.Combo && Player.Mana > RMANA + QMANA)
                {
                    Program.CastSpell(Q, t);
                }
                else if (Program.Farm && Player.Mana > RMANA + EMANA + QMANA + WMANA && getCheckBoxItem(qMenu, "harrasQ") && getCheckBoxItem(harassMenu, "harras" + t.ChampionName) && OktwCommon.CanHarras())
                {
                    Program.CastSpell(Q, t);
                }
                else if (OktwCommon.GetKsDamage(t, Q) > t.Health)
                {
                    Program.CastSpell(Q, t);
                }

                if (!Program.None && Player.Mana > RMANA + QMANA + EMANA)
                {
                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        Q.Cast(enemy);
                    }
                }
            }
            else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmQ") && Player.Mana > RMANA + QMANA)
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, Q.Range - 150);
                var farmPosition = Q.GetCircularFarmLocation(minionList, 150);
                if (farmPosition.MinionsHit >= getSliderItem(farmMenu, "LCminions"))
                {
                    Q.Cast(farmPosition.Position);
                }
            }
        }
示例#22
0
        private static void LogicE()
        {
            var t = TargetSelector.GetTarget(E.Range, DamageType.Magical);

            if (t.LSIsValidTarget())
            {
                var eDmg = OktwCommon.GetKsDamage(t, E);
                if (eDmg > t.Health)
                {
                    Program.CastSpell(E, t);
                }
                else if (eDmg + Q.GetDamage(t) > t.Health && Player.Mana > QMANA + EMANA + RMANA)
                {
                    Program.CastSpell(E, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA + QMANA + EMANA)
                {
                    if (!SebbyLib.Orbwalking.InAutoAttackRange(t) || Player.CountEnemiesInRange(300) > 0 || t.CountEnemiesInRange(250) > 1)
                    {
                        Program.CastSpell(E, t);
                    }
                    else
                    {
                        foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(E.Range) && !OktwCommon.CanMove(enemy)))
                        {
                            E.Cast(enemy, true, true);
                        }
                    }
                }
            }
            if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmE"))
            {
                var minions = Cache.GetMinions(Player.ServerPosition, E.Range);
                var farmPos = E.GetCircularFarmLocation(minions, E.Width);
                if (farmPos.MinionsHit >= getSliderItem(farmMenu, "LCminions"))
                {
                    E.Cast(farmPos.Position);
                }
            }
        }
示例#23
0
        private void LogicE()
        {
            var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

            if (t.IsValidTargetLS())
            {
                var eDmg = OktwCommon.GetKsDamage(t, E);
                if (eDmg > t.Health)
                {
                    Program.CastSpell(E, t);
                }
                else if (eDmg + Q.GetDamage(t) > t.Health && Player.Mana > QMANA + EMANA + RMANA)
                {
                    Program.CastSpell(E, t);
                }
                else if (Program.Combo && Player.Mana > RMANA + WMANA + QMANA + EMANA)
                {
                    if (!EloBuddy.Player.Instance.IsInAutoAttackRange(t) || Player.CountEnemiesInRange(300) > 0 || t.CountEnemiesInRange(250) > 1)
                    {
                        Program.CastSpell(E, t);
                    }
                    else
                    {
                        foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(E.Range) && !OktwCommon.CanMove(enemy)))
                        {
                            E.Cast(enemy, true, true);
                        }
                    }
                }
            }
            if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmE", true).GetValue <bool>())
            {
                var minions = Cache.GetMinions(Player.ServerPosition, E.Range);
                var farmPos = E.GetCircularFarmLocation(minions, E.Width);
                if (farmPos.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    E.Cast(farmPos.Position);
                }
            }
        }
示例#24
0
        private void Farm()
        {
            if (Program.LaneClear && E.IsReady() && Config.Item("farmE", true).GetValue <bool>())
            {
                var mobs = Cache.GetMinions(Player.ServerPosition, E.Range, MinionTeam.Neutral);
                if (mobs.Count > 0 && Player.Mana > RMANA + EMANA + QMANA && OktwCommon.GetBuffCount(mobs[0], "varuswdebuff") == 3)
                {
                    E.Cast(mobs[0]);
                    return;
                }

                if (Player.ManaPercentage() > Config.Item("Mana", true).GetValue <Slider>().Value)
                {
                    var allMinionsE = Cache.GetMinions(Player.ServerPosition, E.Range);
                    var Efarm       = Q.GetCircularFarmLocation(allMinionsE, E.Width);
                    if (Efarm.MinionsHit > 3)
                    {
                        E.Cast(Efarm.Position);
                        return;
                    }
                }
            }
        }
示例#25
0
        private void Farm()
        {
            if (Program.LaneClear && E.IsReady() && getCheckBoxItem(farmMenu, "farmE"))
            {
                var mobs = Cache.GetMinions(Player.ServerPosition, E.Range, MinionTeam.Neutral);
                if (mobs.Count > 0 && Player.Mana > RMANA + EMANA + QMANA && OktwCommon.GetBuffCount(mobs[0], "varuswdebuff") == 3)
                {
                    E.Cast(mobs[0]);
                    return;
                }

                if (Player.ManaPercent > getSliderItem(farmMenu, "Mana"))
                {
                    var allMinionsE = Cache.GetMinions(Player.ServerPosition, E.Range);
                    var Efarm       = Q.GetCircularFarmLocation(allMinionsE, E.Width);
                    if (Efarm.MinionsHit > 3)
                    {
                        E.Cast(Efarm.Position);
                        return;
                    }
                }
            }
        }
示例#26
0
        protected void CastBasicFarm(Spell spell)
        {
            if(!spell.IsReady())
				return;
            var minion = MinionManager.GetMinions(Player.ServerPosition, spell.Range, MinionTypes.All, MinionTeam.NotAlly);

            if (minion.Count == 0)
                return;

            if (spell.Type == SkillshotType.SkillshotCircle)
            {
                spell.UpdateSourcePosition();

                var predPosition = spell.GetCircularFarmLocation(minion);

                if (predPosition.MinionsHit >= 2)
                {
                    spell.Cast(predPosition.Position, Player.ChampionName == "Kartus" || packets());
                }
            }
            else if (spell.Type == SkillshotType.SkillshotLine)
            {
                spell.UpdateSourcePosition();

                var predPosition = spell.GetLineFarmLocation(minion);

                if(predPosition.MinionsHit >= 2)
                    spell.Cast(predPosition.Position, packets());
            }
        }
示例#27
0
        public static void Farm(Spell spell, int minHit = 2, float overrideWidth = -1f)
        {
            if (!spell.IsReady())
            {
                return;
            }
            var minions =
                MinionManager.GetMinions(
                    ObjectManager.Player.ServerPosition, spell.Range, MinionTypes.All, MinionTeam.NotAlly,
                    MinionOrderTypes.MaxHealth).ToList();

            if (minions.Count == 0)
            {
                return;
            }

            if (spell.Type == SkillshotType.SkillshotCircle)
            {
                spell.UpdateSourcePosition();

                var prediction = spell.GetCircularFarmLocation(minions, overrideWidth);
                if (prediction.MinionsHit >= minHit)
                {
                    spell.Cast(prediction.Position);
                }
            }
            else if (spell.Type == SkillshotType.SkillshotLine)
            {
                spell.UpdateSourcePosition();

                var prediction = spell.GetLineFarmLocation(minions, overrideWidth);
                if (prediction.MinionsHit >= minHit)
                {
                    spell.Cast(prediction.Position);
                }
            }
        }
示例#28
0
        private static void Laneclear()
        {
            var allMinionsQ = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, _q.Range, MinionTypes.All);
            var allMinionsW = MinionManager.GetMinions(
                ObjectManager.Player.ServerPosition,
                _w.Range + _w.Width / 2,
                MinionTypes.All);
            var rangedMinionsW = MinionManager.GetMinions(
                ObjectManager.Player.ServerPosition,
                _w.Range + _w.Width + 50,
                MinionTypes.Ranged);
            var minionhitq = getSliderItem(clearMenu, "minminions");
            var minionhitw = getSliderItem(clearMenu, "minminionsw");
            var useQl      = getCheckBoxItem(clearMenu, "UseQL");
            var useWl      = getCheckBoxItem(clearMenu, "UseWL");


            if (_q.IsReady() && useQl)
            {
                var fl2 = _q.GetCircularFarmLocation(allMinionsQ, 200);

                if (fl2.MinionsHit >= minionhitq)
                {
                    _q.Cast(fl2.Position);
                }
                else
                {
                    foreach (var minion in allMinionsQ)
                    {
                        if (Orbwalking.InAutoAttackRange(minion) &&
                            minion.Health < 0.75 * _player.GetSpellDamage(minion, SpellSlot.Q))
                        {
                            _q.Cast(minion);
                        }
                        else if (!Orbwalking.InAutoAttackRange(minion) &&
                                 minion.Health < 0.75 * _player.GetSpellDamage(minion, SpellSlot.Q))
                        {
                            _q.Cast(minion);
                        }
                    }
                }
            }

            if (_w.IsReady() && useWl)
            {
                var fl1 = _w.GetCircularFarmLocation(rangedMinionsW, _w.Width);

                if (fl1.MinionsHit >= minionhitw)
                {
                    _w.Cast(fl1.Position);
                }
                else
                {
                    foreach (var minion in allMinionsW)
                    {
                        if (!Orbwalking.InAutoAttackRange(minion) &&
                            minion.Health < 0.75 * _player.GetSpellDamage(minion, SpellSlot.W))
                        {
                            _w.Cast(minion);
                        }
                    }
                }
            }
        }
示例#29
0
        private void LogicE()
        {
            if (Player.HasBuff("LuxLightStrikeKugel") && !Program.None)
            {
                int eBig = Epos.CountEnemiesInRange(350);
                if (Config.Item("autoEslow", true).GetValue <bool>())
                {
                    int detonate = eBig - Epos.CountEnemiesInRange(160);

                    if (detonate > 0 || eBig > 1)
                    {
                        E.Cast();
                    }
                }
                else if (Config.Item("autoEdet", true).GetValue <bool>())
                {
                    if (eBig > 0)
                    {
                        E.Cast();
                    }
                }
                else
                {
                    E.Cast();
                }
            }
            else
            {
                var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
                if (t.IsValidTargetLS())
                {
                    if (!Config.Item("autoEcc", true).GetValue <bool>())
                    {
                        if (Program.Combo && Player.Mana > RMANA + EMANA)
                        {
                            Program.CastSpell(E, t);
                        }
                        else if (Program.Farm && OktwCommon.CanHarras() && Config.Item("harrasE", true).GetValue <bool>() && Player.Mana > RMANA + EMANA + EMANA + RMANA)
                        {
                            Program.CastSpell(E, t);
                        }
                        else if (OktwCommon.GetKsDamage(t, E) > t.Health)
                        {
                            Program.CastSpell(E, t);
                        }
                    }

                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(E.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        E.Cast(enemy, true);
                    }
                }
                else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmE", true).GetValue <bool>() && Player.Mana > RMANA + WMANA)
                {
                    var minionList   = Cache.GetMinions(Player.ServerPosition, E.Range);
                    var farmPosition = E.GetCircularFarmLocation(minionList, E.Width);

                    if (farmPosition.MinionsHit > Config.Item("LCminions", true).GetValue <Slider>().Value)
                    {
                        E.Cast(farmPosition.Position);
                    }
                }
            }
        }
示例#30
0
 private static void ConeFarm(Spell spell, List<Obj_AI_Base> minions, int min, float overrideWidth = -1f)
 {
     var spellWidth = overrideWidth > 0 ? overrideWidth : spell.Width;
     var pred = spell.GetCircularFarmLocation(minions, spellWidth);
     if (pred.MinionsHit >= min)
     {
         spell.Cast(pred.Position);
     }
 }
示例#31
0
        private static void LogicE()
        {
            if (Player.HasBuff("LuxLightStrikeKugel") && !Program.None)
            {
                int eBig = Epos.CountEnemiesInRange(350);
                if (getCheckBoxItem(eMenu, "autoEslow"))
                {
                    int detonate = eBig - Epos.CountEnemiesInRange(160);

                    if (detonate > 0 || eBig > 1)
                    {
                        E.Cast();
                    }
                }
                else if (getCheckBoxItem(eMenu, "autoEdet"))
                {
                    if (eBig > 0)
                    {
                        E.Cast();
                    }
                }
                else
                {
                    E.Cast();
                }
            }
            else
            {
                var t = TargetSelector.GetTarget(E.Range, DamageType.Magical);
                if (t.LSIsValidTarget())
                {
                    if (!getCheckBoxItem(eMenu, "autoEcc"))
                    {
                        if (Program.Combo && Player.Mana > RMANA + EMANA)
                        {
                            Program.CastSpell(E, t);
                        }
                        else if (Program.Farm && OktwCommon.CanHarras() && getCheckBoxItem(eMenu, "harrasE") && Player.Mana > RMANA + EMANA + EMANA + RMANA)
                        {
                            Program.CastSpell(E, t);
                        }
                        else if (OktwCommon.GetKsDamage(t, E) > t.Health)
                        {
                            Program.CastSpell(E, t);
                        }
                    }

                    foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(E.Range) && !OktwCommon.CanMove(enemy)))
                    {
                        E.Cast(enemy, true);
                    }
                }
                else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmE") && Player.Mana > RMANA + WMANA)
                {
                    var minionList   = Cache.GetMinions(Player.ServerPosition, E.Range);
                    var farmPosition = E.GetCircularFarmLocation(minionList, E.Width);

                    if (farmPosition.MinionsHit > getSliderItem(farmMenu, "LCminions"))
                    {
                        E.Cast(farmPosition.Position);
                    }
                }
            }
        }
示例#32
0
        private static void Farm()
        {
            if (getSliderItem(farmMenu, "ManaSliderFarm") >
                ObjectManager.Player.Mana / ObjectManager.Player.MaxMana * 100)
            {
                return;
            }

            var rangedMinions = MinionManager.GetMinions(
                ObjectManager.Player.ServerPosition, Q2.Range, MinionTypes.Ranged);
            var allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q2.Range);

            var useQi = getCheckBoxItem(farmMenu, "UseQFarm");
            var useEi = getCheckBoxItem(farmMenu, "UseEFarm");
            var useQ  = useQi;
            var useE  = useEi;

            if (Q1.IsReady() && useQ)
            {
                var rangedLocation = Q2.GetCircularFarmLocation(rangedMinions);
                var location       = Q2.GetCircularFarmLocation(allMinions);

                var bLocation = location.MinionsHit > rangedLocation.MinionsHit + 1 ? location : rangedLocation;

                if (bLocation.MinionsHit > 0)
                {
                    Q2.Cast(bLocation.Position.To3D());
                }
            }

            if (E.IsReady() && useE)
            {
                var rangedLocation = E.GetCircularFarmLocation(rangedMinions, E.Width * 2);
                var location       = E.GetCircularFarmLocation(allMinions, E.Width * 2);

                var bLocation = location.MinionsHit > rangedLocation.MinionsHit + 1 ? location : rangedLocation;

                if (bLocation.MinionsHit > 2)
                {
                    E.Cast(bLocation.Position.To3D());
                }
            }

            /*
             * {
             *  if (useQ && Q1.IsReady())
             *  {
             *      foreach (var minion in allMinions)
             *      {
             *          if (!Orbwalking.InAutoAttackRange(minion))
             *          {
             *              var Qdamage = ObjectManager.Player.GetSpellDamage(minion, SpellSlot.Q) * 0.75;
             *
             *              if (Qdamage > Q1.GetHealthPrediction(minion))
             *              {
             *                  Q2.Cast(minion);
             *              }
             *          }
             *      }
             *  }
             *
             *  if (E.IsReady() && useE)
             *  {
             *      var rangedLocation = E.GetCircularFarmLocation(rangedMinions, E.Width * 2);
             *      var location = E.GetCircularFarmLocation(allMinions, E.Width * 2);
             *
             *      var bLocation = (location.MinionsHit > rangedLocation.MinionsHit + 1) ? location : rangedLocation;
             *
             *      if (bLocation.MinionsHit > 2)
             *      {
             *          E.Cast(bLocation.Position.To3D());
             *      }
             *  }
             * }
             */
        }
示例#33
0
        private static void Laneclear()
        {
            var Qdelay         = Environment.TickCount - Qcast;
            var Rdelay         = Environment.TickCount - Rcast;
            var rangedMinionsQ = MinionManager.GetMinions(
                ObjectManager.Player.ServerPosition,
                _q.Range + _q.Width + 30,
                MinionTypes.Ranged);
            var allMinionsQ = MinionManager.GetMinions(
                ObjectManager.Player.ServerPosition,
                _q.Range + _q.Width + 30,
                MinionTypes.All);
            var allMinionsE    = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, _e.Range, MinionTypes.All);
            var allMinionsR    = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, _r.Range, MinionTypes.All);
            var rangedMinionsR = MinionManager.GetMinions(
                ObjectManager.Player.ServerPosition,
                _r.Range + _r.Width,
                MinionTypes.Ranged);
            var useQl = getCheckBoxItem(clearMenu, "UseQL");
            var useEl = getCheckBoxItem(clearMenu, "UseEL");
            var useRl = getCheckBoxItem(clearMenu, "UseRL");
            var rlimL = getSliderItem(clearMenu, "RlimL");

            if (_q.IsReady() && useQl && Rdelay >= getSliderItem(miscMenu, "delaycombo"))
            {
                var fl1 = _q.GetCircularFarmLocation(rangedMinionsQ, _q.Width);
                var fl2 = _q.GetCircularFarmLocation(allMinionsQ, _q.Width);

                if (fl1.MinionsHit >= 3)
                {
                    _q.Cast(fl1.Position);
                    Qcast = Environment.TickCount;
                }
                else if (fl2.MinionsHit >= 2 || allMinionsQ.Count == 1)
                {
                    _q.Cast(fl2.Position);
                    Qcast = Environment.TickCount;
                }
                else
                {
                    foreach (var minion in allMinionsQ)
                    {
                        if (!Orbwalking.InAutoAttackRange(minion) &&
                            minion.Health < 0.75 * _player.GetSpellDamage(minion, SpellSlot.Q))
                        {
                            _q.Cast(minion);
                        }
                    }
                }
                Qcast = Environment.TickCount;
            }

            if (_e.IsReady() && useEl)
            {
                var fl2 = _w.GetLineFarmLocation(allMinionsE, _e.Width);

                if (fl2.MinionsHit >= 2 || allMinionsE.Count == 1)
                {
                    _e.Cast(fl2.Position);
                }
                else
                {
                    foreach (var minion in allMinionsE)
                    {
                        if (!Orbwalking.InAutoAttackRange(minion) &&
                            minion.Health < 0.75 * _player.GetSpellDamage(minion, SpellSlot.E))
                        {
                            _e.Cast(minion);
                        }
                    }
                }
            }

            if (_r.IsReady() && useRl && rlimL < UltiStucks() && allMinionsR.Count > 3 && Qdelay >= getSliderItem(miscMenu, "delaycombo"))
            {
                var fl1 = _w.GetLineFarmLocation(rangedMinionsR, _r.Width);
                var fl2 = _w.GetLineFarmLocation(allMinionsR, _r.Width);

                if (fl1.MinionsHit >= 3)
                {
                    _r.Cast(fl1.Position);
                    Rcast = Environment.TickCount;
                }
                else if (fl2.MinionsHit >= 2 || allMinionsR.Count == 1)
                {
                    _r.Cast(fl2.Position);
                    Rcast = Environment.TickCount;
                }
                else
                {
                    foreach (var minion in allMinionsR)
                    {
                        if (!Orbwalking.InAutoAttackRange(minion) &&
                            minion.Health < 0.75 * _player.GetSpellDamage(minion, SpellSlot.R))
                        {
                            _r.Cast(minion);
                        }
                    }
                }
                Rcast = Environment.TickCount;
            }
        }
示例#34
0
            public static Vector2 GetCircularFarmLocation(Spell spell, MobTypes mobTypes = MobTypes.All,
                int minMobCount = 1)
            {
                var cVector = new Vector2();
                var rangedMinionsE = LeagueSharp.Common.MinionManager.GetMinions(ObjectManager.Player.ServerPosition,
                    spell.Range);

                var minionsE = spell.GetCircularFarmLocation(rangedMinionsE, spell.Range);
                if (minionsE.MinionsHit > minMobCount && spell.IsInRange(minionsE.Position))
                {
                    cVector = minionsE.Position;
                }

                return cVector;
            }
示例#35
0
文件: Jhin.cs 项目: yashine59fr/Port
        private void LogicE()
        {
            if (Config.Item("autoE", true).GetValue <bool>())
            {
                var trapPos = OktwCommon.GetTrapPos(E.Range);
                if (!trapPos.IsZero)
                {
                    E.Cast(trapPos);
                }

                foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTargetLS(E.Range) && !OktwCommon.CanMove(enemy)))
                {
                    E.Cast(enemy);
                }
            }

            var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            if (t.IsValidTargetLS() && Config.Item("EmodeCombo", true).GetValue <StringList>().SelectedIndex != 2)
            {
                if (Program.Combo && !Player.Spellbook.IsAutoAttacking)
                {
                    if (Config.Item("EmodeCombo", true).GetValue <StringList>().SelectedIndex == 1)
                    {
                        if (E.GetPrediction(t).CastPosition.Distance(t.Position) > 100)
                        {
                            if (Player.Position.Distance(t.ServerPosition) > Player.Position.Distance(t.Position))
                            {
                                if (t.Position.Distance(Player.ServerPosition) < t.Position.Distance(Player.Position))
                                {
                                    Program.CastSpell(E, t);
                                }
                            }
                            else
                            {
                                if (t.Position.Distance(Player.ServerPosition) > t.Position.Distance(Player.Position))
                                {
                                    Program.CastSpell(E, t);
                                }
                            }
                        }
                    }
                    else
                    {
                        Program.CastSpell(E, t);
                    }
                }

                E.CastIfWillHit(t, Config.Item("Eaoe", true).GetValue <Slider>().Value);
            }
            else if (Program.LaneClear && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmE", true).GetValue <bool>())
            {
                var minionList   = Cache.GetMinions(Player.ServerPosition, E.Range);
                var farmPosition = E.GetCircularFarmLocation(minionList, E.Width);

                if (farmPosition.MinionsHit >= Config.Item("LCminions", true).GetValue <Slider>().Value)
                {
                    E.Cast(farmPosition.Position);
                }
            }
        }