private void L2C_StartGame(MobaMessage msg)
        {
            OperationResponse operationResponse = msg.Param as OperationResponse;

            byte[]           array            = (byte[])operationResponse.Parameters[0];
            byte[]           buffer           = (byte[])operationResponse.Parameters[1];
            PvpStartGameInfo pvpStartGameInfo = SerializeHelper.Deserialize <PvpStartGameInfo>(array);
            BattleRoomInfo   battleRoomInfo   = SerializeHelper.Deserialize <BattleRoomInfo>(buffer);

            PvpStateBase.LogState("L2C_StartGame:" + (StringUtils.DumpObject(array) ?? "null"));
            if (pvpStartGameInfo != null && battleRoomInfo != null)
            {
                this._isGsConnected = false;
                NetWorkHelper.Instance.DisconnectFromGateServer(false);
                NetWorkHelper.Instance.DisconnectLobbyServer();
                Singleton <PvpManager> .Instance.LoginInfo            = pvpStartGameInfo;
                Singleton <PvpManager> .Instance.ServerBattleRoomInfo = battleRoomInfo;
                NetWorkHelper.Instance.ConnectToPvpServer();
                if (!string.IsNullOrEmpty(battleRoomInfo.roomVoiceID))
                {
                }
            }
            else
            {
                ClientLogger.Error("L2C_StartGame: PvpStartGameInfo is null");
                PvpStateManager.Instance.ChangeState(new PvpStateHome());
            }
        }
 protected override void OnConnectServer(MobaPeerType type)
 {
     base.OnConnectServer(type);
     if (type == MobaPeerType.C2PvpServer)
     {
         PvpStartGameInfo loginInfo = Singleton <PvpManager> .Instance.LoginInfo;
         if (Singleton <PvpManager> .Instance.IsObserver)
         {
             PvpStateBase.LogState("send C2P_LoginAsViewer");
             SendMsgManager.Instance.SendPvpLoginMsgBase <C2PLoginAsViewer>(PvpCode.C2P_LoginAsViewer, new C2PLoginAsViewer
             {
                 newUid = int.Parse(ModelManager.Instance.Get_userData_X().UserId),
                 roomId = loginInfo.roomId
             }, loginInfo.roomId);
         }
         else
         {
             PvpStateBase.LogState("send C2P_LoginFight");
             SendMsgManager.Instance.SendPvpLoginMsgBase <C2PLoginFight>(PvpCode.C2P_LoginFight, new C2PLoginFight
             {
                 roomId = loginInfo.roomId,
                 newUid = loginInfo.newUid,
                 newkey = loginInfo.newKey
             }, loginInfo.roomId);
         }
     }
 }
Exemple #3
0
        protected override MobaPeer ConnectPeer()
        {
            PvpStartGameInfo loginInfo = Singleton <PvpManager> .Instance.LoginInfo;

            SendMsgManager.Instance.ClientConnectToPVP(loginInfo.serverIp, loginInfo.serverPort, loginInfo.serverName);
            return(this._client.pvpserver_peer);
        }
        private void SaveCurrentState(BattleRoomInfo roomInfo, PvpStartGameInfo loginInfo, ReadyPlayerSampleInfo[] playerInfos)
        {
            this._roomId = roomInfo.roomId;
            Singleton <PvpManager> .Instance.LoginInfo            = loginInfo;
            Singleton <PvpManager> .Instance.ServerBattleRoomInfo = roomInfo;
            Singleton <PvpManager> .Instance.SetBattleInfoWithoutJoinType(roomInfo.battleId);

            Singleton <PvpManager> .Instance.SetRoomInfo(roomInfo, -2147483648, playerInfos, ToolsFacade.Instance.GetSummIdByUserid(long.Parse(this._userId)).ToString());

            NetWorkHelper.Instance.DisconnectFromGateServer(false);
            NetWorkHelper.Instance.ConnectToPvpServer();
            MobaMessageManager.RegistMessage((ClientMsg)20007, new MobaMessageFunc(this.OnConnectPvp));
        }
Exemple #5
0
 protected override void OnConnectServer(MobaPeerType type)
 {
     base.OnConnectServer(type);
     if (type == MobaPeerType.C2PvpServer)
     {
         PvpStartGameInfo loginInfo = Singleton <PvpManager> .Instance.LoginInfo;
         PvpStateBase.LogState("newbie send C2P_LoginFight");
         SendMsgManager.Instance.SendPvpLoginMsgBase <C2PLoginFight>(PvpCode.C2P_LoginFight, new C2PLoginFight
         {
             roomId = loginInfo.roomId,
             newUid = loginInfo.newUid,
             newkey = loginInfo.newKey
         }, loginInfo.roomId);
     }
 }
Exemple #6
0
        private void Connect()
        {
            if (this.ConnectFlag)
            {
                return;
            }
            PvpStartGameInfo loginInfo = Singleton <PvpManager> .Instance.LoginInfo;

            SendMsgManager.Instance.ClientConnectToPVP(loginInfo.serverIp, loginInfo.serverPort, loginInfo.serverName);
            this._isConfirmCd = true;
            this.RunOnce(delegate
            {
                this._isConfirmCd = false;
                this.ConfirmReconnect();
            }, 3f);
        }
        protected void SayHelloToPs(PvpCode code)
        {
            PvpStateBase.LogState("SayHelloToPs: send " + code);
            PvpStartGameInfo loginInfo = Singleton <PvpManager> .Instance.LoginInfo;
            object           probufObj = null;

            switch (code)
            {
            case PvpCode.C2P_Reconnect:
                probufObj = new C2PReconnect
                {
                    roomId = loginInfo.roomId,
                    newUid = loginInfo.newUid,
                    newkey = loginInfo.newKey
                };
                goto IL_F4;

            case PvpCode.P2C_Reconnect:
IL_39:
                if (code != PvpCode.C2P_LoginAsViewer)
                {
                    goto IL_F4;
                }
                probufObj = new C2PLoginAsViewer
                {
                    roomId = loginInfo.roomId,
                    newUid = int.Parse(ModelManager.Instance.Get_userData_X().UserId),
                    newkey = loginInfo.newKey
                };
                goto IL_F4;

            case PvpCode.C2P_BackGame:
                probufObj = new C2PBackGame
                {
                    roomId = loginInfo.roomId,
                    newUid = loginInfo.newUid,
                    newkey = loginInfo.newKey
                };
                goto IL_F4;
            }
            goto IL_39;
IL_F4:
            SendMsgManager.Instance.SendPvpLoginMsgBase <object>(code, probufObj, loginInfo.roomId);
        }
        private void RecoverFromLoadingState(BattleRoomInfo roomInfo, PvpStartGameInfo loginInfo, ReadyPlayerSampleInfo[] playerInfos, bool isFighting)
        {
            PvpStateBase.LogState("RecoverFromLoadingState: " + StringUtils.DumpObject(roomInfo) + " " + StringUtils.DumpObject(loginInfo));
            Singleton <PvpManager> .Instance.SetBattleInfoWithoutJoinType(roomInfo.battleId);

            Singleton <PvpManager> .Instance.SetRoomInfo(roomInfo, loginInfo.newUid, playerInfos, null);

            Singleton <PvpManager> .Instance.LoginInfo = loginInfo;
            if (isFighting)
            {
                Singleton <PvpManager> .Instance.RoomInfo.UpdateAllLoadOk();
            }
            NetWorkHelper.Instance.DisconnectFromGateServer(false);
            NetWorkHelper.Instance.ConnectToPvpServer();
            this.CurrentLink = PvpStateRecoverBase.ActiveLink.PvpServer;
            if (!string.IsNullOrEmpty(roomInfo.roomVoiceID))
            {
            }
        }
 protected override void OnConnectServer(MobaPeerType type)
 {
     base.OnConnectServer(type);
     if (this._resend)
     {
         if (type == MobaPeerType.C2PvpServer)
         {
             PvpStartGameInfo loginInfo = Singleton <PvpManager> .Instance.LoginInfo;
             base.SayHelloToPs((!Singleton <PvpManager> .Instance.IsObserver) ? PvpCode.C2P_BackGame : PvpCode.C2P_LoginAsViewer);
         }
         else
         {
             base.QueryGsPvpState();
         }
     }
     else if (type == MobaPeerType.C2PvpServer)
     {
         PvpStartGameInfo loginInfo2 = Singleton <PvpManager> .Instance.LoginInfo;
         base.SayHelloToPs((!Singleton <PvpManager> .Instance.IsObserver) ? PvpCode.C2P_BackGame : PvpCode.C2P_LoginAsViewer);
     }
 }
Exemple #10
0
        private void HandleNewbieStartGame(byte[] startGameDataOrig)
        {
            NewbieStartGameData newbieStartGameData = SerializeHelper.Deserialize <NewbieStartGameData>(startGameDataOrig);
            PvpStartGameInfo    startGameInfo       = newbieStartGameData.startGameInfo;
            BattleRoomInfo      btRoomInfo          = newbieStartGameData.btRoomInfo;

            ReadyPlayerSampleInfo[] playerInfos = newbieStartGameData.playerInfos;
            if (startGameInfo != null && btRoomInfo != null && playerInfos != null)
            {
                this.NewbieSetRoomInfo(startGameInfo.newUid, playerInfos);
                NetWorkHelper.Instance.DisconnectFromGateServer(false);
                NetWorkHelper.Instance.DisconnectLobbyServer();
                Singleton <PvpManager> .Instance.LoginInfo            = startGameInfo;
                Singleton <PvpManager> .Instance.ServerBattleRoomInfo = btRoomInfo;
                NetWorkHelper.Instance.ConnectToPvpServer();
            }
            else
            {
                ClientLogger.Error("L2C_StartGame: PvpStartGameInfo is null");
                PvpStateManager.Instance.ChangeState(new PvpStateHome());
            }
        }