コード例 #1
0
ファイル: KogMaw.cs プロジェクト: werdbrian/LS
        static void Harass()
        {
            if (!(AIO_Func.getManaPercent(Player) > AIO_Menu.Champion.Harass.IfMana))
            {
                return;
            }

            if (AIO_Menu.Champion.Harass.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
                if (Qtarget.Distance(Player.ServerPosition) > Orbwalking.GetRealAutoAttackRange(Player))
                {
                    AIO_Func.LCast(Q, Qtarget, QD, 0);
                }
            }

            if (AIO_Menu.Champion.Harass.UseE && E.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
                AIO_Func.LCast(E, Etarget, ED);
            }

            if (AIO_Menu.Champion.Harass.UseR && R.IsReady() && UltST < UST)
            {
                var Rtarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                AIO_Func.CCast(R, Rtarget);
            }
        }
コード例 #2
0
ファイル: Veigar.cs プロジェクト: fgpmaia123/TeamProjects
        static void Harass()
        {
            if (!(Player.ManaPercent > AIO_Menu.Champion.Harass.IfMana))
            {
                return;
            }
            var TTTget = TargetSelector.GetTarget(E.Range + Player.MoveSpeed * E.Delay, TargetSelector.DamageType.Magical);

            if (TTTget == null)
            {
                return;
            }

            if (AIO_Menu.Champion.Harass.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
                AIO_Func.LCast(Q, Qtarget, QD, 1f);
            }

            if (AIO_Menu.Champion.Harass.UseE && E.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range + Player.MoveSpeed * E.Delay, TargetSelector.DamageType.Magical);
                castE(Etarget);
            }

            if (AIO_Menu.Champion.Harass.UseW && W.IsReady())
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, W.DamageType);
                var pred    = W.GetPrediction(Wtarget);
                if (pred.Hitchance == HitChance.Immobile || Wtarget.Buffs.Where(b => b.IsActive && Game.Time < b.EndTime && (b.Type == BuffType.Charm || b.Type == BuffType.Knockback || b.Type == BuffType.Stun || b.Type == BuffType.Suppression || b.Type == BuffType.Snare)).Aggregate(0f, (current, buff) => Math.Max(current, buff.EndTime)) - Game.Time >= W.Delay - 0.3f && W.IsReady())
                {
                    W.Cast(Wtarget, false, true);
                }
            }
        }
コード例 #3
0
ファイル: Yasuo.cs プロジェクト: fgpmaia123/TeamProjects
        static void Harass()
        {
            if (AIO_Menu.Champion.Harass.UseQ && Q.IsReady())
            {
                if (!Player.HasBuff2("yasuoq3w"))
                {
                    var qTarget = TargetSelector.GetTarget(Q.Range, Q.DamageType, true);
                    if (qTarget.Distance(Player.Position) >= Orbwalking.GetRealAutoAttackRange(Player) + 50)
                    {
                        AIO_Func.LCast(Q, qTarget, QD);
                    }
                }
                else
                {
                    var qTarget = TargetSelector.GetTarget(QQ.Range, Q.DamageType, true);
                    AIO_Func.LCast(QQ, qTarget, QD);
                }
            }

            if (AIO_Menu.Champion.Harass.UseE && E.IsReady())
            {
                var Buff    = AIO_Func.getBuffInstance(Player, "yasuodashscalar");
                var ETarget = TargetSelector.GetTarget(E.Range, E.DamageType, true);
                if (!ETarget.HasBuff2("YasuoDashWrapper") && (float)Buff.Count > 1)
                {
                    E.Cast(ETarget);
                }
            }
        }
コード例 #4
0
        static void Harass()
        {
            if (!(Player.ManaPercent > AIO_Menu.Champion.Harass.IfMana))
            {
                return;
            }

            if (AIO_Menu.Champion.Harass.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, Q.DamageType);
                AIO_Func.LCast(Q, Qtarget, QD, float.MaxValue);
            }

            if (AIO_Menu.Champion.Harass.UseW && W.IsReady())
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, W.DamageType);
                AIO_Func.CCast(W, Wtarget);
            }

            if (AIO_Menu.Champion.Harass.UseE && E.IsReady() && Q.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range, E.DamageType);
                AIO_Func.LCast(E, Etarget, QD, 0);
            }
        }
コード例 #5
0
ファイル: Syndra.cs プロジェクト: werdbrian/LS
        static void Combo()
        {
            if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, Q.DamageType);
                AIO_Func.CCast(Q, Qtarget);
            }

            if (AIO_Menu.Champion.Combo.UseE && E.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
                AIO_Func.LCast(E, Etarget, Menu.Item("Misc.Etg").GetValue <Slider>().Value, float.MaxValue);
            }

            if (AIO_Menu.Champion.Combo.UseW && W.IsReady())
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);
                AIO_Func.CCast(W, Wtarget);
            }

            if (AIO_Menu.Champion.Combo.UseR && R.IsReady())
            {
                var Rtarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                if (AIO_Func.isKillable(Rtarget, R))
                {
                    R.Cast(Rtarget);
                }
            }
        }
コード例 #6
0
ファイル: Syndra.cs プロジェクト: werdbrian/LS
        static void Harass()
        {
            if (!(AIO_Func.getManaPercent(Player) > AIO_Menu.Champion.Harass.IfMana))
            {
                return;
            }

            if (AIO_Menu.Champion.Harass.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
                AIO_Func.CCast(Q, Qtarget);
            }

            if (AIO_Menu.Champion.Harass.UseW && W.IsReady())
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);
                AIO_Func.CCast(W, Wtarget);
            }

            if (AIO_Menu.Champion.Harass.UseE && E.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
                AIO_Func.LCast(E, Etarget, Menu.Item("Misc.Etg").GetValue <Slider>().Value, float.MaxValue);
            }
        }
コード例 #7
0
ファイル: Zyra.cs プロジェクト: werdbrian/LS
        static void Combo()
        {
            if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, Q.DamageType);
                AIO_Func.CCast(Q, Qtarget);
            }

            if (AIO_Menu.Champion.Combo.UseE && E.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
                AIO_Func.LCast(E, Etarget, ED, float.MaxValue);
            }

            if (AIO_Menu.Champion.Combo.UseW && W.IsReady() && (Q.IsReady() || E.IsReady()))
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical);
                AIO_Func.CCast(W, Wtarget);
            }

            if (AIO_Menu.Champion.Combo.UseR && R.IsReady())
            {
                var Rtarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                var rt      = Menu.Item("Combo.Rt").GetValue <Slider>().Value;
                if (AIO_Func.getHealthPercent(Player) < 50 && AIO_Func.isKillable(Rtarget, getComboDamage(Rtarget) * 2 / 3) || AIO_Func.ECTarget(Rtarget, R.Width, 0, 100) >= rt)
                {
                    AIO_Func.CCast(R, Rtarget);
                }
            }
        }
コード例 #8
0
ファイル: Zyra.cs プロジェクト: fgpmaia123/TeamProjects
        static void Combo()
        {
            if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady())
            {
                AIO_Func.CCast(Q, Q.GetTarget());
            }

            if (AIO_Menu.Champion.Combo.UseE && E.IsReady())
            {
                AIO_Func.LCast(E, E.GetTarget(), ED, float.MaxValue);
            }

            if (AIO_Menu.Champion.Combo.UseW && W.IsReady() && (Q.IsReady() || E.IsReady()))
            {
                AIO_Func.CCast(W, E.GetTarget());
            }

            if (AIO_Menu.Champion.Combo.UseR && R.IsReady())
            {
                var Rtarget = R.GetTarget();

                if (Player.HealthPercent < 50 && AIO_Func.isKillable(Rtarget, getComboDamage(Rtarget) * 2 / 3) || AIO_Func.ECTarget(Rtarget, R.Width, 0, 100) >= AIO_Menu.Champion.Combo.getSliderValue("R Min Targets").Value)
                {
                    AIO_Func.CCast(R, Rtarget);
                }
            }
        }
コード例 #9
0
        static void Harass()
        {
            if (!(Player.ManaPercent > AIO_Menu.Champion.Harass.IfMana))
            {
                return;
            }

            if (AIO_Menu.Champion.Harass.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
                if (Qtarget != null)
                {
                    AIO_Func.LCast(Q, Qtarget, QD, 0);
                }
            }

            if (AIO_Menu.Champion.Harass.UseE && E.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range + Player.MoveSpeed * E.Delay, TargetSelector.DamageType.Magical);
                if (Etarget != null)
                {
                    E.Cast(Etarget);
                }
            }

            if (AIO_Menu.Champion.Harass.UseW && W.IsReady())
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, W.DamageType);
                if (Wtarget != null)
                {
                    AIO_Func.CCast(W, Wtarget);
                }
            }
        }
コード例 #10
0
        static void Jungleclear()
        {
            if (!(Player.ManaPercent > AIO_Menu.Champion.Jungleclear.IfMana))
            {
                return;
            }

            var Mobs = MinionManager.GetMinions(1000, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

            if (Mobs.Count <= 0)
            {
                return;
            }

            if (AIO_Menu.Champion.Jungleclear.UseQ && Q.IsReady())
            {
                var Farmloc = Q.GetLineFarmLocation(Mobs);
                if (Farmloc.MinionsHit >= 2)
                {
                    Q.Cast(Farmloc.Position);
                }
            }

            if (AIO_Menu.Champion.Jungleclear.UseE && E.IsReady())
            {
                if (Mobs.Any(x => x.IsValidTarget(E.Range)))
                {
                    AIO_Func.LCast(E, Mobs[0], 50, 0);
                }
            }
        }
コード例 #11
0
ファイル: Zyra.cs プロジェクト: werdbrian/LS
 static void CastP()
 {
     if (P.IsReady())
     {
         var Ptarget = TargetSelector.GetTarget(P.Range, TargetSelector.DamageType.True);
         AIO_Func.LCast(P, Ptarget, 200f, float.MaxValue);
     }
 }
コード例 #12
0
        static void ManualR()
        {
            var RTarget = TargetSelector.GetTarget(R.Range, R.DamageType, true);

            if (RM && RTarget != null && R.IsReady())
            {
                AIO_Func.LCast(R, RTarget);
            }
        }
コード例 #13
0
ファイル: Syndra.cs プロジェクト: werdbrian/LS
 static void KillstealE()
 {
     foreach (var target in HeroManager.Enemies.OrderByDescending(x => x.Health))
     {
         if (E.CanCast(target) && AIO_Func.isKillable(target, E))
         {
             AIO_Func.LCast(E, target, Menu.Item("Misc.Etg").GetValue <Slider>().Value, float.MaxValue);
         }
     }
 }
コード例 #14
0
 static void KillstealW()
 {
     foreach (var target in HeroManager.Enemies.OrderByDescending(x => x.Health))
     {
         if (W.CanCast(target) && AIO_Func.isKillable(target, W))
         {
             AIO_Func.LCast(W, target, 0f, 0f);
         }
     }
 }
コード例 #15
0
 static void KillstealQ()
 {
     foreach (var target in HeroManager.Enemies.OrderByDescending(x => x.Health))
     {
         if (Q.CanCast(target) && AIO_Func.isKillable(target, Q))
         {
             AIO_Func.LCast(Q, target, QD, 0);
         }
     }
 }
コード例 #16
0
 static void KillstealQ()
 {
     foreach (var target in HeroManager.Enemies.OrderByDescending(x => x.Health))
     {
         if (Q.CanCast(target) && AIO_Func.isKillable(target, Q))
         {
             AIO_Func.LCast(Q, target, Menu.Item("Misc.Qtg").GetValue <Slider>().Value, 0);
         }
     }
 }
コード例 #17
0
 static void KillstealE()
 {
     foreach (var target in HeroManager.Enemies.OrderByDescending(x => x.Health))
     {
         if (E.CanCast(target) && AIO_Func.isKillable(target, E))
         {
             AIO_Func.LCast(E, target, ED, float.MaxValue);
         }
     }
 }
コード例 #18
0
ファイル: Sejuani.cs プロジェクト: fgpmaia123/TeamProjects
        static void Game_OnUpdate(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }

            if (Orbwalking.CanMove(35))
            {
                AIO_Func.FleeToPosition(Q);
                AIO_Func.SC(Q, QD);
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
                {
                    foreach (var target in HeroManager.Enemies.Where(x => x.HasBuff2("sejuanifrost")))
                    {
                        if (target.Distance(Player.ServerPosition) <= E.Range && E.IsReady() && target != null)
                        {
                            AIO_Func.SC(E);
                        }
                    }
                }
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
                {
                    var EMinion = MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth).Where(x => x.HasBuff2("sejuanifrost"));
                    foreach (var target in EMinion)
                    {
                        if (target.Distance(Player.ServerPosition) <= E.Range && E.IsReady() && target != null && EMinion.Count() > 3)
                        {
                            AIO_Func.SC(E);
                        }
                    }
                }
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && AIO_Menu.Champion.Combo.UseR)
                {
                    foreach (var target in HeroManager.Enemies.Where(x => AIO_Func.ECTarget(x, 600f) >= RM && x.Distance(Player.ServerPosition) > 300f).OrderByDescending(x => x.Health))
                    {
                        if (R.CanCast(target) && AIO_Func.isKillable(target, R) && target != null)
                        {
                            AIO_Func.LCast(R, target, QD);
                        }
                    }
                }
            }

            #region Killsteal
            if (AIO_Menu.Champion.Misc.getBoolValue("KillstealQ"))
            {
                KillstealQ();
            }
            if (AIO_Menu.Champion.Misc.getBoolValue("KillstealR"))
            {
                KillstealR();
            }
            #endregion
        }
コード例 #19
0
        static void Interrupter2_OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args)
        {
            if (!AIO_Menu.Champion.Misc.UseInterrupter || Player.IsDead)
            {
                return;
            }

            if (Q.CanCast(sender))
            {
                AIO_Func.LCast(Q, sender, 0f, 0f);
            }
        }
コード例 #20
0
ファイル: Jinx.cs プロジェクト: fgpmaia123/TeamProjects
        static void Combo()
        {
            if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady())
            {
                QSwitchForUnit(TargetSelector.GetTarget(GetQActiveRange + 30, Q.DamageType));
            }

            if (AIO_Menu.Champion.Combo.UseW && W.IsReady())
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, W.DamageType);

                if (Wtarget != null && !Wtarget.IsValidTarget(200f))
                {
                    W.Cast(Wtarget);
                }
            }

            if (AIO_Menu.Champion.Combo.UseE && E.IsReady())
            {
                var Etarget = E_GetBestTarget();

                if (Etarget != null)
                {
                    E.Cast(Etarget, false, true);
                }
            }

            if (AIO_Menu.Champion.Combo.UseR && R.IsReady() && WLastCastedTime + 0.5 < Game.ClockTime)
            {
                if (Player.HealthPercent > 20)
                {
                    foreach (var RT in HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) && !x.IsValidTarget(DefaultRange) && !Player.HasBuffOfType(BuffType.SpellShield) && !Player.HasBuffOfType(BuffType.Invulnerability) && Utility.GetAlliesInRange(x, 500).Where(ally => !ally.IsMe && ally.IsAlly).Count() <= 1))
                    {                    //이전 식대로는 징크스가 절대 궁을 안써서 식을 좀 바꿈.
                        AIO_Func.PredHealth(RT, R);
                        if (RT != null && AIO_Func.PredHealth(RT, R) + RT.HPRegenRate <= (Player.Distance(RT.ServerPosition) < 1500 ? R.GetDamage2(RT, 4) : R.GetDamage2(RT, 1)) && !AIO_Func.CollisionCheck(Player, RT, R.Width))
                        {
                            AIO_Func.LCast(R, RT, 50f, 0f, true);                         //R 최대 데미지는 1500범위에서. 그리고 공식 커먼의 징크스 궁 데미지 계산이 잘못되었으니 올인원 자체 데미지 계산사용.
                        }
                    }
                }
                else                 //현재 체력이 20퍼 미만일 경우 평타 사거리 내에도 궁을 쓰도록.
                {
                    foreach (var RT in HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) && !Player.HasBuffOfType(BuffType.SpellShield) && !Player.HasBuffOfType(BuffType.Invulnerability) && Utility.GetAlliesInRange(x, 500).Where(ally => !ally.IsMe && ally.IsAlly).Count() <= 1))
                    {                    //이전 식대로는 징크스가 절대 궁을 안써서 식을 좀 바꿈.
                        AIO_Func.PredHealth(RT, R);
                        if (RT != null && AIO_Func.PredHealth(RT, R) + RT.HPRegenRate <= (Player.Distance(RT.ServerPosition) < 1500 ? R.GetDamage2(RT, 4) : R.GetDamage2(RT, 1)) && !AIO_Func.CollisionCheck(Player, RT, R.Width))
                        {
                            AIO_Func.LCast(R, RT, 50f, 0f, true);                         //R 최대 데미지는 1500범위에서. 그리고 공식 커먼의 징크스 궁 데미지 계산이 잘못되었으니 올인원 자체 데미지 계산사용.
                        }
                    }
                }
            }
        }
コード例 #21
0
        static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser)
        {
            if (!AIO_Menu.Champion.Misc.UseAntiGapcloser || Player.IsDead)
            {
                return;
            }

            if (Q.CanCast(gapcloser.Sender))
            {
                AIO_Func.LCast(Q, gapcloser.Sender, 0f, 0f);
            }
        }
コード例 #22
0
        static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser)
        {
            if (!AIO_Menu.Champion.Misc.UseAntiGapcloser || Player.IsDead)
            {
                return;
            }

            if (Q.IsReady() &&
                Player.Distance(gapcloser.Sender.Position) <= Q.Range)
            {
                AIO_Func.LCast(Q, gapcloser.Sender, QD); //W.Cast((Vector3)gapcloser.End);
            }
        }
コード例 #23
0
        static void Interrupter2_OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args)
        {
            if (!AIO_Menu.Champion.Misc.UseInterrupter || Player.IsDead)
            {
                return;
            }

            if (E.IsReady() &&
                Player.Distance(sender.Position) <= E.Range)
            {
                AIO_Func.LCast(E, sender);
            }
        }
コード例 #24
0
        static void Combo()
        {
            if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, Q.DamageType);
                AIO_Func.LCast(Q, Qtarget, Menu.Item("Misc.Qtg").GetValue <Slider>().Value, 0);
            }

            if (AIO_Menu.Champion.Combo.UseW && W.IsReady())
            {
                T(W);
            }
        }
コード例 #25
0
ファイル: Shyvana.cs プロジェクト: werdbrian/LS
        static void Harass()
        {
            if (AIO_Menu.Champion.Harass.UseW && W.IsReady())
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, E.DamageType);
                W.Cast();
            }

            if (AIO_Menu.Champion.Harass.UseE && E.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range, E.DamageType);
                AIO_Func.LCast(E, Etarget, ED);
            }
        }
コード例 #26
0
 static void Combo()
 {
     if (AIO_Menu.Champion.Combo.UseR && R.IsReady())
     {
         foreach (var target in HeroManager.Enemies.OrderByDescending(x => x.Health))
         {
             if (R.CanCast(target) && AIO_Func.isKillable(target, getComboDamage(target)) && target.Distance(Player.ServerPosition) < 1000)
             {
                 AIO_Func.LCast(R, target);
             }
             else if (R.CanCast(target) && AIO_Func.isKillable(target, R) && target.Distance(Player.ServerPosition) < 3000)
             {
                 AIO_Func.LCast(R, target);
             }
         }
     }
 }
コード例 #27
0
        static void Interrupter2_OnInterruptableTarget(Obj_AI_Hero sender, Interrupter2.InterruptableTargetEventArgs args)
        {
            if (!AIO_Menu.Champion.Misc.UseInterrupter || Player.IsDead)
            {
                return;
            }

            if (W.IsReady() &&
                Player.Distance(sender.Position) <= W.Range)
            {
                AIO_Func.CCast(W, sender);
            }
            if (sender.HasBuff2("brandablaze") && Q.IsReady() &&
                Player.Distance(sender.Position) <= Q.Range)
            {
                AIO_Func.LCast(Q, sender, QD, 0);
            }
        }
コード例 #28
0
ファイル: Shyvana.cs プロジェクト: werdbrian/LS
        static void Jungleclear()
        {
            var Mobs = MinionManager.GetMinions(Orbwalking.GetRealAutoAttackRange(Player), MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

            if (Mobs.Count <= 0)
            {
                return;
            }
            if (AIO_Menu.Champion.Jungleclear.UseW && W.IsReady())
            {
                W.Cast();
            }

            if (AIO_Menu.Champion.Jungleclear.UseE && E.IsReady())
            {
                AIO_Func.LCast(E, Mobs[0], ED);
            }
        }
コード例 #29
0
ファイル: Veigar.cs プロジェクト: fgpmaia123/TeamProjects
        static void Combo()
        {
            var TTTget = TargetSelector.GetTarget(E.Range + Player.MoveSpeed * E.Delay, TargetSelector.DamageType.Magical);

            if (TTTget == null)
            {
                return;
            }

            if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady())
            {
                var Qtarget = TargetSelector.GetTarget(Q.Range, Q.DamageType);
                AIO_Func.LCast(Q, Qtarget, QD, 1f);
            }

            if (AIO_Menu.Champion.Combo.UseE && E.IsReady())
            {
                var Etarget = TargetSelector.GetTarget(E.Range + Player.MoveSpeed * E.Delay, TargetSelector.DamageType.Magical);
                castE(Etarget);
            }

            if (AIO_Menu.Champion.Combo.UseW && W.IsReady())
            {
                var Wtarget = TargetSelector.GetTarget(W.Range, W.DamageType);
                var pred    = W.GetPrediction(Wtarget);
                if (pred.Hitchance == HitChance.Immobile || Wtarget.Buffs.Where(b => b.IsActive && Game.Time < b.EndTime && (b.Type == BuffType.Charm || b.Type == BuffType.Knockback || b.Type == BuffType.Stun || b.Type == BuffType.Suppression || b.Type == BuffType.Snare)).Aggregate(0f, (current, buff) => Math.Max(current, buff.EndTime)) - Game.Time >= W.Delay - 0.3f && W.IsReady())
                {
                    W.Cast(Wtarget, false, true);
                }
            }

            if (AIO_Menu.Champion.Combo.UseR && R.IsReady())
            {
                var Rtarget = TargetSelector.GetTarget(R.Range, R.DamageType);

                if (AIO_Func.isKillable(Rtarget, R) || Rtarget.Buffs.Where(b => b.IsActive && Game.Time < b.EndTime && (b.Type == BuffType.Charm || b.Type == BuffType.Knockback || b.Type == BuffType.Stun || b.Type == BuffType.Suppression || b.Type == BuffType.Snare)).Aggregate(0f, (current, buff) => Math.Max(current, buff.EndTime)) - Game.Time >= R.Delay && R.IsReady())
                {
                    if (HeroManager.Enemies.Any(x => x.IsValidTarget(R.Range)))
                    {
                        R.Cast(Rtarget);
                    }
                }
            }
        }
コード例 #30
0
        static void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe || Player.IsDead)
            {
                return;
            }

            if ((Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed))
            {
                if (args.SData.Name == Player.Spellbook.GetSpell(SpellSlot.E).Name&& HeroManager.Enemies.Any(x => x.IsValidTarget(Q.Range)))
                {
                    if (AIO_Menu.Champion.Combo.UseQ || AIO_Menu.Champion.Harass.UseQ)
                    {
                        var Qtarget = TargetSelector.GetTarget(Q.Range, Q.DamageType);
                        AIO_Func.LCast(Q, Qtarget, QD, float.MaxValue);
                    }
                }
            }
        }