Inheritance: BaseAction
コード例 #1
0
ファイル: Timer.cs プロジェクト: kofight/CapsUnity
 public static void AddDelayFunc(float time, System.Action action)
 {
     DelayAction act = new DelayAction();
     act.startTime = s_currentTime + time;
     act.action = action;
     m_delayActoinList.AddLast(act);
 }
コード例 #2
0
	public void ToMenuScreen(){

		DelayAction delay1 = new DelayAction (GameController.GetInstance ().GetGameOverPanel().DisplayTime,()=>{
			GameController.GetInstance ().GetPlayPanel().ShowOut ();
			GameController.GetInstance ().GetGameOverPanel().ShowOut ();
		},()=>{
			GameController.GetInstance ().GetMainPanel().ShowIn ();
		});
		delay1.Play ();
	}
コード例 #3
0
	public void OnRestart(){

		DelayAction delay1 = new DelayAction (GameController.GetInstance ().GetGameOverPanel().DisplayTime,()=>{
			GameController.GetInstance ().GetGameOverPanel().ShowOut ();
		},()=>{
			GameController.GetInstance ().GetPlayGameInstance().OnResume ();
			GameController.GetInstance ().GetPlayGameInstance().OnReStart ();
			GameController.GetInstance ().GetPlayPanel ().Start ();
		});
		delay1.Play ();
	}
コード例 #4
0
ファイル: JungleClear.cs プロジェクト: yegithub/Aimtec-2
        public void OnPostAttack(AttackableUnit mobPre)
        {
            var mob = mobPre as Obj_AI_Minion;

            if (mob == null)
            {
                return;
            }

            var count = GameObjects.Jungle.Count(x => x.Distance(Global.Player) <= _spellConfig.Q.Range / 2f);

            if (count <= 1 && mob.Health < Global.Player.GetAutoAttackDamage(mob))
            {
                return;
            }

            if (Global.Player.Level <= 4)
            {
                if (_spellConfig.PassiveStack() >= 1)
                {
                    return;
                }

                if (_spellConfig.Q.Ready)
                {
                    _spellConfig.Q.Cast(mob);
                }

                if (_spellConfig.W.Ready && this.WEnabled && !_spellConfig.IsQ2())
                {
                    _spellConfig.W.CastOnUnit(Global.Player);
                }
                else if (_spellConfig.E.Ready && this.EEnabled && !_spellConfig.IsQ2())
                {
                    if (_spellConfig.IsFirst(_spellConfig.E))
                    {
                        if (Items.CanUseTiamat())
                        {
                            Items.CastTiamat(false);
                            DelayAction.Queue(50, () => _spellConfig.E.Cast(mob));
                        }
                        else
                        {
                            _spellConfig.E.Cast(mob);
                        }
                    }
                    else
                    {
                        _spellConfig.E.Cast();
                    }
                }
            }
            else if (Global.Player.Level <= 8)
            {
                if (_spellConfig.PassiveStack() >= 1)
                {
                    return;
                }

                if (_spellConfig.Q.Ready)
                {
                    _spellConfig.Q.Cast(mob);
                }

                if (_spellConfig.W.Ready && this.WEnabled)
                {
                    _spellConfig.W.CastOnUnit(Global.Player);
                }
                else if (_spellConfig.E.Ready && this.EEnabled)
                {
                    if (_spellConfig.IsFirst(_spellConfig.E))
                    {
                        if (Items.CanUseTiamat())
                        {
                            Items.CastTiamat(false);
                            DelayAction.Queue(50, () => _spellConfig.E.Cast(mob));
                        }
                        else
                        {
                            _spellConfig.E.Cast(mob);
                        }
                    }
                    else
                    {
                        _spellConfig.E.Cast();
                    }
                }
            }
            else
            {
                if (_spellConfig.Q.Ready)
                {
                    _spellConfig.Q.Cast(mob);
                }
                else
                {
                    if (_spellConfig.E.Ready && this.EEnabled)
                    {
                        if (Items.CanUseTiamat())
                        {
                            Items.CastTiamat(false);
                            DelayAction.Queue(50, () => _spellConfig.E.Cast(mob));
                        }
                        else
                        {
                            _spellConfig.E.Cast(mob);
                        }
                    }

                    if (_spellConfig.W.Ready && this.WEnabled)
                    {
                        if (_spellConfig.E.Ready && this.EEnabled && !_spellConfig.IsFirst(_spellConfig.E))
                        {
                            return;
                        }
                        _spellConfig.W.CastOnUnit(Global.Player);
                    }
                }
            }
        }
コード例 #5
0
        private static void KillStealEvent()
        {
            try
            {
                if (isCastingUlt && !KillStealMenu["FlowersKatarina.KillStealMenu.CancelR"].GetValue <MenuBool>().Enabled)
                {
                    return;
                }

                if (Me.CountEnemyHeroesInRange(E.Range) == 0)
                {
                    return;
                }

                foreach (
                    var target in
                    GameObjects.EnemyHeroes.Where(x => !x.IsDead && x.IsValidTarget(E.Range + 300))
                    .OrderBy(x => x.Health))
                {
                    if (target.IsValidTarget(E.Range + 300))
                    {
                        if (KillStealMenu["FlowersKatarina.KillStealMenu.Q"].GetValue <MenuBool>().Enabled&& target.Health < Q.GetDamage(target) && Q.IsReady() &&
                            target.IsValidTarget(Q.Range))
                        {
                            if (isCastingUlt)
                            {
                                MyExtraManager.CancelUlt(true);
                                Q.CastOnUnit(target);
                                return;
                            }
                            Q.CastOnUnit(target);
                            return;
                        }

                        if (KillStealMenu["FlowersKatarina.KillStealMenu.E"].GetValue <MenuBool>().Enabled&& target.Health < E.GetDamage(target) && E.IsReady())
                        {
                            if (target.DistanceToPlayer() <= E.Range + 130)
                            {
                                var pos = Me.Position.Extend(target.Position, target.DistanceToPlayer() + 130);
                                if (isCastingUlt)
                                {
                                    MyExtraManager.CancelUlt(true);
                                    E.Cast(pos);
                                    return;
                                }
                                E.Cast(pos);
                                return;
                            }

                            if (target.IsValidTarget(E.Range))
                            {
                                if (isCastingUlt)
                                {
                                    MyExtraManager.CancelUlt(true);
                                    E.Cast(target);
                                    return;
                                }
                                E.Cast(target);
                                return;
                            }
                        }

                        if (KillStealMenu["FlowersKatarina.KillStealMenu.Q"].GetValue <MenuBool>().Enabled&& target.Health < Q.GetDamage(target) + E.GetDamage(target) &&
                            KillStealMenu["FlowersKatarina.KillStealMenu.E"].GetValue <MenuBool>().Enabled&& Q.IsReady() && E.IsReady() &&
                            target.IsValidTarget(E.Range))
                        {
                            if (isCastingUlt)
                            {
                                MyExtraManager.CancelUlt(true);
                                Q.CastOnUnit(target);
                                E.Cast(target);
                                return;
                            }
                            Q.CastOnUnit(target);
                            E.Cast(target);
                            return;
                        }

                        if (target.Health < MyExtraManager.GetKataPassiveDamage(target) + E.GetDamage(target) &&
                            KillStealMenu["FlowersKatarina.KillStealMenu.E"].GetValue <MenuBool>().Enabled&& E.IsReady() &&
                            Daggers.Any(
                                x =>
                                x.Dagger.IsValid &&
                                x.Position.Distance(target.Position) <= PassiveRange &&
                                x.Position.DistanceToPlayer() <= E.Range))
                        {
                            foreach (
                                var obj in
                                Daggers.Where(x => x.Position.Distance(target.Position) <= PassiveRange)
                                .OrderBy(x => x.Position.Distance(target.Position)))
                            {
                                if (obj.Dagger != null && obj.Dagger.IsValid && obj.Position.DistanceToPlayer() <= E.Range)
                                {
                                    if (isCastingUlt)
                                    {
                                        MyExtraManager.CancelUlt(true);
                                        E.Cast(obj.Position);
                                        DelayAction.Add(100 + Game.Ping, () => E.Cast(target));
                                        return;
                                    }
                                    E.Cast(obj.Position);
                                    DelayAction.Add(100 + Game.Ping, () => E.Cast(target));
                                    return;
                                }
                            }
                        }

                        if (target.Health < R.GetDamage(target) * 0.6 && KillStealMenu["FlowersKatarina.KillStealMenu.R"].GetValue <MenuBool>().Enabled &&
                            R.IsReady() && target.IsValidTarget(R.Range) && target.Health > 50 * target.Level)
                        {
                            R.Cast();
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error in MyEventManager.KillStealEvent." + ex);
            }
        }
コード例 #6
0
        private static void Combo(bool extended = false, AIHeroClient sender = null)
        {
            if (Orbwalker.ActiveMode != OrbwalkerMode.Combo)
            {
                return;
            }

            //if (Config.Item("combo.r").GetValue<bool>())
            //{
            //    AIHeroClient RTarget = GameObjects.EnemyHeroes.FirstOrDefault(t => t.CountAlliesInRange(660) > 0);
            //    if (RTarget != null)
            //    {
            //        R.CastIfWillHit(RTarget, Config.Item("combo.rmin").GetValue<Slider>().Value);
            //    }
            //}
            //Config.Menu["Combo"]["combo.qe"].GetValue<MenuBool>()
            if (Config.Menu["Combo"]["combo.aae"].GetValue <MenuBool>() && Orbwalker.CanAttack())
            {
                List <Barrel> barrelsInAutoAttackRange = AllBarrel.Where(b => b.GetBarrel().Distance(Player) <= ObjectManager.Player.GetRealAutoAttackRange() && b.CanAANow()).ToList();
                if (barrelsInAutoAttackRange.Any() && (Player.Buffs.All(buff => buff.Name != "gangplankpassiveattack")))
                {
                    BarrelAAForced = false;
                    foreach (Barrel b in barrelsInAutoAttackRange)
                    {
                        if (GameObjects.EnemyHeroes.Any(enemy => b.GetBarrel().Position.CannotEscapeFromAA(enemy) || GetBarrelsInRange(b).Any(bar => bar.GetBarrel().Position.CannotEscapeFromAA(enemy))))
                        {
                            Orbwalker.Orbwalk(b.GetBarrel(), Game.CursorPos);
                            BarrelAAForced = true;
                        }
                    }
                }
            }

            if (Config.Menu["Combo"]["combo.qe"].GetValue <MenuBool>() && Q.IsReady() && !BarrelAAForced)
            {
                AIHeroClient target = TargetSelector.GetTarget(1200, DamageType.Physical);
                if (target != null)
                {
                    EnemyPosition = target.Position;
                    Helper.GetPredPos(target);
                    if (extended && target != sender)
                    {
                        extended = false;
                    }

                    foreach (var b in AllBarrel)
                    {
                        if (b.CanQNow() && (b.GetBarrel().Position.CannotEscape(target, extended) || GetBarrelsInRange(b).Any(bb => bb.GetBarrel().Position.CannotEscape(target, extended, true))))
                        {
                            QDelay.Delay(b.GetBarrel());
                            break;
                        }
                    }
                    if (E.IsReady() && !QDelay.Active())
                    {
                        if (Config.Menu["Combo"]["combo.doublee"].GetValue <MenuBool>().Enabled)
                        {
                            foreach (var b in AllBarrel)
                            {
                                if (b.CanQNow() && b.GetBarrel().Distance(Player) > 615 &&
                                    b.GetBarrel().Distance(target) < 850)
                                {
                                    Q.Cast(b.GetBarrel());
                                    break;
                                }
                            }
                        }
                        if (Config.Menu["Combo"]["combo.ex"].GetValue <MenuBool>())
                        {
                            foreach (var b in AllBarrel)
                            {
                                var castPos = b.GetBarrel().Position.ExtendToMaxRange(Helper.PredPos.ToVector3(), 685);

                                if (b.CanQNow() && castPos.Distance(Player.Position) < 1000 &&
                                    castPos.CannotEscape(target, extended, true))
                                {
                                    E.Cast(castPos);
                                    QDelay.Delay(b.GetBarrel());
                                    break;
                                }
                            }
                        }
                    }
                }
            }

            //Triple - Logic
            if (Q.IsReady() && E.IsReady() && Config.Menu["Combo"]["combo.triplee"].GetValue <MenuBool>().Enabled)
            {
                IEnumerable <Barrel> validBarrels = AllBarrel.Where(b => b.CanQNow() && b.GetBarrel().Distance(Player) <= 625);
                foreach (Barrel validBarrel in validBarrels)
                {
                    IEnumerable <Barrel> inRange = GetBarrelsInRange(validBarrel);
                    if (
                        inRange.Any(
                            b =>
                            GameObjects.EnemyHeroes.Any(
                                e => b.GetBarrel().Distance(e.Position) < 1100 && e.Distance(Player.Position) < 1000)))
                    {
                        Q.Cast(validBarrel.GetBarrel());
                    }
                }
            }
            if (Q.IsReady() && E.Instance.Ammo >= 2 && Config.Menu["Combo"]["combo.triplee"].GetValue <MenuBool>().Enabled)
            {
                List <Barrel> GetValidBarrels = AllBarrel.Where(b => b.CanQNow(400) && b.GetBarrel().Distance(Player) <= 625).ToList();
                AIHeroClient  target          = TargetSelector.GetTarget(1200, DamageType.Physical);
                if (target != null && GetValidBarrels.Any(b => b.GetBarrel().Distance(target) <= 1200))
                {
                    E.Cast(GetValidBarrels.First(b => b.GetBarrel().Distance(target) <= 1200).GetBarrel().Position.ExtendToMaxRange(Player.Position.ExtendToMaxRange(target.Position, 980), 685));
                    DelayAction.Add(600, () => QDelay.Delay(GetValidBarrels.First().GetBarrel()));
                }
            }
            //Config.Menu["Key"]["key.q"].GetValue<MenuKeyBind>().Active

            if (Config.Menu["Combo"]["combo.q"].GetValue <MenuBool>() && Q.IsReady())
            {
                AIHeroClient target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
                if (target != null && (Config.Menu["Key"]["key.q"].GetValue <MenuKeyBind>().Active || (!E.IsReady() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(target.Position) < 600))))
                {
                    Q.Cast(target);
                }
            }
            if (E.IsReady() && E.Instance.Ammo > 1 && Config.Menu["Combo"]["combo.e"].GetValue <MenuBool>() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(Player.Position) <= 1200))
            {
                AIHeroClient target = TargetSelector.GetTarget(1000, DamageType.Physical);
                if (target == null)
                {
                    return;
                }
                Helper.GetPredPos(target);
                Vector2 castPos = target.Position.Extend(Helper.PredPos.ToVector3(), 200).ToVector2();
                if (Player.Distance(castPos) <= E.Range)
                {
                    E.Cast(castPos);
                }
                else
                {
                    E.Cast(Player.Position.Extend(castPos.ToVector3(), 1000));
                }
            }
        }
コード例 #7
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(2500);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            var targetDist = target.Distance(Global.Player);
            var minion     = MinionHelper.GetDashableMinion(target);

            var m2 = MinionHelper.GetClosest(target);
            var positionBehindMinion = MinionHelper.WalkBehindMinion(target);

            if (!positionBehindMinion.IsZero && positionBehindMinion.Distance(Global.Player) <= MenuConfig.Combo["MRange"].Value)
            {
                MinionHelper.ExtendedMinion = positionBehindMinion;
                MinionHelper.ExtendedTarget = target.ServerPosition;
            }

            var dashDistance = MinionHelper.DashDistance(minion, target);

            if (SpellConfig.E.Ready)
            {
                if (targetDist <= Global.Player.AttackRange && !SpellConfig.Q.Ready)
                {
                    return;
                }

                if (!target.HasBuff("YasuoDashWrapper") && targetDist <= SpellConfig.E.Range && (targetDist > SpellConfig.E.Range - 50 && minion == null || Extension.CurrentMode == Mode.Tornado))
                {
                    SpellConfig.E.CastOnUnit(target);
                }

                if (positionBehindMinion.Distance(Global.Player) <= MenuConfig.Combo["MRange"].Value &&
                    MenuConfig.Combo["Walk"].Enabled &&
                    Global.Orbwalker.CanMove() &&
                    !(MenuConfig.Combo["Turret"].Enabled && target.IsUnderEnemyTurret()))
                {
                    Global.Orbwalker.Move(positionBehindMinion);

                    if (positionBehindMinion.Distance(Global.Player) <= 65)
                    {
                        SpellConfig.E.CastOnUnit(m2);
                    }
                }
                else if (minion != null)
                {
                    if (MenuConfig.Combo["Turret"].Enabled && minion.ServerPosition.PointUnderEnemyTurret() ||
                        MenuConfig.Combo["Dash"].Value == 0 &&
                        minion.Distance(Game.CursorPos) > MenuConfig.Combo["Range"].Value)
                    {
                        return;
                    }

                    SpellConfig.E.CastOnUnit(minion);
                }
            }

            if (SpellConfig.Q.Ready)
            {
                switch (Extension.CurrentMode)
                {
                case Mode.Dashing:
                case Mode.DashingTornado:
                    if (MenuConfig.Combo["Flash"].Enabled && dashDistance < 470 && dashDistance > 220 && (Dmg.Damage(target) * 1.25 > target.Health || target.ServerPosition.CountEnemyHeroesInRange(220) >= 2))
                    {
                        SpellConfig.Q.Cast();
                        DelayAction.Queue(Game.Ping / 2 + 30, () => SummonerSpells.Flash.Cast(target.Position), new CancellationToken(false));
                    }
                    else
                    {
                        var circle = new Geometry.Circle(Global.Player.GetDashInfo().EndPos, 220);
                        var count  = GameObjects.EnemyHeroes.Count(x => x.IsValidTarget() && x.Distance(circle.Center.To3D()) <= circle.Radius);

                        if (count != 0)
                        {
                            SpellConfig.Q.Cast(target);
                        }
                    }
                    break;

                default:
                    if (!Global.Player.IsDashing() && target.IsValidSpellTarget(SpellConfig.Q.Range) && !(SpellConfig.E.Ready && !target.HasBuff("YasuoDashWrapper") && Extension.CurrentMode == Mode.Tornado))
                    {
                        var enemyHero = GameObjects.EnemyHeroes.OrderBy(x => x.Health).FirstOrDefault(x => x.IsValidTarget(SpellConfig.Q.Range));
                        if (enemyHero != null)
                        {
                            SpellConfig.Q.Cast(enemyHero);
                        }
                    }
                    break;
                }
            }

            if (SpellConfig.R.Ready && KnockUpHelper.KnockedUp(target) && KnockUpHelper.IsItTimeToUlt(target))
            {
                var airbourneTargets = GameObjects.EnemyHeroes.Where(x => KnockUpHelper.KnockedUp(x) && x.Distance(Global.Player) <= SpellConfig.R.Range);
                var targetCount      = (airbourneTargets as Obj_AI_Hero[] ?? airbourneTargets.ToArray()).Length;

                if (targetCount >= MenuConfig.Combo["Count"].Value || targetDist > 350)
                {
                    SpellConfig.R.Cast();
                }
            }
        }
コード例 #8
0
        public Yasuo()
        {
            Q                 = new LeagueSharp.SDK.Spell(SpellSlot.Q, 505).SetSkillshot(0.4f, 20, float.MaxValue, false, SkillshotType.SkillshotLine);
            Q2                = new LeagueSharp.SDK.Spell(Q.Slot, 1100).SetSkillshot(Q.Delay, 90, 1250, true, Q.Type);
            Q3                = new LeagueSharp.SDK.Spell(Q.Slot, 250).SetTargetted(0.01f, float.MaxValue);
            W                 = new LeagueSharp.SDK.Spell(SpellSlot.W, 400);
            E                 = new LeagueSharp.SDK.Spell(SpellSlot.E, 475).SetTargetted(0.01f, 1250);
            E2                = new LeagueSharp.SDK.Spell(Q.Slot).SetTargetted(E.Delay + Q3.Delay, E.Speed);
            R                 = new LeagueSharp.SDK.Spell(SpellSlot.R, 1200);
            Q.DamageType      = Q2.DamageType = R.DamageType = DamageType.Physical;
            E.DamageType      = DamageType.Magical;
            Q.MinHitChance    = Q2.MinHitChance = HitChance.VeryHigh;
            Q.CastCondition  += () => !isBlockQ;
            Q2.CastCondition += () => !isBlockQ;
            Q3.CastCondition += () => !isBlockQ && IsDashing;

            if (YasuoPro.YasuoMenu.ComboM != null)
            {
                if (EntityManager.Heroes.Enemies.Any())
                {
                    Evade.Init();
                }
                Evade.Evading    += Evading;
                Evade.TryEvading += TryEvading;
                return;
            }

            comboMenu = config.AddSubMenu("Combo", "Combo");
            comboMenu.AddGroupLabel("Q: Always On");
            comboMenu.AddGroupLabel("E Gap Settings");
            comboMenu.Add("EGap", new CheckBox("Use E"));
            comboMenu.Add("EMode", new ComboBox("Follow Mode", 0, "Enemy", "Mouse"));
            comboMenu.Add("ETower", new CheckBox("Under Tower", false));
            comboMenu.Add("EStackQ", new CheckBox("Stack Q While Gap", false));
            comboMenu.AddGroupLabel("R Settings");
            comboMenu.Add("R", new KeyBind("Use R", false, KeyBind.BindTypes.PressToggle, 'X'));
            comboMenu.Add("RDelay", new CheckBox("Delay Cast"));
            comboMenu.Add("RHpU", new Slider("If Enemies Hp < (%)", 60));
            comboMenu.Add("RCountA", new Slider("Or Count >=", 2, 1, 5));

            hybridMenu = config.AddSubMenu("Hybrid", "Hybrid");
            hybridMenu.AddGroupLabel("Q: Always On");
            hybridMenu.Add("Q3", new CheckBox("Also Q3"));
            hybridMenu.Add("QLastHit", new CheckBox("Last Hit (Q1/2)"));
            hybridMenu.AddGroupLabel("Auto Q Settings");
            hybridMenu.Add("AutoQ", new KeyBind("KeyBind", false, KeyBind.BindTypes.PressToggle, 'T'));
            hybridMenu.Add("AutoQ3", new CheckBox("Also Q3", false));

            lcMenu = config.AddSubMenu("LaneClear", "Lane Clear");
            lcMenu.AddGroupLabel("Q Settings");
            lcMenu.Add("Q", new CheckBox("Use Q"));
            lcMenu.Add("Q3", new CheckBox("Also Q3", false));
            lcMenu.AddGroupLabel("E Settings");
            lcMenu.Add("E", new CheckBox("Use E"));
            lcMenu.Add("ELastHit", new CheckBox("Last Hit Only", false));
            lcMenu.Add("ETower", new CheckBox("Under Tower", false));

            lhMenu = config.AddSubMenu("LastHit", "Last Hit");
            lhMenu.AddGroupLabel("Q Settings");
            lhMenu.Add("Q", new CheckBox("Use Q"));
            lhMenu.Add("Q3", new CheckBox("Also Q3", false));
            lhMenu.AddGroupLabel("E Settings");
            lhMenu.Add("E", new CheckBox("Use E"));
            lhMenu.Add("ETower", new CheckBox("Under Tower", false));

            ksMenu = config.AddSubMenu("KillSteal", "Kill Steal");
            ksMenu.Add("Q", new CheckBox("Use Q"));
            ksMenu.Add("E", new CheckBox("Use E"));
            ksMenu.Add("R", new CheckBox("Use R"));
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(o => o.IsEnemy))
            {
                ksMenu.Add("RCast" + enemy.NetworkId, new CheckBox("Cast On " + enemy.ChampionName, false));
            }

            fleeMenu = config.AddSubMenu("Flee", "Flee");
            fleeMenu.Add("E", new KeyBind("Use E", false, KeyBind.BindTypes.HoldActive, 'C'));
            fleeMenu.Add("Q", new CheckBox("Stack Q While Dash"));

            if (EntityManager.Heroes.Enemies.Any())
            {
                Evade.Init();
            }

            drawMenu = config.AddSubMenu("Draw", "Draw");
            drawMenu.Add("Q", new CheckBox("Q Range", false));
            drawMenu.Add("E", new CheckBox("E Range", false));
            drawMenu.Add("R", new CheckBox("R Range", false));
            drawMenu.Add("UseR", new CheckBox("R In Combo Status"));
            drawMenu.Add("StackQ", new CheckBox("Auto Stack Q Status"));

            miscMenu = config.AddSubMenu("Misc", "Misc");
            miscMenu.Add("StackQ", new KeyBind("Auto Stack Q", false, KeyBind.BindTypes.PressToggle, 'Z'));

            Evade.Evading    += Evading;
            Evade.TryEvading += TryEvading;
            Game.OnUpdate    += OnUpdate;
            Drawing.OnDraw   += OnDraw;
            Game.OnUpdate    += args =>
            {
                if (Player.IsDead)
                {
                    if (endDashT > 0)
                    {
                        endDashT = 0;
                        posDash  = new Vector3();
                    }
                    return;
                }
                if (endDashT > 0 && !Player.IsDashing())
                {
                    endDashT = 0;
                    DelayAction.Add(70, () => posDash = new Vector3());
                }
                if (!haveQ3 && Q.Delay > 0.18f)
                {
                    var qDelay = Math.Max(0.4f * (1 - Math.Min((Player.AttackSpeedMod - 1) * 0.5f, 0.55f)), 0.18f);
                    if (!Q.Delay.Equals(qDelay))
                    {
                        Q.Delay = qDelay;
                    }
                }
                if (haveQ3 && Q2.Delay > 0.27f)
                {
                    var qDelay = Math.Max(
                        0.4f * (1 - Math.Min((Player.AttackSpeedMod - 1) * 0.296f, 0.325f)),
                        0.27f);
                    if (!Q2.Delay.Equals(qDelay))
                    {
                        Q2.Delay = qDelay;
                    }
                }
                var eSpeed = 1250 + (Player.MoveSpeed - 345);
                if (!E.Speed.Equals(eSpeed))
                {
                    E.Speed = E2.Speed = eSpeed;
                }
            };
            Orbwalker.OnPostAttack += (sender, args) =>
            {
                if (!Q.IsReady() || haveQ3 || (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) || Orbwalker.LastTarget is AIHeroClient || Orbwalker.LastTarget is Obj_AI_Minion)
                {
                    return;
                }
                if (Q.GetTarget(50) != null || EntityManager.MinionsAndMonsters.EnemyMinions.Where(i => i.IsMinion() || i.IsPet(false)).Concat(EntityManager.MinionsAndMonsters.Monsters).Count(i => i.IsValidTarget(Q.Range + 50)) > 0)
                {
                    return;
                }
                if ((Items.HasItem((int)ItemId.Sheen) && Items.CanUseItem((int)ItemId.Sheen)) || (Items.HasItem((int)ItemId.Trinity_Force) && Items.CanUseItem((int)ItemId.Trinity_Force)))
                {
                    Q.Cast(Game.CursorPos);
                }
            };
            Events.OnDash += (sender, args) =>
            {
                if (!args.Unit.IsMe)
                {
                    return;
                }
                posDash  = args.EndPos.ToVector3();
                endDashT = args.EndTick;
            };
            Game.OnUpdate += args =>
            {
                if (Player.IsDead)
                {
                    return;
                }
                if (cDash == 1 && Player.GetBuffCount("YasuoDashScalar") == 2)
                {
                    cDash = 2;
                }
            };
            Obj_AI_Base.OnBuffGain += (sender, args) =>
            {
                if (!sender.IsMe || !args.Buff.Caster.IsMe)
                {
                    return;
                }
                switch (args.Buff.DisplayName)
                {
                case "YasuoQ3W":
                    haveQ3 = true;
                    break;

                case "YasuoDashScalar":
                    cDash = 1;
                    break;

                case "YasuoRArmorPen":
                    haveR = isBlockQ = true;
                    Orbwalker.DisableAttacking = true;
                    Orbwalker.DisableMovement  = true;
                    break;

                case "yasuoeqcombosoundmiss":
                case "YasuoEQComboSoundHit":
                    DelayAction.Add(
                        70,
                        () =>
                    {
                        if (Player.IsDead)
                        {
                            return;
                        }
                        Orbwalker.ResetAutoAttack();
                        EloBuddy.Player.IssueOrder(GameObjectOrder.AttackTo, Player.ServerPosition.LSExtend(Game.CursorPos, Player.BoundingRadius * 2));
                    });
                    break;
                }
            };
            Obj_AI_Base.OnBuffLose += (sender, args) =>
            {
                if (!sender.IsMe || !args.Buff.Caster.IsMe)
                {
                    return;
                }
                switch (args.Buff.DisplayName)
                {
                case "YasuoQ3W":
                    haveQ3 = false;
                    break;

                case "YasuoDashScalar":
                    cDash = 0;
                    break;
                }
            };
            Obj_AI_Base.OnBuffLose += (sender, args) =>
            {
                if (sender.IsAlly || !haveR || args.Buff.DisplayName != "yasuorknockupcombotar")
                {
                    return;
                }
                haveR = false;
                DelayAction.Add(
                    7,
                    () =>
                {
                    Orbwalker.DisableAttacking = false;
                    Orbwalker.DisableMovement  = false;
                });
                DelayAction.Add(22, () => isBlockQ = false);
            };
            Obj_AI_Base.OnProcessSpellCast += (sender, args) =>
            {
                if (!sender.IsMe || args.Slot != SpellSlot.Q)
                {
                    return;
                }
                EloBuddy.Player.IssueOrder(GameObjectOrder.AttackTo, args.Start.LSExtend(args.End, Player.BoundingRadius * 2));
            };
        }
コード例 #9
0
        /// <summary>
        ///     The on receive message.
        /// </summary>
        /// <param name="message">
        ///     The message.
        /// </param>
        /// <param name="cursorPos">
        ///     The cursor position.
        /// </param>
        /// <param name="key">
        ///     The key.
        /// </param>
        /// <param name="draggableItems">
        ///     The Items.
        /// </param>
        /// <param name="args">
        ///     The args.
        /// </param>
        protected void DraggableOnReceiveMessage(
            Utils.WindowsMessages message,
            Vector2 cursorPos,
            uint key,
            List <DraggableItem> draggableItems,
            WndEventArgs args = null)
        {
            if (!this.IsInside(cursorPos) && !this.BeingDragged)
            {
                this.OnReceiveMessage(message, cursorPos, key, args);
                return;
            }

            if (!this.BeingDragged && message == Utils.WindowsMessages.WM_MOUSEMOVE &&
                cursorPos.Distance(this.lastClickMousePosition) > 1 &&
                Math.Abs(cursorPos.Y - this.lastClickMousePosition.Y) > 5)
            {
                if (this.leftButtonDown && !this.ResizeTransition.Moving)
                {
                    this.PrepareDraggedIcon();
                    return;
                }
            }

            if (this.BeingDragged && message == Utils.WindowsMessages.WM_MOUSEMOVE)
            {
                foreach (var draggableItem in
                         draggableItems.Where(
                             draggableItem => !draggableItem.BeingDragged && !draggableItem.DragTransition.Moving))
                {
                    if (cursorPos.Y < draggableItem.RealPosition.Y + draggableItem.Height &&
                        draggableItem.OrderNumber == this.OrderNumber - 1)
                    {
                        draggableItem.DragTransition.Start(draggableItem.RealPosition, this.RealPosition);
                        this.OrderNumber--;
                        draggableItem.OrderNumber++;
                        break;
                    }

                    if (!(cursorPos.Y > draggableItem.RealPosition.Y) ||
                        draggableItem.OrderNumber != this.OrderNumber + 1)
                    {
                        continue;
                    }

                    draggableItem.DragTransition.Start(draggableItem.RealPosition, this.RealPosition);
                    this.OrderNumber++;
                    draggableItem.OrderNumber--;
                    break;
                }
            }

            if (!this.dragAndDropSleeper.Sleeping && message == Utils.WindowsMessages.WM_LBUTTONDOWN)
            {
                this.leftButtonDown = true;
                this.dragAndDropSleeper.Sleep(200);
                this.lastClickMousePosition = cursorPos;
                DelayAction.Add(
                    200,
                    () =>
                {
                    if (!this.BeingDragged && this.leftButtonDown)
                    {
                        this.PrepareDraggedIcon();
                    }
                });
            }

            if (message != Utils.WindowsMessages.WM_LBUTTONUP)
            {
                return;
            }

            this.leftButtonDown = false;
            if (this.BeingDragged)
            {
                this.DragTransition.Start(this.Position, this.RealPosition);
                this.ResizeBack();
                this.BeingDragged = false;
                return;
            }

            if (!this.dragAndDropSleeper.Sleeping)
            {
                return;
            }

            this.OnReceiveMessage(message, cursorPos, key, args);
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: RomanovHD/AimTec.io
        private static void Killsteal()
        {
            if (Player.IsRecalling() && Setup.Killsteal["Recall"].As <MenuBool>().Enabled)
            {
                return;
            }

            if (Player.ManaPercent() < Setup.Killsteal["Mana"].As <MenuSlider>().Value)
            {
                return;
            }

            if (Setup.Killsteal["R"].As <MenuBool>().Enabled&& Spells.R.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.R.Range);
                if (target.IsValidTarget() && Rdmg(target) > target.Health)
                {
                    Spells.R.Cast(target);
                }
            }

            if (Setup.Killsteal["W"].As <MenuBool>().Enabled&& Spells.W.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.W.Range);
                var pred   = Spells.W.GetPrediction(target);
                if (target.IsValidTarget() && !Player.HasBuff("syndrawtooltip") && delay < Game.TickCount && Wdmg(target) > target.Health)
                {
                    if (Objects() != null && Objects().Distance(Player.ServerPosition) < Spells.W.Range - 25)
                    {
                        Spells.W.Cast(Objects().ServerPosition);
                        delay = Game.TickCount + 1000;
                        Spells.W.LastCastAttemptT = Game.TickCount;
                    }
                }
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Player.HasBuff("syndrawtooltip") && Game.TickCount - Spells.W.LastCastAttemptT > Game.Ping + 100 && Wdmg(target) > target.Health)
                {
                    Spells.W.Cast(pred.CastPosition);
                }
            }

            if (Setup.Killsteal["E"].As <MenuBool>().Enabled&& Spells.E.Ready && Spells.Q.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.EQ.Range);
                var pred   = Spells.EQ.GetPrediction(target);
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Edmg(target) > target.Health)
                {
                    if (Player.ServerPosition.Distance(target.ServerPosition) > Spells.Q.Range)
                    {
                        var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed));
                        Spells.Q.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range));
                        DelayAction.Queue((int)EDelay * 1000, () => Spells.E.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range)));
                    }
                    else
                    {
                        var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed));
                        Spells.Q.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150));
                        DelayAction.Queue((int)EDelay * 2000, () => Spells.E.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150)));
                    }
                }
            }

            if (Setup.Killsteal["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.Q.Range);
                var pred   = Spells.Q.GetPrediction(target);
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Qdmg(target) > target.Health)
                {
                    Spells.Q.Cast(pred.CastPosition);
                }
            }
        }
コード例 #11
0
 static SkillshotDetector()
 {
     Obj_AI_Base.OnProcessSpellCast += OnProcessSpellCast;
     GameObject.OnCreate            += (sender, args) => { DelayAction.Add(0, () => MissileOnCreate(sender)); };
     GameObject.OnDelete            += MissileOnDelete;
     GameObject.OnCreate            += (sender, args) =>
     {
         var spellData = SpellDatabase.GetBySourceObjectName(sender.Name);
         if (spellData == null || Config.evadeMenu[spellData.SpellName + "Enabled"] == null)
         {
             return;
         }
         TriggerOnDetectSkillshot(
             DetectionType.ProcessSpell,
             spellData,
             Variables.TickCount - Game.Ping / 2,
             sender.Position.ToVector2(),
             sender.Position.ToVector2(),
             sender.Position.ToVector2(),
             GameObjects.Heroes.MinOrDefault(i => i.IsAlly ? 1 : 0));
     };
     GameObject.OnDelete += (sender, args) =>
     {
         if (!sender.IsValid || sender.Team == Program.Player.Team)
         {
             return;
         }
         for (var i = Evade.DetectedSkillshots.Count - 1; i >= 0; i--)
         {
             var skillshot = Evade.DetectedSkillshots[i];
             if (skillshot.SpellData.ToggleParticleName != "" &&
                 new Regex(skillshot.SpellData.ToggleParticleName).IsMatch(sender.Name))
             {
                 Evade.DetectedSkillshots.RemoveAt(i);
             }
         }
     };
     GameObject.OnCreate += (sender, args) =>
     {
         var shadow = sender as Obj_AI_Minion;
         if (shadow != null && shadow.CharData.BaseSkinName == "zedshadow" && shadow.IsEnemy)
         {
             TrackObjects.Add(shadow);
         }
     };
     Obj_AI_Base.OnPlayAnimation += (sender, args) =>
     {
         if (sender.IsAlly || args.Animation != "Death" || TrackObjects.Count == 0)
         {
             return;
         }
         TrackObjects.ForEach(
             i =>
         {
             if (i.Compare(sender))
             {
                 TrackObjects.Remove(i);
             }
         });
     };
     GameObject.OnDelete += (sender, args) =>
     {
         if (sender.IsAlly || TrackObjects.Count == 0)
         {
             return;
         }
         TrackObjects.ForEach(
             i =>
         {
             if (i.Compare(sender))
             {
                 TrackObjects.Remove(i);
             }
         });
     };
 }
コード例 #12
0
        private static void Combo()
        {
            AIHeroClient target = TargetSelector.GetTarget(E.Range, DamageType.Physical);

            if (target == null)
            {
                return;
            }
            if (GameObjects.Player.HealthPercent < mainMenu["Combo"].GetValue <MenuSlider>("wBelow").Value&& mainMenu["Combo"].GetValue <MenuBool>("Wuse").Enabled &&
                GameObjects.Player.CountEnemyHeroesInRange(500) > 0)
            {
                W.Cast();
            }
            //if (R.IsReady()&& mainMenu["Combo"].GetValue<MenuBool>("Ruse").Enabled)
            //{
            //    var Rtarget =
            //        GameObjects.EnemyHeroes.FirstOrDefault(e => e.HealthPercent < 50 && e.CountAllyHeroesInRange(660) > 0);
            //    if (Rtarget != null)
            //    {
            //        R.CastIfWillHit(Rtarget, 2);
            //    }
            //}
            var barrels =
                GetBarrels()
                .Where(
                    o =>
                    o.IsValid && !o.IsDead && o.Distance(GameObjects.Player) < 1600 && o.SkinName == "GangplankBarrel" &&
                    o.GetBuff("gangplankebarrellife").Caster.IsMe)
                .ToList();

            if (Q.IsReady() &&
                E.IsReady())
            {
                var Qbarrels = GetBarrels().Where(o => o.Distance(GameObjects.Player) < Q.Range && KillableBarrel(o));
                foreach (var Qbarrel in Qbarrels)
                {
                    if (Qbarrel.Distance(target) < BarrelExplosionRange)
                    {
                        continue;
                    }
                    var point =
                        GetBarrelPoints(Qbarrel.Position)
                        .Where(
                            p =>
                            p.IsValid() && !p.IsWall() && p.Distance(GameObjects.Player.Position) < E.Range &&
                            p.Distance(Prediction.GetPrediction(target, GetQTime(Qbarrel)).UnitPosition) <
                            BarrelExplosionRange && savedBarrels.Count(b => b.barrel.Position.Distance(p) < BarrelExplosionRange) < 1)
                        .OrderBy(p => p.Distance(target.Position))
                        .FirstOrDefault();
                    if (point != null && !justE)
                    {
                        E.Cast(point);
                        DelayAction.Add(1, () => Q.CastOnUnit(Qbarrel));
                        return;
                    }
                }
            }

            var minBarrel = mainMenu["Combo"].GetValue <MenuSlider>("minBarrel").Value;

            if (E.IsReady() && GameObjects.Player.Distance(target) < E.Range &&
                target.Health > Q.GetDamage(target) + GameObjects.Player.GetAutoAttackDamage(target) && Orbwalker.CanMove() &&
                minBarrel < E.Instance.Ammo)
            {
                CastE(target, barrels);
            }


            var meleeRangeBarrel =
                barrels.FirstOrDefault(
                    b =>
                    b.Health < 2 && b.Distance(GameObjects.Player) < GameObjects.Player.GetRealAutoAttackRange(b) &&
                    b.CountEnemyHeroesInRange(BarrelExplosionRange) > 0);

            if (meleeRangeBarrel != null)
            {
                Orbwalker.ForceTarget = meleeRangeBarrel;
            }
            if (Q.IsReady())
            {
                if (barrels.Any())
                {
                    var detoneateTargetBarrels = barrels.Where(b => b.Distance(GameObjects.Player) < Q.Range);

                    if (detoneateTargetBarrels.Any())
                    {
                        foreach (var detoneateTargetBarrel in detoneateTargetBarrels)
                        {
                            if (!KillableBarrel(detoneateTargetBarrel))
                            {
                                continue;
                            }
                            if (
                                detoneateTargetBarrel.Distance(
                                    Prediction.GetPrediction(target, GetQTime(detoneateTargetBarrel)).UnitPosition) <
                                BarrelExplosionRange &&
                                target.Distance(detoneateTargetBarrel.Position) < BarrelExplosionRange)
                            {
                                Q.CastOnUnit(detoneateTargetBarrel);
                                return;
                            }
                            var detoneateTargetBarrelSeconds =
                                barrels.Where(b => b.Distance(detoneateTargetBarrel) < BarrelConnectionRange);
                            if (detoneateTargetBarrelSeconds.Any())
                            {
                                foreach (var detoneateTargetBarrelSecond in detoneateTargetBarrelSeconds)
                                {
                                    if (
                                        detoneateTargetBarrelSecond.Distance(
                                            Prediction.GetPrediction(
                                                target, GetQTime(detoneateTargetBarrel) + 0.15f).UnitPosition) <
                                        BarrelExplosionRange &&
                                        target.Distance(detoneateTargetBarrelSecond.Position) < BarrelExplosionRange)
                                    {
                                        Q.CastOnUnit(detoneateTargetBarrel);
                                        return;
                                    }
                                }
                            }
                        }
                    }

                    if (2 > 1)
                    {
                        var enemies =
                            GameObjects.EnemyHeroes.Where(e => e.IsValidTarget() && e.Distance(GameObjects.Player) < 600)
                            .Select(e => Prediction.GetPrediction(e, 0.25f));
                        var enemies2 =
                            GameObjects.EnemyHeroes.Where(e => e.IsValidTarget() && e.Distance(GameObjects.Player) < 600)
                            .Select(e => Prediction.GetPrediction(e, 0.35f));
                        if (detoneateTargetBarrels.Any())
                        {
                            foreach (var detoneateTargetBarrel in detoneateTargetBarrels)
                            {
                                if (!KillableBarrel(detoneateTargetBarrel))
                                {
                                    continue;
                                }
                                var enemyCount =
                                    enemies.Count(
                                        e =>
                                        e.UnitPosition.Distance(detoneateTargetBarrel.Position) <
                                        BarrelExplosionRange);
                                if (enemyCount >= 1 &&
                                    detoneateTargetBarrel.CountEnemyHeroesInRange(BarrelExplosionRange) >=
                                    1)
                                {
                                    Q.CastOnUnit(detoneateTargetBarrel);
                                    return;
                                }
                                var detoneateTargetBarrelSeconds =
                                    barrels.Where(b => b.Distance(detoneateTargetBarrel) < BarrelConnectionRange);
                                if (detoneateTargetBarrelSeconds.Any())
                                {
                                    foreach (var detoneateTargetBarrelSecond in detoneateTargetBarrelSeconds)
                                    {
                                        if (enemyCount +
                                            enemies2.Count(
                                                e =>
                                                e.UnitPosition.Distance(detoneateTargetBarrelSecond.Position) <
                                                BarrelExplosionRange) >=
                                            1 &&
                                            detoneateTargetBarrelSecond.CountEnemyHeroesInRange(BarrelExplosionRange) >=
                                            1)
                                        {
                                            Q.CastOnUnit(
                                                detoneateTargetBarrel);
                                            return;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                if (Q.CanCast(target))
                {
                    CastQonHero(target, barrels);
                }
            }
        }
コード例 #13
0
    void Start()
    {
        // Draw 3 cards.
        ActionParallel drawParallel = new ActionParallel();

        if (PlayerPrefs.HasKey(Constants.kStrNumCardsInHand))
        {
            int numCards = PlayerPrefs.GetInt(Constants.kStrNumCardsInHand);
            for (int i = 0; i < numCards; i++)
            {
                DelayAction draw = new DelayAction(i * 0.3f);

                CardType type = (CardType)PlayerPrefs.GetInt(Constants.kStrCardType[i]);
                if (type == CardType.Movement)
                {
                    GridType moveType = (GridType)PlayerPrefs.GetInt(Constants.kStrCardMoveType[i]);
                    draw.OnActionFinish += () => {
                        DeckManager.Instance.DrawCard(moveType);
                    };
                }
                else
                {
                    CardTier tier = (CardTier)PlayerPrefs.GetInt(Constants.kStrCardTier[i]);
                    draw.OnActionFinish += () => {
                        DeckManager.Instance.DrawSpecificCard(type, tier);
                    };
                }

                drawParallel.Add(draw);
            }
        }
        else
        {
            DelayAction firstDraw = new DelayAction(0.1f);
            firstDraw.OnActionFinish += () => { DeckManager.Instance.DrawCard(); };
            DelayAction secondDraw = new DelayAction(0.1f + 0.3f);
            secondDraw.OnActionFinish += () => { DeckManager.Instance.DrawCard(); };
            DelayAction thirdDraw = new DelayAction(0.1f + 0.3f + 0.3f);
            secondDraw.OnActionFinish += () => { DeckManager.Instance.DrawCard(); };
            drawParallel = new ActionParallel(firstDraw, secondDraw, thirdDraw);
        }

        Vector3     vec3PlayerPos = DungeonManager.Instance.GridPosToWorldPos(Player.PosX, Player.PosY);
        Vector3     vec3ExitPos   = DungeonManager.Instance.GridPosToWorldPos(DungeonManager.Instance.ExitPosX, DungeonManager.Instance.ExitPosY);
        DelayAction pan           = new DelayAction(2.0f);

        pan.OnActionStart += () => {
            BoardScroller.Instance.FocusCameraToPos(vec3ExitPos, 1.5f, Graph.SmoothStep);
        };
        pan.OnActionFinish += () => {
            BoardScroller.Instance.FocusCameraToPos(vec3PlayerPos, 0.5f, Graph.SmoothStep);
        };

        DelayAction phaseAnimDelay = new DelayAction(0.6f);

        phaseAnimDelay.OnActionFinish += () => {
            EventAnimationController.Instance.ExecutePhaseAnimation(GamePhase.PlayerPhase);
            mbGameStarted = true;
        };

        ActionSequence startSeq = new ActionSequence(drawParallel, pan, phaseAnimDelay);

        ActionHandler.RunAction(startSeq);
    }
コード例 #14
0
        public static bool Cast(Ability ability, Unit target, string name)
        {
            if (name == "pudge_rot" && Utils.SleepCheck("rotToggle"))
            {
                if (!ability.IsToggled)
                {
                    ability.ToggleAbility();
                    Utils.Sleep(500, "rotToggle");
                    return(true);
                }

                return(false);
            }

            if (name == "templar_assassin_psionic_trap")
            {
                var modifier = target.FindModifier("modifier_templar_assassin_trap_slow");
                if (modifier != null && modifier.RemainingTime > ability.GetHitDelay(target, name))
                {
                    return(false);
                }

                if (TemplarAssasinUseTrap(target))
                {
                    return(false);
                }

                var casted = ability.CastSkillShot(target, MyHeroInfo.Position, name);
                if (casted)
                {
                    DelayAction.Add(
                        new DelayActionItem(
                            (int)ability.GetHitDelay(target, name) * 1000 + 700,
                            delegate { TemplarAssasinUseTrap(target); },
                            CancellationToken.None));
                }

                return(casted);
            }

            if (AbilityMain.Me.ClassID == ClassID.CDOTA_Unit_Hero_Invoker && !ability.CanBeCasted())
            {
                var invoked = ability.Invoke();
                if (!invoked)
                {
                    return(false);
                }

                DelayAction.Add(
                    Game.Ping * 2,
                    () =>
                {
                    ability.CastStun(
                        target,
                        MyHeroInfo.Position,
                        1,
                        abilityName: name,
                        useSleep: false,
                        soulRing: SoulRing.Check(ability) ? MyAbilities.SoulRing : null);
                });
                return(true);
            }

            return(ability.CastStun(
                       target,
                       MyHeroInfo.Position,
                       1,
                       abilityName: name,
                       useSleep: false,
                       soulRing: SoulRing.Check(ability) ? MyAbilities.SoulRing : null));
        }
コード例 #15
0
ファイル: Nuke.cs プロジェクト: osmanbonus007/EnsageSharp-3
        public static bool Cast(Ability ability, Unit target, string name, bool disabled = false)
        {
            if (!disabled)
            {
                disabled = target.IsStunned() || target.IsRooted() || target.IsHexed() || target.IsInvul();
            }

            if (target.HasModifier("modifier_item_blade_mail_reflect") &&
                AbilityDamage.CalculateDamage(ability, AbilityMain.Me, target) > AbilityMain.Me.Health)
            {
                return(false);
            }

            if (target.HasModifier("modifier_nyx_assassin_spiked_carapace"))
            {
                return(false);
            }

            if (ability.Name == "sniper_assassinate")
            {
                if (AbilityMain.Me.Distance2D(target) <= AbilityMain.Me.GetAttackRange() + 100)
                {
                    return(false);
                }
            }

            if (ability.IsAbilityBehavior(AbilityBehavior.UnitTarget, name) && ability.Name != "lion_impale" &&
                ability.Name != "lina_dragon_slave")
            {
                if (target.IsLinkensProtected())
                {
                    if (!Utils.SleepCheck("AbilitySharp.CancelLinkens"))
                    {
                        return(false);
                    }

                    if (MyAbilities.Cyclone != null && MyAbilities.Cyclone.CanBeCasted())
                    {
                        MyAbilities.Cyclone.UseAbility(target);
                    }
                    else if (MyAbilities.ForceStaff != null && MyAbilities.ForceStaff.CanBeCasted())
                    {
                        MyAbilities.ForceStaff.UseAbility(target);
                    }

                    Utils.Sleep(1000, "AbilitySharp.CancelLinkens");

                    Game.ExecuteCommand("dota_player_units_auto_attack_mode 0");
                    ManageAutoAttack.AutoAttackDisabled = true;
                    SoulRing.Cast(ability);
                    ability.UseAbility(target, true);
                    return(false);
                }

                Game.ExecuteCommand("dota_player_units_auto_attack_mode 0");
                ManageAutoAttack.AutoAttackDisabled = true;
                SoulRing.Cast(ability);
                ability.UseAbility(target);
                DelayAction.Add(
                    new DelayActionItem(300, () => { AbilityMain.LaunchSnowball(); }, CancellationToken.None));
                return(true);
            }

            if ((ability.IsAbilityBehavior(AbilityBehavior.AreaOfEffect, name) ||
                 ability.IsAbilityBehavior(AbilityBehavior.Point, name)) &&
                (disabled ||
                 Prediction.StraightTime(target)
                 > Nukes.NukesMenuDictionary[name].Item(name + "minstraighttime").GetValue <Slider>().Value ||
                 target.MovementSpeed < 200))
            {
                if (AbilityMain.Me.ClassId == ClassId.CDOTA_Unit_Hero_Invoker && !ability.CanBeCasted())
                {
                    var invoked = ability.Invoke();
                    if (!invoked)
                    {
                        return(false);
                    }

                    DelayAction.Add(
                        Game.Ping * 2,
                        () =>
                    {
                        Game.ExecuteCommand("dota_player_units_auto_attack_mode 0");
                        ManageAutoAttack.AutoAttackDisabled = true;
                        var casted2 = ability.CastSkillShot(
                            target,
                            MyHeroInfo.Position,
                            name,
                            SoulRing.Check(ability) ? MyAbilities.SoulRing : null);
                        if (!casted2)
                        {
                            return;
                        }

                        if (!disabled && Utils.SleepCheck(ability.Handle.ToString()) &&
                            ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Game.Ping > 0.1)
                        {
                            DelayAction.Add(
                                new DelayActionItem(
                                    (int)
                                    (ability.GetCastDelay(AbilityMain.Me, target, true) * 1000
                                     - Math.Max(50, Game.Ping)),
                                    () =>
                            {
                                if (Prediction.StraightTime(target)
                                    < (600
                                       + (ability.GetCastDelay(AbilityMain.Me, target, true) * 1000
                                          - Math.Max(50, Game.Ping))) && target.MovementSpeed > 200)
                                {
                                    AbilityMain.Me.Stop();
                                }
                            },
                                    CancellationToken.None));
                        }
                    });
                    Utils.Sleep((Game.Ping * 2) + 200, "cancelorder");
                    Utils.Sleep((Game.Ping * 2) + 200, ability.Handle.ToString());
                    Utils.Sleep((Game.Ping * 2) + 200, "casting");
                }

                Game.ExecuteCommand("dota_player_units_auto_attack_mode 0");
                ManageAutoAttack.AutoAttackDisabled = true;
                var casted = ability.CastSkillShot(
                    target,
                    MyHeroInfo.Position,
                    name,
                    SoulRing.Check(ability) ? MyAbilities.SoulRing : null);
                if (!casted)
                {
                    return(false);
                }

                if (!disabled && Utils.SleepCheck(ability.Handle.ToString()) &&
                    ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Game.Ping > 0.1)
                {
                    DelayAction.Add(
                        new DelayActionItem(
                            (int)(ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Math.Max(50, Game.Ping)),
                            () =>
                    {
                        if (Prediction.StraightTime(target)
                            < (600
                               + (ability.GetCastDelay(AbilityMain.Me, target, true) * 1000
                                  - Math.Max(50, Game.Ping))) && target.MovementSpeed > 200)
                        {
                            AbilityMain.Me.Stop();
                        }
                    },
                            CancellationToken.None));
                }

                return(true);
            }

            if (ability.IsAbilityBehavior(AbilityBehavior.NoTarget, name))
            {
                if (ability.Name == "templar_assassin_meld")
                {
                    if (
                        !(target.Distance2D(MyHeroInfo.Position)
                          < (AbilityMain.Me.GetAttackRange() + 50 + target.HullRadius + AbilityMain.Me.HullRadius)) ||
                        Orbwalking.AttackOnCooldown(target) || AbilityMain.Me.IsAttacking() ||
                        (target.Predict(Game.Ping).Distance2D(MyHeroInfo.Position)
                         > (AbilityMain.Me.GetAttackRange() + 50 + target.HullRadius + AbilityMain.Me.HullRadius)) ||
                        !Utils.SleepCheck("GlobalCasting"))
                    {
                        return(false);
                    }

                    Game.ExecuteCommand("dota_player_units_auto_attack_mode 0");
                    ManageAutoAttack.AutoAttackDisabled = true;
                    ability.UseAbility();
                    DelayAction.Add(
                        new DelayActionItem(
                            (int)ability.GetCastDelay(AbilityMain.Me, target) * 1000,
                            () => { AbilityMain.Me.Attack(target); },
                            CancellationToken.None));
                    Utils.Sleep(ability.GetCastDelay(AbilityMain.Me, target) * 1000, "GlobalCasting");
                    Utils.Sleep(ability.GetCastDelay(AbilityMain.Me, target) * 1000 + 200, "casting");
                    Utils.Sleep(ability.GetCastDelay(AbilityMain.Me, target) * 1000 + 200, "Ability.Move");
                    Utils.Sleep(ability.GetCastDelay(AbilityMain.Me, target) * 1000 + 200, "cancelorder");
                    return(true);
                }

                if (ability.Name.Contains("nevermore_shadowraze"))
                {
                    Game.ExecuteCommand("dota_player_units_auto_attack_mode 0");
                    ManageAutoAttack.AutoAttackDisabled = true;
                    return(ability.CastSkillShot(target, name));
                }

                SoulRing.Cast(ability);
                Game.ExecuteCommand("dota_player_units_auto_attack_mode 0");
                ManageAutoAttack.AutoAttackDisabled = true;
                ability.UseAbility();
                return(true);
            }

            return(false);
        }
コード例 #16
0
        internal static void Init(Menu menu)
        {
            var orbwalkMenu = menu.Add(new Menu("Orbwalker", "Orbwalker"));

            {
                orbwalkMenu.Bool("Enable", "Enable Orbwalker");
                var drawMenu = orbwalkMenu.Add(new Menu("Draw", "Draw"));
                {
                    drawMenu.Bool("AARange", "Auto-Attack Range");
                    drawMenu.Bool("KillableMinion", "Killable Minion", false);
                    drawMenu.Bool("KillableMinionFade", "Enable Killable Minion Fade Effect", false);
                }
                var advMenu = orbwalkMenu.Add(new Menu("Advanced", "Advanced"));
                {
                    advMenu.Separator("Movement");
                    advMenu.Slider("ExtraHold", "Extra Hold Position", 25, 0, 250);
                    advMenu.Separator("Miscellaneous");
                    advMenu.Slider("ExtraWindup", "Extra Windup", 80, 0, 200);
                    advMenu.Slider("FarmDelay", "Farm Delay", 30, 0, 200);
                    advMenu.Bool("PriorizeFarm", "Priorize Farm Over Harass");
                    advMenu.Bool("Missile", "Use Missile Checks (Ranged)");
                }
                orbwalkMenu.Separator("Key Bindings");
                orbwalkMenu.KeyBind("lasthitKey", "Farm", Keys.X);
                orbwalkMenu.KeyBind("laneclearKey", "Lane Clear", Keys.V);
                orbwalkMenu.KeyBind("hybridKey", "Hybrid", Keys.C);
                orbwalkMenu.KeyBind("orbwalkKey", "Orbwalk", Keys.Space);
            }
            Movement = Attack = true;

            Game.OnUpdate += args =>
            {
                if (InterruptableSpell.IsCastingInterruptableSpell(Program.Player, true) || !Enabled)
                {
                    return;
                }
                if (ActiveMode != OrbwalkingMode.None)
                {
                    Orbwalk(OrbwalkTarget, OrbwalkPosition);
                }
            };
            Spellbook.OnStopCast += (sender, args) =>
            {
                if (!sender.Owner.IsMe || !Enabled)
                {
                    return;
                }
                if (args.DestroyMissile && args.StopAnimation)
                {
                    ResetAutoAttackTimer();
                }
            };
            Obj_AI_Base.OnDoCast += (sender, args) =>
            {
                if (!sender.IsMe || !Enabled || !AutoAttack.IsAutoAttack(args.SData.Name))
                {
                    return;
                }
                if (Game.Ping <= 30)
                {
                    DelayAction.Add(30, () => OnDoCastDelayed(args));
                    return;
                }
                OnDoCastDelayed(args);
            };
            Obj_AI_Base.OnProcessSpellCast += OnProcessSpellCast;
            Drawing.OnDraw += OnDraw;
        }
コード例 #17
0
        /// <summary>
        ///     Handles the <see cref="E:ProcessSpell" /> event.
        /// </summary>
        public static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Vars.Menu["enable"].GetValue <MenuSliderButton>().BValue)
            {
                return;
            }

            var objAiHero = sender as Obj_AI_Hero;

            if (objAiHero == null || !objAiHero.IsValidTarget() || !objAiHero.IsEnemy)
            {
                return;
            }
            if (!objAiHero.ServerPosition.IsOnScreen() && Vars.Menu["onscreen"].GetValue <MenuBool>().Value)
            {
                return;
            }
            if (GameObjects.Player.Distance(objAiHero) > Vars.Menu["enable"].GetValue <MenuSliderButton>().SValue)
            {
                return;
            }

            /// <summary>
            ///     Check for the Not included Champions.
            /// </summary>
            if (Vars.NotIncludedChampions.Contains(objAiHero.ChampionName.ToLower()))
            {
                return;
            }

            switch (args.Slot)
            {
            case SpellSlot.R:

                /// <summary>
                ///     The Ultimate (R).
                /// </summary>
                if (Vars.Menu[objAiHero.ChampionName.ToLower()]["ultimate"].GetValue <MenuBool>().Value)
                {
                    /// <summary>
                    ///     Exceptions check.
                    /// </summary>
                    if (Vars.ExChampions.Contains(objAiHero.ChampionName))
                    {
                        foreach (var s in Vars.RealSpells)
                        {
                            if (!objAiHero.Buffs.Any(b => b.Name.Equals(s)))
                            {
                                return;
                            }
                            if (objAiHero.GetBuffCount(Vars.RealSpells.First(r => r.Equals(args.SData.Name))) > 1)
                            {
                                return;
                            }
                        }
                    }

                    /// <summary>
                    ///     Let's delay the alert by 5-10 seconds since we're not Sean Wrona.
                    /// </summary>
                    DelayAction.Add(
                        WeightedRandom.Next(5000, 10000),
                        () =>
                    {
                        if (Vars.Menu["nocombo"].GetValue <MenuBool>().Value &&
                            Vars.Menu["combokey"].GetValue <MenuKeyBind>().Active)
                        {
                            return;
                        }

                        /// <summary>
                        ///     Then we randomize the whole output (Structure/Names/SpellNames) to make it seem totally legit.
                        /// </summary>
                        switch (WeightedRandom.Next(1, 4))
                        {
                        case 1:
                            Game.Say($"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} no ulti");
                            break;

                        case 2:
                            Game.Say($"no ult {Vars.GetHumanName(objAiHero.ChampionName.ToLower())}");
                            break;

                        case 3:
                            Game.Say($"ult {Vars.GetHumanName(objAiHero.ChampionName.ToLower())}");
                            break;

                        default:
                            Game.Say($"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} ult");
                            break;
                        }
                    });
                }

                break;

            case SpellSlot.Summoner1:

                /// <summary>
                ///     The First SummonerSpell.
                /// </summary>
                if (Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower()) != null &&
                    Vars.Menu[objAiHero.ChampionName.ToLower()]["sum1"].GetValue <MenuBool>().Value)
                {
                    /// <summary>
                    ///     Let's delay the alert by 5-10 seconds since we're not Sean Wrona.
                    /// </summary>
                    DelayAction.Add(
                        WeightedRandom.Next(5000, 10000),
                        () =>
                    {
                        if (Vars.Menu["nocombo"].GetValue <MenuBool>().Value &&
                            Vars.Menu["combokey"].GetValue <MenuKeyBind>().Active)
                        {
                            return;
                        }

                        /// <summary>
                        ///     Then we randomize the whole output (Structure/Names/SpellNames) to make it seem totally legit.
                        /// </summary>
                        switch (WeightedRandom.Next(1, 4))
                        {
                        case 1:
                            Game.Say(
                                $"no {Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower())} "
                                + $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())}");
                            break;

                        case 2:
                            Game.Say(
                                $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} no "
                                + $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower())}");
                            break;

                        case 3:
                            Game.Say(
                                $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower())} "
                                + $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())}");
                            break;

                        default:
                            Game.Say(
                                $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} "
                                + $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower())}");
                            break;
                        }
                    });
                }
                break;

            case SpellSlot.Summoner2:

                /// <summary>
                ///     The Second SummonerSpell.
                /// </summary>
                if (Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower()) != null &&
                    Vars.Menu[objAiHero.ChampionName.ToLower()]["sum2"].GetValue <MenuBool>().Value)
                {
                    /// <summary>
                    ///     Let's delay the alert by 5-10 seconds since we're not Sean Wrona.
                    /// </summary>
                    DelayAction.Add(
                        WeightedRandom.Next(5000, 10000),
                        () =>
                    {
                        if (Vars.Menu["nocombo"].GetValue <MenuBool>().Value &&
                            Vars.Menu["combokey"].GetValue <MenuKeyBind>().Active)
                        {
                            return;
                        }

                        /// <summary>
                        ///     Then we randomize the whole output (Structure/Names/SpellNames) to make it seem totally legit.
                        /// </summary>
                        switch (WeightedRandom.Next(1, 4))
                        {
                        case 1:
                            Game.Say(
                                $"no {Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower())} "
                                + $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())}");
                            break;

                        case 2:
                            Game.Say(
                                $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} no "
                                + $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower())}");
                            break;

                        case 3:
                            Game.Say(
                                $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower())} "
                                + $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())}");
                            break;

                        default:
                            Game.Say(
                                $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} "
                                + $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower())}");
                            break;
                        }
                    });
                }
                break;
            }
        }
コード例 #18
0
	public override void Init ()
	{
		base.Init ();
		count = new DelayAction (10f,startAction,actionActive);
	}
コード例 #19
0
ファイル: Program.cs プロジェクト: RomanovHD/AimTec.io
        private static void Flee()
        {
            if (!Setup.Flee["Key"].Enabled)
            {
                return;
            }

            Player.IssueOrder(OrderType.MoveTo, Game.CursorPos);

            if (Player.ManaPercent() < Setup.Flee["Mana"].As <MenuSlider>().Value)
            {
                return;
            }

            if (Setup.Flee["E"].As <MenuBool>().Enabled&& Spells.E.Ready && Spells.Q.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.EQ.Range);
                var pred   = Spells.EQ.GetPrediction(target);
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High)
                {
                    if (Player.ServerPosition.Distance(target.ServerPosition) > Spells.Q.Range)
                    {
                        var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed));
                        Spells.Q.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range));
                        DelayAction.Queue((int)EDelay * 1000, () => Spells.E.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range)));
                    }
                    else
                    {
                        var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed));
                        Spells.Q.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150));
                        DelayAction.Queue((int)EDelay * 2000, () => Spells.E.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150)));
                    }
                }
            }

            if (Setup.Flee["E"].As <MenuBool>().Enabled&& Spells.E.Ready && !Spells.Q.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.E.Range);
                var pred   = Spells.E.GetPrediction(target);
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High)
                {
                    Spells.E.Cast(pred.CastPosition);
                }
            }

            if (Setup.Flee["W"].As <MenuBool>().Enabled&& Spells.W.Ready)
            {
                var target = TargetSelector.GetTarget(Spells.W.Range);
                var pred   = Spells.W.GetPrediction(target);
                if (target.IsValidTarget() && !Player.HasBuff("syndrawtooltip") && delay < Game.TickCount)
                {
                    if (Objects() != null && Objects().Distance(Player.ServerPosition) < Spells.W.Range - 25)
                    {
                        Spells.W.Cast(Objects().ServerPosition);
                        delay = Game.TickCount + 1000;
                        Spells.W.LastCastAttemptT = Game.TickCount;
                    }
                }
                if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Player.HasBuff("syndrawtooltip") && Game.TickCount - Spells.W.LastCastAttemptT > Game.Ping + 100)
                {
                    Spells.W.Cast(pred.CastPosition);
                }
            }
        }
コード例 #20
0
 private static void Evading(List <Skillshot> skillshots)
 {
     foreach (var skillshot in skillshots)
     {
         foreach (var spell in
                  EvadeSpellDatabase.Spells.Where(
                      i => i.Enable && i.IsReady && i.DangerLevel <= skillshot.DangerLevel))
         {
             if (spell.IsSpellShield)
             {
                 if (skillshot.IsAboutToHit(Program.Player, spell.Delay))
                 {
                     Program.Player.Spellbook.CastSpell(spell.Slot, Program.Player);
                 }
                 return;
             }
             if (spell.IsDash)
             {
                 if (spell.IsTargetted)
                 {
                     var target = spell.GetEvadeTarget();
                     if (target != null)
                     {
                         Program.Player.Spellbook.CastSpell(spell.Slot, target);
                         return;
                     }
                     if (Variables.TickCount - LastWardJumpAttempt < 250)
                     {
                         return;
                     }
                     if (spell.ValidTargets.Contains(SpellValidTargets.AllyWards) &&
                         Program.MainMenu["Evade"]["Spells"][spell.Name]["WardJump"])
                     {
                         var ward = Items.GetWardSlot();
                         if (ward != null)
                         {
                             var point = spell.GetEvadePoint(600);
                             if (point.IsValid())
                             {
                                 Program.Player.Spellbook.CastSpell(ward.SpellSlot, point);
                                 LastWardJumpAttempt = Variables.TickCount;
                                 return;
                             }
                         }
                     }
                 }
                 else
                 {
                     var point = spell.GetEvadePoint();
                     if (point.IsValid())
                     {
                         if (!spell.Invert)
                         {
                             if (spell.RequirePreMove)
                             {
                                 Program.Player.IssueOrder(GameObjectOrder.MoveTo, point, false);
                                 DelayAction.Add(
                                     Game.Ping / 2 + 100,
                                     () => Program.Player.Spellbook.CastSpell(spell.Slot, point));
                             }
                             else
                             {
                                 Program.Player.Spellbook.CastSpell(spell.Slot, point);
                             }
                         }
                         else
                         {
                             Program.Player.Spellbook.CastSpell(
                                 spell.Slot,
                                 (PlayerPosition - (point.ToVector2() - PlayerPosition)).ToVector3());
                         }
                         return;
                     }
                 }
             }
             if (spell.IsBlink)
             {
                 if (spell.IsTargetted)
                 {
                     var target = spell.GetEvadeTarget();
                     if (target != null)
                     {
                         if (skillshot.IsAboutToHit(Program.Player, spell.Delay))
                         {
                             if (spell.SelfCast)
                             {
                                 Program.Player.Spellbook.CastSpell(spell.Slot);
                             }
                             else
                             {
                                 Program.Player.Spellbook.CastSpell(spell.Slot, target);
                             }
                         }
                         return;
                     }
                     if (Variables.TickCount - LastWardJumpAttempt < 250)
                     {
                         return;
                     }
                     if (spell.ValidTargets.Contains(SpellValidTargets.AllyWards) &&
                         Program.MainMenu["Evade"]["Spells"][spell.Name]["WardJump"])
                     {
                         var ward = Items.GetWardSlot();
                         if (ward != null)
                         {
                             var point = spell.GetEvadePoint(600);
                             if (point.IsValid())
                             {
                                 Program.Player.Spellbook.CastSpell(ward.SpellSlot, point);
                                 LastWardJumpAttempt = Variables.TickCount;
                                 return;
                             }
                         }
                     }
                 }
                 else
                 {
                     var point = spell.GetEvadePoint();
                     if (point.IsValid())
                     {
                         if (skillshot.IsAboutToHit(Program.Player, spell.Delay))
                         {
                             Program.Player.Spellbook.CastSpell(spell.Slot, point);
                         }
                         return;
                     }
                 }
             }
             if (spell.IsInvulnerability)
             {
                 if (spell.IsTargetted)
                 {
                     var target = spell.GetEvadeTarget(true, 0, true);
                     if (target != null)
                     {
                         if (skillshot.IsAboutToHit(Program.Player, spell.Delay))
                         {
                             Program.Player.Spellbook.CastSpell(spell.Slot, target);
                         }
                         return;
                     }
                 }
                 else
                 {
                     if (skillshot.IsAboutToHit(Program.Player, spell.Delay))
                     {
                         if (spell.SelfCast)
                         {
                             Program.Player.Spellbook.CastSpell(spell.Slot);
                         }
                         else
                         {
                             Program.Player.Spellbook.CastSpell(spell.Slot, Program.Player.ServerPosition);
                         }
                     }
                     return;
                 }
             }
             if (spell.IsShield)
             {
                 if (skillshot.IsAboutToHit(Program.Player, spell.Delay, spell.IsYasuoWall))
                 {
                     if (spell.RequireMissilePos)
                     {
                         Program.Player.Spellbook.CastSpell(
                             spell.Slot,
                             PlayerPosition.Extend(skillshot.Start, 100).ToVector3());
                     }
                     else
                     {
                         Program.Player.Spellbook.CastSpell(spell.Slot, Program.Player);
                     }
                 }
                 return;
             }
         }
     }
 }
コード例 #21
0
 public DelayActionTests()
 {
     this.delayAction = new DelayAction();
 }
コード例 #22
0
        public static void EQWLogic(AIHeroClient target, bool useQ, bool useW, bool useE)
        {
            if (target == null || !target.IsValidTarget())
            {
                target = TargetSelector.GetTarget(MyLogic.E.Range + 300f);
            }

            if (target == null || !target.IsValidTarget() || !target.IsValidTarget())
            {
                return;
            }

            if (useE && MyLogic.E.IsReady() && target.IsValidTarget(MyLogic.E.Range + 300f))
            {
                var ePos = GetEPosition(target);

                if (ePos != Vector3.Zero && ePos.DistanceToPlayer() <= MyLogic.E.Range && CanCastE(ePos, target))
                {
                    if (MyLogic.MiscMenu["FlowersKatarina.MiscMenu.EHumanizer"].GetValue <MenuSliderButton>().Enabled)
                    {
                        DelayAction.Add(
                            MyLogic.MiscMenu["FlowersKatarina.MiscMenu.EHumanizer"].GetValue <MenuSliderButton>().Value,
                            () => MyLogic.E.Cast(ePos));
                    }
                    else
                    {
                        MyLogic.E.Cast(ePos);
                    }
                }
            }

            if (useQ && MyLogic.Q.IsReady() && target.IsValidTarget(MyLogic.Q.Range) && !MyLogic.E.IsReady())
            {
                if (target.IsValidTarget(MyLogic.Q.Range))
                {
                    if (!(MyLogic.W.IsReady() && MyLogic.E.IsReady()) && target.DistanceToPlayer() <= 300 ||
                        !target.IsFacing(ObjectManager.Player) && target.DistanceToPlayer() > 300)
                    {
                        MyLogic.Q.CastOnUnit(target);
                    }
                }
                else if (target.IsValidTarget(MyLogic.E.Range) &&
                         (Orbwalker.ActiveMode == OrbwalkerMode.Combo &&
                          MyLogic.ComboMenu["FlowersKatarina.ComboMenu.QOnMinion"].GetValue <MenuBool>().Enabled ||
                          Orbwalker.ActiveMode == OrbwalkerMode.Harass &&
                          MyLogic.HarassMenu["FlowersKatarina.HarassMenu.QOnMinion"].GetValue <MenuBool>()))
                {
                    var extraDagger = target.PreviousPosition.Extend(ObjectManager.Player.PreviousPosition, 350f);
                    var min         = ObjectManager.Get <AIBaseClient>().Aggregate((x, y) => x.Distance(extraDagger) < y.Distance(extraDagger) ? x : y);

                    if (min.Distance(extraDagger) < 130)
                    {
                        MyLogic.Q.CastOnUnit(min);
                    }
                }
            }

            if (useW && MyLogic.W.IsReady() && target.IsValidTarget(MyLogic.W.Range))
            {
                MyLogic.W.Cast();
            }
        }
コード例 #23
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
        public static void Clear(EventArgs args)
        {
            if (Bools.HasSheenBuff())
            {
                return;
            }

            /// <summary>
            ///     The E Clear Logics.
            /// </summary>
            if (Vars.E.IsReady())
            {
                /// <summary>
                ///     The E JungleClear Logic.
                /// </summary>
                if (Targets.JungleMinions.Any())
                {
                    if (GameObjects.Player.ManaPercent >
                        ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "clear")) &&
                        Vars.getSliderItem(Vars.EMenu, "clear") != 101)
                    {
                        DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () =>
                        {
                            foreach (var minion in Targets.Minions.Where(m => m.HasBuffOfType(BuffType.Poison)))
                            {
                                Vars.E.CastOnUnit(minion);
                            }
                        });
                    }
                }

                /// <summary>
                ///     The E LaneClear Logics.
                /// </summary>
                else if (Targets.Minions.Any())
                {
                    if (GameObjects.Player.ManaPercent <
                        ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "lasthit")) &&
                        Vars.getSliderItem(Vars.EMenu, "lasthit") != 101)
                    {
                        DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () =>
                        {
                            foreach (var minion in Targets.Minions.Where(
                                         m =>
                                         Vars.GetRealHealth(m) <
                                         (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E) +
                                         (m.HasBuffOfType(BuffType.Poison)
                                            ? (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E, DamageStage.Empowered)
                                            : 0)))
                            {
                                Vars.E.CastOnUnit(minion);
                            }
                        });
                    }
                    else if (GameObjects.Player.ManaPercent >=
                             ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "clear")) &&
                             Vars.getSliderItem(Vars.EMenu, "clear") != 101)
                    {
                        DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () =>
                        {
                            foreach (var minion in Targets.Minions.Where(m => m.HasBuffOfType(BuffType.Poison)))
                            {
                                Vars.E.CastOnUnit(minion);
                            }
                        });
                    }
                }
            }

            /// <summary>
            ///     The Q Clear Logic.
            /// </summary>
            if (Vars.Q.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "clear")) &&
                Vars.getSliderItem(Vars.QMenu, "clear") != 101)
            {
                /// <summary>
                ///     The Q JungleClear Logic.
                /// </summary>
                if (Targets.JungleMinions.Any())
                {
                    Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition);
                }

                /// <summary>
                ///     The Q LaneClear Logic.
                /// </summary>
                else if (Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3)
                {
                    Vars.Q.Cast(Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width).Position);
                }
            }

            /// <summary>
            ///     The W Clear Logic.
            /// </summary>
            if (Vars.W.IsReady() &&
                GameObjects.Player.ManaPercent >
                ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "clear")) &&
                Vars.getSliderItem(Vars.WMenu, "clear") != 101)
            {
                /// <summary>
                ///     The W JungleClear Logic.
                /// </summary>
                if (Targets.JungleMinions.Any(m => !m.HasBuffOfType(BuffType.Poison)))
                {
                    Vars.W.Cast(Targets.JungleMinions.Where(m => !m.HasBuffOfType(BuffType.Poison)).FirstOrDefault().ServerPosition);
                }

                /// <summary>
                ///     The W LaneClear Logic.
                /// </summary>
                else if (Vars.W.GetCircularFarmLocation(Targets.Minions, Vars.W.Width).MinionsHit >= 3)
                {
                    Vars.W.Cast(Vars.W.GetCircularFarmLocation(Targets.Minions.Where(m => !m.HasBuffOfType(BuffType.Poison)).ToList(), Vars.W.Width).Position);
                }
            }
        }
コード例 #24
0
        private static void OnGameLoad()
        {
            TextBold = new Font(Drawing.Direct3DDevice, new FontDescription
            {
                FaceName = "Impact", Height = 30, Weight = FontWeight.Normal, OutputPrecision = FontPrecision.Default, Quality = FontQuality.ClearType
            });

            Q = new Spell(SpellSlot.Q);
            W = new Spell(SpellSlot.W);
            E = new Spell(SpellSlot.E);
            R = new Spell(SpellSlot.R);

            Config = new Menu("OneKeyToWin_AIO" + ObjectManager.Player.CharacterName, "OneKeyToWin AIO", true);

            #region MENU ABOUT OKTW

            var about = new Menu("about", "About OKTW©");
            about.Add(new MenuBool("debug", "Debug", false));
            about.Add(new MenuBool("debugChat", "Debug Chat", false));
            about.Add(new MenuSeparator("0", "OneKeyToWin© by Sebby"));
            about.Add(new MenuSeparator("1", "visit joduska.me"));
            about.Add(new MenuSeparator("2", "DONATE: [email protected]"));
            about.Add(new MenuBool("print", "OKTW NEWS in chat", true));
            about.Add(new MenuBool("logo", "Intro logo OKTW", true));
            Config.Add(about);

            #endregion

            #region PREDICTION MODE

            var pred = new Menu("predmode", "Prediction MODE");
            pred.Add(new MenuList <string>("Qpred", "Q Prediction MODE", new[] { "Common prediction", "OKTW© PREDICTION", "SPrediction press F5 if not loaded", "Exory prediction" }, ObjectManager.Player.CharacterName)
            {
                Index = 1
            });
            pred.Add(new MenuList <string>("QHitChance", "Q Hit Chance", new[] { "Very High", "High", "Medium" }, ObjectManager.Player.CharacterName)
            {
                Index = 0
            });
            pred.Add(new MenuList <string>("Wpred", "W Prediction MODE", new[] { "Common prediction", "OKTW© PREDICTION", "SPrediction press F5 if not loaded", "Exory prediction" }, ObjectManager.Player.CharacterName)
            {
                Index = 1
            });
            pred.Add(new MenuList <string>("WHitChance", "W Hit Chance", new[] { "Very High", "High", "Medium" }, ObjectManager.Player.CharacterName)
            {
                Index = 0
            });
            pred.Add(new MenuList <string>("Epred", "E Prediction MODE", new[] { "Common prediction", "OKTW© PREDICTION", "SPrediction press F5 if not loaded", "Exory prediction" }, ObjectManager.Player.CharacterName)
            {
                Index = 1
            });
            pred.Add(new MenuList <string>("EHitChance", "E Hit Chance", new[] { "Very High", "High", "Medium" }, ObjectManager.Player.CharacterName)
            {
                Index = 0
            });
            pred.Add(new MenuList <string>("Rpred", "R Prediction MODE", new[] { "Common prediction", "OKTW© PREDICTION", "SPrediction press F5 if not loaded", "Exory prediction" }, ObjectManager.Player.CharacterName)
            {
                Index = 1
            });
            pred.Add(new MenuList <string>("RHitChance", "R Hit Chance", new[] { "Very High", "High", "Medium" }, ObjectManager.Player.CharacterName)
            {
                Index = 0
            });

            pred.Add(new MenuBool("debugPred", "Draw Aiming OKTW© PREDICTION", false));

            Config.Add(pred);

            if (pred.GetValue <MenuList <string> >("Qpred").Index == 2 ||
                pred.GetValue <MenuList <string> >("Wpred").Index == 2 ||
                pred.GetValue <MenuList <string> >("Epred").Index == 2 ||
                pred.GetValue <MenuList <string> >("Rpred").Index == 2)
            {
                SPrediction.Prediction.Initialize(pred);
                SPredictionLoad = true;
                pred.Add(new MenuSeparator("322", "SPREDICTION LOADED"));
            }
            else
            {
                pred.Add(new MenuSeparator("322", "SPREDICTION NOT LOADED"));
            }

            #endregion

            #region EXTRA SETTINGS

            var extra = new Menu("extraSet", "Extra settings OKTW©");
            extra.Add(new MenuBool("supportMode", "Support Mode", false, ObjectManager.Player.CharacterName));
            extra.Add(new MenuBool("comboDisableMode", "Disable auto-attack in combo mode", false, ObjectManager.Player.CharacterName));
            extra.Add(new MenuBool("manaDisable", "Disable mana manager in combo", false, ObjectManager.Player.CharacterName));
            extra.Add(new MenuBool("collAA", "Disable auto-attack if Yasuo wall collision", true, ObjectManager.Player.CharacterName));

            var anti = new Menu("antimelee", "Anti-Melee Positioning Assistant OKTW©");
            anti.Add(new MenuBool("positioningAssistant", "Anti-Melee Positioning Assistant OKTW©", false));
            var assist = new Menu("antimeleeassist", "Positioning Assistant:");
            foreach (var enemy in GameObjects.EnemyHeroes.Where(enemy => enemy.IsMelee))
            {
                assist.Add(new MenuBool("posAssistant" + enemy.CharacterName, enemy.CharacterName, true));
            }
            anti.Add(new MenuBool("positioningAssistantDraw", "Show notification", true));
            anti.Add(assist);
            extra.Add(anti);

            extra.Add(new MenuBool("harassLaneclear", "Skill-Harass in lane clear", true));
            extra.GetValue <MenuBool>("supportMode").Enabled = false;

            Config.Add(extra);

            #endregion

            #region HARASS

            var harass = new Menu("harass", "Harass");
            foreach (var enemy in GameObjects.EnemyHeroes)
            {
                harass.Add(new MenuBool("harass" + enemy.CharacterName, enemy.CharacterName, true));
            }
            Config.Add(harass);

            #endregion

            #region FARM

            var farm      = new Menu("farm", "Farm");
            var spellFarm = new Menu("spellfarm", "SPELLS FARM TOGGLE");
            spellFarm.Add(new MenuBool("spellFarm", "OKTW spells farm", true));
            spellFarm.Add(new MenuList <string>("spellFarmMode", "SPELLS FARM TOGGLE MODE", new[] { "Scroll down", "Scroll press", "Key toggle", "Disable" })
            {
                Index = 1
            });
            spellFarm.Add(new MenuKeyBind("spellFarmKeyToggle", "Key toggle", Keys.N, KeyBindType.Toggle));
            spellFarm.Add(new MenuBool("showNot", "Show notification", true));
            spellFarm.GetValue <MenuBool>("spellFarm").Permashow(true);
            farm.Add(spellFarm);
            Config.Add(farm);

            #endregion

            #region DRAW

            var draw = new Menu("draw", "Draws OKTW©");
            draw.Add(new MenuBool("disableDraws", "DISABLE DRAWS", false));
            Config.Add(draw);

            #endregion

            #region LOAD CHAMPIONS

            switch (Player.CharacterName)
            {
            case "Caitlyn":
                new Champions.Caitlyn();
                break;

            case "Graves":
                new Champions.Graves();
                break;

            case "Jinx":
                new Champions.Jinx();
                break;
            }

            #endregion

            #region LOGO

            if (about.GetValue <MenuBool>("logo").Enabled)
            {
                Intro = new Render.Sprite(LoadImg("intro"), new Vector2(Drawing.Width / 2 - 500, Drawing.Height / 2 - 350));
                Intro.Add(0);
                Intro.OnDraw();

                DelayAction.Add(7000, () => Intro.Remove());
            }

            #endregion

            Config.Attach();

            Drawing.OnDraw     += Drawing_OnDraw;
            Game.OnUpdate      += Game_OnUpdate;
            Game.OnWndProc     += Game_OnWndProc;
            Orbwalker.OnAction += Orbwalker_OnAction;

            if (about.GetValue <MenuBool>("print").Enabled)
            {
                Chat.PrintChat("<font size='30'>OneKeyToWin</font> <font color='#b756c5'>by Sebby</font>");
                Chat.PrintChat("<font color='#b756c5'>OKTW NEWS: </font>" + OktwNews);
            }
        }
コード例 #25
0
        public Yasuo()
        {
            Q                = new LeagueSharp.SDK.Spell(SpellSlot.Q, 505).SetSkillshot(QDelay, 20, float.MaxValue, false, SkillshotType.SkillshotLine);
            Q2               = new LeagueSharp.SDK.Spell(Q.Slot, 1100).SetSkillshot(Q2Delay, 90, 1200, true, Q.Type);
            Q3               = new LeagueSharp.SDK.Spell(Q.Slot, 250).SetTargetted(0.005f, float.MaxValue);
            W                = new LeagueSharp.SDK.Spell(SpellSlot.W, 400);
            E                = new LeagueSharp.SDK.Spell(SpellSlot.E, 475).SetTargetted(0, 1050);
            E2               = new LeagueSharp.SDK.Spell(E.Slot).SetTargetted(E.Delay + Q3.Delay, E.Speed);
            R                = new LeagueSharp.SDK.Spell(SpellSlot.R, 1200);
            Q.DamageType     = Q2.DamageType = R.DamageType = DamageType.Physical;
            E.DamageType     = DamageType.Magical;
            Q.MinHitChance   = Q2.MinHitChance = HitChance.VeryHigh;
            E.CastCondition += () => !posDash.IsValid();

            if (YasuoPro.YasuoMenu.ComboM != null)
            {
                if (EntityManager.Heroes.Enemies.Any())
                {
                    Evade.Init();
                }
                Evade.Evading    += Evading;
                Evade.TryEvading += TryEvading;
                return;
            }

            comboMenu = config.AddSubMenu("Combo", "Combo");
            comboMenu.AddGroupLabel("Q: Always On");
            comboMenu.AddGroupLabel("E Gap Settings");
            comboMenu.Add("EGap", new CheckBox("Use E"));
            comboMenu.Add("EMode", new ComboBox("Follow Mode", 0, "Enemy", "Mouse"));
            comboMenu.Add("ETower", new CheckBox("Under Tower", false));
            comboMenu.Add("EStackQ", new CheckBox("Stack Q While Gap", false));
            comboMenu.AddGroupLabel("R Settings");
            comboMenu.Add("R", new KeyBind("Use R", false, KeyBind.BindTypes.PressToggle, 'X'));
            comboMenu.Add("RDelay", new CheckBox("Delay Cast"));
            comboMenu.Add("RHpU", new Slider("If Enemies Hp < (%)", 60));
            comboMenu.Add("RCountA", new Slider("Or Count >=", 2, 1, 5));

            hybridMenu = config.AddSubMenu("Hybrid", "Hybrid");
            hybridMenu.AddGroupLabel("Q: Always On");
            hybridMenu.Add("Q3", new CheckBox("Also Q3"));
            hybridMenu.Add("QLastHit", new CheckBox("Last Hit (Q1/2)"));
            hybridMenu.AddGroupLabel("Auto Q Settings");
            hybridMenu.Add("AutoQ", new KeyBind("KeyBind", false, KeyBind.BindTypes.PressToggle, 'T'));
            hybridMenu.Add("AutoQ3", new CheckBox("Also Q3", false));

            lcMenu = config.AddSubMenu("LaneClear", "Lane Clear");
            lcMenu.AddGroupLabel("Q Settings");
            lcMenu.Add("Q", new CheckBox("Use Q"));
            lcMenu.Add("Q3", new CheckBox("Also Q3", false));
            lcMenu.AddGroupLabel("E Settings");
            lcMenu.Add("E", new CheckBox("Use E"));
            lcMenu.Add("ELastHit", new CheckBox("Last Hit Only", false));
            lcMenu.Add("ETower", new CheckBox("Under Tower", false));

            lhMenu = config.AddSubMenu("LastHit", "Last Hit");
            lhMenu.AddGroupLabel("Q Settings");
            lhMenu.Add("Q", new CheckBox("Use Q"));
            lhMenu.Add("Q3", new CheckBox("Also Q3", false));
            lhMenu.AddGroupLabel("E Settings");
            lhMenu.Add("E", new CheckBox("Use E"));
            lhMenu.Add("ETower", new CheckBox("Under Tower", false));

            ksMenu = config.AddSubMenu("KillSteal", "Kill Steal");
            ksMenu.Add("Q", new CheckBox("Use Q"));
            ksMenu.Add("E", new CheckBox("Use E"));
            ksMenu.Add("R", new CheckBox("Use R"));
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(o => o.IsEnemy))
            {
                ksMenu.Add("RCast" + enemy.NetworkId, new CheckBox("Cast On " + enemy.ChampionName, false));
            }

            fleeMenu = config.AddSubMenu("Flee", "Flee");
            fleeMenu.Add("E", new KeyBind("Use E", false, KeyBind.BindTypes.HoldActive, 'C'));
            fleeMenu.Add("Q", new CheckBox("Stack Q While Dash"));

            if (EntityManager.Heroes.Enemies.Any())
            {
                Evade.Init();
            }

            drawMenu = config.AddSubMenu("Draw", "Draw");
            drawMenu.Add("Q", new CheckBox("Q Range", false));
            drawMenu.Add("E", new CheckBox("E Range", false));
            drawMenu.Add("R", new CheckBox("R Range", false));
            drawMenu.Add("UseR", new CheckBox("R In Combo Status"));
            drawMenu.Add("StackQ", new CheckBox("Auto Stack Q Status"));

            miscMenu = config.AddSubMenu("Misc", "Misc");
            miscMenu.Add("StackQ", new KeyBind("Auto Stack Q", false, KeyBind.BindTypes.PressToggle, 'Z'));

            Evade.Evading    += Evading;
            Evade.TryEvading += TryEvading;
            Game.OnUpdate    += OnUpdate;
            Drawing.OnDraw   += OnDraw;
            Game.OnUpdate    += args =>
            {
                if (Player.IsDead)
                {
                    if (isDash)
                    {
                        isDash  = false;
                        posDash = new Vector2();
                    }
                    return;
                }
                if (isDash && !Player.IsDashing())
                {
                    isDash = false;
                    DelayAction.Add(50, () => posDash = new Vector2());
                }
                Q.Delay  = GetQDelay(false);
                Q2.Delay = GetQDelay(true);
                E.Speed  = E2.Speed = 1045 + (Player.MoveSpeed - 345);
            };
            Orbwalker.OnPostAttack += (sender, args) =>
            {
                if (!Q.IsReady() || haveQ3 || (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) || Orbwalker.LastTarget is AIHeroClient || Orbwalker.LastTarget is Obj_AI_Minion)
                {
                    return;
                }
                if (Q.GetTarget(50) != null || Common.ListMinions().Count(i => i.IsValidTarget(Q.Range + 50)) > 0)
                {
                    return;
                }
                if ((Items.HasItem((int)ItemId.Sheen) && Items.CanUseItem((int)ItemId.Sheen)) || (Items.HasItem((int)ItemId.Trinity_Force) && Items.CanUseItem((int)ItemId.Trinity_Force)))
                {
                    Q.Cast(Game.CursorPos);
                }
            };
            Events.OnDash += (sender, args) =>
            {
                if (!args.Unit.IsMe)
                {
                    return;
                }
                isDash  = true;
                posDash = args.EndPos;
            };
            Obj_AI_Base.OnBuffGain += (sender, args) =>
            {
                if (!sender.IsMe)
                {
                    return;
                }
                switch (args.Buff.DisplayName)
                {
                case "YasuoQ3W":
                    haveQ3 = true;
                    break;

                case "YasuoDashScalar":
                    cDash = 1;
                    break;
                }
            };
            Obj_AI_Base.OnBuffUpdate += (sender, args) =>
            {
                if (!sender.IsMe || !args.Buff.Caster.IsMe || args.Buff.DisplayName != "YasuoDashScalar")
                {
                    return;
                }
                cDash = 2;
            };
            Obj_AI_Base.OnBuffLose += (sender, args) =>
            {
                if (!sender.IsMe)
                {
                    return;
                }
                switch (args.Buff.DisplayName)
                {
                case "YasuoQ3W":
                    haveQ3 = false;
                    break;

                case "YasuoDashScalar":
                    cDash = 0;
                    break;
                }
            };
            Obj_AI_Base.OnSpellCast += (sender, args) =>
            {
                if (!sender.IsMe || !args.SData.Name.StartsWith("YasuoQ") || args.SData.Name.EndsWith("Mis"))
                {
                    return;
                }
                if (args.SData.Name.EndsWith("W"))
                {
                    DelayAction.Add(50, Orbwalker.ResetAutoAttack);
                }
                EloBuddy.Player.IssueOrder(GameObjectOrder.AttackTo, Player.ServerPosition.LSExtend(args.End, -(Player.BoundingRadius * 2)));
            };
        }
コード例 #26
0
ファイル: FortunesEnd.cs プロジェクト: ihatevim/Ensage-2
 public override void Use(EvadableAbility ability, Unit target)
 {
     Ability.UseAbility(target);
     DelayAction.Add(250 + Game.Ping, () => { Hero.Stop(); });
     Sleep();
 }
コード例 #27
0
        private static void Combo(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }

            if (Orbwalker.ActiveMode != OrbwalkerMode.Combo && Orbwalker.ActiveMode != OrbwalkerMode.Harass)
            {
                return;
            }

            var target = FunnySlayerCommon.FSTargetSelector.GetFSTarget(1000);

            if (target == null)
            {
                return;
            }

            var OrbTarget = (AIBaseClient)Orbwalker.GetTarget();

            if (OrbTarget != null && !Player.IsDashing() && CheckR)
            {
                if (QEmpCast())
                {
                    return;
                }
            }

            if ((Player.HasBuff("RengarQ") || Player.HasBuff("RengarQEmp")) && (beforeaa || onaa))
            {
                if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                {
                    if (Player.UseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                    {
                        return;
                    }
                }
                if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra))
                {
                    if (Player.UseItem((int)ItemId.Ravenous_Hydra))
                    {
                        return;
                    }
                }
                if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat))
                {
                    if (Player.UseItem((int)ItemId.Tiamat))
                    {
                        return;
                    }
                }
                if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only))
                {
                    if (Player.UseItem((int)ItemId.Tiamat_Melee_Only))
                    {
                        return;
                    }
                }
                if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra))
                {
                    if (Player.UseItem((int)ItemId.Titanic_Hydra))
                    {
                        return;
                    }
                }

                return;
            }
            if (Q.Name == "RengarQEmp" && Player.Level < 3)
            {
                if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && target.IsValidTarget(300))
                {
                    if (Q.Cast())
                    {
                        Orbwalker.ResetAutoAttackTimer();
                        OnAttack(OrbTarget);
                        return;
                    }
                }
                else
                {
                    if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled)
                    {
                        if (target.DistanceToPlayer() > 300)
                        {
                            var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target);
                            if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition))
                            {
                                return;
                            }

                            var pred2 = E.GetPrediction(target);
                            if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition))
                            {
                                return;
                            }
                        }
                    }
                    else
                    {
                        if (W.IsReady() && MenuRengar.WSettings.UseWCombo.Enabled)
                        {
                        }
                    }
                }
            }

            if (Player.HasBuff("RengarR"))
            {
                if (Player.IsDashing() && CheckR)
                {
                    if (Q.Name == "RengarQEmp")
                    {
                        if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled)
                        {
                            DelayAction.Add((int)DashTimer, () =>
                            {
                                if (Q.Cast())
                                {
                                    Orbwalker.ResetAutoAttackTimer();
                                    OnAttack(OrbTarget);
                                    return;
                                }
                            });
                        }
                        if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled)
                        {
                            if (target.DistanceToPlayer() > 350)
                            {
                                var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target);
                                if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition))
                                {
                                    return;
                                }

                                var pred2 = E.GetPrediction(target);
                                if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition))
                                {
                                    return;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && OrbTarget != null)
                        {
                            DelayAction.Add((int)DashTimer, () =>
                            {
                                if (Q.Cast())
                                {
                                    Orbwalker.ResetAutoAttackTimer();
                                    OnAttack(OrbTarget);
                                    return;
                                }
                            });
                        }

                        if (W.IsReady() && MenuRengar.WSettings.UseWCombo.Enabled)
                        {
                            if (Player.Mana != 4 && GameObjects.EnemyHeroes.Any(i => i.DistanceToPlayer() <= 350) && W.Cast())
                            {
                                if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                                {
                                    if (Player.UseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra))
                                {
                                    if (Player.UseItem((int)ItemId.Ravenous_Hydra))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat))
                                {
                                    if (Player.UseItem((int)ItemId.Tiamat))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only))
                                {
                                    if (Player.UseItem((int)ItemId.Tiamat_Melee_Only))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra))
                                {
                                    if (Player.UseItem((int)ItemId.Titanic_Hydra))
                                    {
                                        return;
                                    }
                                }

                                return;
                            }
                        }

                        if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled)
                        {
                            var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target);
                            if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition))
                            {
                                return;
                            }

                            var pred2 = E.GetPrediction(target);
                            if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition))
                            {
                                return;
                            }
                        }
                    }
                }
            }
            else
            {
                if ((Player.HasBuff("RengarQ") || Player.HasBuff("RengarQEmp")) && (onaa || beforeaa))
                {
                    if (OrbTarget != null)
                    {
                        if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                        {
                            if (Player.UseItem((int)ItemId.Tiamat))
                            {
                                return;
                            }
                        }
                        if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra))
                        {
                            if (Player.UseItem((int)ItemId.Tiamat))
                            {
                                return;
                            }
                        }
                        if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat))
                        {
                            if (Player.UseItem((int)ItemId.Tiamat))
                            {
                                return;
                            }
                        }
                        if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only))
                        {
                            if (Player.UseItem((int)ItemId.Tiamat_Melee_Only))
                            {
                                return;
                            }
                        }
                        if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra))
                        {
                            if (Player.UseItem((int)ItemId.Tiamat_Melee_Only))
                            {
                                return;
                            }
                        }

                        return;
                    }
                }

                if (Player.IsDashing())
                {
                    if (Q.Name == "RengarQEmp")
                    {
                        if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && OrbTarget != null)
                        {
                            DelayAction.Add((int)DashTimer, () =>
                            {
                                if (Q.Cast())
                                {
                                    Orbwalker.ResetAutoAttackTimer();
                                    return;
                                }
                            });
                        }
                        if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled)
                        {
                            if (target.DistanceToPlayer() > 300)
                            {
                                var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target);
                                if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition))
                                {
                                    return;
                                }

                                var pred2 = E.GetPrediction(target);
                                if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition))
                                {
                                    return;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && OrbTarget != null)
                        {
                            DelayAction.Add((int)DashTimer, () =>
                            {
                                if (Q.Cast())
                                {
                                    Orbwalker.ResetAutoAttackTimer();
                                    return;
                                }
                            });
                        }

                        if (W.IsReady() && MenuRengar.WSettings.UseWCombo.Enabled)
                        {
                            if (Player.Mana != 4 && GameObjects.EnemyHeroes.Any(i => i.DistanceToPlayer() <= 450) && W.Cast())
                            {
                                if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                                {
                                    if (Player.UseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra))
                                {
                                    if (Player.UseItem((int)ItemId.Ravenous_Hydra))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat))
                                {
                                    if (Player.UseItem((int)ItemId.Tiamat))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only))
                                {
                                    if (Player.UseItem((int)ItemId.Tiamat_Melee_Only))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra))
                                {
                                    if (Player.UseItem((int)ItemId.Titanic_Hydra))
                                    {
                                        return;
                                    }
                                }

                                return;
                            }
                        }

                        if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled)
                        {
                            var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target);
                            if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition))
                            {
                                return;
                            }

                            var pred2 = E.GetPrediction(target);
                            if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition))
                            {
                                return;
                            }
                        }
                    }
                }
                else
                {
                    if (Q.Name == "RengarQEmp")
                    {
                        if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && GameObjects.EnemyHeroes.Any(i => i.IsValidTarget(300) && !i.IsDead))
                        {
                            if (!onaa && (Player.GetRealAutoAttackRange() < 300 || TargetSelector.GetTargets(200) != null))
                            {
                                if (Q.Cast())
                                {
                                    Orbwalker.ResetAutoAttackTimer();
                                }
                                return;
                            }
                        }
                        if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled)
                        {
                            if (target.DistanceToPlayer() > 350)
                            {
                                var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target);
                                if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition))
                                {
                                    return;
                                }

                                var pred2 = E.GetPrediction(target);
                                if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition))
                                {
                                    return;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && OrbTarget != null && MenuRengar.QSettings.QAfterAA.Enabled ? afteraa : (!beforeaa && !onaa))
                        {
                            if ((Player.GetRealAutoAttackRange() < 300 || TargetSelector.GetTargets(200) != null))
                            {
                                if (Q.Cast())
                                {
                                    Orbwalker.ResetAutoAttackTimer();
                                }
                                return;
                            }
                        }

                        if (W.IsReady() && MenuRengar.WSettings.UseWCombo.Enabled)
                        {
                            if (W.Name == "RengarW" && GameObjects.EnemyHeroes.Any(i => i.DistanceToPlayer() <= 400) && W.Cast())
                            {
                                if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                                {
                                    if (Player.UseItem((int)ItemId.Ravenous_Hydra_Melee_Only))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra))
                                {
                                    if (Player.UseItem((int)ItemId.Ravenous_Hydra))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat))
                                {
                                    if (Player.UseItem((int)ItemId.Tiamat))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only))
                                {
                                    if (Player.UseItem((int)ItemId.Tiamat_Melee_Only))
                                    {
                                        return;
                                    }
                                }
                                if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra))
                                {
                                    if (Player.UseItem((int)ItemId.Titanic_Hydra))
                                    {
                                        return;
                                    }
                                }

                                return;
                            }
                        }

                        if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled)
                        {
                            var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target);
                            if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition))
                            {
                                return;
                            }

                            var pred2 = E.GetPrediction(target);
                            if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition))
                            {
                                return;
                            }
                        }
                    }
                }
            }
        }
コード例 #28
0
        public static bool Cast(Ability ability, Unit target, string name)
        {
            if (AbilityMain.Me.ClassID == ClassID.CDOTA_Unit_Hero_Pudge && name == "pudge_dismember" &&
                Utils.SleepCheck("rotToggle") && AbilityMain.Me.Distance2D(target) < 400 &&
                Utils.ChainStun(target, Game.Ping, null, false))
            {
                var rot = AbilityMain.Me.Spellbook.Spell2;
                if (!rot.IsToggled)
                {
                    rot.ToggleAbility();
                    Utils.Sleep(500, "rotToggle");
                }
            }

            var straightTime = Disables.DisablesMenuDictionary[name].Item(name + "minstraighttime") != null
                                   ? (float)
                               Disables.DisablesMenuDictionary[name].Item(name + "minstraighttime")
                               .GetValue <Slider>()
                               .Value / 1000
                                   : 1;

            if (AbilityMain.Me.ClassID == ClassID.CDOTA_Unit_Hero_Invoker && !ability.CanBeCasted())
            {
                var invoked = ability.Invoke();
                if (!invoked)
                {
                    return(false);
                }

                DelayAction.Add(
                    Game.Ping * 2,
                    () =>
                {
                    ability.CastStun(
                        target,
                        MyHeroInfo.Position,
                        straightTime,
                        abilityName: name,
                        useSleep:
                        name != "ancient_apparition_cold_feet" && name != "rattletrap_battery_assault" &&
                        name != "pudge_meat_hook" && name != "pudge_dismember" && name != "pudge_rot",
                        soulRing: SoulRing.Check(ability) ? MyAbilities.SoulRing : null);
                });

                return(true);
            }

            var casted = ability.CastStun(
                target,
                MyHeroInfo.Position,
                straightTime,
                abilityName: name,
                useSleep:
                name != "ancient_apparition_cold_feet" && name != "rattletrap_battery_assault" &&
                name != "pudge_meat_hook" && name != "pudge_dismember" && name != "pudge_rot",
                soulRing: SoulRing.Check(ability) ? MyAbilities.SoulRing : null);

            if (!casted)
            {
                return(false);
            }

            DelayAction.Add(new DelayActionItem(300, () => { AbilityMain.LaunchSnowball(); }, CancellationToken.None));

            if (name == "spirit_breaker_charge_of_darkness")
            {
                Utils.Sleep(1500, "Ability.Move");
                Utils.Sleep(1500, "cancelorder");
                Utils.Sleep(1500, "GlobalCasting");
            }

            return(true);
        }
コード例 #29
0
        private static void Game_OnUpdate(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }
            var targets = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(3000) && !i.IsDead);


            if (targets != null)
            {
                foreach (var target in targets)
                {
                    if (target == null)
                    {
                        return;
                    }

                    if (menuclass.misc.usew.Enabled && W.IsReady(0))
                    {
                        if (target.Health <= W.GetDamage(target))
                        {
                            var wpred = W.GetPrediction(target, false, -1, EnsoulSharp.SDK.Prediction.CollisionObjects.Minions | EnsoulSharp.SDK.Prediction.CollisionObjects.YasuoWall);
                            if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High)
                            {
                                if (!oa && !ba)
                                {
                                    W.Cast(wpred.CastPosition);
                                }
                            }
                        }
                    }

                    if (Orbwalker.ActiveMode == OrbwalkerMode.Combo)
                    {
                        if (menuclass.combo.useq.Enabled && Q.IsReady(0) && target.IsValidTarget(Q.Range))
                        {
                            if (GetMinionInRange(Q.Range) <= menuclass.combo.useqminion.Value)
                            {
                                if (menuclass.combo.useqafteraa.Enabled)
                                {
                                    if (aa)
                                    {
                                        Q.Cast(target);
                                    }
                                }
                                else
                                {
                                    Q.Cast(target);
                                }
                            }
                        }
                        if (menuclass.combo.usew.Enabled && W.IsReady(0) && target.IsValidTarget(W.Range))
                        {
                            var wpred = W.GetPrediction(target, false, -1, EnsoulSharp.SDK.Prediction.CollisionObjects.Minions | EnsoulSharp.SDK.Prediction.CollisionObjects.YasuoWall);
                            if (menuclass.combo.usewout.Enabled)
                            {
                                if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High)
                                {
                                    if (!oa && !ba && target.DistanceToPlayer() > ObjectManager.Player.GetRealAutoAttackRange())
                                    {
                                        W.Cast(wpred.CastPosition);
                                    }
                                }
                            }
                            else
                            {
                                if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High)
                                {
                                    if (!oa && !ba)
                                    {
                                        W.Cast(wpred.CastPosition);
                                    }
                                }
                            }
                        }
                        if (menuclass.combo.usee.Enabled && E.IsReady(0))
                        {
                            if (!oa && !ba)
                            {
                                if (target.DistanceToPlayer() < menuclass.combo.edistance.Value)
                                {
                                    E.Cast(Game.CursorPos);
                                }
                            }
                        }
                        if (menuclass.combo.user.Enabled && R.IsReady(0))
                        {
                            if (target.HealthPercent <= menuclass.combo.rp.Value && target.DistanceToPlayer() > menuclass.combo.rr.Value)
                            {
                                if (Rpos() != Vector3.Zero)
                                {
                                    R.Cast(Rpos());
                                }
                            }
                            if (ObjectManager.Player.HealthPercent > 0 && ObjectManager.Player.HealthPercent < menuclass.combo.rp.Value)
                            {
                                if (Rpos() != Vector3.Zero)
                                {
                                    if (E.IsReady())
                                    {
                                        E.Cast();
                                        DelayAction.Add(200, () => { R.Cast(Rpos()); });
                                    }
                                    else
                                    {
                                        R.Cast(Rpos());
                                    }
                                }
                            }
                            if (GetHeroesInRange(1000) >= 3 && ObjectManager.Player.HealthPercent > 0 && ObjectManager.Player.HealthPercent < 75)
                            {
                                if (Rpos() != Vector3.Zero && menuclass.combo.usercombat)
                                {
                                    if (E.IsReady())
                                    {
                                        E.Cast();
                                        DelayAction.Add(200, () => { R.Cast(Rpos()); });
                                    }
                                    else
                                    {
                                        R.Cast(Rpos());
                                    }
                                }
                            }
                        }
                    }
                    if (Orbwalker.ActiveMode == OrbwalkerMode.Harass)
                    {
                        if (menuclass.harass.useq.Enabled && Q.IsReady(0) && target.IsValidTarget(Q.Range))
                        {
                            Q.Cast(target);
                        }
                        if (menuclass.harass.usew.Enabled && W.IsReady(0) && target.IsValidTarget(W.Range))
                        {
                            var wpred = W.GetPrediction(target, false, -1, EnsoulSharp.SDK.Prediction.CollisionObjects.Minions | EnsoulSharp.SDK.Prediction.CollisionObjects.YasuoWall);
                            if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High)
                            {
                                if (!oa && !ba)
                                {
                                    W.Cast(wpred.CastPosition);
                                }
                            }
                        }
                    }
                }
            }

            if (Orbwalker.ActiveMode == OrbwalkerMode.LaneClear)
            {
                if (GetMinionInRange(ObjectManager.Player.GetRealAutoAttackRange()) > 3)
                {
                    if (menuclass.farm.useq)
                    {
                        Q.Cast();
                    }
                    if (menuclass.farm.usee && !oa && !ba)
                    {
                        E.Cast(Game.CursorPos);
                    }
                }
                if (GetMinionInRange(ObjectManager.Player.GetRealAutoAttackRange() + 300) < 1 && GetMinionInRange(W.Range) >= 1)
                {
                    var thisminion = GameObjects.EnemyMinions.Where(i => !i.IsValidTarget(ObjectManager.Player.GetRealAutoAttackRange() + 300) && i.DistanceToPlayer() < W.Range && i.Health < W.GetDamage(i)).FirstOrDefault(i => i.DistanceToPlayer() < W.Range);
                    var wpred      = W.GetPrediction(thisminion, false, -1, EnsoulSharp.SDK.Prediction.CollisionObjects.Minions | EnsoulSharp.SDK.Prediction.CollisionObjects.YasuoWall);
                    if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High)
                    {
                        if (menuclass.farm.usew.Enabled)
                        {
                            W.Cast(wpred.CastPosition);
                        }
                    }
                }
            }
        }
コード例 #30
0
        private static void Combo()
        {
            if (Orbwalker.Implementation.IsWindingUp)
            {
                return;
            }
            var target = TargetSelector.GetTarget(SpellManager.E2.Range);

            if (target.IsValidTarget())
            {
                var nearestBarrel = BarrelManager.GetNearestBarrel();
                if (nearestBarrel != null)
                {
                    var chainedBarrels = BarrelManager.GetChainedBarrels(nearestBarrel);
                    if (chainedBarrels.Any(x => BarrelManager.BarrelWillHit(x, target)))
                    {
                        //If any of the chained barrels will hit, cast Q on best barrel.
                        var barrelToQ = BarrelManager.GetBestBarrelToQ(chainedBarrels);
                        if (barrelToQ != null)
                        {
                            if (SpellManager.Q.Ready)
                            {
                                var timeWhenCanE = LastECast + 500;
                                var delay        = timeWhenCanE - Game.TickCount;
                                delay = Ammo < 1 ? 0 : delay <= 0 ? 0 : delay;
                                var castDelay = MenuManager.Combo["triple"].Enabled ? delay : 0;
                                DelayAction.Queue(castDelay, () => SpellManager.Q.Cast(barrelToQ.Object));
                                return;
                            }
                            if (barrelToQ.Object.IsInAutoAttackRange() && Orbwalker.Implementation.CanAttack() && MenuManager.Combo["explodeQCooldown"].Enabled)
                            {
                                Orbwalker.Implementation.ForceTarget(barrelToQ.Object);
                                Orbwalker.Implementation.Attack(barrelToQ.Object);
                            }
                        }
                    }
                    else
                    {
                        //No chained barrels will hit, so let's chain them OR try and triple barrel.
                        if (chainedBarrels.Count >= 2 && MenuManager.Combo["triple"].Enabled)
                        {
                            //There are chained barrels, so let's see if any are in range to be triple comboed.
                            var barrelToComboFrom = chainedBarrels.FirstOrDefault(x => BarrelManager.GetEnemiesInChainRadius(x).Count >= 1);
                            if (barrelToComboFrom == null)
                            {
                                return;
                            }
                            var barrelToQ = BarrelManager.GetBestBarrelToQ(chainedBarrels);
                            if (barrelToQ != null)
                            {
                                if (SpellManager.Q.Ready)
                                {
                                    var timeWhenCanE = LastECast + 500;
                                    var delay        = timeWhenCanE - Game.TickCount;
                                    delay = delay <= 0 ? 0 : delay;
                                    var castDelay = MenuManager.Combo["triple"].Enabled ? delay : 0;
                                    DelayAction.Queue(castDelay, () => SpellManager.Q.Cast(barrelToQ.Object));
                                    return;
                                }
                                //if (barrelToQ.Object.IsInAutoAttackRange() && Orbwalker.Implementation.CanAttack() && MenuManager.Combo["explodeQCooldown"].Enabled)
                                //{
                                //    Orbwalker.Implementation.ForceTarget(barrelToQ.Object);
                                //    Orbwalker.Implementation.Attack(barrelToQ.Object);
                                //}
                            }
                        }
                        else
                        {
                            var bestChainPosition = BarrelManager.GetBestChainPosition(target, nearestBarrel);
                            if (bestChainPosition != Vector3.Zero && target.IsInRange(SpellManager.E.Range) && Player.Distance(bestChainPosition) <= SpellManager.E.Range && SpellManager.E.Ready && nearestBarrel.CanChain)
                            {
                                Render.Line(nearestBarrel.ServerPosition.ToScreenPosition(), bestChainPosition.ToScreenPosition(), 5, true, Color.Red);
                                if (SpellManager.E.Cast(bestChainPosition))
                                {
                                    if (SpellManager.Q.Ready && nearestBarrel.CanQ)
                                    {
                                        SpellManager.Q.Cast(nearestBarrel.Object);
                                    }
                                    else if (nearestBarrel.CanAA && nearestBarrel.Object.IsInAutoAttackRange() && Orbwalker.Implementation.CanAttack() && !Orbwalker.Implementation.IsWindingUp)
                                    {
                                        Orbwalker.Implementation.Attack(nearestBarrel.Object);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #31
0
        private static void Main()
        {
            //TestShit();
            Events.OnLoad += (sender, args) =>
            {
                MenuManager.Init();
                DelayAction.Add(500, () =>
                {
                    Members.MyHero   = ObjectManager.LocalHero;
                    Members.MyClass  = Members.MyHero.ClassId;
                    Members.MyPlayer = ObjectManager.LocalPlayer;
                    _openDota        = new OpenDota();
                    ShrineHelper.Init();
                    Members.AbilityDictionary   = new Dictionary <uint, List <Ability> >();
                    Members.ItemDictionary      = new Dictionary <uint, List <Item> >();
                    Members.StashItemDictionary = new Dictionary <uint, List <Item> >();
                    Members.NetWorthDictionary  = new Dictionary <string, long>();

                    Members.Heroes       = new List <Hero>();
                    Members.AllyHeroes   = new List <Hero>();
                    Members.EnemyHeroes  = new List <Hero>();
                    Members.Players      = new List <Player>();
                    Members.AllyPlayers  = new List <Player>();
                    Members.EnemyPlayers = new List <Player>();
                    Members.BaseList     = new List <Unit>();

                    Members.PAisHere   = null;
                    Members.BaraIsHere = false;
                    Members.Apparition = false;
                    Members.Mirana     = null;
                    Members.Windrunner = null;
                    Updater.HeroList.Flush();
                    Updater.BaseList.Flush();
                    Updater.PlayerList.Flush();
                    Game.OnUpdate += Updater.HeroList.Update;
                    Game.OnUpdate += Updater.PlayerList.Update;
                    Game.OnUpdate += Updater.BaseList.Update;
                    Game.OnUpdate += Devolp.ConsoleCommands;
                    RoshanAction.Flush();
                    AutoItems.Flush();
                    Game.OnUpdate += RoshanAction.Roshan;
                    Game.OnUpdate += Game_OnUpdate;
                    DelayAction.Add(500, () =>
                    {
                        Drawing.OnDraw += DrawHelper.Overlay;
                        Drawing.OnDraw += ItemPanel.Draw;
                        Drawing.OnDraw += NewItemPanel.OnDraw;
                        ShowMeMore.Flush();
                        Drawing.OnDraw += ShowMeMore.Draw;
                    });

                    Entity.OnParticleEffectAdded += ShowMeMore.Entity_OnParticleEffectAdded;


                    Unit.OnModifierAdded   += ShowMeMore.OnModifierAdded;
                    Unit.OnModifierRemoved += ShowMeMore.OnModifierRemoved;
                    Runes.Flush();
                    Drawing.OnDraw += Runes.Draw;


                    Drawing.OnPreReset  += DrawHelper.Render.Drawing_OnPreReset;
                    Drawing.OnPostReset += DrawHelper.Render.Drawing_OnPostReset;
                    Drawing.OnEndScene  += DrawHelper.Render.Drawing_OnEndScene;
                    Game.OnWndProc      += Game_OnWndProc;
                    AppDomain.CurrentDomain.DomainUnload += DrawHelper.Render.CurrentDomainDomainUnload;
                    Game.OnFireEvent             += RoshanAction.Game_OnGameEvent;
                    Entity.OnInt32PropertyChange += VisionHelper.OnChange;
                    Game.PrintMessage(
                        "<font face='Comic Sans MS, cursive'><font color='#00aaff'>" + Members.Menu.DisplayName +
                        " By Jumpering" +
                        " loaded!</font> <font color='#aa0000'>v" + Assembly.GetExecutingAssembly().GetName().Version);
                    Printer.PrintSuccess("> " + Members.Menu.DisplayName + " loaded v" +
                                         Assembly.GetExecutingAssembly().GetName().Version);

                    /*Entity.OnParticleEffectAdded += Entity_OnParticleEffectAdded;
                     * Drawing.OnDraw += Drawing_OnDraw;*/
                    DelayAction.Add(100, () =>
                    {
                        try
                        {
                            if (Members.Menu.Item("Dev.CreepsDisabler.enable").GetValue <bool>())
                            {
                                Game.ExecuteCommand("dota_creeps_no_spawning_enable");
                            }
                        }
                        catch (Exception)
                        {
                            Printer.Print("Members.Menu.AddToMainMenu();");
                        }
                    });
                });
            };
            Events.OnClose += (sender, args) =>
            {
                Game.OnUpdate -= Updater.HeroList.Update;
                //Game.OnUpdate += Updater.PlayerList.Update;
                Game.OnUpdate -= Updater.BaseList.Update;
                Game.OnUpdate -= Devolp.ConsoleCommands;
                Game.OnUpdate -= RoshanAction.Roshan;
                Game.OnUpdate -= Game_OnUpdate;
                Entity.OnInt32PropertyChange -= VisionHelper.OnChange;
                Drawing.OnDraw -= DrawHelper.Overlay;
                Drawing.OnDraw -= ItemPanel.Draw;
                Drawing.OnDraw -= ShowMeMore.Draw;
                Entity.OnParticleEffectAdded -= ShowMeMore.Entity_OnParticleEffectAdded;
                Unit.OnModifierAdded         -= ShowMeMore.OnModifierAdded;
                Unit.OnModifierRemoved       -= ShowMeMore.OnModifierRemoved;
                Drawing.OnDraw      -= Runes.Draw;
                Drawing.OnPreReset  -= DrawHelper.Render.Drawing_OnPreReset;
                Drawing.OnPostReset -= DrawHelper.Render.Drawing_OnPostReset;
                Drawing.OnEndScene  -= DrawHelper.Render.Drawing_OnEndScene;
                Game.OnWndProc      -= Game_OnWndProc;
                AppDomain.CurrentDomain.DomainUnload -= DrawHelper.Render.CurrentDomainDomainUnload;
                Game.OnFireEvent -= RoshanAction.Game_OnGameEvent;
                Members.TopPanelPostiion.Clear();
                Members.Heroes.Clear();
                Members.EnemyHeroes.Clear();
                Members.AllyHeroes.Clear();
                Printer.PrintInfo("> " + Members.Menu.DisplayName + " unloaded");
                VisionHelper.Flush();
            };
        }
コード例 #32
0
 private static void ObjAiBaseOnOnProcessSpellCast(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs e)
 {
     if (sender.IsMe && e.SpellSlot == SpellSlot.Q && e.Target.Name == "Barrel")
     {
         var barrel = (Barrel)e.Target;
         LastQCast = Game.TickCount;
         //Console.WriteLine($"[Cast] Distance from barrel: {Player.Distance(barrel.Object)}");
         //1 part
         if (barrel.Object.Distance(Player) >= 585 && barrel.Object.Distance(Player) <= 660 && BarrelManager.GetChainedBarrels(barrel).Count == 1) //1 part combo only works at max range.
         {
             var enemies   = BarrelManager.GetEnemiesInChainRadius(barrel);
             var bestEnemy = enemies.Where(x => x.IsValidTarget()).OrderBy(x => x.Distance(barrel.Object)).ThenBy(x => x.Health).FirstOrDefault();
             if (bestEnemy != null)
             {
                 var bestChainPosition = BarrelManager.GetBestChainPosition(bestEnemy, barrel);
                 if (bestChainPosition != Vector3.Zero && bestEnemy.IsInRange(SpellManager.E.Range) && Player.Distance(bestChainPosition) <= SpellManager.E.Range && SpellManager.E.Ready)
                 {
                     SpellManager.E.Cast(bestChainPosition);
                 }
             }
         }
         else if (MenuManager.Combo["triple"].Enabled)
         {
             //Triple barrel
             var chainedBarrels = BarrelManager.GetChainedBarrels(barrel);
             if (chainedBarrels.Count > 1)
             {
                 var barrelsCanChain = chainedBarrels.Where(x => BarrelManager.GetEnemiesInChainRadius(x).Count > 0 && x.NetworkId != barrel.NetworkId).ToList();
                 if (barrelsCanChain.Count == 0)
                 {
                     barrelsCanChain = chainedBarrels.Where(x => BarrelManager.GetEnemiesInChainRadius(x, false).Count > 0 && x.NetworkId != barrel.NetworkId).ToList();
                 }
                 var bestBarrel = barrelsCanChain.OrderByDescending(x => x.Created).ThenBy(x => x.Object.Distance(Player)).FirstOrDefault();
                 if (bestBarrel == null)
                 {
                     return;
                 }
                 var enemiesCanChainTo = BarrelManager.GetEnemiesInChainRadius(bestBarrel);
                 if (enemiesCanChainTo.Count == 0)
                 {
                     enemiesCanChainTo = BarrelManager.GetEnemiesInChainRadius(bestBarrel, false);
                 }
                 if (enemiesCanChainTo.Count > 0)
                 {
                     var bestEnemy = enemiesCanChainTo.OrderBy(x => x.Health).ThenBy(x => x.Distance(Player)).FirstOrDefault();
                     if (bestEnemy != null)
                     {
                         var bestChainPosition = BarrelManager.GetBestChainPosition(bestEnemy, bestBarrel);
                         if (bestChainPosition != Vector3.Zero && bestChainPosition.Distance(bestEnemy) <= SpellManager.ExplosionRadius && bestChainPosition.Distance(bestBarrel.Object) > SpellManager.ExplosionRadius && bestEnemy.IsInRange(SpellManager.E.Range) && Player.Distance(bestChainPosition) <= SpellManager.E.Range)
                         {
                             DelayAction.Queue(250, () =>
                             {
                                 if (SpellManager.E.Ready)
                                 {
                                     SpellManager.E.Cast(bestChainPosition);
                                 }
                             });
                         }
                     }
                 }
             }
         }
     }
     else if (sender.IsMe && e.SpellSlot == SpellSlot.E)
     {
         var casted = Game.TickCount;
         BarrelManager.CastedBarrels.Add(casted);
         LastECast = casted;
     }
 }
コード例 #33
0
        /// <summary>
        ///     Called while processing Spellcasting operations.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="Obj_AI_BaseMissileClientDataEventArgs" /> instance containing the event data.</param>
        public void Shield(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs args)
        {
            if (sender == null || !sender.IsEnemy)
            {
                return;
            }

            switch (sender.Type)
            {
            case GameObjectType.obj_AI_Hero:
                if (Invulnerable.Check(ObjectManager.GetLocalPlayer(), DamageType.Magical, false))
                {
                    return;
                }

                var hero = sender as Obj_AI_Hero;
                if (hero != null)
                {
                    /// <summary>
                    ///     Block Gangplank's Barrels.
                    /// </summary>
                    if (hero.ChampionName.Equals("Gangplank"))
                    {
                        if (!(args.Target is Obj_AI_Minion))
                        {
                            return;
                        }

                        if (Bools.IsAutoAttack(args.SpellData.Name) || args.SpellData.Name.Equals("GangplankQProceed"))
                        {
                            var target = (Obj_AI_Minion)args.Target;
                            if ((int)target.GetRealHealth() == 1 &&
                                target.Distance(UtilityClass.Player) < 450 &&
                                target.UnitSkinName.Equals("gangplankbarrel"))
                            {
                                SpellClass.E.Cast();
                                return;
                            }
                        }
                    }

                    var spellMenu = MenuClass.Spells["e"]["whitelist"][$"{hero.ChampionName.ToLower()}.{args.SpellData.Name.ToLower()}"];
                    if (args.Target != null &&
                        args.Target.IsMe)
                    {
                        /// <summary>
                        ///     Check for Special On-Hit CC AutoAttacks.
                        /// </summary>
                        if (Bools.IsAutoAttack(args.SpellData.Name))
                        {
                            switch (args.SpellData.Name)
                            {
                            case "UdyrBearAttack":
                            case "GoldCardPreAttack":
                            case "RedCardPreAttack":
                            case "BlueCardPreAttack":
                            case "NautilusRavageStrikeAttack":
                                if (spellMenu != null &&
                                    spellMenu.As <MenuBool>().Value&&
                                    (!hero.ChampionName.Equals("Udyr") || !UtilityClass.Player.HasBuff("udyrbearstuncheck")))
                                {
                                    SpellClass.E.Cast();
                                }
                                break;
                            }

                            /// <summary>
                            ///     Check for Melee AutoAttack Resets.
                            /// </summary>
                            var getReset  = hero.ValidActiveBuffs().FirstOrDefault(b => ImplementationClass.IOrbwalker.IsReset(b.Name));
                            var resetMenu = getReset != null
                                                    ? MenuClass.Spells["e"]["whitelist"][$"{hero.ChampionName.ToLower()}.{getReset.Name.ToLower()}"]
                                                    : null;
                            if (resetMenu != null &&
                                resetMenu.As <MenuBool>().Value)
                            {
                                SpellClass.E.Cast();
                                return;
                            }

                            /// <summary>
                            ///     Check for Braum Passive.
                            /// </summary>
                            var braumMenu = MenuClass.Spells["e"]["whitelist"]["braum.passive"];
                            if (braumMenu != null &&
                                braumMenu.As <MenuBool>().Value&&
                                UtilityClass.Player.GetBuffCount("BraumMark") == 3)
                            {
                                SpellClass.E.Cast();
                                return;
                            }
                        }
                    }

                    /// <summary>
                    ///     Shield all the Targetted Spells.
                    /// </summary>
                    var getSpellName = SpellDatabase.GetByName(args.SpellData.Name);
                    if (spellMenu != null &&
                        getSpellName != null &&
                        spellMenu.As <MenuBool>().Value)
                    {
                        switch (getSpellName.SpellType)
                        {
                        /// <summary>
                        ///     Check for Targetted Spells.
                        /// </summary>
                        case SpellType.Targeted:
                        case SpellType.TargetedMissile:
                            if (args.Target != null && args.Target.IsMe)
                            {
                                var delay = MenuClass.Spells["e"]["logical"].As <MenuSliderBool>().Value;
                                switch (hero.ChampionName)
                                {
                                case "Caitlyn":
                                    delay = 1050;
                                    break;

                                case "Nocturne":
                                    delay = 350;
                                    break;

                                case "Zed":
                                    delay = 200;
                                    break;

                                case "Nautilus":
                                    delay = (int)UtilityClass.Player.Distance(hero);
                                    break;
                                }

                                DelayAction.Queue(delay, () =>
                                {
                                    SpellClass.E.Cast();
                                });
                            }
                            break;

                        /// <summary>
                        ///     Check for AoE Spells.
                        /// </summary>
                        case SpellType.SkillshotCircle:
                            switch (hero.ChampionName)
                            {
                            case "Alistar":
                                if (hero.Distance(UtilityClass.Player) <= 300 + UtilityClass.Player.BoundingRadius)
                                {
                                    SpellClass.E.Cast();
                                }
                                break;
                            }
                            break;
                        }
                    }
                }
                break;

            case GameObjectType.obj_AI_Minion:
                /// <summary>
                ///     Block Dragon/Baron/RiftHerald's AutoAttacks.
                /// </summary>
                if (args.Target != null &&
                    args.Target.IsMe &&
                    sender.UnitSkinName.Contains("SRU_Dragon") &&
                    MenuClass.Spells["e"]["whitelist"]["minions"].As <MenuBool>().Value)
                {
                    SpellClass.E.Cast();
                }
                break;
            }
        }
コード例 #34
0
        private static void Combo()
        {
            var obj = new List <AIBaseClient>();

            obj.AddRange(ObjectManager.Get <AIMinionClient>().Where(i => i.IsValidTarget(Q.Range) && !i.IsAlly));
            obj.AddRange(ObjectManager.Get <AIHeroClient>().Where(i => i.IsValidTarget(Q.Range) && !i.IsAlly));
            obj.AddRange(ObjectManager.Get <AIBaseClient>().Where(i => i.IsValidTarget(Q.Range) && !i.IsAlly));
            var targets = TargetSelector.GetTargets(2000);

            if (targets != null)
            {
                foreach (var target in GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(2000)))
                {
                    if (MenuSettings.Combo.useQ.Enabled && Q.IsReady())
                    {
                        AIBaseClient gapobj = GetGapObj(target);
                        if (target.HasBuff("ireliamark") || target.Health < GetQDmg(target))
                        {
                            foreach (AIBaseClient aIBaseClient in obj.Where(i => i.HasBuff("ireliamark") || i.Health <= Q.GetDamage(i)))
                            {
                                if (MenuSettings.Combo.Qmd.Value >= objPlayer.HealthPercent && aIBaseClient.NetworkId != target.NetworkId)
                                {
                                    if (objPlayer.HasBuff("ireliapassivestacksmax"))
                                    {
                                        if (MenuSettings.Combo.Qmaxstacks.Enabled)
                                        {
                                            if (Extensions.Distance(target.Position, aIBaseClient.Position) < 600 && aIBaseClient.Health < GetQDmg(aIBaseClient))
                                            {
                                                if (objPlayer.ManaPercent >= 15)
                                                {
                                                    if (aIBaseClient.DistanceToPlayer() < Q.Range)
                                                    {
                                                        Q.Cast(aIBaseClient);
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            if (target.DistanceToPlayer() < Q.Range)
                                            {
                                                Q.Cast(target);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (Extensions.Distance(target.Position, aIBaseClient.Position) < 600)
                                        {
                                            if (objPlayer.ManaPercent >= 15 && aIBaseClient.Health < Q.GetDamage(aIBaseClient))
                                            {
                                                if (aIBaseClient.DistanceToPlayer() < Q.Range)
                                                {
                                                    Q.Cast(aIBaseClient);
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    if (target.DistanceToPlayer() < Q.Range)
                                    {
                                        Q.Cast(target);
                                    }
                                }
                            }
                        }
                        else
                        {
                            QgapObj(target);

                            /*if(gapobj != null && (gapobj.HasBuff("ireliamark") || gapobj.Health <= GetQDmg(gapobj)) && Q.CanCast(gapobj))
                             * {
                             *  if(target.DistanceToPlayer() <= objPlayer.GetRealAutoAttackRange() + 200 && objPlayer.ManaPercent > 20)
                             *  {
                             *      foreach (AIBaseClient aIBaseClient in obj.Where(i => i.HasBuff("ireliamark") || i.Health <= GetQDmg(i)))
                             *      {
                             *          if(Extensions.Distance(gapobj.Position, aIBaseClient.Position) < 600 && aIBaseClient.Health < GetQDmg(aIBaseClient))
                             *          {
                             *              Q.Cast(aIBaseClient);
                             *          }
                             *      }
                             *  }
                             *  else
                             *  {
                             *      if(gapobj.Health < GetQDmg(gapobj))
                             *      Q.Cast(gapobj);
                             *  }
                             * }*/
                        }
                    }
                    if (MenuSettings.Combo.useW.Enabled)
                    {
                        if (W.IsCharging)
                        {
                            DelayAction.Add(300 - Game.Ping, () =>
                            {
                                if (!target.IsValidTarget(800))
                                {
                                    if (GetGapObj(target) != null)
                                    {
                                        W.ShootChargedSpell(GetGapObj(target).Position);
                                    }
                                }
                            });
                        }
                        if (GetGapObj(target) != null)
                        {
                            if (GetGapObj(target).NetworkId != target.NetworkId)
                            {
                                if (GetGapObj(target).Health <= Q.GetDamage(GetGapObj(target)) + W.GetDamage(GetGapObj(target)) && GetGapObj(target).Health >= GetQDmg(GetGapObj(target)) && Extensions.Distance(target.Position, GetGapObj(target).Position) < 500)
                                {
                                    if (objPlayer.ManaPercent > 20)
                                    {
                                        W.StartCharging();
                                        DelayAction.Add(300 - Game.Ping, () =>
                                        {
                                            W.ShootChargedSpell(GetGapObj(target).Position);
                                        });
                                    }
                                }
                            }
                            else
                            {
                                if (objPlayer.ManaPercent > 20)
                                {
                                    W.StartCharging();
                                    DelayAction.Add(300 - Game.Ping, () =>
                                    {
                                        W.ShootChargedSpell(GetGapObj(target).Position);
                                    });
                                }
                            }
                        }
                    }
                    if (MenuSettings.Combo.useE.Enabled && E.IsReady() && !target.HasBuff("ireliamark"))
                    {
                        if (MenuSettings.Combo.useQ.Enabled && Q.IsReady())
                        {
                            if (objPlayer.HasBuff("IreliaE"))
                            {
                                var PosCanE = ECatPos.Extend(target.Position, 300);
                                foreach (AIBaseClient aIBaseClient in obj.Where(i => i.HasBuff("ireliamark") || i.Health <= Q.GetDamage(i)))
                                {
                                    if (aIBaseClient.Position.Distance(PosCanE) < 700 && aIBaseClient.Position.Distance(target) < 500)
                                    {
                                        if (objPlayer.ManaPercent > 20 && aIBaseClient.Health < GetQDmg(aIBaseClient))
                                        {
                                            if (aIBaseClient.DistanceToPlayer() < Q.Range)
                                            {
                                                Q.Cast(aIBaseClient);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        //EcomboCastPostion(target);
                        if (Variables.GameTimeTickCount - (rtime + 500) > 0)
                        {
                            NewEPred();
                        }
                    }
                    if (MenuSettings.Combo.useR.Enabled && R.IsReady() && !target.HasBuff("ireliamark"))
                    {
                        var Rpred = R.GetPrediction(target, false, -1, CollisionObjects.YasuoWall);
                        if (Variables.GameTimeTickCount - (etime + 500) > 0)
                        {
                            CastRx();
                        }
                        if (objPlayer.Position.CountEnemyHeroesInRange(800) < 2 && target.Distance(objPlayer) < 600)
                        {
                            if (target.Health <= GetQDmg(target) * 3 + (W.IsReady() ? W.GetDamage(target) : 0) + (E.IsReady() ? E.GetDamage(target) : 0) + R.GetDamage(target) + 100)
                            {
                                if (Rpred.Hitchance == HitChance.VeryHigh && Rpred.CastPosition.DistanceToPlayer() < R.Range - 200)
                                {
                                    if (Variables.GameTimeTickCount - (etime + 500) > 0)
                                    {
                                        R.Cast(Rpred.CastPosition);
                                    }
                                }
                            }
                        }
                        if (target.HealthPercent <= MenuSettings.Combo.y.Value)
                        {
                            if (Rpred.Hitchance == HitChance.VeryHigh && Rpred.CastPosition.DistanceToPlayer() < R.Range - 75)
                            {
                                if (Q.IsReady())
                                {
                                    if (target.Health > GetQDmg(target))
                                    {
                                        if (Variables.GameTimeTickCount - (etime + 500) > 0)
                                        {
                                            R.Cast(Rpred.CastPosition);
                                        }
                                    }
                                }
                                else
                                {
                                    if (Variables.GameTimeTickCount - (etime + 500) > 0)
                                    {
                                        R.Cast(Rpred.CastPosition);
                                    }
                                }
                            }
                        }
                        if (Variables.GameTimeTickCount - (etime + 500) > 0)
                        {
                            R.CastIfWillHit(target, MenuSettings.Combo.x);
                        }
                    }
                }
            }
        }