Exemplo n.º 1
0
        public override void OnDraw(EventArgs args)
        {
            base.OnDraw(args);
            if (DrawWStacksBool)
            {
                var target =
                    ValidTargets.FirstOrDefault(
                        enemy => enemy.HasBuff("vaynesilvereddebuff") && enemy.IsValidTarget(2000));
                if (target.IsValidTarget())
                {
                    var x = target.HPBarPosition.X + 50;
                    var y = target.HPBarPosition.Y - 20;

                    if (W.Level > 0)
                    {
                        int stacks = target.GetBuffCount("vaynesilvereddebuff");
                        if (stacks > -1)
                        {
                            for (var i = 0; i < 3; i++)
                            {
                                Drawing.DrawLine(x + i * 20, y, x + i * 20 + 10, y, 10,
                                                 stacks <= i ? Color.DarkGray : Color.DeepSkyBlue);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        private SpellData(byte[] data)
        {
            byte b2 = data[2];
            byte b11 = data[11];
            byte b12 = data[12];

            data.Decode();

            data[2] = b2;
            data[11] = b11;
            data[12] = b12;

            this.index = data[0] | data[1] << 8;
            this.magictype = (MagicType)(data[2] | data[3] << 8);
            this.element = (Element)(sbyte)data[4];
            this.validtargets = (ValidTargets)(data[6] | data[7] << 8);
            this.skill = (Skill)(data[8] | data[9] << 8);
            this.mpcost = (data[10] | data[11] << 8);
            this.casttime = data[12];
            this.recast = data[13];
            this.id = data[38] | data[39] << 8;
            this.iconid = data[40];

            this.valid = this.iconid != 0;
            // Check if spell is usable by any job.
            for (int i = 0; i < 24; i++)
            {
                this.valid |= data[14 + i] != 0xFF;
            }
        }
Exemplo n.º 3
0
        void ELogic()
        {
            if (EntityManager.Heroes.Enemies.Any(t => IsRendKillable(t)))
            {
                E.Cast();
            }

            if (EntityManager.MinionsAndMonsters.Monsters.Any(IsRendKillable) || ObjectManager.Get <Obj_AI_Minion>().Any(m => (m.CharData.BaseSkinName.Contains("Baron") || m.CharData.BaseSkinName.Contains("Dragon") || m.CharData.BaseSkinName.Contains("Crab") || m.CharData.BaseSkinName.Contains("Herald")) && this.IsRendKillable(m)))
            {
                E.Cast();
            }

            if (AlwaysUseEIf2MinionsKillableBool && GameObjects.EnemyMinions.Count(IsRendKillable) >= 2)
            {
                E.Cast();
            }

            if (UseEIfResettedByAMinionBool && ObjectManager.Player.ManaPercent > EResetByAMinionMinManaSlider)
            {
                if (ValidTargets.Any(e => e != null ? e.Distance(ObjectManager.Player.ServerPosition) > 615 : false && GetRendBuff(e).Count >= MinEnemyStacksForEMinionResetSlider) && EntityManager.MinionsAndMonsters.EnemyMinions.Any(m => IsRendKillable(m)))
                {
                    E.Cast();
                }
            }

            if ((Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LastHit)) &&
                GameObjects.EnemyMinions.Any(m => IsRendKillable(m) && Health.GetPrediction(m, (int)((Game.Ping / 2) + ObjectManager.Player.AttackCastDelay * 1000)) < 1 && Health.GetPrediction(m, (int)((Game.Ping / 2) + 100)) > 1))
            {
                E.Cast();
            }
        }
Exemplo n.º 4
0
        public override void OnUpdate(EventArgs args)
        {
            base.OnUpdate(args);

            if (E.IsReady())
            {
                this.ELogic();
            }
            if (Orbwalker.ActiveMode == OrbwalkingMode.Combo && Q.IsReady() && Orbwalker.CanMove)
            {
                foreach (var enemy in ValidTargets.Where(e => e.Distance(ObjectManager.Player) < 900))
                {
                    var pred = Q.GetPrediction(enemy);
                    if (pred.Hitchance >= HitChance.High && !pred.CollisionObjects.Any())
                    {
                        Q.Cast(pred.UnitPosition);
                    }
                }
            }

            #region Orbwalk On Minions
            if (OrbwalkOnMinions && Orbwalker.ActiveMode == OrbwalkingMode.Combo && ValidTargets.Count(e => e.InAutoAttackRange()) == 0 && ObjectManager.Player.InventoryItems.Any(i => (int)i.Id == 3085))
            {
                var minion =
                    GameObjects.EnemyMinions.Where(m => m.InAutoAttackRange()).OrderBy(m => m.Health).FirstOrDefault();
                if (minion != null)
                {
                    EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, minion);
                }
            }
            #endregion Orbwalk On Minions
        }
Exemplo n.º 5
0
        private void OnAction(object sender, OrbwalkingActionArgs args)
        {
            if (args.Type == OrbwalkingType.BeforeAttack)
            {
                //Anti Melee
                var possibleNearbyMeleeChampion =
                    ValidTargets.FirstOrDefault(
                        e => e.IsMelee && e.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < 350);

                if (possibleNearbyMeleeChampion.IsValidTarget())
                {
                    if (E.IsReady() && UseEAntiMelee)
                    {
                        var pos = ObjectManager.Player.ServerPosition.Extend(possibleNearbyMeleeChampion.ServerPosition,
                                                                             -Misc.GiveRandomInt(250, 475));
                        if (!IsDangerousPosition(pos))
                        {
                            if (pos.IsUnderEnemyTurret() && !ObjectManager.Player.IsUnderEnemyTurret())
                            {
                                return;
                            }
                            E.Cast(pos);
                        }
                    }
                }
            }
            if (args.Type == OrbwalkingType.AfterAttack)
            {
                //JungleClear
                if (args.Target is Obj_AI_Minion)
                {
                    JungleClear(args.Target);
                }
            }
        }
Exemplo n.º 6
0
        internal GeneralItem(byte[] data)
            : base(data)
        {
            this.validtargets = (ValidTargets)(data[0x0C] | data[0x0D] << 8);

            this.InitializeStrings(data, 0x18);
        }
Exemplo n.º 7
0
        void WLogic()
        {
            var goodTarget =
                ValidTargets.FirstOrDefault(
                    e =>
                    e.IsValidTarget(820) && e.HasBuffOfType(BuffType.Knockup) || e.HasBuffOfType(BuffType.Snare) ||
                    e.HasBuffOfType(BuffType.Stun) || e.HasBuffOfType(BuffType.Suppression) || e.IsCharmed ||
                    e.IsCastingInterruptableSpell() || e.HasBuff("ChronoRevive") || e.HasBuff("ChronoShift"));

            if (goodTarget != null)
            {
                var pos = goodTarget.ServerPosition;
                if (pos.Distance(ObjectManager.Player.ServerPosition) < 820)
                {
                    W.Cast(goodTarget.ServerPosition);
                }
            }
            foreach (var enemyMinion in
                     ObjectManager.Get <Obj_AI_Base>()
                     .Where(
                         m =>
                         m.IsEnemy && m.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < W.Range &&
                         m.HasBuff("teleport_target")))
            {
                W.Cast(enemyMinion.ServerPosition);
            }
        }
Exemplo n.º 8
0
        private void RLogic()
        {
            if (!UseRBool || !R.IsReady() || ObjectManager.Player.IsRecalling() || Orbwalker.ActiveMode == OrbwalkingMode.None) return;
            if (AlwaysSaveManaForWBool && ObjectManager.Player.Mana < GetRMana() + GetWMana()) return;
            var myPos = ObjectManager.Player.ServerPosition;
            foreach (
                var enemy in
                    ValidTargets.Where(h => h.Distance(myPos) < R.Range && h.HealthPercent < 25 && h.IsValidTarget()))
            {
                var prediction = R.GetPrediction(enemy, true);
                if ((int)prediction.Hitchance > (int)HitChance.Medium)
                {
                    R.Cast(prediction.UnitPosition);
                }
            }
            if (GetRStacks() >= MaxRStacksSlider.Value) return;
            if ((Orbwalker.ActiveMode != OrbwalkingMode.Combo && !UseRHarass)) return;

            foreach (var enemy in ValidTargets.Where(h => h.Distance(myPos) < R.Range && h.IsValidTarget() && h.HealthPercent < 35))
            {
                var dist = enemy.Distance(ObjectManager.Player.ServerPosition);
                if (Orbwalker.CanAttack && dist < 550) continue;
                var prediction = R.GetPrediction(enemy, true);
                if ((int) prediction.Hitchance > (int) HitChance.Medium)
                {
                    R.Cast(prediction.UnitPosition);
                }
            }
        }
Exemplo n.º 9
0
 private void WLogic()
 {
     if (W.IsReady() && !IsWActive() && ValidTargets.Any(h => h.Health > 1 && h.Distance(ObjectManager.Player.ServerPosition) < GetAttackRangeAfterWIsApplied() && h.LSIsValidTarget()) && Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
     {
         W.Cast();
     }
 }
Exemplo n.º 10
0
        void WLogic()
        {
            var goodTarget =
                ValidTargets.FirstOrDefault(
                    e =>
                    !e.IsDead && e.HasBuffOfType(BuffType.Knockup) || e.HasBuffOfType(BuffType.Snare) ||
                    e.HasBuffOfType(BuffType.Stun) || e.HasBuffOfType(BuffType.Suppression) || e.IsCharmed ||
                    e.IsCastingInterruptableSpell() || !e.CanMove);

            if (goodTarget != null)
            {
                var pos = goodTarget.ServerPosition;
                if (!GameObjects.AllyMinions.Any(m => !m.IsDead && m.CharData.BaseSkinName.Contains("trap") && m.Distance(goodTarget.ServerPosition) < 100) && pos.Distance(ObjectManager.Player.ServerPosition) < 820)
                {
                    W.Cast(goodTarget.ServerPosition);
                }
            }
            foreach (var enemyMinion in
                     ObjectManager.Get <Obj_AI_Base>()
                     .Where(
                         m =>
                         m.IsEnemy && m.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < W.Range &&
                         m.HasBuff("teleport_target")))
            {
                W.Cast(enemyMinion.ServerPosition);
            }
            foreach (var hero in GameObjects.EnemyHeroes.Where(h => h.Distance(ObjectManager.Player) < W.Range))
            {
                var pred = Prediction.GetPrediction(hero, W);
                if (!GameObjects.AllyMinions.Any(m => !m.IsDead && m.CharData.BaseSkinName.Contains("trap") && m.Distance(pred.Item2) < 100) && (int)pred.Item1 > (int)HitChance.Medium)
                {
                    W.Cast(pred.Item2);
                }
            }
        }
Exemplo n.º 11
0
        public override string NextMessage()
        {
            if (CardSource == null)
            {
                return("");
            }

            //show library cards if needeed
            if (WaitForTarget && ValidTargets != null)
            {
                Library library = CardSource.Controler.Library;
                if (ValidTargets.OfType <CardTarget> ().Where
                        (cct => cct.ValidGroup == CardGroupEnum.Library).Count() > 0)
                {
                    if (!library.IsExpanded)
                    {
                        library.toogleShowAll();
                    }
                }
                else if (library.IsExpanded)
                {
                    library.toogleShowAll();
                }

                return(Source.TargetPrompt);
            }

            return("");
        }
Exemplo n.º 12
0
        private void OnCreateObj(GameObject obj, EventArgs args)
        {
            if (obj.Name != "missile" && obj.IsEnemy && obj.Distance(ObjectManager.Player.ServerPosition) < 900)
            {
                //J4 wall E
                if (obj.Name.ToLower() == "jarvanivwall")
                {
                    var enemyJ4 = ValidTargets.First(h => h.CharData.BaseSkinName.Contains("Jarvan"));
                    if (enemyJ4 != null && enemyJ4.LSIsValidTarget())
                    {
                        E.Cast(enemyJ4.ServerPosition);
                    }
                }

                /*if (obj.Name.ToLower().Contains("soraka_base_e_rune.troy") && EntityManager.Heroes.Enemies.Count(e => e.IsHPBarRendered && e.Distance(obj.Position) < 300) > 0)
                 * {
                 *  Q.Cast(obj.Position);
                 * }*/
                if (EntityManager.Heroes.Allies.All(h => h.CharData.BaseSkinName != "Rengar"))
                {
                    if (obj.Name == "Rengar_LeapSound.troy")
                    {
                        E.Cast(obj.Position);
                    }
                    if (obj.Name == "Rengar_Base_P_Buf_Max.troy" || obj.Name == "Rengar_Base_P_Leap_Grass.troy")
                    {
                        E.Cast(ObjectManager.Player.ServerPosition);
                    }
                }
            }
        }
Exemplo n.º 13
0
 private void OnOrbwalkerAction(object sender, OrbwalkingActionArgs orbwalkingActionArgs)
 {
     if (orbwalkingActionArgs.Type == OrbwalkingType.AfterAttack)
     {
         Orbwalker.ForceTarget = null;
         if (Q.IsReady())
         {
             this.QLogic(orbwalkingActionArgs.Target);
             if (UseQStackTransferBool)
             {
                 this.QLogic(orbwalkingActionArgs.Target);
             }
         }
     }
     if (orbwalkingActionArgs.Type == OrbwalkingType.BeforeAttack)
     {
         if (FocusWBuffedEnemyBool)
         {
             Orbwalker.ForceTarget =
                 ValidTargets.FirstOrDefault(
                     h =>
                     h.Distance(ObjectManager.Player.ServerPosition) < 600 &&
                     h.HasBuff("kalistacoopstrikemarkally"));
         }
     }
 }
Exemplo n.º 14
0
        public override void OnUpdate(EventArgs args)
        {
            if (E.IsReady())
            {
                this.ELogic();
            }
            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && Q.IsReady() && Orbwalker.CanMove)
            {
                foreach (var enemy in ValidTargets.Where(e => e.Distance(ObjectManager.Player) < 900))
                {
                    var pred = Q.GetPrediction(enemy);
                    if (pred.Hitchance >= LeagueSharp.SDK.HitChance.High && !pred.CollisionObjects.Any())
                    {
                        Q.Cast(enemy);
                    }
                }
            }

            #region Orbwalk On Minions
            if (OrbwalkOnMinions && Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && ValidTargets.Count(e => e.IsInAutoAttackRange(ObjectManager.Player)) == 0)
            {
                var minion = GameObjects.EnemyMinions.Where(m => m.IsInAutoAttackRange(ObjectManager.Player)).OrderBy(m => m.Health).FirstOrDefault();
                if (minion != null)
                {
                    EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, minion);
                }
            }
            #endregion Orbwalk On Minions
        }
Exemplo n.º 15
0
 private void Orbwalker_OnPostAttack(AttackableUnit target, EventArgs args)
 {
     Orbwalker.ForcedTarget = null;
     if (E.IsReady() && this.UseECombo)
     {
         if (!OnlyUseEOnMelees)
         {
             var eTarget = TargetSelector.GetTarget(UseEOnEnemiesCloserThanSlider, DamageType.Physical);
             if (eTarget != null)
             {
                 var pred = E.GetPrediction(eTarget);
                 if (pred.CollisionObjects.Count == 0 && (int)pred.Hitchance >= (int)HitChance.High)
                 {
                     E.Cast(pred.UnitPosition);
                 }
             }
         }
         else
         {
             var eTarget =
                 ValidTargets.FirstOrDefault(
                     e =>
                     e.IsMelee && e.Distance(ObjectManager.Player) < UseEOnEnemiesCloserThanSlider &&
                     !e.IsZombie);
             var pred = E.GetPrediction(eTarget);
             if (pred.CollisionObjects.Count == 0 && (int)pred.Hitchance >= (int)HitChance.Medium)
             {
                 E.Cast(pred.UnitPosition);
             }
         }
     }
 }
Exemplo n.º 16
0
        public CSPlugin()
        {
            MainMenu = new Menu("challengerseries", ObjectManager.Player.ChampionName + " To The Challenger", true, ObjectManager.Player.ChampionName);
            CrossAssemblySettings = MainMenu.Add(new Menu("crossassemblysettings", "Challenger Utils: "));
            DrawEnemyWaypoints    =
                CrossAssemblySettings.Add(new MenuBool("drawenemywaypoints", "Draw Enemy Waypoints", true));
            PlayUrfThemeNextGame = CrossAssemblySettings.Add(new MenuBool("playsoundatstart", "Play URF Theme Next Game", true));
            DelayAction.Add(15000, () => Orbwalker.Enabled = true);
            Drawing.OnDraw += args =>
            {
                if (DrawEnemyWaypoints)
                {
                    foreach (
                        var e in
                        ValidTargets.Where(
                            en => en.Distance(ObjectManager.Player) < 5000))
                    {
                        var ip = Drawing.WorldToScreen(e.Position); //start pos

                        var wp = e.GetWaypoints();
                        var c  = wp.Count - 1;
                        if (wp.Count() <= 1)
                        {
                            break;
                        }

                        var w = Drawing.WorldToScreen(wp[c].ToVector3()); //endpos

                        Drawing.DrawLine(ip.X, ip.Y, w.X, w.Y, 2, Color.Red);
                        Drawing.DrawText(w.X, w.Y, Color.Red, e.CharData.BaseSkinName);
                    }
                }
            };
        }
Exemplo n.º 17
0
 private void OnCreateObj(GameObject obj, EventArgs args)
 {
     if (obj.Name != "missile" && obj.IsEnemy && obj.Distance(ObjectManager.Player.ServerPosition) < 900)
     {
         //J4 wall E
         if (obj.Name.ToLower() == "jarvanivwall")
         {
             var enemyJ4 = ValidTargets.First(h => h.CharData.BaseSkinName.Contains("Jarvan"));
             if (enemyJ4 != null && enemyJ4.IsValidTarget())
             {
                 this.CastE(enemyJ4.ServerPosition);
             }
         }
         if (obj.Name.ToLower().Contains("soraka_base_e_rune.troy") &&
             GameObjects.EnemyHeroes.Count(e => e.IsHPBarRendered && e.Distance(obj.Position) < 300) > 0)
         {
             this.Q.Cast(obj.Position);
         }
         var rengo = GameObjects.EnemyHeroes.FirstOrDefault(e => e.CharData.BaseSkinName == "Rengar");
         if (rengo != null)
         {
             //rengar ult
             if (obj.Name == "Rengar_LeapSound.troy")
             {
                 CastE(obj.Position);
             }
             //rengar passive brush jump (atm the object pos is the brush where it came from so
             //                                  we're just gonna assume he's gonna jump on us)
             if (obj.Position.Distance(ObjectManager.Player.Position) < 725 && (obj.Name == "Rengar_Base_P_Buf_Max.troy" || obj.Name == "Rengar_Base_P_Leap_Grass.troy"))
             {
                 CastE(ObjectManager.Player.ServerPosition);
             }
         }
     }
 }
Exemplo n.º 18
0
        internal UsableItem(byte[] data)
            : base(data)
        {
            this.validtargets = (ValidTargets)(data[0x0C] | data[0x0D] << 8);
            this.casttime = data[0x0E] | data[0x0F] << 8;

            this.InitializeStrings(data, 0x18);
        }
Exemplo n.º 19
0
        public override void OnDraw(EventArgs args)
        {
            base.OnDraw(args);
            base.W.Range = GetAttackRangeAfterWIsApplied();
            base.R.Range = GetRRange();
            if (DrawWRangeBool)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetAttackRangeAfterWIsApplied(), W.IsReady() || IsWActive() ? Color.LimeGreen : Color.Red);
            }
            if (DrawRRangeBool)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetRRange() + 25, R.IsReady() ? Color.LimeGreen : Color.Red);
            }
            if (Q.IsReady() && UseQBool && Orbwalker.ActiveMode == OrbwalkingMode.Combo && ObjectManager.Player.Mana > GetQMana() + GetWMana())
            {
                foreach (
                    var enemy in
                    ValidTargets.Where(t => t.Distance(ObjectManager.Player) < 800)
                    .OrderBy(e => e.Distance(ObjectManager.Player)))
                {
                    var prediction = Q.GetPrediction(enemy);
                    if ((int)prediction.Hitchance >= (int)HitChance.VeryHigh)
                    {
                        Q.Cast(prediction.UnitPosition);
                    }
                }
            }
            var attackrange = GetAttackRangeAfterWIsApplied();
            var target      = TargetSelector.GetTarget(attackrange, DamageType.Physical);

            if (IsWActive() && target != null && target.Distance(ObjectManager.Player) > attackrange - 150)
            {
                E.CastIfHitchanceMinimum(target, HitChance.Medium);
            }

            #region Humanizer
            if (_humanizer != null)
            {
                _attacksSoFar = 0;
            }
            else if (_attacksSoFar >= HumanizerMinAttacks.Value)
            {
                _humanizer = new Humanizer(HumanizerMovementTime.Value);
            }
            if (!IsWActive())
            {
                _humanizer    = null;
                _attacksSoFar = 0;
            }
            if (_humanizer != null && _humanizer.ShouldDestroy)
            {
                _humanizer = null;
            }
            Orbwalker.SetMovementState(CanMove());
            Orbwalker.SetAttackState(CanAttack());
            #endregion Humanizer
        }
Exemplo n.º 20
0
 void QLogic(AttackableUnit target = null)
 {
     if (target != null)
     {
         if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
         {
             var hero = target as AIHeroClient;
             if (hero != null)
             {
                 if (hero.IsHPBarRendered)
                 {
                     var pred = Q.GetPrediction(hero);
                     if (pred.Hitchance >= LeagueSharp.SDK.HitChance.High)
                     {
                         Q.Cast(hero);
                         return;
                     }
                 }
             }
             else
             {
                 foreach (var tar in ValidTargets.Where(t => t.Distance(ObjectManager.Player) < 900))
                 {
                     if (ObjectManager.Player.ManaPercent > UseQManaSlider)
                     {
                         var pred = Q.GetPrediction(tar);
                         if (pred.Hitchance >= LeagueSharp.SDK.HitChance.High)
                         {
                             Q.Cast(hero);
                             return;
                         }
                     }
                 }
             }
         }
         if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
         {
             var minion = target as Obj_AI_Minion;
             if (minion != null && GetRendBuff(minion).Count >= UseQStackTransferMinStacksSlider &&
                 target.Health < Q.GetDamage(minion))
             {
                 foreach (var enemy in ValidTargets.Where(en => en.Distance(ObjectManager.Player) < 900))
                 {
                     var pred = Q.GetPrediction(enemy, false);
                     if (pred.Hitchance >= LeagueSharp.SDK.HitChance.High &&
                         pred.CollisionObjects.All(co => co is Obj_AI_Minion && co.Health < Q.GetDamage(co)) &&
                         pred.CollisionObjects.Any(m => m.NetworkId == target.NetworkId))
                     {
                         Q.Cast(enemy);
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 21
0
        private void OnAction(object sender, OrbwalkingActionArgs args)
        {
            if (args.Type == OrbwalkingType.BeforeAttack)
            {
                var possibleNearbyMeleeChampion =
                    ValidTargets.FirstOrDefault(
                        e => e.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < 350);

                if (possibleNearbyMeleeChampion.IsValidTarget())
                {
                    if (E.IsReady() && UseEAntiMelee)
                    {
                        var pos = ObjectManager.Player.ServerPosition.Extend(possibleNearbyMeleeChampion.ServerPosition,
                                                                             -Misc.GiveRandomInt(300, 475));
                        if (!IsDangerousPosition(pos))
                        {
                            E.Cast(pos);
                        }
                    }
                }
            }
            if (args.Type == OrbwalkingType.AfterAttack)
            {
                if (!HasPassive)
                {
                    var minion = args.Target as Obj_AI_Minion;
                    if (minion != null)
                    {
                        var tg = minion;
                        if (tg.CharData.BaseSkinName.Contains("SRU") && !tg.CharData.BaseSkinName.Contains("Mini"))
                        {
                            if (QJg && Q.IsReady())
                            {
                                Q.Cast(tg);
                                return;
                            }
                            if (WJg && W.IsReady())
                            {
                                var pred = W.GetPrediction(tg);
                                W.Cast(pred.UnitPosition);
                                return;
                            }
                            if (EJg && E.IsReady())
                            {
                                E.Cast(
                                    Deviation(ObjectManager.Player.Position.ToVector2(), tg.Position.ToVector2(),
                                              60).ToVector3());
                                return;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 22
0
 private void Orbwalker_OnPreAttack(AttackableUnit target, Orbwalker.PreAttackArgs args)
 {
     if (FocusWBuffedEnemyBool)
     {
         Orbwalker.ForcedTarget =
             ValidTargets.FirstOrDefault(
                 h =>
                 h.Distance(ObjectManager.Player.ServerPosition) < 600 &&
                 h.HasBuff("kalistacoopstrikemarkally"));
     }
 }
Exemplo n.º 23
0
        public void EInterruptable()
        {
            var victim =
                ValidTargets.FirstOrDefault(
                    e => e.Distance(ObjectManager.Player) < 900 && e.IsCastingInterruptableSpell());

            if (victim != null)
            {
                this.CastE(victim.ServerPosition);
            }
        }
Exemplo n.º 24
0
    public bool CanCastOnTarget(SpellData spell, Tile target)
    {
        ValidTargets validTargets = spell.validTargets;

        if (target.currUnit != null)
        {
            UnitType type = target.currUnit.unitType;
            switch (type)
            {
            case UnitType.Character:
                GameCharacter targetCharacter = (GameCharacter)target.currUnit;
                if (targetCharacter != caster)
                {
                    if (targetCharacter.owningPlayer != caster.owningPlayer)
                    {
                        if ((validTargets & ValidTargets.Enemy) == ValidTargets.Enemy)
                        {
                            return(true);
                        }
                    }
                    else if ((validTargets & ValidTargets.Ally) == ValidTargets.Ally)
                    {
                        return(true);
                    }
                }
                else if ((validTargets & ValidTargets.Self) == ValidTargets.Self)
                {
                    return(true);
                }
                break;

            case UnitType.Link:
                GameUnitLink targetLink = (GameUnitLink)target.currUnit;
                if (targetLink.head.owningPlayer != caster.owningPlayer)
                {
                    if ((validTargets & ValidTargets.Enemy) == ValidTargets.Enemy)
                    {
                        return(true);
                    }
                }
                else if ((validTargets & ValidTargets.Ally) == ValidTargets.Ally)
                {
                    return(true);
                }
                break;
            }
        }
        else if ((validTargets & ValidTargets.Tile) == ValidTargets.Tile)
        {
            return(true);
        }

        return(false);
    }
Exemplo n.º 25
0
        public override void OnUpdate(EventArgs args)
        {
            base.OnUpdate(args);
            if (getCheckBoxItem(ComboMenu, "koggieusew"))
            {
                WLogic();
            }
            if (getCheckBoxItem(ComboMenu, "koggieuser"))
            {
                RLogic();
            }
            if (Q.IsReady() && getCheckBoxItem(ComboMenu, "koggieuseq") && Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && ObjectManager.Player.Mana > GetQMana() + GetWMana())
            {
                foreach (var enemy in ValidTargets.Where(t => t.Distance(ObjectManager.Player) < 800).OrderBy(e => e.Distance(ObjectManager.Player)))
                {
                    var prediction = Q.GetPrediction(enemy);
                    if ((int)prediction.Hitchance >= (int)HitChance.VeryHigh)
                    {
                        Q.Cast(prediction.UnitPosition);
                    }
                }
            }
            var attackrange = GetAttackRangeAfterWIsApplied();
            var target      = TargetSelector.GetTarget(attackrange, DamageType.Physical);

            if (IsWActive() && target != null && target.Distance(ObjectManager.Player) > attackrange - 150)
            {
                E.CastIfHitchanceMinimum(target, HitChance.Medium);
            }

            #region Humanizer
            if (_humanizer != null)
            {
                _attacksSoFar = 0;
            }
            else if (_attacksSoFar >= getSliderItem(HumanizerMenu, "koggieminattacks"))
            {
                _humanizer = new Humanizer(getSliderItem(HumanizerMenu, "koggiehumanizermovetime"));
            }
            if (!IsWActive())
            {
                _humanizer    = null;
                _attacksSoFar = 0;
            }
            if (_humanizer != null && _humanizer.ShouldDestroy)
            {
                _humanizer = null;
            }

            Orbwalker.DisableAttacking = !CanMove();
            Orbwalker.DisableMovement  = !CanAttack();
            #endregion Humanizer
        }
Exemplo n.º 26
0
 private void OnAction(object sender, OrbwalkingActionArgs orbwalkingActionArgs)
 {
     if (orbwalkingActionArgs.Type == OrbwalkingType.BeforeAttack)
     {
         /*if (orbwalkingActionArgs.Target is Obj_AI_Minion && HasPassive && FocusOnHeadShotting &&
          *  Orbwalker.ActiveMode == OrbwalkingMode.LaneClear)
          * {
          *  var target = orbwalkingActionArgs.Target as Obj_AI_Minion;
          *  if (target != null && !target.CharData.BaseSkinName.Contains("MinionSiege") && target.Health > 60)
          *  {
          *      var tg = (Obj_AI_Hero)TargetSelector.GetTarget(715, DamageType.Physical);
          *      if (tg != null && tg.IsHPBarRendered)
          *      {
          *          Orbwalker.ForceTarget = tg;
          *          orbwalkingActionArgs.Process = false;
          *      }
          *  }
          * }*/
     }
     if (orbwalkingActionArgs.Type == OrbwalkingType.AfterAttack)
     {
         Orbwalker.ForceTarget = null;
         if (E.IsReady() && this.UseECombo)
         {
             if (!OnlyUseEOnMelees)
             {
                 var eTarget = TargetSelector.GetTarget(UseEOnEnemiesCloserThanSlider.Value, DamageType.Physical);
                 if (eTarget != null)
                 {
                     var pred = Prediction.GetPrediction(eTarget, E);
                     if (pred.Item3.Count == 0 && (int)pred.Item1 >= (int)HitChance.High)
                     {
                         E.Cast(pred.Item2);
                     }
                 }
             }
             else
             {
                 var eTarget =
                     ValidTargets.FirstOrDefault(
                         e =>
                         e.IsMelee && e.Distance(ObjectManager.Player) < UseEOnEnemiesCloserThanSlider.Value &&
                         !e.IsZombie);
                 var pred = Prediction.GetPrediction(eTarget, E);
                 if (pred.Item3.Count == 0 && (int)pred.Item1 > (int)HitChance.Medium)
                 {
                     E.Cast(pred.Item2);
                 }
             }
         }
     }
 }
Exemplo n.º 27
0
        internal WeaponItem(byte[] data)
            : base(data)
        {
            this.validtargets = (ValidTargets)(data[0x0C] | data[0x0D] << 8);
            this.level = data[0x0E] | data[0x0F] << 8;
            this.slots = data[0x10] | data[0x11] << 8;
            this.races = data[0x12] | data[0x13] << 8;
            this.jobs = data[0x14] | data[0x15] << 8 | data[0x16] << 16 | data[0x17] << 24;
            this.casttime = data[0x25];
            this.recast = data[0x28] | data[0x29] << 8 | data[0x2A] << 16 | data[0x2B] << 24;

            this.InitializeStrings(data, 0x30);
        }
Exemplo n.º 28
0
        internal ArmorItem(byte[] data)
            : base(data)
        {
            this.validtargets = (ValidTargets)(data[0x0C] | data[0x0D] << 8);
            this.level = data[0x0E] | data[0x0F] << 8;
            this.slots = data[0x10] | data[0x11] << 8;
            this.races = data[0x12] | data[0x13] << 8;
            this.jobs = data[0x14] | data[0x15] << 8 | data[0x16] << 16 | data[0x17] << 24;
            this.casttime = data[0x1B];
            this.recast = data[0x20] | data[0x21] << 8 | data[0x22] << 16 | data[0x23] << 24;

            this.InitializeStrings(data, 0x28);
        }
Exemplo n.º 29
0
 private void OnAction(object sender, OrbwalkingActionArgs orbwalkingActionArgs)
 {
     if (orbwalkingActionArgs.Type == OrbwalkingType.BeforeAttack)
     {
         if (orbwalkingActionArgs.Target is Obj_AI_Minion && HasPassive && FocusOnHeadShotting &&
             Orbwalker.ActiveMode != OrbwalkingMode.LaneClear)
         {
             var target = orbwalkingActionArgs.Target as Obj_AI_Minion;
             if (!target.CharData.BaseSkinName.Contains("MinionSiege") && target.Health > 60)
             {
                 var tg = Orbwalker.ForceTarget = TargetSelector.GetTarget(715, DamageType.Physical);
                 if (tg != null)
                 {
                     orbwalkingActionArgs.Process = false;
                 }
             }
         }
         if (E.IsReady() && this.UseECombo)
         {
             if (!OnlyUseEOnMelees)
             {
                 var eTarget = TargetSelector.GetTarget(UseEOnEnemiesCloserThanSlider.Value, DamageType.Physical);
                 if (eTarget != null)
                 {
                     var pred = E.GetPrediction(eTarget);
                     if (pred.CollisionObjects.Count == 0 && (int)pred.Hitchance >= (int)HitChance.Medium)
                     {
                         E.Cast(pred.UnitPosition);
                     }
                 }
             }
             else
             {
                 var eTarget =
                     ValidTargets.FirstOrDefault(
                         e =>
                         e.IsMelee && e.Distance(ObjectManager.Player) < UseEOnEnemiesCloserThanSlider.Value &&
                         !e.IsZombie);
                 var pred = E.GetPrediction(eTarget);
                 if (pred.CollisionObjects.Count == 0 && (int)pred.Hitchance >= (int)HitChance.Medium)
                 {
                     E.Cast(pred.UnitPosition);
                 }
             }
         }
     }
     if (orbwalkingActionArgs.Type == OrbwalkingType.AfterAttack)
     {
         Orbwalker.ForceTarget = null;
     }
 }
Exemplo n.º 30
0
        private void RLogic()
        {
            if (!getCheckBoxItem(ComboMenu, "koggieuser") || !R.IsReady() || ObjectManager.Player.IsRecalling() || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.None))
            {
                return;
            }
            if (getCheckBoxItem(MainMenu, "koggiesavewmana") && ObjectManager.Player.Mana < GetRMana() + GetWMana())
            {
                return;
            }
            var myPos = ObjectManager.Player.ServerPosition;

            foreach (var enemy in ValidTargets.Where(h => h.Distance(myPos) < R.Range && h.HealthPercent < 25 && h.LSIsValidTarget()))
            {
                if (getCheckBoxItem(ComboMenu, "onlyRHP"))
                {
                    if (enemy.HealthPercent > getSliderItem(ComboMenu, "hpOfTarget"))
                    {
                        return;
                    }
                }
                var prediction = R.GetPrediction(enemy, true);
                if ((int)prediction.Hitchance > (int)HitChance.Medium)
                {
                    R.Cast(prediction.UnitPosition);
                }
            }
            if (GetRStacks() >= getSliderItem(MainMenu, "koggiermaxstacks"))
            {
                return;
            }
            if ((!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && !getCheckBoxItem(HarassMenu, "koggieuserharass")))
            {
                return;
            }

            foreach (var enemy in ValidTargets.Where(h => h.Distance(myPos) < R.Range && h.LSIsValidTarget() && h.HealthPercent < 35))
            {
                var dist = enemy.Distance(ObjectManager.Player.ServerPosition);
                if (Orbwalker.CanAutoAttack && dist < 550)
                {
                    break;
                }
                var prediction = R.GetPrediction(enemy, true);
                if ((int)prediction.Hitchance > (int)HitChance.Medium)
                {
                    R.Cast(prediction.UnitPosition);
                }
            }
        }
Exemplo n.º 31
0
        public void UltLogic_OnUpdate(EventArgs args)
        {
            if (ObjectManager.Player.IsRecalling() || ObjectManager.Player.InFountain())
            {
                return;
            }

            if (SoulboundAlly == null)
            {
                SoulboundAlly = GameObjects.AllyHeroes.FirstOrDefault(a => a.HasBuff("kalistacoopstrikeally"));
                return;
            }
            if (UseRAllySaverBool && AllIncomingDamageToSoulbound > SoulboundAlly.Health &&
                SoulboundAlly.CountEnemyHeroesInRange(800) > 0)
            {
                R.Cast();
            }
            if ((SoulboundAlly.ChampionName == "Blitzcrank" || SoulboundAlly.ChampionName == "Skarner" ||
                 SoulboundAlly.ChampionName == "TahmKench"))
            {
                foreach (
                    var unit in
                    ObjectManager.Get <AIHeroClient>()
                    .Where(
                        h =>
                        h.IsEnemy && h.IsHPBarRendered && h.Distance(ObjectManager.Player.ServerPosition) > 700 &&
                        h.Distance(ObjectManager.Player.ServerPosition) < 1400)
                    )
                {
                    if ((unit.HasBuff("rocketgrab2") && BalistaBool) ||
                        (unit.HasBuff("tahmkenchwdevoured") && TalistaBool) ||
                        (unit.HasBuff("skarnerimpale") && SalistaBool))
                    {
                        R.Cast();
                    }
                }
            }
            if (UseREngageBool)
            {
                foreach (var enemy in ValidTargets.Where(en => en.IsValidTarget(1000) && en.LSIsFacing(ObjectManager.Player)))
                {
                    var waypoints = enemy.GetWaypoints();
                    if (waypoints.LastOrDefault().Distance(ObjectManager.Player.ServerPosition) < 400)
                    {
                        R.Cast();
                    }
                }
            }
        }
Exemplo n.º 32
0
 public void Trigger(Event gameEvent, int positionInLinkIfTriggered)
 {
     ValidTargets.Clear();
     if (!AreaOfEffects.Contains(Card.Zone))
     {
         return;
     }
     if (Triggers.Count > 0 && !Triggers.Contains(gameEvent.Identity))
     {
         return;
     }
     Triggered      = _Trigger(gameEvent);
     PositionInLink = positionInLinkIfTriggered;
     History.Add(new Trigger(Card, Card, this));
 }
Exemplo n.º 33
0
 void QLogic()
 {
     if (Orbwalker.ActiveMode == OrbwalkingMode.Combo)
     {
         if (UseQCombo && Q.IsReady() && ObjectManager.Player.CountEnemyHeroesInRange(800) == 0 &&
             ObjectManager.Player.CountEnemyHeroesInRange(1100) > 0)
         {
             Q.CastIfWillHit(TargetSelector.GetTarget(900, DamageType.Physical), 2);
             var goodQTarget =
                 ValidTargets.FirstOrDefault(
                     t =>
                     t.Distance(ObjectManager.Player) < 950 && t.Health < Q.GetDamage(t) ||
                     SquishyTargets.Contains(t.CharData.BaseSkinName));
             if (goodQTarget != null)
             {
                 var pred = Prediction.GetPrediction(goodQTarget, Q);
                 if ((int)pred.Item1 > (int)HitChance.Medium)
                 {
                     Q.Cast(pred.Item2);
                 }
             }
         }
     }
     if (Orbwalker.ActiveMode != OrbwalkingMode.None && Orbwalker.ActiveMode != OrbwalkingMode.Combo &&
         ObjectManager.Player.CountEnemyHeroesInRange(850) == 0)
     {
         var qHarassMode = QHarassMode.SelectedValue;
         if (qHarassMode != "DISABLED")
         {
             var qTarget = TargetSelector.GetTarget(1100, DamageType.Physical);
             if (qTarget != null)
             {
                 var pred = Prediction.GetPrediction(qTarget, Q);
                 if ((int)pred.Item1 > (int)HitChance.Medium)
                 {
                     if (qHarassMode == "ALLOWMINIONS")
                     {
                         Q.Cast(pred.Item2);
                     }
                     else if (pred.Item3.Count == 0)
                     {
                         Q.Cast(pred.Item2);
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 34
0
 void QLogic()
 {
     if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
     {
         if (UseQCombo && Q.IsReady() && ObjectManager.Player.CountEnemyHeroesInRange(800) == 0 &&
             ObjectManager.Player.CountEnemyHeroesInRange(1100) > 0)
         {
             Q.CastIfWillHit(TargetSelector.GetTarget(1100, DamageType.Physical), 2);
             var goodQTarget =
                 ValidTargets.FirstOrDefault(
                     t =>
                     t.Distance(ObjectManager.Player) < 1150 && t.Health < Q.GetDamage(t) ||
                     SquishyTargets.Contains(t.CharData.BaseSkinName));
             if (goodQTarget != null)
             {
                 var pred = Q.GetPrediction(goodQTarget);
                 if ((int)pred.Hitchance > (int)HitChance.Medium)
                 {
                     Q.Cast(pred.UnitPosition);
                 }
             }
         }
     }
     if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.None) && !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) &&
         ObjectManager.Player.CountEnemyHeroesInRange(850) == 0)
     {
         var qHarassMode = QHarassMode;
         if (qHarassMode != 2)
         {
             var qTarget = TargetSelector.GetTarget(1100, DamageType.Physical);
             if (qTarget != null)
             {
                 var pred = Q.GetPrediction(qTarget);
                 if ((int)pred.Hitchance > (int)HitChance.Medium)
                 {
                     if (qHarassMode == 1)
                     {
                         Q.Cast(pred.UnitPosition);
                     }
                     else if (pred.CollisionObjects.Count == 0)
                     {
                         Q.Cast(pred.UnitPosition);
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 35
0
        public CSPlugin()
        {
            Bootstrap.Init(new string[1]);
            MainMenu = new Menu("challengerseries", ObjectManager.Player.ChampionName + " To The Challenger", true, ObjectManager.Player.ChampionName);
            CrossAssemblySettings = MainMenu.Add(new Menu("crossassemblysettings", "Challenger Utils: "));
            DrawEnemyWaypoints    =
                CrossAssemblySettings.Add(new MenuBool("drawenemywaypoints", "Draw Enemy Waypoints", true));
            this.IsPerformanceChallengerEnabled =
                this.CrossAssemblySettings.Add(
                    new MenuBool("performancechallengerx", "Use Performance Challenger", false));
            this.TriggerOnUpdate =
                this.CrossAssemblySettings.Add(
                    new MenuSlider("triggeronupdate", "Trigger OnUpdate X times a second", 26, 20, 33));
            Utils.Prediction.PredictionMode =
                this.CrossAssemblySettings.Add(new MenuList <string>("pred", "Use Prediction: ", new[] { "SDK", "Common" }));


            DelayAction.Add(15000, () => Orbwalker.Enabled = true);

            Game.OnUpdate += this.DelayOnUpdate;

            Drawing.OnDraw += args =>
            {
                if (DrawEnemyWaypoints)
                {
                    foreach (
                        var e in
                        ValidTargets.Where(
                            en => en.Distance(ObjectManager.Player) < 5000))
                    {
                        var ip = Drawing.WorldToScreen(e.Position); //start pos

                        var wp = e.GetWaypoints();
                        var c  = wp.Count - 1;
                        if (wp.Count() <= 1)
                        {
                            break;
                        }

                        var w = Drawing.WorldToScreen(wp[c].ToVector3()); //endpos

                        Drawing.DrawLine(ip.X, ip.Y, w.X, w.Y, 2, Color.Red);
                        Drawing.DrawText(w.X, w.Y, Color.Red, e.CharData.BaseSkinName);
                    }
                }
            };
        }
Exemplo n.º 36
0
        private AbilityData(byte[] data)
        {
            byte b2 = data[2];
            byte b11 = data[11];
            byte b12 = data[12];

            data.Decode();

            data[2] = b2;
            data[11] = b11;
            data[12] = b12;

            this.id = data[0] | data[1] << 8;
            this.type = (AbilityType)data[2];
            this.mpcost = data[6] | data[7] << 8;
            this.timerid = data[8] | data[9] << 8;
            this.validtargets = (ValidTargets)(data[10] | data[11] << 8);
            this.tpcost = data[12];
        }