예제 #1
0
        private void 处理_能进否(int id)
        {
            // todo: check...
            // 对于 能进否 来说,有如下条件:
            // 不超出游戏最大上限人数

            // 把玩家加入列表
            lock (_sync_players)
            {
                if (_currentStateHander.CanIJoinIt(_players.Count))  //人数是否已满
                {
                    if (!_players.ContainsKey(id))
                    {
                        var player = new Character();
                        player.clientState = ClientStates.已发_能进否;
                        //占位
                        _players.Add(id, new KeyValuePair <int, Character>(id, player));
                        //十秒未发送 要求进入,就删之
                        player.超时_进入超时 = GameLooper.Counter + 10;
                        //回复可以进入
                        发出_能够进入(id);
                        w.WL("玩家 " + id + "准备进入游戏" + Environment.NewLine);
                    }
                    else
                    {
                        //重复进入
                        发出_不能进入(id);
                    }
                }
            }
        }
예제 #2
0
 private void 处理_能否进入(int playerid)
 {
     if (_currentStateHander.CanIJoinIt(_players.Count))
     {
         var tempPlayer = new DDZCharacter();
         tempPlayer.超时_进入超时     = GameLooper.Counter + 10;
         tempPlayer.PlayerID    = playerid;
         tempPlayer.clientState = DDZClientStates.等待进入;
         _players.Add(playerid, tempPlayer);
         发出_能进入(playerid);
     }
     else
     {
         发出_不能进入(playerid);
     }
 }