示例#1
0
        public override void Update()
        {
            if (World.SelectedCharacter == null)
            {
                return;
            }

            while (scheduledActions.Count != 0)
            {
                var scheduledAction = scheduledActions.First();
                if (scheduledAction.scheduledTime <= DateTime.Now)
                {
                    scheduledActions.RemoveAt(0);
                    scheduledAction.action();
                    if (scheduledAction.interval > TimeSpan.Zero)
                    {
                        ScheduleAction(scheduledAction.action, DateTime.Now + scheduledAction.interval, scheduledAction.interval);
                    }
                }
                else
                {
                    break;
                }
            }
        }
示例#2
0
        public override void Update()
        {
            LastUpdate = DateTime.Now;

            (socket as WorldSocket)?.HandlePackets();

            if (World.SelectedCharacter == null)
            {
                return;
            }

            while (scheduledActions.Count != 0)
            {
                var scheduledAction = scheduledActions.First();
                if (scheduledAction.ScheduledTime <= DateTime.Now)
                {
                    scheduledActions.RemoveAt(0, false);
                    if (scheduledAction.Interval > TimeSpan.Zero)
                    {
                        ScheduleAction(scheduledAction.Action, DateTime.Now + scheduledAction.Interval, scheduledAction.Interval, scheduledAction.Flags, scheduledAction.Cancel);
                    }
                    try
                    {
                        scheduledAction.Action();
                    }
                    catch (Exception ex)
                    {
                        LogException(ex);
                    }
                }
                else
                {
                    break;
                }
            }
        }