/// <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> /// 进入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"; }