private void OnObjAiBaseProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { try { if (sender.IsAlly) { return; } foreach (var ward in _wardStructs) { if (args.SData.Name.Equals(ward.SpellName, StringComparison.OrdinalIgnoreCase)) { var wObj = new WardObject( ward, ObjectManager.Player.GetPath(args.End).LastOrDefault(), (int)Game.Time); CheckDuplicateWards(wObj); _wardObjects.Add(wObj); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnObjAiBaseProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { try { if (!getCheckBoxItem(this.Menu, "wardtracker.Enabled")) { return; } if (sender.IsAlly) { return; } foreach (var ward in this._wardStructs) { if (args.SData.Name.Equals(ward.SpellName, StringComparison.OrdinalIgnoreCase)) { var wObj = new WardObject( ward, ObjectManager.Player.GetPath(args.End).LastOrDefault(), (int)Game.Time); this.CheckDuplicateWards(wObj); this._wardObjects.Add(wObj); } } } catch (Exception e) { Console.WriteLine(e); } }
private void OnObjAiBaseProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { try { if (!this.Menu.Item("wardtracker.Enabled").IsActive()) { return; } if (sender.IsAlly) { return; } foreach (var ward in this._wardStructs) { if (args.SData.Name.Equals(ward.SpellName, StringComparison.OrdinalIgnoreCase)) { var wObj = new WardObject( ward, ObjectManager.Player.GetPath(args.End).LastOrDefault(), (int)Game.Time); this.CheckDuplicateWards(wObj); this._wardObjects.Add(wObj); } } } catch (Exception e) { Logging.AddEntry(LoggingEntryType.Error, "@WardTracker.cs: An error occurred: {0}", e); } }
private void CheckDuplicateWards(WardObject wObj) { try { var range = getSliderItem(this.Menu, "wardtracker.FilterWards"); if (wObj.Data.Duration != int.MaxValue) { foreach (var obj in this._wardObjects.Where(w => w.Data.Duration != int.MaxValue).ToList()) { if (wObj.Position.LSDistance(obj.Position) < range) { this._wardObjects.Remove(obj); return; } if (obj.IsFromMissile && !obj.Corrected) { var newPoint = obj.StartPosition.LSExtend(obj.EndPosition, -(range * 1.5f)); if (wObj.Position.LSDistance(newPoint) < range) { this._wardObjects.Remove(obj); return; } } } } else { foreach (var obj in this._wardObjects.Where( w => w.Data.Duration != int.MaxValue && w.IsFromMissile && w.Position.LSDistance(wObj.Position) < 100).ToList()) { this._wardObjects.Remove(obj); return; } } } catch (Exception e) { Console.WriteLine(e); } }
private void CheckDuplicateWards(WardObject wObj) { try { var range = Menu.Item(Name + "FilterWards").GetValue <Slider>().Value; if (wObj.Data.Duration != int.MaxValue) { foreach (var obj in _wardObjects.Where(w => w.Data.Duration != int.MaxValue).ToList()) { if (wObj.Position.Distance(obj.Position) < range) { _wardObjects.Remove(obj); return; } if (obj.IsFromMissile && !obj.Corrected) { var newPoint = obj.StartPosition.Extend(obj.EndPosition, -(range * 1.5f)); if (wObj.Position.Distance(newPoint) < range) { _wardObjects.Remove(obj); return; } } } } else { foreach (var obj in _wardObjects.Where( w => w.Data.Duration != int.MaxValue && w.IsFromMissile && w.Position.Distance(wObj.Position) < 100).ToList()) { _wardObjects.Remove(obj); return; } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void CheckDuplicateWards(WardObject wObj) { try { var range = this.Menu.Item("wardtracker.FilterWards").GetValue <Slider>().Value; if (wObj.Data.Duration != int.MaxValue) { foreach (var obj in this._wardObjects.Where(w => w.Data.Duration != int.MaxValue).ToList()) { if (wObj.Position.Distance(obj.Position) < range) { this._wardObjects.Remove(obj); return; } if (obj.IsFromMissile && !obj.Corrected) { var newPoint = obj.StartPosition.Extend(obj.EndPosition, -(range * 1.5f)); if (wObj.Position.Distance(newPoint) < range) { this._wardObjects.Remove(obj); return; } } } } else { foreach (var obj in this._wardObjects.Where( w => w.Data.Duration != int.MaxValue && w.IsFromMissile && w.Position.Distance(wObj.Position) < 100).ToList()) { this._wardObjects.Remove(obj); return; } } } catch (Exception e) { Logging.AddEntry(LoggingEntryType.Error, "@WardTracker.cs: An error occurred: {0}", e); } }
private void OnGameObjectCreate(GameObject sender, EventArgs args) { try { if (!getCheckBoxItem(this.Menu, "wardtracker.Enabled")) { return; } var missile = sender as MissileClient; if (missile != null && missile.IsValid) { if (missile.SpellCaster != null && !missile.SpellCaster.IsAlly && missile.SData != null) { if (missile.SData.Name.Equals("itemplacementmissile", StringComparison.OrdinalIgnoreCase) && !missile.SpellCaster.IsVisible) { var sPos = missile.StartPosition; var ePos = missile.EndPosition; LeagueSharp.Common.Utility.DelayAction.Add( 1000, delegate { if ( !_wardObjects.Any( w => w.Position.LSTo2D().LSDistance(sPos.LSTo2D(), ePos.LSTo2D(), false) < 300 && ((int)Game.Time - w.StartT < 2))) { var wObj = new WardObject( GetWardStructForInvisible(sPos, ePos), new Vector3( ePos.X, ePos.Y, NavMesh.GetHeightForPosition(ePos.X, ePos.Y)), (int)Game.Time, null, true, new Vector3( sPos.X, sPos.Y, NavMesh.GetHeightForPosition(sPos.X, sPos.Y))); CheckDuplicateWards(wObj); _wardObjects.Add(wObj); } }); } } } else { var wardObject = sender as Obj_AI_Base; if (wardObject != null && wardObject.IsValid && !wardObject.IsAlly) { foreach (var ward in this._wardStructs) { if (wardObject.CharData.BaseSkinName.Equals( ward.ObjectBaseSkinName, StringComparison.OrdinalIgnoreCase)) { this._wardObjects.RemoveAll( w => w.Position.LSDistance(wardObject.Position) < 300 && ((int)Game.Time - w.StartT < 0.5)); var wObj = new WardObject( ward, new Vector3(wardObject.Position.X, wardObject.Position.Y, wardObject.Position.Z), (int)(Game.Time - (int)(wardObject.MaxMana - wardObject.Mana)), wardObject); this.CheckDuplicateWards(wObj); this._wardObjects.Add(wObj); } } } } } catch (Exception e) { Console.WriteLine(e); } }
private void OnGameObjectCreate(GameObject sender, EventArgs args) { try { var missile = sender as Obj_SpellMissile; if (missile != null && missile.IsValid) { if (missile.SpellCaster != null && !missile.SpellCaster.IsAlly && missile.SData != null) { if (missile.SData.Name.Equals("itemplacementmissile", StringComparison.OrdinalIgnoreCase) && !missile.SpellCaster.IsVisible) { var sPos = missile.StartPosition; var ePos = missile.EndPosition; Utility.DelayAction.Add( 1000, delegate { if ( !_wardObjects.Any( w => w.Position.To2D().Distance(sPos.To2D(), ePos.To2D(), false) < 300 && ((int)Game.Time - w.StartT < 2))) { var wObj = new WardObject( GetWardStructForInvisible(sPos, ePos), new Vector3(ePos.X, ePos.Y, NavMesh.GetHeightForPosition(ePos.X, ePos.Y)), (int)Game.Time, null, true, new Vector3(sPos.X, sPos.Y, NavMesh.GetHeightForPosition(sPos.X, sPos.Y))); CheckDuplicateWards(wObj); _wardObjects.Add(wObj); } }); } } } else { var wardObject = sender as Obj_AI_Base; if (wardObject != null && wardObject.IsValid && !wardObject.IsAlly) { foreach (var ward in _wardStructs) { if (wardObject.CharData.BaseSkinName.Equals( ward.ObjectBaseSkinName, StringComparison.OrdinalIgnoreCase)) { _wardObjects.RemoveAll( w => w.Position.Distance(wardObject.Position) < 300 && ((int)Game.Time - w.StartT < 0.5)); var wObj = new WardObject( ward, new Vector3(wardObject.Position.X, wardObject.Position.Y, wardObject.Position.Z), (int)(Game.Time - (int)((wardObject.MaxMana - wardObject.Mana))), wardObject); CheckDuplicateWards(wObj); _wardObjects.Add(wObj); } } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private void OnGameObjectCreate(GameObject sender, EventArgs args) { try { if (!this.Menu.Item("wardtracker.Enabled").IsActive()) { return; } var missile = sender as MissileClient; if (missile != null && missile.IsValid) { if (missile.SpellCaster != null && !missile.SpellCaster.IsAlly && missile.SData != null) { if (missile.SData.Name.Equals("itemplacementmissile", StringComparison.OrdinalIgnoreCase) && !missile.SpellCaster.IsVisible) { var sPos = missile.StartPosition; var ePos = missile.EndPosition; Utility.DelayAction.Add( 1000, delegate { if ( !this._wardObjects.Any( w => w.Position.To2D().Distance(sPos.To2D(), ePos.To2D(), false) < 300 && ((int)Game.Time - w.StartT < 2))) { var wObj = new WardObject( this.GetWardStructForInvisible(sPos, ePos), new Vector3(ePos.X, ePos.Y, NavMesh.GetHeightForPosition(ePos.X, ePos.Y)), (int)Game.Time, null, true, new Vector3(sPos.X, sPos.Y, NavMesh.GetHeightForPosition(sPos.X, sPos.Y)), missile.SpellCaster); this.CheckDuplicateWards(wObj); this._wardObjects.Add(wObj); } }); } } } else { var wardObject = sender as Obj_AI_Base; if (wardObject != null && wardObject.IsValid && !wardObject.IsAlly) { var wards = this._wardStructs; if (wards == null) { Logging.AddEntry(LoggingEntryType.Error, "@WardTracker.cs: NULL 405"); } else { foreach (var ward in wards) { if (wardObject.CharData.BaseSkinName.Equals( ward.ObjectBaseSkinName, StringComparison.OrdinalIgnoreCase)) { this._wardObjects.RemoveAll( w => w.Position.Distance(wardObject.Position) < 300 && ((int)Game.Time - w.StartT < 0.5)); var wObj = new WardObject( ward, new Vector3(wardObject.Position.X, wardObject.Position.Y, wardObject.Position.Z), (int)(Game.Time - (int)(wardObject.MaxMana - wardObject.Mana)), wardObject); this.CheckDuplicateWards(wObj); this._wardObjects.Add(wObj); } } } } } } catch (Exception e) { Logging.AddEntry(LoggingEntryType.Error, "@WardTracker.cs: An error occurred: {0}", e); } }