/// <summary> /// 初始化大厅 /// </summary> public void Initi() { lock (obj) { _DicRoom = new ConcurrentDictionary <int, TCRoom>(); TCRoom tab1 = new TCRoom(3, 1, 5, 200);//先直接 分配个200桌 _DicRoom.TryAdd(1, tab1); TCRoom tab2 = new TCRoom(3, 2, 10, 200); _DicRoom.TryAdd(2, tab2); TCRoom tab3 = new TCRoom(3, 3, 20, 200); _DicRoom.TryAdd(3, tab3); } //_DicDisConnectUser = new ConcurrentDictionary<int, User>(); _dicUserStatus = new ConcurrentDictionary <int, UserStatus>(); }
/// <summary> /// /// </summary> /// <param name="RoomID"></param> /// <param name="TableID"></param> /// <returns></returns> public TCTable GetTableByRoomIDandTableID(int RoomID, int TableID) { if (RoomID == 0 || TableID == 0) { return(null); } lock (obj) { TCRoom tempR = GetRoomByRoomID(RoomID); if (tempR == null) { ErrorRecord.Record("21020726151102 运行正常后去掉"); return(null); } return(tempR.GetTableByTableID(TableID)); } }
/// <summary> /// 进入房间 返回现在等待用户数 /// </summary> /// <returns></returns> public string EnterRoom(tb_User _user, cs_enterroom _data) { sc_enterroom _senddata = new sc_enterroom() { result = 0, fn = "sc_enterroom", cc = 0 }; TCRoom room = TCLobby.instance.GetRoomByRoomID(_data.levelid); if (room == null) { return(JsonUtils.Serialize(_senddata)); } int WaitUserCount = room.EnterRoom(_data, _user.UserID, _strIPandPort); _senddata.waitcount = WaitUserCount; _senddata.result = 1; _senddata.gameid = _data.gameid; _senddata.levelid = _data.levelid; return(JsonUtils.Serialize(_senddata)); }
/// <summary> /// 重置此桌信息 /// </summary> private void Reset(bool _no_again) { lock (objLock) { ForeashAllDo((i) => { TCUser _tempuser = _DicPos2User[i]; _tempuser._isBanker = false; _tempuser._shouPaiArr = new List <int>(); _tempuser._SysDealTimeOutCount = 0; // _tempuser._WaitClientLimitCount = 0; }); base.ResetBase(_no_again); //不在的用户处理掉 ForeashAllDo((i) => { if (!_pos2userbase.ContainsKey(i)) { TCUser _tempu; _DicPos2User.TryRemove(i, out _tempu); } }); if (_numpertable < base._num_min) { _tablestatus = TableStatusEnum.WaitforReady; //人数不够了,,停止下局的自动准备 } if (_no_again) { _DicPos2User = null; _judge = null; TCRoom myr = TCLobby.instance.GetRoomByRoomID(_roomid); if (myr != null) { myr.ResetTableByTableID(_tableid); } _tableid = 0; } } }
/// <summary> /// 返回指定房间的在线人数 /// </summary> /// <param name="levelid"></param> /// <returns></returns> public int GetOnlineCount(int levelid) { TCRoom room = TCLobby.instance.GetRoomByRoomID(levelid); return(room._curNumberInRoom); }