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); } } }
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)); }
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); } }
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); } }
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()); } }