public static void jump() { if (CheckHandler.QCount != 2) { SpellHandler.CastQ(); return; } if (initJump && selectedPos != null && !jumping) { jumping = true; if (!SpellHandler._spells[SpellSlot.E].IsReady()) { ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, selectedPos.directionPos); Utility.DelayAction.Add(100 + Game.Ping / 2, () => ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, selectedPos.jumpPos)); Utility.DelayAction.Add(300 + Game.Ping / 2, () => { SpellHandler.CastQ(); jumping = false; }); } else { ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, selectedPos.directionPos); Utility.DelayAction.Add(100 + Game.Ping / 2, () => SpellHandler.CastE(selectedPos.jumpPos)); Utility.DelayAction.Add(200 + Game.Ping / 2, () => { SpellHandler.CastQ(); jumping = false; }); } initJump = false; } if (initJump || jumping) { return; } selectedPos = null; foreach (var jumpPos in allJumpPos) { if (ObjectManager.Player.Distance(jumpPos.jumpPos) < 80) { selectedPos = jumpPos; initJump = true; break; } } }