Exemple #1
0
 public override void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (GetValue <bool>("Combo.E.Use") && E.IsReady() && HaveAmmo1 && !HaveAmmo2 && !isReloading)
     {
         var enemy = HeroManager.Enemies.FirstOrDefault(e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65));
         if (enemy != null)
         {
             E.Cast(CommonUtils.GetDashPosition(E, enemy, 200));
         }
     }
 }
Exemple #2
0
 public override void ExecuteCombo()
 {
     if (GetValue <bool>("Combo.Q.Use.Urf"))
     {
         var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
         if (t.IsValidTarget() && !t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65))
         {
             CastQ(t);
         }
     }
     base.ExecuteCombo();
 }
Exemple #3
0
        private bool RLogic(Obj_AI_Hero target)
        {
            var hits = GetRHits(target);

            if ((hits.Item2.Any(h => R.GetDamage(h) * 0.95f > h.Health) ||
                 hits.Item2.Any(h => h.Distance(ObjectManager.Player) + 300 < Orbwalking.GetRealAutoAttackRange(h) * 0.9f)))
            {
                R.Cast(hits.Item3);
                return(true);
            }
            return(false);
        }
Exemple #4
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            var turnOffDrawings = Config.Item("Draw.TurnOff").GetValue <StringList>().SelectedIndex;

            if (turnOffDrawings == 0)
            {
                return;
            }

            if ((turnOffDrawings == 2 || turnOffDrawings == 4) &&
                ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                return;
            }

            if ((turnOffDrawings == 3 || turnOffDrawings == 4) &&
                (ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit ||
                 ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear))
            {
                return;
            }

            var drawMinionLastHit = Config.Item("Draw.MinionLastHit").GetValue <StringList>().SelectedIndex;

            if (drawMinionLastHit != 0)
            {
                var mx =
                    ObjectManager.Get <Obj_AI_Minion>()
                    .Where(m => !m.IsDead && m.IsEnemy)
                    .Where(m => m.Health <= ObjectManager.Player.TotalAttackDamage);

                if (drawMinionLastHit == 1)
                {
                    mx = mx.Where(m => m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65));
                }
                mx =
                    mx.Where(
                        m =>
                        m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65 + 300) &&
                        m.Distance(ObjectManager.Player.Position) > Orbwalking.GetRealAutoAttackRange(null) + 65);

                foreach (var minion in mx)
                {
                    Render.Circle.DrawCircle(minion.Position, minion.BoundingRadius, Color.GreenYellow, 1);
                }
            }

            ChampionClass?.Drawing_OnDraw(args);
        }
Exemple #5
0
        public override void ExecuteJungle()
        {
            if (!Orbwalking.CanMove(1))
            {
                return;
            }

            var jungleMobs = Utils.Utils.GetMobs(Q.Range, Utils.Utils.MobTypes.BigBoys);

            if (jungleMobs != null)
            {
                if (Q.CanCast(jungleMobs) && GetValue <StringList>("Jungle.Q").SelectedIndex != 0)
                {
                    Q.Cast(jungleMobs);
                }

                if (E.CanCast(jungleMobs) && GetValue <StringList>("Jungle.E").SelectedIndex != 0)
                {
                    E.Cast(jungleMobs);
                }
            }
        }
Exemple #6
0
        public override void PermaActive()
        {
            if (GetValue <bool>("Combo.UseYoumuu"))
            {
                if (ObjectManager.Player.HasBuff("TwitchFullAutomatic"))
                {
                    var iYoumuu = ItemData.Youmuus_Ghostblade.GetItem();

                    if (iYoumuu != null && iYoumuu.IsReady())
                    {
                        iYoumuu.Cast();
                    }
                }
            }

            var dontWasteE = GetValue <StringList>("Combo.DontWasteE").SelectedIndex;

            if (dontWasteE != 0)
            {
                if (ObjectManager.Player.CountEnemiesInRange(Orbwalking.GetRealAutoAttackRange(null) + 65) > 0)
                {
                    return;
                }

                foreach (var enemy in HeroManager.Enemies
                         .Where(
                             e => e.IsValidTarget(E.Range) && !e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 130))
                         .Where(e => e.GetBuffCount("TwitchDeadlyVenom") >= dontWasteE))
                {
                    foreach (var buffs in enemy.Buffs.Where(b => b.Name == "TwitchDeadlyVenom"))
                    {
                        if (Game.Time > buffs.EndTime - 200)
                        {
                            E.Cast();
                        }
                    }
                }
            }
        }
Exemple #7
0
        private static void CastW(Vector3 pos, bool delayControl = true)
        {
            var enemy =
                HeroManager.Enemies.Find(
                    e =>
                    e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) &&
                    e.Health < ObjectManager.Player.TotalAttackDamage * 2);

            if (enemy != null)
            {
                return;
            }

            if (!W.IsReady())
            {
                return;
            }

            //if (headshotReady)
            //{
            //    return;
            //}

            if (delayControl && LastCastWTick + 2000 > LeagueSharp.Common.Utils.TickCount)
            {
                return;
            }

            if (!trapList.Any(x => x.IsValid && pos.Distance(x.Position) <= 100))
            {
                W.Cast(pos);
            }

            //W.Cast(pos);
            LastCastWTick = LeagueSharp.Common.Utils.TickCount;
        }
Exemple #8
0
        public override void GameOnUpdate(EventArgs args)
        {
            R.Range = 500 * (R.Level == 0 ? 1 : R.Level) + 1500;

            Obj_AI_Hero t;

            if (GetValue <StringList>("AutoWI").SelectedIndex != 0 && W.IsReady())
            {
                foreach (
                    var hero in
                    HeroManager.Enemies.Where(h => h.IsValidTarget(W.Range) && h.HasBuffOfType(BuffType.Stun)))
                {
                    CastW(hero.Position, false);
                }
            }

            if (W.IsReady() &&
                (GetValue <StringList>("AutoWI").SelectedIndex == 1 ||
                 (GetValue <StringList>("AutoWI").SelectedIndex == 2 && ComboActive)))
            {
                t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget(W.Range))
                {
                    if (t.HasBuffOfType(BuffType.Stun) || t.HasBuffOfType(BuffType.Snare) ||
                        t.HasBuffOfType(BuffType.Taunt) || t.HasBuffOfType(BuffType.Knockup) ||
                        t.HasBuff("zhonyasringshield") || t.HasBuff("Recall"))
                    {
                        CastW(t.Position);
                    }

                    if (t.HasBuffOfType(BuffType.Slow) && t.IsValidTarget(E.Range - 200))
                    {
                        //W.Cast(t.Position.Extend(ObjectManager.Player.Position, +200));
                        //W.Cast(t.Position.Extend(ObjectManager.Player.Position, -200));

                        var hit = t.IsFacing(ObjectManager.Player)
                            ? t.Position.Extend(ObjectManager.Player.Position, +200)
                            : t.Position.Extend(ObjectManager.Player.Position, -200);
                        CastW(hit);
                    }
                }
            }

            if (Q.IsReady() &&
                (GetValue <StringList>("AutoQI").SelectedIndex == 1 ||
                 (GetValue <StringList>("AutoQI").SelectedIndex == 2 && ComboActive)))
            {
                t = TargetSelector.GetTarget(Q.Range - 30, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget(Q.Range)
                    &&
                    (t.HasBuffOfType(BuffType.Stun) ||
                     t.HasBuffOfType(BuffType.Snare) ||
                     t.HasBuffOfType(BuffType.Taunt) ||
                     (t.Health <= ObjectManager.Player.GetSpellDamage(t, SpellSlot.Q) &&
                      !t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65))))
                {
                    CastQ(t);
                }
            }

            if (GetValue <KeyBind>("UseQMC").Active)
            {
                t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                CastQ(t);
            }

            //if (GetValue<KeyBind>("UseEMC").Active)
            //{
            //    t = TargetSelector.GetTarget(E.Range - 50, TargetSelector.DamageType.Physical);
            //    E.Cast(t);
            //}

            if (GetValue <KeyBind>("UseRMC").Active&& R.IsReady())
            {
                foreach (
                    var e in
                    HeroManager.Enemies.Where(
                        e =>
                        e.IsValidTarget(R.Range) &&
                        ObjectManager.Player.CountEnemiesInRange(Orbwalking.GetRealAutoAttackRange(null) + 65) <=
                        1).OrderBy(e => e.Health))
                {
                    //Utils.MPing.Ping(enemy.Position.To2D());
                    R.CastOnUnit(e);
                }
            }

            //for (int i = 1; i < HeroManager.Enemies.Count(e => e.Health < R.GetDamage(e)); i++)
            //{

            //    Common.CommonGeometry.DrawBox(new Vector2(Drawing.Width * 0.45f, Drawing.Height * 0.80f), 125, 18, Color.Transparent, 1, System.Drawing.Color.Black);
            //    Common.CommonGeometry.DrawText(CommonGeometry.Text, HeroManager.Enemies[i].ChampionName + " Killable", Drawing.Width * 0.455f, Drawing.Height * (0.803f + i * 50), SharpDX.Color.Wheat);
            //}

            if (GetValue <KeyBind>("UseEQC").Active&& E.IsReady() && Q.IsReady())
            {
                t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget(E.Range) &&
                    t.Health
                    < ObjectManager.Player.GetSpellDamage(t, SpellSlot.Q)
                    + ObjectManager.Player.GetSpellDamage(t, SpellSlot.E) + 20 && E.CanCast(t))
                {
                    CastE();
                    //if (E.Cast(t) == Spell.CastStates.SuccessfullyCasted)
                    //    return;
                    //                    E.Cast(t);
                    CastQ(t);
                }
            }

            if ((!ComboActive && !HarassActive) || !Orbwalking.CanMove(100))
            {
                return;
            }

            //var useQ = GetValue<bool>("UseQ" + (ComboActive ? "C" : "H"));
            var useW = GetValue <bool>("UseWC");
            var useE = GetValue <bool>("UseEC");
            var useR = GetValue <bool>("UseRC");

            //if (Q.IsReady() && useQ)
            //{
            //    t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
            //    if (t != null)
            //    {
            //        CastQ(t);
            //    }
            //}

            if (useE && E.IsReady())
            {
                //var enemies = HeroManager.Enemies.Where(e => e.IsValidTarget(E.Range));
                //var objAiHeroes = enemies as Obj_AI_Hero[] ?? enemies.ToArray();
                //IEnumerable<Obj_AI_Hero> nResult =
                //    (from e in objAiHeroes join d in dangerousEnemies on e.ChampionName equals d select e)
                //        .Distinct();

                //foreach (var n in nResult.Where(n => n.IsFacing(ObjectManager.Player)))
                //{
                //    if (n.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65 - 300) && E.GetPrediction(n).CollisionObjects.Count == 0)
                //    {
                //        E.Cast(n.Position);
                //        if (W.IsReady())
                //            W.Cast(n.Position);
                //    }
                //}
                //if (GetValue<bool>("E.ProtectDistance"))
                //{
                //    foreach (var n in HeroManager.Enemies)
                //    {
                //        if (GetValue<bool>("E." + n.ChampionName + ".ProtectDistance") &&
                //            n.Distance(ObjectManager.Player) < E.Range - 100)
                //        {
                //            E.Cast(n.Position);
                //        }

                //    }
                //}
                foreach (
                    var enemy in
                    HeroManager.Enemies.Where(
                        e =>
                        e.IsValidTarget(E.Range) && e.Health >= ObjectManager.Player.TotalAttackDamage * 2 &&
                        e.IsFacing(ObjectManager.Player) && e.IsValidTarget(E.Range - 300) &&
                        E.GetPrediction(e).CollisionObjects.Count == 0))
                {
                    E.Cast(enemy.Position);
                    var targetBehind = enemy.Position.To2D().Extend(ObjectManager.Player.Position.To2D(), -140);
                    if (W.IsReady() && ObjectManager.Player.Distance(targetBehind) <= W.Range)
                    {
                        W.Cast(enemy.Position);
                    }
                    if (Q.IsReady())
                    {
                        Q.Cast(enemy.Position);
                    }
                }
            }

            if (useW && W.IsReady())
            {
                var nResult = HeroManager.Enemies.Where(e => e.IsValidTarget(W.Range));
                foreach (var n in nResult)
                {
                    if (ObjectManager.Player.Distance(n) < 450 && n.IsFacing(ObjectManager.Player))
                    {
                        CastW(CommonGeometry.CenterOfVectors(new[] { ObjectManager.Player.Position, n.Position }));
                    }
                }
            }

            if (R.IsReady() && useR)
            {
                foreach (
                    var e in
                    HeroManager.Enemies.Where(
                        e =>
                        e.IsValidTarget(R.Range) && e.Health <= R.GetDamage(e) &&
                        ObjectManager.Player.CountEnemiesInRange(Orbwalking.GetRealAutoAttackRange(null) + 350) ==
                        0 &&
                        !Orbwalking.InAutoAttackRange(e) && canCastR))
                {
                    R.CastOnUnit(e);
                }
            }
        }
Exemple #9
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            //var t1 = TargetSelector.GetTarget(2000, TargetSelector.DamageType.Physical);
            //if (t1.IsValidTarget())
            //{
            //    if (t1.IsFacing(ObjectManager.Player))
            //    {
            //        Console.WriteLine("--> Face " + t1.ChampionName);
            //    }
            //    else
            //    {
            //        Console.WriteLine(t1.ChampionName + " <-- Back");
            //    }
            //}

            /*
             * var x = HeroManager.Enemies.Find(e => !e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null)) && e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + QAddRange));
             * if (x != null && !FishBoneActive && Q.IsReady())
             * {
             *  Q.Cast();
             *  Program.ChampionClass.Orbwalker.ForceTarget(x);
             * }
             */
            if (Q.IsReady() && GetValue <bool>("SwapDistance") && Program.ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var activeQ = ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).Level * 25 + 650;
                var t       = TargetSelector.GetTarget(activeQ, TargetSelector.DamageType.Physical);

                if (t.IsValidTarget() && ObjectManager.Player.Distance(t) > Orbwalking.GetRealAutoAttackRange(null) + 65)
                {
                    if (!FishBoneActive)
                    {
                        Q.Cast();
                        Orbwalker.ForceTarget(t);
                        return;
                    }
                }
                if (!t.IsValidTarget() && FishBoneActive)
                {
                    Q.Cast();
                    return;
                }
            }

            if (GetValue <bool>("PingCH"))
            {
                foreach (var enemy in
                         HeroManager.Enemies.Where(
                             t =>
                             R.IsReady() && t.IsValidTarget() && R.GetDamage(t) > t.Health &&
                             t.Distance(ObjectManager.Player) > Orbwalking.GetRealAutoAttackRange(null) + 65 + QAddRange))
                {
                    Utils.Utils.MPing.Ping(enemy.Position.To2D(), 2, PingCategory.Normal);
                }
            }

            var autoEi = GetValue <bool>("AutoEI");
            var autoEs = GetValue <bool>("AutoES");
            var autoEd = GetValue <bool>("AutoED");

            //foreach (var e in HeroManager.Enemies.Where(e => e.IsValidTarget(E.Range)))
            //{
            //    if (E.IsReady()
            //        && (e.HasBuffOfType(BuffType.Stun) || e.HasBuffOfType(BuffType.Snare)
            //            || e.HasBuffOfType(BuffType.Charm) || e.HasBuffOfType(BuffType.Fear) ||
            //            e.HasBuffOfType(BuffType.Slow)
            //            || e.HasBuffOfType(BuffType.Taunt) || e.HasBuff("zhonyasringshield")
            //            || e.HasBuff("Recall")))
            //    {
            //        E.Cast(e);
            //    }
            //}

            if (autoEs || autoEi || autoEd)
            {
                foreach (
                    var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(enemy => enemy.IsValidTarget(E.Range - 50)))
                {
                    if (autoEs && E.IsReady() && enemy.HasBuffOfType(BuffType.Slow))
                    {
                        var castPosition =
                            Prediction.GetPrediction(
                                new PredictionInput
                        {
                            Unit = enemy, Delay = 0.7f, Radius = 120f, Speed = 1750f, Range = 900f,
                            Type = SkillshotType.SkillshotCircle
                        }).CastPosition;


                        if (GetSlowEndTime(enemy) >= (Game.Time + E.Delay + 0.5f))
                        {
                            E.Cast(castPosition);
                        }
                    }

                    if (E.IsReady() &&
                        (enemy.HasBuffOfType(BuffType.Stun) ||
                         enemy.HasBuffOfType(BuffType.Snare) ||
                         enemy.HasBuffOfType(BuffType.Charm) ||
                         enemy.HasBuffOfType(BuffType.Fear) ||
                         enemy.HasBuffOfType(BuffType.Slow) ||
                         enemy.HasBuffOfType(BuffType.Taunt) ||
                         enemy.HasBuff("zhonyasringshield") ||
                         enemy.HasBuff("Recall")))
                    {
                        E.CastIfHitchanceEquals(enemy, HitChance.High);
                    }
                    else
                    if (W.IsReady() &&
                        (enemy.HasBuffOfType(BuffType.Stun) ||
                         enemy.HasBuffOfType(BuffType.Snare) ||
                         enemy.HasBuffOfType(BuffType.Charm) ||
                         enemy.HasBuffOfType(BuffType.Fear) ||
                         enemy.HasBuffOfType(BuffType.Slow) ||
                         enemy.HasBuffOfType(BuffType.Taunt) ||
                         enemy.HasBuff("Recall")))
                    {
                        W.CastIfHitchanceEquals(enemy, HitChance.High);
                    }

                    if (autoEd && E.IsReady() && enemy.IsDashing())
                    {
                        E.CastIfHitchanceEquals(enemy, HitChance.Dashing);
                    }
                }
            }

            if (GetValue <KeyBind>("CastR").Active&& R.IsReady())
            {
                var t = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget())
                {
                    if (ObjectManager.Player.GetSpellDamage(t, SpellSlot.R) > t.Health && !t.IsZombie)
                    {
                        R.CastIfHitchanceGreaterOrEqual(t);
                        //R.CastIfHitchanceEquals(t, HitChance.High, false);
                    }
                }
            }

            if (GetValue <bool>("SwapQ") && FishBoneActive && !ComboActive)
            {
                Q.Cast();
            }

            if ((!ComboActive && !HarassActive) || !Orbwalking.CanMove(100))
            {
                return;
            }

            var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));
            var useR = GetValue <bool>("UseRC");

            if (useW && W.IsReady())
            {
                var t    = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
                var minW = GetValue <Slider>("MinWRange").Value;

                if (t.IsValidTarget() && !t.HasKindredUltiBuff() && GetRealDistance(t) >= minW)
                {
                    W.CastIfHitchanceGreaterOrEqual(t);
                }
            }

            /*
             * if (useQ)
             * {
             *  foreach (var t in
             *      ObjectManager.Get<Obj_AI_Hero>()
             *          .Where(t => t.IsValidTarget(GetRealPowPowRange(t) + QAddRange + 20f)))
             *  {
             *      var swapDistance = GetValue<bool>("SwapDistance");
             *      var swapAoe = GetValue<bool>("SwapAOE");
             *      var distance = GetRealDistance(t);
             *      var powPowRange = GetRealPowPowRange(t);
             *
             *      if (swapDistance && Q.IsReady())
             *      {
             *          if (distance > powPowRange && !FishBoneActive)
             *          {
             *              if (Q.Cast())
             *              {
             *                  return;
             *              }
             *          }
             *          else if (distance < powPowRange && FishBoneActive)
             *          {
             *              if (Q.Cast())
             *              {
             *                  return;
             *              }
             *          }
             *      }
             *
             *      if (swapAoe && Q.IsReady())
             *      {
             *          if (distance > powPowRange && PowPowStacks > 2 && !FishBoneActive && CountEnemies(t, 150) > 1)
             *          {
             *              if (Q.Cast())
             *              {
             *                  return;
             *              }
             *          }
             *      }
             *  }
             * }
             *
             */
            if (useR && R.IsReady())
            {
                var checkRok = GetValue <bool>("ROverKill");
                var minR     = GetValue <Slider>("MinRRange").Value;
                var maxR     = GetValue <Slider>("MaxRRange").Value;
                var t        = TargetSelector.GetTarget(maxR, TargetSelector.DamageType.Physical);

                if (t.IsValidTarget() && !t.HasKindredUltiBuff())
                {
                    var distance = GetRealDistance(t);

                    if (!checkRok)
                    {
                        if (ObjectManager.Player.GetSpellDamage(t, SpellSlot.R, 1) > t.Health && !t.IsZombie)
                        {
                            R.CastIfHitchanceGreaterOrEqual(t);
                            //R.CastIfHitchanceEquals(t, HitChance.High, false);
                            //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { }
                        }
                    }
                    else if (distance > minR)
                    {
                        var aDamage     = ObjectManager.Player.GetAutoAttackDamage(t);
                        var wDamage     = ObjectManager.Player.GetSpellDamage(t, SpellSlot.W);
                        var rDamage     = ObjectManager.Player.GetSpellDamage(t, SpellSlot.R);
                        var powPowRange = GetRealPowPowRange(t);

                        if (distance < (powPowRange + QAddRange) && !(aDamage * 3.5 > t.Health))
                        {
                            if (!W.IsReady() || !(wDamage > t.Health) || W.GetPrediction(t).CollisionObjects.Count > 0)
                            {
                                if (CountAlliesNearTarget(t, 500) <= 3)
                                {
                                    if (rDamage > t.Health && !t.IsZombie /*&& !ObjectManager.Player.IsAutoAttacking &&
                                                                           * !ObjectManager.Player.IsChanneling*/)
                                    {
                                        R.CastIfHitchanceGreaterOrEqual(t);
                                        //R.CastIfHitchanceEquals(t, HitChance.High, false);
                                        //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { }
                                    }
                                }
                            }
                        }
                        else if (distance > (powPowRange + QAddRange))
                        {
                            if (!W.IsReady() || !(wDamage > t.Health) || distance > W.Range ||
                                W.GetPrediction(t).CollisionObjects.Count > 0)
                            {
                                if (CountAlliesNearTarget(t, 500) <= 3)
                                {
                                    if (rDamage > t.Health && !t.IsZombie /*&& !ObjectManager.Player.IsAutoAttacking &&
                                                                           * !ObjectManager.Player.IsChanneling*/)
                                    {
                                        R.CastIfHitchanceGreaterOrEqual(t);
                                        //R.CastIfHitchanceEquals(t, HitChance.High, false);
                                        //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Exemple #10
0
        public override void GameOnUpdate(EventArgs args)
        {
            if (Orbwalking.CanMove(100) && (ComboActive || HarassActive))
            {
                var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));
                var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));

                var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
                if (!t.IsValidTarget() || t.HasKindredUltiBuff())
                {
                    return;
                }

                if (useW && W.IsReady() && t.IsValidTarget(W.Range))
                {
                    W.Cast(t, false, true);
                }

                if (ObjectManager.Get <Obj_AI_Hero>().Find(e1 => e1.IsValidTarget(E.Range) && E.IsKillable(e1)) != null)
                {
                    E.Cast();
                }

                var nShouldCastE = (t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) && E.IsKillable(t)) ||
                                   (!t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) &&
                                    t.GetBuffCount("TwitchDeadlyVenom") == 6);

                if (E.IsReady() && nShouldCastE)
                {
                    E.Cast();
                }
                //if (useE && E.IsReady() && t.GetBuffCount("TwitchDeadlyVenom") == 6)
                //{
                //    E.Cast();
                //}
            }

            if (ComboActive)
            {
                var useR = GetValue <StringList>("Combo.UseR").SelectedIndex;

                if (useR != 0 && R.IsReady() && ObjectManager.Player.CountEnemiesInRange(R.Range - 100) >= useR)
                {
                    R.Cast();
                }
            }

            if (GetValue <bool>("UseEM") && E.IsReady())
            {
                foreach (
                    var hero in
                    ObjectManager.Get <Obj_AI_Hero>()
                    .Where(
                        hero =>
                        hero.IsValidTarget(E.Range) &&
                        (ObjectManager.Player.GetSpellDamage(hero, SpellSlot.E) - 10 > hero.Health)))
                {
                    E.Cast();
                }
            }
        }
Exemple #11
0
        public override void ExecuteCombo()
        {
            var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));

            if (E.IsReady() && useE) // Credits DZ191
            {
                var target = HeroManager.Enemies.Find(x => x.IsValidTarget(E.Range));
                if (target != null)
                {
                    if (target.HasBuffOfType(BuffType.Slow))
                    {
                        if (target.Path.Count() > 1)
                        {
                            var slowEndTime = target.GetSlowEndTime();
                            if (slowEndTime >= E.Delay + 0.5f + Game.Ping / 2f)
                            {
                                E.CastIfHitchanceGreaterOrEqual(target);
                            }
                        }
                    }

                    if (target.IsHeavilyImpaired())
                    {
                        var immobileEndTime = target.GetImpairedEndTime();
                        if (immobileEndTime >= E.Delay + 0.5f + Game.Ping / 2f)
                        {
                            E.CastIfHitchanceGreaterOrEqual(target);
                        }
                    }
                }
            }

            var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));

            if (W.IsReady() && useW)
            {
                var target = TargetSelector.GetTargetNoCollision(W);
                if (target == null)
                {
                    return;
                }
                if (!ObjectManager.Player.UnderTurret(true) || !target.UnderTurret(true))
                {
                    W.CastIfHitchanceGreaterOrEqual(target);
                }
            }

            if ((GetValue <KeyBind>("CastR").Active || GetValue <bool>("UseRC")) && R.IsReady())
            {
                if (wCastTime + 1060 <= Environment.TickCount)
                {
                    var target =
                        HeroManager.Enemies.FirstOrDefault(
                            x =>
                            !x.IsZombie && x.CountAlliesInRange(500) < 2 &&
                            HealthPrediction.GetHealthPrediction(x, 5000) > 0 &&
                            ObjectManager.Player.Distance(x) >= Orbwalking.GetRealAutoAttackRange(null) + 65 + QExtraRange &&
                            x.IsKillableAndValidTarget(GetRDamage(x), TargetSelector.DamageType.Physical, R.Range) &&
                            R.GetPrediction(x).Hitchance >= HitChance.High);
                    if (target != null)
                    {
                        var prediction = R.GetPrediction(target);
                        var collision  =
                            Collision.GetCollision(new List <Vector3> {
                            prediction.UnitPosition
                        },
                                                   new PredictionInput
                        {
                            UseBoundingRadius = true,
                            Unit             = ObjectManager.Player,
                            Delay            = R.Delay,
                            Speed            = R.Speed,
                            Radius           = 200,
                            CollisionObjects = new[] { CollisionableObjects.Heroes }
                        })
                            .Any(x => x.NetworkId != target.NetworkId);
                        if (!collision)
                        {
                            R.Cast(target);
                        }
                    }
                }
            }
            base.ExecuteCombo();
        }
Exemple #12
0
        public override void GameOnUpdate(EventArgs args)
        {
            if (GetValue <bool>("PingCH"))
            {
                foreach (var enemy in
                         HeroManager.Enemies.Where(
                             enemy =>
                             R.IsReady() && enemy.IsValidTarget() && R.GetDamage(enemy) > enemy.Health))
                {
                    //Marksman.Utils.Utils.MPing.Ping(enemy.Position.To2D());
                }
            }

            if (Q.IsReady() && GetValue <bool>("SwapDistance") && Program.ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var nKillableEnemy = HeroManager.Enemies.Find(e => e.Health <= Q.GetDamage(e) * 2 && e.Health >= ObjectManager.Player.TotalAttackDamage * 4);

                var activeQ = ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).Level * 25 + 650;
                var t       = TargetSelector.GetTarget(activeQ, TargetSelector.DamageType.Physical);

                if (t.IsValidTarget() && !t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65))
                {
                    if (!FishBoneActive)
                    {
                        Q.Cast();
                        Orbwalker.ForceTarget(t);
                        return;
                    }
                }
            }

            if (GetValue <bool>("PingCH"))
            {
                foreach (var enemy in
                         HeroManager.Enemies.Where(
                             t =>
                             R.IsReady() && t.IsValidTarget() && R.GetDamage(t) > t.Health &&
                             t.Distance(ObjectManager.Player) > Orbwalking.GetRealAutoAttackRange(null) + 65 + QExtraRange))
                {
                    Utils.Utils.MPing.Ping(enemy.Position.To2D(), 2, PingCategory.Normal);
                }
            }



            if (GetValue <bool>("SwapQ") && FishBoneActive && !ComboActive)
            {
                Q.Cast();
            }

            if ((!ComboActive && !HarassActive) || !Orbwalking.CanMove(100))
            {
                return;
            }

            var useR = GetValue <bool>("UseRC");

            foreach (var t in
                     ObjectManager.Get <Obj_AI_Hero>()
                     .Where(t => t.IsValidTarget(GetRealPowPowRange(t) + QExtraRange + 20f)))
            {
                var swapDistance = GetValue <bool>("SwapDistance");
                var swapAoe      = GetValue <bool>("SwapAOE");
                var distance     = GetRealDistance(t);
                var powPowRange  = GetRealPowPowRange(t);

                if (swapDistance && Q.IsReady())
                {
                    if (distance > powPowRange && !FishBoneActive)
                    {
                        if (Q.Cast())
                        {
                            return;
                        }
                    }
                    else if (distance < powPowRange && FishBoneActive)
                    {
                        if (Q.Cast())
                        {
                            return;
                        }
                    }
                }

                if (swapAoe && Q.IsReady())
                {
                    if (distance > powPowRange && PowPowStacks > 2 && !FishBoneActive && CountEnemies(t, 150) > 1)
                    {
                        if (Q.Cast())
                        {
                            return;
                        }
                    }
                }
            }


            //if (useR && R.IsReady())
            //{
            //    var checkRok = GetValue<bool>("ROverKill");
            //    var minR = GetValue<Slider>("MinRRange").Value;
            //    var maxR = GetValue<Slider>("MaxRRange").Value;
            //    var t = TargetSelector.GetTarget(maxR, TargetSelector.DamageType.Physical);

            //    if (t.IsValidTarget() && !t.HasKindredUltiBuff())
            //    {
            //        var distance = GetRealDistance(t);

            //        if (!checkRok)
            //        {
            //            if (ObjectManager.Player.GetSpellDamage(t, SpellSlot.R, 1) > t.Health && !t.IsZombie)
            //            {
            //                R.CastIfHitchanceGreaterOrEqual(t);
            //                //R.CastIfHitchanceEquals(t, HitChance.High, false);
            //                //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { }
            //            }
            //        }
            //        else if (distance > minR)
            //        {
            //            var aDamage = ObjectManager.Player.GetAutoAttackDamage(t);
            //            var wDamage = ObjectManager.Player.GetSpellDamage(t, SpellSlot.W);
            //            var rDamage = ObjectManager.Player.GetSpellDamage(t, SpellSlot.R);
            //            var powPowRange = GetRealPowPowRange(t);

            //            if (distance < (powPowRange + QExtraRange) && !(aDamage * 3.5 > t.Health))
            //            {
            //                if (!W.IsReady() || !(wDamage > t.Health) || W.GetPrediction(t).CollisionObjects.Count > 0)
            //                {
            //                    if (CountAlliesNearTarget(t, 500) <= 3)
            //                    {
            //                        if (rDamage > t.Health && !t.IsZombie /*&& !ObjectManager.Player.IsAutoAttacking &&
            //                            !ObjectManager.Player.IsChanneling*/)
            //                        {
            //                            R.CastIfHitchanceGreaterOrEqual(t);
            //                            //R.CastIfHitchanceEquals(t, HitChance.High, false);
            //                            //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { }
            //                        }
            //                    }
            //                }
            //            }
            //            else if (distance > (powPowRange + QExtraRange))
            //            {
            //                if (!W.IsReady() || !(wDamage > t.Health) || distance > W.Range
            //                    || W.GetPrediction(t).CollisionObjects.Count > 0)
            //                {
            //                    if (CountAlliesNearTarget(t, 500) <= 3)
            //                    {
            //                        if (rDamage > t.Health && !t.IsZombie /*&& !ObjectManager.Player.IsAutoAttacking &&
            //                            !ObjectManager.Player.IsChanneling*/)
            //                        {
            //                            R.CastIfHitchanceGreaterOrEqual(t);
            //                            //R.CastIfHitchanceEquals(t, HitChance.High, false);
            //                            //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { }
            //                        }
            //                    }
            //                }
            //            }
            //        }
            //    }
            //}
        }
Exemple #13
0
        private static void Game_OnGameLoad(EventArgs args)
        {
            Config        = new Menu("Marksman", "Marksman", true).SetFontStyle(FontStyle.Regular, SharpDX.Color.GreenYellow);
            ChampionClass = new Champion();
            CommonGeometry.Init();
            var baseType = ChampionClass.GetType();

            igniteSlot = ObjectManager.Player.GetSpellSlot("summonerdot");

            /* Update this with Activator.CreateInstance or Invoke
             * http://stackoverflow.com/questions/801070/dynamically-invoking-any-function-by-passing-function-name-as-string
             * For now stays cancer.
             */
            var championName = ObjectManager.Player.ChampionName.ToLowerInvariant();

            switch (championName)
            {
            case "ashe":
                ChampionClass = new Ashe();
                break;

            case "caitlyn":
                ChampionClass = new Caitlyn();
                break;

            case "corki":
                ChampionClass = new Corki();
                break;

            case "draven":
                ChampionClass = new Draven();
                break;

            case "ezreal":
                ChampionClass = new Ezreal();
                break;

            case "graves":
                ChampionClass = new Graves();
                break;

            case "gnar":
                ChampionClass = new Gnar();
                break;

            case "jhin":
                ChampionClass = new Jhin();
                break;

            case "jinx":
                ChampionClass = new Jinx();
                break;

            case "kalista":
                ChampionClass = new Kalista();
                break;

            case "kindred":
                ChampionClass = new Kindred();
                break;

            case "kogmaw":
                ChampionClass = new Kogmaw();
                break;

            case "lucian":
                ChampionClass = new Lucian();
                break;

            case "missfortune":
                ChampionClass = new MissFortune();
                break;

            case "quinn":
                ChampionClass = new Quinn();
                break;

            case "sivir":
                ChampionClass = new Sivir();
                break;

            case "teemo":
                ChampionClass = new Teemo();
                break;

            case "tristana":
                ChampionClass = new Tristana();
                break;

            case "twitch":
                ChampionClass = new Twitch();
                break;

            case "urgot":
                ChampionClass = new Urgot();
                break;

            case "vayne":
                ChampionClass = new Vayne();
                break;

            case "varus":
                ChampionClass = new Varus();
                break;

            default:
                Game.PrintChat(ObjectManager.Player.CharData.BaseSkinName + " Doesn't support from Marksman!");
                break;
            }
            //Config.DisplayName = "Marksman Lite | " + CultureInfo.CurrentCulture.TextInfo.ToTitleCase(championName);
            Config.DisplayName = "Marksman II - " + ObjectManager.Player.ChampionName;

            ChampionClass.Id         = ObjectManager.Player.CharData.BaseSkinName;
            ChampionClass.Config     = Config;
            ChampionClass.MenuLane   = MenuLane;
            ChampionClass.MenuJungle = MenuJungle;

            MenuExtraTools = new Menu("Marksman II - Tools", "ExtraTools", true).SetFontStyle(FontStyle.Regular,
                                                                                              SharpDX.Color.GreenYellow);
            {
                var nMenuExtraToolsPackets = new Menu("Available Tools", "MenuExtraTools.Available");
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.Orbwalker", "Orbwalker:")).SetValue(new StringList(new[] { "LeagueSharp Common", "Marksman Orbwalker (With Attack Speed Limiter)" })).SetFontStyle(FontStyle.Regular, SharpDX.Color.Gray);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.Prediction", "Prediction:")).SetValue(new StringList(new[] { "LeagueSharp Common", "SPrediction (Synx)" })).SetFontStyle(FontStyle.Regular, SharpDX.Color.Gray);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.AutoLevel", "Auto Leveller:")).SetValue(true);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.AutoBush", "Auto Bush Ward:")).SetValue(true);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.AutoPink", "Auto Pink Ward:")).SetValue(true).SetTooltip("For rengar / vayne / shaco etc.");
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.WarningSpells", "Warning Spells [NEW]:")).SetValue(true).SetTooltip("For Rengar R / Shaco Q etc.").SetFontStyle(FontStyle.Regular, SharpDX.Color.GreenYellow);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.Skin", "Skin Manager:")).SetValue(true);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.Emote", "Emote:")).SetValue(true);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.AllySupport", "Ally Support:")).SetValue(true);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.BuffTimer", "Buff Time Manager:")).SetValue(false).SetFontStyle(FontStyle.Regular, SharpDX.Color.Gray);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.Potition", "Potition Manager:")).SetValue(false).SetFontStyle(FontStyle.Regular, SharpDX.Color.Gray);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.Summoners", "Summoner Manager:")).SetValue(false).SetFontStyle(FontStyle.Regular, SharpDX.Color.Gray);
                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.Tracker", "Tracker:")).SetValue(false).SetFontStyle(FontStyle.Regular, SharpDX.Color.Gray);

                nMenuExtraToolsPackets.AddItem(new MenuItem("ExtraTools.Reload", "Press F5 for Load Extra Tools!")).SetFontStyle(FontStyle.Bold, SharpDX.Color.GreenYellow);

                MenuExtraTools.AddSubMenu(nMenuExtraToolsPackets);

                MenuExtraToolsActivePackets = new Menu("Installed Tools", "MenuExtraTools.Installed").SetFontStyle(FontStyle.Regular, SharpDX.Color.GreenYellow);

                MenuExtraTools.AddSubMenu(MenuExtraToolsActivePackets);
            }

            CommonSettings.Init(Config);

            OrbWalking = Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));
            ChampionClass.Orbwalker = new Orbwalking.Orbwalker(OrbWalking);

            MenuActivator = new Menu("Activator", "Activator").SetFontStyle(FontStyle.Regular, SharpDX.Color.Aqua);
            {
                if (MenuExtraTools.Item("ExtraTools.AutoLevel").GetValue <bool>())
                {
                    CommonAutoLevel.Init(MenuExtraToolsActivePackets);
                }

                if (MenuExtraTools.Item("ExtraTools.AutoPink").GetValue <bool>())
                {
                    CommonAutoPink.Initialize(MenuExtraToolsActivePackets);
                }

                if (MenuExtraTools.Item("ExtraTools.WarningSpells").GetValue <bool>())
                {
                    CommonWarningSpelss.Initialize(MenuExtraToolsActivePackets);
                }

                if (MenuExtraTools.Item("ExtraTools.AutoBush").GetValue <bool>())
                {
                    CommonAutoBush.Init(MenuExtraToolsActivePackets);
                }

                if (MenuExtraTools.Item("ExtraTools.Skin").GetValue <bool>())
                {
                    CommonSkinManager.Init(MenuExtraToolsActivePackets);
                }

                if (MenuExtraTools.Item("ExtraTools.Emote").GetValue <bool>())
                {
                    CommonEmote.Init(MenuExtraToolsActivePackets);
                }

                if (MenuExtraTools.Item("ExtraTools.AllySupport").GetValue <bool>())
                {
                    CommonAlly.Init(MenuExtraToolsActivePackets);
                }

                /* Menu Items */
                var items = MenuActivator.AddSubMenu(new Menu("Items", "Items"));
                items.AddItem(new MenuItem("BOTRK", "BOTRK").SetValue(true));
                items.AddItem(new MenuItem("GHOSTBLADE", "Ghostblade").SetValue(true));
                items.AddItem(new MenuItem("SWORD", "Sword of the Divine").SetValue(true));
                items.AddItem(new MenuItem("MURAMANA", "Muramana").SetValue(true));
                items.AddItem(new MenuItem("UseItemsMode", "Use items on").SetValue(new StringList(new[] { "No", "Mixed mode", "Combo mode", "Both" }, 2)));
            }
            Config.AddSubMenu(MenuActivator);

            // If Champion is supported draw the extra menus
            if (baseType != ChampionClass.GetType())
            {
                SetSmiteSlot();

                var combo = new Menu("Combo", "Combo").SetFontStyle(FontStyle.Regular, SharpDX.Color.GreenYellow);
                if (ChampionClass.ComboMenu(combo))
                {
                    if (SmiteSlot != SpellSlot.Unknown)
                    {
                        combo.AddItem(new MenuItem("ComboSmite", "Use Smite").SetValue(true));
                    }

                    Config.AddSubMenu(combo);
                }

                var harass = new Menu("Harass", "Harass");
                if (ChampionClass.HarassMenu(harass))
                {
                    harass.AddItem(new MenuItem("HarassMana", "Min. Mana Percent").SetValue(new Slider(50, 100, 0)));
                    Config.AddSubMenu(harass);
                }

                var menuClear = new Menu("Farm / Jungle", "Mode.Clear");
                {
                    MenuLane = new Menu("Lane", "Mode.Lane");
                    {
                        if (ChampionClass.LaneClearMenu(MenuLane))
                        {
                            MenuLane.AddItem(new MenuItem("Lane.Min.Mana", ":: Min. Mana %:").SetValue(new Slider(60, 100, 0)));
                        }
                        menuClear.AddSubMenu(MenuLane);
                    }

                    MenuJungle = new Menu("Jungle", "Mode.Jungle");
                    {
                        if (ChampionClass.JungleClearMenu(MenuJungle))
                        {
                            MenuJungle.AddItem(new MenuItem("Jungle.Min.Mana", ":: Min. Mana %:").SetValue(new Slider(30, 100, 0)));
                            MenuJungle.AddItem(new MenuItem("Jungle.Items", ":: Use Items:").SetValue(new StringList(new[] { "Off", "Use for Baron", "Use for Baron", "Both" }, 3)));
                            menuClear.AddSubMenu(MenuJungle);
                        }
                    }

                    menuClear.AddItem(new MenuItem("Farm.Active", ":: Farm Active!").SetValue(new KeyBind("J".ToCharArray()[0], KeyBindType.Toggle, true))).Permashow(true, "Marksman | Farm", SharpDX.Color.Aqua);
                    menuClear.AddItem(new MenuItem("Farm.Min.Mana.Control", ":: Min. Mana Control!").SetValue(new KeyBind("M".ToCharArray()[0], KeyBindType.Toggle, true))).Permashow(true, "Marksman | Farm Min. Mana Control", SharpDX.Color.Aqua);
                    Config.AddSubMenu(menuClear);
                }


                //var laneclear = new Menu("Lane Mode", "LaneClear");
                //if (ChampionClass.LaneClearMenu(laneclear))
                //{
                //    laneclear.AddItem(new MenuItem("Lane.Enabled", ":: Enable Lane Farm!").SetValue(new KeyBind("L".ToCharArray()[0],KeyBindType.Toggle, true))).Permashow(true, "Marksman | Enable Lane Farm", SharpDX.Color.Aqua);

                //    var minManaMenu = new Menu("Min. Mana Settings", "Lane.MinMana.Title");
                //    {
                //        minManaMenu.AddItem(new MenuItem("LaneMana.Alone", "If I'm Alone %:").SetValue(new Slider(30, 100, 0))).SetFontStyle(FontStyle.Regular, SharpDX.Color.LightSkyBlue);
                //        minManaMenu.AddItem(new MenuItem("LaneMana.Enemy", "If Enemy Close %:").SetValue(new Slider(60, 100, 0))).SetFontStyle(FontStyle.Regular, SharpDX.Color.IndianRed);
                //        laneclear.AddSubMenu(minManaMenu);
                //    }
                //    Config.AddSubMenu(laneclear);
                //}

                //var jungleClear = new Menu("Jungle Mode", "JungleClear");
                //if (ChampionClass.JungleClearMenu(jungleClear))
                //{
                //    var minManaMenu = new Menu("Min. Mana Settings", "Jungle.MinMana.Title");
                //    {
                //        minManaMenu.AddItem(new MenuItem("Jungle.Mana.Ally", "Ally Mobs %:").SetValue(new Slider(50, 100, 0))).SetFontStyle(FontStyle.Regular, SharpDX.Color.LightSkyBlue);
                //        minManaMenu.AddItem(new MenuItem("Jungle.Mana.Enemy", "Enemy Mobs %:").SetValue(new Slider(30, 100, 0))).SetFontStyle(FontStyle.Regular, SharpDX.Color.IndianRed);
                //        minManaMenu.AddItem(new MenuItem("Jungle.Mana.BigBoys", "Baron/Dragon %:").SetValue(new Slider(70, 100, 0))).SetFontStyle(FontStyle.Regular, SharpDX.Color.HotPink);
                //        jungleClear.AddSubMenu(minManaMenu);
                //    }
                //    jungleClear.AddItem(new MenuItem("Jungle.Items", ":: Use Items:").SetValue(new StringList(new[] {"Off", "Use for Baron", "Use for Baron", "Both"}, 3)));
                //    jungleClear.AddItem(new MenuItem("Jungle.Enabled", ":: Enable Jungle Farm!").SetValue(new KeyBind("J".ToCharArray()[0], KeyBindType.Toggle, true))).Permashow(true, "Marksman | Enable Jungle Farm", SharpDX.Color.Aqua);
                //    Config.AddSubMenu(jungleClear);
                //}

                /*----------------------------------------------------------------------------------------------------------*/
                //Obj_AI_Base ally = (from aAllies in HeroManager.Allies
                //    from aSupportedChampions in
                //        new[]
                //        {
                //            "janna", "tahm", "leona", "lulu", "lux", "nami", "shen", "sona", "braum", "bard"
                //        }
                //    where aSupportedChampions == aAllies.ChampionName.ToLower()
                //    select aAllies).FirstOrDefault();

                //if (ally != null)
                //{
                //    var menuAllies = new Menu("Ally Combo", "Ally.Combo").SetFontStyle(FontStyle.Regular, Color.Crimson);
                //    {
                //        Obj_AI_Hero leona = HeroManager.Allies.Find(e => e.ChampionName.ToLower() == "leona");
                //        if (leona != null)
                //        {
                //            var menuLeona = new Menu("Leona", "Leona");
                //            menuLeona.AddItem(new MenuItem("Leona.ComboBuff", "Force Focus Marked Enemy for Bonus Damage").SetValue(true));
                //            menuAllies.AddSubMenu(menuLeona);
                //        }

                //        Obj_AI_Hero Lux = HeroManager.Allies.Find(e => e.ChampionName.ToLower() == "lux");
                //        if (Lux != null)
                //        {
                //            var menuLux = new Menu("Lux", "Lux");
                //            menuLux.AddItem(new MenuItem("Lux.ComboBuff", "Force Focus Marked Enemy for Bonus Damage").SetValue(true));
                //            menuAllies.AddSubMenu(menuLux);
                //        }

                //        Obj_AI_Hero Shen = HeroManager.Allies.Find(e => e.ChampionName.ToLower() == "shen");
                //        if (Shen != null)
                //        {
                //            var menuShen = new Menu("Shen", "Shen");
                //            menuShen.AddItem(new MenuItem("Shen.ComboBuff", "Force Focus Q Marked Enemy Objects for Heal").SetValue(true));
                //            menuShen.AddItem(new MenuItem("Shen.ComboBuff", "Minimum Heal:").SetValue(new Slider(80)));
                //            menuAllies.AddSubMenu(menuShen);
                //        }

                //        Obj_AI_Hero Tahm = HeroManager.Allies.Find(e => e.ChampionName.ToLower() == "Tahm");
                //        if (Tahm != null)
                //        {
                //            var menuTahm = new Menu("Tahm", "Tahm");
                //            menuTahm.AddItem(new MenuItem("Tahm.ComboBuff", "Force Focus Marked Enemy for Stun").SetValue(true));
                //            menuAllies.AddSubMenu(menuTahm);
                //        }

                //        Obj_AI_Hero Sona = HeroManager.Allies.Find(e => e.ChampionName.ToLower() == "Sona");
                //        if (Sona != null)
                //        {
                //            var menuSona = new Menu("Sona", "Sona");
                //            menuSona.AddItem(new MenuItem("Sona.ComboBuff", "Force Focus to Marked Enemy").SetValue(true));
                //            menuAllies.AddSubMenu(menuSona);
                //        }

                //        Obj_AI_Hero Lulu = HeroManager.Allies.Find(e => e.ChampionName.ToLower() == "Lulu");
                //        if (Lulu != null)
                //        {
                //            var menuLulu = new Menu("Lulu", "Lulu");
                //            menuLulu.AddItem(new MenuItem("Lulu.ComboBuff", "Force Focus to Enemy If I have E buff").SetValue(true));
                //            menuAllies.AddSubMenu(menuLulu);
                //        }

                //        Obj_AI_Hero Nami = HeroManager.Allies.Find(e => e.ChampionName.ToLower() == "nami");
                //        if (Nami != null)
                //        {
                //            var menuNami = new Menu("Nami", "Nami");
                //            menuNami.AddItem(new MenuItem("Nami.ComboBuff", "Force Focus to Enemy If I have E Buff").SetValue(true));
                //            menuAllies.AddSubMenu(menuNami);
                //        }
                //    }
                //    Config.AddSubMenu(menuAllies);
                //}
                /*----------------------------------------------------------------------------------------------------------*/

                var misc = new Menu("Misc", "Misc").SetFontStyle(FontStyle.Regular, SharpDX.Color.DarkOrange);
                if (ChampionClass.MiscMenu(misc))
                {
                    misc.AddItem(new MenuItem("Misc.SaveManaForUltimate", "Save Mana for Ultimate").SetValue(false));
                    Config.AddSubMenu(misc);
                }

                /*
                 *              var extras = new Menu("Extras", "Extras");
                 *              if (ChampionClass.ExtrasMenu(extras))
                 *              {
                 *                  Config.AddSubMenu(extras);
                 *              }
                 */

                var marksmanDrawings = new Menu("Drawings", "MDrawings");
                Config.AddSubMenu(marksmanDrawings);

                var drawing = new Menu(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(championName), "Drawings").SetFontStyle(FontStyle.Regular, SharpDX.Color.Aquamarine);
                if (ChampionClass.DrawingMenu(drawing))
                {
                    marksmanDrawings.AddSubMenu(drawing);
                }

                var globalDrawings = new Menu("Global", "GDrawings");
                {
                    marksmanDrawings.AddItem(new MenuItem("Draw.TurnOff", "Drawings").SetValue(new StringList(new[] { "Disable", "Enable", "Disable on Combo Mode", "Disable on Lane/Jungle Mode", "Both" }, 1)));
                    globalDrawings.AddItem(new MenuItem("Draw.MinionLastHit", "Minion Last Hit").SetValue(new StringList(new[] { "Off", "On", "Just Out of AA Range Minions" }, 2)));
                    globalDrawings.AddItem(new MenuItem("Draw.KillableEnemy", "Killable Enemy Text").SetValue(false));
                    //GlobalDrawings.AddItem(new MenuItem("Draw.JunglePosition", "Jungle Farm Position").SetValue(new StringList(new[] { "Off", "If I'm Close to Mobs", "If Jungle Clear Active" }, 2)));
                    marksmanDrawings.AddSubMenu(globalDrawings);
                }

                //CreateButtons();
            }

            ChampionClass.MainMenu(Config);
            ChampionClass.ToolsMenu(MenuExtraTools);

            //Evade.Evade.Initiliaze();
            //Config.AddSubMenu(Evade.Config.Menu);
            //var y = new Common.CommonObjectDetector();
            Config.AddToMainMenu();
            MenuExtraTools.AddToMainMenu();

            foreach (var i in Config.Children.SelectMany(GetChildirens))
            {
                i.DisplayName = ":: " + i.DisplayName;
            }

            foreach (var i in MenuExtraTools.Children.SelectMany(GetChildirens))
            {
                i.DisplayName = ":: " + i.DisplayName;
            }


            //CheckAutoWindUp();

            Drawing.OnDraw     += Drawing_OnDraw;
            Drawing.OnEndScene += eventArgs =>
            {
                //DrawButtons();
                if (Config.Item("Draw.KillableEnemy").GetValue <bool>())
                {
                    foreach (var e in HeroManager.Enemies.Where(e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) * 2)))
                    {
                        var x = (int)Math.Ceiling(e.Health / ObjectManager.Player.GetAutoAttackDamage(e));
                        //Utils.Utils.DrawText(CommonGeometry.Text, $"{x} x AA = Kill", (int)e.HPBarPosition.X + 20, (int)e.HPBarPosition.Y + 17, SharpDX.Color.White);
                        CommonGeometry.Text.DrawTextLeft(string.Format("{0} x AA Kill", x), (int)e.HPBarPosition.X + 5, (int)e.HPBarPosition.Y + 25, SharpDX.Color.White);
                    }
                    //var t = KillableEnemyAa;
                    //if (t.Key != null && t.Key.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 1000) &&
                    //    t.Value > 0)
                    //{
                    //    Utils.Utils.DrawText(CommonGeometry.Text, string.Format("{0} x AA Damage = Kill", t.Value), (int)t.Key.HPBarPosition.X + 30, (int)t.Key.HPBarPosition.Y + 5, SharpDX.Color.White);


                    //}
                }
            };
            Game.OnUpdate += GameOnUpdate;
            Game.OnUpdate += delegate(EventArgs eventArgs) { ChampionClass.GameOnUpdate(eventArgs); };

            Game.OnUpdate += eventArgs =>
            {
                if (ChampionClass.ComboActive)
                {
                    ChampionClass.ExecuteCombo();
                }
                if (ChampionClass.LaneClearActive)
                {
                    ChampionClass.ExecuteLane();
                }
                if (ChampionClass.JungleClearActive)
                {
                    ChampionClass.ExecuteJungle();
                }
                ChampionClass.PermaActive();
            };

            Orbwalking.OnAttack += (unit, target) =>
            {//
             // if (unit.IsMe)
             //   Game.PrintChat("Attack");
            };
            Orbwalking.AfterAttack  += (unit, target) => { ChampionClass.Orbwalking_AfterAttack(unit, target); };
            Orbwalking.BeforeAttack += (eventArgs) => { ChampionClass.Orbwalking_BeforeAttack(eventArgs); };


            GameObject.OnCreate += (sender, eventArgs) => { ChampionClass.OnCreateObject(sender, args); };
            GameObject.OnDelete += (sender, eventArgs) => { ChampionClass.OnDeleteObject(sender, args); };

            Drawing.OnEndScene += eventArgs => { ChampionClass.DrawingOnEndScene(eventArgs); };

            Obj_AI_Base.OnBuffAdd          += (sender, eventArgs) => { ChampionClass.Obj_AI_Base_OnBuffAdd(sender, eventArgs); };
            Obj_AI_Base.OnBuffRemove       += (sender, eventArgs) => { ChampionClass.Obj_AI_Base_OnBuffRemove(sender, eventArgs); };
            Obj_AI_Base.OnProcessSpellCast += (sender, eventArgs) => { ChampionClass.Obj_AI_Base_OnProcessSpellCast(sender, eventArgs); };
            Obj_AI_Base.OnPlayAnimation    += (sender, eventArgs) => { ChampionClass.Obj_AI_Base_OnPlayAnimation(sender, eventArgs); };

            AntiGapcloser.OnEnemyGapcloser += (gapcloser) => { ChampionClass.AntiGapcloser_OnEnemyGapcloser(gapcloser); };

            Spellbook.OnCastSpell += (sender, eventArgs) => { ChampionClass.Spellbook_OnCastSpell(sender, eventArgs); };

            Interrupter2.OnInterruptableTarget += (sender, eventArgs) => { ChampionClass.Interrupter2_OnInterruptableTarget(sender, eventArgs); };

            Obj_AI_Base.OnPlayAnimation += (sender, eventArgs) => { ChampionClass.Obj_AI_Base_OnPlayAnimation(sender, eventArgs); };

            Console.Clear();
        }
Exemple #14
0
        private static void GameOnUpdate(EventArgs args)
        {
            //Update the combo and harass values.
            ChampionClass.ComboActive = ChampionClass.Config.Item("Orbwalk").GetValue <KeyBind>().Active;

            var vHarassManaPer = Config.Item("HarassMana").GetValue <Slider>().Value;

            ChampionClass.HarassActive = ChampionClass.Config.Item("Farm").GetValue <KeyBind>().Active&&
                                         ObjectManager.Player.ManaPercent >= vHarassManaPer;

            ChampionClass.ToggleActive = ObjectManager.Player.ManaPercent >= vHarassManaPer &&
                                         ChampionClass.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo &&
                                         !ObjectManager.Player.IsRecalling();

            #region LaneClearActive
            ChampionClass.LaneClearActive = ChampionClass.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.None &&
                                            ChampionClass.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo &&
                                            Config.Item("Farm.Active").GetValue <KeyBind>().Active&&
                                            ObjectManager.Player.ManaPercent >= (Config.Item("Farm.Min.Mana.Control").GetValue <KeyBind>().Active ? Config.Item("Lane.Min.Mana").GetValue <Slider>().Value : 0);
            #endregion LaneClearActive

            #region JungleClearActive
            ChampionClass.JungleClearActive = ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear &&
                                              Config.Item("Farm.Active").GetValue <KeyBind>().Active&&
                                              MinionManager.GetMinions(ObjectManager.Player.Position, LeagueSharp.Common.Orbwalking.GetRealAutoAttackRange(null) + 65, MinionTypes.All, MinionTeam.Neutral).Count > 0 &&
                                              ObjectManager.Player.ManaPercent >= (Config.Item("Farm.Min.Mana.Control").GetValue <KeyBind>().Active ? Config.Item("Jungle.Min.Mana").GetValue <Slider>().Value : 0);
            #endregion JungleClearActive

            ChampionClass.LastHitActive = ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit;

            //ChampionClass.JungleClearActive = ChampionClass.Config.Item("LaneClear").GetValue<KeyBind>().Active && ObjectManager.Player.ManaPercent >= Config.Item("Jungle.Mana").GetValue<Slider>().Value;

            //ChampionClass.GameOnUpdate(args);

            UseSummoners();
            var useItemModes = Config.Item("UseItemsMode").GetValue <StringList>().SelectedIndex;

            //Items
            if (
                !((ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo &&
                   (useItemModes == 2 || useItemModes == 3))
                  ||
                  (ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed &&
                   (useItemModes == 1 || useItemModes == 3))))
            {
                return;
            }

            var botrk      = Config.Item("BOTRK").GetValue <bool>();
            var ghostblade = Config.Item("GHOSTBLADE").GetValue <bool>();
            var sword      = Config.Item("SWORD").GetValue <bool>();
            var muramana   = Config.Item("MURAMANA").GetValue <bool>();
            var target     = ChampionClass.Orbwalker.GetTarget() as Obj_AI_Base;

            var smiteReady = SmiteSlot != SpellSlot.Unknown &&
                             ObjectManager.Player.Spellbook.CanUseSpell(SmiteSlot) == SpellState.Ready;

            if (smiteReady && ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                Smiteontarget(target as Obj_AI_Hero);
            }

            if (botrk)
            {
                if (target != null && target.Type == ObjectManager.Player.Type &&
                    target.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < 550)
                {
                    var hasCutGlass = Items.HasItem(3144);
                    var hasBotrk    = Items.HasItem(3153);

                    if (hasBotrk || hasCutGlass)
                    {
                        var itemId = hasCutGlass ? 3144 : 3153;
                        var damage = ObjectManager.Player.GetItemDamage(target, Damage.DamageItems.Botrk);
                        if (hasCutGlass || ObjectManager.Player.Health + damage < ObjectManager.Player.MaxHealth)
                        {
                            Items.UseItem(itemId, target);
                        }
                    }
                }
            }

            if (ghostblade && target != null && target.Type == ObjectManager.Player.Type &&
                !ObjectManager.Player.HasBuff("ItemSoTD") && /*if Sword of the divine is not active */
                Orbwalking.InAutoAttackRange(target))
            {
                Items.UseItem(3142);
            }

            if (sword && target != null && target.Type == ObjectManager.Player.Type &&
                !ObjectManager.Player.HasBuff("spectralfury") && /*if ghostblade is not active*/
                Orbwalking.InAutoAttackRange(target))
            {
                Items.UseItem(3131);
            }

            if (muramana && Items.HasItem(3042))
            {
                if (target != null && ChampionClass.ComboActive &&
                    target.Position.Distance(ObjectManager.Player.Position) < 1200)
                {
                    if (!ObjectManager.Player.HasBuff("Muramana"))
                    {
                        Items.UseItem(3042);
                    }
                }
                else
                {
                    if (ObjectManager.Player.HasBuff("Muramana"))
                    {
                        Items.UseItem(3042);
                    }
                }
            }
        }
Exemple #15
0
        public override void ExecuteCombo()
        {
            if (GetValue <bool>("Combo.Q.Use.Urf") && Q.IsReady())
            {
                var fPredEnemy =
                    HeroManager.Enemies.Where(e => e.IsValidTarget(Q.Range * 1.2f))
                    .Select(enemy => Q.GetPrediction(enemy, true))
                    .FirstOrDefault(pred => pred.Hitchance >= HitChance.High);
                if (fPredEnemy != null && !CommonUtils.IsWallBetween(ObjectManager.Player.Position, fPredEnemy.CastPosition))
                {
                    Q.Cast(fPredEnemy.CastPosition);
                }
            }


            if (GetValue <bool>("Combo.Q.Use") && Q.IsReady())
            {
                var fPredEnemy =
                    HeroManager.Enemies.Where(e => e.IsValidTarget(Q.Range * 1.2f) && Q.IsKillable(e))
                    .Select(enemy => Q.GetPrediction(enemy, true))
                    .FirstOrDefault(pred => pred.Hitchance >= HitChance.High);
                if (fPredEnemy != null && !CommonUtils.IsWallBetween(ObjectManager.Player.Position, fPredEnemy.CastPosition))
                {
                    Q.Cast(fPredEnemy.CastPosition);
                }
            }

            if (GetValue <bool>("Combo.Q.Use") && Q.IsReady() && !HaveAmmo1)
            {
                var fPredEnemy =
                    HeroManager.Enemies.Where(e => e.IsValidTarget(Q.Range * 1.2f))
                    .Select(enemy => Q.GetPrediction(enemy, true))
                    .FirstOrDefault(pred => pred.Hitchance >= HitChance.High);
                if (fPredEnemy != null && !CommonUtils.IsWallBetween(ObjectManager.Player.Position, fPredEnemy.CastPosition))
                {
                    Q.Cast(fPredEnemy.CastPosition);
                }
            }
            if (GetValue <bool>("Combo.E.Use") && !Q.IsReady() && !HaveAmmo1 && E.IsReady())
            {
                var t = TargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null) + 65, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget())
                {
                    E.Cast(CommonUtils.GetDashPosition(E, t, 200));
                }
            }

            if (GetValue <bool>("Combo.W.Use") && W.IsReady() && ObjectManager.Player.Mana > (Q.ManaCost + E.ManaCost + W.ManaCost + (R.Cooldown < 10 ? R.ManaCost:0)))
            {
                var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget(W.Range) && (t.HasBuffOfType(BuffType.Stun) || t.HasBuffOfType(BuffType.Snare) || t.HasBuffOfType(BuffType.Taunt)))
                {
                    W.Cast(t, false, true);
                }
            }

            if (GetValue <bool>("Combo.W.Use") && W.IsReady() &&
                ObjectManager.Player.Mana > (Q.ManaCost + E.ManaCost + W.ManaCost + (R.Cooldown < 10 ? R.ManaCost : 0)))
            {
                var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget())
                {
                    W.Cast(t, false, true);
                }
            }

            if (GetValue <bool>("Combo.R.Use") && R.IsReady())
            {
                CastR();
            }

            base.ExecuteCombo();
        }