Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
 private void rbtnUpdated_CheckedChanged(object sender, EventArgs e)
 {
     if (rbtnUpdated.Checked && checkLoginInfo() && checkCompareInfo())
     {
         selectedTableStatus = TableStatusEnum.Update;
         queryByTableStatus(selectedTableStatus);
     }
 }
Ejemplo n.º 4
0
        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);
                });
            }
        }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 设置桌子状态
 /// </summary>
 /// <param name="tableStatus"></param>
 public void SetTableStatus(TableStatusEnum tableStatus)
 {
     this.tableStatus = tableStatus;
 }