/// <summary> 服务器组协议回调 </summary> /// <param name="buffer"></param> private void OnGameServerPageResponse(byte[] buffer) { GameServerPageResponseProto proto = GameServerPageResponseProto.GetProto(buffer); SetLeftData(proto.ServerPageItemList); if (PlayerPrefsUtil.GetServerEnterID() <= 0) { OnGameServerOnePageRequest(m_LeftItemList.Count); } }
private void OnGameServerPageRequest(Role role, byte[] buffer) { GameServerPageResponseProto proto = new GameServerPageResponseProto(); proto.ServerPageItemList = GetServerPageList(); proto.ItemCount = proto.ServerPageItemList.Count; role.ClientSocket.SendMsg(proto.ToArray()); GameServerOnePageResponseProto onePageProto = new GameServerOnePageResponseProto(); onePageProto.ServerOnePageItemList = GetGameServerOnePageList(proto.ServerPageItemList.Count); onePageProto.ItemCount = onePageProto.ServerOnePageItemList.Count; role.ClientSocket.SendMsg(onePageProto.ToArray()); }
public static GameServerPageResponseProto GetProto(byte[] buffer) { GameServerPageResponseProto proto = new GameServerPageResponseProto(); using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer)) { proto.ItemCount = ms.ReadInt(); proto.ServerPageItemList = new List<GameServerPageItem>(); for (int i = 0; i < proto.ItemCount; i++) { GameServerPageItem _ServerPageItem = new GameServerPageItem(); _ServerPageItem.PageIndex = ms.ReadInt(); _ServerPageItem.PageServerName = ms.ReadUTF8String(); proto.ServerPageItemList.Add(_ServerPageItem); } } return proto; }