Esempio n. 1
0
        public override void ExecuteLaneClear()
        {
            int laneQValue = Program.laneclear["Lane.UseQ"].Cast <ComboBox>().CurrentValue;

            if (laneQValue != 0 && Q.IsReady())
            {
                Vector2 minions = Q.GetCircularFarmMinions(laneQValue);
                if (minions != Vector2.Zero)
                {
                    Q.Cast(minions);
                }
            }

            int laneEValue = Program.laneclear["Lane.UseE"].Cast <ComboBox>().CurrentValue;

            if (laneEValue != 0 && E.IsReady())
            {
                int minCount = E.GetMinionCountsInRange();
                if (minCount >= laneEValue)
                {
                    E.Cast();
                }
            }

            int laneRValue = Program.laneclear["Lane.UseR"].Cast <ComboBox>().CurrentValue;

            if (laneRValue != 0 && ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Ammo >= Program.laneclear["Lane.UseR.Lim"].Cast <Slider>().CurrentValue)
            {
                int rocketType = Program.laneclear["Lane.UseR.Bomb"].Cast <ComboBox>().CurrentValue;
                if (R1.IsReady() && (rocketType == 0 || rocketType == 2) && !HasBigRocket())
                {
                    Vector2 minions = R1.GetCircularFarmMinions(laneRValue);
                    if (minions != Vector2.Zero)
                    {
                        R1.Cast(minions);
                    }
                }
                if (R2.IsReady() && (rocketType == 1 || rocketType == 2) && HasBigRocket())
                {
                    Vector2 minions = R2.GetCircularFarmMinions(laneRValue);
                    if (minions != Vector2.Zero)
                    {
                        R2.Cast(minions);
                    }
                }
            }
        }
Esempio n. 2
0
        public override void ExecuteLaneClear()
        {
            int laneQValue = GetValue <StringList>("Lane.UseQ").SelectedIndex;

            if (laneQValue != 0 && Q.IsReady())
            {
                Vector2 minions = Q.GetCircularFarmMinions(laneQValue);
                if (minions != Vector2.Zero)
                {
                    Q.Cast(minions);
                }
            }

            int laneEValue = GetValue <StringList>("Lane.UseE").SelectedIndex;

            if (laneEValue != 0 && E.IsReady())
            {
                int minCount = E.GetMinionCountsInRange();
                if (minCount >= laneEValue)
                {
                    E.Cast();
                }
            }

            int laneRValue = GetValue <StringList>("Lane.UseR").SelectedIndex;

            if (laneRValue != 0 && ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Ammo >= GetValue <Slider>("Lane.UseR.Lim").Value)
            {
                int rocketType = GetValue <StringList>("Lane.UseR.Bomb").SelectedIndex;
                if (R1.IsReady() && (rocketType == 0 || rocketType == 2) && !HasBigRocket())
                {
                    Vector2 minions = R1.GetCircularFarmMinions(laneRValue);
                    if (minions != Vector2.Zero)
                    {
                        R1.Cast(minions);
                    }
                }
                if (R2.IsReady() && (rocketType == 1 || rocketType == 2) && HasBigRocket())
                {
                    Vector2 minions = R2.GetCircularFarmMinions(laneRValue);
                    if (minions != Vector2.Zero)
                    {
                        R2.Cast(minions);
                    }
                }
            }
        }
Esempio n. 3
0
        private static void Combo()
        {
            var useQCombo = Config.Item("QuseCombo").GetValue <bool>();
            var useECombo = Config.Item("EuseCombo").GetValue <bool>();
            var useRCombo = Config.Item("RuseCombo").GetValue <bool>();

            if (Q.IsReady() && useQCombo)
            {
                var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                if (t == null)
                {
                    return;
                }
                Q.CastIfHitchanceEquals(t, qHitChance);
            }

            if (E.IsReady() && useECombo)
            {
                var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
                if (t == null)
                {
                    return;
                }
                E.Cast(t);
            }
            var bigMiss = isBigMissle();

            if (bigMiss ? R2.IsReady() : R1.IsReady() && useRCombo)
            {
                var t = TargetSelector.GetTarget(bigMiss ? R2.Range : R1.Range, TargetSelector.DamageType.Magical);
                if (t == null)
                {
                    return;
                }
                if (!bigMiss)
                {
                    R1.CastIfHitchanceEquals(t, rHitChance);
                }
                else
                {
                    R2.CastIfHitchanceEquals(t, rHitChance);
                }
            }
        }
Esempio n. 4
0
        private static void afterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (_Ob.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var useQCombo = Config.Item("QuseCombo").GetValue <bool>();
                var useRCombo = Config.Item("RuseCombo").GetValue <bool>();

                if (Q.IsReady() && useQCombo)
                {
                    var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                    if (t == null)
                    {
                        return;
                    }
                    Q.Cast(t);
                }

                var bigMiss = isBigMissle();
                if (bigMiss ? R2.IsReady() : R1.IsReady() && useRCombo)
                {
                    var t = TargetSelector.GetTarget(bigMiss ? R2.Range : R1.Range, TargetSelector.DamageType.Magical);
                    if (t == null)
                    {
                        return;
                    }
                    if (!bigMiss)
                    {
                        R1.Cast(t, false, true);
                    }
                    else
                    {
                        R2.Cast(t, false, true);
                    }
                }
            }
        }
Esempio n. 5
0
        private static void Game_OnTick(EventArgs args)
        {
            if (Menu.CheckBox(Menu.Principal, "Skin"))
            {
                var id = Menu.Slider(Menu.Principal, "SkinID");
                if (Player.Instance.SkinId != id)
                {
                    Player.Instance.SetSkinId(id);
                }
            }

            if (Ignite.Slot != SpellSlot.Unknown)
            {
                if (Ignite.IsReady() && Menu.CheckBox(Menu.Item, "Ignite"))
                {
                    foreach (var Hero in EntityManager.Heroes.Enemies.Where(x => x.IsValidTarget(Ignite.Range)).OrderBy(x => x.Health))
                    {
                        if (Hero.Health <= Player.Instance.GetSummonerSpellDamage(Hero, DamageLibrary.SummonerSpells.Ignite))
                        {
                            Ignite.Cast(Hero);
                        }
                    }
                }
            }

            if (!W.IsReady())
            {
                TTs = false;
            }

            if (TTs)
            {
                foreach (var Hero in EntityManager.Heroes.Enemies.Where(X => X.Position.Distance(Player.Instance.Position) <= Player.Instance.GetAutoAttackRange()).OrderBy(x => x.Health))
                {
                    TT = Hero;
                }

                foreach (var Minions in EntityManager.MinionsAndMonsters.EnemyMinions.Where(x => x.Position.Distance(Player.Instance.Position) <= Player.Instance.GetAutoAttackRange()).OrderBy(x => x.Health))
                {
                    TT = Minions;
                }

                foreach (var Mob in EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(x => x.Position.Distance(Player.Instance.Position) <= Player.Instance.GetAutoAttackRange()).OrderBy(x => x.Health))
                {
                    TT = Mob;
                }

                if (TT != null)
                {
                    Core.DelayAction(() => Player.IssueOrder(GameObjectOrder.AttackUnit, TT), 50);
                }
            }

            if (Jungle())
            {
                var Monsters = EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(X => X.IsValidTarget(E.Range + Player.Instance.GetAutoAttackRange())).OrderBy(x => x.MaxHealth).FirstOrDefault();

                if (Monsters != null)
                {
                    if (W.IsReady() && Menu.CheckBox(Menu.W, "Jungle"))
                    {
                        if (Monsters.IsValidTarget(RealW()))
                        {
                            W.Cast();
                        }
                    }

                    if (E.IsReady() && Menu.CheckBox(Menu.E, "Jungle"))
                    {
                        if (Monsters.IsValidTarget(E.Range))
                        {
                            E.Cast(Monsters.Position);
                        }
                    }
                }
            }

            if (Lane())
            {
                var Minions = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Instance.Position, RealW());
                var Circle  = EntityManager.MinionsAndMonsters.GetCircularFarmLocation(Minions, 200, RealW());

                if (Q.IsReady() && CountQ == 2)
                {
                    Q.Cast(Circle.CastPosition);
                }

                if (Menu.CheckBox(Menu.W, "Lane"))
                {
                    if (Circle.HitNumber >= Menu.Slider(Menu.W, "LaneMin") && W.IsReady())
                    {
                        W.Cast();
                    }
                }
            }

            if (Combo() && Target != null)
            {
                if (Menu.CheckBox(Menu.Item, "Youmuu"))
                {
                    if (Target.IsValidTarget(E.Range))
                    {
                        Use();
                    }
                }

                if (R.IsReady() && Menu.CheckBox(Menu.R, "UseR1") && R.ToggleState == 1)
                {
                    if (!IsActive && CheckR1(Target))
                    {
                        if (Target.IsValidTarget(RealW(), true) && W.IsReady())
                        {
                            Reset();
                            W.Cast();
                            R.Cast();
                        }
                        else if (Target.IsValidTarget(E.Range + Player.Instance.GetAutoAttackRange(), true) && E.IsReady())
                        {
                            E.Cast(Target.Position);
                            R.Cast();
                        }
                        else if (Target.IsValidTarget(RealQ(), true) && Q.IsReady())
                        {
                            Q.Cast(Target.Position);
                            R.Cast();
                        }
                        else
                        {
                            R.Cast();
                        }
                    }
                }

                if (R2.IsReady() && R.ToggleState >= 2)
                {
                    if (IsActive && CheckR2(Target))
                    {
                        var Pred = R2.GetPrediction(Target);

                        if (Pred.HitChance >= HitChance.High)
                        {
                            if (Target.IsValidTarget(R2.Range))
                            {
                                R2.Cast(Pred.UnitPosition);
                            }
                        }
                    }
                }

                if (Q.IsReady() && CountQ == 2)
                {
                    if (Target.IsValidTarget(RealQ(), true) && !Target.IsValidTarget(Player.Instance.GetAutoAttackRange()))
                    {
                        Q.Cast(Target.Position);
                    }

                    if (Target.IsValidTarget(RealW(), true) && W.IsReady())
                    {
                        Reset();
                        W.Cast();
                    }
                }

                if (E.IsReady())
                {
                    if (Target.IsValidTarget(E.Range + Player.Instance.GetAutoAttackRange(), true))
                    {
                        if (!Target.IsValidTarget(Player.Instance.GetAutoAttackRange()))
                        {
                            E.Cast(Target.Position);
                        }
                    }

                    if (W.IsReady() && Target.IsValidTarget(RealW()))
                    {
                        Reset();
                        W.Cast();
                    }
                }

                if (W.IsReady() && Target.IsValidTarget(RealW()))
                {
                    Reset();
                    W.Cast();
                }
            }

            if (Menu.Keybind(Menu.Misc, "Burst") || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                if (Target.IsValidTarget(E.Range + Flash.Range))
                {
                    var Pred = R2.GetPrediction(Target);
                    E.Cast(Player.Instance.Position.Extend(Target.Position, E.Range).To3D());

                    if (!IsActive)
                    {
                        R.Cast();
                    }

                    if (Flash.IsReady() && Target.Position.Distance(Player.Instance.Position) <= 650)
                    {
                        Flash.Cast(Player.Instance.Position.Extend(Target.Position, Flash.Range).To3D());
                    }

                    if (W.IsReady() && Target.IsValidTarget(RealW()))
                    {
                        Reset();
                        W.Cast();
                    }

                    if (Menu.CheckBox(Menu.Item, "Youmuu"))
                    {
                        if (Target.IsValidTarget(E.Range))
                        {
                            Use();
                        }
                    }

                    if (Q.IsReady())
                    {
                        Q.Cast(Target.Position);
                    }

                    if (IsActive)
                    {
                        R2.Cast(Target.Position);
                    }
                }
            }

            if (Flee())
            {
                if (Menu.CheckBox(Menu.Q, "Flee") && Q.IsReady())
                {
                    Q.Cast((Game.CursorPos.Distance(Player.Instance) > Q.Range ? Player.Instance.Position.Extend(Game.CursorPos, Q.Range - 1).To3D() : Game.CursorPos));
                }

                if (Menu.CheckBox(Menu.E, "Flee") && E.IsReady())
                {
                    E.Cast((Game.CursorPos.Distance(Player.Instance) > E.Range ? Player.Instance.Position.Extend(Game.CursorPos, E.Range - 1).To3D() : Game.CursorPos));
                }
            }
        }
Esempio n. 6
0
        private static void laneClear()
        {
            var Qmana = Config.Item("ManaFarmQ").GetValue <Slider>().Value;
            var Emana = Config.Item("ManaFarmE").GetValue <Slider>().Value;
            var Rmana = Config.Item("ManaFarmR").GetValue <Slider>().Value;
            var useQ  = Config.Item("QLC").GetValue <bool>();
            var useE  = Config.Item("ELC").GetValue <bool>();
            var useR  = Config.Item("RLC").GetValue <bool>();
            var useR2 = Config.Item("BigRClear").GetValue <bool>();
            //var miniR = Config.Item("miniClear").GetValue<bool>();
            var Qcount         = Config.Item("QFarmCount").GetValue <Slider>().Value;
            var Ecount         = Config.Item("EFarmCount").GetValue <Slider>().Value;
            var Rcount         = Config.Item("RFarmCount").GetValue <Slider>().Value;
            var MisCount       = Config.Item("RMisCount").GetValue <Slider>().Value;
            var Ammo           = Player.Spellbook.GetSpell(SpellSlot.R).Ammo;
            var BigMissile     = isBigMissle();
            var harrassinclear = Config.Item("HarInClear").GetValue <bool>();
            var missiles       = Config.Item("AutoRMisCount").GetValue <Slider>().Value;
            var useQHar        = Config.Item("QHar").GetValue <bool>();
            var useEHar        = Config.Item("EHar").GetValue <bool>();
            var useRHar        = Config.Item("RHar").GetValue <bool>();
            var useQHarMana    = Config.Item("QHarMana").GetValue <Slider>().Value;
            var useRHarMana    = Config.Item("RHarMana").GetValue <Slider>().Value;

            if (_Ob.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && !Orbwalking.CanAttack() && R1.IsReady() && useR && Player.ManaPercentage() > Rmana)
            {
                if (BigMissile)
                {
                    return;
                }

                if (Ammo > MisCount)
                {
                    List <Obj_AI_Base> killableMinions = MinionManager.GetMinions(R1.Range, MinionTypes.All).Where(x => x.Health <= Player.GetAutoAttackDamage(x)).ToList();
                    if (killableMinions.Count >= 2)
                    {
                        var farthestMinion = killableMinions.OrderBy(x => x.Distance(Player.Position)).First();
                        if (R1.GetDamage(farthestMinion) >= farthestMinion.Health)
                        {
                            R1.Cast(farthestMinion);
                        }
                    }
                }
            }

            if (Q.IsReady() && useQ && Player.ManaPercentage() > Qmana)
            {
                List <Obj_AI_Base> QMinionsRange = MinionManager.GetMinions(Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.NotAlly);
                List <int>         qRangeCount   = new List <int>();
                foreach (var minion in QMinionsRange)
                {
                    List <Obj_AI_Base> qMinions = MinionManager.GetMinions(minion.Position, Q.Width, MinionTypes.All, MinionTeam.NotAlly);
                    qRangeCount.Add(qMinions.Count());
                }
                if (qRangeCount.Max() >= Qcount)
                {
                    Q.Cast(QMinionsRange[qRangeCount.IndexOf(qRangeCount.Max())]);
                }
            }

            if (E.IsReady() && useE && Player.ManaPercentage() > Emana)
            {
                List <Obj_AI_Base> EMinions = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly);
                if (EMinions.Count >= Ecount)
                {
                    E.Cast(EMinions[0]);
                }
            }

            if (BigMissile ? R2.IsReady() : R1.IsReady() && useR && (Ammo > MisCount) && Player.ManaPercentage() > Rmana)
            {
                if (BigMissile && !useR2)
                {
                    return;
                }

                List <Obj_AI_Base> RMinionsRange = MinionManager.GetMinions(Player.ServerPosition, (BigMissile ? R2.Range : R1.Range), MinionTypes.All, MinionTeam.NotAlly);
                List <int>         rRangeCount   = new List <int>();
                foreach (var minion in RMinionsRange)
                {
                    List <Obj_AI_Base> rMinions = MinionManager.GetMinions(minion.Position, BigMissile ? 300f : 200f, MinionTypes.All, MinionTeam.NotAlly);
                    rRangeCount.Add(rMinions.Count());
                }
                if (rRangeCount.Max() >= Rcount)
                {
                    if (BigMissile)
                    {
                        R2.Cast(RMinionsRange[rRangeCount.IndexOf(rRangeCount.Max())], false, true);
                    }
                    else
                    {
                        R1.Cast(RMinionsRange[rRangeCount.IndexOf(rRangeCount.Max())], false, true);
                    }
                }
            }

            if (Q.IsReady() && harrassinclear && useQHar && Player.ManaPercentage() >= useQHarMana)
            {
                if (Player.ServerPosition.UnderTurret(true))
                {
                    return;
                }

                var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                if (t == null)
                {
                    return;
                }
                Q.CastIfHitchanceEquals(t, HitChance.VeryHigh);
            }

            if (BigMissile ? R2.IsReady() : R1.IsReady() && harrassinclear && useRHar && Player.Spellbook.GetSpell(SpellSlot.R).Ammo >= missiles && Player.ManaPercentage() >= useRHarMana)
            {
                if (Player.ServerPosition.UnderTurret(true))
                {
                    return;
                }

                var t = TargetSelector.GetTarget(BigMissile ? R2.Range : R1.Range, TargetSelector.DamageType.Magical);
                if (t == null)
                {
                    return;
                }
                if (!BigMissile)
                {
                    R1.CastIfHitchanceEquals(t, HitChance.VeryHigh);
                }
                else
                {
                    R2.CastIfHitchanceEquals(t, HitChance.VeryHigh);
                }
            }
        }
Esempio n. 7
0
        public static void Execute()
        {
            //////////////////////////////////////////////////////////////////////////////////////////
            var   target = TargetSelector.GetTarget(E.Range, DamageType.Physical);
            float dist   = (float)(Q.Range + player.MoveSpeed * 2.5);
            var   useQ   = ComboMenu.GetCheckBoxValue("qUse");
            var   useW   = ComboMenu.GetCheckBoxValue("wUse");
            var   useE   = ComboMenu.GetCheckBoxValue("eUse");
            var   useR   = ComboMenu.GetCheckBoxValue("rUse");
            var   cmbDmg = Program.ComboDamage(target);

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

            if (ComboMenu.GetCheckBoxValue("itemss"))
            {
                Eclipse.Activator.Items.CastItems(target);
            }

            if (Program.ShacoClone && !Program.GhostDelay && ComboMenu["useClone"].Cast <CheckBox>().CurrentValue&& !MiscMenu["autoMoveClone"].Cast <CheckBox>().CurrentValue)
            {
                Program.moveClone();
            }

            if (Q.IsReady() && useQ && target.IsValidTarget(Q.Range))
            {
                Q.Cast(Prediction.Position.PredictUnitPosition(target, 500).To3D());
            }

            else
            {
                if (!Program.CheckWalls(target) || Utils.GetPath(player, target.Position) < dist)
                {
                    Q.Cast(player.Position.Extend(target.Position, Q.Range));
                }
            }

            if (W.IsReady() && useW)
            {
                if (target.IsValidTarget(W.Range + 250))
                {
                    Program.HandleW(target);
                }
            }

            if (useE && E.IsReady() && target.IsValidTarget(E.Range))
            {
                E.Cast(target);
            }

            if (useR && R.IsReady() && !Program.ShacoClone && target.HealthPercent < 60 &&
                cmbDmg < target.Health && target.HealthPercent > cmbDmg && target.HealthPercent > 25)
            {
                R2.Cast();
            }

            if (ComboMenu.GetCheckBoxValue("rLow") && R2.IsReady() && Player.Instance.HealthPercent <= ComboMenu.GetSliderValue("hpR"))
            {
                R2.Cast();
            }
        }
Esempio n. 8
0
 private static void ForceR2()
 {
     forceR2 = R2.IsReady() && R2.Name == IsSecondR;
     Core.DelayAction(() => forceR2 = false, 500);
 }