void LoginReqCallback(LoginReq message, TcpClient client) { int userId = 0; var e0 = _GatePlayerInfos.GetEnumerator(); while (e0.MoveNext()) { if (e0.Current.Value._UserToken._TcpClient == client) { userId = e0.Current.Value.UserId; } } Console.WriteLine("login req name=" + message.AccountName); _GateServer.Send(new LoginRes { Rs = userId != 0, UserId = userId }, client); // TODO 目前只能是两个人进行测试 if (_GatePlayerInfos.Count >= 1) { Console.WriteLine("match successfully! "); List <PlayerInfo> list = new List <PlayerInfo>(); List <int> userIds = new List <int>(); var ep = _GatePlayerInfos.GetEnumerator(); while (ep.MoveNext()) { var info = new PlayerInfo(); info.PlayerId = ep.Current.Value.UserId; info.PlayerName = "PlayerName" + info.PlayerId; info.RoleId = 1; list.Add(info); userIds.Add(ep.Current.Value.UserId); } // create room var room = new GameRoom(); room.Init(userIds.ToArray()); _GameRooms.Add(room); // send match info var matchRes = new MatchRes(); matchRes.PlayerInfos.AddRange(list); var e = _GatePlayerInfos.GetEnumerator(); while (e.MoveNext()) { _GateServer.Send(matchRes, e.Current.Value._UserToken._TcpClient); } } }
void MatchCallback(MatchRes message) { Debug.Log("message.Count=" + message.PlayerInfos.Count); ChangeScene(ConstValue._PlayeScene); }