private static void Game_OnGameUpdate(EventArgs args)
        {
            if (Target == null || ObjectManager.Player.IsDead)
            {
                return;
            }

            //ignite
            int igniteMode = _myMenu.Item("igniteMode").GetValue <StringList>().SelectedIndex;

            if (KillableTarget && igniteMode == 0 && Ignite_Ready())
            {
                Use_Ignite(Target);
            }
            else if (ObjectManager.Player.GetSummonerSpellDamage(Target, Damage.SummonerSpell.Ignite) > Target.Health + 20 && Ignite_Ready())
            {
                Use_Ignite(Target);
            }

            if (!UseTargetted)
            {
                return;
            }

            foreach (var item in ItemList.Where(x => x.Mode == 0 && Items.HasItem(x.ActiveId) && ShouldUse(x.ActiveName)))
            {
                if (Target != null && Items.CanUseItem(item.ActiveId))
                {
                    if (AlwaysUse(item.ActiveName))
                    {
                        Items.UseItem(item.ActiveId, Target);
                    }

                    if (KillableTarget)
                    {
                        Items.UseItem(item.ActiveId, Target);
                    }

                    if (ObjectManager.Player.HealthPercentage() <= UseAtMyHp(item.ActiveName) && !OnlyIfKillable(item.ActiveName))
                    {
                        Items.UseItem(item.ActiveId, Target);
                    }

                    if (Target.HealthPercentage() <= UseAtEnemyHp(item.ActiveName) && !OnlyIfKillable(item.ActiveName))
                    {
                        Items.UseItem(item.ActiveId, Target);
                    }
                }
            }

            if (ObjectManager.Player.HasBuff("Muramana") && Items.CanUseItem(3042) && Environment.TickCount - lastMura > 5000)
            {
                Items.UseItem(3042);
            }

            //reset mode
            UseTargetted   = false;
            Target         = null;
            KillableTarget = false;
        }
Пример #2
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);



            var prediction = Q.GetPrediction(target);

            if (prediction.Hitchance >= HitChance.High &&
                Q.IsReady() && Config.Item("UseQ").GetValue <bool>() && target.IsValidTarget(Q.Range) && Barrel == null)
            {
                Q.Cast(target);
            }



            if (R.IsReady() && Config.Item("UseRprotector").GetValue <bool>() && player.HealthPercentage() <= Config.Item("Rhp").GetValue <Slider>().Value)
            {
                R.Cast(player.Position);
            }

            if (R.IsReady() && Config.Item("UseRdmg").GetValue <bool>() &&
                target.Position.CountEnemiesInRange(250) >= Config.Item("rdmgslider").GetValue <Slider>().Value)
            {
                R.Cast(target);
            }
        }
Пример #3
0
        private static void HarassTg()
        {
            if (Player.HealthPercentage() > Config.Item("CountHarass").GetValue <Slider>().Value)
            {
                var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

                if (CheckFor(Q, target, Q.Range, "HarassQ") && !target.HasBuff("UndyingRage"))
                {
                    Q.Cast(target);
                }

                if (CheckFor(W, target, W.Range, "HarassW") && !target.HasBuff("UndyingRage"))
                {
                    W.Cast(target);
                }
            }
        }
Пример #4
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);

            if (target == null)
            {
                return;
            }

            if (Q.IsReady() && target.Distance(Player) <= Q.Range && target.IsValidTarget() && Config.Item("UseQCombo").GetValue <bool>())
            {
                Q.Cast(target);
            }
            if (W.IsReady() && target.IsValidTarget() && target.Distance(Player) <= W.Range && Config.Item("UseWCombo").GetValue <bool>())
            {
                W.Cast(target);
            }
            if (E.IsReady() && target.IsValidTarget() && target.Distance(Player) <= E.Range && Config.Item("UseECombo").GetValue <bool>())
            {
                E.Cast(target);
            }
            if (R.IsReady() && target.IsValidTarget() && Player.HealthPercentage() <= Config.Item("RHP").GetValue <Slider>().Value&& Config.Item("UseRCombo").GetValue <bool>())
            {
                R.Cast();
            }

            if (Config.Item("UseItems").GetValue <bool>())
            {
                if (Player.Distance(target) <= RDO.Range)
                {
                    RDO.Cast(target);
                }
                if (Player.Distance(target) <= HYD.Range)
                {
                    HYD.Cast(target);
                }
                if (Player.Distance(target) <= DFG.Range)
                {
                    DFG.Cast(target);
                }
                if (Player.Distance(target) <= BOTK.Range)
                {
                    BOTK.Cast(target);
                }
                if (Player.Distance(target) <= CUT.Range)
                {
                    CUT.Cast(target);
                }
                if (Player.Distance(target) <= 125f)
                {
                    YOY.Cast();
                }
                if (Player.Distance(target) <= TYM.Range)
                {
                    TYM.Cast(target);
                }
            }
        }
Пример #5
0
        private static void StayAlive()
        {
            Obj_AI_Hero ally = ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsAlly && !x.IsDead && x.Distance(Player.Position) < E.Range).OrderBy(x => x.Health).FirstOrDefault();

            if (ally.HealthPercentage() < 8)
            {
                E.Cast(ally);
            }
        }
Пример #6
0
        private static void Combo()
        {
            var nearbyEnemies =
                HeroManager.Enemies.Where(h => h.IsValidTarget() && h.Distance(_player) < 1000)
                .OrderBy(h => h.Distance(_player));
            var QTarget = TargetSelector.GetTarget(_q.Range, TargetSelector.DamageType.Physical);
            var RTarget = TargetSelector.GetTarget(_r.Range, TargetSelector.DamageType.Magical);

            if (!nearbyEnemies.Any())
            {
                return;
            }
            if (_config.Item("comboQ").GetValue <bool>() && _q.IsReady() && QTarget.IsValidTarget())
            {
                _q.Cast();
            }
            if (_config.Item("comboE").GetValue <bool>() && _e.IsReady())
            {
                _e.Cast();
            }
            if (_config.Item("comboW").GetValue <bool>() && _w.IsReady())
            {
                if (_player.CountEnemiesInRange(700) >= _config.Item("countW").GetValue <Slider>().Value ||
                    _player.HealthPercentage() <= _config.Item("healthPercentWCombo").GetValue <Slider>().Value)
                {
                    _w.Cast();
                }
            }
            if (_config.Item("comboR").GetValue <bool>() && _r.IsReady())
            {
                if (_player.CountAlliesInRange(1000) <= 2)
                {
                    if (nearbyEnemies.FirstOrDefault().Distance(_player) < _q.Range)
                    {
                        return;
                    }
                    _r.CastIfWillHit(RTarget, _config.Item("countRGanks").GetValue <Slider>().Value);
                }
                else
                {
                    _r.CastIfWillHit(RTarget, _config.Item("countR").GetValue <Slider>().Value);
                }
            }
        }
Пример #7
0
        //Ulti
        private static void CastR()
        {
            var useR  = (Config.Item("DontUlt" + Target.BaseSkinName) != null && Config.Item("DontUlt" + Target.BaseSkinName).GetValue <bool>() == false);
            var minHp = Config.Item("minRhealth").GetValue <Slider>().Value;

            if (useR && (Player.Distance(Target) < R.Range) && (Target.HealthPercentage() <= minHp))
            {
                R.CastOnUnit(Target);
            }
        }
Пример #8
0
        public static void TryToSurvive()
        {
            if (!Menu.GetBool("surviveW"))
            {
                return;
            }
            var target2 = TargetSelector.GetTarget(700f, TargetSelector.DamageType.Magical);

            if (Player.HealthPercentage() <= Menu.GetSlider("surviveWHP") && Spells.W.IsReady() && target2.IsValidTarget(700f))
            {
                Spells.W.Cast();
            }
        }
Пример #9
0
            public override string ToString()
            {
                var time = _recallStart + Duration - Game.Time;

                if (time <= 0)
                {
                    time = Game.Time - _lastActionTime;
                }
                if (LastStatus == Packet.S2C.Recall.RecallStatus.RecallStarted)
                {
                    return(string.Format("Recall: {0}({1}%) Recalling ({2:0.00})", Hero.ChampionName,
                                         (int)Hero.HealthPercentage(), time));
                }
                if (LastStatus == Packet.S2C.Recall.RecallStatus.RecallFinished)
                {
                    return(string.Format("Recall: {0}({1}%) Recalled ({2:0.00})", Hero.ChampionName,
                                         (int)Hero.HealthPercentage(), time));
                }
                if (LastStatus == Packet.S2C.Recall.RecallStatus.RecallAborted)
                {
                    return(string.Format("Recall: {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage()));
                }
                if (LastStatus == Packet.S2C.Recall.RecallStatus.TeleportStart)
                {
                    return(string.Format("Teleport: {0}({1}%) Teleporting ({2:0.00})", Hero.ChampionName,
                                         (int)Hero.HealthPercentage(), time));
                }
                if (LastStatus == Packet.S2C.Recall.RecallStatus.TeleportEnd)
                {
                    return(string.Format("Teleport: {0}({1}%) Ported ({2:0.00})", Hero.ChampionName,
                                         (int)Hero.HealthPercentage(), time));
                }
                if (LastStatus == Packet.S2C.Recall.RecallStatus.TeleportAbort)
                {
                    return(string.Format("Teleport: {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage()));
                }
                return(string.Empty);
            }
Пример #10
0
        private static void UseItems(Obj_AI_Hero tar)
        {
            var ownH = GetPerValue(false);

            if ((Menu.Item("BotrkC").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) &&
                (Menu.Item("OwnHPercBotrk").GetValue <Slider>().Value <= ownH) &&
                ((Menu.Item("EnHPercBotrk").GetValue <Slider>().Value <= tar.HealthPercentage())))
            {
                UseItem(3153, tar);
            }

            if ((Menu.Item("BotrkH").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) &&
                (Menu.Item("OwnHPercBotrk").GetValue <Slider>().Value <= ownH) &&
                ((Menu.Item("EnHPercBotrk").GetValue <Slider>().Value <= tar.HealthPercentage())))
            {
                UseItem(3153, tar);
            }

            if (Menu.Item("YoumuuC").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                UseItem(3142);
            }

            if (Menu.Item("YoumuuH").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                UseItem(3142);
            }

            if (Menu.Item("BilgeC").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                UseItem(3144, tar);
            }

            if (Menu.Item("BilgeH").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                UseItem(3144, tar);
            }
        }
Пример #11
0
        public static void LineCombo()
        {
            Obj_AI_Hero target = TargetSelector.GetTarget(Zed.q.Range - 100, TargetSelector.DamageType.Physical);

            if (target == null)
            {
                Zed.player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            }
            else
            {
                Zed.player.IssueOrder(GameObjectOrder.AttackUnit, target);
            }
            if (MiscHelper.GetComboDamage(target) > (target.Health * 0.7))
            {
                if (Zed.player.Mana >= (MiscHelper.GetEnergyCost(SpellSlot.Q) + MiscHelper.GetEnergyCost(SpellSlot.W) + MiscHelper.GetEnergyCost(SpellSlot.E)))
                {
                    if (Zed.r.IsReady() && target != null && !Zed.rData.isCreated())
                    {
                        if (750 < (Environment.TickCount - Zed.rData.getTimeCasted()))
                        {
                            Zed.r.Cast(target, true);
                        }
                        Zed.rData.setTimeCasted(Environment.TickCount);
                    }
                    if (Zed.menuHelper.menu.Item("comboUseW").GetValue <bool>() && Zed.w.IsReady() && target != null && !Zed.wData.isCreated() && Zed.rData.isCreated())
                    {
                        if (500 < (Environment.TickCount - Zed.wData.getTimeCasted()))
                        {
                            Zed.w.Cast(MiscHelper.GetWCastPosition(target), true);
                        }
                        Zed.wData.setTimeCasted(Environment.TickCount);
                    }
                }
                if (Zed.menuHelper.menu.Item("comboUseE").GetValue <bool>() && Zed.e.IsReady() && target != null)
                {
                    if ((Zed.wData.isCreated() && target.Distance(Zed.wData.getShadow()) < Zed.e.Range) || (Zed.rData.isCreated() && target.Distance(Zed.rData.getShadow()) < Zed.e.Range) || target.Distance(Zed.player) < Zed.e.Range)
                    {
                        Zed.e.Cast();
                    }
                }
                if (Zed.menuHelper.menu.Item("comboUseQ").GetValue <bool>() && Zed.q.IsReady() && target != null)
                {
                    Zed.q.CastIfHitchanceEquals(target, HitChance.High, true);
                }
                if (MiscHelper.GetComboDamage(target) > target.Health && target.HealthPercentage() < 30)
                {
                    Zed.player.Spellbook.CastSpell(Zed.ignite, true);
                }
            }
        }
Пример #12
0
        public void Following()
        {
            if ((DateTime.Now.Ticks - lastFollowTarget > nextFollowTargetDelay) ||
                followTarget == null ||
                followTarget.IsDead ||
                followTarget.HealthPercentage() < 25)
            {
                followTarget = GetFollowTarget(followTarget);
            }

            if (followTarget != null)
            {
                if (status != "GetBuff" && status != "Fight" && (DateTime.Now.Ticks - lastFollow > followDelay))
                {
                    Random r         = new Random();
                    int    distance1 = r.Next(50, 200);
                    int    distance2 = r.Next(50, 200);

                    if (Player.AttackRange >= followTarget.AttackRange)
                    {
                        if (Player.Team == GameObjectTeam.Chaos)
                        {
                            Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(followTarget.Position.X + distance1, followTarget.Position.Y, followTarget.Position.Z + distance2));
                            orb.SetOrbwalkingPoint(new Vector3(followTarget.Position.X + distance1, followTarget.Position.Y, followTarget.Position.Z + distance2));
                        }
                        else
                        {
                            Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(followTarget.Position.X - distance1, followTarget.Position.Y, followTarget.Position.Z - distance2));
                            orb.SetOrbwalkingPoint(new Vector3(followTarget.Position.X - distance1, followTarget.Position.Y, followTarget.Position.Z - distance2));
                        }
                    }
                    else
                    {
                        if (Player.Team == GameObjectTeam.Order)
                        {
                            Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(followTarget.Position.X + distance1, followTarget.Position.Y, followTarget.Position.Z + distance2));
                            orb.SetOrbwalkingPoint(new Vector3(followTarget.Position.X + distance1, followTarget.Position.Y, followTarget.Position.Z + distance2));
                        }
                        else
                        {
                            Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(followTarget.Position.X - distance1, followTarget.Position.Y, followTarget.Position.Z - distance2));
                            orb.SetOrbwalkingPoint(new Vector3(followTarget.Position.X - distance1, followTarget.Position.Y, followTarget.Position.Z - distance2));
                        }
                    }
                    lastFollow = DateTime.Now.Ticks;
                }
            }
        }
Пример #13
0
        private void ProtectorOnTargetedProtection(Obj_AI_Base caster, Obj_AI_Hero target, SpellData spell)
        {
            try
            {
                if (!ConfigValue <bool>("Misc.Shield.Target"))
                {
                    return;
                }

                if (Orbwalking.IsAutoAttack(spell.Name) &&
                    target.HealthPercentage() > ConfigValue <Slider>("Misc.Shield.Health").Value)
                {
                    return;
                }

                if (spell.MissileSpeed > 2000 || spell.MissileSpeed == 0)
                {
                    return;
                }

                // TODO: blacklist FiddleQ, FioraQ/R, LeonaE, VladQ, ZileanQ

                if (target.IsMe && E.IsReady())
                {
                    CastShield(caster.Position);
                }

                if (!target.IsMe && W.IsReady() && W.IsInRange(target) && (IsShieldActive || E.IsReady()))
                {
                    var jumpTime = (Player.Distance(target) * 1000 / W.Instance.SData.MissileSpeed) +
                                   (W.Instance.SData.SpellCastTime * 1000);
                    var missileTime = caster.Distance(target) * 1000 / spell.MissileSpeed;

                    if (jumpTime > missileTime)
                    {
                        Console.WriteLine("Abort Jump - Missile too Fast: {0} {1}", jumpTime, missileTime);
                        return;
                    }

                    W.CastOnUnit(target);
                    Utility.DelayAction.Add((int)jumpTime, () => CastShield(caster.Position));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Пример #14
0
        private void ProtectorOnTargetedProtection(Obj_AI_Base caster, Obj_AI_Hero target, SpellData spell)
        {
            try
            {
                if (!ConfigValue<bool>("Misc.Shield.Target"))
                {
                    return;
                }

                if (Orbwalking.IsAutoAttack(spell.Name) &&
                    target.HealthPercentage() > ConfigValue<Slider>("Misc.Shield.Health").Value)
                {
                    return;
                }

                if (spell.MissileSpeed > 2000 || spell.MissileSpeed == 0)
                {
                    return;
                }

                // TODO: blacklist FiddleQ, FioraQ/R, LeonaE, VladQ, ZileanQ

                if (target.IsMe && E.IsReady())
                {
                    CastShield(caster.Position);
                }

                if (!target.IsMe && W.IsReady() && W.IsInRange(target) && (IsShieldActive || E.IsReady()))
                {
                    var jumpTime = (Player.Distance(target) * 1000 / W.Instance.SData.MissileSpeed) +
                                   (W.Instance.SData.SpellCastTime * 1000);
                    var missileTime = caster.Distance(target) * 1000 / spell.MissileSpeed;

                    if (jumpTime > missileTime)
                    {
                        Console.WriteLine("Abort Jump - Missile too Fast: {0} {1}", jumpTime, missileTime);
                        return;
                    }

                    W.CastOnUnit(target);
                    Utility.DelayAction.Add((int) jumpTime, () => CastShield(caster.Position));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Пример #15
0
        static void SpellDetector(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            // return if ally or non hero spell
            if (sender.IsAlly || sender.Type != GameObjectType.obj_AI_Hero || !args.Target.IsMe)
            {
                return;
            }
            if (!args.SData.Name.ToLower().Contains("basicattack"))
            {
                // Console.WriteLine(args.SData.Name + " Detected");

                var Spellinfo = DangerousSpells.GetByName(args.SData.Name.ToLower());

                if (Spellinfo != null)
                {
                    Console.WriteLine("List spell detected: " + args.SData.Name);
                }
                if (Spellinfo != null && zhonyaready() && args.Target.IsMe &&
                    (Menu.Item("Enabled" + Spellinfo.DisplayName).GetValue <bool>()))
                {
                    Game.PrintChat("Attempting to Evade: " + args.SData.Name);
                    var delay = Spellinfo.BaseDelay * 1000;
                    Utility.DelayAction.Add((int)delay, () => Zhonya.Cast());
                }

                if (Menu.Item("enablehpzhonya").GetValue <bool>() && zhonyaready())
                {
                    var incomingspelldmg = sender.GetSpellDamage(Player, args.SData.Name);
                    var calcdmg          = Damage.CalcDamage(
                        sender, Player, sender.GetDamageSpell(Player, args.SData.Name).DamageType, incomingspelldmg);
                    var remaininghealth       = Player.Health - calcdmg;
                    var slidervalue           = Menu.Item("minspelldmg").GetValue <Slider>().Value / 100f;
                    var hptozhonya            = Menu.Item("hptozhonya").GetValue <Slider>().Value;
                    var remaininghealthslider = Menu.Item("remaininghealth").GetValue <Slider>().Value / 100f;
                    if ((
                            calcdmg / Player.Health) >= slidervalue || Player.HealthPercentage() <= hptozhonya || remaininghealth <= remaininghealthslider * Player.Health)
                    {
                        Console.WriteLine("Attempting to Zhonya because incoming spell costs " + calcdmg / Player.Health
                                          + " of our health.");
                        Zhonya.Cast();
                    }
                }
            }
        }
Пример #16
0
        public override void Game_OnUpdate(EventArgs args)
        {
            base.Game_OnUpdate(args);

            CastSpell(Q, qData);


            target = GetTarget(E);
            if (target.Health <= E.GetDamage(target))
            {
                CastSpell(E, eData);
            }

            target = GetTarget(R);
            if ((status == "Fight" && Player.HealthPercentage() <= 40) || contractTarget.HealthPercentage() <= 30)
            {
                CastSpell(R, rData);
            }
        }
Пример #17
0
        private static void SaveMode()
        {
            var save   = ElKalistaMenu._menu.Item("ElKalista.misc.save").GetValue <bool>();
            var allyHp = ElKalistaMenu._menu.Item("ElKalista.misc.allyhp").GetValue <Slider>().Value;

            if (ConnectedAlly == null)
            {
                foreach (var cAlly in from ally in ObjectManager.Get <Obj_AI_Hero>().Where(b => b.IsAlly && !b.IsDead && !b.IsMe) where Player.Distance(ally) < spells[Spells.R].Range from buff in ally.Buffs  where ally.HasBuff("kalistacoopstrikeally") select ally)
                {
                    ConnectedAlly = cAlly;
                    break;
                }
            }
            else
            {
                if (save && ConnectedAlly.HealthPercentage() < allyHp && ConnectedAlly.CountEnemiesInRange(500) > 0)
                {
                    spells[Spells.R].Cast();
                }
            }
        }
Пример #18
0
        private static void OrbwalkingAfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe)
            {
                return;
            }
            //TODO Add E for Kiting and get away
            _shouldHavePassive = false;
            Obj_AI_Hero hero = target as Obj_AI_Hero;

            if (hero != null)
            {
                var targ = hero;
                if (_spells[SpellSlot.E].IsEnabledAndReady(Mode.Combo))
                {
                    var hypotheticalPosition = ObjectManager.Player.ServerPosition.Extend(
                        Game.CursorPos, _spells[SpellSlot.E].Range);
                    if (ObjectManager.Player.HealthPercentage() <= 30 &&
                        hero.HealthPercentage() >= ObjectManager.Player.HealthPercentage())
                    {
                        if (ObjectManager.Player.Position.Distance(ObjectManager.Player.ServerPosition) >= 35 &&
                            hero.Distance(ObjectManager.Player.ServerPosition) <
                            hero.Distance(ObjectManager.Player.Position) &&
                            PositionHelper.IsSafePosition(hypotheticalPosition))
                        {
                            _spells[SpellSlot.E].Cast(hypotheticalPosition);
                        }
                    }
                    if (PositionHelper.IsSafePosition(hypotheticalPosition) &&
                        hypotheticalPosition.Distance(targ.ServerPosition) <= Orbwalking.GetRealAutoAttackRange(null) &&
                        (!_spells[SpellSlot.Q].IsEnabledAndReady(Mode.Combo) || !_spells[SpellSlot.Q].CanCast(targ)) &&
                        (!_spells[SpellSlot.W].IsEnabledAndReady(Mode.Combo) ||
                         !_spells[SpellSlot.W].CanCast(targ) &&
                         (hypotheticalPosition.Distance(targ.ServerPosition) > 400) && !(HasPassive())))
                    {
                        _spells[SpellSlot.E].Cast(hypotheticalPosition);
                    }
                }
            }
        }
Пример #19
0
        /// <summary>
        ///     Heal our player
        /// </summary>
        public void HealSelf()
        {
            if (!_menu.Item("healSelf").GetValue <bool>())
            {
                return;
            }

            if (_player.IsRecalling() || _player.IsDead || _player.InFountain())
            {
                return;
            }

            if (!(_player.HealthPercentage() < _menu.Item("healSelfPercent").GetValue <Slider>().Value))
            {
                return;
            }

            if (spell.IsReady())
            {
                spell.Cast(_player);
            }
        }
Пример #20
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            CurrentTarget = Utils.GetTarget(GetComboRange());

            if (!Enabled)
            {
                return;
            }

            AOECombo();

            if (CurrentTarget.IsValidTarget(GetComboRange()))
            {
                ComboLogic();
                return;
            }

            CurrentTarget = Utils.GetTarget(W.Range * 2);
            if (Menu.Item("GapCloseEnabled").GetValue <bool>() && CurrentTarget.IsValidTarget(W.Range * 2))
            {
                var canCast     = CanCast("W") && W.IsReady(1) && R.IsReady();
                var isTargetLow = CurrentTarget.HealthPercentage() <= Menu.Item("TargetHP").GetValue <Slider>().Value;
                var isPlayerLow = Player.HealthPercentage() < Menu.Item("PlayerHP").GetValue <Slider>().Value;
                var canDFG      = (Items.DFG.HasItem() && Items.DFG.IsReady()) ||
                                  (Items.BFT.HasItem() && Items.BFT.IsReady());

                if (!canCast || !isTargetLow || isPlayerLow || !canDFG)
                {
                    //Console.WriteLine("return");
                    return;
                }

                var pos = Player.Position.Extend(CurrentTarget.ServerPosition, W.Range + 100);
                if (W.Cast(pos))
                {
                }
            }
        }
Пример #21
0
        static void CastE(Obj_AI_Hero enemy)
        {
            if (!E.IsReady() || enemy == null || !enemy.IsValidTarget())
            {
                return;
            }
            bool        caught         = IsPulling().Item1;
            Obj_AI_Hero CatchedQtarget = IsPulling().Item2;

            if (!caught && qTimer == 0)
            {
                if (Player.Distance(enemy.Position) <= E.Range)
                {
                    if (Player.HealthPercentage() < 20 && enemy.HealthPercentage() > 20)
                    {
                        Push(enemy);
                    }
                    else
                    {
                        Pull(enemy);
                    }
                }
            }
        }
Пример #22
0
 private static bool IsLow()
 {
     return(_player.HealthPercentage() <= _menu.Item("Low").GetValue <Slider>().Value);
 }
Пример #23
0
        void Game_OnGameUpdate(EventArgs args)
        {
            if (player.IsDead)
            {
                return;
            }
            if (player.HealthPercentage() <= Config.Item("zhonyashp").GetValue <Slider>().Value)
            {
                zhonyas.Cast();
            }
            {
            }
            var lanemana    = Config.Item("laneclearmana").GetValue <Slider>().Value;
            var harassmana  = Config.Item("harassmana").GetValue <Slider>().Value;
            var laneclear   = (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear);
            var allMinionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range + W.Width + 30);
            var allMinionsE = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range + E.Width);

            var Wfarmpos = W.GetLineFarmLocation(allMinionsW, W.Width);
            var Efarmpos = E.GetCircularFarmLocation(allMinionsE, E.Width);

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && Wfarmpos.MinionsHit >= 3 && Config.Item("laneW").GetValue <bool>() &&
                player.ManaPercentage() >= lanemana)
            {
                W.Cast(Wfarmpos.Position);
            }
            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && Efarmpos.MinionsHit >= 3 && allMinionsE.Count >= 1 && Config.Item("laneE").GetValue <bool>() &&
                player.ManaPercentage() >= lanemana)
            {
                E.Cast(Efarmpos.Position);
            }



            var mixed   = (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed);
            var htarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);

            if (htarget == null)
            {
                return;
            }

            if (E.IsReady() && mixed && Config.Item("harassE").GetValue <bool>() && htarget.IsValidTarget(E.Range) &&
                player.ManaPercentage() >= harassmana)
            {
                E.CastIfHitchanceEquals(htarget, HitChance.High, true);
            }
            if (W.IsReady() && mixed && Config.Item("harassW").GetValue <bool>() && htarget.IsValidTarget(W.Range) &&
                player.ManaPercentage() >= harassmana)
            {
                W.CastIfHitchanceEquals(htarget, HitChance.High, true);
            }



            //Combo
            var target = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);

            if (target == null)
            {
                return;
            }
            var qtarget = TargetSelector.GetTarget(600, TargetSelector.DamageType.Magical);

            if (qtarget == null)
            {
                return;
            }
            var wpred = W.GetPrediction(target);

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                if (Q.IsReady() && R.IsReady() && Config.Item("UseQR").GetValue <bool>() &&
                    Config.Item("UseQ").GetValue <bool>() && qtarget.IsValidTarget(650) &&
                    player.Position.CountEnemiesInRange(650) >=
                    Config.Item("QRcount").GetValue <Slider>().Value)
                {
                    R.Cast();
                    Q.Cast(player.Position.Extend(target.Position, +300));
                }
                else
                {
                    if (Q.IsReady() && Config.Item("UseQ").GetValue <bool>() && qtarget.IsValidTarget(650) &&

                        player.Position.CountEnemiesInRange(650) >= 1)
                    {
                        Q.Cast(player.Position.Extend(target.Position, +300));
                    }
                }
                if (E3.IsReady() && R.IsReady() && Config.Item("UseER").GetValue <bool>() &&
                    Config.Item("UseR").GetValue <bool>() &&
                    target.Position.CountEnemiesInRange(450 - 250) >=
                    Config.Item("ERcount").GetValue <Slider>().Value)
                {
                    CastER(target);
                }
                else
                {
                    if (E.IsReady() && Config.Item("UseE").GetValue <bool>() && target.IsValidTarget(E.Range))
                    {
                        E.CastIfHitchanceEquals(target, HitChance.High, true);
                    }
                    if (W.IsReady() && Config.Item("UseWR").GetValue <bool>() && Config.Item("UseR").GetValue <bool>() &&
                        R.IsReady() && target.IsValidTarget(W.Range) &&
                        wpred.Hitchance >= HitChance.High && CalcDamage(target) > target.Health)
                    {
                        R.Cast();

                        Utility.DelayAction.Add(1010,
                                                () => W.CastIfHitchanceEquals(target, HitChance.High, true));
                    }
                    else
                    {
                        if (W.IsReady() && Config.Item("UseW").GetValue <bool>() && target.IsValidTarget(W.Range))
                        {
                            W.CastIfHitchanceEquals(target, HitChance.High, true);
                        }
                    }
                }
            }
        }
Пример #24
0
 public static bool ishealthy()
 {
     return(Player.HealthPercentage() > 15);
 }
Пример #25
0
        public static void Combo()
        {
            Obj_AI_Hero target = TargetSelector.GetTarget(Zed.q.Range - 50, TargetSelector.DamageType.Physical);

            if (Zed.player.Mana >= (MiscHelper.GetEnergyCost(SpellSlot.Q) + MiscHelper.GetEnergyCost(SpellSlot.W) + MiscHelper.GetEnergyCost(SpellSlot.E)))
            {
                if (Zed.menuHelper.menu.Item("comboUseR").GetValue <bool>() && Zed.r.IsReady() && target != null && !Zed.rData.isCreated() && MiscHelper.GetComboDamage(target) > (target.Health * 0.8))
                {
                    if (750 < (Environment.TickCount - Zed.rData.getTimeCasted()))
                    {
                        Zed.r.Cast(target, true);
                    }
                    Zed.rData.setTimeCasted(Environment.TickCount);
                }
                if (Zed.menuHelper.menu.Item("comboUseW").GetValue <bool>() && Zed.w.IsReady() && target != null && !Zed.wData.isCreated())
                {
                    if (500 < (Environment.TickCount - Zed.wData.getTimeCasted()))
                    {
                        Zed.w.Cast(new Vector3(target.Position.X, target.Position.Y, target.Position.Z), true);
                    }
                    Zed.wData.setTimeCasted(Environment.TickCount);
                }
            }
            if (Zed.menuHelper.menu.Item("comboUseE").GetValue <bool>() && Zed.e.IsReady() && target != null)
            {
                if ((Zed.wData.isCreated() && target.Distance(Zed.wData.getShadow()) < Zed.e.Range) || (Zed.rData.isCreated() && target.Distance(Zed.rData.getShadow()) < Zed.e.Range) || target.Distance(Zed.player) < Zed.e.Range)
                {
                    Zed.e.Cast();
                }
            }
            if (Zed.menuHelper.menu.Item("comboUseQ").GetValue <bool>() && Zed.q.IsReady() && target != null)
            {
                Zed.q.CastIfHitchanceEquals(target, HitChance.High, true);
            }
            if (Zed.menuHelper.menu.Item("comboIgn").GetValue <bool>() && MiscHelper.GetComboDamage(target) > target.Health && target.HealthPercentage() < 30 && target != null)
            {
                Zed.player.Spellbook.CastSpell(Zed.ignite, true);
            }
        }
Пример #26
0
            public override string ToString()
            {
                var time = _recallStart + Duration - Game.Time;

                if (time <= 0)
                {
                    time = Game.Time - _lastActionTime;
                }
                if (LastStatusType == Packet.S2C.Teleport.Type.Recall)
                {
                    if (LastStatus == Packet.S2C.Teleport.Status.Start)
                    {
                        return(string.Format("Recall: {0}({1}%) Recalling ({2:0.00})", Hero.ChampionName,
                                             (int)Hero.HealthPercentage(), time));
                    }
                    if (LastStatus == Packet.S2C.Teleport.Status.Finish)
                    {
                        return(string.Format("Recall: {0}({1}%) Recalled ({2:0.00})", Hero.ChampionName,
                                             (int)Hero.HealthPercentage(), time));
                    }
                    if (LastStatus == Packet.S2C.Teleport.Status.Abort)
                    {
                        return(string.Format("Recall: {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage()));
                    }
                }
                if (LastStatusType == Packet.S2C.Teleport.Type.Teleport)
                {
                    if (LastStatus == Packet.S2C.Teleport.Status.Start)
                    {
                        return(string.Format("Teleport: {0}({1}%) Teleporting ({2:0.00})", Hero.ChampionName,
                                             (int)Hero.HealthPercentage(), time));
                    }
                    if (LastStatus == Packet.S2C.Teleport.Status.Finish)
                    {
                        return(string.Format("Teleport: {0}({1}%) Ported ({2:0.00})", Hero.ChampionName,
                                             (int)Hero.HealthPercentage(), time));
                    }
                    if (LastStatus == Packet.S2C.Teleport.Status.Abort)
                    {
                        return(string.Format("Teleport: {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage()));
                    }
                }
                if (LastStatusType == Packet.S2C.Teleport.Type.Shen || LastStatusType == Packet.S2C.Teleport.Type.TwistedFate)
                {
                    if (LastStatus == Packet.S2C.Teleport.Status.Start)
                    {
                        return(string.Format("(R): {0}({1}%) Transporting ({2:0.00})", Hero.ChampionName,
                                             (int)Hero.HealthPercentage(), time));
                    }
                    if (LastStatus == Packet.S2C.Teleport.Status.Finish)
                    {
                        return(string.Format("(R): {0}({1}%) Ported ({2:0.00})", Hero.ChampionName,
                                             (int)Hero.HealthPercentage(), time));
                    }
                    if (LastStatus == Packet.S2C.Teleport.Status.Abort)
                    {
                        return(string.Format("(R): {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage()));
                    }
                }
                return(string.Empty);
            }
Пример #27
0
        private static void UseItems(Obj_AI_Hero tar)
        {
            var ownH = GetPerValue(false);
            if ((Menu.Item("BotrkC").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) &&
                (Menu.Item("OwnHPercBotrk").GetValue<Slider>().Value <= ownH) &&
                ((Menu.Item("EnHPercBotrk").GetValue<Slider>().Value <= tar.HealthPercentage())))
            {
                UseItem(3153, tar);
            }

            if ((Menu.Item("BotrkH").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) &&
                (Menu.Item("OwnHPercBotrk").GetValue<Slider>().Value <= ownH) &&
                ((Menu.Item("EnHPercBotrk").GetValue<Slider>().Value <= tar.HealthPercentage())))
            {
                UseItem(3153, tar);
            }

            if (Menu.Item("YoumuuC").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                UseItem(3142);
            }

            if (Menu.Item("YoumuuH").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                UseItem(3142);
            }

            if (Menu.Item("BilgeC").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                UseItem(3144, tar);
            }

            if (Menu.Item("BilgeH").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                UseItem(3144, tar);
            }
        }
Пример #28
0
        static void CastE(Obj_AI_Hero enemy)
        {
            if (!E.IsReady() || enemy == null || !enemy.IsValidTarget())
            {
                return;
            }
            bool caught = IsPulling().Item1;
            Obj_AI_Hero CatchedQtarget = IsPulling().Item2;

            if (!caught && qTimer == 0)
            {
                if (Player.Distance(enemy.Position) <= E.Range)
                {
                    if (Player.HealthPercentage() < 20 && enemy.HealthPercentage() > 20)
                    {
                        Push(enemy);
                    }
                    else
                    {
                        Pull(enemy);
                    }
                }
            }

        }
Пример #29
0
 private static void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (sender.IsEnemy && sender.Type == GameObjectType.obj_AI_Minion)
     {
         if (GetBool("FW") && W.IsReady() && GetActive("FarmActive") && args.Target.Name == Player.Name && Player.Mana / Player.MaxMana * 100 >= GetSlider("MP"))
         {
             if (GrabAlly("HP") == null)
             {
                 W.Cast(sender, GetBool("UsePacket"));
             }
             else
             {
                 W.CastIfHitchanceEquals(GrabAlly("HP"), HitC, GetBool("UsePacket"));
             }
         }
     }
     if (GetBool("AutoW") && W.IsReady() && sender.IsEnemy && (sender.Type == GameObjectType.obj_AI_Hero || sender.Type == GameObjectType.obj_AI_Turret))
     {
         if ((args.SData.Name != null && IsOnTheLine(Player.Position, args.Start, args.End)) || (args.Target == Player && Player.Distance(sender) <= 450) || args.Target == Player && Utility.UnderTurret(Player, true))
         {
             if (GrabAlly("HP") == null)
             {
                 W.Cast(sender, GetBool("UsePacket"));
             }
             else
             {
                 W.CastIfHitchanceEquals(GrabAlly("HP"), HitC, GetBool("UsePacket"));
             }
         }
     }
     if (sender.IsValid && sender.IsEnemy && args.SData.Name == "YasuoWMovingWall")
     {
         WallCastT          = Environment.TickCount;
         YasuoWallCastedPos = sender.ServerPosition.To2D();
     }
     if (!GetBool("Mikeal") && !GetBool("Iron"))
     {
         return;
     }
     Items.Item Mikael = new Items.Item(3222, 750);;
     Items.Item Iron   = new Items.Item(3190, 600);;
     if (!Mikael.IsReady() || !Iron.IsReady())
     {
         return;
     }
     if (sender.IsValid && sender.IsEnemy)
     {
         var allies = GrabAlly("ItemHP");
         if (allies != null && args.Target == allies)
         {
             if (Utility.CountEnemiesInRange(allies, 1200) > 0 && !Utility.InFountain(allies))
             {
                 if (Mikael.IsReady() && Mikael.IsInRange(allies))
                 {
                     Mikael.Cast(allies);
                 }
                 if (Iron.IsReady() && Iron.IsInRange(allies))
                 {
                     Iron.Cast();
                 }
             }
             else if (sender.Type == GameObjectType.obj_AI_Turret && Utility.UnderTurret(allies, true))
             {
                 if (Mikael.IsReady() && Mikael.IsInRange(allies))
                 {
                     Mikael.Cast(allies);
                 }
                 if (Iron.IsReady() && Iron.IsInRange(allies))
                 {
                     Iron.Cast();
                 }
             }
         }
         else if (allies == null && args.Target == Player && !Utility.InFountain(Player))
         {
             if (Player.HealthPercentage() <= GetSlider("ItemHP") && Utility.CountEnemiesInRange(Player, 1200) > 0)
             {
                 if (Mikael.IsReady())
                 {
                     Mikael.Cast(Player);
                 }
                 if (Iron.IsReady())
                 {
                     Iron.Cast();
                 }
             }
         }
     }
 }
Пример #30
0
        private static void CastUlti(Obj_AI_Hero t)
        {
            if (!Spells[SpellSlot.R].IsReady())
            {
                return;
            }

            var selTar = TargetSelector.SelectedTarget;

            if (selTar != null && !selTar.IsInvulnerable && Spells[SpellSlot.R].WillHit(selTar, Player.ServerPosition) &&
                Configs.CassioConfig.Item("apollo.cassio.r.seltar").GetValue <bool>())
            {
                Instances.CastR(Player.IsFacing(selTar), selTar.ServerPosition);
            }
            else if (!t.IsInvulnerable && Spells[SpellSlot.R].WillHit(t, Player.ServerPosition) &&
                     Configs.CassioConfig.Item("apollo.cassio.r.kill").GetValue <bool>())
            {
                if (Damages.ComboDmg(t) > t.Health)
                {
                    Instances.CastR(Player.IsFacing(t), t.ServerPosition);
                }
            }

            var castPred   = Spells[SpellSlot.R].GetPrediction(t, true, Spells[SpellSlot.R].Range);
            var enemiesHit =
                ObjectManager.Get <Obj_AI_Hero>()
                .Where(h => Spells[SpellSlot.R].WillHit(h, castPred.CastPosition) && !h.IsInvulnerable)
                .ToList();
            var enemiesFacing    = enemiesHit.Where(h => h.IsFacing(Player)).ToList();
            var enemiesNotFacing = enemiesHit.Where(h => !h.IsFacing(Player)).ToList();
            var minStun          = Configs.CassioConfig.Item("apollo.cassio.r.minhit.stunned").GetValue <Slider>().Value;
            var minHit           = Configs.CassioConfig.Item("apollo.cassio.r.minhit.hit").GetValue <Slider>().Value;

            switch (Configs.CassioConfig.Item("apollo.cassio.r.minhit.mode").GetValue <StringList>().SelectedIndex)
            {
            case 0:
            {
                if (enemiesHit.Count() >= minHit)
                {
                    SpellClass.Spells[SpellSlot.Q].Cast(castPred.CastPosition, PacketCast);
                }
                break;
            }

            case 1:
            {
                if (enemiesFacing.Count() >= minStun && enemiesNotFacing.Count < minStun)
                {
                    SpellClass.Spells[SpellSlot.Q].Cast(castPred.CastPosition, PacketCast);
                }

                else if (enemiesNotFacing.Count >= minStun)
                {
                    Instances.CastR(false, castPred.CastPosition);
                }
                break;
            }
            }

            var saveBool      = Configs.CassioConfig.Item("").GetValue <bool>(); //todo menu
            var saveMinHealth = Configs.CassioConfig.Item("").GetValue <Slider>().Value;
            var rTar          =
                ObjectManager.Get <Obj_AI_Hero>()
                .Where(h => Spells[SpellSlot.R].WillHit(h, Player.ServerPosition) && !h.IsInvulnerable)
                .OrderBy(h => h.Distance(Player)).First();
            var rTarcastPred = Spells[SpellSlot.R].GetPrediction(rTar, true, Spells[SpellSlot.R].Range);

            if (saveBool && Player.HealthPercentage() < saveMinHealth)
            {
                Instances.CastR(rTar.IsFacing(Player), rTarcastPred.CastPosition);
            }
        }
Пример #31
0
        private static void Game_OnGameInput(GameInputEventArgs args)
        {
            if (args.Input.StartsWith("#"))
            {
                args.Process = false;

                if (args.Input.ToLowerInvariant().Contains("print buffs") && !args.Input.ToLowerInvariant().Contains("print buffs nearest"))
                {
                    print(countbuffs(Player) + " buffs have been found:", "normal");
                    foreach (var Buff in Player.Buffs)
                    {
                        Game.PrintChat("<font color=\'#1fdb35\'> Buff Name: </font>" + Buff.Name);
                        Game.PrintChat("<font color=\'#1fdb35\'> Buff Display Name: </font>" + Buff.DisplayName);
                        Game.PrintChat("<font color=\'#1fdb35\'> Buff Type: </font>" + Buff.Type);
                        Game.PrintChat("--------------------------");
                    }
                }

                else if (args.Input.ToLowerInvariant().Contains("print buffs nearest"))
                {
                    print(countbuffs(GetNearestTarget(Game.CursorPos)) + " buffs have been found:", "normal");
                    foreach (var Buff in GetNearestTarget(Game.CursorPos).Buffs)
                    {
                        Game.PrintChat("<font color=\'#1fdb35\'> Buff Name: </font>" + Buff.Name);
                        Game.PrintChat("<font color=\'#1fdb35\'> Buff Display Name: </font>" + Buff.DisplayName);
                        Game.PrintChat("<font color=\'#1fdb35\'> Buff Type: </font>" + Buff.Type);
                        Game.PrintChat("--------------------------");
                    }
                }
                else if (args.Input.ToLowerInvariant().Contains("champname"))
                {
                    print("Your champion is named " + Player.ChampionName, "normal");
                    print("Your champion's base skin is named " + Player.BaseSkinName, "normal");
                    print("Your champion's current skin name is " + Player.SkinName, "normal");
                }

                else if (args.Input.ToLowerInvariant().Contains("print position") && !args.Input.ToLowerInvariant().Contains("print position cursor"))
                {
                    print("Your position is: " + Player.Position, "normal");
                }

                else if (args.Input.ToLowerInvariant().Contains("print position cursor"))
                {
                    print("Your cursor's position is: " + Game.CursorPos, "normal");
                }
                else if (args.Input.ToLowerInvariant().Contains("print petinfo"))
                {
                    if (Player.Pet != null)
                    {
                        var pet = Player.Pet;
                        print("Pet found! Printing info:", "normal");
                        Game.PrintChat("Pet name is: " + pet.Name);
                        Game.PrintChat("Pet position is: " + pet.Position);
                        Game.PrintChat("Pet type is: " + pet.Type);
                        Game.PrintChat("Pet return radius: " + Player.PetReturnRadius);
                        Game.PrintChat("Last Pet Spawned ID: " + Player.AI_LastPetSpawnedID);
                    }
                    else
                    {
                        print("Pet not found!", "error");
                    }
                }
                else if (args.Input.ToLowerInvariant().Contains("print iteminfo"))
                {
                    if (Player.InventoryItems.Count() > 0)
                    {
                        print("Printing items' info:", "normal");
                        foreach (var Item in Player.InventoryItems)
                        {
                            Game.PrintChat("Item Display Name: " + Item.DisplayName);
                            Game.PrintChat("Item Name: " + Item.Name);
                            Game.PrintChat("Item ID: " + Item.Id);
                            Game.PrintChat("Item Stacks: " + Item.Stacks);
                            Game.PrintChat("--------------------------");
                        }
                    }
                    else
                    {
                        print("You do not own any items!", "error");
                    }
                }
                else if (args.Input.ToLowerInvariant().Contains("print attacktype"))
                {
                    if (Player.IsMelee())
                    {
                        print("Champion is melee!", "normal");
                    }
                    else if (!Player.IsMelee())
                    {
                        print("Champion is ranged!", "normal");
                    }
                    else
                    {
                        print("Unexpected error!", "error");
                    }
                }
                else if (args.Input.ToLowerInvariant().Contains("print largest critstrike"))
                {
                    if (Player.LargestCriticalStrike != 0)
                    {
                        print("Your largest critical strike is " + Player.LargestCriticalStrike, "normal");
                    }
                    else
                    {
                        print("You haven't critically striked yet!", "error");
                    }
                }
                else if (args.Input.ToLowerInvariant() == "print my info")
                {
                    print("Printing info:", "normal");
                    Game.PrintChat("Armor: " + Player.Armor);
                    Game.PrintChat("Flat Magic Reduction: " + Player.FlatMagicReduction);
                    Game.PrintChat("Gold: " + Player.Gold);
                    Game.PrintChat("Current Gold: " + Player.GoldCurrent);
                    Game.PrintChat("Gold Earned: " + Player.GoldEarned);
                    Game.PrintChat("Has Bot AI: " + Player.HasBotAI);
                    Game.PrintChat("HP: " + Player.Health + "/" + Player.MaxHealth);
                    Game.PrintChat("HP Percentage: " + Player.HealthPercentage());
                    Game.PrintChat("Mana: " + Player.Mana + "/" + Player.MaxMana);
                    Game.PrintChat("Mana Percentage: " + Player.ManaPercentage());
                }

                else if (args.Input.ToLowerInvariant().Contains("print my info 2"))
                {
                    Game.PrintChat("HP Regen Rate: " + Player.HPRegenRate); //
                    Game.PrintChat("Is In Fountain: " + Player.InFountain());
                    Game.PrintChat("Is In Shop: " + Player.InShop());
                    Game.PrintChat("Is Bot: " + Player.IsBot);
                    Game.PrintChat("Is Player Dead?: " + Player.IsDead);
                    Game.PrintChat("Is Immovable: " + Player.IsImmovable);
                    Game.PrintChat("Is Invulnerable: " + Player.IsInvulnerable);
                    Game.PrintChat("Is Moving: " + Player.IsMoving);
                    Game.PrintChat("Is Pacified: " + Player.IsPacified);
                    Game.PrintChat("Is Recalling: " + Player.IsRecalling());
                }

                else if (args.Input.ToLowerInvariant().Contains("print my info 3"))
                {
                    Game.PrintChat("Is Rooted: " + Player.IsRooted);//
                    Game.PrintChat("Is Stunned: " + Player.IsStunned);
                    Game.PrintChat("Is Targetable: " + Player.IsTargetable);
                    Game.PrintChat("Is Visible: " + Player.IsVisible);
                    Game.PrintChat("Is Winding Up: " + Player.IsWindingUp);
                    Game.PrintChat("Is Zombie: " + Player.IsZombie);
                    Game.PrintChat("Last Spell Casted: " + Player.LastCastedSpellName());
                    Game.PrintChat("Last Spell's Target: " + Player.LastCastedSpellTarget());
                    Game.PrintChat("Last Pause Position: " + Player.LastPausePosition);
                    Game.PrintChat("Level: " + Player.Level);
                }

                else if (args.Input.ToLowerInvariant().Contains("print my info 4"))
                {
                    Game.PrintChat("Level Cap: " + Player.LevelCap);//
                    Game.PrintChat("Lifesteal Immune: " + Player.LifestealImmune);
                    Game.PrintChat("Longest Time Alive: " + Player.LongestTimeSpentLiving);
                    Game.PrintChat("Magic Immune: " + Player.MagicImmune);
                    Game.PrintChat("Network ID: " + Player.NetworkId);
                    Game.PrintChat("Wards Killed: " + Player.WardsKilled);
                    Game.PrintChat("Wards Placed: " + Player.WardsPlaced);
                }
                else if (args.Input.ToLowerInvariant().Contains("print game info"))
                {
                    print("Printing game info:", "normal");
                    Game.PrintChat("Clock Time: " + Game.ClockTime);
                    Game.PrintChat("ID: " + Game.Id);
                    Game.PrintChat("IP: " + Game.IP);
                    Game.PrintChat("Map ID: " + Game.MapId);
                    Game.PrintChat("Mode: " + Game.Mode);
                    Game.PrintChat("Ping: " + Game.Ping);
                    Game.PrintChat("Time: " + Game.Time);
                    Game.PrintChat("Version: " + Game.Version);
                }
                else if (args.Input.ToLowerInvariant().Contains("ping"))
                {
                    print("Ping: " + Game.Ping, "normal");
                }

                else
                {
                    print("Command not found!", "error");
                }
            }
        }
Пример #32
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            /////////////////check afk////////////////////////////
            if (Game.Time - pastTime >= 1 && !Player.IsDead && !Player.IsRecalling() && (Game.Time - gamestart > 70))
            {
                pastTime = Game.Time;
                afktime += 1;
                Game.PrintChat(afktime.ToString());
                if (afktime > 55) // 잠수 55초 경과
                {
                    Player.IssueOrder(GameObjectOrder.AttackTo,
                                      new Vector3(4910f, 10268f, -71.24f));
                    follow  = null;
                    afktime = 0;
                }


                #region 우물 잠수 45초 경과
                if (afktime > 45 && spawn.Distance(Player.Position) < 1500)
                {
                    Game.PrintChat("AFK DETECTED, Change Target");
                    if (fllowlist.Contains(follow.ChampionName))
                    {
                        fllowlist.Remove(follow.ChampionName);
                    }
                    follow  = null;
                    afktime = 0;
                }
                #endregion
            }
            //////////////////////////////////////////////////////


            //////////////////check player in turret range///////////////////////



            ////////////////////////////////////////////////////////////////
            if (fllowlist.Count == 0)
            {
                foreach (var ally in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsAlly && !x.IsMe))
                {
                    fllowlist.Add(ally.ChampionName);
                    Game.PrintChat("Follow LIST is NULL. ADD ALLY CHAMPIONS");
                }
            }



            #region 시작아이템 구입
            if (!(Items.HasItem(3301) || Items.HasItem(3096) || Items.HasItem(3069)))
            {
                Player.BuyItem(JeonItem.GetItemIdbyInt(3301));
                Player.BuyItem(JeonItem.GetItemIdbyInt(3340));
                Player.BuyItem(JeonItem.GetItemIdbyInt(2003));
                Player.BuyItem(JeonItem.GetItemIdbyInt(2003));
                Player.BuyItem(JeonItem.GetItemIdbyInt(2003));
            }
            #endregion

            #region 상점이용가능할때
            if (Utility.InShop(Player) || Player.IsDead)
            {
                foreach (var item in nextItem.itemIds)
                {
                    if (!Items.HasItem(Convert.ToInt32(item)))
                    {
                        Player.BuyItem(item);
                    }
                }
                checkItemInventory();
            }
            #endregion

            #region 타겟이 안잡혀있음 - 타겟 설정 부분
            if (!stopfollowing)
            {
                if (ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && ad.Contains(x.ChampionName)))
                {
                    follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && ad.Contains(x.ChampionName));
                }
                else if (follow == null && ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && ap.Contains(x.ChampionName)))
                {
                    follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && ap.Contains(x.ChampionName));
                }
                else if (follow == null && ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && bruiser.Contains(x.ChampionName)))
                {
                    follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && bruiser.Contains(x.ChampionName));
                }
                else if (follow == null)
                {
                    follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && fllowlist.Contains(x.ChampionName));
                }
            }
            #endregion



            if (Game.Time - foundturret > 25) // 터렛발견하고 25초 경과
            {
                stopfollowing = false;
            }


            #region 타겟이 죽어 있는 경우 (임시) 타겟 체인지
            if (follow.IsDead)
            {
                Game.PrintChat("Target is dead. Change Targeting");
                if (ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && x.IsAlly && !x.IsDead && x.Distance(Player.Position) < 1800))
                {
                    follow =
                        ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && !x.IsDead && x.Distance(Player.Position) < 1800);
                }
                else
                {
                    follow =
                        ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && !x.IsDead);
                }
            }
            #endregion

            #region follow가 죽었거나. (타겟과의거리가 5000이상이고. 내가 상점범위에 없고.타겟의 포지션이 상점내)이거나. 플레이어의 체력퍼센트가 설정된것 이하 일경우
            if (follow.IsDead ||
                (follow.Distance(Player.Position) > 5000 && !Utility.InShop(Player) && spawn.Distance(follow.Position) < 1500) ||
                Player.HealthPercentage() <
                menu.Item("hpb").GetValue <Slider>().Value&& !Player.IsDead)
            {
                if (Game.Time - foundturret > 20 && !recalling)
                {
                    Game.PrintChat("WARNNING! MUST RECALL");
                    var turret2 =
                        ObjectManager.Get <Obj_AI_Turret>()
                        .Where(x => x.IsAlly);

                    if (turret2.Any())
                    {
                        stopfollowing = true;
                        turret        = turret2.OrderBy(x => x.Distance(Player.Position)).First();
                        foundturret   = Game.Time;
                    }
                }


                if (stopfollowing && !recalling)
                {
                    Game.PrintChat("WARNNING! MOVE TURRET");
                    Player.IssueOrder(GameObjectOrder.MoveTo, turret);
                    if (Player.Distance(turret.Position) <= 350 && Game.Time - count > 15)
                    {
                        Player.Spellbook.CastSpell(SpellSlot.Recall);

                        recalling = true;
                        count     = Game.Time;
                    }
                }
            }
            #endregion



            if ((Game.Time - count > 15)) //터렛이동한지 15초~17초 사이일때
            {
                stopfollowing = false;
                recalling     = false;
            }

            if (Player.ChampionName.ToUpper() == "SORAKA")
            {
                #region W발동부분 - 아군
                if (!recalling && !stopfollowing && W.IsReady())
                {
                    var allies2 =
                        ObjectManager.Get <Obj_AI_Hero>()
                        .Where(
                            x =>
                            x.IsAlly && x.Health / x.MaxHealth * 100 < menu.Item("allyhpw").GetValue <Slider>().Value&&
                            !x.IsDead && x.Distance(Player.Position) < 550);
                    var objAiHeroes = allies2 as Obj_AI_Hero[] ?? allies2.ToArray();
                    if (objAiHeroes.Any() &&
                        Player.Health / Player.MaxHealth * 100 >
                        menu.Item("wabovehp").GetValue <Slider>().Value)
                    {
                        W.Cast(objAiHeroes.First());
                    }
                }
                #endregion

                #region R발동
                if (menu.Item("user").GetValue <bool>() && R.IsReady())
                {
                    var allies =
                        ObjectManager.Get <Obj_AI_Hero>()
                        .Where(
                            x =>
                            x.IsAlly && x.Health / x.MaxHealth * 100 < menu.Item("allyhpr").GetValue <Slider>().Value&&
                            !x.IsDead);
                    if (allies.Any())
                    {
                        if (R.IsReady())
                        {
                            R.Cast();
                        }
                    }
                }
                #endregion
            }
            #region 리콜중도 아니고 따라다니는중일때
            if (!recalling && !stopfollowing)
            {
                #region 거리가 500이상 5500이하일때
                if (follow.Distance(Player.Position) > 300 && follow.Distance(Player.Position) < 5500)
                {
                    Player.IssueOrder(GameObjectOrder.MoveTo, follow.Position.To2D().Extend(spawn.To2D(), 200).To3D());
                    afktime = 0;
                }
                else // 거리가 안으로 도달했을때 위치설정
                {
                }
                #endregion

                #region 타겟과 거리가 5500이상일때
                if (follow.Distance(Player.Position) > 5500)
                {
                    if (spawn.Distance(follow.Position) <= 3000) // 타겟이 기지에 있다
                    {
                        Random y      = new Random();
                        var    turret =
                            ObjectManager.Get <Obj_AI_Turret>().First(x => x.Distance(Player.Position) < 3500 && x.IsAlly);

                        var xPos = ((spawn.X - turret.Position.X) / Vector3.Distance(turret.Position, spawn)) * 300 +
                                   turret.Position.X -
                                   y.Next(25, 150);
                        var yPos = ((spawn.Y - turret.Position.Y) / Vector3.Distance(turret.Position, spawn)) * 300 +
                                   turret.Position.Y -
                                   y.Next(25, 150);

                        var vec = new Vector3(xPos, yPos, follow.Position.Z);
                        Player.IssueOrder(GameObjectOrder.MoveTo, vec);
                        afktime = 0;
                    }
                    else // 타겟이 기지 밖에 있다
                    {
                        Player.IssueOrder(GameObjectOrder.MoveTo, follow.Position.To2D().Extend(spawn.To2D(), 200).To3D());
                        afktime = 0;
                    }
                }
                #endregion

                #region 타겟이 죽지않았을때 (평상시)
                if (!follow.IsDead)
                {
                    if (Player.ChampionName.ToUpper() == "SORAKA")
                    {
                        #region W발동-타겟만
                        if (W.IsReady() && menu.Item("usew").GetValue <bool>() &&
                            Player.Health / Player.MaxHealth * 100 >
                            menu.Item("wabovehp").GetValue <Slider>().Value)
                        {
                            if (follow.Health / follow.MaxHealth * 100 < menu.Item("allyhpw").GetValue <Slider>().Value&&
                                follow.Distance(Player.Position) < 550 &&
                                Player.Health / Player.MaxHealth * 100 >
                                menu.Item("wabovehp").GetValue <Slider>().Value)
                            {
                                W.Cast(follow);
                                afktime = 0;
                            }
                            else if (follow.Health / follow.MaxHealth * 100 < menu.Item("allyhpw").GetValue <Slider>().Value&&
                                     follow.Distance(Player.Position) > 550)
                            {
                                Player.IssueOrder(GameObjectOrder.MoveTo, follow.Position);
                                afktime = 0;
                            }
                        }
                        #endregion

                        #region 오토Q
                        if (Q.IsReady() && !Utility.UnderTurret(Player, true))
                        {
                            var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
                            Q.Cast(target);
                            afktime = 0;
                        }
                        #endregion

                        #region 오토E
                        if (E.IsReady() && !Utility.UnderTurret(Player, true))
                        {
                            var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
                            E.Cast(target);
                            afktime = 0;
                        }
                        #endregion
                    }
                    else
                    {
                        var qTarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
                        var wTarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);
                        var eTarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
                        var rTarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

                        if (Q.CanCast(qTarget))
                        {
                            Q.Cast(qTarget);
                        }
                        if (W.CanCast(qTarget))
                        {
                            W.Cast(qTarget);
                        }
                        if (E.CanCast(qTarget))
                        {
                            E.Cast(qTarget);
                        }
                        if (R.CanCast(qTarget))
                        {
                            R.Cast(qTarget);
                        }
                    }
                }
                #endregion

                #region 타겟이 죽었을때
                else
                {
                    Game.PrintChat("Target is dead. Change Targeting");
                    if (ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && x.IsAlly && !x.IsDead && x.Distance(Player.Position) < 1800))
                    {
                        follow =
                            ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && !x.IsDead && x.Distance(Player.Position) < 1800);
                    }
                    else
                    {
                        follow =
                            ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && !x.IsDead);
                    }
                }
                #endregion
            }
            #endregion
        }
Пример #33
0
 private static float GetPerValue(bool mana)
 {
     return(mana ? Player.ManaPercentage() : Player.HealthPercentage());
 }