Ejemplo n.º 1
0
        void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            var target = args.Target as Obj_AI_Hero;

            if (target != null)
            {
                if (Config.GetBool("Safety.noaainult") && IsInvisible)
                {
                    args.Process = false;
                    return;
                }
                if (Config.GetBool("djumpenabled") && Config.GetBool("noauto"))
                {
                    if (args.Target.Health < GetQDamage((Obj_AI_Hero)args.Target) &&
                        Khazix.ManaPercent > 15)
                    {
                        args.Process = false;
                    }
                }

                if (Config.GetBool("UseItems") && Titanic.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Khazix.AttackRange)
                {
                    Titanic.Cast();
                }
            }
        }
Ejemplo n.º 2
0
        private static List <double> GetCombo(AIHeroClient target, bool useQ, bool useW, bool useE)
        {
            var dmgTotal  = 0d;
            var manaTotal = 0f;

            if (getCheckBoxItem(comboMenu, "Items"))
            {
                if (Bilgewater.IsReady())
                {
                    dmgTotal += Player.CalculateDamage(target, DamageType.Magical, 100);
                }
                if (BotRuinedKing.IsReady())
                {
                    dmgTotal += Player.CalculateDamage(
                        target,
                        DamageType.Physical,
                        Math.Max(target.MaxHealth * 0.1, 100));
                }
                if (Tiamat.IsReady() || Hydra.IsReady())
                {
                    dmgTotal += Player.CalculateDamage(target, DamageType.Physical, Player.TotalAttackDamage);
                }
                if (Titanic.IsReady())
                {
                    dmgTotal += Player.CalculateDamage(target, DamageType.Physical, 40 + 0.1f * Player.MaxHealth);
                }
            }
            if (useQ)
            {
                dmgTotal  += Q.GetDamage(target);
                manaTotal += Q.Instance.SData.Mana;
            }
            if (useW)
            {
                if (useQ)
                {
                    dmgTotal += Q.GetDamage(target) / 2;
                }
                if (WState == 0)
                {
                    manaTotal += W.Instance.SData.Mana;
                }
            }
            if (useE)
            {
                dmgTotal  += E.GetDamage(target);
                manaTotal += E.Instance.SData.Mana;
            }
            dmgTotal += Player.GetAutoAttackDamage(target) * 2;
            if (HaveR(target))
            {
                dmgTotal += Player.CalculateDamage(
                    target,
                    DamageType.Physical,
                    new[] { 0.25, 0.35, 0.45 }[R.Level - 1] *dmgTotal + Player.TotalAttackDamage);
            }
            return(new List <double> {
                dmgTotal, manaTotal
            });
        }
Ejemplo n.º 3
0
 private static void UseItem(AIHeroClient target)
 {
     if (target != null && (HaveR(target) || target.HealthPercent < 40 || Player.HealthPercent < 50))
     {
         if (Bilgewater.IsReady())
         {
             Bilgewater.Cast(target);
         }
         if (BotRuinedKing.IsReady())
         {
             BotRuinedKing.Cast(target);
         }
     }
     if (Youmuu.IsReady() && Player.CountEnemyHeroesInRange(R.Range + E.Range) > 0)
     {
         Youmuu.Cast();
     }
     if (Tiamat.IsReady() && Player.CountEnemyHeroesInRange(Tiamat.Range) > 0)
     {
         Tiamat.Cast();
     }
     if (Hydra.IsReady() && Player.CountEnemyHeroesInRange(Hydra.Range) > 0)
     {
         Hydra.Cast();
     }
     if (Titanic.IsReady() && !Player.Spellbook.IsAutoAttacking && Orbwalker.LastTarget != null)
     {
         Titanic.Cast();
     }
 }
Ejemplo n.º 4
0
        internal void UseItems(Obj_AI_Base target)
        {
            var KhazixServerPosition = Khazix.ServerPosition.LSTo2D();
            var targetServerPosition = target.ServerPosition.LSTo2D();

            if (Hydra.IsReady() && Khazix.LSDistance(target) <= Hydra.Range)
            {
                Hydra.Cast();
            }
            if (Tiamat.IsReady() && Khazix.LSDistance(target) <= Tiamat.Range)
            {
                Tiamat.Cast();
            }
            if (Titanic.IsReady() && Khazix.LSDistance(target) <= Tiamat.Range)
            {
                Tiamat.Cast();
            }
            if (Blade.IsReady() && Khazix.LSDistance(target) <= Blade.Range)
            {
                Blade.Cast(target);
            }
            if (Youmu.IsReady() && Khazix.LSDistance(target) <= Youmu.Range)
            {
                Youmu.Cast(target);
            }
            if (Bilgewater.IsReady() && Khazix.LSDistance(target) <= Bilgewater.Range)
            {
                Bilgewater.Cast(target);
            }
        }
Ejemplo n.º 5
0
        void Waveclear()
        {
            List <Obj_AI_Minion> allMinions = ObjectManager.Get <Obj_AI_Minion>().Where(x => x.IsValidTarget(W.Range) && !MinionManager.IsWard(x)).ToList();

            if (getCheckBoxItem(farm, "UseQFarm") && Q.IsReady())
            {
                var minion = Orbwalker.LastTarget as Obj_AI_Minion;
                if (minion != null && HealthPrediction.GetHealthPrediction(
                        minion, (int)(Khazix.Distance(minion) * 1000 / 1400)) >
                    0.35f * Khazix.GetSpellDamage(minion, SpellSlot.Q) && Khazix.Distance(minion) <= Q.Range)
                {
                    Q.Cast(minion);
                }
                else if (minion == null || !minion.IsValid)
                {
                    foreach (var min in allMinions.Where(x => x.IsValidTarget(Q.Range)))
                    {
                        if (HealthPrediction.GetHealthPrediction(
                                min, (int)(Khazix.Distance(min) * 1000 / 1400)) >
                            3 * Khazix.GetSpellDamage(min, SpellSlot.Q) && Khazix.Distance(min) <= Q.Range)
                        {
                            Q.Cast(min);
                            break;
                        }
                    }
                }
            }

            if (getCheckBoxItem(farm, "UseWFarm") && W.IsReady() && Khazix.HealthPercent <= getSliderItem(farm, "Farm.WHealth"))
            {
                var wmins = EvolvedW ? allMinions.Where(x => x.IsValidTarget(WE.Range)) : allMinions.Where(x => x.IsValidTarget(W.Range));
                MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation(wmins
                                                                                                    .Select(minion => minion.ServerPosition.To2D())
                                                                                                    .ToList(), EvolvedW ? WE.Width : W.Width, EvolvedW ? WE.Range : W.Range);
                var distcheck = EvolvedW ? Khazix.Distance(farmLocation.Position) <= WE.Range : Khazix.Distance(farmLocation.Position) <= W.Range;
                if (distcheck)
                {
                    W.Cast(farmLocation.Position);
                }
            }

            if (getCheckBoxItem(farm, "UseEFarm") && E.IsReady())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Khazix.ServerPosition, E.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), E.Width, E.Range);
                if (Khazix.Distance(farmLocation.Position) <= E.Range)
                {
                    E.Cast(farmLocation.Position);
                }
            }


            if (getCheckBoxItem(farm, "UseItemsFarm"))
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Khazix.ServerPosition, Hydra.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), Hydra.Range, Hydra.Range);

                if (Hydra.IsReady() && Khazix.Distance(farmLocation.Position) <= Hydra.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3074, Khazix);
                }
                if (Tiamat.IsReady() && Khazix.Distance(farmLocation.Position) <= Tiamat.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3077, Khazix);
                }
                if (Titanic.IsReady() && Khazix.Distance(farmLocation.Position) <= Titanic.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3748, Khazix);
                }
            }
        }
Ejemplo n.º 6
0
        void Waveclear()
        {
            List <Obj_AI_Minion> allMinions = ObjectManager.Get <Obj_AI_Minion>().OrderBy(x => x.MaxHealth).Where(x => x.IsValidTarget(W.Range) && !MinionManager.IsWard(x)).ToList();

            if (Config.GetBool("UseQFarm") && Q.IsReady() && !Orbwalking.CanAttack())
            {
                bool UsedQ  = false;
                var  minion = Orbwalker.GetTarget() as Obj_AI_Minion;
                if (minion != null)
                {
                    var hpred = HealthPrediction.GetHealthPrediction(minion, (int)(Khazix.Distance(minion) * 1000 / 1400));
                    var qdmg  = Khazix.GetSpellDamage(minion, SpellSlot.Q);
                    if ((hpred <= qdmg || hpred >= qdmg * 3) && Khazix.Distance(minion) <= Q.Range)
                    {
                        Q.Cast(minion);
                        UsedQ = true;
                    }
                }

                if (!UsedQ)
                {
                    var killable = allMinions.Find(x => x.IsInRange(Q.Range) && HealthPrediction.GetHealthPrediction(x, (int)(Khazix.Distance(x) * 1000 / 1400)) <= Khazix.GetSpellDamage(x, SpellSlot.Q));
                    if (killable != null)
                    {
                        Q.Cast(killable);
                    }

                    else
                    {
                        foreach (var min in allMinions.Where(x => x.IsValidTarget(Q.Range)))
                        {
                            if (HealthPrediction.GetHealthPrediction(
                                    min, (int)(Khazix.Distance(min) * 1000 / 1400)) >
                                3 * Khazix.GetSpellDamage(min, SpellSlot.Q) && Khazix.Distance(min) <= Q.Range)
                            {
                                Q.Cast(min);
                                break;
                            }
                        }
                    }
                }
            }

            if (Config.GetBool("UseWFarm") && W.IsReady() && Khazix.HealthPercent <= Config.GetSlider("Farm.WHealth"))
            {
                var wmins = EvolvedW ? allMinions.Where(x => x.IsValidTarget(WE.Range)) : allMinions.Where(x => x.IsValidTarget(W.Range));
                MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation(wmins
                                                                                                    .Select(minion => minion.ServerPosition.To2D())
                                                                                                    .ToList(), EvolvedW ? WE.Width : W.Width, EvolvedW ? WE.Range : W.Range);
                var distcheck = EvolvedW ? Khazix.Distance(farmLocation.Position) <= WE.Range : Khazix.Distance(farmLocation.Position) <= W.Range;
                if (distcheck)
                {
                    W.Cast(farmLocation.Position);
                }
            }

            if (Config.GetBool("UseEFarm") && E.IsReady())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Khazix.ServerPosition, E.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), E.Width, E.Range);
                if (Khazix.Distance(farmLocation.Position) <= E.Range)
                {
                    E.Cast(farmLocation.Position);
                }
            }


            if (Config.GetBool("UseItemsFarm") && !Orbwalking.CanAttack())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Khazix.ServerPosition, Hydra.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), Hydra.Range, Hydra.Range);

                if (Hydra.IsReady() && Khazix.Distance(farmLocation.Position) <= Hydra.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3074, Khazix);
                }
                if (Tiamat.IsReady() && Khazix.Distance(farmLocation.Position) <= Tiamat.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3077, Khazix);
                }
                if (Titanic.IsReady() && Khazix.Distance(farmLocation.Position) <= Titanic.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3748, Khazix);
                }
            }
        }
Ejemplo n.º 7
0
            //----------------------------------------------Combo()------------------------------------------------

            public static void Combo()
            {
                if ((Scimitar.IsReady() || QSS.IsReady()) && Player.HasBuffOfType(BuffType.Charm) || Player.HasBuffOfType(BuffType.Blind) || Player.HasBuffOfType(BuffType.Fear) || Player.HasBuffOfType(BuffType.Polymorph) || Player.HasBuffOfType(BuffType.Silence) || Player.HasBuffOfType(BuffType.Sleep) || Player.HasBuffOfType(BuffType.Snare) || Player.HasBuffOfType(BuffType.Stun) || Player.HasBuffOfType(BuffType.Suppression) || Player.HasBuffOfType(BuffType.Taunt))
                {
                    Scimitar.Cast(); QSS.Cast();
                }

                if (Menu["UseQCombo"].Cast <CheckBox>().CurrentValue&& QIsReady && QRange)
                {
                    if (Menu["SmartQ"].Cast <CheckBox>().CurrentValue)
                    {
                        QLogic();
                    }
                    else if (Menu["SaveQDodge"].Cast <CheckBox>().CurrentValue)
                    {
                    }
                    else
                    {
                        Q.Cast(Target);
                    }
                }

                if (Smite != null)
                {
                    if (Target.IsValidTarget(Smite.Range) && Smite.IsReady())
                    {
                        if (Smite.Name.Contains("gank"))
                        {
                            Smite.Cast(Target);
                        }
                        else if (Smite.Name.Contains("duel") && AARange)
                        {
                            Smite.Cast(Target);
                        }
                    }
                }

                if (Menu["UseRCombo"].Cast <CheckBox>().CurrentValue&& R.IsReady() && Player.Distance(Target) <= Player.GetAutoAttackRange(Target) + 300)
                {
                    R.Cast();
                }

                if (Menu["UseECombo"].Cast <CheckBox>().CurrentValue&& EIsReady && AARange)
                {
                    E.Cast();
                }

                if (QRange && GhostBlade.IsReady())
                {
                    GhostBlade.Cast();
                }

                if (Target.IsValidTarget(550) && BOTRK.IsReady())
                {
                    BOTRK.Cast(Target);
                }

                if (Target.IsValidTarget(550) && Bilgewater.IsReady())
                {
                    Bilgewater.Cast(Target);
                }

                if (Target.IsValidTarget(350) && Tiamat.IsReady())
                {
                    Tiamat.Cast();
                }

                if (Target.IsValidTarget(100) && Titanic.IsReady() && Titanic.Cast())
                {
                    Orbwalker.ResetAutoAttack();
                }

                if (Target.IsValidTarget(350) && Hydra.IsReady())
                {
                    Hydra.Cast();
                }

                if (Target.IsValidTarget(450) && Randuin.IsReady())
                {
                    Randuin.Cast();
                }

                if (Target.IsValidTarget(700) && Hextech.IsReady())
                {
                    Hextech.Cast(Target);
                }

                return;
            }