예제 #1
0
    /// <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);
        }
    }
예제 #2
0
    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;
 }