/// <summary> /// /// </summary> /// <param name="RoomID"></param> /// <param name="TableID"></param> /// <returns></returns> public BullColorTable GetTableByRoomIDandTableID(int RoomID, int TableID) { BullColorRoom tempR = GetRoomByRoomID(RoomID); if (tempR == null) { return(null); } return(tempR.GetTableByTableID(TableID)); }
/// <summary> /// 重置此桌信息 /// </summary> public void Reset(bool _no_again) { lock (objLock) { _strStatus = "Reset... "; ForeashAllDo((i) => { BullColorUser _tempuser = _DicPos2User[i]; _tempuser._isBanker = false; _tempuser._shouPaiArr = new List <int>(); _tempuser._bulltype = PokerBullFightType.Bull_No; _tempuser._gambleTotal = 0; _tempuser._SysDealTimeOutCount = 0; _tempuser._gambletime = DateTime.Now.AddYears(100); // _tempuser._WaitClientLimitCount = 0; }); base.ResetBase(_no_again); //不在的用户处理掉 ForeashAllDo((i) => { if (!_pos2userbase.ContainsKey(i)) { BullColorUser _tempu; _DicPos2User.TryRemove(i, out _tempu); } }); if (_numpertable < base._num_min) { _tablestatus = TableStatusEnum.WaitforReady; //人数不够了,,停止下局的自动准备 } if (_no_again) { _DicPos2User = null; _judge = null; BullColorRoom myr = BullColorLobby.instance.GetRoomByRoomID(_roomid); if (myr != null) { myr.ResetTableByTableID(_tableid); } _tableid = 0; } } }
/// <summary> /// 初始化大厅 /// </summary> public void Initi() { Gameid = 41; var roomInfo = new ShareCacheStruct <tb_GameInfo>(); var temp = roomInfo.FindAll(false);//DOTO 取了一个房间配置 后面在根据情况在来处理 //====================begin============================================ BullColorRoom._instance.Awake(); var roomList = new ShareCacheStruct <tb_gamelevelinfo>().FindAll((g) => { return(g.gameid == Gameid); }); foreach (var _roomInfo in roomList) { var roomData = new BullColorRoom(_roomInfo); BullColorRoom.roomCache.TryAdd(roomData.RoomId + "", roomData); roomData.CreateTableByRobot(); } //===================end _dicUserStatus = new ConcurrentDictionary <int, UserStatus>(); }
/// <summary> /// 进入房间 1.如果是房卡模式就直接进入房间,2.如果是金币模式就返回现在等待用户数 /// </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 }; BullColorRoom room = BullColorLobby.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; _senddata.gamemodel = _data.gamemodel; _senddata.numpertable = _data.numpertable; return(JsonUtils.Serialize(_senddata)); }
/// <summary> /// 进入1~1006人后处理的 /// </summary> /// <param name="tablenum"></param> /// <param name="userList"></param> public BullColorTable(int gameid, BullColorRoom _room2, int tablenum, List <BullColorUser> userList, cs_enterroom _data) { _numpertable = userList.Count; _roomid = _room2.RoomId; _room = _room2 as BullColorRoom; _tableid = tablenum; _baseMoney = 1; _bankpos = 1; if (_DicPos2User == null) { _DicPos2User = new ConcurrentDictionary <int, BullColorUser>(); } List <BullColorUser> _fuserlist = new List <BullColorUser>(userList); ConcurrentDictionary <int, BaseUser> _temppos2user = new ConcurrentDictionary <int, BaseUser>(); for (int i = 0; i < _fuserlist.Count; i++) { _fuserlist[i]._tableID = tablenum; //赋值桌子号 _DicPos2User.TryAdd(i + 1, _fuserlist[i]); //1~3表示位置 _temppos2user.TryAdd(i + 1, _fuserlist[i]); } _judge = new BullColorJudge(this); _judge.InitiArgs(_data); base._gametype = _judge._gametype; _tableMaxCount = _judge.GetTableorBankerMaxCount; _TurnWaitTime = BFColorSendDataServer.instance.TurnWaitTime; base.Initi(_temppos2user, _judge._minLimit, _judge._maxLimit, gameid, BFColorSendDataServer.instance, DoTableTimer); base.EnterTable(); _DicPos2User[_bankpos].SetTimeOutAction(1, "sc_ready_bfc_n", 1 * 60);//1分钟等待时间 _strStatus = "BullColorTable...1"; }