Пример #1
0
        public void Login()
        {
            CMLoginRequest req = new CMLoginRequest();

            req.DeviceID = DeviceID.UUID;
            network.Send <CMLoginRequest, CMLoginReply>(req
                                                        , (reply) =>
            {
                //TODO:重连Or 退出
                if (reply.IsInBattle)
                {
                    playerData.SetData(reply.PlayerInfo);

                    MessageBox.Show("战斗提示", "已经在战场中,是否重连!", MessageBoxStyle.OKCancelClose, (result) =>
                    {
                        if (result.result == MessageBoxResultType.OK)
                        {
                            CancelReconnect(1, 1);  //TODO:重连
                            isLogin = true;
                        }
                        else
                        {
                            CancelReconnect(1, 1);
                            isLogin = true;
                        }
                    });
                }
                else
                {
                    isLogin = true;
                    playerData.SetData(reply.PlayerInfo);
                }
            });
        }
Пример #2
0
        public void SendReconnectMsg()
        {
            CMLoginRequest req = new CMLoginRequest();

            req.DeviceID = DeviceID.UUID;
            network.Send <CMLoginRequest, CMLoginReply>(req
                                                        , (reply) =>
            {
                playerData.SetData(reply.PlayerInfo);
            });
        }
Пример #3
0
        private void OnLogin(CMLoginRequest msg)
        {
            var db = dao.Login(msg.DeviceID);

            data.SetData(sessionID, db);
            data.Login();

            Debug.Log($"{data.uid} login");

            CMLoginReply reply = new CMLoginReply();

            reply.PlayerInfo       = new PlayerInfo();
            reply.PlayerInfo.Exp   = data.exp;
            reply.PlayerInfo.Gold  = data.gold;
            reply.PlayerInfo.Level = data.level;
            reply.PlayerInfo.Name  = data.name;
            reply.PlayerInfo.Uid   = data.uid;
            reply.IsInBattle       = false;


            var room = battleProxy.GetUserRoom(data.uid);

            if (room != null)
            {
                reply.IsInBattle               = true;
                reply.BattleServerInfo         = new BattleServerInfo();
                reply.BattleServerInfo.Address = room.battleServer.address;
                reply.BattleServerInfo.Name    = room.battleServer.name;
                reply.BattleServerInfo.Token   = room.userTokens.First(a => a.Uid == data.uid).Token;
                reply.BattleServerInfo.State   = room.battleServer.state.ToString();
            }

            SendMessage(reply);

            if (reply.IsInBattle)
            {
                data.SetState(UserState.Game);
            }
            else
            {
                data.SetState(UserState.Hall);
            }
        }