コード例 #1
0
        /// <summary>
        /// 自动分配人 到一桌  1.玩家进入房间触发。 分配机器人也在这儿处理
        /// </summary>
        /// <returns></returns>
        private void AutoAlloc2TableByRobot(BullFight100Table _bftable)
        {
            lock (objLock)
            {
                if (!_openRobot)
                {
                    return;
                }

                //一次性分配足额机器人
                int _needCount = _bftable._num_min - _bftable._pos2userbase.Count;//一般最多为2人
                if (BF100SendDataServer.instance.QueRobotUser.Count < _needCount)
                {
                    return;
                }
                for (int i = 0; i < _needCount; i++)
                {
                    tb_User tbRobotuser;
                    if (!BF100SendDataServer.instance.QueRobotUser.TryDequeue(out tbRobotuser))
                    {
                        return;
                    }
                    //把tbuser 机器在的金币限制在当前Level内,,,
                    if (tbRobotuser.UserMoney < _currRoomInfo._min || tbRobotuser.UserMoney > _currRoomInfo._max)
                    {
                        if (tbRobotuser.isRobot == 1)
                        {
                            var temp    = tbRobotuser.UserMoney;
                            var raMoney = ToolsEx.GetRandomSys(_currRoomInfo._min, _currRoomInfo._max);
                            tbRobotuser.UserMoney = raMoney;
                            ////var cacheUserSet = new ShareCacheStruct<tb_User>();  //100MS会自动存库
                            ////cacheUserSet.AddOrUpdate(tbuser);
                        }
                    }

                    BullFight100User tempU = new BullFight100User();
                    tempU.Initi(tbRobotuser.UserID + "", mRoomID, tbRobotuser, true);// 当成客户端 的IP:Port用
                    base.EnterRoomBase(tbRobotuser.UserID, _gameid);
                    _bftable.AllocationtoTable(tempU);
                    BF100SendDataServer.instance.RobotExistNumAddOne();
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 自动分配人 到一桌  1.玩家进入房间触发。
        /// </summary>
        /// <returns></returns>
        private void AutoAlloc2TableForHuman(BullFight100Table _bftable, BullFight100User tempU)
        {
            lock (objLock)
            {
                if (!_openRobot)
                {
                    return;
                }

                if (_bftable._judge._gameCoin2Room1 == 1)
                {
                    return;                                      //房卡模式不能进机器人了
                }
                base.EnterRoomBase(tempU._tbUser.UserID, _gameid);

                //移出已经分配了的用户
                BullFight100User temp02 = null;// new BullFightUser();
                DicUser.TryRemove(tempU._userid, out temp02);
                _bftable.AllocationtoTable(tempU);
                BF100SendDataServer.instance.RobotExistNumAddOne();
            }
        }