Gapcloser.OnGapcloser += (gapcloser) => { if (gapcloser.Sender.IsEnemy && gapcloser.Sender.IsValidTarget() && gapcloser.End.Distance(ObjectManager.Player.ServerPosition) < 250) { Console.WriteLine("Enemy {0} is trying to gap close!", gapcloser.Sender.ChampionName); } };
Gapcloser.OnGapcloser += (gapcloser) => { if (gapcloser.Sender.IsEnemy && gapcloser.Sender.IsValidTarget() && gapcloser.End.Distance(ObjectManager.Player.ServerPosition) < 250) { Vector2 pos = ObjectManager.Player.ServerPosition.To2D().Extend(gapcloser.Sender.ServerPosition.To2D(), -300); ObjectManager.Player.Spellbook.CastSpell(SpellSlot.R, pos.To3D()); } };In both examples, the Gapcloser.OnGapcloser event is hooked in order to detect when an enemy champion has attempted to gap close. The sender of the gapcloser (i.e. the enemy champion) is then checked to see if they are valid and within a certain distance to the player's position. The second example goes further by automatically casting a spell to evade the incoming gap closer. Overall, the LeagueSharp.Common package library provides a variety of useful classes and utilities such as ActiveGapcloser to assist with League of Legends gameplay automation.