public static void HeartBeatFreshPlayerCopyMap()
        {
            long nowTicks = TimeUtil.NOW();

            if (nowTicks - FreshPlayerCopySceneManager.LastHeartBeatTicks >= 1000L)
            {
                FreshPlayerCopySceneManager.LastHeartBeatTicks = nowTicks;
                List <CopyMap> CopyMapList = new List <CopyMap>();
                lock (FreshPlayerCopySceneManager.m_FreshPlayerListCopyMaps)
                {
                    CopyMap copyMap = null;
                    foreach (CopyMap item in FreshPlayerCopySceneManager.m_FreshPlayerListCopyMaps.Values)
                    {
                        copyMap = item;
                        if (item.FreshPlayerCreateGateFlag == 0)
                        {
                            FreshPlayerCopySceneManager.CreateGateMonster(item);
                        }
                        List <GameClient> clientsList = item.GetClientsList();
                        if (clientsList != null && clientsList.Count <= 0)
                        {
                            CopyMapList.Add(item);
                        }
                    }
                    if (null != copyMap)
                    {
                        GameManager.MonsterZoneMgr.ReloadCopyMapMonsters(copyMap.MapCode, -1);
                    }
                }
                for (int i = 0; i < CopyMapList.Count; i++)
                {
                    GameManager.CopyMapMgr.ProcessRemoveCopyMap(CopyMapList[i]);
                }
            }
        }
        public static void KillMonsterInFreshPlayerScene(GameClient client, Monster monster)
        {
            CopyMap copyMapInfo;

            lock (FreshPlayerCopySceneManager.m_FreshPlayerListCopyMaps)
            {
                if (!FreshPlayerCopySceneManager.m_FreshPlayerListCopyMaps.TryGetValue(client.ClientData.FuBenSeqID, out copyMapInfo) || copyMapInfo == null)
                {
                    return;
                }
            }
            if (monster.MonsterInfo.VLevel >= Data.FreshPlayerSceneInfo.NeedKillMonster1Level)
            {
                copyMapInfo.FreshPlayerKillMonsterACount++;
                if (copyMapInfo.FreshPlayerKillMonsterACount >= Data.FreshPlayerSceneInfo.NeedKillMonster1Num)
                {
                    string strcmd = string.Format("{0}", client.ClientData.RoleID);
                    GameManager.ClientMgr.SendToClient(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, strcmd, 525);
                }
            }
            if (monster.MonsterInfo.ExtensionID == Data.FreshPlayerSceneInfo.NeedKillMonster2ID)
            {
                copyMapInfo.FreshPlayerKillMonsterBCount++;
                if (copyMapInfo.FreshPlayerKillMonsterBCount >= Data.FreshPlayerSceneInfo.NeedKillMonster2Num)
                {
                    bool     canAddMonster = false;
                    TaskData taskData      = Global.GetTaskData(client, 105);
                    if (null != taskData)
                    {
                        canAddMonster = true;
                    }
                    if (canAddMonster)
                    {
                        copyMapInfo.HaveBirthShuiJingGuan = true;
                        int      monsterID = Data.FreshPlayerSceneInfo.CrystalID;
                        string[] sfields   = Data.FreshPlayerSceneInfo.CrystalPos.Split(new char[]
                        {
                            ','
                        });
                        int     nPosX   = Global.SafeConvertToInt32(sfields[0]);
                        int     nPosY   = Global.SafeConvertToInt32(sfields[1]);
                        GameMap gameMap = null;
                        if (!GameManager.MapMgr.DictMaps.TryGetValue(copyMapInfo.MapCode, out gameMap))
                        {
                            return;
                        }
                        int gridX = gameMap.CorrectWidthPointToGridPoint(nPosX) / gameMap.MapGridWidth;
                        int gridY = gameMap.CorrectHeightPointToGridPoint(nPosY) / gameMap.MapGridHeight;
                        GameManager.MonsterZoneMgr.AddDynamicMonsters(copyMapInfo.MapCode, monsterID, copyMapInfo.CopyMapID, 1, gridX, gridY, 0, 0, SceneUIClasses.Normal, null, null);
                    }
                }
            }
            if (monster.MonsterInfo.ExtensionID == Data.FreshPlayerSceneInfo.GateID)
            {
                FreshPlayerCopySceneManager.CreateMonsterBFreshPlayerScene(copyMapInfo);
            }
            if (monster.MonsterInfo.ExtensionID == Data.FreshPlayerSceneInfo.CrystalID)
            {
                int      monsterID = Data.FreshPlayerSceneInfo.DiaoXiangID;
                string[] sfields   = Data.FreshPlayerSceneInfo.DiaoXiangPos.Split(new char[]
                {
                    ','
                });
                int     nPosX   = Global.SafeConvertToInt32(sfields[0]);
                int     nPosY   = Global.SafeConvertToInt32(sfields[1]);
                GameMap gameMap = null;
                if (GameManager.MapMgr.DictMaps.TryGetValue(copyMapInfo.MapCode, out gameMap))
                {
                    int gridX = gameMap.CorrectWidthPointToGridPoint(nPosX) / gameMap.MapGridWidth;
                    int gridY = gameMap.CorrectHeightPointToGridPoint(nPosY) / gameMap.MapGridHeight;
                    GameManager.MonsterZoneMgr.AddDynamicMonsters(copyMapInfo.MapCode, monsterID, copyMapInfo.CopyMapID, 1, gridX, gridY, 0, 0, SceneUIClasses.Normal, null, null);
                }
            }
        }