protected void Initi(ConcurrentDictionary <int, BaseUser> _pos2user, int minnum, int maxnum, int gameid, BaseSendDataServer _bsds, TimerCallback callback) { lock (objLock) { _tablRecord = new tb_tablerecord(); Interlocked.Exchange(ref _userTokenPos, 0); MoneyRecordList = new ConcurrentQueue <MoneyRecord>(); //记录 DateTime tempDT = DateTime.Now; _tableMathCode = ToolsEx.GetRoomEnterSixID(); _guid = Guid.NewGuid().ToString("N"); _haveCheckRoomCard = false; _applyExitTable = false; _pos2userbase = _pos2user; _num_max = maxnum; _num_min = minnum; _gameid = gameid; _tablestatus = TableStatusEnum.Initi; _bsDataServer = _bsds; ForeashAllDoBase((i) => { _pos2userbase[i]._WaitSecond = _TurnWaitTime; //20 }); _tableSendData.Clear(); _tableEnterSendData.Clear(); } }
/// <summary> /// 根据更新状态检索 /// </summary> /// <param name="selectedStatus">选中的更新状态</param> private void queryByTableStatus(TableStatusEnum selectedStatus) { List <DataDictCompare> dicSourceCompareListTemp; if (selectedStatus == TableStatusEnum.None) { dicSourceCompareListTemp = dicSourceCompareList; } else { dicSourceCompareListTemp = dicSourceCompareList.Where(t => t.TableStatus == selectedStatus).ToList(); } //排序 if (dicSourceCompareListTemp.Count > 0) { dicSourceCompareListTemp = dicSourceCompareListTemp.Where(t => t.TableStatus != TableStatusEnum.None).OrderBy(t => t.table_name).ToList(); for (int i = 0; i < dicSourceCompareListTemp.Count; i++) { dicSourceCompareListTemp[i].RowNum = i + 1; } } setViewData(dicSourceCompareListTemp); }
private void rbtnUpdated_CheckedChanged(object sender, EventArgs e) { if (rbtnUpdated.Checked && checkLoginInfo() && checkCompareInfo()) { selectedTableStatus = TableStatusEnum.Update; queryByTableStatus(selectedTableStatus); } }
protected void ResetBase(bool _no_again) { if (_numpertable < _num_min) { _tablestatus = TableStatusEnum.WaitforReady; //人数不够了,,停止循环 } MoneyRecordList = new ConcurrentQueue <MoneyRecord>(); List <int> _removeKey = new List <int>(); for (int i = 1; i <= _num_max; i++) { foreach (int key in _removeKey) { if (i != key) { continue; } BaseUser _buser; _pos2userbase.TryRemove(i, out _buser); } } _numpertable -= _removeKey.Count;//看一下 下一局还有多少人在够格继续 _tablRecord = new tb_tablerecord(); ForeashAllDoBase((i) => { _pos2userbase[i].ResetBase(); }); Interlocked.Exchange(ref _userTokenPos, 0); _tableSendData.Clear(); //一局完了清理,断线后的逻辑 if (_no_again) { _tableEnterSendData.Clear(); //一局完了清理,断线后的逻辑 //// _isUsed = false; //房卡模式需要全踢 ForeashAllDoBase((i) => { if (_pos2userbase[i]._isRobot) { _bsDataServer.QueRobotUser.Reverse(); //回收机器人 //1.断开机器人的连接 _bsDataServer.QueRobotUser.Enqueue(_pos2userbase[i]._tbUser); _bsDataServer.RobotExistNumReduceOne(); } UserStatus us = BaseLobby.instanceBase.GetUserStatusbyUserID(_pos2userbase[i]._userid); if (us == null) { ErrorRecord.Record("201612052103BaseTable 必须找到的UserID: " + _pos2userbase[i]._userid); return; } us.Status = UserStatusEnum.InLobby; us.RoomID = 0; BaseLobby.instanceBase.AddorUpdateUserStatus(us); }); } }
protected void StartBase(int second) { _aliveTime = DateTime.Now.AddSeconds(second); ForeashAllDoBase((i) => { UserStatus us = BaseLobby.instanceBase.GetUserStatusbyUserID(_pos2userbase[i]._userid); if (us == null) { ErrorRecord.Record("201208311452basetable 必须找到的UserID: " + _pos2userbase[i]._userid); return; } if (us.Status != UserStatusEnum.InTableDaiPaiDis) { us.Status = UserStatusEnum.InTableDaiPai; } BaseLobby.instanceBase.AddorUpdateUserStatus(us); }); _tablestatus = TableStatusEnum.Playing; }
/// <summary> /// 设置桌子状态 /// </summary> /// <param name="tableStatus"></param> public void SetTableStatus(TableStatusEnum tableStatus) { this.tableStatus = tableStatus; }