Exemplo n.º 1
0
        static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser)
        {
            var packetCast                = Config.Item("PacketCast").GetValue <bool>();
            var BarrierGapCloser          = Config.Item("BarrierGapCloser").GetValue <bool>();
            var BarrierGapCloserMinHealth = Config.Item("BarrierGapCloserMinHealth").GetValue <Slider>().Value;
            var EGapCloser                = Config.Item("EGapCloser").GetValue <bool>();

            if (BarrierGapCloser && gapcloser.Sender.IsValidTarget(Player.AttackRange) && Player.GetHealthPerc() < BarrierGapCloserMinHealth)
            {
                if (BarrierManager.Cast())
                {
                    Game.PrintChat(string.Format("OnEnemyGapcloser -> BarrierGapCloser on {0} !", gapcloser.Sender.SkinName));
                }
            }

            if (EGapCloser && E.IsReady())
            {
                if (R.IsReady())
                {
                    R.Cast();
                }

                E.Cast();
            }
        }
Exemplo n.º 2
0
        static void Interrupter_OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
        {
            var packetCast              = Config.Item("PacketCast").GetValue <bool>();
            var RInterrupetSpell        = Config.Item("RInterrupetSpell").GetValue <bool>();
            var RAntiGapcloserMinHealth = Config.Item("RAntiGapcloserMinHealth").GetValue <Slider>().Value;

            if (RInterrupetSpell && Player.GetHealthPerc() < RAntiGapcloserMinHealth && unit.IsValidTarget(R.Range) && spell.DangerLevel == InterruptableDangerLevel.High)
            {
                if (R.CastIfHitchanceEquals(unit, unit.IsMoving ? HitChance.High : HitChance.Medium, packetCast))
                {
                    Game.PrintChat(string.Format("OnPosibleToInterrupt -> RInterrupetSpell on {0} !", unit.SkinName));
                }
            }
        }
Exemplo n.º 3
0
        static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser)
        {
            if (mustDebug)
            {
                Game.PrintChat(string.Format("OnEnemyGapcloser -> {0}", gapcloser.Sender.SkinName));
            }
            var packetCast                = Config.Item("PacketCast").GetValue <bool>();
            var BarrierGapCloser          = Config.Item("BarrierGapCloser").GetValue <bool>();
            var BarrierGapCloserMinHealth = Config.Item("BarrierGapCloserMinHealth").GetValue <Slider>().Value;

            //var QGapCloser = Config.Item("QGapCloser").GetValue<bool>();

            if (BarrierGapCloser && Player.GetHealthPerc() < BarrierGapCloserMinHealth && gapcloser.Sender.IsValidTarget(Player.AttackRange))
            {
                if (BarrierManager.Cast())
                {
                    Game.PrintChat(string.Format("OnEnemyGapcloser -> BarrierGapCloser on {0} !", gapcloser.Sender.SkinName));
                }
            }

            //if (QGapCloser && Q.IsReady())
            //{
            //    if (mustDebug)
            //        Game.PrintChat(string.Format("OnEnemyGapcloser -> UseQ"));

            //    if (packetCast)
            //        Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(Player.NetworkId, SpellSlot.Q)).Send();
            //    else
            //        Q.Cast();
            //}
        }
Exemplo n.º 4
0
        static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser)
        {
            if (mustDebug)
            {
                Game.PrintChat(string.Format("OnEnemyGapcloser -> {0}", gapcloser.Sender.SkinName));
            }

            var packetCast                = Config.Item("PacketCast").GetValue <bool>();
            var BarrierGapCloser          = Config.Item("BarrierGapCloser").GetValue <bool>();
            var BarrierGapCloserMinHealth = Config.Item("BarrierGapCloserMinHealth").GetValue <Slider>().Value;
            var EGapCloser                = Config.Item("EGapCloser").GetValue <bool>();

            if (BarrierGapCloser && Player.GetHealthPerc() < BarrierGapCloserMinHealth && gapcloser.Sender.IsValidTarget(Player.AttackRange))
            {
                if (BarrierManager.Cast())
                {
                    Game.PrintChat(string.Format("OnEnemyGapcloser -> BarrierGapCloser on {0} !", gapcloser.Sender.SkinName));
                }
            }

            if (EGapCloser && E.IsReady() && gapcloser.Sender.IsValidTarget(E.Range))
            {
                E.CastIfHitchanceEquals(gapcloser.Sender, gapcloser.Sender.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }
        }
Exemplo n.º 5
0
        public static void UltimateHandler()
        {
            var UseRAlly          = Config.Item("UseRAlly").GetValue <bool>();
            var UseRAllyMinHealth = Config.Item("UseRAllyMinHealth").GetValue <Slider>().Value;
            var packetCast        = Config.Item("PacketCast").GetValue <bool>();

            if (UseRAlly && R.IsReady())
            {
                if (Player.GetHealthPerc() < UseRAllyMinHealth && DevHelper.CountEnemyInPositionRange(Player.ServerPosition, 500) > 0)
                {
                    R.CastOnUnit(Player, packetCast);
                    return;
                }

                var AllyList = DevHelper.GetAllyList().Where(x => Player.Distance(x.ServerPosition) < R.Range && x.GetHealthPerc() < UseRAllyMinHealth && DevHelper.CountEnemyInPositionRange(x.ServerPosition, 500) > 0);
                if (AllyList.Any())
                {
                    var ally = AllyList.First();
                    R.CastOnUnit(ally, packetCast);
                }
            }
        }
Exemplo n.º 6
0
        public static void Combo()
        {
            var eTarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>();
            var useIgnite  = Config.Item("UseIgnite").GetValue <bool>();
            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            var RMinHit       = Config.Item("RMinHit").GetValue <Slider>().Value;
            var RMinHitFacing = Config.Item("RMinHitFacing").GetValue <Slider>().Value;

            var UseRSaveYourself          = Config.Item("UseRSaveYourself").GetValue <bool>();
            var UseRSaveYourselfMinHealth = Config.Item("UseRSaveYourselfMinHealth").GetValue <Slider>().Value;

            if (eTarget.IsValidTarget(R.Range) && R.IsReady() && UseRSaveYourself)
            {
                if (Player.GetHealthPerc() < UseRSaveYourselfMinHealth && eTarget.IsFacing(Player) && !eTarget.IsInvulnerable)
                {
                    R.Cast(eTarget, packetCast, true);
                    if (dtLastSaveYourself + 3000 < Environment.TickCount)
                    {
                        Game.PrintChat("Save Yourself!");
                        dtLastSaveYourself = Environment.TickCount;
                    }
                }
            }

            if (eTarget.IsValidTarget(R.Range) && R.IsReady() && useR)
            {
                var castPred      = R.GetPrediction(eTarget, true, R.Range);
                var enemiesHit    = DevHelper.GetEnemyList().Where(x => R.WillHit(x, castPred.CastPosition) && !x.IsInvulnerable).ToList();
                var enemiesFacing = enemiesHit.Where(x => x.IsFacing(Player)).ToList();

                if (mustDebug)
                {
                    Game.PrintChat("Hit:{0} Facing:{1}", enemiesHit.Count(), enemiesFacing.Count());
                }

                if (enemiesHit.Count() >= RMinHit && enemiesFacing.Count() >= RMinHitFacing)
                {
                    R.Cast(castPred.CastPosition, packetCast);
                }
            }

            if (E.IsReady() && useE)
            {
                var eTargetCastE = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

                if (eTargetCastE.HasBuffOfType(BuffType.Poison))
                {
                    // keep priority target
                }
                else
                {
                    var query = DevHelper.GetEnemyList().Where(x => x.IsValidTarget(E.Range) && x.HasBuffOfType(BuffType.Poison));
                    if (query.Any())
                    {
                        eTargetCastE = query.First();
                    }
                }

                if (eTargetCastE != null)
                {
                    var buffEndTime = GetPoisonBuffEndTime(eTargetCastE);
                    if (buffEndTime > (Game.Time + E.Delay) || Player.GetSpellDamage(eTargetCastE, SpellSlot.E) > eTargetCastE.Health * 0.9)
                    {
                        CastE(eTarget);
                        if (Player.GetSpellDamage(eTargetCastE, SpellSlot.E) > eTargetCastE.Health * 0.9)
                        {
                            return;
                        }
                    }
                }
            }

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                if (Q.Cast(eTarget, packetCast, true) == Spell.CastStates.SuccessfullyCasted)
                {
                    dtLastQCast = Environment.TickCount;
                }
            }

            if (W.IsReady() && useW)
            {
                W.CastIfHitchanceEquals(eTarget, HitChance.High, packetCast);
            }

            if (useW)
            {
                useW = (!eTarget.HasBuffOfType(BuffType.Poison) || (!eTarget.IsValidTarget(Q.Range) && eTarget.IsValidTarget(W.Range + (W.Width / 2))));
            }

            if (W.IsReady() && useW && Environment.TickCount > dtLastQCast + Q.Delay * 1000)
            {
                W.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            double igniteDamage = summonerSpellManager.GetIgniteDamage(eTarget) + (Player.GetSpellDamage(eTarget, SpellSlot.E) * 2);

            if (eTarget.Health < igniteDamage && E.Level > 0 && eTarget.IsValidTarget(600) && eTarget.HasBuffOfType(BuffType.Poison))
            {
                summonerSpellManager.CastIgnite(eTarget);
            }
        }
Exemplo n.º 7
0
        public static void Combo()
        {
            var eTarget = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>();
            var useIgnite  = Config.Item("UseIgnite").GetValue <bool>();
            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            var RMinHit       = Config.Item("RMinHit").GetValue <Slider>().Value;
            var RMinHitFacing = Config.Item("RMinHitFacing").GetValue <Slider>().Value;

            var UseRSaveYourself          = Config.Item("UseRSaveYourself").GetValue <bool>();
            var UseRSaveYourselfMinHealth = Config.Item("UseRSaveYourselfMinHealth").GetValue <Slider>().Value;

            if (eTarget.IsValidTarget(R.Range) && R.IsReady() && UseRSaveYourself)
            {
                if (Player.GetHealthPerc() < UseRSaveYourselfMinHealth && eTarget.IsFacing(Player))
                {
                    R.Cast(eTarget.ServerPosition, packetCast);
                    if (dtLastSaveYourself.AddSeconds(3) < DateTime.Now)
                    {
                        Game.PrintChat("Save Yourself!");
                        dtLastSaveYourself = DateTime.Now;
                    }
                }
            }

            if (eTarget.IsValidTarget(R.Range) && R.IsReady() && useR)
            {
                var castPred      = R.GetPrediction(eTarget, true, R.Range);
                var enemiesHit    = DevHelper.GetEnemyList().Where(x => R.WillHit(x, castPred.CastPosition)).ToList();
                var enemiesFacing = enemiesHit.Where(x => x.IsFacing(Player)).ToList();

                if (mustDebug)
                {
                    Game.PrintChat("Hit:{0} Facing:{1}", enemiesHit.Count(), enemiesFacing.Count());
                }

                if (enemiesHit.Count() >= RMinHit && enemiesFacing.Count() >= RMinHitFacing)
                {
                    R.Cast(castPred.CastPosition, packetCast);
                }
            }

            if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE)
            {
                var buffEndTime = GetPoisonBuffEndTime(eTarget);

                if ((eTarget.HasBuffOfType(BuffType.Poison) && buffEndTime > (Game.Time + E.Delay)) || Player.GetSpellDamage(eTarget, SpellSlot.E) > eTarget.Health)
                {
                    CastE(eTarget);
                }
            }

            if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ)
            {
                if (Q.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast))
                {
                    dtLastQCast = DateTime.Now;
                }
            }

            if (W.IsReady() && useW)
            {
                var predic = W.GetPrediction(eTarget, true);
                if (predic.Hitchance >= HitChance.Medium && predic.AoeTargetsHitCount > 1)
                {
                    W.Cast(predic.CastPosition, packetCast);
                }
            }

            if (useW)
            {
                useW = (!eTarget.HasBuffOfType(BuffType.Poison) || (!eTarget.IsValidTarget(Q.Range) && eTarget.IsValidTarget(W.Range + (W.Width / 2))));
            }

            if (W.IsReady() && useW && DateTime.Now > dtLastQCast.AddMilliseconds(Q.Delay * 1000))
            {
                W.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast);
            }

            double igniteDamage = summonerSpellManager.GetIgniteDamage(eTarget) + (Player.GetSpellDamage(eTarget, SpellSlot.E) * 2);

            if (eTarget.Health < igniteDamage && E.Level > 0 && eTarget.IsValidTarget(600) && eTarget.HasBuffOfType(BuffType.Poison))
            {
                summonerSpellManager.CastIgnite(eTarget);
            }
        }