Exemplo n.º 1
0
        /// <summary>
        /// 处理服务器的响应或广播消息
        /// </summary>
        /// <param name="netmsg"></param>
        private void _onMsgRecv(NetServerMsg netmsg)
        {
            switch (netmsg.MsgType.Name)
            {
            case "LoginInfo":
                _onLogin((LoginInfo)netmsg.Data);
                break;

            case "MatchInfo":
                _onMatchInfo((MatchInfo)netmsg.Data);
                break;

            case "PlayerInfo":
                _onPlayerInfo((PlayerInfo)netmsg.Data);
                break;

            default:
                break;
            }
        }
Exemplo n.º 2
0
        private void _onMsgRecv(object sender, NetServerMsg netServerMsg)
        {
            switch (netServerMsg.MsgType.Name)
            {
            case "LoginInfo":
            {
                LoginInfo loginInfo = (LoginInfo)netServerMsg.Data;
                if (loginInfo.IsLogin)
                {
                    myuid                 = loginInfo.PlayerID;
                    Login.Visibility      = Visibility.Hidden;
                    MatchButton.IsEnabled = true;
                }
                else
                {
                    LoginInfoLable.Content = loginInfo.Info;
                }
                NetMsgTextBlock.Text += loginInfo.Info;
            }
            break;

            case "PReady":
            {
                PReady pr = (PReady)netServerMsg.Data;
                gameInfo.CB.Layout(CheckBroad.ConvertFromLayoutToCheInfo(pr.CheLayout, pr.PlayerInfo.Side));
            };
                break;

            case "MatchInfo":
            {
                MatchInfo matchInfo = (MatchInfo)netServerMsg.Data;
                if (matchInfo.HasAGame)
                {
                    roomid = matchInfo.RoomID;
                    foreach (var info in matchInfo.PlayerInfo)
                    {
                        if (info.UID == myuid)
                        {
                            myside = info.Side;
                            return;
                        }
                    }
                }
            }; break;

            case "GameLayouting":
            {
                GameLayouting gameLayouting = (GameLayouting)netServerMsg.Data;
                gameStatus = GameStatus.Layouting;
            }
            break;

            case "GetquestError":
            {
                GetquestError getquestError = (GetquestError)netServerMsg.Data;
                if (getquestError.Code == 101)
                {
                    Login.Visibility = Visibility.Visible;
                }
            }; break;

            default:
                break;
            }
            NetMsgTextBlock.Text += netServerMsg.MsgType.Name;
        }