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); } } } }
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); } }