public void Receive(byte[] bytes) { using (MemoryStream stream = new MemoryStream(bytes)) { GameMessage message = Serializer.Deserialize <GameMessage>(stream); Protocol protocol = (Protocol)message.type[0]; switch (protocol) { case Protocol.AckLogin: using (MemoryStream stream2 = new MemoryStream(message.data)) { AckLogin login = Serializer.Deserialize <AckLogin>(stream2); Debug.Log("userid = " + login.userid); Debug.Log("nickname = " + login.nickname); NetData.Instance.mUserData.Userid = login.userid; NetData.Instance.mUserData.Nickname = login.nickname; _ViewManager.ClearView(); _ViewManager.LoadView("prefab/ui/matchview_prefab"); break; } case Protocol.NtfMatch: using (MemoryStream stream2 = new MemoryStream(message.data)) { NtfMatch match = Serializer.Deserialize <NtfMatch>(stream2); Debug.Log("match.playerinfoList.Count = " + match.playerinfoList.Count); NetData.Instance.mFightData.PlayerInfoList = match.playerinfoList; NetData.Instance.mFightData.RoomId = match.roomid; _TcpSendManager.SendSelectHero(1); break; } case Protocol.NtfSelectHeroFinish: using (MemoryStream stream2 = new MemoryStream(message.data)) { NtfSelectHeroFinish selectHeroFinish = Serializer.Deserialize <NtfSelectHeroFinish>(stream2); Debug.Log("selectHeroFinish.select_herolist.Count = " + selectHeroFinish.select_herolist.Count); NetData.Instance.mFightData.PlayerHeroInfoList = selectHeroFinish.select_herolist; LoadingManager.LoadSceneAsync(SceneConfig.Fight); break; } } if (_UnityTcpSocket.ReceiveAction != null) { _UnityTcpSocket.ReceiveAction(protocol); } } }
/// <summary> /// 战斗失败/胜利后退出战斗,及结算信息 /// </summary> void OnS2CFightEnd(KcpNetPack pack) { FightEnd(); LoadingManager.LoadSceneAsync(SceneConfig.InitAgain); }
public void OnS2CMatch(NetPack pack) { Debug.LogFormat("匹配系统MatchMsgID,CMD={0}, ", pack.CMD); //MatchManager mMatchManager = GameObject.Find("MatchView").GetComponent<MatchManager>(); MatchManager mMatchManager = FindObjectOfType <MatchManager>(); switch ((MatchMsgID)pack.CMD) { case MatchMsgID.Fms2Gs2CMatchAdd: PB_MatchTeamAdd_FMS2GS2C mMatchTeamAdd = PB_MatchTeamAdd_FMS2GS2C.Parser.ParseFrom(pack.BodyBuffer.Bytes); if (mMatchTeamAdd.Ret) { NetData.Instance.Set(MsgID.S2CMatch, (uint)MatchMsgID.Fms2Gs2CMatchAdd, mMatchTeamAdd); } mMatchManager.ShowMatching(mMatchTeamAdd.Ret); Debug.LogFormat("OnS2CMatch,请求加入匹配队列结果:mMatchTeamAdd={0}", mMatchTeamAdd.ToString()); break; case MatchMsgID.Fms2Gs2CMatchDel: PB_MatchTeamDel_FMS2GS2C mMatchTeamDel = PB_MatchTeamDel_FMS2GS2C.Parser.ParseFrom(pack.BodyBuffer.Bytes); Debug.LogFormat("OnS2CMatch,请求取消匹配队列结果:mMatchTeamDel={0}", mMatchTeamDel.ToString()); if (mMatchTeamDel.Ret) { mMatchManager.ShowMatching(false); } break; case MatchMsgID.Fms2Gs2CMatchStart: PB_MatchTeamReady_FMS2GS2C mMatchTeamReady = PB_MatchTeamReady_FMS2GS2C.Parser.ParseFrom(pack.BodyBuffer.Bytes); mMatchManager.ShowMatched(true, mMatchTeamReady.Lasttime); foreach (PB_MatchTeamMemberInfo OnePlayersinfo in mMatchTeamReady.Playersinfo) { if (OnePlayersinfo.Pid != NetData.Instance.PlayerID) { continue; } if (OnePlayersinfo.Ready) { mMatchManager.SureFightBtn.interactable = false; mMatchManager.sSureFightBtnText.text = "已准备"; } } Debug.LogFormat("OnS2CMatch,推送匹配成功,及相关信息(多次推送当作刷新信息):mMatchTeamReady={0}", mMatchTeamReady.ToString()); break; case MatchMsgID.Fms2Gs2CMatchFail: PB_MatchTeamFail_FMS2GS2C mMatchTeamFail = PB_MatchTeamFail_FMS2GS2C.Parser.ParseFrom(pack.BodyBuffer.Bytes); Debug.LogFormat("OnS2CMatch,推送战斗准备失败(重新进入匹配队列):mMatchTeamFail={0}", mMatchTeamFail.ToString()); if (mMatchTeamFail.Notmatchpidlist.Contains(NetData.Instance.PlayerID)) { mMatchManager.ShowMatched(false, 0); mMatchManager.ShowMatching(false); } else { mMatchManager.ShowMatched(false, 0); mMatchManager.ShowMatching(true); } break; case MatchMsgID.Fms2Gs2CMatchFight: PB_MatchTeamFight_FMS2GS2C mMatchTeamFight = PB_MatchTeamFight_FMS2GS2C.Parser.ParseFrom(pack.BodyBuffer.Bytes); Debug.LogFormat("OnS2CMatch,推送战斗准备成功,开始战斗,及相关信息:mMatchTeamFight={0}", mMatchTeamFight.ToString()); NetData.Instance.Set(MsgID.S2CMatch, (uint)MatchMsgID.Fms2Gs2CMatchFight, mMatchTeamFight); LoadingManager.LoadSceneAsync(SceneConfig.Fight); break; } }