コード例 #1
0
        static void Unit_OnDash(Obj_AI_Base sender, Dash.DashItem args)
        {
            var target     = TargetSelector.GetTarget(E.Range * 2, TargetSelector.DamageType.Magical);
            var PacketCast = SkyLv_Taric.Menu.Item("Taric.UsePacketCast").GetValue <bool>();

            var td = sender as AIHeroClient;

            if (!td.IsEnemy || td == null || Player.IsRecalling())
            {
                return;
            }

            if (SkyLv_Taric.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                if (sender.NetworkId == target.NetworkId)
                {
                    if (SkyLv_Taric.Menu.Item("Taric.EOnDashendPosition").GetValue <bool>() && E.IsReady() && Player.Distance(args.EndPos) < E.Range)
                    {
                        var delay = (int)(args.EndTick - Game.Time - E.Delay - 0.1f);
                        if (delay > 0)
                        {
                            Utility.DelayAction.Add(delay * 1000, () => E.Cast(args.EndPos, PacketCast));
                        }
                        else
                        {
                            E.Cast(args.EndPos, PacketCast);
                        }
                    }
                }

                if (SkyLv_Taric.Menu.Item("Taric.UseEFromAlly").GetValue <bool>() && E.IsReady() && Player.Mana >= E.ManaCost)
                {
                    foreach (var AllyHero in ObjectManager.Get <AIHeroClient>().Where(a => !a.IsMe && a.IsDead && a.Team == ObjectManager.Player.Team && Player.Distance(a) < 1600 && (a.HasBuff("TaricWAllyBuff") || a.HasBuff("TaricW"))))
                    {
                        var Allytarget = ObjectManager.Get <AIHeroClient>().Where(t => !t.IsDead && t.Team != ObjectManager.Player.Team && AllyHero.Distance(args.EndPos) < E.Range).FirstOrDefault();

                        if (sender.NetworkId == Allytarget.NetworkId)
                        {
                            if (SkyLv_Taric.Menu.Item(AllyHero.ChampionName + "TargetDashEPEComboFromAlly", true).GetValue <bool>())
                            {
                                var delay = (int)(args.EndTick - Game.Time - E.Delay - 0.1f);
                                if (delay > 0)
                                {
                                    Utility.DelayAction.Add(delay * 1000, () => E.Cast(args.EndPos, PacketCast));
                                }
                                else
                                {
                                    E.Cast(args.EndPos, PacketCast);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        private static void Interrupter2_OnInterruptableTarget(AIHeroClient sender, Interrupter2.InterruptableTargetEventArgs args)
        {
            var PacketCast = getCheckBoxItem(SkyLv_Taric.Misc, "Taric.UsePacketCast");

            if (Player.LSIsRecalling())
            {
                return;
            }

            if (getCheckBoxItem(SkyLv_Taric.Misc, "Taric.AutoEInterrupt") && E.IsReady() && sender.LSIsValidTarget(E.Range))
            {
                E.Cast(sender, PacketCast);
            }

            if (getCheckBoxItem(SkyLv_Taric.Combo, "Taric.UseEFromAlly") && E.IsReady() && Player.Mana >= E.ManaCost)
            {
                foreach (var AllyHero in ObjectManager.Get <AIHeroClient>().Where(a => !a.IsMe && !a.IsDead && a.Team == ObjectManager.Player.Team && Player.LSDistance(a) < 1600 && (a.HasBuff("TaricWAllyBuff") || a.HasBuff("TaricW"))))
                {
                    var Allytarget = ObjectManager.Get <AIHeroClient>().Where(t => !t.IsDead && t.Team != ObjectManager.Player.Team && AllyHero.LSDistance(t) < E.Range).FirstOrDefault();

                    if (getCheckBoxItem(SkyLv_Taric.Combo, AllyHero.NetworkId + "TargetInterruptEComboFromAlly") && Allytarget.NetworkId == sender.NetworkId)
                    {
                        E.Cast(sender.ServerPosition, PacketCast);
                        return;
                    }
                }
            }
        }