コード例 #1
0
ファイル: Interrupt.cs プロジェクト: ShadyBS/Hesaengine
        public static void DoInterrupt(AIHeroClient Source, Interrupter.InterruptableTargetEventArgs args)
        {
            if (Source.IsMe || Source.IsAlly || args.DangerLevel < Interrupter.DangerLevel.Medium)
            {
                return;
            }

            var q = MiscMenu.GetCheckbox("inQ") && Q.IsReady() && Source.IsValidTarget(Q.Range) && args.MovementInterrupts;
            var e = MiscMenu.GetCheckbox("inE") && E.IsReady() && Orbwalker.InAutoAttackRange(Source) && args.MovementInterrupts;
            var r = MiscMenu.GetCheckbox("inR") && R.IsReady() && Source.IsValidTarget(R.Range);

            if (e)
            {
                E.Cast(Source);
            }

            if (q)
            {
                Q.PredictionCast(Source);
            }

            if (r)
            {
                R.Cast();
            }
        }
コード例 #2
0
ファイル: Interrupt.cs プロジェクト: ShadyBS/Hesaengine
        public static void DoInterrupt(AIHeroClient Source, Interrupter.InterruptableTargetEventArgs args)
        {
            if (Source.IsMe || Source.IsAlly || args.DangerLevel < Interrupter.DangerLevel.Medium)
            {
                return;
            }
            var e  = MiscMenu.GetCheckbox("inE") && E.IsReady() && Source.IsValidTarget(E.Range);
            var eq = MiscMenu.GetCheckbox("inEQ") && Q.IsReady() && E.IsReady() && Source.IsValidTarget(EQ.Range);


            if (eq)
            {
                var     pred = EQ.GetPrediction(Source);
                Vector3 Qpos = pred.CastPosition;
                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 (e)
            {
                E.Cast(Source);
            }
        }
コード例 #3
0
ファイル: Combo.cs プロジェクト: ShadyBS/Hesaengine
        public static void DoCombo()
        {
            var          q  = ComboMenu.GetCheckbox("useQ") && Q.IsReady();
            var          e  = ComboMenu.GetCheckbox("useE") && E.IsReady();
            var          r  = ComboMenu.GetCheckbox("useR") && R.IsReady();
            var          rc = MiscMenu.GetCheckbox("useRafterQ") && R.IsReady();
            AIHeroClient target;

            if (q)
            {
                target = TargetSelector.GetTarget(QMenu.GetSlider("rangeQ"), TargetSelector.DamageType.Magical);
                if (MiscMenu.GetCheckbox("useDP"))
                {
                    var location = LinearPrediction(ObjectManager.Player.Position, Q, (AIHeroClient)target);
                    if (target != null && (target.Distance(ObjectManager.Me) > QMenu.GetSlider("minQ")) && !QMenu.GetCheckbox("blq" + target.ChampionName) && !Functions.HasSpellShield(target) && location != DarkPrediction.empt && !DarkPrediction.CollisionChecker(location, ObjectManager.Me.Position, Q))
                    {
                        Q.Cast(location);
                    }
                }
                else
                {
                    if (target != null && (target.Distance(ObjectManager.Me) > QMenu.GetSlider("minQ")) && !QMenu.GetCheckbox("blq" + target.ChampionName) && !Functions.HasSpellShield(target))
                    {
                        Q.CastIfHitchanceEquals(target, HitChance.VeryHigh);
                    }
                }
            }
            if (r)
            {
                target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                if (target != null && !Functions.HasSpellShield(target))
                {
                    if (ObjectManager.Player.CountEnemiesInRange(550f) > ComboMenu.GetSlider("minR"))
                    {
                        R.Cast();
                    }
                }
            }
            if (rc)
            {
                target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                if (target != null && !Functions.HasSpellShield(target) && target.HasBuff("rocketgrab2"))
                {
                    R.Cast();
                }
            }
            if (e)
            {
                target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
                if (target != null && !Functions.HasSpellShield(target))
                {
                    E.Cast();
                    Orbwalker.ResetAutoAttackTimer();
                }
            }
        }
コード例 #4
0
ファイル: SpellManager.cs プロジェクト: ShadyBS/Hesaengine
        public static void Leveler()
        {
            if (!MiscMenu.GetCheckbox("level"))
            {
                return;
            }
            var delay = MiscMenu.GetSlider("levelDelay");

            Core.DelayAction(AutoLeveler, delay);
        }
コード例 #5
0
ファイル: SpellManager.cs プロジェクト: ShadyBS/Hesaengine
        private static void AIHeroClient_OnLevelUp(AIHeroClient sender, int level)
        {
            if (!MiscMenu.GetCheckbox("level") || !sender.IsMe)
            {
                return;
            }
            var delay = MiscMenu.GetSlider("levelDelay");

            Core.DelayAction(AutoLeveler, delay);
        }
コード例 #6
0
        public static void DoAntigapclose(ActiveGapcloser gapcloser)
        {
            if (gapcloser.Sender.IsAlly || gapcloser.Sender.IsDead || gapcloser.Sender.IsMe)
            {
                return;
            }

            var q = MiscMenu.GetCheckbox("agQ") && Q.IsReady();
            var w = MiscMenu.GetCheckbox("agW") && W.IsReady();
            var e = MiscMenu.GetCheckbox("agE") && E.IsReady();
            var r = MiscMenu.GetCheckbox("agR") && R.IsReady();

            if (w)
            {
                W.CastIfHitchanceEquals(gapcloser.Sender, HitChance.Medium);
            }
        }
コード例 #7
0
        public static void DoAntigapclose(ActiveGapcloser gapcloser)
        {
            if (gapcloser.Sender.IsAlly || gapcloser.Sender.IsDead || gapcloser.Sender.IsMe)
            {
                return;
            }

            var q = MiscMenu.GetCheckbox("agQ") && Q.IsReady();
            var w = MiscMenu.GetCheckbox("agW") && W.IsReady();
            var e = MiscMenu.GetCheckbox("agE") && E.IsReady();
            var r = MiscMenu.GetCheckbox("agR") && R.IsReady();

            if (q)
            {
                Q.PredictionCast(gapcloser.Sender);
            }
        }
コード例 #8
0
        public static void DoInterrupt(AIHeroClient Source, Interrupter.InterruptableTargetEventArgs args)
        {
            if (Source.IsMe || Source.IsAlly || args.DangerLevel < Interrupter.DangerLevel.Medium)
            {
                return;
            }

            var q = MiscMenu.GetCheckbox("inQ") && Q.IsReady() && Source.IsValidTarget(Q.Range);
            var r = MiscMenu.GetCheckbox("inR") && R.IsReady() && Source.IsValidTarget(R.Range);


            if (q)
            {
                Q.Cast(Source);
            }

            if (r)
            {
                R.Cast(Source);
            }
        }
コード例 #9
0
ファイル: Main.cs プロジェクト: ShadyBS/Hesaengine
        public static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            var savemeR = MiscMenu.GetCheckbox("saveMe");
            var myhpR   = MiscMenu.GetSlider("hpR");

            if (!sender.IsEnemy && (!(sender is AIHeroClient) || !(sender is Obj_AI_Turret)))
            {
                return;
            }

            if (savemeR && R.IsReady())
            {
                if (Player.HealthPercent <= myhpR && ObjectManager.Player.CountEnemiesInRange(800f) >= 0)
                {
                    R.Cast();
                }

                if (ObjectManager.Player.CountEnemiesInRange(800f) > 1 && sender.BaseAttackDamage >= Player.TotalShieldHealth || sender.BaseAbilityDamage >= Player.TotalShieldHealth)
                {
                    R.Cast();
                }

                if (ObjectManager.Player.CountEnemiesInRange(800f) > 1 && sender.GetAutoAttackDamage(Player) >= Player.TotalShieldHealth)
                {
                    R.Cast();
                }
            }

            if (args.SData.Name == "ZedR")
            {
                if (R.IsReady())
                {
                    Core.DelayAction(() => R.Cast(), 2000 - Game.Ping - 200);
                }
            }
        }
コード例 #10
0
        private static void Game_OnTick()
        {
            var mana = Me.ManaPercent;

            if (MiscMenu.GetKeybind("manualQ"))
            {
                if (Q.IsReady())
                {
                    AIHeroClient target;
                    target = TargetSelector.GetTarget(QMenu.GetSlider("rangeQ"), TargetSelector.DamageType.Magical);
                    if (MiscMenu.GetCheckbox("useDP"))
                    {
                        var location = LinearPrediction(ObjectManager.Player.Position, Q, (AIHeroClient)target);
                        if (target != null && (target.Distance(ObjectManager.Me) > QMenu.GetSlider("minQ")) && !Functions.HasSpellShield(target) && location != DarkPrediction.empt && !DarkPrediction.CollisionChecker(location, ObjectManager.Me.Position, Q))
                        {
                            Q.Cast(location);
                        }
                    }
                    else
                    {
                        if (target != null && (target.Distance(ObjectManager.Me) > QMenu.GetSlider("minQ")) && !Functions.HasSpellShield(target))
                        {
                            Q.CastIfHitchanceEquals(target, HitChance.VeryHigh);
                        }
                    }
                }
            }
            if (KillstealMenu.GetCheckbox("enable"))
            {
                Killsteal.DoKs();
            }

            if (Orb.ActiveMode == Orbwalker.OrbwalkingMode.Combo && mana >= ComboMenu.GetSlider("mana"))
            {
                Combo.DoCombo();
            }

            if (Orb.ActiveMode == Orbwalker.OrbwalkingMode.Harass && mana >= HarassMenu.GetSlider("mana"))
            {
                Harass.DoHarass();
            }

            if (Orb.ActiveMode == Orbwalker.OrbwalkingMode.LaneClear && mana >= LaneclearMenu.GetSlider("mana"))
            {
                LaneClear.DoLaneClear();
            }

            if (Orb.ActiveMode == Orbwalker.OrbwalkingMode.LastHit && mana >= LasthitMenu.GetSlider("mana"))
            {
                LaneClear.DoLaneClear();
            }

            if (Orb.ActiveMode == Orbwalker.OrbwalkingMode.Flee && mana >= FleeMenu.GetSlider("mana"))
            {
                Flee.DoFlee();
            }

            //This is a basic fix, due to OnLevelUp being disabled
            if (_currentLevel == Player.Level)
            {
                return;
            }
            Leveler();
            _currentLevel = Player.Level;
        }