private static void ObjAiBaseOnOnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender is AITurretClient && args.Target.IsMe && E.IsReady() && Menu["Misc"].GetValue <MenuBool>("UseETower")) { E.Cast(Game.CursorPos); } if (!sender.IsMe) { return; } if (args.SData.Name == "FizzW") { Orbwalker.ResetAutoAttackTimer(); } if (args.SData.Name == "FizzE") { if (Orbwalker.ActiveMode == OrbwalkerMode.Combo) { Utility.DelayAction.Add((int)(sender.Spellbook.SpellEndTime - Game.Time) + Game.Ping / 2 + 250, () => W.Cast()); } else if (Orbwalker.ActiveMode == OrbwalkerMode.Harass && Menu["Harass"].GetValue <MenuList>("UseEHarassMode").SelectedValue == "Back to Position") //"Back to Position", "On Enemy" { Utility.DelayAction.Add( (int)(sender.Spellbook.SpellEndTime - Game.Time) + Game.Ping / 2 + 250, () => { JumpBack = true; }); } } if (args.SData.Name == "fizzjumptwo" || args.SData.Name == "fizzjumpbuffer") { LastHarassPos = null; JumpBack = false; } }
private static void Obj_AI_Base_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { var enabled = Variable.Config["Enabled"].GetValue <MenuBool>().Enabled; if (!enabled || !Variable.Player.IsTargetable || (sender == null || sender.Team == Variable.Player.Team)) { return; } foreach (var champ in Variable.ExistingChampions) { var champion = Variable.Config["CAS"][champ.CharName]; if (champion == null || champion[champ.Slot.ToString()] == null || !champion[champ.Slot.ToString()].GetValue <MenuBool>().Enabled) { continue; } if (champ.Slot != (sender as AIHeroClient).GetSpellSlot(args.SData.Name) || (!(Variable.Player.Distance(sender.Position) <= champ.Range) && args.Target != Variable.Player)) { continue; } var vector = new Vector3( Variable.Player.Position.X + ((sender.Position.X - Variable.Player.Position.X) * (Internal.MoveTo(champ.Movement)) / Variable.Player.Distance(sender.Position)), Variable.Player.Position.Y + ((sender.Position.Y - Variable.Player.Position.Y) * (Internal.MoveTo(champ.Movement)) / Variable.Player.Distance(sender.Position)), 0); Variable.Player.IssueOrder(GameObjectOrder.MoveTo, vector); Orbwalker.MovementState = false; DelayAction.Add((int)(champ.CastTime + 0.1) * 1000, () => Orbwalker.MovementState = true); } }
/// <summary> /// Handles the <see cref="E:ProcessSpell" /> event. /// </summary> /// <param name="unit">The unit.</param> /// <param name="spell">The <see cref="AIBaseClientProcessSpellCastEventArgs"/> instance containing the event data.</param> private static void OnProcessSpell(AIBaseClient unit, AIBaseClientProcessSpellCastEventArgs spell) { try { var spellName = spell.SData.Name; if (!IsAutoAttack(spellName)) { return; } if (unit.IsMe && (spell.Target is AIBaseClient || spell.Target is BarracksDampenerClient || spell.Target is HQClient)) { LastAaTick = Utils.GameTimeTickCount - Game.Ping / 2; _missileLaunched = false; LastMoveCommandT = 0; if (spell.Target is AIBaseClient) { var target = (AIBaseClient)spell.Target; if (target.IsValid) { FireOnTargetSwitch(target); _lastTarget = target; } } } FireOnAttack(unit, _lastTarget); } catch (Exception e) { Console.WriteLine(e); } }
static void AIBaseClient_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (!escapeMenu["Evade"].GetValue <MenuBool>().Enabled) { return; } if (sender.IsAlly) { return; } //Need to calc Delay/Time for misille to hit ! if (DangerDB.TargetedList.Contains(args.SData.Name)) { if (args.Target.IsMe) { R.Cast(); } } if (DangerDB.CircleSkills.Contains(args.SData.Name)) { if (player.Distance(args.End) < args.SData.LineWidth) { R.Cast(); } } if (DangerDB.Skillshots.Contains(args.SData.Name)) { if (new Geometry.Rectangle(args.Start, args.End, args.SData.LineWidth).IsInside(player)) { R.Cast(); } } }
static void AIBaseClientProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (!(sender is AIHeroClient)) { return; } if (!Config["Misc"].GetValue <MenuBool>("AutoEInitiators")) { return; } var spellName = args.SData.Name.ToLower(); if (!InitiatorsList.ContainsKey(spellName)) { return; } var item = Config["Misc"]["InitiatorsMenu"].GetValue <MenuBool>(spellName); if (item == null || !item.Enabled) { return; } if (!E.IsReady()) { return; } if (sender.IsAlly && Player.Distance(sender) < E.Range * E.Range) { E.CastOnUnit(sender); } }
internal LastCastedSpellEntry(AIBaseClientProcessSpellCastEventArgs args) { }
private static void OnDoCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender.IsMe && Orbwalking.IsAutoAttack(args.SData.Name) && args.Target is AIHeroClient && args.Target.IsValid && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { if (sender == null || args == null) { Chat.Print("Missing something!!"); } switch (Config.Item("combo.type").GetValue <StringList>().SelectedIndex) { case 0: if (Q.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ((AIHeroClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsTiger() && Config.Item("q.combo").GetValue <bool>() && !R.IsReady()) { Q.Cast(); } if (W.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ((AIHeroClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsTurtle() && Config.Item("w.combo").GetValue <bool>() && !R.IsReady()) { W.Cast(); } if (E.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ((AIHeroClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsBear() && Config.Item("e.combo").GetValue <bool>() && !Config.Item("e.stun").GetValue <bool>() && !R.IsReady()) { E.Cast(); } if (R.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ((AIHeroClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsPhoenix() && Config.Item("r.combo").GetValue <bool>()) { R.Cast(); } break; case 1: if (Q.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ((AIHeroClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsTiger() && Config.Item("q.combo").GetValue <bool>() && !E.IsReady()) { Q.Cast(); } if (W.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ((AIHeroClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsTurtle() && Config.Item("w.combo").GetValue <bool>() && !E.IsReady()) { W.Cast(); } if (E.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ((AIHeroClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsBear() && Config.Item("e.combo").GetValue <bool>() && !Config.Item("e.stun").GetValue <bool>()) { E.Cast(); } if (R.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ((AIHeroClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsPhoenix() && Config.Item("r.combo").GetValue <bool>() && !E.IsReady()) { R.Cast(); } break; } } if (sender.IsMe && Orbwalking.IsAutoAttack(args.SData.Name) && args.Target is AIMinionClient && args.Target.IsValid && ((AIMinionClient)args.Target).Team == GameObjectTeam.Neutral && Udyr.ManaPercent >= Config.Item("jungle.mana").GetValue <Slider>().Value) { if (Q.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ((AIMinionClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsTiger() && Config.Item("q.jungle").GetValue <bool>()) { Q.Cast(); } if (W.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ((AIMinionClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsTurtle() && Config.Item("w.jungle").GetValue <bool>() && ObjectManager.Player.Buffs.Any(buff => buff.Name != "UdyrPhoenixStance")) { W.Cast(); } if (E.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ((AIMinionClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsBear() && Config.Item("e.jungle").GetValue <bool>()) { E.Cast(); } if (R.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ((AIMinionClient)args.Target).IsValidTarget(Udyr.AttackRange) && ObjectManager.Player.Buffs.Any(buff => buff.Name != "UdyrPhoenixStance") && !Udyr.IsPhoenix() && Config.Item("r.jungle").GetValue <bool>()) { R.Cast(); } } if (sender.IsMe && Orbwalking.IsAutoAttack(args.SData.Name) && args.Target is AIMinionClient && args.Target.IsValid && ((AIMinionClient)args.Target).IsEnemy && Udyr.ManaPercent >= Config.Item("clear.mana").GetValue <Slider>().Value) { if (Q.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ((AIMinionClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsTiger() && Config.Item("q.clear").GetValue <bool>()) { Q.Cast(); } if (W.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ((AIMinionClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsTurtle() && Config.Item("w.clear").GetValue <bool>() && ObjectManager.Player.Buffs.Any(buff => buff.Name != "UdyrPhoenixStance")) { W.Cast(); } if (E.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ((AIMinionClient)args.Target).IsValidTarget(Udyr.AttackRange) && !Udyr.IsBear() && Config.Item("e.clear").GetValue <bool>()) { E.Cast(); } if (R.IsReady() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ((AIMinionClient)args.Target).IsValidTarget(Udyr.AttackRange) && ObjectManager.Player.Buffs.Any(buff => buff.Name != "UdyrPhoenixStance") && !Udyr.IsPhoenix() && Config.Item("r.clear").GetValue <bool>()) { R.Cast(); } } }
private static void AIHeroClient_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { var targetz = TargetSelector.GetTarget(W.Range); var useW = ComboMenu["WLowHp"].GetValue <MenuBool>().Enabled; var MinHealth = ComboMenu["minHealth"].GetValue <MenuSlider>().Value; if (useW && !_Player.IsRecalling() && targetz.IsValidTarget(425)) { if (Player.Instance.HealthPercent <= MinHealth) { W.Cast(); } } if ((args.Slot == SpellSlot.Q || args.Slot == SpellSlot.W || args.Slot == SpellSlot.E || args.Slot == SpellSlot.R) && sender.IsEnemy && Q.IsReady() && _Player.Distance(sender) <= args.SData.CastRange && Orbwalker.ActiveMode.HasFlag(OrbwalkerMode.Combo)) { if (args.SData.TargettingType == SpellDataTargetType.Unit || args.SData.TargettingType == SpellDataTargetType.SelfAndUnit || args.SData.TargettingType == SpellDataTargetType.Self) { if ((args.Target.NetworkId == Player.Instance.NetworkId && args.Time < 1.5 || args.End.Distance(Player.Instance.Position) <= Player.Instance.BoundingRadius * 3) && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { QEvade(); } } else if (args.SData.TargettingType == SpellDataTargetType.LocationAoe) { var castvector = new Geometry.Circle(args.End, args.SData.CastRadius).IsInside( Player.Instance.Position); if (castvector && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { QEvade(); } } else if (args.SData.TargettingType == SpellDataTargetType.Cone) { var castvector = new Geometry.Arc(args.Start, args.End, args.SData.CastConeAngle, args.SData.CastRange) .IsInside(Player.Instance.Position); if (castvector && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { QEvade(); } } else if (args.SData.TargettingType == SpellDataTargetType.SelfAoe) { var castvector = new Geometry.Circle(sender.Position, args.SData.CastRadius).IsInside( Player.Instance.Position); if (castvector && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { QEvade(); } } else { var castvector = new Geometry.Rectangle(args.Start, args.End, args.SData.LineWidth).IsInside( Player.Instance.Position); if (castvector && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { QEvade(); } } if (args.SData.Name == "yasuoq3w") { QEvade(); } if (args.SData.Name == "ZedR") { if (Q.IsReady()) { QEvade(); } else { if (W.IsReady()) { W.Cast(); } } } if (args.SData.Name == "KarthusFallenOne") { QEvade(); } if (args.SData.Name == "SoulShackles") { QEvade(); } if (args.SData.Name == "AbsoluteZero") { QEvade(); } if (args.SData.Name == "NocturneUnspeakableHorror") { QEvade(); } } }
private static void OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs Args) { if (ObjectManager.Player.IsDead || !Menu["EnabledDodge"].GetValue <MenuBool>().Enabled || ObjectManager.Player.HealthPercent > Menu["EnabledHP"].GetValue <MenuSlider>().Value) { return; } if (ObjectManager.Player.CharacterName == "Sivir" && ObjectManager.Player.Spellbook.CanUseSpell(SpellSlot.E) != SpellState.Ready) { return; } if (ObjectManager.Player.CharacterName == "Xayah" && ObjectManager.Player.Spellbook.CanUseSpell(SpellSlot.R) != SpellState.Ready) { return; } var target = sender as AIHeroClient; if (target == null || target.Team == ObjectManager.Player.Team || !target.IsValid || Args.Target == null || string.IsNullOrEmpty(Args.SData.Name)) { return; } var spells = MyBlockSpellDataBase.Spells.Where( x => string.Equals(x.CharacterName, target.CharacterName, StringComparison.CurrentCultureIgnoreCase) && Menu["Block" + target.CharacterName.ToLower()]["BlockSpell" + x.SpellSlot.ToString()] != null && Menu["Block" + target.CharacterName.ToLower()]["BlockSpell" + x.SpellSlot.ToString()].GetValue <MenuBool>().Enabled).ToList(); if (spells.Any()) { foreach (var x in spells) { switch (x.CharacterName) { case "Alistar": if (x.SpellSlot == SpellSlot.Q && Args.Slot == x.SpellSlot) { if (target.Distance(ObjectManager.Player) <= 350) { CastSpell("Alistar", x.SpellSlot); } } if (x.SpellSlot == SpellSlot.W && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Alistar", x.SpellSlot); } } break; case "Blitzcrank": if (x.SpellSlot == SpellSlot.E && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe && Args.SData.Name == "PowerFistAttack") { CastSpell("Blitzcrank", x.SpellSlot); } } break; case "Chogath": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Chogath", x.SpellSlot); } } break; case "Darius": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Darius", x.SpellSlot); } } break; case "Elise": if (x.SpellSlot == SpellSlot.Q && Args.SData.Name == "EliseHumanQ" && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Elise", x.SpellSlot); } } break; case "Fiddlesticks": if (x.SpellSlot == SpellSlot.Q && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Fiddlesticks", x.SpellSlot); } } break; case "Gangplank": if (x.SpellSlot == SpellSlot.Q && Args.SData.Name == "Parley" && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Gangplank", x.SpellSlot); } } break; case "Garen": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Garen", x.SpellSlot); } } break; case "Hecarim": if (x.SpellSlot == SpellSlot.E && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe && Args.SData.Name == "HecarimRampAttack") { CastSpell("Hecarim", x.SpellSlot); } } break; case "Irelia": if (x.SpellSlot == SpellSlot.E && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Irelia", x.SpellSlot); } } break; case "Jarvan": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Jarvan", x.SpellSlot); } } break; case "Kalista": if (x.SpellSlot == SpellSlot.E && Args.Slot == x.SpellSlot) { if (ObjectManager.Player.HasBuff("kalistaexpungemarker") && ObjectManager.Player.Distance(target) <= 950f) { CastSpell("Kalista", x.SpellSlot); } } break; case "Kayle": if (x.SpellSlot == SpellSlot.Q && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Kayle", x.SpellSlot); } } break; case "Leesin": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Leesin", x.SpellSlot); } } break; case "Lissandra": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Lissandra", x.SpellSlot); } } break; case "Morgana": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Morgana", x.SpellSlot); } } break; case "Malzahar": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Mordekaiser", x.SpellSlot); } } break; case "Mordekaiser": if (x.SpellSlot == SpellSlot.Q && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe && Args.SData.Name == "MordekaiserQAttack2") { CastSpell("Mordekaiser", x.SpellSlot); } } if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Mordekaiser", x.SpellSlot); } } break; case "Nasus": if (x.SpellSlot == SpellSlot.W && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Nasus", x.SpellSlot); } } break; case "Olaf": if (x.SpellSlot == SpellSlot.E && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Olaf", x.SpellSlot); } } break; case "Pantheon": if (x.SpellSlot == SpellSlot.Q && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Pantheon", x.SpellSlot); } } if (x.SpellSlot == SpellSlot.W && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Pantheon", x.SpellSlot); } } break; case "Renekton": if (x.SpellSlot == SpellSlot.W && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Renekton", x.SpellSlot); } } break; case "Rengar": if (x.SpellSlot == SpellSlot.Q && Args.Slot == x.SpellSlot) { if (ObjectManager.Player.Distance(target) <= 300 && Args.Target.IsMe) { CastSpell("Rengar", x.SpellSlot); } } break; case "Riven": if (x.SpellSlot == SpellSlot.W && Args.Slot == x.SpellSlot) { if (ObjectManager.Player.Position.Distance(target.Position) <= 125f + ObjectManager.Player.BoundingRadius + target.BoundingRadius) { CastSpell("Riven", x.SpellSlot); } } break; case "Ryze": if (x.SpellSlot == SpellSlot.W && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Ryze", x.SpellSlot); } } break; case "Singed": if (x.SpellSlot == SpellSlot.E && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Singed", x.SpellSlot); } } break; case "Syndra": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe && Args.SData.Name == "SyndraR") { CastSpell("Syndra", x.SpellSlot); } } break; case "TahmKench": if (x.SpellSlot == SpellSlot.W && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("TahmKench", x.SpellSlot); } } break; case "Tristana": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe && Args.SData.Name == "TristanaR") { CastSpell("Tristana", x.SpellSlot); } } break; case "Trundle": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Trundle", x.SpellSlot); } } break; case "TwistedFate": if (Args.SData.Name.Contains("attack") && Args.Target.IsMe && target.Buffs.Any( buff => buff.Name == "BlueCardAttack" || buff.Name == "GoldCardAttack" || buff.Name == "RedCardAttack")) { CastSpell("TwistedFate", x.SpellSlot); } break; case "Veigar": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe && Args.SData.Name == "VeigarPrimordialBurst") { CastSpell("Veigar", x.SpellSlot); } } break; case "Vi": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Vi", x.SpellSlot); } } break; case "Volibear": if (x.SpellSlot == SpellSlot.Q && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Volibear", x.SpellSlot); } } if (x.SpellSlot == SpellSlot.W && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Volibear", x.SpellSlot); } } break; case "Warwick": if (x.SpellSlot == SpellSlot.R && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe) { CastSpell("Warwick", x.SpellSlot); } } break; case "XinZhao": if (x.SpellSlot == SpellSlot.Q && Args.Slot == x.SpellSlot) { if (Args.Target.IsMe && Args.SData.Name == "XenZhaoThrust3") { CastSpell("XinZhao", x.SpellSlot); } } break; } } } }
private static bool SpellIsGapcloser(AIBaseClientProcessSpellCastEventArgs args) { return(Spells.Any(spell => spell.SpellName == args.SData.Name.ToLower())); }
private static void OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs Args) { if (ObjectManager.Player.IsDead) { return; } var ally = Args.Target as AIHeroClient; if (ally != null) { if (EvadeTargetManager.AttackMenu["Brian.EvadeTargetMenu.Turret"]) { if (ally.IsAlly) { if (ObjectManager.Player.CharacterName == "Janna" || ObjectManager.Player.CharacterName == "Rakan" || ObjectManager.Player.CharacterName == "Ivern" || ObjectManager.Player.CharacterName == "Lulu" || ObjectManager.Player.CharacterName == "Karma") { if (sender.Name.ToLower().Contains("tower") && Args.Target.IsAlly && Args.Target.Distance(ObjectManager.Player) < Common.Champion.E.Range) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()] ) { Common.Champion.E.CastOnUnit(Args.Target); } } } if (ObjectManager.Player.CharacterName == "Lux" || ObjectManager.Player.CharacterName == "Sona" || ObjectManager.Player.CharacterName == "Taric") { if (sender.Name.ToLower().Contains("tower") && Args.Target.IsAlly && Args.Target.Distance(ObjectManager.Player) < Common.Champion.W.Range) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()] ) { Common.Champion.W.CastOnUnit(Args.Target); } } } } } } var target = sender as AIHeroClient; if (ally != null) { if (!sender.IsMinion) { if (ally.IsAlly) { if (Args.SData.Name.Contains("BasicAttack") && EvadeTargetManager.AttackMenu["Brian.EvadeTargetMenu.BAttack"] && ally.HealthPercent <= EvadeTargetManager.AttackMenu["Brian.EvadeTargetMenu.BAttackHpU"] .GetValue <MenuSlider>()) { if (ObjectManager.Player.CharacterName == "Janna" || ObjectManager.Player.CharacterName == "Rakan" || ObjectManager.Player.CharacterName == "Lulu" || ObjectManager.Player.CharacterName == "Ivern" || ObjectManager.Player.CharacterName == "Karma") { if (Args.Target.IsAlly && Args.Target.Distance(ObjectManager.Player) < Common.Champion.E.Range) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()] ) { Common.Champion.E.CastOnUnit(Args.Target); } } } if (ObjectManager.Player.CharacterName == "Lux" || ObjectManager.Player.CharacterName == "Sona" || ObjectManager.Player.CharacterName == "Taric") { if (Args.Target.IsAlly && Args.Target.Distance(ObjectManager.Player) < Common.Champion.W.Range) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()] ) { Common.Champion.W.CastOnUnit(Args.Target); } } } } } } } if (ally != null) { if (sender.IsMinion) { if (ally.IsAlly) { if (ObjectManager.Player.CharacterName == "Janna" || ObjectManager.Player.CharacterName == "Rakan" || ObjectManager.Player.CharacterName == "Lulu" || ObjectManager.Player.CharacterName == "Ivern" || ObjectManager.Player.CharacterName == "Karma") { if (Args.Target.IsAlly && Args.Target.Distance(Common.Champion.Player) < Common.Champion.E.Range) { if ( EvadeTargetManager .AttackMenu["Brian.EvadeTargetMenu.Minion"] && ally.HealthPercent <= EvadeTargetManager .AttackMenu["Brian.EvadeTargetMenu.HP"] .GetValue <MenuSlider>()) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()] ) { Common.Champion.E.CastOnUnit(ally); } } } } if (ObjectManager.Player.CharacterName == "Lux" || ObjectManager.Player.CharacterName == "Sona" || ObjectManager.Player.CharacterName == "Taric") { if (Args.Target.IsAlly && Args.Target.Distance(Common.Champion.Player) < Common.Champion.W.Range) { if ( EvadeTargetManager .AttackMenu["Brian.EvadeTargetMenu.Minion"] && ally.HealthPercent <= EvadeTargetManager .AttackMenu["Brian.EvadeTargetMenu.HP"] .GetValue <MenuSlider>()) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()] ) { Common.Champion.W.CastOnUnit(ally); } } } } } } if (Args.SData.Name.Contains("crit") && EvadeTargetManager.AttackMenu["Brian.EvadeTargetMenu.CAttack"] && ally.HealthPercent <= EvadeTargetManager .AttackMenu["Brian.EvadeTargetMenu.CAttackHpU"].GetValue <MenuSlider>()) { // if (ally.IsHero) { if (ObjectManager.Player.CharacterName == "Janna" || ObjectManager.Player.CharacterName == "Rakan" || ObjectManager.Player.CharacterName == "Lulu" || ObjectManager.Player.CharacterName == "Ivern" || ObjectManager.Player.CharacterName == "Karma") { if (Args.Target.IsAlly && Args.Target.Distance(Common.Champion.Player) < Common.Champion.E.Range) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()] ) { Common.Champion.E.CastOnUnit(ally); } } } if (ObjectManager.Player.CharacterName == "Lux" || ObjectManager.Player.CharacterName == "Sona" || ObjectManager.Player.CharacterName == "Taric") { if (Args.Target.IsAlly && Args.Target.Distance(Common.Champion.Player) < Common.Champion.W.Range) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()] ) { Common.Champion.W.CastOnUnit(ally); } } } } } } if (target == null || target.Team == ObjectManager.Player.Team || !target.IsValid || Args.Target == null || string.IsNullOrEmpty(Args.SData.Name) || Args.SData.Name.Contains("BasicAttack")) { return; } var spellData = EvadeTargetManager.Spells.FirstOrDefault( i => i.SpellNames.Contains(Args.SData.Name.ToLower())); if (spellData != null) { return; } if (Args.SData.Name == "CaitlynAceintheHole") { return; } if (ObjectManager.Player.CharacterName == "Janna" || ObjectManager.Player.CharacterName == "Rakan" || ObjectManager.Player.CharacterName == "Lulu" || ObjectManager.Player.CharacterName == "Ivern" || ObjectManager.Player.CharacterName == "Karma") { if (Args.Target.Distance(Common.Champion.Player) < Common.Champion.E.Range) { if (ally != null && ally.IsAlly) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()]) { Common.Champion.E.CastOnUnit(Args.Target); } } } } if (ObjectManager.Player.CharacterName == "Lux" || ObjectManager.Player.CharacterName == "Sona" || ObjectManager.Player.CharacterName == "Taric") { if (Args.Target.Distance(Common.Champion.Player) < Common.Champion.W.Range) { if (ally != null && ally.IsAlly) { if (EvadeTargetManager.Menu["whitelist"][ ally.CharacterName.ToLower()]) { Common.Champion.W.CastOnUnit(Args.Target); } } } } }
private static void AIBaseClient_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { //if (sender.IsMe && args.Slot == SpellSlot.Q) //Game.Print(args.TotalTime); }
public static void Obj_AI_Hero_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (!sender.IsMe && sender.IsEnemy && sender is AIMinionClient && args.Target.IsMe) { } }
public static void OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { }
// Jungle, Combo etc. public static void OnDoCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (!sender.IsMe) { return; } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { if (args.Target is AIMinionClient) { var minions = MinionManager.GetMinions(Player.AttackRange + 380); if (minions == null) { return; } foreach (var m in minions) { if (!Spells.Q.IsReady() || !MenuConfig.LaneQ || m.UnderTurret()) { continue; } ForceItem(); ForceCastQ(m); } } var objAiTurret = args.Target as AITurretClient; if (objAiTurret != null) { if (objAiTurret.IsValid && Spells.Q.IsReady() && MenuConfig.LaneQ) { ForceCastQ(objAiTurret); } } var mobs = MinionManager.GetMinions(Player.Position, 600f, MinionTypes.All, MinionTeam.Neutral); if (mobs == null) { return; } foreach (var m in mobs) { if (!m.IsValid) { return; } if (Spells.Q.IsReady() && MenuConfig.JnglQ) { ForceItem(); ForceCastQ(m); } else if (!Spells.W.IsReady() || !MenuConfig.JnglW) { return; } ForceItem(); Spells.W.Cast(m); } } if (!Spells.Q.IsReady()) { return; } var a = HeroManager.Enemies.Where(x => x.IsValidTarget(Player.AttackRange + 360)); var targets = a as AIHeroClient[] ?? a.ToArray(); foreach (var target in targets) { if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { ForceItem(); ForceCastQ(target); } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { if (Qstack == 2) { ForceItem(); Utility.DelayAction.Add(1, () => ForceCastQ(target)); } } if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Burst) { return; } if (!InWRange(target)) { return; } if (Spells.W.IsReady()) { Spells.W.Cast(target); } ForceItem(); ForceCastQ(target); if (Spells.R.IsReady() && Spells.R.Instance.Name == IsSecondR) { Spells.R.Cast(target.Position); } } }
public static void OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (!Program.E.IsReady() || !(sender is AIHeroClient)) { return; } var casterName = sender.CharacterName; var slot = args.Slot; var nameToLower = casterName.ToLower(); var spellName = args.SData.Name; var spellNameToLower = spellName.ToLower(); if (args.Target != null && args.Target.IsMe || ObjectManager.Player.Position.Distance(args.End) < 350) { if (spellName == "RenektonDice") { Program.E.Cast(sender); } if ((casterName == "Leona" || casterName == "Graves") && slot == SpellSlot.E) { Program.E.Cast(sender); } if (casterName == "Alistar" && slot == SpellSlot.W) { Program.E.Cast(sender); } if (casterName == "Camille" && slot == SpellSlot.E && spellName != "CamilleE") { Program.E.Cast(sender); } if (casterName == "Diana" && slot == SpellSlot.R) { Program.E.Cast(sender); } if (casterName == "Shyvana" && slot == SpellSlot.R) { Program.E.Cast(sender); } if (casterName == "Akali" && slot == SpellSlot.R && args.SData.CooldownTime > 2.5) { Program.E.Cast(sender); } if (spellName.ToLower().Contains("flash") && sender.IsMelee) { Program.E.Cast(sender); } if (nameToLower.Contains("zhao") || nameToLower.Contains("zix") && slot == SpellSlot.E) { Program.E.Cast(sender); } if (casterName == "Pantheon" && slot == SpellSlot.W) { Program.E.Cast(sender); } if ((casterName == "Aatrox" || casterName == "Fiora" || casterName == "Fizz" || casterName == "Irelia" || casterName == "Jax") && slot == SpellSlot.Q) { Program.E.Cast(sender); } if ((casterName == "Ekko" || casterName == "Shen" || casterName == "Talon" || casterName == "Tryndamere" || casterName == "Zac") && slot == SpellSlot.E) { Program.E.Cast(sender); } if (spellNameToLower == "elisespiderqcast" || spellNameToLower == "jaycetotheskies" || spellNameToLower == "riftwalk" || spellNameToLower == "rivenfeint" || spellNameToLower == "sejuaniarcticassault") { Program.E.Cast(sender); } if ( casterName == "Yasuo" && args.Target != null && args.Target.IsMe && slot == SpellSlot.E) { Program.E.Cast(sender); } } if (sender.Distance(ObjectManager.Player) < 550) { //INTERRUPTER if ((casterName == "Katarina" || casterName == "Caitlyn" || casterName == "Karthus" || casterName == "FiddleSticks" || casterName == "Galio" || casterName == "Jhin" || casterName == "Malzahar" || casterName == "MissFortune" || casterName == "Nunu" || casterName == "Pantheon" || casterName == "Sion" || casterName == "TwistedFate" || casterName == "TahmKench" || casterName == "Urgot" || casterName == "Velkoz" || casterName == "Warwick") && slot == SpellSlot.R) { Program.E.Cast(sender); } if (casterName == "MasterYi" && slot == SpellSlot.W) { for (var i = 40; i < 425; i += 125) { var flags = NavMesh.GetCollisionFlags(sender.Position.ToVector2() .Extend(Heroes.Player.Position.ToVector2(), -i).ToVector3()); if (flags != null && flags.HasFlag(CollisionFlags.Wall) || flags.HasFlag(CollisionFlags.Building)) { Program.E.Cast(sender); return; } } } if (casterName == "Vi" && slot == SpellSlot.Q) { Program.E.Cast(sender); } if (casterName == "FiddleSticks" && slot == SpellSlot.W) { Program.E.Cast(sender); } if (casterName == "Vladimir" && slot == SpellSlot.E && sender.IsFacing(ObjectManager.Player)) { Program.E.Cast(sender); } } }
internal virtual void OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { }
private static void AIHeroClientOnOnDoCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender == null || !sender.IsValid) { return; } if (Config.PrintSpellData && sender is AIHeroClient) { Chat.Print(Utils.TickCount + " ProcessSpellCast: " + args.SData.Name); Console.WriteLine(Utils.TickCount + " ProcessSpellCast: " + args.SData.Name); } if (sender.Team == ObjectManager.Player.Team && !Config.TestOnAllies) { return; } if (args.SData.Name == "DravenRDoublecast") { Program.DetectedSkillshots.RemoveAll( s => s.Unit.NetworkId == sender.NetworkId && s.SpellData.SpellName == "DravenRCast"); } // Get the skillshot data. var spellData = SpellDatabase.GetByName(args.SData.Name); // Skillshot not added in the database. if (spellData == null) { return; } if (spellData.SpellName == "FlashFrost" && args.Target != null && args.Target.NetworkId == sender.NetworkId) { return; } if (spellData.SpellName == "WarwickR") { spellData.Range = (int)Math.Ceiling(2.5 * sender.MoveSpeed); } var startPos = new Vector2(); if (spellData.FromObject != "") { foreach (var o in ObjectManager.Get <GameObject>()) { if (o.Name.Contains(spellData.FromObject) || new Regex(spellData.FromObject).IsMatch(o.Name)) { startPos = o.Position.ToVector2(); } } } else { startPos = sender.Position.ToVector2(); } if (spellData.FromObjects != null && spellData.FromObjects.Length > 0) { foreach (var obj in ObjectManager.Get <GameObject>()) { if ((obj.IsEnemy || Config.TestOnAllies) && spellData.FromObjects.Any(f => new Regex(f).IsMatch(obj.Name))) { var start = obj.Position.ToVector2(); var end = start + spellData.Range * (args.To.ToVector2() - obj.Position.ToVector2()).Normalized(); TriggerOnDetectSkillshot( DetectionType.ProcessSpell, spellData, Utils.TickCount - Game.Ping / 2, start, end, sender); } } } if (!startPos.IsValid()) { return; } var endPos = args.To.ToVector2(); // Calculate the real end point. var direction = (endPos - startPos).Normalized(); if (startPos.Distance(endPos) > spellData.Range || spellData.FixedRange) { endPos = startPos + direction * spellData.Range; } if (spellData.ExtraRange != -1) { endPos = endPos + Math.Min(spellData.ExtraRange, spellData.Range - endPos.Distance(startPos)) * direction; } // Trigger the skillshot detection callbacks. TriggerOnDetectSkillshot(DetectionType.ProcessSpell, spellData, Utils.TickCount - Game.Ping / 2, startPos, endPos, sender); }
private static void AIHeroClient_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if ((args.Slot == SpellSlot.Q || args.Slot == SpellSlot.W || args.Slot == SpellSlot.E || args.Slot == SpellSlot.R) && sender.IsEnemy && W.IsReady() && _Player.Distance(sender) <= args.SData.CastRange && Orbwalker.ActiveMode == OrbwalkerMode.Combo) { if (args.SData.TargetingType == SpellDataTargetType.Unit || args.SData.TargetingType == SpellDataTargetType.SelfAndUnit || args.SData.TargetingType == SpellDataTargetType.Self) { if ((args.Target.NetworkId == ObjectManager.Player.NetworkId && args.Time < 1.5 || args.End.Distance(ObjectManager.Player.Position) <= ObjectManager.Player.BoundingRadius * 3) && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { W.Cast(); } } else if (args.SData.TargetingType == SpellDataTargetType.LocationAoe) { var castvector = new Geometry.Circle(args.End, args.SData.CastRadius).IsInside( ObjectManager.Player.Position); if (castvector && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { W.Cast(); } } else if (args.SData.TargetingType == SpellDataTargetType.Cone) { var castvector = new Geometry.Arc(args.Start, args.End, args.SData.CastConeAngle, args.SData.CastRange) .IsInside(ObjectManager.Player.Position); if (castvector && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { W.Cast(); } } else if (args.SData.TargetingType == SpellDataTargetType.SelfAoe) { var castvector = new Geometry.Circle(sender.Position, args.SData.CastRadius).IsInside( ObjectManager.Player.Position); if (castvector && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { W.Cast(); } } else { var castvector = new Geometry.Rectangle(args.Start, args.End, args.SData.LineWidth).IsInside( ObjectManager.Player.Position); if (castvector && Evade[args.SData.Name].GetValue <MenuBool>().Enabled) { W.Cast(); } } if (args.SData.Name == "yasuoq3w") { W.Cast(); } if (args.SData.Name == "ZedR") { W.Cast(); } if (args.SData.Name == "KarthusFallenOne") { W.Cast(); } if (args.SData.Name == "SoulShackles") { W.Cast(); } if (args.SData.Name == "AbsoluteZero") { W.Cast(); } if (args.SData.Name == "NocturneUnspeakableHorror") { W.Cast(); } } }
private static void Obj_AI_Base_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (BadaoMainVariables.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear) { return; } if (Player.ManaPercent < BadaoGravesVariables.ManaJungle.GetValue <Slider>().Value) { return; } if (!sender.IsMe) { return; } if (args.SData.IsAutoAttack() && args.Target != null && args.Target.Team == GameObjectTeam.Neutral) { int delay2 = 200; Utility.DelayAction.Add(Game.Ping - Game.Ping, () => { if (BadaoMainVariables.E.IsReady() && BadaoGravesVariables.JungleE.GetValue <bool>()) { var position = Player.Position.To2D().Extend(Game.CursorPosRaw.To2D(), 250 /*BadaoMainVariables.E.Range*/); if (args.Target.Position.To2D().Distance(position) <= -250 + Player.AttackRange + Player.BoundingRadius /*&& !Utility.UnderTurret(position.To3D(), true)*/) { BadaoMainVariables.E.Cast(position); //for (int i = 0; i < delay2; i = i + 5) //{ // Game.SendEmote(Emote.Dance); Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); // Utility.DelayAction.Add(i, () => { // Game.SendEmote(Emote.Dance); // Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); // Player.IssueOrder(GameObjectOrder.AttackUnit, args.Target); // }); //} } else { var points = Geometry.CircleCircleIntersection(Player.Position.To2D(), args.Target.Position.To2D(), 425, -250 + Player.AttackRange + Player.BoundingRadius); var pos = points.Where(x => !NavMesh.GetCollisionFlags(x.X, x.Y).HasFlag(CollisionFlags.Wall) && !NavMesh.GetCollisionFlags(x.X, x.Y).HasFlag(CollisionFlags.Building) /* && !Utility.UnderTurret(x.To3D(), true)*/) .OrderBy(x => x.Distance(Game.CursorPosRaw) /*x.To3D().CountEnemiesInRange(1000)*/).FirstOrDefault(); if (pos != null) { BadaoMainVariables.E.Cast(pos); for (int i = 0; i < delay2; i = i + 5) { Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPosRaw); Utility.DelayAction.Add(i, () => { Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPosRaw); Player.IssueOrder(GameObjectOrder.AttackUnit, args.Target); }); } } } } } ); } }
private static Gapcloser GetGapcloser(AIBaseClientProcessSpellCastEventArgs args) { return(Spells.SingleOrDefault(spell => spell.SpellName == args.SData.Name.ToLowerInvariant())); }
private void Game_ProcessSpell(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (enabled) { try { AIHeroClient target = args.Target as AIHeroClient; if (target != null && target.Team != sender.Team) { if (sender.IsValid && !sender.IsDead) { var data = IncomingDamagesAlly.Concat(IncomingDamagesEnemy) .FirstOrDefault(i => i.Hero.NetworkId == target.NetworkId); if (data != null) { var missileSpeed = (sender.Distance(target) / args.SData.MissileSpeed) + args.SData.SpellCastTime; missileSpeed = missileSpeed > 1f ? 0.8f : missileSpeed; if (Orbwalker.IsAutoAttack(args.SData.Name)) { var dmg = (float) (sender.GetAutoAttackDamage(target) + ItemHandler.GetSheenDmg(target)); if (args.SData.Name.ToLower().Contains("crit")) { dmg = dmg * 2; } data.Damages.Add( new Dmg(target, dmg, missileSpeed, !sender.Name.ToLower().Contains("turret"))); } else { var hero = sender as AIHeroClient; if (hero == null) { return; } if (!DrawHelper.damagePredEnabled(hero.CharacterName, args.Slot)) { return; } if ( !CombatHelper.BuffsList.Any( b => args.Slot == b.Slot && hero.CharacterName == b.CharacterName)) { data.Damages.Add( new Dmg( target, (float) Damage.GetSpellDamage(hero, (AIBaseClient)args.Target, args.Slot), missileSpeed, false, SpellDatabase.CcList.Any( cc => cc.Slot == args.Slot && cc.Champion.CharacterName == hero.CharacterName))); } } } } } } catch (Exception) { } } }
public static void OnProcessSpellcast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (args.Target == null) { return; } #region ward brush after condemn /*if (sender.IsMe && args.SData.Name.ToLower().Contains("condemn") && args.Target.IsValid<AIHeroClient>()) * { * var target = (AIHeroClient)args.Target; * if (Program.ComboMenu.Item("EQ").GetValue<bool>() && target.IsVisible && * !target.HasBuffOfType(BuffType.Stun) && Program.Q.IsReady()) //#TODO: fix * { * var tumblePos = target.GetTumblePos(); * Tumble.Cast(tumblePos); * } * * if (NavMesh.IsWallOfGrass(args.End, 100)) * { * var blueTrinket = ItemId.Farsight_Alteration; * if (Items.HasItem((int)ItemId.Farsight_Alteration, Heroes.Player) && * Items.CanUseItem((int)ItemId.Farsight_Alteration)) * blueTrinket = ItemId.Farsight_Alteration; * * var yellowTrinket = ItemId.Warding_Totem; * if (Items.HasItem((int)ItemId.Greater_Stealth_Totem_Trinket, Heroes.Player)) * yellowTrinket = ItemId.Greater_Stealth_Totem_Trinket; * * if (Items.CanUseItem((int)blueTrinket)) * Items.UseItem((int)blueTrinket, args.End.Randomize(0, 100)); * if (Items.CanUseItem((int)yellowTrinket)) * Items.UseItem((int)yellowTrinket, args.End.Randomize(0, 100)); * } * }*/ #endregion ward brush after condemn // need to fix "ward brush after condemn + Anti-Stealth" #region Anti-Stealth if (args.SData.Name.ToLower().Contains("talonshadow")) //#TODO get the actual buff name { /* if (Items.HasItem((int)ItemId.Oracle_Alteration) && * Items.CanUseItem((int)ItemId.Oracle_Alteration)) * Items.UseItem((int)ItemId.Oracle_Alteration, Heroes.Player.Position); * else if (Items.HasItem((int)ItemId.Control_Ward, Heroes.Player)) * Items.UseItem((int)ItemId.Control_Ward, Heroes.Player.Position.Randomize(0, 125));*/ } #endregion Anti-Stealth if (MyWizard.ShouldSaveCondemn()) { return; } if (sender.Distance(Heroes.Player) > 1500 || !args.Target.IsMe || args.SData == null) { return; } //how to milk alistar/thresh/everytoplaner var spellData = SpellDb.GetByName(args.SData.Name); /* if (spellData != null && !Heroes.Player.IsUnderEnemyTurret(true) && * !Lists.UselessChamps.Contains(sender.CharacterName)) * if (spellData.CcType == CcType.Knockup || spellData.CcType == CcType.Stun || * spellData.CcType == CcType.Knockback || spellData.CcType == CcType.Suppression) * Program.E.Cast(sender);*/ }
/// <summary> /// On do cast event. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="args"> /// The args. /// </param> private static void OnDoCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { EventGapcloser(sender, args); EventInterruptableSpell(sender, args); EventTurret(sender); }
private static void OnDoCastDelayed(AIBaseClientProcessSpellCastEventArgs args) { if (SP) { AAPassive = false; } else { AAPassive = Player.HasBuff("LucianPassiveBuff"); } if (args.Target is AIHeroClient) { var target = (AIBaseClient)args.Target; if (Orbwalker.ActiveMode == OrbwalkerMode.Harass && target.IsValid) { if (Player.ManaPercent < HHMinMana) { return; } if (E.IsReady() && !AAPassive && HE == "Side") { E.Cast((Deviation(Player.Position.ToVector2(), target.Position.ToVector2(), 65).ToVector3())); } if (E.IsReady() && !AAPassive && HE == "Cursor") { E.Cast(Player.Position.Extend(Game.CursorPos, 50)); } if (E.IsReady() && !AAPassive && HE == "Enemy") { E.Cast(Player.Position.Extend(target.Position, 50)); } if (Q.IsReady() && (!E.IsReady() || (E.IsReady() && HE == "Never")) && HQ && !AAPassive) { Q.Cast(target); } if ((!E.IsReady() || (E.IsReady() && HE == "Never")) && (!Q.IsReady() || (Q.IsReady() && !HQ)) && HW && W.IsReady() && !AAPassive) { W.Cast(target.Position); } } } if (args.Target is AIMinionClient && args.Target.IsValid) { if (Orbwalker.ActiveMode == OrbwalkerMode.LaneClear) { var Mobs = GameObjects.GetMinions(Player.GetRealAutoAttackRange(), MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth); if (Mobs[0].IsValid && Mobs.Count != 0) { if (E.IsReady() && !AAPassive && JE) { E.Cast(Player.Position.Extend(Game.CursorPos, 70)); } if (Q.IsReady() && (!E.IsReady() || (E.IsReady() && !JE)) && JQ && !AAPassive) { Q.Cast(Mobs[0]); } if ((!E.IsReady() || (E.IsReady() && !JE)) && (!Q.IsReady() || (Q.IsReady() && !JQ)) && JW && W.IsReady() && !AAPassive) { W.Cast(Mobs[0].Position); } } } } }
private static void AIHeroClient_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { }
private static void AIBaseClient_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender.IsMe) { return; } if (args.Target.IsMe && sender is AITurretClient) { if (Orbwalker.ActiveMode <= OrbwalkerMode.Harass) { var target = TargetSelector.GetTargets(Q.Range).OrderBy(i => i.Health).FirstOrDefault(); if (target != null) { if (Q.Cast(target) == CastStates.SuccessfullyCasted || Q.CastOnUnit(target)) { return; } } } else { var obj = ObjectManager.Get <AIMinionClient>().Where(i => i.IsValidTarget(Q.Range) && !i.IsAlly && !i.IsDead).OrderBy(i => i.Health).LastOrDefault(i => !Yasuo_LogicHelper.Logichelper.UnderTower(i.Position)); if (obj != null) { if (Q.Cast(obj) == CastStates.SuccessfullyCasted || Q.CastOnUnit(obj)) { return; } } var target = TargetSelector.GetTargets(Q.Range).OrderBy(i => i.Health).FirstOrDefault(i => !Yasuo_LogicHelper.Logichelper.UnderTower(i.Position)); if (target != null) { if (Q.Cast(target) == CastStates.SuccessfullyCasted || Q.CastOnUnit(target)) { return; } } } } if (args.Target.IsMe && sender is AIHeroClient && args.Slot <= SpellSlot.R) { if (Orbwalker.ActiveMode <= OrbwalkerMode.Harass) { var target = TargetSelector.GetTargets(Q.Range).OrderBy(i => i.Health).FirstOrDefault(i => !Yasuo_LogicHelper.Logichelper.UnderTower(i.Position)); if (target != null) { if (Q.Cast(target) == CastStates.SuccessfullyCasted || Q.CastOnUnit(target)) { return; } } } else { var obj = ObjectManager.Get <AIMinionClient>().Where(i => i.IsValidTarget(Q.Range) && !i.IsAlly && !i.IsDead).OrderBy(i => i.Health).LastOrDefault(i => !Yasuo_LogicHelper.Logichelper.UnderTower(i.Position)); if (obj != null) { if (Q.Cast(obj) == CastStates.SuccessfullyCasted || Q.CastOnUnit(obj)) { return; } } var target = TargetSelector.GetTargets(Q.Range).OrderBy(i => i.Health).FirstOrDefault(i => !Yasuo_LogicHelper.Logichelper.UnderTower(i.Position)); if (target != null) { if (Q.Cast(target) == CastStates.SuccessfullyCasted || Q.CastOnUnit(target)) { return; } } } } }
//private static Geometry.Circle SkillCirCle; //private static Geometry.Rectangle SkillLine; private static void RivenEEvade(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (!MenuRiven.ESettings.EEvade.Enabled) { return; } if (!sender.IsAlly && args.Slot != SpellSlot.Unknown && (sender is AIHeroClient)) { if ( args.SData.TargetingType == SpellDataTargetType.Unit || args.SData.TargetingType == SpellDataTargetType.SelfAndUnit || args.SData.TargetingType == SpellDataTargetType.Self ) { Console.WriteLine("Targeted {0} : " + args.SData.Name + " ( By " + sender.CharacterName + " )", args.Slot.ToString()); if (args.Target.MemoryAddress == Player.MemoryAddress && args.Time < 1.5) { if (E.IsReady()) { E.Cast(Game.CursorPos); Render.Circle.DrawCircle(Game.CursorPos, 70, System.Drawing.Color.Red); } } else { Console.WriteLine(" False in Evade Targeted"); } } else { if ( args.SData.TargetingType == SpellDataTargetType.LocationAoe || args.SData.TargetingType == SpellDataTargetType.SelfAoe ) { Console.WriteLine("Circle {0} : " + args.SData.Name + " ( By " + sender.CharacterName + " )", args.Slot.ToString()); //SkillCirCle = new Geometry.Circle(args.End, args.SData.CastRadius); var CastPos = (new Geometry.Circle(args.End, args.SData.CastRadius)).Points.OrderBy(i => i.DistanceToPlayer()).FirstOrDefault(); if (args.End.DistanceToPlayer() < args.SData.CastRadius + 250) { if (CastPos.DistanceToPlayer() < 150 && Q.IsReady()) { Q.Cast(CastPos); } else { if (E.IsReady()) { E.Cast(CastPos); } } } else { Console.WriteLine(" False in Evade Circle"); } } else { Console.WriteLine("Line {0} : " + args.SData.Name + " ( By " + sender.CharacterName + " )", args.Slot.ToString()); //SkillLine = (new Geometry.Rectangle(args.Start, args.End, 1)); var CastPos = (new Geometry.Rectangle(args.Start, args.End, 1)).Points.OrderBy(i => i.DistanceToPlayer()).FirstOrDefault(); var EvadePos = Player.Position.Extend((new Geometry.Rectangle(args.Start, args.End, 1)).Points.MinOrDefault(i => i.DistanceToPlayer()).ToVector3(), -450); if (CastPos.DistanceToPlayer() < args.SData.CastRadius + 250) { if (CastPos.DistanceToPlayer() < 150 && Q.IsReady()) { Q.Cast(EvadePos); Render.Circle.DrawCircle(EvadePos, 70, System.Drawing.Color.Red); } else { if (E.IsReady()) { E.Cast(EvadePos); Render.Circle.DrawCircle(EvadePos, 70, System.Drawing.Color.Red); } } } else { Console.WriteLine(" False in Evade Line"); } } } } }
private static void OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender == null || !sender.IsValid) { return; } if (args.SData.Name == "dravenrdoublecast") { EvadeManager.DetectedSkillshots.RemoveAll( s => s.Unit.NetworkId == sender.NetworkId && s.SpellData.SpellName == "DravenRCast"); } if (!sender.IsValid || sender.Team == ObjectManager.Player.Team) { return; } var spellData = SpellDatabase.GetByName(args.SData.Name); if (spellData == null) { return; } var startPos = new Vector2(); if (spellData.FromObject != "") { foreach (var o in ObjectManager.Get <GameObject>()) { if (o.Name.Contains(spellData.FromObject)) { startPos = o.Position.ToVector2(); } } } else { startPos = sender.Position.ToVector2(); } if (spellData.FromObjects != null && spellData.FromObjects.Length > 0) { foreach (var obj in ObjectManager.Get <GameObject>()) { if (obj.IsEnemy && spellData.FromObjects.Contains(obj.Name)) { var start = obj.Position.ToVector2(); var end = start + spellData.Range * (args.End.ToVector2() - obj.Position.ToVector2()).Normalized(); TriggerOnDetectSkillshot( DetectionType.ProcessSpell, spellData, Utils.GameTimeTickCount - Game.Ping / 2, start, end, end, sender); } } } if (!startPos.IsValid()) { return; } var endPos = args.End.ToVector2(); if (ObjectManager.Player.CharacterName == "Janna" || ObjectManager.Player.CharacterName == "Rakan" || ObjectManager.Player.CharacterName == "Lulu" || ObjectManager.Player.CharacterName == "Ivern" || ObjectManager.Player.CharacterName == "Karma") { bestAllies = GameObjects.AllyHeroes .Where(t => t.Distance(ObjectManager.Player) < SupportAIO.Common.Champion.E.Range) .OrderBy(x => x.Health); } if (ObjectManager.Player.CharacterName == "Lux" || ObjectManager.Player.CharacterName == "Sona" || ObjectManager.Player.CharacterName == "Taric") { bestAllies = GameObjects.AllyHeroes .Where(t => t.Distance(ObjectManager.Player) < SupportAIO.Common.Champion.W.Range) .OrderBy(x => x.Health); } foreach (var ally in bestAllies) { if (spellData.SpellName == "LucianQ" && args.Target != null && args.Target.NetworkId == ally.NetworkId) { return; } var direction = (endPos - startPos).Normalized(); if (startPos.Distance(endPos) > spellData.Range || spellData.FixedRange) { endPos = startPos + direction * spellData.Range; } if (spellData.ExtraRange != -1) { endPos = endPos + Math.Min(spellData.ExtraRange, spellData.Range - endPos.Distance(startPos)) * direction; } TriggerOnDetectSkillshot( DetectionType.ProcessSpell, spellData, Utils.GameTimeTickCount - Game.Ping / 2, startPos, endPos, args.End.ToVector2(), sender); } }
private static void AIBaseClient_OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender.IsMe) { if (args.SData.Name.Contains("ItemTiamatCleave") && W.IsReady()) { var targets = TargetSelector.GetTargets(W.Range); if (targets.Any()) { W.Cast(); } } if (args.SData.Name == "RivenTriCleave") { lastQcast = Variables.TickCount; Orbwalker.ResetAutoAttackTimer(); } } if (!sender.IsMe) { if (args.SData.Name.Contains("TalonCutthroat")) { if (args.Target.NetworkId == Player.NetworkId) { if (W.IsReady() && sender.IsValidTarget(W.Range)) { W.Cast(sender.Position); } } } if (args.SData.Name.Contains("RenektonPreExecute")) { if (args.Target.NetworkId == Player.NetworkId) { if (W.IsReady()) { W.Cast(sender.Position); } } } if (args.SData.Name.Contains("GarenRPreCast")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(Player.Position.Extend(sender.Position, -300)); } } } if (args.SData.Name.Contains("GarenQAttack")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("XenZhaoThrust3")) { if (args.Target.NetworkId == Player.NetworkId) { if (W.IsReady() && sender.IsValidTarget(W.Range)) { W.Cast(sender.Position); } } } if (args.SData.Name.Contains("RengarQ")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("RengarPassiveBuffDash")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("RengarPassiveBuffDashAADummy")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("TwitchEParticle")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("FizzPiercingStrike")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("HungeringStrike")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("YasuoDash")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.GetDashInfo().EndPos.Extend(Player.Position, -300)); } } } if (args.SData.Name.Contains("KatarinaRTrigger")) { if (args.Target.NetworkId == Player.NetworkId) { if (W.IsReady() && sender.IsValidTarget(W.Range)) { W.Cast(); } else if (E.IsReady()) { E.Cast(Player.Position.Extend(sender.Position, -300)); } } } if (args.SData.Name.Contains("YasuoDash")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.GetDashInfo().EndPos.Extend(Player.Position, -300)); } } } if (args.SData.Name.Contains("KatarinaE")) { if (args.Target.NetworkId == Player.NetworkId) { if (W.IsReady()) { W.Cast(sender.Position); } } } if (args.SData.Name.Contains("MonkeyKingQAttack")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("MonkeyKingSpinToWin")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } else if (W.IsReady()) { W.Cast(sender.Position); } } } if (args.SData.Name.Contains("MonkeyKingQAttack")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("MonkeyKingQAttack")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } if (args.SData.Name.Contains("MonkeyKingQAttack")) { if (args.Target.NetworkId == Player.NetworkId) { if (E.IsReady()) { E.Cast(sender.Position); } } } } }