Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
 void MatchCallback(MatchRes message)
 {
     Debug.Log("message.Count=" + message.PlayerInfos.Count);
     ChangeScene(ConstValue._PlayeScene);
 }