示例#1
0
        protected void SetupLoginHandler()
        {
            // The client sends AddPlayer and then LoginRequest, instead we'll use the SessionToken to determine
            // which Game the connection is for

            AddPlayerMessage addPlayerMessage = null;

            Serializer.RegisterHandler(37, msg => { addPlayerMessage = (AddPlayerMessage)msg; });
            Serializer.RegisterHandler((short)MyMsgType.LoginRequest, msg =>
            {
                var loginReq = (LoginRequest)msg;
                SessionToken = Convert.ToInt64(loginReq.SessionToken);
                //PlayerInfo = SessionManager.Get(SessionToken);
                PlayerId = loginReq.PlayerId;

                GameManagerHolder.AssignServer(this);



                // Send login ok response
                Send((short)MyMsgType.LoginResponse, new LoginResponse
                {
                    Reconnecting = false,
                    Success      = true
                });
            });
        }
示例#2
0
        protected void SetupLoginHandler()
        {
            // The client sends AddPlayer and then LoginRequest, instead we'll use the session token to determine
            // which Game the connection is fore

            AddPlayerMessage addPlayerMessage = null;

            Serializer.RegisterHandler(37, msg => { addPlayerMessage = (AddPlayerMessage)msg; });
            Serializer.RegisterHandler(51, msg =>
            {
                var loginReq = (LoginRequest)msg;
                if (addPlayerMessage == null)
                {
                    Log.Print(LogType.Error, "Received LoginRequest before AddPlayerMessage!");
                    Disconnect();
                    return;
                }

                var gameManager = GameManagerHolder.FindGameManager(loginReq);
                if (gameManager == null)
                {
                    Log.Print(LogType.Error, $"Didn't find a GameManager for {loginReq}'");
                    Disconnect();
                    return;
                }

                Send(52, new LoginResponse
                {
                    Reconnecting = false,
                    Success      = true
                });

                gameManager.AddPlayer(this, loginReq, addPlayerMessage);
            });
        }