/// <summary> /// Callback for quest internal timers used via eActionType.Timer and eTriggerType.Timer /// </summary> /// <param name="callingTimer"></param> /// <returns>0</returns> private static int QuestTimerCallBack(RegionTimer callingTimer) { string timerid = callingTimer.Properties.getProperty <object>(TIMER_ID, null) as string; if (timerid == null) { throw new ArgumentNullException("TimerId out of Range", "timerid"); } GameLiving source = callingTimer.Properties.getProperty <object>(TIMER_SOURCE, null) as GameLiving; if (source == null) { throw new ArgumentNullException("TimerSource null", "timersource"); } TimerEventArgs args = new TimerEventArgs(source, timerid); source.Notify(GameLivingEvent.Timer, source, args); return(0); }