public static void OnProcessSpellCast(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args) { string[] summoners = { "Dot", "Flash", "Exhaust" }; if (hero.IsEnemy && hero.IsValid) { foreach (var spell in summoners) { if (menu.Item("EnemySummoners").GetValue<bool>()) { if (args.SData.Name.Contains(spell)) { if (spell.Contains("Dot")) { float spellUpIn = Game.ClockTime + 3.5f; string message = hero.BaseSkinName.ToLower() + "ignite" + spellUpIn; Game.PrintChat(message); } if (spell.Contains("Flash")) { float spellUpIn = Game.ClockTime + 5.0f; string message = hero.BaseSkinName.ToLower() + "flash" + spellUpIn; Game.PrintChat(message); } if (spell.Contains("Exhaust")) { float spellUpIn = Game.ClockTime + 3.5f; string message = hero.BaseSkinName.ToLower() + "exhaust" + spellUpIn; Game.PrintChat(message); } } } } } }
private static void ProcessSpell_SionE(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs) { if (spellData.SpellName == "SionE") { var objList = new List<Obj_AI_Minion>(); foreach (var obj in ObjectManager.Get<Obj_AI_Minion>()) { if (obj != null && obj.IsValid && !obj.IsDead && obj.IsAlly) { objList.Add(obj); } } objList.OrderBy(o => o.Distance(hero.ServerPosition)); var spellStart = args.Start.To2D(); var dir = (args.End.To2D() - spellStart).Normalized(); var spellEnd = spellStart + dir * spellData.Range; foreach (var obj in objList) { var objProjection = obj.ServerPosition.To2D().ProjectOn(spellStart, spellEnd); if (objProjection.IsOnSegment && objProjection.SegmentPoint.Distance(obj.ServerPosition.To2D()) < obj.BoundingRadius + spellData.Radius) { //sth happens } } //specialSpellArgs.noProcess = true; } }
public static bool Contains(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs args) { var name = unit.CharData.BaseSkinName; var slot = unit.GetSpellSlot(args); if (!List.ContainsKey(name) || !Program.Menu.Item(name).IsActive()) { return false; } var correctSlot = List[name].Equals(slot); if (args.SData.IsAutoAttack()) { if (name.Equals("Blitzcrank")) {} } if (name.Equals("Jayce")) { correctSlot = correctSlot && unit.CharData.BaseSkinName.Equals("JayceHammerForm"); } if (name.Equals("LeBlanc")) { correctSlot = args.SData.Name.Equals("LeblancChaosOrbM"); } if (name.Equals("Lissandra")) { //correctSlot = spellslot 48 } //Game.PrintChat("{0} {1} {2}", name, slot, active); return correctSlot; }
public static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsMe) return; var target = (Obj_AI_Base)args.Target; if (args.Slot == SpellSlot.W && args.Target != null && target.Name != Player.Instance.Name) { if (target.IsAlly || target.IsMinion) { WExpire = Environment.TickCount + WSpellDelay[BenchTheKench.WSpellSwallow.Level - 1]; WTarget = target; return; } if (target.IsEnemy && target is AIHeroClient) { WExpire = Environment.TickCount + (WSpellDelay[BenchTheKench.WSpellSwallow.Level - 1] / 2); WTarget = target; return; } } if (args.Slot == SpellSlot.W && IsSwallowed()) { WExpire = Environment.TickCount - 1; WTarget = null; } }
/// <summary> /// Called on do-cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> public static void Weaving(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!(args.Target is AIHeroClient) || Invulnerable.Check(args.Target as AIHeroClient, DamageType.Magical)) { return; } /// <summary> /// The Q Combo Weaving Logic. /// </summary> if (Vars.Q.IsReady() && (args.Target as AIHeroClient).LSIsValidTarget(Vars.Q.Range) && Vars.getCheckBoxItem(Vars.QMenu, "combo")) { Vars.Q.Cast(Vars.Q.GetPrediction(args.Target as AIHeroClient).CastPosition); return; } /// <summary> /// The R Combo Weaving Logic. /// </summary> if (Vars.R.IsReady() && (args.Target as AIHeroClient).HasBuff("dianamoonlight") && (args.Target as AIHeroClient).LSIsValidTarget(Vars.R.Range) && Vars.getCheckBoxItem(Vars.RMenu, "combo")) { Vars.R.CastOnUnit(args.Target as AIHeroClient); } }
private void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsEnemy && sender is Obj_AI_Hero && sender.Distance(Player.Position) < 800) { switch (args.SData.Name) { case "akalismokebomb": CastVisionWards(sender.ServerPosition); break; case "deceive": CastVisionWards(sender.ServerPosition); break; case "khazixr": CastVisionWards(sender.ServerPosition); break; case "khazixrlong": CastVisionWards(sender.ServerPosition); break; case "talonshadowassault": CastVisionWards(sender.ServerPosition); break; case "monkeykingdecoy": CastVisionWards(sender.ServerPosition); break; case "RengarR": CastVisionWards(sender.ServerPosition); break; case "TwitchHideInShadows": CastVisionWards(sender.ServerPosition); break; } } }
public static void SpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsMe) return; if ((Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) && Manager.MenuManager.UseQLC && Variables._Player.ManaPercent >= Manager.MenuManager.UseQLCMana) && Manager.SpellManager.Q.IsReady()) { if (Orbwalker.CanAutoAttack) { return; } foreach (var minion in EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Variables._Player.ServerPosition, Variables._Player.GetAutoAttackRange())) { if (minion == null) return; var dmg = Variables._Player.GetSpellDamage(minion, SpellSlot.Q) + Variables._Player.GetAutoAttackDamage(minion); if (Prediction.Health.GetPrediction(minion, (int)(Variables._Player.AttackDelay * 1000)) <= dmg / 2 && (Orbwalker.LastTarget == null || Orbwalker.LastTarget.NetworkId != minion.NetworkId)) { Player.CastSpell(SpellSlot.Q, Game.CursorPos); } } } }
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { /*if (args.Target.Equals(Player)) { args.SData. }*/ }
private static void OnCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsEnemy) return; if (SoulBoundHero == null) return; // Calculate Damage if ((!(sender is Obj_AI_Hero) || args.SData.IsAutoAttack()) && args.Target != null && args.Target.NetworkId == SoulBoundHero.NetworkId) { // Calculate arrival time and damage _incomingDamage.Add(SoulBoundHero.ServerPosition.Distance(sender.ServerPosition) / args.SData.MissileSpeed + Game.Time, (float)sender.GetAutoAttackDamage(SoulBoundHero)); } // Sender is a hero else if (sender is Obj_AI_Hero) { var attacker = (Obj_AI_Hero)sender; var slot = attacker.GetSpellSlot(args.SData.Name); if (slot == SpellSlot.Unknown) return; if (slot == attacker.GetSpellSlot("SummonerDot") && args.Target != null && args.Target.NetworkId == SoulBoundHero.NetworkId) _instantDamage.Add(Game.Time + 2, (float)attacker.GetSummonerSpellDamage(SoulBoundHero, LeagueSharp.Common.Damage.SummonerSpell.Ignite)); else if (slot.HasFlag(SpellSlot.Q | SpellSlot.W | SpellSlot.E | SpellSlot.R) && ((args.Target != null && args.Target.NetworkId == SoulBoundHero.NetworkId) || args.End.Distance(SoulBoundHero.ServerPosition) < Math.Pow(args.SData.LineWidth, 2))) _instantDamage.Add(Game.Time + 2, (float)attacker.GetSpellDamage(SoulBoundHero, slot)); } }
protected override void OnProcessSpellCast(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs spell) { if (!unit.IsMe && unit.IsEnemy) { if (!spell.SData.IsAutoAttack() && spell.Target.IsMe && E.IsReady()) { if (unit.IsChampion(unit.BaseSkinName)) { if (myOrbwalker.ActiveMode == myOrbwalker.OrbwalkingMode.Combo) { if (config.Item("UseECombo").GetValue<bool>()) { Utility.DelayAction.Add(myUtility.RandomDelay(0, 200), () => E.Cast()); } } if (myOrbwalker.ActiveMode == myOrbwalker.OrbwalkingMode.Harass) { if (config.Item("UseEHarass").GetValue<bool>()) { Utility.DelayAction.Add(myUtility.RandomDelay(0, 200), () => E.Cast()); } } if (config.Item("UseEMisc").GetValue<bool>()) { Utility.DelayAction.Add(myUtility.RandomDelay(0, 200), () => E.Cast()); } } } } }
private void SpellDetector_OnProcessSpecialSpell(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs) { if (spellData.spellName == "TaricE") { var sdata = new SpellData(); sdata.charName = "Taric"; sdata.name = "TaricE2"; sdata.spellName = "TaricE"; sdata.range = 750; sdata.radius = 100; sdata.fixedRange = true; sdata.spellDelay = 1000; sdata.projectileSpeed = int.MaxValue; sdata.dangerlevel = 3; var partner = HeroManager.Enemies.FirstOrDefault(x => x.HasBuff("taricwleashactive")); if (partner != null && partner.ChampionName != "Taric") { var start = partner.ServerPosition.LSTo2D(); var direction = (args.End.LSTo2D() - start).LSNormalized(); var end = start + direction * spellData.range; SpellDetector.CreateSpellData(partner, start.To3D(), end.To3D(), sdata); } } }
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsMe) { _lastAaTick = Environment.TickCount; } }
private void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsMe && args.Slot == QWER.Slot) { MissileEndPos = args.End; } }
/// <summary> /// Called when the sender is done doing the windup time for a spell/AA /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs"/> instance containing the event data.</param> private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { try { if (sender.IsMe && args.Slot == SpellSlot.R) { var QPosition = Provider.GetSOLOVayneQPosition(); if (QPosition != Vector3.Zero) { Variables.spells[SpellSlot.Q].Cast(QPosition); return; } var secondaryQPosition = ObjectManager.Player.ServerPosition.Extend(Game.CursorPos, 300f); if (!secondaryQPosition.UnderTurret(true)) { Variables.spells[SpellSlot.Q].Cast(secondaryQPosition); } } } catch (Exception e) { LogHelper.AddToLog(new LogItem("AutoQifR", e, LogSeverity.Error)); } }
/// <summary> /// Called on do-cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> public static void Specials(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!Vars.TypesMenu["defensives"].Cast<CheckBox>().CurrentValue) { return; } if (sender != null && args.Target != null) { /// <summary> /// The Ohmwrecker logic. /// </summary> if (Items.CanUseItem(3056) && sender.LSIsValidTarget(750f)) { if (args.Target.IsAlly && sender is Obj_AI_Turret && args.Target is AIHeroClient) { Items.UseItem(3056, sender); } } } }
private static void OnProcessSCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsMe && !args.SData.IsAutoAttack()) { IsRunning = false; } }
/// <summary> /// Called when a cast has been executed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { /// <summary> /// Load the Ohmwrecker logic. /// </summary> if (sender != null && args.Target != null && args.Target.IsAlly && sender.IsValid<Obj_AI_Turret>() && args.Target.IsValid<Obj_AI_Hero>() && Variables.Menu.Item($"{Variables.MainMenuName}.defensives").GetValue<bool>()) { Ohmwrecker.Execute(sender, args); } /// <summary> /// Load the Offensive items. /// </summary> if (sender.IsMe && Orbwalking.IsAutoAttack(args.SData.Name) && Variables.Menu.Item($"{Variables.MainMenuName}.resetters").GetValue<bool>() && (Variables.Menu.Item($"{Variables.MainMenuName}.combo_button").GetValue<KeyBind>().Active || Variables.Menu.Item($"{Variables.MainMenuName}.laneclear_button").GetValue<KeyBind>().Active)) { Resetters.Execute(sender, args); } }
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsMe) { Console.WriteLine("kek: {0}", args.SData.OverrideCastTime); } }
private void ProcessSpell_TwitchSprayandPrayAttack(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs) { if (spellData.spellName == "TwitchSprayandPrayAttack") { spellData.spellDelay = hero.AttackCastDelay * 1000; } }
internal static void SpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!Helper.GetBool("Evade.WTS", YasuoMenu.EvadeM) || sender.IsAlly || !SpellSlot.W.IsReady() || (!Helper.GetBool("Evade.FOW", YasuoMenu.EvadeM) && !sender.IsVisible)) { return; } if (args.SData.Name.Equals("MissFortuneBulletTime")) { var ssdata = GetSpell(args.SData.Name); if (ssdata.IsEnabled) { var end = args.Start.LSTo2D().LSExtend(args.End.LSTo2D(), 1400); EvadeA.Geometry.Rectangle rect = new EvadeA.Geometry.Rectangle(args.Start.LSTo2D(), end, args.SData.LineWidth); var topoly = rect.ToPolygon(); var newls = new LittleStruct { poly = topoly, argss = args, RealEndPos = end, StartTick = YasuoEvade.TickCount, data = ssdata }; DetectedPolygons.Add(newls); LeagueSharp.Common.Utility.DelayAction.Add(3000, () => DetectedPolygons.Clear()); } } if (!args.Target.IsMe) { return; } //Console.WriteLine(args.SData.Name + " " + sender.BaseSkinName); var sdata = GetSpell(args.SData.Name); if (sdata != null && sdata.IsEnabled) { var castpos = Helper.Yasuo.ServerPosition.LSExtend(args.Start, 50); LeagueSharp.Common.Utility.DelayAction.Add((int)sdata.delay, () => Helper.Spells[Helper.W].Cast(castpos)); } }
/// <summary> /// On Process Spell Cast subscribed event function /// </summary> /// <param name="sender"><see cref="Obj_AI_Base" /> sender</param> /// <param name="args">Process Spell Cast Data</param> private static void EventGapcloser(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (SpellsList.All(spell => spell.Value.SpellName != args.SData.Name.ToLower())) { return; } var hero = sender as Obj_AI_Hero; var player = GameObjects.Player; if (hero != null) { ActiveSpellsList.Add( new GapCloserEventArgs { Start = args.Start, End = args.End, Sender = hero, TickCount = Variables.TickCount, SkillType = (args.Target != null && args.Target.IsValid) ? GapcloserType.Targeted : GapcloserType.Skillshot, Slot = args.Slot, IsDirectedToPlayer = (args.Target != null && args.Target.IsValid && args.Target.IsMe) || player.Distance(args.End) < player.Distance(args.Start) || sender.IsFacing(player), SpellName = args.SData.Name }); } }
internal static void ExecuteComboLogic(GameObjectProcessSpellCastEventArgs args) { if (args.Target is Obj_AI_Hero) { var qReady = Variables.spells[SpellSlot.Q].IsEnabledAndReady(); var wReady = Variables.spells[SpellSlot.W].IsEnabledAndReady(); var eReady = Variables.spells[SpellSlot.E].IsEnabledAndReady(); var target_ex = args.Target as Obj_AI_Hero; if (qReady) { ExtendedQ(); } if (qReady && (target_ex.Distance(ObjectManager.Player) < Variables.spells[SpellSlot.Q].Range - 65f + 0.25f * target_ex.MoveSpeed) && !LucianHooks.HasPassive) { Variables.spells[SpellSlot.Q].CastOnUnit(target_ex); LeagueSharp.Common.Utility.DelayAction.Add((int)(250 + Game.Ping / 2f + ObjectManager.Player.AttackCastDelay + 560f), () => { ExecuteComboLogic(args); }); TargetSelector.SetTarget(args.Target as Obj_AI_Hero); } if (wReady && !qReady && target_ex.IsValidTarget(Variables.spells[SpellSlot.W].Range) && !LucianHooks.HasPassive) { Variables.spells[SpellSlot.W].Cast(Variables.spells[SpellSlot.W].GetPrediction(target_ex).CastPosition); LeagueSharp.Common.Utility.DelayAction.Add((int)(250 + Game.Ping / 2f + ObjectManager.Player.AttackCastDelay + 560f), () => { ExecuteComboLogic(args); }); TargetSelector.SetTarget(args.Target as Obj_AI_Hero); } if (eReady && target_ex.IsValidTarget(Variables.spells[SpellSlot.Q].Range + 300f + 65) && !LucianHooks.HasPassive && !ObjectManager.Player.IsWindingUp) { var eProvider = new EPositionProvider();; var eEndPosition = eProvider.GetEPosition(); if (eEndPosition != Vector3.Zero && eEndPosition.Distance(target_ex.ServerPosition) < Orbwalking.GetRealAutoAttackRange(target_ex)) { Variables.spells[SpellSlot.E].Cast(eEndPosition); LeagueSharp.Common.Utility.DelayAction.Add((int)(250 + Game.Ping / 2f + ObjectManager.Player.AttackCastDelay + 560f), () => { Orbwalking.ResetAutoAttackTimer(); ExecuteComboLogic(args); }); TargetSelector.SetTarget(args.Target as Obj_AI_Hero); } } } }
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { var enabled = Variable.Config["Enabled"].GetValue<MenuBool>().Value; 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>().Value) { continue; } if (champ.Slot != (sender as Obj_AI_Hero).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.Movement = false; DelayAction.Add((int) (champ.CastTime + 0.1)*1000, () => Orbwalker.Movement = true); } }
private void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsMe || args.SData.Name.ToLower().Contains("attack")) return; LastSpellTick = Environment.TickCount; }
/// <summary> /// Called on do-cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> public static void Weaving(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!(args.Target is AIHeroClient) || Invulnerable.Check(args.Target as AIHeroClient)) { return; } /// <summary> /// The W Weaving Logic. /// </summary> if (Vars.W.IsReady() && Menus.getCheckBoxItem(Vars.WMenu, "combo")) { Vars.W.Cast(); return; } /// <summary> /// The Q Weaving Logic. /// </summary> if (Vars.Q.IsReady() && Menus.getCheckBoxItem(Vars.QMenu, "combo")) { Vars.Q.Cast( Vars.Q.GetPrediction(Targets.Target) .UnitPosition.Extend((Vector2)GameObjects.Player.ServerPosition, -140)); } }
private static void ProcessSpell_ZedShuriken(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs) { if (spellData.SpellName == "ZedQ") { foreach (KeyValuePair<int, ObjectTrackerInfo> entry in ObjectTracker.ObjTracker) { var info = entry.Value; if (info.Obj.Name == "Shadow" || info.Name == "Shadow") { if (info.UsePosition == false && (info.Obj == null || !info.Obj.IsValid || info.Obj.IsDead)) { DelayAction.Add(1, () => ObjectTracker.ObjTracker.Remove(info.Obj.NetworkId)); continue; } else { Vector3 endPos2; if (info.UsePosition == false) { endPos2 = info.Obj.Position.Extend(args.End, spellData.Range).To3DWorld(); SpellDetector.CreateSpellData(hero, info.Obj.Position, endPos2, spellData, null, 0, false); } else { endPos2 = info.Position.Extend(args.End, spellData.Range).To3DWorld(); SpellDetector.CreateSpellData(hero, info.Position, endPos2, spellData, null, 0, false); } } } } } }
/// <summary> /// Fired when a unit does an auto attack. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs"/> instance containing the event data.</param> private static void Obj_AI_Base_OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (ActiveAttacks.ContainsKey(sender.NetworkId) && sender.IsMelee) { ActiveAttacks[sender.NetworkId].Processed = true; } }
private static void ProcessSpell_JarvanIVDragonStrike(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs) { if (args.SData.Name == "JarvanIVDragonStrike") { if (SpellDetector.onProcessSpells.TryGetValue("JarvanIVDragonStrike2", out spellData)) { foreach (KeyValuePair<int, ObjectTrackerInfo> entry in ObjectTracker.objTracker) { var info = entry.Value; if (info.Name == "Beacon" || info.obj.Name == "Beacon") { if (info.usePosition == false && (info.obj == null || !info.obj.IsValid || info.obj.IsDead)) { DelayAction.Add(1, () => ObjectTracker.objTracker.Remove(info.obj.NetworkId)); continue; } var objPosition = info.usePosition ? info.position.LSTo2D() : info.obj.Position.LSTo2D(); if (args.End.LSTo2D().LSDistance(objPosition) < 300) { var dir = (objPosition - args.Start.LSTo2D()).LSNormalized(); var endPosition = objPosition + dir * 110; SpellDetector.CreateSpellData(hero, args.Start, endPosition.To3D(), spellData); specialSpellArgs.noProcess = true; return; } } } } } }
private static void ProcessSpell_JarvanIVDemacianStandard(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args) { if (hero.IsEnemy && args.SData.Name == "JarvanIVDemacianStandard") { ObjectTracker.AddObjTrackerPosition("Beacon", args.End, 1000); } }
private static void OnCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (Player.InFountain()) return; // Sender and args checks if (sender.Type != GameObjectType.obj_AI_Hero)return; if (!sender.IsEnemy) return; if (args.Target != null) return; { if (!Champion.R.IsReady()) return; //if (!ManaHandler.UseAutoR()) return; if (!SMenu.Item(_MenuItemBase + "AutoSave.Boolean.AutoSavePercent").GetValue<bool>()) return; // Dont save soulmate D: if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.SoulBoundDelay")) return; Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.SoulBoundDelay"); if (!GetValidSoulMate()) return; // Get SoulBound as you can change them and also check if there in R range var healthPercent = SMenu.Item(_MenuItemBase + "AutoSave.Slider.PercentHp").GetValue<Slider>().Value; if (SoulBoundHero.CountEnemiesInRange(800) <= 0) return; // No enimies in range if (!(SoulBoundHero.HealthPercent <= healthPercent) || SoulBoundHero == null) return; //var msg = // $"<b> <font color=\"#008080\">S+ Class Kalista:-Use ULT-:-Reason-:-SoulHero HP%={SoulBoundHero.HealthPercent}, HP% to save at = {healthPercent}"; //Game.PrintChat(msg); Champion.R.Cast(); } }
private static bool SpellIsGapcloser(GameObjectProcessSpellCastEventArgs args) { return(Spells.Any(spell => spell.SpellName == args.SData.Name.ToLower())); }
public static void OnCasting(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsEnemy || sender.Type != Player.Type) { return; } var epos = Player.ServerPosition + (Player.ServerPosition - sender.ServerPosition).LSNormalized() * 300; if (!(Player.LSDistance(sender.ServerPosition) <= args.SData.CastRange)) { return; } switch (args.SData.TargettingType) { case SpellDataTargetType.Unit: if (args.Target.NetworkId == Player.NetworkId) { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LastHit) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear) && !args.SData.Name.Contains("NasusW")) { if (Spells.E.IsReady()) { Spells.E.Cast(epos); } } } break; case SpellDataTargetType.SelfAoe: if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LastHit) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { if (Spells.E.IsReady()) { Spells.E.Cast(epos); } } break; } if (args.SData.Name.Contains("IreliaEquilibriumStrike")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.W.IsReady() && InWRange(sender)) { Spells.W.Cast(); } else if (Spells.E.IsReady()) { Spells.E.Cast(epos); } } } if (args.SData.Name.Contains("TalonCutthroat")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.W.IsReady()) { Spells.W.Cast(); } } } if (args.SData.Name.Contains("RenektonPreExecute")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.W.IsReady()) { Spells.W.Cast(); } } } if (args.SData.Name.Contains("GarenRPreCast")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(epos); } } } if (args.SData.Name.Contains("GarenQAttack")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Player.Position.LSExtend(Game.CursorPos, Player.LSDistance(Game.CursorPos) + 10))); } } } if (args.SData.Name.Contains("XenZhaoThrust3")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.W.IsReady()) { Spells.W.Cast(); } } } if (args.SData.Name.Contains("RengarQ")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(); } } } if (args.SData.Name.Contains("RengarPassiveBuffDash")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(); } } } if (args.SData.Name.Contains("RengarPassiveBuffDashAADummy")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(); } } } if (args.SData.Name.Contains("TwitchEParticle")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(); } } } if (args.SData.Name.Contains("FizzPiercingStrike")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Player.Position.LSExtend(Game.CursorPos, Player.LSDistance(Game.CursorPos) + 10))); } } } if (args.SData.Name.Contains("HungeringStrike")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(); } } } if (args.SData.Name.Contains("YasuoDash")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(); } } } if (args.SData.Name.Contains("KatarinaRTrigger")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.W.IsReady() && InWRange(sender)) { Spells.W.Cast(); } else if (Spells.E.IsReady()) { Spells.E.Cast(EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Player.Position.LSExtend(Game.CursorPos, Player.LSDistance(Game.CursorPos) + 10))); } } } if (args.SData.Name.Contains("KatarinaE")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.W.IsReady()) { Spells.W.Cast(); } } } if (args.SData.Name.Contains("MonkeyKingQAttack")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(); } } } if (args.SData.Name.Contains("MonkeyKingSpinToWin")) { if (args.Target.NetworkId == Player.NetworkId) { if (Spells.E.IsReady()) { Spells.E.Cast(EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Player.Position.LSExtend(Game.CursorPos, Player.LSDistance(Game.CursorPos) + 10))); } else if (Spells.W.IsReady()) { Spells.W.Cast(); } } } }
private static void ProcessSpell_jayceshockblast(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs) { if (spellData.spellName == "jayceshockblast") { } }
private static Gapcloser GetGapcloser(GameObjectProcessSpellCastEventArgs args) { return(Spells.SingleOrDefault(spell => spell.SpellName == args.SData.Name.ToLowerInvariant())); }
/// <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 Weaving(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { }
private static void ProcessSpell_OrianaIzunaCommand(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs) { if (spellData.spellName == "OrianaIzunaCommand") { foreach (KeyValuePair <int, ObjectTrackerInfo> entry in objTracker) { var info = entry.Value; if (entry.Value.Name == "TheDoomBall") { if (info.usePosition) { SpellDetector.CreateSpellData(hero, info.position, args.End, spellData, null, 0); } else { if (info.obj == null) { return; } SpellDetector.CreateSpellData(hero, info.obj.Position, args.End, spellData, null, 0); } info.position = args.End; info.usePosition = true; } } specialSpellArgs.noProcess = true; } if (spellData.spellName == "OrianaDetonateCommand" || spellData.spellName == "OrianaDissonanceCommand") { foreach (KeyValuePair <int, ObjectTrackerInfo> entry in objTracker) { var info = entry.Value; if (entry.Value.Name == "TheDoomBall") { if (info.usePosition) { Vector3 endPos2 = info.position; SpellDetector.CreateSpellData(hero, endPos2, endPos2, spellData, null, 0); } else { if (info.obj == null) { return; } Vector3 endPos2 = info.obj.Position; SpellDetector.CreateSpellData(hero, endPos2, endPos2, spellData, null, 0); } } } specialSpellArgs.noProcess = true; } }
private void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { PredictionInput input = null; if (sender.IsMe || sender.IsEnemy || !(sender is Obj_AI_Hero)) { return; } if (!Spells.Contains(args.SData.Name) || Config.SubMenu("AutoCombo_Spells").Item(args.SData.Name).GetValue <bool>() == false) { return; } var targetable = false; var line = false; var aoe = false; drawTime = Game.Time; var result = SpellDatabase.GetByName(args.SData.Name); if (result != null) { switch (result.Type) { case SkillShotType.SkillshotLine: _skillshot = new Geometry.Polygon.Rectangle(sender.Position, sender.Position.Extend(args.End, result.Range), result.Radius); line = true; break; case SkillShotType.SkillshotMissileLine: _skillshot = new Geometry.Polygon.Rectangle(sender.Position, sender.Position.Extend(args.End, result.Range), result.Radius); line = true; break; case SkillShotType.SkillshotCircle: _skillshotAoe = new Geometry.Polygon.Circle(args.End, result.Radius); aoe = true; break; case SkillShotType.SkillshotRing: _skillshotAoe = new Geometry.Polygon.Circle(args.End, result.Radius); aoe = true; break; } } foreach ( var enemy in ObjectManager.Get <Obj_AI_Hero>() .Where(enemy => enemy.IsEnemy && enemy.Distance(Player) <= Config.SubMenu("AutoCombo").Item("Range").GetValue <Slider>().Value)) { if (!aoe && !line && args.Target.Position == enemy.Position) { targetable = true; } if (!aoe && !line && !targetable) { continue; } //Game.PrintChat(sender.BaseSkinName + " Ultimate Damage is : " + Allydamage.CalculatedDamage); //Game.PrintChat("My Ultimate Damage is : " + Mydamage.CalculatedDamage); //Game.PrintChat("Total damage is : " + (Allydamage.CalculatedDamage + Mydamage.CalculatedDamage)); if (Config.Item("Killable").GetValue <bool>()) { Allydamage = sender.GetDamageSpell(enemy, args.SData.Name); Mydamage = Player.GetDamageSpell(enemy, SpellSlot.R); if ((Allydamage.CalculatedDamage + Mydamage.CalculatedDamage) < enemy.Health && Allydamage.CalculatedDamage > enemy.Health) { return; } } if (line) { input = new PredictionInput { Unit = enemy, Type = SkillshotType.SkillshotLine, Speed = result.MissileSpeed, From = sender.Position, Delay = result.Delay, Aoe = false, Radius = result.Radius, Range = result.Range, Collision = false }; } else { if (aoe) { input = new PredictionInput { Unit = enemy, Type = SkillshotType.SkillshotCircle, Speed = result.MissileSpeed, From = sender.Position, Delay = result.Delay, Aoe = true, Radius = result.Radius, Range = result.Range, Collision = false }; } } if (!targetable) { var output = Prediction.GetPrediction(input); var unit = output.CastPosition; if (line) { if (!_skillshot.IsInside(unit) && !_skillshot.IsInside(enemy)) { continue; } } else { if (!_skillshotAoe.IsInside(unit) && !_skillshotAoe.IsInside(enemy)) { continue; } } } R.Cast(enemy.Position); if (enemy.Distance(Player.Position) <= Config.SubMenu("AutoCombo").Item("Range").GetValue <Slider>().Value) { R.Cast(enemy); R.CastOnUnit(enemy); } } }
private void Game_ProcessSpell(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args) { if (hero.IsMinion) { return; } if (testMenu.Item("ShowProcessSpell").GetValue <bool>()) { ConsolePrinter.Print(args.SData.Name + " CastTime: " + (hero.Spellbook.CastTime - Game.Time)); ConsolePrinter.Print("CastRadius: " + args.SData.CastRadius); /*foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(args.SData)) * { * string name = descriptor.Name; * object value = descriptor.GetValue(args.SData); * ConsolePrinter.Print("{0}={1}", name, value); * }*/ } if (args.SData.Name == "YasuoQW") { Draw.RenderObjects.Add( new Draw.RenderCircle(args.Start.To2D(), 500)); Draw.RenderObjects.Add( new Draw.RenderCircle(args.End.To2D(), 500)); } //ConsolePrinter.Print(EvadeUtils.TickCount - lastProcessPacketTime); //circleRenderPos = args.SData.ParticleStartOffset.To2D(); /*Draw.RenderObjects.Add( * new Draw.RenderPosition(args.Start.To2D(), Evade.GetTickCount + 500)); * Draw.RenderObjects.Add( * new Draw.RenderPosition(args.End.To2D(), Evade.GetTickCount + 500));*/ /*float testTime; * * * testTime = Evade.GetTickCount; * for (int i = 0; i < 100000; i++) * { * var testVar = ObjectCache.myHeroCache.boundingRadius; * } * ConsolePrinter.Print("Test time1: " + (Evade.GetTickCount - testTime)); * * testTime = Evade.GetTickCount; * var cacheVar = ObjectCache.myHeroCache.boundingRadius; * for (int i = 0; i < 100000; i++) * { * var testVar = cacheVar; * } * ConsolePrinter.Print("Test time1: " + (Evade.GetTickCount - testTime));*/ ConsolePrinter.Print("NetworkID: " + args.MissileNetworkId); lastHeroSpellCastTime = EvadeUtils.TickCount; foreach (KeyValuePair <int, Spell> entry in SpellDetector.spells) { Spell spell = entry.Value; if (spell.info.spellName == args.SData.Name && spell.heroID == hero.NetworkId) { if (spell.info.isThreeWay == false && spell.info.isSpecial == false) { ConsolePrinter.Print("Time diff: " + (EvadeUtils.TickCount - spell.startTime)); } } } if (hero.IsMe) { lastSpellCastTime = EvadeUtils.TickCount; } }
public static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!Program.E.IsReady() || !(sender is Obj_AI_Hero)) { return; } var casterName = sender.CharData.BaseSkinName; 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.Distance(args.End, true) < 350 * 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.Cooldown > 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.ServerPosition.To2D() .Extend( Heroes.Player.ServerPosition.To2D(), -i) .To3D()); 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); } } }
protected override void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs args) { //Shield Ally if (!Menu.Item("saveEMana", true).GetValue <bool>() || Player.Mana - ESpell.SData.Mana >= QSpell.SData.Mana + WSpell.SData.Mana) { if (unit.IsEnemy && unit.Type == GameObjectType.AIHeroClient && E.IsReady()) { foreach ( var ally in HeroManager.Allies .Where( x => Player.Distance(x.Position) < E.Range && Player.Distance(unit.Position) < 1500 && !x.IsDead).OrderBy(x => x.Distance(args.End))) { if (Menu.Item("shield" + ally.BaseSkinName, true) != null) { if (Menu.Item("shield" + ally.BaseSkinName, true).GetValue <bool>()) { var hp = Menu.Item("eAllyIfHP", true).GetValue <Slider>().Value; if (ally.Distance(args.End) < 500 && ally.HealthPercent <= hp) { E.CastOnUnit(ally); _isBallMoving = true; return; } } } } } } //intiator if (unit.IsAlly) { if ( Initiator.InitatorList.Where(spell => args.SData.Name == spell.SDataName) .Where(spell => Menu.Item(spell.SpellName, true).GetValue <bool>()) .Any(spell => E.IsReady() && Player.Distance(unit.Position) < E.Range)) { E.CastOnUnit(unit); _isBallMoving = true; return; } } if (!unit.IsMe) { return; } var castedSlot = Player.GetSpellSlot(args.SData.Name); if (castedSlot == SpellSlot.Q) { _isBallMoving = true; LeagueSharp.Common.Utility.DelayAction.Add( (int)Math.Max(1, 1000 * (args.End.Distance(_currentBallPosition) - Game.Ping - 0.1) / Q.Speed), () => { _currentBallPosition = args.End; _ballStatus = 1; _isBallMoving = false; }); } }