/// <summary> /// Setting this will ensure the instance stays around x minutes. After that the region will be destroyed when empty /// </summary> /// <param name="minutes"></param> public void BeginAutoClosureCountdown(int minutes) { if (m_autoCloseRegionTimer != null) { m_autoCloseRegionTimer.Stop(); m_autoCloseRegionTimer = null; } m_autoCloseRegionTimer = new AutoCloseRegionTimer(TimeManager, this); m_autoCloseRegionTimer.Interval = minutes * 60000; m_autoCloseRegionTimer.Start(minutes * 60000); }
/// <summary> /// Setting this will ensure the instance stays around x minutes. After that the region will be destroyed when empty /// </summary> /// <param name="minutes"></param> public void BeginDelayCloseCountdown(int minutes) { DestroyWhenEmpty = false; if (m_autoCloseRegionTimer != null) { m_autoCloseRegionTimer.Stop(); m_autoCloseRegionTimer = null; } if (m_delayCloseRegionTimer != null) { m_delayCloseRegionTimer.Stop(); m_delayCloseRegionTimer = null; } m_delayCloseRegionTimer = new DelayCloseRegionTimer(TimeManager, this); m_delayCloseRegionTimer.Interval = minutes * 60000; m_delayCloseRegionTimer.Start(minutes * 60000); }
/// <summary> /// Event handler for player entering instance /// </summary> public virtual void OnPlayerEnterInstance(GamePlayer player) { //Increment the amount of players. m_playersInInstance++; //Stop the timer to prevent the region's removal. if (m_autoCloseRegionTimer != null) { m_autoCloseRegionTimer.Stop(); m_autoCloseRegionTimer = null; } }
/// <summary> /// What to do when the region collapses. /// Examples of use: Expire task on task dungeons. /// </summary> public override void OnCollapse() { base.OnCollapse(); if (m_autoCloseRegionTimer != null) { m_autoCloseRegionTimer.Stop(); m_autoCloseRegionTimer = null; } if (m_delayCloseRegionTimer != null) { m_delayCloseRegionTimer.Stop(); m_delayCloseRegionTimer = null; } DOL.Events.GameEventMgr.RemoveAllHandlersForObject(this); m_zoneSkinMap.Clear(); Areas.Clear(); }