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);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }