public static void HeartBeatEMoLaiXiCopyScene() { long nowTicks = TimeUtil.NOW(); if (nowTicks - EMoLaiXiCopySceneManager.LastHeartBeatTicks >= 1000L) { EMoLaiXiCopySceneManager.LastHeartBeatTicks = ((EMoLaiXiCopySceneManager.LastHeartBeatTicks < 86400000L) ? nowTicks : (EMoLaiXiCopySceneManager.LastHeartBeatTicks + 1000L)); lock (EMoLaiXiCopySceneManager.m_EMoLaiXiCopySceneLists) { foreach (CopyMap item in EMoLaiXiCopySceneManager.m_EMoLaiXiCopySceneLists.Values) { EMoLaiXiCopySence scene = null; lock (EMoLaiXiCopySceneManager.m_EMoLaiXiCopySceneInfo) { if (!EMoLaiXiCopySceneManager.m_EMoLaiXiCopySceneInfo.TryGetValue(item.FuBenSeqID, out scene)) { continue; } } if (scene != null) { List <GameClient> clientsList = item.GetClientsList(); lock (scene) { if (scene.m_TimeNotifyFlag == 0) { if (nowTicks <= scene.m_StartTimer + (long)EMoLaiXiCopySceneManager.m_PrepareTime - 3000L) { continue; } scene.m_TimeNotifyFlag = 1; string msgCmd = string.Format("{0}:{1}${2}${3}", new object[] { 2, 3, 1, "" }); GameManager.ClientMgr.BroadSpecialCopyMapMessage(419, msgCmd, clientsList, true); } if (nowTicks >= scene.m_StartTimer + (long)EMoLaiXiCopySceneManager.m_PrepareTime) { if (scene.m_Delay2 > 0L) { EMoLaiXiCopySceneManager.OnSceneTimer(scene, clientsList, item, nowTicks); } else { EMoLaiXiCopySceneManager.InitNextWaveMonsterList(scene); } } } } } } } }