/// <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); } }
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)); } } } } } }
/// 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; } }
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; } }
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()); } } } }
/// <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(); } } }
/// <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; } } }
/// <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; } } }
/// <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))); }
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); } }
/// <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; } } } }
/// <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; } }
/// <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; } } }
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); } }
/// <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); } } }
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()); } } } }
/// <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(); } } }
/// <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 }); } }
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"); } } }
/// <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); } } } }
/// <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); } } } }
/// <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); } } }
/// <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); } } } }
/// <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; } } }
/// <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); } } }
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); } }
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); } }
/// <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; } } }
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); } }