private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.LSIsValidTarget(3000) || sender.Team != ObjectManager.Player.Team || sender is AIHeroClient || !Utility.IsAutoAttack(args.SData.Name) || !(args.Target is Obj_AI_Base) || sender.Type == GameObjectType.obj_AI_Turret) { return; } var target = (Obj_AI_Base)args.Target; if (ActiveAttacks.ContainsKey(sender.NetworkId)) { ActiveAttacks.Remove(sender.NetworkId); } var attackData = new PredictedDamage( sender, target, Utils.TickCount, sender.AttackCastDelay * 1000f, sender.AttackDelay * 1000f, sender.IsMelee() ? float.MaxValue : args.SData.MissileSpeed, sender.GetAutoAttackDamage(target) - 1); ActiveAttacks.Add(sender.NetworkId, attackData); }
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (args.SData == null) { return; } var targed = args.Target as Obj_AI_Base; if (targed != null) { if (targed.Type == GameObjectType.AIHeroClient && targed.Team != sender.Team && sender.IsMelee) { IncomingDamageList.Add(new UnitIncomingDamage { Damage = DamageLibrary.GetSpellDamage((AIHeroClient)sender, (AIHeroClient)targed, Extensions.GetSpellSlotFromName((AIHeroClient)args.Target, args.SData.Name)), TargetNetworkId = args.Target.NetworkId, Time = Game.Time, Skillshot = false }); } if (sender.Team != ObjectManager.Player.Team || !sender.IsValidTarget(3000) || !EloBuddy.SDK.Constants.AutoAttacks.IsAutoAttack(args.SData.Name) || !(args.Target is Obj_AI_Base)) { return; } var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, GameTimeTickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.IsMelee ? int.MaxValue : (int)args.SData.MissileSpeed, sender.GetAutoAttackDamage(target, true)); ActiveAttacks.Add(sender.NetworkId, attackData); } else { foreach ( var champion in ChampionList.Where( champion => !champion.IsDead && champion.IsVisible && champion.Team != sender.Team && champion.Distance(sender) < 2000)) { if (CanHitSkillShot(champion, args)) { IncomingDamageList.Add(new UnitIncomingDamage { Damage = DamageLibrary.GetSpellDamage((AIHeroClient)sender, (AIHeroClient)targed, Extensions.GetSpellSlotFromName((AIHeroClient)champion, args.SData.Name)), TargetNetworkId = champion.NetworkId, Time = Game.Time, Skillshot = true }); } } } }
/// <summary> /// Fired when the game processes a spell cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs"/> instance containing the event data.</param> private static void ObjAiBaseOnOnProcessSpellCast( Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsValidTarget(3000, false) || sender.Team != ObjectManager.Player.Team || sender is AIHeroClient || !(args.Target is Obj_AI_Base)) { return; } var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Helper.GameTimeTickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.IsMelee ? int.MaxValue : (int)args.SData.MissileSpeed, (float)sender.GetAutoAttackDamage(target, true)); ActiveAttacks.Add(sender.NetworkId, attackData); }
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.Team != ObjectManager.Player.Team || !sender.IsValidTarget(3000) || !args.SData.IsAutoAttack() || !(args.Target is Obj_AI_Base)) { return; } var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage(sender, target, Game.TicksPerSecond - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.IsMelee ? int.MaxValue : (int)args.SData.MissileSpeed, sender.GetAutoAttackDamage(target, true)); ActiveAttacks.Add(sender.NetworkId, attackData); }
/// <summary> /// Process Spell Cast subscribed event function. /// </summary> /// <param name="sender"><see cref="Obj_AI_Base" /> sender</param> /// <param name="args">Processed Spell Cast Data</param> private static void ObjAiBaseOnOnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsValidTarget(3000, false) || sender.Team != ObjectManager.Player.Team || sender is Obj_AI_Hero || !args.SData.ConsideredAsAutoAttack || !(args.Target is Obj_AI_Base)) { return; } var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Variables.TickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.CombatType == GameObjectCombatType.Melee ? int.MaxValue : (int)args.SData.MissileSpeed, sender.TotalAttackDamage); ActiveAttacks.Add(sender.NetworkId, attackData); }
private static void ObjAiBaseOnOnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsValidTarget(3000, false) && sender.Team == ObjectManager.Player.Team && !(sender is Obj_AI_Hero)) { if (Orbwalking.IsAutoAttack(args.SData.Name)) { if (args.Target is Obj_AI_Base) { var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Environment.TickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.IsMelee() ? int.MaxValue : (int)args.SData.MissileSpeed, (float)sender.GetAutoAttackDamage(target, true)); ActiveAttacks.Add(sender.NetworkId, attackData); } } } }
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsValidTarget(3000, false) || sender.Team != ObjectManager.Player.Team || sender is Obj_AI_Hero || !Orbwalking.Utility.IsAutoAttack(args.SData.Name) || !(args.Target is Obj_AI_Base)) { return; } var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Utils.TickCount - Game.Ping / 2, sender.AttackCastDelay * 1000f, sender.AttackDelay * 1000f, sender.IsMelee() ? int.MaxValue : (int)args.SData.MissileSpeed, (float)sender.GetAutoAttackDamage(target, false)); ActiveAttacks.Add(sender.NetworkId, attackData); }
/// <summary> /// Fired when the game processes a spell cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="AIBaseClientProcessSpellCastEventArgs"/> instance containing the event data.</param> private static void ObjAiBaseOnOnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender.Team != ObjectManager.Player.Team || !sender.IsValidTarget(3000, false) || !Orbwalking.IsAutoAttack(args.SData.Name) || !(args.Target is AIBaseClient)) { return; } var target = (AIBaseClient)args.Target; ActiveAttacks.Remove((uint)sender.NetworkId); var attackData = new PredictedDamage( sender, target, sender.Position, Variables.GameTimeTickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is AITurretClient ? 70 : 0), sender.IsMelee ? int.MaxValue : (int)args.SData.MissileSpeed, (float)sender.GetAutoAttackDamage(target)); ActiveAttacks.Add((uint)sender.NetworkId, attackData); }
private static void ObjAiBaseOnOnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsValidTarget(3000, false) || sender.Team != ObjectManager.Player.Team || sender is Obj_AI_Hero || !Orbwalking.IsAutoAttack(args.SData.Name) || !(args.Target is Obj_AI_Base)) { return; } var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Utils.GameTimeTickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.IsMelee() ? int.MaxValue : (int)args.SData.MissileSpeed, (float)sender.GetAutoAttackDamage(target, true)); ActiveAttacks.Add(sender.NetworkId, attackData); }
/// <summary> /// Fired when the game processes a spell cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs"/> instance containing the event data.</param> private static void ObjAiBaseOnOnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsValid || sender.Distance(ObjectManager.Player) > 3000 || sender.Team != ObjectManager.Player.Team || sender is AIHeroClient || args.SData.IsAutoAttack() || !(args.Target is Obj_AI_Base)) { return; } var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Environment.TickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.IsMelee ? int.MaxValue : (int)args.SData.MissileSpeed, (float)sender.GetAutoAttackDamage(target, true)); ActiveAttacks.Add(sender.NetworkId, attackData); }
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsValidTarget(3000, false) || sender.Team != ObjectManager.Player.Team || sender is Obj_AI_Hero || !Orbwalking.Utility.IsAutoAttack(args.SData.Name) || !(args.Target is Obj_AI_Base) || sender.Type == GameObjectType.obj_AI_Turret) return; var target = (Obj_AI_Base)args.Target; if(ActiveAttacks.ContainsKey(sender.NetworkId)) ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Utils.TickCount, sender.AttackCastDelay * 1000f, sender.AttackDelay * 1000f, sender.IsMelee() ? float.MaxValue : args.SData.MissileSpeed, (float)sender.GetAutoAttackDamage(target) - 1); ActiveAttacks.Add(sender.NetworkId, attackData); }
private static void ObjAiBaseOnOnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsValidTarget(3000, false) && sender.Team == ObjectManager.Player.Team && !(sender is Obj_AI_Hero)) { if (Orbwalking.IsAutoAttack(args.SData.Name)) { if (args.Target is Obj_AI_Base) { var target = (Obj_AI_Base) args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Environment.TickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.IsMelee() ? int.MaxValue : (int) args.SData.MissileSpeed, (float) CalcMinionToMinionDmg(sender, target)); ActiveAttacks.Add(sender.NetworkId, attackData); } } } }
/// <summary> /// Process Spell Cast subscribed event function. /// </summary> /// <param name="sender"><see cref="Obj_AI_Base" /> sender</param> /// <param name="args">Processed Spell Cast Data</param> private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsValidTarget(3000, false) || sender.Team != GameObjects.Player.Team || sender is Obj_AI_Hero || !args.SData.ConsideredAsAutoAttack || !(args.Target is Obj_AI_Base)) { return; } var target = (Obj_AI_Base)args.Target; ActiveAttacks.Remove(sender.NetworkId); var attackData = new PredictedDamage( sender, target, Variables.TickCount - Game.Ping / 2, sender.AttackCastDelay * 1000, sender.AttackDelay * 1000 - (sender is Obj_AI_Turret ? 70 : 0), sender.CombatType == GameObjectCombatType.Melee ? int.MaxValue : (int)args.SData.MissileSpeed, sender.TotalAttackDamage); ActiveAttacks.Add(sender.NetworkId, attackData); }