public static void UseQe2(Obj_AI_Base target, Vector3 pos) { if (target == null || !(ObjectManager.Player.Distance(pos, true) <= Math.Pow(E.Range, 2))) { return; } var sp = pos + Vector3.Normalize(ObjectManager.Player.ServerPosition - pos) * 100f; var ep = pos + Vector3.Normalize(pos - ObjectManager.Player.ServerPosition) * 592; Qe.Delay = Q.Delay + E.Delay + ObjectManager.Player.ServerPosition.Distance(pos) / E.Speed; Qe.UpdateSourcePosition(pos); var pPo = Qe.GetPrediction(target).UnitPosition.To2D().ProjectOn(sp.To2D(), ep.To2D()); if (!pPo.IsOnSegment || !(pPo.SegmentPoint.Distance(target, true) <= Math.Pow(Qe.Width + target.BoundingRadius, 2))) { return; } var delay = 280 - (int)(ObjectManager.Player.Distance(pos) / 2.5) + Config.Item("q.e.delay").GetValue <Slider>().Value; LeagueSharp.Common.Utility.DelayAction.Add(Math.Max(0, delay), () => E.Cast(pos)); Qe.LastCastAttemptT = Environment.TickCount; Q.Cast(pos); UseE(target); }
public static void UseE(Obj_AI_Base target) { if (target == null) { return; } foreach (var orb in OrbManager.GetOrbs(true).Where(orb => orb.To2D().IsValid() && ObjectManager.Player.Distance(orb, true) < Math.Pow(E.Range, 2))) { var sp = orb.To2D() + Vector2.Normalize(ObjectManager.Player.ServerPosition.To2D() - orb.To2D()) * 100f; var ep = orb.To2D() + Vector2.Normalize(orb.To2D() - ObjectManager.Player.ServerPosition.To2D()) * 592; Qe.Delay = E.Delay + ObjectManager.Player.Distance(orb) / E.Speed; Qe.UpdateSourcePosition(orb); var pPo = Qe.GetPrediction(target).UnitPosition.To2D(); if (pPo.Distance(sp, ep, true, true) <= Math.Pow(Qe.Width + target.BoundingRadius, 2)) { E.Cast(orb); } } }