// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: protobuf_AxibugEmuOnline.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace AxibugProtobuf {

  /// <summary>Holder for reflection information generated from protobuf_AxibugEmuOnline.proto</summary>
  public static partial class ProtobufAxibugEmuOnlineReflection {

    #region Descriptor
    /// <summary>File descriptor for protobuf_AxibugEmuOnline.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static ProtobufAxibugEmuOnlineReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Ch5wcm90b2J1Zl9BeGlidWdFbXVPbmxpbmUucHJvdG8SDkF4aWJ1Z1Byb3Rv",
            "YnVmIiMKEFByb3RvYnVmX0NoYXRNc2cSDwoHQ2hhdE1zZxgBIAEoCSJIChVQ",
            "cm90b2J1Zl9DaGF0TXNnX1JFU1ASEAoITmlja05hbWUYASABKAkSDwoHQ2hh",
            "dE1zZxgCIAEoCRIMCgREYXRlGAMgASgDIh0KDVByb3RvYnVmX1BpbmcSDAoE",
            "U2VlZBgBIAEoBSIdCg1Qcm90b2J1Zl9Qb25nEgwKBFNlZWQYASABKAUikQEK",
            "DlByb3RvYnVmX0xvZ2luEiwKCWxvZ2luVHlwZRgBIAEoDjIZLkF4aWJ1Z1By",
            "b3RvYnVmLkxvZ2luVHlwZRIuCgpkZXZpY2VUeXBlGAIgASgOMhouQXhpYnVn",
            "UHJvdG9idWYuRGV2aWNlVHlwZRIPCgdBY2NvdW50GAMgASgJEhAKCFBhc3N3",
            "b3JkGAQgASgJIqABChNQcm90b2J1Zl9Mb2dpbl9SRVNQEhIKCkRldmljZVVV",
            "SUQYASABKAkSDQoFVG9rZW4YAiABKAkSFQoNTGFzdExvZ2luRGF0ZRgDIAEo",
            "CRIPCgdSZWdEYXRlGAQgASgJEjEKBlN0YXR1cxgFIAEoDjIhLkF4aWJ1Z1By",
            "b3RvYnVmLkxvZ2luUmVzdWx0U3RhdHVzEgsKA1VJRBgGIAEoAyIUChJQcm90",
            "b2J1Zl9Sb29tX0xpc3QiWwoXUHJvdG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQ",
            "Um9vbU1pbmlJbmZvTGlzdBgBIAMoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3Rv",
            "YnVmX1Jvb21fTWluaUluZm8ihgMKFlByb3RvYnVmX1Jvb21fTWluaUluZm8S",
            "DgoGUm9vbUlEGAEgASgFEhEKCUdhbWVSb21JRBgCIAEoBRITCgtHYW1lUm9t",
            "SGFzaBgDIAEoCRIVCg1Ib3N0UGxheWVyVUlEGAQgASgDEjAKCUdhbWVTdGF0",
            "ZRgFIAEoDjIdLkF4aWJ1Z1Byb3RvYnVmLlJvb21HYW1lU3RhdGUSFAoMT2Jz",
            "VXNlckNvdW50GAYgASgFEhMKC1BsYXllcjFfVUlEGAcgASgDEhgKEFBsYXll",
            "cjFfTmlja05hbWUYCCABKAkSEwoLUGxheWVyMl9VSUQYCSABKAMSGAoQUGxh",
            "eWVyMl9OaWNrTmFtZRgKIAEoCRITCgtQbGF5ZXIzX1VJRBgLIAEoAxIYChBQ",
            "bGF5ZXIzX05pY2tOYW1lGAwgASgJEhMKC1BsYXllcjRfVUlEGA0gASgDEhgK",
            "EFBsYXllcjRfTmlja05hbWUYDiABKAkSGQoRU2NyZWVuUHJvdmlkZXJVSUQY",
            "DyABKAMibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVU",
            "eXBlGAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3Rv",
            "YnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5u",
            "X0ZyYW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJh",
            "d0JpdG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklu",
            "cHV0RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSJk",
            "CidQcm90b2J1Zl9Sb29tX1N5bl9Sb29tRnJhbWVBbGxJbnB1dERhdGESDwoH",
            "RnJhbWVJRBgBIAEoDRIRCglJbnB1dERhdGEYAiABKAQSFQoNU2VydmVyRnJh",
            "bWVJRBgDIAEoDSJVChRQcm90b2J1Zl9Sb29tX0NyZWF0ZRIRCglHYW1lUm9t",
            "SUQYASABKAUSEwoLR2FtZVJvbUhhc2gYAiABKAkSFQoNSm9pblBsYXllcklk",
            "eBgDIAEoBSJZChlQcm90b2J1Zl9Sb29tX0NyZWF0ZV9SRVNQEjwKDFJvb21N",
            "aW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21f",
            "TWluaUluZm8iNwoSUHJvdG9idWZfUm9vbV9Kb2luEg4KBlJvb21JRBgBIAEo",
            "BRIRCglQbGF5ZXJOdW0YAiABKAUiVwoXUHJvdG9idWZfUm9vbV9Kb2luX1JF",
            "U1ASPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJv",
            "dG9idWZfUm9vbV9NaW5pSW5mbyIlChNQcm90b2J1Zl9Sb29tX0xlYXZlEg4K",
            "BlJvb21JRBgBIAEoBSIqChhQcm90b2J1Zl9Sb29tX0xlYXZlX1JFU1ASDgoG",
            "Um9vbUlEGAEgASgFImEKIVByb3RvYnVmX1Jvb21fTXlSb29tX1N0YXRlX0No",
            "YW5nZRI8CgxSb29tTWluaUluZm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Q",
            "cm90b2J1Zl9Sb29tX01pbmlJbmZvIkUKG1Byb3RvYnVmX1Jvb21fV2FpdFN0",
            "ZXBfUkVTUBIQCghXYWl0U3RlcBgBIAEoBRIUCgxMb2FkU3RhdGVSYXcYAiAB",
            "KAwiPwonUHJvdG9idWZfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3",
            "EhQKDExvYWRTdGF0ZVJhdxgBIAEoDCIuCixQcm90b2J1Zl9Sb29tX0hvc3RQ",
            "bGF5ZXJfVXBkYXRlU3RhdGVSYXdfUkVTUCIcChpQcm90b2J1Zl9Sb29tX1Bs",
            "YXllcl9SZWFkeSIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4SDgoGUm9v",
            "bUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9SRVNQEg4K",
            "BlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0JpdG1hcBgD",
            "IAEoDCq0AwoJQ29tbWFuZElEEg4KCkNNRF9ERUZBVUwQABIMCghDTURfUElO",
            "RxABEgwKCENNRF9QT05HEAISDgoJQ01EX0xPR0lOENEPEhAKC0NNRF9DSEFU",
            "TVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01EX1Jvb21fTGlzdF9V",
            "cGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCTJxIUCg9DTURfUm9v",
            "bV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxITCg5DTURfUm9vbV9M",
            "ZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlZBD2JxIW",
            "ChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJDTURfUm9vbV9Ib3N0UGxheWVy",
            "X1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9Sb29tX1BsYXllcl9SZWFkeRDY",
            "KBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVySW5wdXQQ+i4SHQoYQ01EX1JP",
            "T01fU1lOX1BsYXllcklucHV0EP8uEg8KCkNNRF9TY3JlZW4Q2TYqjwEKCUVy",
            "cm9yQ29kZRIQCgxFUlJPUl9ERUZBVUwQABIMCghFUlJPUl9PSxABEhgKFEVS",
            "Uk9SX1JPT01fTk9UX0ZPVU5EEAoSJQohRVJST1JfUk9PTV9TTE9UX1JFQURM",
            "WV9IQURfUExBWUVSEAsSIQodRVJST1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RB",
            "VEUQMiocCglMb2dpblR5cGUSDwoLQmFzZURlZmF1bHQQACpLCgpEZXZpY2VU",
            "eXBlEhYKEkRldmljZVR5cGVfRGVmYXVsdBAAEgYKAlBDEAESCwoHQW5kcm9p",
            "ZBACEgcKA0lPUxADEgcKA1BTVhAEKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9u",
            "ZV9HYW1lU3RhdGUQABIMCghPbmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQ",
            "AhINCglXYWl0UmVhZHkQAxIJCgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAF",
            "Kk4KEUxvZ2luUmVzdWx0U3RhdHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jh",
            "c2VEZWZhdWx0EAASBgoCT0sQARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90",
            "bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg), global::AxibugProtobuf.Protobuf_ChatMsg.Parser, new[]{ "ChatMsg" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg_RESP), global::AxibugProtobuf.Protobuf_ChatMsg_RESP.Parser, new[]{ "NickName", "ChatMsg", "Date" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Ping), global::AxibugProtobuf.Protobuf_Ping.Parser, new[]{ "Seed" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Pong), global::AxibugProtobuf.Protobuf_Pong.Parser, new[]{ "Seed" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login), global::AxibugProtobuf.Protobuf_Login.Parser, new[]{ "LoginType", "DeviceType", "Account", "Password" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "DeviceUUID", "Token", "LastLoginDate", "RegDate", "Status", "UID" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List), global::AxibugProtobuf.Protobuf_Room_List.Parser, null, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_List_RESP), global::AxibugProtobuf.Protobuf_Room_List_RESP.Parser, new[]{ "RoomMiniInfoList" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MiniInfo), global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser, new[]{ "RoomID", "GameRomID", "GameRomHash", "HostPlayerUID", "GameState", "ObsUserCount", "Player1UID", "Player1NickName", "Player2UID", "Player2NickName", "Player3UID", "Player3NickName", "Player4UID", "Player4NickName", "ScreenProviderUID" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Update_RESP), global::AxibugProtobuf.Protobuf_Room_Update_RESP.Parser, new[]{ "UpdateType", "RoomMiniInfo" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Screnn_Frame), global::AxibugProtobuf.Protobuf_Screnn_Frame.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData), global::AxibugProtobuf.Protobuf_Room_SinglePlayerInputData.Parser, new[]{ "FrameID", "InputData" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInputData), global::AxibugProtobuf.Protobuf_Room_Syn_RoomFrameAllInputData.Parser, new[]{ "FrameID", "InputData", "ServerFrameID" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create), global::AxibugProtobuf.Protobuf_Room_Create.Parser, new[]{ "GameRomID", "GameRomHash", "JoinPlayerIdx" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Create_RESP), global::AxibugProtobuf.Protobuf_Room_Create_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join), global::AxibugProtobuf.Protobuf_Room_Join.Parser, new[]{ "RoomID", "PlayerNum" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Join_RESP), global::AxibugProtobuf.Protobuf_Room_Join_RESP.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave), global::AxibugProtobuf.Protobuf_Room_Leave.Parser, new[]{ "RoomID" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Leave_RESP), global::AxibugProtobuf.Protobuf_Room_Leave_RESP.Parser, new[]{ "RoomID" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_MyRoom_State_Change), global::AxibugProtobuf.Protobuf_Room_MyRoom_State_Change.Parser, new[]{ "RoomMiniInfo" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP), global::AxibugProtobuf.Protobuf_Room_WaitStep_RESP.Parser, new[]{ "WaitStep", "LoadStateRaw" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw.Parser, new[]{ "LoadStateRaw" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw_RESP), global::AxibugProtobuf.Protobuf_Room_HostPlayer_UpdateStateRaw_RESP.Parser, null, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, null, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  public enum CommandID {
    /// <summary>
    ///缺省不使用
    /// </summary>
    [pbr::OriginalName("CMD_DEFAUL")] CmdDefaul = 0,
    /// <summary>
    ///服务器或客户端,均可主动ping请求,对方响应。(这里测全流程延迟,即序 列化->发送->传输过程->接收->反序列化)
    /// </summary>
    [pbr::OriginalName("CMD_PING")] CmdPing = 1,
    /// <summary>
    ///Pong | 响应 对应 Protobuf_Pong
    /// </summary>
    [pbr::OriginalName("CMD_PONG")] CmdPong = 2,
    /// <summary>
    ///自动登录上行 | 下行 对应 Protobuf_Login | Protobuf_Login_RESP
    /// </summary>
    [pbr::OriginalName("CMD_LOGIN")] CmdLogin = 2001,
    /// <summary>
    ///广播聊天信息上行 | 下行 对应 Protobuf_ChatMsg | Protobuf_ChatMsg_RESP
    /// </summary>
    [pbr::OriginalName("CMD_CHATMSG")] CmdChatmsg = 4001,
    /// <summary>
    ///房间列表相关(仅用于列表显示)
    /// </summary>
    [pbr::OriginalName("CMD_Room_List")] CmdRoomList = 5001,
    /// <summary>
    ///房间单个房间信息更新 对应 Protobuf_Room_Update_RESP
    /// </summary>
    [pbr::OriginalName("CMD_Room_List_Update")] CmdRoomListUpdate = 5002,
    /// <summary>
    ///房间列表 上行 | 下行 对应 Protobuf_Room_Get_Screen | Protobuf_Room_Get_Screen_RESP
    /// </summary>
    [pbr::OriginalName("CMD_Room_Get_Screen")] CmdRoomGetScreen = 5011,
    /// <summary>
    ///房间内相关
    /// </summary>
    [pbr::OriginalName("CMD_Room_Create")] CmdRoomCreate = 5101,
    /// <summary>
    ///房间加入 对应 Protobuf_Room_Join | Protobuf_Room_Join_RESP //建议Join之前按照房间信息,提前下载并读取本地Rom
    /// </summary>
    [pbr::OriginalName("CMD_Room_Join")] CmdRoomJoin = 5105,
    /// <summary>
    ///房间离开 对应 Protobuf_Room_Leave | Protobuf_Room_Leave_RESP
    /// </summary>
    [pbr::OriginalName("CMD_Room_Leave")] CmdRoomLeave = 5106,
    /// <summary>
    ///我所在的房间内状态发生变化 对应 Protobuf_Room_MyRoom_State_Change
    /// </summary>
    [pbr::OriginalName("CMD_Room_MyRoom_State_Changed")] CmdRoomMyRoomStateChanged = 5110,
    /// <summary>
    ///准备和开始流程(5201 ~ 5204 ~ 5208)
    ///
    /// 我们采用,玩家可以随时进入的方式开发
    ///
    /// 设计流程: 
    ///
    /// Step0:服务器广播"等待-主机上报即使存档" CMD_Room_WaitStep WaitStep=[0] ---> 客户端:暂停模拟器核心:全员等待(主机玩家一人上传即时存档)
    /// 			主机玩家 上行 CMD_Room_HostPlayer_UpdateStateRaw消息,上传即时存档
    /// 			主机玩家上传完毕之后,服务器会通知进入Step1
    ///
    /// Step1:服务器广播"等待-全员加载即时存档" CMD_Room_WaitStep WaitStep=[1] 附带即时存档 ---> 客户端:全员等待
    ///			所有玩家确保加载ROM和即时存档,并保持模拟器暂停,准备完毕后 发送 CMD_Room_Player_Ready
    ///			所有玩家Ready之后,服务器会根据所有玩家延迟提前跑若干Frame,通知进入Step2 
    ///			
    /// Step2:服务器广播"开始" CMD_Room_WaitStep WaitStep=[2] ---> 客户端:立即开始
    ///
    /// PS:[联机过程中加载即时存档] 房间在游玩过程中,单个玩家发送CMD_Room_HostPlayer_UpdateStateRaw 上报即时存档
    /// 		重新从Step1走流程
    /// 
    /// </summary>
    [pbr::OriginalName("CMD_Room_WaitStep")] CmdRoomWaitStep = 5201,
    /// <summary>
    ///主机玩家上传即时存档 上行 | 下行 对应 Protobuf_Room_HostPlayer_UpdateStateRaw | Protobuf_Room_HostPlayer_UpdateStateRaw_RESP
    /// </summary>
    [pbr::OriginalName("CMD_Room_HostPlayer_UpdateStateRaw")] CmdRoomHostPlayerUpdateStateRaw = 5204,
    /// <summary>
    ///玩家准备完毕 上行 Protobuf_Room_Player_Ready
    /// </summary>
    [pbr::OriginalName("CMD_Room_Player_Ready")] CmdRoomPlayerReady = 5208,
    /// <summary>
    ///游戏同步
    /// </summary>
    [pbr::OriginalName("CMD_Room_Singel_PlayerInput")] CmdRoomSingelPlayerInput = 6010,
    /// <summary>
    ///所有玩家操作同步下行  对应 Protobuf_Room_Syn_RoomFrameAllInputData
    /// </summary>
    [pbr::OriginalName("CMD_ROOM_SYN_PlayerInput")] CmdRoomSynPlayerInput = 6015,
    /// <summary>
    ///画面采集
    /// </summary>
    [pbr::OriginalName("CMD_Screen")] CmdScreen = 7001,
  }

  public enum ErrorCode {
    /// <summary>
    ///缺省不使用
    /// </summary>
    [pbr::OriginalName("ERROR_DEFAUL")] ErrorDefaul = 0,
    /// <summary>
    ///成功
    /// </summary>
    [pbr::OriginalName("ERROR_OK")] ErrorOk = 1,
    /// <summary>
    ///房间不存在
    /// </summary>
    [pbr::OriginalName("ERROR_ROOM_NOT_FOUND")] ErrorRoomNotFound = 10,
    /// <summary>
    ///加入目标位置已经有人
    /// </summary>
    [pbr::OriginalName("ERROR_ROOM_SLOT_READLY_HAD_PLAYER")] ErrorRoomSlotReadlyHadPlayer = 11,
    /// <summary>
    ///当前房间状态不允许本操作
    /// </summary>
    [pbr::OriginalName("ERROR_ROOM_CANT_DO_CURR_STATE")] ErrorRoomCantDoCurrState = 50,
  }

  public enum LoginType {
    /// <summary>
    ///缺省不使用
    /// </summary>
    [pbr::OriginalName("BaseDefault")] BaseDefault = 0,
  }

  public enum DeviceType {
    /// <summary>
    ///缺省不使用
    /// </summary>
    [pbr::OriginalName("DeviceType_Default")] Default = 0,
    [pbr::OriginalName("PC")] Pc = 1,
    [pbr::OriginalName("Android")] Android = 2,
    [pbr::OriginalName("IOS")] Ios = 3,
    [pbr::OriginalName("PSV")] Psv = 4,
  }

  public enum RoomGameState {
    /// <summary>
    ///缺省
    /// </summary>
    [pbr::OriginalName("None_GameState")] NoneGameState = 0,
    /// <summary>
    ///仅主机,待加入
    /// </summary>
    [pbr::OriginalName("OnlyHost")] OnlyHost = 1,
    /// <summary>
    ///等待即时存档
    /// </summary>
    [pbr::OriginalName("WaitRawUpdate")] WaitRawUpdate = 2,
    /// <summary>
    ///等待Ready
    /// </summary>
    [pbr::OriginalName("WaitReady")] WaitReady = 3,
    /// <summary>
    ///暂停
    /// </summary>
    [pbr::OriginalName("Pause")] Pause = 4,
    /// <summary>
    ///联机中
    /// </summary>
    [pbr::OriginalName("InOnlineGame")] InOnlineGame = 5,
  }

  public enum LoginResultStatus {
    /// <summary>
    ///缺省不使用
    /// </summary>
    [pbr::OriginalName("LoginResultStatus_BaseDefault")] BaseDefault = 0,
    [pbr::OriginalName("OK")] Ok = 1,
    [pbr::OriginalName("AccountErr")] AccountErr = 2,
  }

  #endregion

  #region Messages
  /// <summary>
  ///聊天 上行
  /// </summary>
  public sealed partial class Protobuf_ChatMsg : pb::IMessage<Protobuf_ChatMsg>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_ChatMsg> _parser = new pb::MessageParser<Protobuf_ChatMsg>(() => new Protobuf_ChatMsg());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_ChatMsg> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_ChatMsg() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_ChatMsg(Protobuf_ChatMsg other) : this() {
      chatMsg_ = other.chatMsg_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_ChatMsg Clone() {
      return new Protobuf_ChatMsg(this);
    }

    /// <summary>Field number for the "ChatMsg" field.</summary>
    public const int ChatMsgFieldNumber = 1;
    private string chatMsg_ = "";
    /// <summary>
    ///消息
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string ChatMsg {
      get { return chatMsg_; }
      set {
        chatMsg_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_ChatMsg);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_ChatMsg other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ChatMsg != other.ChatMsg) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (ChatMsg.Length != 0) hash ^= ChatMsg.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ChatMsg.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ChatMsg);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ChatMsg.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ChatMsg);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (ChatMsg.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ChatMsg);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_ChatMsg other) {
      if (other == null) {
        return;
      }
      if (other.ChatMsg.Length != 0) {
        ChatMsg = other.ChatMsg;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            ChatMsg = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            ChatMsg = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///聊天 下行
  /// </summary>
  public sealed partial class Protobuf_ChatMsg_RESP : pb::IMessage<Protobuf_ChatMsg_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_ChatMsg_RESP> _parser = new pb::MessageParser<Protobuf_ChatMsg_RESP>(() => new Protobuf_ChatMsg_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_ChatMsg_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_ChatMsg_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_ChatMsg_RESP(Protobuf_ChatMsg_RESP other) : this() {
      nickName_ = other.nickName_;
      chatMsg_ = other.chatMsg_;
      date_ = other.date_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_ChatMsg_RESP Clone() {
      return new Protobuf_ChatMsg_RESP(this);
    }

    /// <summary>Field number for the "NickName" field.</summary>
    public const int NickNameFieldNumber = 1;
    private string nickName_ = "";
    /// <summary>
    ///昵称
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string NickName {
      get { return nickName_; }
      set {
        nickName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "ChatMsg" field.</summary>
    public const int ChatMsgFieldNumber = 2;
    private string chatMsg_ = "";
    /// <summary>
    ///消息
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string ChatMsg {
      get { return chatMsg_; }
      set {
        chatMsg_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Date" field.</summary>
    public const int DateFieldNumber = 3;
    private long date_;
    /// <summary>
    ///时间
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long Date {
      get { return date_; }
      set {
        date_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_ChatMsg_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_ChatMsg_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NickName != other.NickName) return false;
      if (ChatMsg != other.ChatMsg) return false;
      if (Date != other.Date) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (NickName.Length != 0) hash ^= NickName.GetHashCode();
      if (ChatMsg.Length != 0) hash ^= ChatMsg.GetHashCode();
      if (Date != 0L) hash ^= Date.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (NickName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(NickName);
      }
      if (ChatMsg.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ChatMsg);
      }
      if (Date != 0L) {
        output.WriteRawTag(24);
        output.WriteInt64(Date);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (NickName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(NickName);
      }
      if (ChatMsg.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ChatMsg);
      }
      if (Date != 0L) {
        output.WriteRawTag(24);
        output.WriteInt64(Date);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (NickName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NickName);
      }
      if (ChatMsg.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ChatMsg);
      }
      if (Date != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(Date);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_ChatMsg_RESP other) {
      if (other == null) {
        return;
      }
      if (other.NickName.Length != 0) {
        NickName = other.NickName;
      }
      if (other.ChatMsg.Length != 0) {
        ChatMsg = other.ChatMsg;
      }
      if (other.Date != 0L) {
        Date = other.Date;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            NickName = input.ReadString();
            break;
          }
          case 18: {
            ChatMsg = input.ReadString();
            break;
          }
          case 24: {
            Date = input.ReadInt64();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            NickName = input.ReadString();
            break;
          }
          case 18: {
            ChatMsg = input.ReadString();
            break;
          }
          case 24: {
            Date = input.ReadInt64();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Ping : pb::IMessage<Protobuf_Ping>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Ping> _parser = new pb::MessageParser<Protobuf_Ping>(() => new Protobuf_Ping());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Ping> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Ping() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Ping(Protobuf_Ping other) : this() {
      seed_ = other.seed_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Ping Clone() {
      return new Protobuf_Ping(this);
    }

    /// <summary>Field number for the "Seed" field.</summary>
    public const int SeedFieldNumber = 1;
    private int seed_;
    /// <summary>
    ///随机数
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Seed {
      get { return seed_; }
      set {
        seed_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Ping);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Ping other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Seed != other.Seed) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Seed != 0) hash ^= Seed.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Seed != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(Seed);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Seed != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(Seed);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Seed != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Seed);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Ping other) {
      if (other == null) {
        return;
      }
      if (other.Seed != 0) {
        Seed = other.Seed;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Seed = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Seed = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Pong : pb::IMessage<Protobuf_Pong>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Pong> _parser = new pb::MessageParser<Protobuf_Pong>(() => new Protobuf_Pong());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Pong> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Pong() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Pong(Protobuf_Pong other) : this() {
      seed_ = other.seed_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Pong Clone() {
      return new Protobuf_Pong(this);
    }

    /// <summary>Field number for the "Seed" field.</summary>
    public const int SeedFieldNumber = 1;
    private int seed_;
    /// <summary>
    ///原样返回随机数
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int Seed {
      get { return seed_; }
      set {
        seed_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Pong);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Pong other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Seed != other.Seed) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Seed != 0) hash ^= Seed.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Seed != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(Seed);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Seed != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(Seed);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Seed != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Seed);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Pong other) {
      if (other == null) {
        return;
      }
      if (other.Seed != 0) {
        Seed = other.Seed;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Seed = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Seed = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///登录数据上行
  /// </summary>
  public sealed partial class Protobuf_Login : pb::IMessage<Protobuf_Login>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Login> _parser = new pb::MessageParser<Protobuf_Login>(() => new Protobuf_Login());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Login> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Login() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Login(Protobuf_Login other) : this() {
      loginType_ = other.loginType_;
      deviceType_ = other.deviceType_;
      account_ = other.account_;
      password_ = other.password_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Login Clone() {
      return new Protobuf_Login(this);
    }

    /// <summary>Field number for the "loginType" field.</summary>
    public const int LoginTypeFieldNumber = 1;
    private global::AxibugProtobuf.LoginType loginType_ = global::AxibugProtobuf.LoginType.BaseDefault;
    /// <summary>
    ///登录操作类型 [0]皓月通行证 [3] 皓月BF3 [4] 皓月BF4
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::AxibugProtobuf.LoginType LoginType {
      get { return loginType_; }
      set {
        loginType_ = value;
      }
    }

    /// <summary>Field number for the "deviceType" field.</summary>
    public const int DeviceTypeFieldNumber = 2;
    private global::AxibugProtobuf.DeviceType deviceType_ = global::AxibugProtobuf.DeviceType.Default;
    /// <summary>
    ///设备类型 [0]PC [1]AndroidPad预留 [3]IPad预留
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::AxibugProtobuf.DeviceType DeviceType {
      get { return deviceType_; }
      set {
        deviceType_ = value;
      }
    }

    /// <summary>Field number for the "Account" field.</summary>
    public const int AccountFieldNumber = 3;
    private string account_ = "";
    /// <summary>
    ///用户名
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Account {
      get { return account_; }
      set {
        account_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Password" field.</summary>
    public const int PasswordFieldNumber = 4;
    private string password_ = "";
    /// <summary>
    ///密码
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Password {
      get { return password_; }
      set {
        password_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Login);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Login other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (LoginType != other.LoginType) return false;
      if (DeviceType != other.DeviceType) return false;
      if (Account != other.Account) return false;
      if (Password != other.Password) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (LoginType != global::AxibugProtobuf.LoginType.BaseDefault) hash ^= LoginType.GetHashCode();
      if (DeviceType != global::AxibugProtobuf.DeviceType.Default) hash ^= DeviceType.GetHashCode();
      if (Account.Length != 0) hash ^= Account.GetHashCode();
      if (Password.Length != 0) hash ^= Password.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (LoginType != global::AxibugProtobuf.LoginType.BaseDefault) {
        output.WriteRawTag(8);
        output.WriteEnum((int) LoginType);
      }
      if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DeviceType);
      }
      if (Account.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Account);
      }
      if (Password.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Password);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (LoginType != global::AxibugProtobuf.LoginType.BaseDefault) {
        output.WriteRawTag(8);
        output.WriteEnum((int) LoginType);
      }
      if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DeviceType);
      }
      if (Account.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Account);
      }
      if (Password.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Password);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (LoginType != global::AxibugProtobuf.LoginType.BaseDefault) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LoginType);
      }
      if (DeviceType != global::AxibugProtobuf.DeviceType.Default) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DeviceType);
      }
      if (Account.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Account);
      }
      if (Password.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Password);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Login other) {
      if (other == null) {
        return;
      }
      if (other.LoginType != global::AxibugProtobuf.LoginType.BaseDefault) {
        LoginType = other.LoginType;
      }
      if (other.DeviceType != global::AxibugProtobuf.DeviceType.Default) {
        DeviceType = other.DeviceType;
      }
      if (other.Account.Length != 0) {
        Account = other.Account;
      }
      if (other.Password.Length != 0) {
        Password = other.Password;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            LoginType = (global::AxibugProtobuf.LoginType) input.ReadEnum();
            break;
          }
          case 16: {
            DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
            break;
          }
          case 26: {
            Account = input.ReadString();
            break;
          }
          case 34: {
            Password = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            LoginType = (global::AxibugProtobuf.LoginType) input.ReadEnum();
            break;
          }
          case 16: {
            DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum();
            break;
          }
          case 26: {
            Account = input.ReadString();
            break;
          }
          case 34: {
            Password = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///登录数据下行
  /// </summary>
  public sealed partial class Protobuf_Login_RESP : pb::IMessage<Protobuf_Login_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Login_RESP> _parser = new pb::MessageParser<Protobuf_Login_RESP>(() => new Protobuf_Login_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Login_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Login_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Login_RESP(Protobuf_Login_RESP other) : this() {
      deviceUUID_ = other.deviceUUID_;
      token_ = other.token_;
      lastLoginDate_ = other.lastLoginDate_;
      regDate_ = other.regDate_;
      status_ = other.status_;
      uID_ = other.uID_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Login_RESP Clone() {
      return new Protobuf_Login_RESP(this);
    }

    /// <summary>Field number for the "DeviceUUID" field.</summary>
    public const int DeviceUUIDFieldNumber = 1;
    private string deviceUUID_ = "";
    /// <summary>
    ///设备唯一串
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string DeviceUUID {
      get { return deviceUUID_; }
      set {
        deviceUUID_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Token" field.</summary>
    public const int TokenFieldNumber = 2;
    private string token_ = "";
    /// <summary>
    ///登录凭据 (本次登录之后,所有业务请求凭据,需要存储在内存中)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Token {
      get { return token_; }
      set {
        token_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "LastLoginDate" field.</summary>
    public const int LastLoginDateFieldNumber = 3;
    private string lastLoginDate_ = "";
    /// <summary>
    ///上次登录时间(只用于呈现的字符串,若界面需求需要)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string LastLoginDate {
      get { return lastLoginDate_; }
      set {
        lastLoginDate_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "RegDate" field.</summary>
    public const int RegDateFieldNumber = 4;
    private string regDate_ = "";
    /// <summary>
    ///注册时间(只用于呈现的字符串,若界面需求需要)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string RegDate {
      get { return regDate_; }
      set {
        regDate_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Status" field.</summary>
    public const int StatusFieldNumber = 5;
    private global::AxibugProtobuf.LoginResultStatus status_ = global::AxibugProtobuf.LoginResultStatus.BaseDefault;
    /// <summary>
    ///账号状态 (预留) [1]正常[0]被禁封
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::AxibugProtobuf.LoginResultStatus Status {
      get { return status_; }
      set {
        status_ = value;
      }
    }

    /// <summary>Field number for the "UID" field.</summary>
    public const int UIDFieldNumber = 6;
    private long uID_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long UID {
      get { return uID_; }
      set {
        uID_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Login_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Login_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DeviceUUID != other.DeviceUUID) return false;
      if (Token != other.Token) return false;
      if (LastLoginDate != other.LastLoginDate) return false;
      if (RegDate != other.RegDate) return false;
      if (Status != other.Status) return false;
      if (UID != other.UID) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (DeviceUUID.Length != 0) hash ^= DeviceUUID.GetHashCode();
      if (Token.Length != 0) hash ^= Token.GetHashCode();
      if (LastLoginDate.Length != 0) hash ^= LastLoginDate.GetHashCode();
      if (RegDate.Length != 0) hash ^= RegDate.GetHashCode();
      if (Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) hash ^= Status.GetHashCode();
      if (UID != 0L) hash ^= UID.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (DeviceUUID.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(DeviceUUID);
      }
      if (Token.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Token);
      }
      if (LastLoginDate.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(LastLoginDate);
      }
      if (RegDate.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RegDate);
      }
      if (Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) {
        output.WriteRawTag(40);
        output.WriteEnum((int) Status);
      }
      if (UID != 0L) {
        output.WriteRawTag(48);
        output.WriteInt64(UID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (DeviceUUID.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(DeviceUUID);
      }
      if (Token.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Token);
      }
      if (LastLoginDate.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(LastLoginDate);
      }
      if (RegDate.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RegDate);
      }
      if (Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) {
        output.WriteRawTag(40);
        output.WriteEnum((int) Status);
      }
      if (UID != 0L) {
        output.WriteRawTag(48);
        output.WriteInt64(UID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (DeviceUUID.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DeviceUUID);
      }
      if (Token.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Token);
      }
      if (LastLoginDate.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(LastLoginDate);
      }
      if (RegDate.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RegDate);
      }
      if (Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
      }
      if (UID != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(UID);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Login_RESP other) {
      if (other == null) {
        return;
      }
      if (other.DeviceUUID.Length != 0) {
        DeviceUUID = other.DeviceUUID;
      }
      if (other.Token.Length != 0) {
        Token = other.Token;
      }
      if (other.LastLoginDate.Length != 0) {
        LastLoginDate = other.LastLoginDate;
      }
      if (other.RegDate.Length != 0) {
        RegDate = other.RegDate;
      }
      if (other.Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) {
        Status = other.Status;
      }
      if (other.UID != 0L) {
        UID = other.UID;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            DeviceUUID = input.ReadString();
            break;
          }
          case 18: {
            Token = input.ReadString();
            break;
          }
          case 26: {
            LastLoginDate = input.ReadString();
            break;
          }
          case 34: {
            RegDate = input.ReadString();
            break;
          }
          case 40: {
            Status = (global::AxibugProtobuf.LoginResultStatus) input.ReadEnum();
            break;
          }
          case 48: {
            UID = input.ReadInt64();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            DeviceUUID = input.ReadString();
            break;
          }
          case 18: {
            Token = input.ReadString();
            break;
          }
          case 26: {
            LastLoginDate = input.ReadString();
            break;
          }
          case 34: {
            RegDate = input.ReadString();
            break;
          }
          case 40: {
            Status = (global::AxibugProtobuf.LoginResultStatus) input.ReadEnum();
            break;
          }
          case 48: {
            UID = input.ReadInt64();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_List : pb::IMessage<Protobuf_Room_List>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_List> _parser = new pb::MessageParser<Protobuf_Room_List>(() => new Protobuf_Room_List());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_List> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[6]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_List() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_List(Protobuf_Room_List other) : this() {
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_List Clone() {
      return new Protobuf_Room_List(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_List);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_List other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_List other) {
      if (other == null) {
        return;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_List_RESP : pb::IMessage<Protobuf_Room_List_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_List_RESP> _parser = new pb::MessageParser<Protobuf_Room_List_RESP>(() => new Protobuf_Room_List_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_List_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[7]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_List_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_List_RESP(Protobuf_Room_List_RESP other) : this() {
      roomMiniInfoList_ = other.roomMiniInfoList_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_List_RESP Clone() {
      return new Protobuf_Room_List_RESP(this);
    }

    /// <summary>Field number for the "RoomMiniInfoList" field.</summary>
    public const int RoomMiniInfoListFieldNumber = 1;
    private static readonly pb::FieldCodec<global::AxibugProtobuf.Protobuf_Room_MiniInfo> _repeated_roomMiniInfoList_codec
        = pb::FieldCodec.ForMessage(10, global::AxibugProtobuf.Protobuf_Room_MiniInfo.Parser);
    private readonly pbc::RepeatedField<global::AxibugProtobuf.Protobuf_Room_MiniInfo> roomMiniInfoList_ = new pbc::RepeatedField<global::AxibugProtobuf.Protobuf_Room_MiniInfo>();
    /// <summary>
    ///房间列表
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::AxibugProtobuf.Protobuf_Room_MiniInfo> RoomMiniInfoList {
      get { return roomMiniInfoList_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_List_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_List_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!roomMiniInfoList_.Equals(other.roomMiniInfoList_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= roomMiniInfoList_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      roomMiniInfoList_.WriteTo(output, _repeated_roomMiniInfoList_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      roomMiniInfoList_.WriteTo(ref output, _repeated_roomMiniInfoList_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      size += roomMiniInfoList_.CalculateSize(_repeated_roomMiniInfoList_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_List_RESP other) {
      if (other == null) {
        return;
      }
      roomMiniInfoList_.Add(other.roomMiniInfoList_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            roomMiniInfoList_.AddEntriesFrom(input, _repeated_roomMiniInfoList_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            roomMiniInfoList_.AddEntriesFrom(ref input, _repeated_roomMiniInfoList_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_MiniInfo : pb::IMessage<Protobuf_Room_MiniInfo>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_MiniInfo> _parser = new pb::MessageParser<Protobuf_Room_MiniInfo>(() => new Protobuf_Room_MiniInfo());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_MiniInfo> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[8]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_MiniInfo() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_MiniInfo(Protobuf_Room_MiniInfo other) : this() {
      roomID_ = other.roomID_;
      gameRomID_ = other.gameRomID_;
      gameRomHash_ = other.gameRomHash_;
      hostPlayerUID_ = other.hostPlayerUID_;
      gameState_ = other.gameState_;
      obsUserCount_ = other.obsUserCount_;
      player1UID_ = other.player1UID_;
      player1NickName_ = other.player1NickName_;
      player2UID_ = other.player2UID_;
      player2NickName_ = other.player2NickName_;
      player3UID_ = other.player3UID_;
      player3NickName_ = other.player3NickName_;
      player4UID_ = other.player4UID_;
      player4NickName_ = other.player4NickName_;
      screenProviderUID_ = other.screenProviderUID_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_MiniInfo Clone() {
      return new Protobuf_Room_MiniInfo(this);
    }

    /// <summary>Field number for the "RoomID" field.</summary>
    public const int RoomIDFieldNumber = 1;
    private int roomID_;
    /// <summary>
    ///房间ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int RoomID {
      get { return roomID_; }
      set {
        roomID_ = value;
      }
    }

    /// <summary>Field number for the "GameRomID" field.</summary>
    public const int GameRomIDFieldNumber = 2;
    private int gameRomID_;
    /// <summary>
    ///游戏ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int GameRomID {
      get { return gameRomID_; }
      set {
        gameRomID_ = value;
      }
    }

    /// <summary>Field number for the "GameRomHash" field.</summary>
    public const int GameRomHashFieldNumber = 3;
    private string gameRomHash_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string GameRomHash {
      get { return gameRomHash_; }
      set {
        gameRomHash_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "HostPlayerUID" field.</summary>
    public const int HostPlayerUIDFieldNumber = 4;
    private long hostPlayerUID_;
    /// <summary>
    ///主机玩家ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long HostPlayerUID {
      get { return hostPlayerUID_; }
      set {
        hostPlayerUID_ = value;
      }
    }

    /// <summary>Field number for the "GameState" field.</summary>
    public const int GameStateFieldNumber = 5;
    private global::AxibugProtobuf.RoomGameState gameState_ = global::AxibugProtobuf.RoomGameState.NoneGameState;
    /// <summary>
    ///游戏状态
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::AxibugProtobuf.RoomGameState GameState {
      get { return gameState_; }
      set {
        gameState_ = value;
      }
    }

    /// <summary>Field number for the "ObsUserCount" field.</summary>
    public const int ObsUserCountFieldNumber = 6;
    private int obsUserCount_;
    /// <summary>
    ///观战用户数量
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int ObsUserCount {
      get { return obsUserCount_; }
      set {
        obsUserCount_ = value;
      }
    }

    /// <summary>Field number for the "Player1_UID" field.</summary>
    public const int Player1UIDFieldNumber = 7;
    private long player1UID_;
    /// <summary>
    ///玩家1 UID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long Player1UID {
      get { return player1UID_; }
      set {
        player1UID_ = value;
      }
    }

    /// <summary>Field number for the "Player1_NickName" field.</summary>
    public const int Player1NickNameFieldNumber = 8;
    private string player1NickName_ = "";
    /// <summary>
    ///玩家1 昵称
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Player1NickName {
      get { return player1NickName_; }
      set {
        player1NickName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Player2_UID" field.</summary>
    public const int Player2UIDFieldNumber = 9;
    private long player2UID_;
    /// <summary>
    ///玩家2 UID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long Player2UID {
      get { return player2UID_; }
      set {
        player2UID_ = value;
      }
    }

    /// <summary>Field number for the "Player2_NickName" field.</summary>
    public const int Player2NickNameFieldNumber = 10;
    private string player2NickName_ = "";
    /// <summary>
    ///玩家2 昵称
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Player2NickName {
      get { return player2NickName_; }
      set {
        player2NickName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Player3_UID" field.</summary>
    public const int Player3UIDFieldNumber = 11;
    private long player3UID_;
    /// <summary>
    ///玩家3 UID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long Player3UID {
      get { return player3UID_; }
      set {
        player3UID_ = value;
      }
    }

    /// <summary>Field number for the "Player3_NickName" field.</summary>
    public const int Player3NickNameFieldNumber = 12;
    private string player3NickName_ = "";
    /// <summary>
    ///玩家3 昵称
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Player3NickName {
      get { return player3NickName_; }
      set {
        player3NickName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "Player4_UID" field.</summary>
    public const int Player4UIDFieldNumber = 13;
    private long player4UID_;
    /// <summary>
    ///玩家4 UID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long Player4UID {
      get { return player4UID_; }
      set {
        player4UID_ = value;
      }
    }

    /// <summary>Field number for the "Player4_NickName" field.</summary>
    public const int Player4NickNameFieldNumber = 14;
    private string player4NickName_ = "";
    /// <summary>
    ///玩家4 昵称
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Player4NickName {
      get { return player4NickName_; }
      set {
        player4NickName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "ScreenProviderUID" field.</summary>
    public const int ScreenProviderUIDFieldNumber = 15;
    private long screenProviderUID_;
    /// <summary>
    ///屏幕数据供应者
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public long ScreenProviderUID {
      get { return screenProviderUID_; }
      set {
        screenProviderUID_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_MiniInfo);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_MiniInfo other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (RoomID != other.RoomID) return false;
      if (GameRomID != other.GameRomID) return false;
      if (GameRomHash != other.GameRomHash) return false;
      if (HostPlayerUID != other.HostPlayerUID) return false;
      if (GameState != other.GameState) return false;
      if (ObsUserCount != other.ObsUserCount) return false;
      if (Player1UID != other.Player1UID) return false;
      if (Player1NickName != other.Player1NickName) return false;
      if (Player2UID != other.Player2UID) return false;
      if (Player2NickName != other.Player2NickName) return false;
      if (Player3UID != other.Player3UID) return false;
      if (Player3NickName != other.Player3NickName) return false;
      if (Player4UID != other.Player4UID) return false;
      if (Player4NickName != other.Player4NickName) return false;
      if (ScreenProviderUID != other.ScreenProviderUID) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (RoomID != 0) hash ^= RoomID.GetHashCode();
      if (GameRomID != 0) hash ^= GameRomID.GetHashCode();
      if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode();
      if (HostPlayerUID != 0L) hash ^= HostPlayerUID.GetHashCode();
      if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) hash ^= GameState.GetHashCode();
      if (ObsUserCount != 0) hash ^= ObsUserCount.GetHashCode();
      if (Player1UID != 0L) hash ^= Player1UID.GetHashCode();
      if (Player1NickName.Length != 0) hash ^= Player1NickName.GetHashCode();
      if (Player2UID != 0L) hash ^= Player2UID.GetHashCode();
      if (Player2NickName.Length != 0) hash ^= Player2NickName.GetHashCode();
      if (Player3UID != 0L) hash ^= Player3UID.GetHashCode();
      if (Player3NickName.Length != 0) hash ^= Player3NickName.GetHashCode();
      if (Player4UID != 0L) hash ^= Player4UID.GetHashCode();
      if (Player4NickName.Length != 0) hash ^= Player4NickName.GetHashCode();
      if (ScreenProviderUID != 0L) hash ^= ScreenProviderUID.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (GameRomID != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(GameRomID);
      }
      if (GameRomHash.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(GameRomHash);
      }
      if (HostPlayerUID != 0L) {
        output.WriteRawTag(32);
        output.WriteInt64(HostPlayerUID);
      }
      if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
        output.WriteRawTag(40);
        output.WriteEnum((int) GameState);
      }
      if (ObsUserCount != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(ObsUserCount);
      }
      if (Player1UID != 0L) {
        output.WriteRawTag(56);
        output.WriteInt64(Player1UID);
      }
      if (Player1NickName.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(Player1NickName);
      }
      if (Player2UID != 0L) {
        output.WriteRawTag(72);
        output.WriteInt64(Player2UID);
      }
      if (Player2NickName.Length != 0) {
        output.WriteRawTag(82);
        output.WriteString(Player2NickName);
      }
      if (Player3UID != 0L) {
        output.WriteRawTag(88);
        output.WriteInt64(Player3UID);
      }
      if (Player3NickName.Length != 0) {
        output.WriteRawTag(98);
        output.WriteString(Player3NickName);
      }
      if (Player4UID != 0L) {
        output.WriteRawTag(104);
        output.WriteInt64(Player4UID);
      }
      if (Player4NickName.Length != 0) {
        output.WriteRawTag(114);
        output.WriteString(Player4NickName);
      }
      if (ScreenProviderUID != 0L) {
        output.WriteRawTag(120);
        output.WriteInt64(ScreenProviderUID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (GameRomID != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(GameRomID);
      }
      if (GameRomHash.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(GameRomHash);
      }
      if (HostPlayerUID != 0L) {
        output.WriteRawTag(32);
        output.WriteInt64(HostPlayerUID);
      }
      if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
        output.WriteRawTag(40);
        output.WriteEnum((int) GameState);
      }
      if (ObsUserCount != 0) {
        output.WriteRawTag(48);
        output.WriteInt32(ObsUserCount);
      }
      if (Player1UID != 0L) {
        output.WriteRawTag(56);
        output.WriteInt64(Player1UID);
      }
      if (Player1NickName.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(Player1NickName);
      }
      if (Player2UID != 0L) {
        output.WriteRawTag(72);
        output.WriteInt64(Player2UID);
      }
      if (Player2NickName.Length != 0) {
        output.WriteRawTag(82);
        output.WriteString(Player2NickName);
      }
      if (Player3UID != 0L) {
        output.WriteRawTag(88);
        output.WriteInt64(Player3UID);
      }
      if (Player3NickName.Length != 0) {
        output.WriteRawTag(98);
        output.WriteString(Player3NickName);
      }
      if (Player4UID != 0L) {
        output.WriteRawTag(104);
        output.WriteInt64(Player4UID);
      }
      if (Player4NickName.Length != 0) {
        output.WriteRawTag(114);
        output.WriteString(Player4NickName);
      }
      if (ScreenProviderUID != 0L) {
        output.WriteRawTag(120);
        output.WriteInt64(ScreenProviderUID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (RoomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
      }
      if (GameRomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(GameRomID);
      }
      if (GameRomHash.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash);
      }
      if (HostPlayerUID != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(HostPlayerUID);
      }
      if (GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GameState);
      }
      if (ObsUserCount != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ObsUserCount);
      }
      if (Player1UID != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(Player1UID);
      }
      if (Player1NickName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Player1NickName);
      }
      if (Player2UID != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(Player2UID);
      }
      if (Player2NickName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Player2NickName);
      }
      if (Player3UID != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(Player3UID);
      }
      if (Player3NickName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Player3NickName);
      }
      if (Player4UID != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(Player4UID);
      }
      if (Player4NickName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Player4NickName);
      }
      if (ScreenProviderUID != 0L) {
        size += 1 + pb::CodedOutputStream.ComputeInt64Size(ScreenProviderUID);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_MiniInfo other) {
      if (other == null) {
        return;
      }
      if (other.RoomID != 0) {
        RoomID = other.RoomID;
      }
      if (other.GameRomID != 0) {
        GameRomID = other.GameRomID;
      }
      if (other.GameRomHash.Length != 0) {
        GameRomHash = other.GameRomHash;
      }
      if (other.HostPlayerUID != 0L) {
        HostPlayerUID = other.HostPlayerUID;
      }
      if (other.GameState != global::AxibugProtobuf.RoomGameState.NoneGameState) {
        GameState = other.GameState;
      }
      if (other.ObsUserCount != 0) {
        ObsUserCount = other.ObsUserCount;
      }
      if (other.Player1UID != 0L) {
        Player1UID = other.Player1UID;
      }
      if (other.Player1NickName.Length != 0) {
        Player1NickName = other.Player1NickName;
      }
      if (other.Player2UID != 0L) {
        Player2UID = other.Player2UID;
      }
      if (other.Player2NickName.Length != 0) {
        Player2NickName = other.Player2NickName;
      }
      if (other.Player3UID != 0L) {
        Player3UID = other.Player3UID;
      }
      if (other.Player3NickName.Length != 0) {
        Player3NickName = other.Player3NickName;
      }
      if (other.Player4UID != 0L) {
        Player4UID = other.Player4UID;
      }
      if (other.Player4NickName.Length != 0) {
        Player4NickName = other.Player4NickName;
      }
      if (other.ScreenProviderUID != 0L) {
        ScreenProviderUID = other.ScreenProviderUID;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
          case 16: {
            GameRomID = input.ReadInt32();
            break;
          }
          case 26: {
            GameRomHash = input.ReadString();
            break;
          }
          case 32: {
            HostPlayerUID = input.ReadInt64();
            break;
          }
          case 40: {
            GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum();
            break;
          }
          case 48: {
            ObsUserCount = input.ReadInt32();
            break;
          }
          case 56: {
            Player1UID = input.ReadInt64();
            break;
          }
          case 66: {
            Player1NickName = input.ReadString();
            break;
          }
          case 72: {
            Player2UID = input.ReadInt64();
            break;
          }
          case 82: {
            Player2NickName = input.ReadString();
            break;
          }
          case 88: {
            Player3UID = input.ReadInt64();
            break;
          }
          case 98: {
            Player3NickName = input.ReadString();
            break;
          }
          case 104: {
            Player4UID = input.ReadInt64();
            break;
          }
          case 114: {
            Player4NickName = input.ReadString();
            break;
          }
          case 120: {
            ScreenProviderUID = input.ReadInt64();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
          case 16: {
            GameRomID = input.ReadInt32();
            break;
          }
          case 26: {
            GameRomHash = input.ReadString();
            break;
          }
          case 32: {
            HostPlayerUID = input.ReadInt64();
            break;
          }
          case 40: {
            GameState = (global::AxibugProtobuf.RoomGameState) input.ReadEnum();
            break;
          }
          case 48: {
            ObsUserCount = input.ReadInt32();
            break;
          }
          case 56: {
            Player1UID = input.ReadInt64();
            break;
          }
          case 66: {
            Player1NickName = input.ReadString();
            break;
          }
          case 72: {
            Player2UID = input.ReadInt64();
            break;
          }
          case 82: {
            Player2NickName = input.ReadString();
            break;
          }
          case 88: {
            Player3UID = input.ReadInt64();
            break;
          }
          case 98: {
            Player3NickName = input.ReadString();
            break;
          }
          case 104: {
            Player4UID = input.ReadInt64();
            break;
          }
          case 114: {
            Player4NickName = input.ReadString();
            break;
          }
          case 120: {
            ScreenProviderUID = input.ReadInt64();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Update_RESP : pb::IMessage<Protobuf_Room_Update_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Update_RESP> _parser = new pb::MessageParser<Protobuf_Room_Update_RESP>(() => new Protobuf_Room_Update_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Update_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[9]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Update_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Update_RESP(Protobuf_Room_Update_RESP other) : this() {
      updateType_ = other.updateType_;
      roomMiniInfo_ = other.roomMiniInfo_ != null ? other.roomMiniInfo_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Update_RESP Clone() {
      return new Protobuf_Room_Update_RESP(this);
    }

    /// <summary>Field number for the "UpdateType" field.</summary>
    public const int UpdateTypeFieldNumber = 1;
    private int updateType_;
    /// <summary>
    ///[0] 更新或新增 [1] 删除
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int UpdateType {
      get { return updateType_; }
      set {
        updateType_ = value;
      }
    }

    /// <summary>Field number for the "RoomMiniInfo" field.</summary>
    public const int RoomMiniInfoFieldNumber = 2;
    private global::AxibugProtobuf.Protobuf_Room_MiniInfo roomMiniInfo_;
    /// <summary>
    ///房间信息
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::AxibugProtobuf.Protobuf_Room_MiniInfo RoomMiniInfo {
      get { return roomMiniInfo_; }
      set {
        roomMiniInfo_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Update_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Update_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (UpdateType != other.UpdateType) return false;
      if (!object.Equals(RoomMiniInfo, other.RoomMiniInfo)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (UpdateType != 0) hash ^= UpdateType.GetHashCode();
      if (roomMiniInfo_ != null) hash ^= RoomMiniInfo.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (UpdateType != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(UpdateType);
      }
      if (roomMiniInfo_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (UpdateType != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(UpdateType);
      }
      if (roomMiniInfo_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (UpdateType != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(UpdateType);
      }
      if (roomMiniInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Update_RESP other) {
      if (other == null) {
        return;
      }
      if (other.UpdateType != 0) {
        UpdateType = other.UpdateType;
      }
      if (other.roomMiniInfo_ != null) {
        if (roomMiniInfo_ == null) {
          RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
        }
        RoomMiniInfo.MergeFrom(other.RoomMiniInfo);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            UpdateType = input.ReadInt32();
            break;
          }
          case 18: {
            if (roomMiniInfo_ == null) {
              RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
            }
            input.ReadMessage(RoomMiniInfo);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            UpdateType = input.ReadInt32();
            break;
          }
          case 18: {
            if (roomMiniInfo_ == null) {
              RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
            }
            input.ReadMessage(RoomMiniInfo);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Screnn_Frame : pb::IMessage<Protobuf_Screnn_Frame>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Screnn_Frame> _parser = new pb::MessageParser<Protobuf_Screnn_Frame>(() => new Protobuf_Screnn_Frame());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Screnn_Frame> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[10]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Screnn_Frame() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Screnn_Frame(Protobuf_Screnn_Frame other) : this() {
      roomID_ = other.roomID_;
      frameID_ = other.frameID_;
      rawBitmap_ = other.rawBitmap_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Screnn_Frame Clone() {
      return new Protobuf_Screnn_Frame(this);
    }

    /// <summary>Field number for the "RoomID" field.</summary>
    public const int RoomIDFieldNumber = 1;
    private int roomID_;
    /// <summary>
    ///房间ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int RoomID {
      get { return roomID_; }
      set {
        roomID_ = value;
      }
    }

    /// <summary>Field number for the "FrameID" field.</summary>
    public const int FrameIDFieldNumber = 2;
    private int frameID_;
    /// <summary>
    ///帧编号
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int FrameID {
      get { return frameID_; }
      set {
        frameID_ = value;
      }
    }

    /// <summary>Field number for the "RawBitmap" field.</summary>
    public const int RawBitmapFieldNumber = 3;
    private pb::ByteString rawBitmap_ = pb::ByteString.Empty;
    /// <summary>
    ///渲染层画面
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString RawBitmap {
      get { return rawBitmap_; }
      set {
        rawBitmap_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Screnn_Frame);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Screnn_Frame other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (RoomID != other.RoomID) return false;
      if (FrameID != other.FrameID) return false;
      if (RawBitmap != other.RawBitmap) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (RoomID != 0) hash ^= RoomID.GetHashCode();
      if (FrameID != 0) hash ^= FrameID.GetHashCode();
      if (RawBitmap.Length != 0) hash ^= RawBitmap.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (FrameID != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(FrameID);
      }
      if (RawBitmap.Length != 0) {
        output.WriteRawTag(26);
        output.WriteBytes(RawBitmap);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (FrameID != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(FrameID);
      }
      if (RawBitmap.Length != 0) {
        output.WriteRawTag(26);
        output.WriteBytes(RawBitmap);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (RoomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
      }
      if (FrameID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(FrameID);
      }
      if (RawBitmap.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(RawBitmap);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Screnn_Frame other) {
      if (other == null) {
        return;
      }
      if (other.RoomID != 0) {
        RoomID = other.RoomID;
      }
      if (other.FrameID != 0) {
        FrameID = other.FrameID;
      }
      if (other.RawBitmap.Length != 0) {
        RawBitmap = other.RawBitmap;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
          case 16: {
            FrameID = input.ReadInt32();
            break;
          }
          case 26: {
            RawBitmap = input.ReadBytes();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
          case 16: {
            FrameID = input.ReadInt32();
            break;
          }
          case 26: {
            RawBitmap = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_SinglePlayerInputData : pb::IMessage<Protobuf_Room_SinglePlayerInputData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_SinglePlayerInputData> _parser = new pb::MessageParser<Protobuf_Room_SinglePlayerInputData>(() => new Protobuf_Room_SinglePlayerInputData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_SinglePlayerInputData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[11]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_SinglePlayerInputData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_SinglePlayerInputData(Protobuf_Room_SinglePlayerInputData other) : this() {
      frameID_ = other.frameID_;
      inputData_ = other.inputData_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_SinglePlayerInputData Clone() {
      return new Protobuf_Room_SinglePlayerInputData(this);
    }

    /// <summary>Field number for the "FrameID" field.</summary>
    public const int FrameIDFieldNumber = 1;
    private uint frameID_;
    /// <summary>
    ///帧编号
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public uint FrameID {
      get { return frameID_; }
      set {
        frameID_ = value;
      }
    }

    /// <summary>Field number for the "InputData" field.</summary>
    public const int InputDataFieldNumber = 2;
    private uint inputData_;
    /// <summary>
    ///单个玩家操作位运算汇总
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public uint InputData {
      get { return inputData_; }
      set {
        inputData_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_SinglePlayerInputData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_SinglePlayerInputData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (FrameID != other.FrameID) return false;
      if (InputData != other.InputData) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (FrameID != 0) hash ^= FrameID.GetHashCode();
      if (InputData != 0) hash ^= InputData.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (FrameID != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(FrameID);
      }
      if (InputData != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(InputData);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (FrameID != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(FrameID);
      }
      if (InputData != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(InputData);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (FrameID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(FrameID);
      }
      if (InputData != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(InputData);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_SinglePlayerInputData other) {
      if (other == null) {
        return;
      }
      if (other.FrameID != 0) {
        FrameID = other.FrameID;
      }
      if (other.InputData != 0) {
        InputData = other.InputData;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            FrameID = input.ReadUInt32();
            break;
          }
          case 16: {
            InputData = input.ReadUInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            FrameID = input.ReadUInt32();
            break;
          }
          case 16: {
            InputData = input.ReadUInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Syn_RoomFrameAllInputData : pb::IMessage<Protobuf_Room_Syn_RoomFrameAllInputData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData> _parser = new pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData>(() => new Protobuf_Room_Syn_RoomFrameAllInputData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Syn_RoomFrameAllInputData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[12]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Syn_RoomFrameAllInputData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Syn_RoomFrameAllInputData(Protobuf_Room_Syn_RoomFrameAllInputData other) : this() {
      frameID_ = other.frameID_;
      inputData_ = other.inputData_;
      serverFrameID_ = other.serverFrameID_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Syn_RoomFrameAllInputData Clone() {
      return new Protobuf_Room_Syn_RoomFrameAllInputData(this);
    }

    /// <summary>Field number for the "FrameID" field.</summary>
    public const int FrameIDFieldNumber = 1;
    private uint frameID_;
    /// <summary>
    ///帧编号
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public uint FrameID {
      get { return frameID_; }
      set {
        frameID_ = value;
      }
    }

    /// <summary>Field number for the "InputData" field.</summary>
    public const int InputDataFieldNumber = 2;
    private ulong inputData_;
    /// <summary>
    ///所有玩家操作位运算汇总
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ulong InputData {
      get { return inputData_; }
      set {
        inputData_ = value;
      }
    }

    /// <summary>Field number for the "ServerFrameID" field.</summary>
    public const int ServerFrameIDFieldNumber = 3;
    private uint serverFrameID_;
    /// <summary>
    ///服务器帧编号
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public uint ServerFrameID {
      get { return serverFrameID_; }
      set {
        serverFrameID_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Syn_RoomFrameAllInputData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Syn_RoomFrameAllInputData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (FrameID != other.FrameID) return false;
      if (InputData != other.InputData) return false;
      if (ServerFrameID != other.ServerFrameID) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (FrameID != 0) hash ^= FrameID.GetHashCode();
      if (InputData != 0UL) hash ^= InputData.GetHashCode();
      if (ServerFrameID != 0) hash ^= ServerFrameID.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (FrameID != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(FrameID);
      }
      if (InputData != 0UL) {
        output.WriteRawTag(16);
        output.WriteUInt64(InputData);
      }
      if (ServerFrameID != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(ServerFrameID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (FrameID != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(FrameID);
      }
      if (InputData != 0UL) {
        output.WriteRawTag(16);
        output.WriteUInt64(InputData);
      }
      if (ServerFrameID != 0) {
        output.WriteRawTag(24);
        output.WriteUInt32(ServerFrameID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (FrameID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(FrameID);
      }
      if (InputData != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(InputData);
      }
      if (ServerFrameID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ServerFrameID);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Syn_RoomFrameAllInputData other) {
      if (other == null) {
        return;
      }
      if (other.FrameID != 0) {
        FrameID = other.FrameID;
      }
      if (other.InputData != 0UL) {
        InputData = other.InputData;
      }
      if (other.ServerFrameID != 0) {
        ServerFrameID = other.ServerFrameID;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            FrameID = input.ReadUInt32();
            break;
          }
          case 16: {
            InputData = input.ReadUInt64();
            break;
          }
          case 24: {
            ServerFrameID = input.ReadUInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            FrameID = input.ReadUInt32();
            break;
          }
          case 16: {
            InputData = input.ReadUInt64();
            break;
          }
          case 24: {
            ServerFrameID = input.ReadUInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Create : pb::IMessage<Protobuf_Room_Create>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Create> _parser = new pb::MessageParser<Protobuf_Room_Create>(() => new Protobuf_Room_Create());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Create> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[13]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Create() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Create(Protobuf_Room_Create other) : this() {
      gameRomID_ = other.gameRomID_;
      gameRomHash_ = other.gameRomHash_;
      joinPlayerIdx_ = other.joinPlayerIdx_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Create Clone() {
      return new Protobuf_Room_Create(this);
    }

    /// <summary>Field number for the "GameRomID" field.</summary>
    public const int GameRomIDFieldNumber = 1;
    private int gameRomID_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int GameRomID {
      get { return gameRomID_; }
      set {
        gameRomID_ = value;
      }
    }

    /// <summary>Field number for the "GameRomHash" field.</summary>
    public const int GameRomHashFieldNumber = 2;
    private string gameRomHash_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string GameRomHash {
      get { return gameRomHash_; }
      set {
        gameRomHash_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "JoinPlayerIdx" field.</summary>
    public const int JoinPlayerIdxFieldNumber = 3;
    private int joinPlayerIdx_;
    /// <summary>
    ///P1~P4[0~3] 以几号位玩家创建房间
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int JoinPlayerIdx {
      get { return joinPlayerIdx_; }
      set {
        joinPlayerIdx_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Create);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Create other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (GameRomID != other.GameRomID) return false;
      if (GameRomHash != other.GameRomHash) return false;
      if (JoinPlayerIdx != other.JoinPlayerIdx) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (GameRomID != 0) hash ^= GameRomID.GetHashCode();
      if (GameRomHash.Length != 0) hash ^= GameRomHash.GetHashCode();
      if (JoinPlayerIdx != 0) hash ^= JoinPlayerIdx.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (GameRomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(GameRomID);
      }
      if (GameRomHash.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(GameRomHash);
      }
      if (JoinPlayerIdx != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(JoinPlayerIdx);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (GameRomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(GameRomID);
      }
      if (GameRomHash.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(GameRomHash);
      }
      if (JoinPlayerIdx != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(JoinPlayerIdx);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (GameRomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(GameRomID);
      }
      if (GameRomHash.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(GameRomHash);
      }
      if (JoinPlayerIdx != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(JoinPlayerIdx);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Create other) {
      if (other == null) {
        return;
      }
      if (other.GameRomID != 0) {
        GameRomID = other.GameRomID;
      }
      if (other.GameRomHash.Length != 0) {
        GameRomHash = other.GameRomHash;
      }
      if (other.JoinPlayerIdx != 0) {
        JoinPlayerIdx = other.JoinPlayerIdx;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            GameRomID = input.ReadInt32();
            break;
          }
          case 18: {
            GameRomHash = input.ReadString();
            break;
          }
          case 24: {
            JoinPlayerIdx = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            GameRomID = input.ReadInt32();
            break;
          }
          case 18: {
            GameRomHash = input.ReadString();
            break;
          }
          case 24: {
            JoinPlayerIdx = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Create_RESP : pb::IMessage<Protobuf_Room_Create_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Create_RESP> _parser = new pb::MessageParser<Protobuf_Room_Create_RESP>(() => new Protobuf_Room_Create_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Create_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[14]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Create_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Create_RESP(Protobuf_Room_Create_RESP other) : this() {
      roomMiniInfo_ = other.roomMiniInfo_ != null ? other.roomMiniInfo_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Create_RESP Clone() {
      return new Protobuf_Room_Create_RESP(this);
    }

    /// <summary>Field number for the "RoomMiniInfo" field.</summary>
    public const int RoomMiniInfoFieldNumber = 1;
    private global::AxibugProtobuf.Protobuf_Room_MiniInfo roomMiniInfo_;
    /// <summary>
    ///房间信息
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::AxibugProtobuf.Protobuf_Room_MiniInfo RoomMiniInfo {
      get { return roomMiniInfo_; }
      set {
        roomMiniInfo_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Create_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Create_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(RoomMiniInfo, other.RoomMiniInfo)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (roomMiniInfo_ != null) hash ^= RoomMiniInfo.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (roomMiniInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (roomMiniInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (roomMiniInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Create_RESP other) {
      if (other == null) {
        return;
      }
      if (other.roomMiniInfo_ != null) {
        if (roomMiniInfo_ == null) {
          RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
        }
        RoomMiniInfo.MergeFrom(other.RoomMiniInfo);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (roomMiniInfo_ == null) {
              RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
            }
            input.ReadMessage(RoomMiniInfo);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (roomMiniInfo_ == null) {
              RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
            }
            input.ReadMessage(RoomMiniInfo);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Join : pb::IMessage<Protobuf_Room_Join>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Join> _parser = new pb::MessageParser<Protobuf_Room_Join>(() => new Protobuf_Room_Join());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Join> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[15]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Join() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Join(Protobuf_Room_Join other) : this() {
      roomID_ = other.roomID_;
      playerNum_ = other.playerNum_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Join Clone() {
      return new Protobuf_Room_Join(this);
    }

    /// <summary>Field number for the "RoomID" field.</summary>
    public const int RoomIDFieldNumber = 1;
    private int roomID_;
    /// <summary>
    ///房间ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int RoomID {
      get { return roomID_; }
      set {
        roomID_ = value;
      }
    }

    /// <summary>Field number for the "PlayerNum" field.</summary>
    public const int PlayerNumFieldNumber = 2;
    private int playerNum_;
    /// <summary>
    ///玩家编号 [0]1号玩家 [1]2号玩家
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int PlayerNum {
      get { return playerNum_; }
      set {
        playerNum_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Join);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Join other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (RoomID != other.RoomID) return false;
      if (PlayerNum != other.PlayerNum) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (RoomID != 0) hash ^= RoomID.GetHashCode();
      if (PlayerNum != 0) hash ^= PlayerNum.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (PlayerNum != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PlayerNum);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (PlayerNum != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PlayerNum);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (RoomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
      }
      if (PlayerNum != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PlayerNum);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Join other) {
      if (other == null) {
        return;
      }
      if (other.RoomID != 0) {
        RoomID = other.RoomID;
      }
      if (other.PlayerNum != 0) {
        PlayerNum = other.PlayerNum;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
          case 16: {
            PlayerNum = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
          case 16: {
            PlayerNum = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Join_RESP : pb::IMessage<Protobuf_Room_Join_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Join_RESP> _parser = new pb::MessageParser<Protobuf_Room_Join_RESP>(() => new Protobuf_Room_Join_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Join_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[16]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Join_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Join_RESP(Protobuf_Room_Join_RESP other) : this() {
      roomMiniInfo_ = other.roomMiniInfo_ != null ? other.roomMiniInfo_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Join_RESP Clone() {
      return new Protobuf_Room_Join_RESP(this);
    }

    /// <summary>Field number for the "RoomMiniInfo" field.</summary>
    public const int RoomMiniInfoFieldNumber = 1;
    private global::AxibugProtobuf.Protobuf_Room_MiniInfo roomMiniInfo_;
    /// <summary>
    ///房间信息
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::AxibugProtobuf.Protobuf_Room_MiniInfo RoomMiniInfo {
      get { return roomMiniInfo_; }
      set {
        roomMiniInfo_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Join_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Join_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(RoomMiniInfo, other.RoomMiniInfo)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (roomMiniInfo_ != null) hash ^= RoomMiniInfo.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (roomMiniInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (roomMiniInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (roomMiniInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Join_RESP other) {
      if (other == null) {
        return;
      }
      if (other.roomMiniInfo_ != null) {
        if (roomMiniInfo_ == null) {
          RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
        }
        RoomMiniInfo.MergeFrom(other.RoomMiniInfo);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (roomMiniInfo_ == null) {
              RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
            }
            input.ReadMessage(RoomMiniInfo);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (roomMiniInfo_ == null) {
              RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
            }
            input.ReadMessage(RoomMiniInfo);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Leave : pb::IMessage<Protobuf_Room_Leave>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Leave> _parser = new pb::MessageParser<Protobuf_Room_Leave>(() => new Protobuf_Room_Leave());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Leave> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[17]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Leave() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Leave(Protobuf_Room_Leave other) : this() {
      roomID_ = other.roomID_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Leave Clone() {
      return new Protobuf_Room_Leave(this);
    }

    /// <summary>Field number for the "RoomID" field.</summary>
    public const int RoomIDFieldNumber = 1;
    private int roomID_;
    /// <summary>
    ///离开的房间ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int RoomID {
      get { return roomID_; }
      set {
        roomID_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Leave);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Leave other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (RoomID != other.RoomID) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (RoomID != 0) hash ^= RoomID.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (RoomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Leave other) {
      if (other == null) {
        return;
      }
      if (other.RoomID != 0) {
        RoomID = other.RoomID;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Leave_RESP : pb::IMessage<Protobuf_Room_Leave_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Leave_RESP> _parser = new pb::MessageParser<Protobuf_Room_Leave_RESP>(() => new Protobuf_Room_Leave_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Leave_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[18]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Leave_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Leave_RESP(Protobuf_Room_Leave_RESP other) : this() {
      roomID_ = other.roomID_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Leave_RESP Clone() {
      return new Protobuf_Room_Leave_RESP(this);
    }

    /// <summary>Field number for the "RoomID" field.</summary>
    public const int RoomIDFieldNumber = 1;
    private int roomID_;
    /// <summary>
    ///离开的房间ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int RoomID {
      get { return roomID_; }
      set {
        roomID_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Leave_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Leave_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (RoomID != other.RoomID) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (RoomID != 0) hash ^= RoomID.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (RoomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Leave_RESP other) {
      if (other == null) {
        return;
      }
      if (other.RoomID != 0) {
        RoomID = other.RoomID;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_MyRoom_State_Change : pb::IMessage<Protobuf_Room_MyRoom_State_Change>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_MyRoom_State_Change> _parser = new pb::MessageParser<Protobuf_Room_MyRoom_State_Change>(() => new Protobuf_Room_MyRoom_State_Change());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_MyRoom_State_Change> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[19]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_MyRoom_State_Change() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_MyRoom_State_Change(Protobuf_Room_MyRoom_State_Change other) : this() {
      roomMiniInfo_ = other.roomMiniInfo_ != null ? other.roomMiniInfo_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_MyRoom_State_Change Clone() {
      return new Protobuf_Room_MyRoom_State_Change(this);
    }

    /// <summary>Field number for the "RoomMiniInfo" field.</summary>
    public const int RoomMiniInfoFieldNumber = 1;
    private global::AxibugProtobuf.Protobuf_Room_MiniInfo roomMiniInfo_;
    /// <summary>
    ///更新房间信息
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::AxibugProtobuf.Protobuf_Room_MiniInfo RoomMiniInfo {
      get { return roomMiniInfo_; }
      set {
        roomMiniInfo_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_MyRoom_State_Change);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_MyRoom_State_Change other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(RoomMiniInfo, other.RoomMiniInfo)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (roomMiniInfo_ != null) hash ^= RoomMiniInfo.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (roomMiniInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (roomMiniInfo_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (roomMiniInfo_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(RoomMiniInfo);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_MyRoom_State_Change other) {
      if (other == null) {
        return;
      }
      if (other.roomMiniInfo_ != null) {
        if (roomMiniInfo_ == null) {
          RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
        }
        RoomMiniInfo.MergeFrom(other.RoomMiniInfo);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (roomMiniInfo_ == null) {
              RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
            }
            input.ReadMessage(RoomMiniInfo);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (roomMiniInfo_ == null) {
              RoomMiniInfo = new global::AxibugProtobuf.Protobuf_Room_MiniInfo();
            }
            input.ReadMessage(RoomMiniInfo);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_WaitStep_RESP : pb::IMessage<Protobuf_Room_WaitStep_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_WaitStep_RESP> _parser = new pb::MessageParser<Protobuf_Room_WaitStep_RESP>(() => new Protobuf_Room_WaitStep_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_WaitStep_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[20]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_WaitStep_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_WaitStep_RESP(Protobuf_Room_WaitStep_RESP other) : this() {
      waitStep_ = other.waitStep_;
      loadStateRaw_ = other.loadStateRaw_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_WaitStep_RESP Clone() {
      return new Protobuf_Room_WaitStep_RESP(this);
    }

    /// <summary>Field number for the "WaitStep" field.</summary>
    public const int WaitStepFieldNumber = 1;
    private int waitStep_;
    /// <summary>
    ///状态 [0]等待主机上报即时存档 [1]要求客户端准备 [2]开始(收到本状态时,立即开始跑模拟器核心)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int WaitStep {
      get { return waitStep_; }
      set {
        waitStep_ = value;
      }
    }

    /// <summary>Field number for the "LoadStateRaw" field.</summary>
    public const int LoadStateRawFieldNumber = 2;
    private pb::ByteString loadStateRaw_ = pb::ByteString.Empty;
    /// <summary>
    ///如下是 WaitStep = 1 时,才有值。广播即时存档
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString LoadStateRaw {
      get { return loadStateRaw_; }
      set {
        loadStateRaw_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_WaitStep_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_WaitStep_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (WaitStep != other.WaitStep) return false;
      if (LoadStateRaw != other.LoadStateRaw) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (WaitStep != 0) hash ^= WaitStep.GetHashCode();
      if (LoadStateRaw.Length != 0) hash ^= LoadStateRaw.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (WaitStep != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(WaitStep);
      }
      if (LoadStateRaw.Length != 0) {
        output.WriteRawTag(18);
        output.WriteBytes(LoadStateRaw);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (WaitStep != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(WaitStep);
      }
      if (LoadStateRaw.Length != 0) {
        output.WriteRawTag(18);
        output.WriteBytes(LoadStateRaw);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (WaitStep != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(WaitStep);
      }
      if (LoadStateRaw.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(LoadStateRaw);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_WaitStep_RESP other) {
      if (other == null) {
        return;
      }
      if (other.WaitStep != 0) {
        WaitStep = other.WaitStep;
      }
      if (other.LoadStateRaw.Length != 0) {
        LoadStateRaw = other.LoadStateRaw;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            WaitStep = input.ReadInt32();
            break;
          }
          case 18: {
            LoadStateRaw = input.ReadBytes();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            WaitStep = input.ReadInt32();
            break;
          }
          case 18: {
            LoadStateRaw = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_HostPlayer_UpdateStateRaw : pb::IMessage<Protobuf_Room_HostPlayer_UpdateStateRaw>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw> _parser = new pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw>(() => new Protobuf_Room_HostPlayer_UpdateStateRaw());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[21]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_HostPlayer_UpdateStateRaw() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_HostPlayer_UpdateStateRaw(Protobuf_Room_HostPlayer_UpdateStateRaw other) : this() {
      loadStateRaw_ = other.loadStateRaw_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_HostPlayer_UpdateStateRaw Clone() {
      return new Protobuf_Room_HostPlayer_UpdateStateRaw(this);
    }

    /// <summary>Field number for the "LoadStateRaw" field.</summary>
    public const int LoadStateRawFieldNumber = 1;
    private pb::ByteString loadStateRaw_ = pb::ByteString.Empty;
    /// <summary>
    ///即时存档byte数据
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString LoadStateRaw {
      get { return loadStateRaw_; }
      set {
        loadStateRaw_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_HostPlayer_UpdateStateRaw);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_HostPlayer_UpdateStateRaw other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (LoadStateRaw != other.LoadStateRaw) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (LoadStateRaw.Length != 0) hash ^= LoadStateRaw.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (LoadStateRaw.Length != 0) {
        output.WriteRawTag(10);
        output.WriteBytes(LoadStateRaw);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (LoadStateRaw.Length != 0) {
        output.WriteRawTag(10);
        output.WriteBytes(LoadStateRaw);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (LoadStateRaw.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(LoadStateRaw);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_HostPlayer_UpdateStateRaw other) {
      if (other == null) {
        return;
      }
      if (other.LoadStateRaw.Length != 0) {
        LoadStateRaw = other.LoadStateRaw;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            LoadStateRaw = input.ReadBytes();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            LoadStateRaw = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_HostPlayer_UpdateStateRaw_RESP : pb::IMessage<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP> _parser = new pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP>(() => new Protobuf_Room_HostPlayer_UpdateStateRaw_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_HostPlayer_UpdateStateRaw_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) : this() {
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_HostPlayer_UpdateStateRaw_RESP Clone() {
      return new Protobuf_Room_HostPlayer_UpdateStateRaw_RESP(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_HostPlayer_UpdateStateRaw_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_HostPlayer_UpdateStateRaw_RESP other) {
      if (other == null) {
        return;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Player_Ready : pb::IMessage<Protobuf_Room_Player_Ready>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Player_Ready> _parser = new pb::MessageParser<Protobuf_Room_Player_Ready>(() => new Protobuf_Room_Player_Ready());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Player_Ready> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Player_Ready() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Player_Ready(Protobuf_Room_Player_Ready other) : this() {
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Player_Ready Clone() {
      return new Protobuf_Room_Player_Ready(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Player_Ready);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Player_Ready other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Player_Ready other) {
      if (other == null) {
        return;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Get_Screen : pb::IMessage<Protobuf_Room_Get_Screen>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Get_Screen> _parser = new pb::MessageParser<Protobuf_Room_Get_Screen>(() => new Protobuf_Room_Get_Screen());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Get_Screen> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Get_Screen() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Get_Screen(Protobuf_Room_Get_Screen other) : this() {
      roomID_ = other.roomID_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Get_Screen Clone() {
      return new Protobuf_Room_Get_Screen(this);
    }

    /// <summary>Field number for the "RoomID" field.</summary>
    public const int RoomIDFieldNumber = 1;
    private int roomID_;
    /// <summary>
    ///房间ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int RoomID {
      get { return roomID_; }
      set {
        roomID_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Get_Screen);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Get_Screen other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (RoomID != other.RoomID) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (RoomID != 0) hash ^= RoomID.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (RoomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Get_Screen other) {
      if (other == null) {
        return;
      }
      if (other.RoomID != 0) {
        RoomID = other.RoomID;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Protobuf_Room_Get_Screen_RESP : pb::IMessage<Protobuf_Room_Get_Screen_RESP>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Protobuf_Room_Get_Screen_RESP> _parser = new pb::MessageParser<Protobuf_Room_Get_Screen_RESP>(() => new Protobuf_Room_Get_Screen_RESP());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<Protobuf_Room_Get_Screen_RESP> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Get_Screen_RESP() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Get_Screen_RESP(Protobuf_Room_Get_Screen_RESP other) : this() {
      roomID_ = other.roomID_;
      frameID_ = other.frameID_;
      rawBitmap_ = other.rawBitmap_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public Protobuf_Room_Get_Screen_RESP Clone() {
      return new Protobuf_Room_Get_Screen_RESP(this);
    }

    /// <summary>Field number for the "RoomID" field.</summary>
    public const int RoomIDFieldNumber = 1;
    private int roomID_;
    /// <summary>
    ///房间ID
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int RoomID {
      get { return roomID_; }
      set {
        roomID_ = value;
      }
    }

    /// <summary>Field number for the "FrameID" field.</summary>
    public const int FrameIDFieldNumber = 2;
    private int frameID_;
    /// <summary>
    ///帧编号
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int FrameID {
      get { return frameID_; }
      set {
        frameID_ = value;
      }
    }

    /// <summary>Field number for the "RawBitmap" field.</summary>
    public const int RawBitmapFieldNumber = 3;
    private pb::ByteString rawBitmap_ = pb::ByteString.Empty;
    /// <summary>
    ///渲染层画面
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pb::ByteString RawBitmap {
      get { return rawBitmap_; }
      set {
        rawBitmap_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as Protobuf_Room_Get_Screen_RESP);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(Protobuf_Room_Get_Screen_RESP other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (RoomID != other.RoomID) return false;
      if (FrameID != other.FrameID) return false;
      if (RawBitmap != other.RawBitmap) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (RoomID != 0) hash ^= RoomID.GetHashCode();
      if (FrameID != 0) hash ^= FrameID.GetHashCode();
      if (RawBitmap.Length != 0) hash ^= RawBitmap.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (FrameID != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(FrameID);
      }
      if (RawBitmap.Length != 0) {
        output.WriteRawTag(26);
        output.WriteBytes(RawBitmap);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (RoomID != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(RoomID);
      }
      if (FrameID != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(FrameID);
      }
      if (RawBitmap.Length != 0) {
        output.WriteRawTag(26);
        output.WriteBytes(RawBitmap);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (RoomID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(RoomID);
      }
      if (FrameID != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(FrameID);
      }
      if (RawBitmap.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(RawBitmap);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(Protobuf_Room_Get_Screen_RESP other) {
      if (other == null) {
        return;
      }
      if (other.RoomID != 0) {
        RoomID = other.RoomID;
      }
      if (other.FrameID != 0) {
        FrameID = other.FrameID;
      }
      if (other.RawBitmap.Length != 0) {
        RawBitmap = other.RawBitmap;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
          case 16: {
            FrameID = input.ReadInt32();
            break;
          }
          case 26: {
            RawBitmap = input.ReadBytes();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            RoomID = input.ReadInt32();
            break;
          }
          case 16: {
            FrameID = input.ReadInt32();
            break;
          }
          case 26: {
            RawBitmap = input.ReadBytes();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code