示例#1
0
 /// <summary>
 /// Delegate to the OnDoCast event
 /// </summary>
 /// <param name="sender">The sender unit.</param>
 /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs"/> instance containing the event data.</param>
 private void AfterAttack(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (sender.IsMe && AutoAttack.IsAutoAttack(args.SData.Name))
     {
         this.OnAfterAttack(sender, args);
     }
 }
示例#2
0
        private static void OnDoCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args)
        {
            if (sender.IsEnemy)
            {
                if (SweetHeart != null && MenuWrapper.Misc.R.Value)
                {
                    if ((sender.Type != GameObjectType.AIHeroClient || AutoAttack.IsAutoAttack(args.SData.Name)) && args.Target != null && args.Target.NetworkId == SweetHeart.NetworkId)
                    {
                        _incomingDamage.Add(SweetHeart.Position.Distance(sender.Position) / args.SData.MissileSpeed + Game.Time, (float)sender.GetAutoAttackDamage(SweetHeart));
                    }
                    else if (sender.Type == GameObjectType.AIHeroClient)
                    {
                        var attacker = sender as AIHeroClient;
                        var slot     = attacker.GetSpellSlot(args.SData.Name);

                        if (slot != SpellSlot.Unknown)
                        {
                            if (slot.HasFlag(SpellSlot.Q | SpellSlot.W | SpellSlot.E | SpellSlot.R) &&
                                (args.Target != null && args.Target.NetworkId == SweetHeart.NetworkId ||
                                 args.End.Distance(SweetHeart.Position) < Math.Pow(args.SData.LineWidth, 2)))
                            {
                                _instantDamage.Add(Game.Time + 2, (float)attacker.GetSpellDamage(SweetHeart, slot));
                            }
                        }
                    }
                }
            }
        }
示例#3
0
        /// Aa cancel thanks Doug!
        private static void OndoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe || !AutoAttack.IsAutoAttack(args.SData.Name))
            {
                return;
            }
            if (args.Target == null || !args.Target.IsValid)
            {
                return;
            }

            if (Variables.Orbwalker.ActiveMode == OrbwalkingMode.Combo)
            {
                if (Variables.Orbwalker.GetTarget() == null)
                {
                    return;
                }

                if (
                    !(args.Target is Obj_AI_Turret || args.Target is Obj_Barracks || args.Target is Obj_BarracksDampener ||
                      args.Target is Obj_Building) && q.IsReady() && UseQ)
                {
                    DelayAction.Add(
                        50,
                        () =>
                    {
                        q.Cast();
                        Variables.Orbwalker.ResetSwingTimer();
                    });
                }
            }
        }
 /// <summary>
 ///     Obj_AI_Base.OnProcessSpellCast Event to detect auto attacks
 /// </summary>
 /// <param name="sender"><see cref="Obj_AI_Base" /> sender</param>
 /// <param name="args"><see cref="GameObjectProcessSpellCastEventArgs" /> args</param>
 private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (sender.IsMe && AutoAttack.IsAutoAttack(args.SData.Name))
     {
         _missleLaunched = false;
     }
 }
示例#5
0
        private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            if (Args.SData == null)
            {
                return;
            }

            if (!Enable)
            {
                return;
            }

            if (!sender.IsEnemy || sender.IsMinion || AutoAttack.IsAutoAttack(Args.SData.Name) || sender.Type != GameObjectType.obj_AI_Hero)
            {
                return;
            }

            if (Args.SData.Name == "YasuoWMovingWall")
            {
                YasuoWall.CastTime      = Game.Time;
                YasuoWall.CastPosition  = sender.Position.Extend(Args.End, 400);
                YasuoWall.YasuoPosition = sender.Position;
                YasuoWall.WallLvl       = sender.Spellbook.Spells[1].Level;
            }
        }
示例#6
0
        private static void Jungle()
        {
            var Mobs = GameObjects.Jungle.Where(x => x.IsValidTarget(Q.Range) && !GameObjects.JungleSmall.Contains(x)).ToList();

            if (Mobs.Count() > 0)
            {
                if (Me.ManaPercent >= Menu["JungleClear"]["Mana"].GetValue <MenuSlider>().Value)
                {
                    if (Menu["JungleClear"]["Q"] && Q.IsReady() && !AutoAttack.IsAutoAttack(Me.ChampionName))
                    {
                        Q.Cast(Mobs.FirstOrDefault());
                    }
                }

                if (Menu["JungleClear"]["Item"])
                {
                    if (Menu["Items"]["Hydra"] && Items.HasItem(3074) && Mobs.FirstOrDefault().IsValidTarget(AttackRange()))
                    {
                        Items.UseItem(3074, Mobs.FirstOrDefault());
                    }

                    if (Menu["Items"]["Tiamat"] && Items.HasItem(3077) && Mobs.FirstOrDefault().IsValidTarget(AttackRange()))
                    {
                        Items.UseItem(3077, Mobs.FirstOrDefault());
                    }
                }
            }
        }
示例#7
0
        /// <summary>
        ///     OnProcessSpellCast event.
        /// </summary>
        /// <param name="sender">
        ///     The sender
        /// </param>
        /// <param name="args">
        ///     The event data
        /// </param>
        private void OnObjAiBaseProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsValid && sender.IsMe)
            {
                var spellName = args.SData.Name;
                var target    = args.Target as AttackableUnit;

                if (target != null && target.IsValid && AutoAttack.IsAutoAttack(spellName))
                {
                    this.LastAutoAttackTick    = Variables.TickCount - (Game.Ping / 2);
                    this.MissileLaunched       = false;
                    this.LastMovementOrderTick = 0;
                    this.TotalAutoAttacks++;

                    if (!target.Compare(this.LastTarget))
                    {
                        this.InvokeAction(
                            new OrbwalkingActionArgs {
                            Target = target, Type = OrbwalkingType.TargetSwitch
                        });
                        this.LastTarget = target;
                    }

                    this.InvokeAction(
                        new OrbwalkingActionArgs {
                        Target = target, Sender = sender, Type = OrbwalkingType.OnAttack
                    });
                }

                if (AutoAttack.IsAutoAttackReset(spellName))
                {
                    this.ResetSwingTimer();
                }
            }
        }
示例#8
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe && AutoAttack.IsAutoAttack(args.SData.Name))
            {
                /// <summary>
                ///     Initializes the orbwalkingmodes.
                /// </summary>
                switch (Variables.Orbwalker.ActiveMode)
                {
                case OrbwalkingMode.Combo:
                    Logics.Weaving(sender, args);
                    break;

                case OrbwalkingMode.LastHit:
                    Logics.Clear(sender, args);
                    break;

                case OrbwalkingMode.LaneClear:
                    Logics.Clear(sender, args);
                    Logics.JungleClear(sender, args);
                    Logics.BuildingClear(sender, args);
                    break;
                }
            }
        }
示例#9
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            /*
             * if (sender.IsMe && (AutoAttack.IsAutoAttack(args.SData.Name) || args.Slot.Equals(SpellSlot.Q)))
             * {
             *
             *  if (!Vars.Q.IsReady() && GameObjects.Player.Spellbook.GetSpell(SpellSlot.Q).Level > 0
             *      && GameObjects.Player.Spellbook.GetSpell(SpellSlot.E).Level == 0)
             *  {
             *      //Vars.E.Cast(Game.CursorPos);
             *      ObjectManager.Player.Spellbook.CastSpell(SpellSlot.E, Game.CursorPos);
             *  }
             * }
             */
            if (sender.IsMe && AutoAttack.IsAutoAttack(args.SData.Name))
            {
                /// <summary>
                ///     Initializes the orbwalkingmodes.
                /// </summary>
                switch (Variables.Orbwalker.ActiveMode)
                {
                case OrbwalkingMode.Combo:
                    Logics.Weaving(sender, args);
                    break;

                case OrbwalkingMode.LaneClear:
                    Logics.JungleClear(sender, args);
                    Logics.BuildingClear(sender, args);
                    break;
                }
            }
        }
示例#10
0
        /// <summary>
        ///     Process Spell Cast subscribed event function.
        /// </summary>
        /// <param name="sender"><see cref="Obj_AI_Base" /> sender</param>
        /// <param name="args">Processed Spell Cast Data</param>
        private static void OnObjAiBaseProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.LSIsValidTarget(2000, false) || !AutoAttack.IsAutoAttack(args.SData.Name) || !sender.IsAlly)
            {
                return;
            }

            if (!(sender is Obj_AI_Minion) && !(sender is Obj_AI_Turret))
            {
                return;
            }

            var target = args.Target as Obj_AI_Minion;

            if (target == null)
            {
                return;
            }

            ActiveAttacks.Remove(sender.NetworkId);
            ActiveAttacks.Add(
                sender.NetworkId,
                new PredictedDamage(
                    sender,
                    target,
                    Variables.TickCount - (Game.Ping / 2),
                    sender.AttackCastDelay * 1000,
                    (sender.AttackDelay * 1000) - (sender is Obj_AI_Turret ? 70 : 0),
                    sender.IsMelee ? int.MaxValue : (int)args.SData.MissileSpeed,
                    (float)sender.GetAutoAttackDamage(target)));
        }
示例#11
0
        private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe || !Enabled)
            {
                return;
            }
            var spellName = args.SData.Name;
            var target    = args.Target as AttackableUnit;

            if (target != null && target.IsValid && AutoAttack.IsAutoAttack(spellName))
            {
                LastAutoAttackTick = Variables.TickCount - Game.Ping / 2;
                MissileLaunched    = false;
                if (!target.Compare(LastTarget))
                {
                    InvokeAction(new OrbwalkerActionArgs {
                        Target = target, Type = OrbwalkingType.TargetSwitch
                    });
                    LastTarget = target;
                }
                InvokeAction(
                    new OrbwalkerActionArgs {
                    Target = target, Sender = sender, Type = OrbwalkingType.OnAttack
                });
            }
            if (AutoAttack.IsAutoAttackReset(spellName))
            {
                DelayAction.Add(250, ResetAutoAttackTimer);
            }
        }
示例#12
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe)
            {
                if (AutoAttack.IsAutoAttack(args.SData.Name))
                {
                    /// <summary>
                    ///     Initializes the orbwalkingmodes.
                    /// </summary>
                    switch (Variables.Orbwalker.ActiveMode)
                    {
                    case OrbwalkingMode.Combo:
                        Logics.Weaving(sender, args);
                        break;

                    case OrbwalkingMode.LaneClear:
                        Logics.JungleClear(sender, args);
                        Logics.BuildingClear(sender, args);
                        break;
                    }

                    PassiveTarget = args.Target as AttackableUnit;
                }
                else
                {
                    switch (args.SData.Name)
                    {
                    case "MissFortuneRicochetShot":
                        PassiveTarget = args.Target as AttackableUnit;
                        break;
                    }
                }
            }
        }
示例#13
0
        /// <summary>
        ///     OnCreate event.
        /// </summary>
        /// <param name="sender">
        ///     The sender.
        /// </param>
        /// <param name="args">
        ///     The event data.
        /// </param>
        private static void OnCreate(GameObject sender, EventArgs args)
        {
            var missile = sender as MissileClient;

            if (missile != null && missile.SpellCaster.IsMe && AutoAttack.IsAutoAttack(missile.SData.Name))
            {
                MissileLaunched = true;
            }
        }
示例#14
0
        /// <summary>
        ///     Game.OnCreate Event to detect missiles
        /// </summary>
        /// <param name="sender"><see cref="GameObject" /> sender</param>
        /// <param name="args"><see cref="EventArgs" /> args</param>
        private static void GameObject_OnCreate(GameObject sender, EventArgs args)
        {
            if (sender.IsValid)
            {
                var missile = (Obj_SpellMissile)sender;

                if (missile.SpellCaster.IsMe && AutoAttack.IsAutoAttack(missile.SData.Name))
                {
                    _missleLaunched = true;
                }
            }
        }
示例#15
0
文件: Jhin.cs 项目: waldow90/PortAIO
        private static void OnSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            try
            {
                if (!sender.IsMe || !AutoAttack.IsAutoAttack(args.SData.Name))
                {
                    return;
                }

                if (Combo)
                {
                    if (args.Target is AIHeroClient)
                    {
                        var target = (AIHeroClient)args.Target;
                        if (!target.IsDead)
                        {
                            if (Menu["W"]["ComboW"].GetValue <MenuBool>() && W.IsReady())
                            {
                                W.Cast(W.GetPrediction(target).UnitPosition);
                                return;
                            }
                            if (Q.IsReady() && Menu["Q"]["ComboQ"].GetValue <MenuBool>() && Player.Distance(target) <= 550)
                            {
                                Q.Cast(target);
                            }
                        }
                    }
                }
                if (Harass)
                {
                    if (args.Target is AIHeroClient)
                    {
                        var target = (AIHeroClient)args.Target;
                        if (!target.IsDead)
                        {
                            if (Menu["W"]["HarassW"].GetValue <MenuBool>() && W.IsReady())
                            {
                                W.Cast(W.GetPrediction(target).UnitPosition);
                                return;
                            }
                            if (Q.IsReady() && Menu["Q"]["HarassQ"].GetValue <MenuBool>() && Player.Distance(target) <= 550)
                            {
                                Q.Cast(target);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error In On DoCast" + ex);
            }
        }
示例#16
0
 /// <summary>
 ///     Called on do-cast.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="args">The args.</param>
 public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (sender.IsMe &&
         AutoAttack.IsAutoAttack(args.SData.Name))
     {
         /// <summary>
         ///     Initializes the orbwalkingmodes.
         /// </summary>
         if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
         {
             Logics.Weaving(sender, args);
         }
     }
 }
示例#17
0
        private static void Jungle()
        {
            var Mobs = GetMobs(Me.Position, Q.Range, true);

            if (Mobs.Count() > 0)
            {
                if (Me.ManaPercent >= Menu["Illaoi_JungleClear"]["Mana"].GetValue <MenuSlider>().Value)
                {
                    if (Menu["Illaoi_JungleClear"]["Q"] && Q.IsReady() && !AutoAttack.IsAutoAttack(Me.ChampionName))
                    {
                        Q.Cast(Mobs.FirstOrDefault());
                    }
                }
            }
        }
示例#18
0
        /// <summary>
        ///     OnProcessSpellCast event.
        /// </summary>
        /// <param name="sender">
        ///     The sender
        /// </param>
        /// <param name="args">
        ///     The event data
        /// </param>
        private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Enabled)
            {
                return;
            }

            if (sender.IsMe)
            {
                var spellName = args.SData.Name;
                var target    = args.Target as AttackableUnit;

                if (target != null && target.IsValid && AutoAttack.IsAutoAttack(spellName))
                {
                    LastAutoAttackTick = Variables.TickCount - (Game.Ping / 2);
                    MissileLaunched    = false;

                    if (!target.Compare(LastTarget))
                    {
                        InvokeAction(new OrbwalkerActionArgs {
                            Target = target, Type = OrbwalkerType.TargetSwitch
                        });

                        LastTarget = target;
                    }

                    var time = Variables.TickCount + (sender.AttackCastDelay * 1000) + 40;
                    if (!AfterAttackTime.ContainsKey(time))
                    {
                        AfterAttackTime.Add(
                            time,
                            new OrbwalkerActionArgs {
                            Target = target, Type = OrbwalkerType.AfterAttack
                        });
                    }

                    InvokeAction(
                        new OrbwalkerActionArgs {
                        Target = target, Sender = sender, Type = OrbwalkerType.OnAttack
                    });
                }

                if (AutoAttack.IsAutoAttackReset(spellName))
                {
                    ResetAutoAttackTimer();
                }
            }
        }
示例#19
0
 /// <summary>
 ///     Delayed OnDoCast event.
 /// </summary>
 /// <param name="sender">
 ///     The sender
 /// </param>
 /// <param name="args">
 ///     The event data
 /// </param>
 private void OnObjAiBaseDoCastDelayed(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (AutoAttack.IsAutoAttackReset(args.SData.Name))
     {
         this.ResetSwingTimer();
     }
     else if (AutoAttack.IsAutoAttack(args.SData.Name))
     {
         this.MissileLaunched = true;
         this.InvokeAction(
             new OrbwalkingActionArgs
         {
             Target = args.Target as AttackableUnit, Sender = sender, Type = OrbwalkingType.AfterAttack
         });
     }
 }
示例#20
0
        public static void OnSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe &&
                AutoAttack.IsAutoAttack(args.SData.Name))
            {
                if (Menu.Item("aaLaugh").GetValue <bool>())
                {
                    Chat.Say("/l");
                }

                if (Menu.Item("aaBadge").GetValue <bool>())
                {
                    Chat.Say("/masterybadge");
                }
            }
        }
示例#21
0
文件: Resetters.cs 项目: riwalry1/AIO
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void Resetters(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Vars.TypesMenu["resetters"].Cast <CheckBox>().CurrentValue)
            {
                return;
            }

            if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) &&
                !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
            {
                return;
            }

            /// <summary>
            ///     If the player has no AA-Resets, triggers after normal AA, else after AA-Reset.
            /// </summary>
            if (sender.IsMe)
            {
                if ((!Vars.HasAnyReset && AutoAttack.IsAutoAttack(args.SData.Name)) ||
                    ObjectManager.Player.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)))
                {
                    /// <summary>
                    ///     The Tiamat Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3077))
                    {
                        Items.UseItem(3077);
                    }

                    /// <summary>
                    ///     The Ravenous Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3074))
                    {
                        Items.UseItem(3074);
                    }

                    /// <summary>
                    ///     The Titanic Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3748))
                    {
                        Items.UseItem(3748);
                    }
                }
            }
        }
示例#22
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void Resetters(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Vars.getCheckBoxItem(Vars.TypesMenu, "resetters"))
            {
                return;
            }

            if (!Vars.getKeyBindItem(Vars.KeysMenu, "combo") &&
                !Vars.getKeyBindItem(Vars.KeysMenu, "laneclear"))
            {
                return;
            }

            /// <summary>
            ///     If the player has no AA-Resets, triggers after normal AA, else after AA-Reset.
            /// </summary>
            if (sender.IsMe)
            {
                if ((!Vars.HasAnyReset && AutoAttack.IsAutoAttack(args.SData.Name)) ||
                    ObjectManager.Player.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)))
                {
                    /// <summary>
                    ///     The Tiamat Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3077))
                    {
                        Items.UseItem(3077);
                    }

                    /// <summary>
                    ///     The Ravenous Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3074))
                    {
                        Items.UseItem(3074);
                    }

                    /// <summary>
                    ///     The Titanic Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3748))
                    {
                        Items.UseItem(3748);
                    }
                }
            }
        }
示例#23
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe &&
                AutoAttack.IsAutoAttack(args.SData.Name))
            {
                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                {
                    Logics.Weaving(sender, args);
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
                {
                    Logics.JungleClear(sender, args);
                    Logics.BuildingClear(sender, args);
                }
            }
        }
示例#24
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void Resetters(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!Vars.Menu["resetters"].GetValue <MenuBool>().Value)
            {
                return;
            }
            if (!Vars.Menu["keys"]["combo"].GetValue <MenuKeyBind>().Active &&
                !Vars.Menu["keys"]["laneclear"].GetValue <MenuKeyBind>().Active)
            {
                return;
            }

            /// <summary>
            ///     If the player has no AA-Resets, triggers after normal AA, else after AA-Reset.
            /// </summary>
            if (sender.IsMe)
            {
                if (!Vars.HasAnyReset && AutoAttack.IsAutoAttack(args.SData.Name) ||
                    ObjectManager.Player.Buffs.Any(b => AutoAttack.IsAutoAttackReset(b.Name)))
                {
                    /// <summary>
                    ///     The Tiamat Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3077))
                    {
                        Items.UseItem(3077);
                    }

                    /// <summary>
                    ///     The Ravenous Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3074))
                    {
                        Items.UseItem(3074);
                    }

                    /// <summary>
                    ///     The Titanic Hydra Melee Only logic.
                    /// </summary>
                    if (Items.CanUseItem(3748))
                    {
                        Items.UseItem(3748);
                    }
                }
            }
        }
示例#25
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs" /> instance containing the event data.</param>
        public static void OnSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe && AutoAttack.IsAutoAttack(args.SData.Name))
            {
                switch (Variables.Orbwalker.ActiveMode)
                {
                case OrbwalkingMode.Combo:
                    Logics.Weaving(sender, args);
                    break;

                case OrbwalkingMode.LaneClear:
                    Logics.JungleClear(sender, args);
                    Logics.BuildingClear(sender, args);
                    break;
                }
            }
        }
示例#26
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe)
            {
                /// <summary>
                ///     Initializes the orbwalkingmodes.
                /// </summary>
                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                {
                    if (AutoAttack.IsAutoAttack(args.SData.Name))
                    {
                        Logics.Weaving(sender, args);
                        return;
                    }
                    else
                    {
                        switch (args.SData.Name)
                        {
                        case "AkaliMota":
                            if (Vars.R.IsReady() &&
                                Targets.Target.IsValidTarget(Vars.R.Range) &&
                                !Targets.Target.IsValidTarget(Vars.AARange) &&
                                Vars.getCheckBoxItem(Vars.RMenu, "combo") &&
                                Vars.getCheckBoxItem(Vars.WhiteListMenu, Targets.Target.ChampionName.ToLower()))
                            {
                                if (!Targets.Target.IsUnderEnemyTurret() ||
                                    !Vars.getCheckBoxItem(Vars.MiscMenu, "safe"))
                                {
                                    Vars.R.CastOnUnit(Targets.Target);
                                }
                            }
                            break;

                        default:
                            break;
                        }
                    }
                }

                if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
                {
                    Logics.JungleClear(sender, args);
                }
            }
        }
示例#27
0
 private void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (!Enable)
     {
         return;
     }
     if (sender.IsMe)
     {
         if (args.SData.Name == R.Instance.Name)
         {
             Rcount = Variables.TickCount;
         }
     }
     if (!activeAssasin && autoharassq && !sender.IsMe && sender.IsEnemy && (sender as Obj_AI_Hero).IsValidTarget(Q.Range) &&
         (AutoAttack.IsAutoAttack(args.SData.Name) || !args.SData.CanMoveWhileChanneling) && Player.ManaPercent >= manaharass)
     {
         Q.Cast(sender);
     }
 }
示例#28
0
文件: Jhin.cs 项目: waldow90/PortAIO
 private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     try
     {
         if (!sender.IsMe && !AutoAttack.IsAutoAttack(args.SData.Name) || !args.Target.IsEnemy ||
             !args.Target.IsValid || !(args.Target is AIHeroClient))
         {
             return;
         }
         if (Combo && Menu["ComboY"].GetValue <MenuBool>().Value)
         {
             CastYoumoo();
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error In On ProcessSpellCast" + ex);
     }
 }
示例#29
0
        /// <summary>
        ///     Called on do-cast.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The args.</param>
        public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe)
            {
                /// <summary>
                ///     Initializes the orbwalkingmodes.
                /// </summary>
                switch (Variables.Orbwalker.ActiveMode)
                {
                case OrbwalkingMode.Combo:
                    if (AutoAttack.IsAutoAttack(args.SData.Name))
                    {
                        Logics.Weaving(sender, args);
                        break;
                    }

                    switch (args.SData.Name)
                    {
                    case "AkaliMota":
                        if (Vars.R.IsReady() && Targets.Target.IsValidTarget(Vars.R.Range) &&
                            !Targets.Target.IsValidTarget(Vars.AaRange) &&
                            Vars.Menu["spells"]["r"]["combo"].GetValue <MenuBool>().Value &&
                            Vars.Menu["spells"]["r"]["whitelist"][Targets.Target.ChampionName.ToLower()]
                            .GetValue <MenuBool>().Value)
                        {
                            if (!Targets.Target.IsUnderEnemyTurret() ||
                                !Vars.Menu["miscellaneous"]["safe"].GetValue <MenuBool>().Value)
                            {
                                Vars.R.CastOnUnit(Targets.Target);
                            }
                        }
                        break;
                    }

                    break;

                case OrbwalkingMode.LaneClear:
                    Logics.JungleClear(sender, args);
                    break;
                }
            }
        }
示例#30
0
        private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe)
            {
                return;
            }

            var Espell = Player.GetSpellSlot(args.SData.Name);

            if (Espell == SpellSlot.E)
            {
                LastECast = Variables.TickCount;
            }

            if (AutoAttack.IsAutoAttack(args.SData.Name))
            {
                IsAttack = true;
                DelayAction.Add(500, () => IsAttack = false);
            }
        }