Ejemplo n.º 1
0
        public static void DoCombo()
        {
            var          q      = ComboMenu.GetCheckbox("useQ") && Q.IsReady();
            var          w      = ComboMenu.GetCheckbox("useW") && W.IsReady();
            var          eq     = ComboMenu.GetCheckbox("useEQ") && E.IsReady() && Q.IsReady();
            var          e      = ComboMenu.GetCheckbox("useE") && E.IsReady();
            AIHeroClient target = null;


            if (q)
            {
                target = TargetSelector.GetTarget(Q.Range);
                var qpos = DarkPrediction.CirclerPrediction(Q, (AIHeroClient)target, 1);
                if (qpos != DarkPrediction.empt && qpos.Distance(ObjectManager.Player) <= Q.Range)
                {
                    Q.Cast(qpos);
                }
            }

            if (eq)
            {
                target = TargetSelector.GetTarget(EQ.Range);
                if (!Functions.HasSpellShield(target))
                {
                    Vector3 Qpos = DarkPrediction.LinearPrediction(ObjectManager.Player.Position, EQ, (AIHeroClient)target);
                    if (Qpos != DarkPrediction.empt && Qpos.Distance(ObjectManager.Player) <= EQ.Range)
                    {
                        if (ObjectManager.Player.Distance(Qpos) <= Q.Range)
                        {
                            Q.Cast(Qpos);
                            Main.DoEQ = true;
                        }
                        else
                        {
                            Qpos = ObjectManager.Player.Position.Extend(Qpos, Q.Range);
                            Q.Cast(Qpos);
                            Main.DoEQ = true;
                        }
                    }
                }
            }

            if (w && !Main.waitW)
            {
                target = TargetSelector.GetTarget(W.Range);
                if (target.IsValidTarget(W.Range))
                {
                    var wpos = DarkPrediction.LinearPrediction(ObjectManager.Player.ServerPosition, W, (AIHeroClient)target);
                    if (wpos != DarkPrediction.empt && wpos.Distance(ObjectManager.Player) <= W.Range)
                    {
                        if (W.Instance.ToggleState == 1)                                                                                                                                                 // Not holding
                        {
                            var wball   = Main.MyBalls.Find(ball => ball.Distance(ObjectManager.Player) < W.Range - 25);                                                                                 // Look for ball
                            var wminion = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range - 25, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth).FirstOrDefault(); //Look for minion
                            if (wball != null && !wball.IsMoving)
                            {
                                W.Cast(wball);
                            }
                            else if (wminion != null)
                            {
                                W.Cast(wminion);
                                //W.CastIfHitchanceEquals(target, HitChance.VeryHigh);
                            }
                        }
                        else                         //holding
                        {
                            W.Cast(DarkPrediction.LinearPrediction(ObjectManager.Player.ServerPosition, W, (AIHeroClient)target));
                        }
                    }
                }
            }

            if (e && !Main.DoEQ)
            {
                target = TargetSelector.GetTarget(Eex.Range);
                if (Functions.HasSpellShield(target) != true)
                {
                    var ePred   = Eex.GetPrediction(target);
                    var DPePred = DarkPrediction.LinearPrediction(ObjectManager.Player.Position, Eex, (AIHeroClient)target);
                    if (DPePred != DarkPrediction.empt && DPePred.Distance(ObjectManager.Player) <= Eex.Range)
                    {
                        var playerToCP = ObjectManager.Player.Distance(DPePred);
                        foreach (var eball in Main.MyBalls.Where(ball => ball.Position.Distance(ObjectManager.Player) < E.Range))
                        {
                            var ballFinalPos = ObjectManager.Player.ServerPosition.Extend(eball.Position, playerToCP);
                            if (ballFinalPos.Distance(DPePred) < 50)
                            {
                                E.Cast(eball.Position);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public static void DoKs()
        {
            var q      = Q.IsReady() && KillstealMenu.GetCheckbox("useQ");
            var w      = Q.IsReady() && KillstealMenu.GetCheckbox("useW");
            var r      = R.IsReady() && KillstealMenu.GetCheckbox("useR");
            var ignite = KillstealMenu.GetCheckbox("useIgnite");

            if (ignite)
            {
                Functions.UseIgnite();
            }

            foreach (var enemy in ObjectManager.Heroes.Enemies.Where(x => x.IsValidTarget(Q.Range) && !x.IsDead && !x.IsZombie && !Functions.IsNotKillable(x)))
            {
                if (q && Q.GetDamage(enemy) >= enemy.Health)
                {
                    var qpos = DarkPrediction.CirclerPrediction(Q, (AIHeroClient)enemy, 1);
                    if (qpos != DarkPrediction.empt && qpos.Distance(ObjectManager.Player) <= Q.Range)
                    {
                        Q.Cast(qpos);
                    }
                }
            }

            foreach (var enemy in ObjectManager.Heroes.Enemies.Where(x => x.IsValidTarget(W.Range) && !x.IsDead && !x.IsZombie && !Functions.IsNotKillable(x)))
            {
                if (w && !Main.waitW && W.GetDamage(enemy) >= enemy.Health)
                {
                    if (enemy.IsValidTarget(W.Range))
                    {
                        var wpos = DarkPrediction.LinearPrediction(ObjectManager.Player.ServerPosition, W, (AIHeroClient)enemy);
                        if (wpos != DarkPrediction.empt && wpos.Distance(ObjectManager.Player) <= W.Range)
                        {
                            if (W.Instance.ToggleState == 1)                                                                                                                                                 // Not holding
                            {
                                var wball   = Main.MyBalls.Find(ball => ball.Distance(ObjectManager.Player) < W.Range - 25);                                                                                 // Look for ball
                                var wminion = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range - 25, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth).FirstOrDefault(); //Look for minion
                                if (wball != null && !wball.IsMoving)
                                {
                                    W.Cast(wball);

                                    W.Cast(wminion);
                                }
                                else if (wminion != null)
                                {
                                    //W.CastIfHitchanceEquals(target, HitChance.VeryHigh);
                                }
                            }
                            else                             //holding
                            {
                                //W.CastIfHitchanceEquals(target, HitChance.VeryHigh);
                                W.Cast(DarkPrediction.LinearPrediction(ObjectManager.Player.ServerPosition, W, (AIHeroClient)enemy));
                            }
                        }
                    }
                }
            }

            foreach (var enemy in ObjectManager.Heroes.Enemies.Where(x => KillstealMenu.GetCheckbox("rlist" + x.ChampionName) && x.IsValidTarget(R.Range) && !x.IsDead && !x.IsZombie && !Functions.IsNotKillable(x)))
            {
                if (r && (Main.MyBalls.Count() + 3) * R.GetDamage(enemy) / 3 >= enemy.Health)
                {
                    R.Cast(enemy);
                }
            }
        }