wangguan
2020-10-22 74daf5509be4fc140fd1bdb6d4df5f1c1002e368
Assets/Scripts/Net/NetExtends/Common.cs
@@ -23,7 +23,7 @@
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Cgxjb21tb24ucHJvdG8SCHByb3RvYnVmIjUKBkdlbU1zZxINCgVnZW1JZBgB",
            "IAEoBRINCgVsZXZlbBgCIAEoBRINCgVjb3VudBgDIAEoBSKtAwoLVXNlckRh",
            "IAEoBRINCgVsZXZlbBgCIAEoBRINCgVjb3VudBgDIAEoBSKIAwoLVXNlckRh",
            "dGFNc2cSEAoIdXNlcm5hbWUYASABKAkSEAoIbmlja25hbWUYAiABKAkSDwoH",
            "aGVhZGltZxgDIAEoBRIRCglzaW5nYXR1cmUYBCABKAkSDQoFbGV2ZWwYBSAB",
            "KAUSDAoEcmFuaxgGIAEoBRINCgVzY29yZRgHIAEoBRILCgNleHAYCCABKAUS",
@@ -32,76 +32,76 @@
            "GA0gAygFEhAKCGdlbWRlY2szGA4gAygFEg4KBmRlY2tpZBgPIAEoBRIUCgxh",
            "Y2NlcHRmcmllbmQYECABKAgSFAoMbmFtZWRjaGFuZ2VkGBEgASgIEg8KB2Fy",
            "ZWFleHAYEiABKAUSKAoJYXJlYWJveGVzGBMgAygLMhUucHJvdG9idWYuQXJl",
            "bmFCb3hNc2cSIwoGZmFtaWx5GBQgASgLMhMucHJvdG9idWYuRmFtaWx5TXNn",
            "Eg4KBmRvbmF0ZRgVIAEoBSKfAQoJRnJpZW5kTXNnEhAKCHVzZXJuYW1lGAEg",
            "ASgJEhAKCG5pY2tuYW1lGAIgASgJEg8KB2hlYWRpbWcYAyABKAUSDQoFbGV2",
            "ZWwYBSABKAUSDAoEcmFuaxgGIAEoBRINCgVzY29yZRgHIAEoBRIOCgZvbmxp",
            "bmUYCCABKAgSIQoHZ2VtZGVjaxgJIAMoCzIQLnByb3RvYnVmLkdlbU1zZyJW",
            "CgxTdG9yZUFyZWFNc2cSCgoCaWQYASABKAUSEwoLcmVmcmVzaFRpbWUYAiAB",
            "KAUSJQoFaXRlbXMYAyADKAsyFi5wcm90b2J1Zi5TdG9yZUl0ZW1Nc2ciLAoM",
            "U3RvcmVJdGVtTXNnEgoKAmlkGAEgASgFEhAKCGJ1eUNvdW50GAIgASgFIjgK",
            "DVJld2FyZEl0ZW1Nc2cSDAoEdHlwZRgBIAEoBRIKCgJpZBgCIAEoBRINCgVj",
            "b3VudBgDIAEoBSI9CgtBcmVuYUJveE1zZxILCgNwb3MYASABKAUSDQoFYm94",
            "aWQYAiABKAUSEgoKZXhwaXJlVGltZRgDIAEoBSKvAQoPRmFtaWx5TWVtYmVy",
            "TXNnEhAKCHVzZXJuYW1lGAEgASgJEhAKCG5pY2tuYW1lGAIgASgJEg8KB2hl",
            "YWRpbWcYAyABKAUSEAoIcG9zaXRpb24YBCABKAUSDgoGb25saW5lGAUgASgI",
            "Eg0KBXNjb3JlGAYgASgFEg0KBWxldmVsGAcgASgFEhIKCndlZWtEb25hdGUY",
            "CCABKAUSEwoLdG90YWxEb25hdGUYCSABKAUiPAoTRmFtaWx5RG9uYXRlSXRl",
            "bU1zZxIQCgh1c2VybmFtZRgBIAEoCRITCgtkb25hdGVDb3VudBgCIAEoBSKS",
            "AwoNRmFtaWx5Q2hhdE1zZxIRCgltZXNzYWdlSWQYASABKAUSEAoIdXNlcm5h",
            "bWUYAiABKAkSEAoIbmlja25hbWUYAyABKAkSDwoHaGVhZGltZxgEIAEoBRIS",
            "CgpjcmVhdGVUaW1lGAUgASgFEg8KB2NvbnRlbnQYBiABKAkSJAoIY2hhdFR5",
            "cGUYByABKA4yEi5wcm90b2J1Zi5DaGF0VHlwZRINCgVnZW1JZBgIIAEoBRIx",
            "Cgpkb25hdGVsaXN0GAkgAygLMh0ucHJvdG9idWYuRmFtaWx5RG9uYXRlSXRl",
            "bU1zZxIUCgxyZWNlaXZlQ291bnQYCiABKAUSEgoKVG90YWxDb3VudBgLIAEo",
            "BRIQCghub3RpY2VJZBgMIAEoBRIOCgZwYXJhbXMYDSADKAkSEwoLbmV3VXNl",
            "cm5hbWUYDiABKAkSEwoLbmV3Tmlja25hbWUYDyABKAkSEgoKbmV3SGVhZGlt",
            "ZxgQIAEoBRIQCghuZXdMZXZlbBgRIAEoBRIQCghuZXdTY29yZRgSIAEoBSLS",
            "AQoJRmFtaWx5TXNnEgsKA3VpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGRl",
            "c2MYAyABKAkSDQoFaWNvbnMYBCADKAUSDQoFc2NvcmUYBSABKAUSEwoLc2Nv",
            "cmVzaG9wSWQYBiABKAUSGAoQc2NvcmVzaG9wRXhwaXJlZBgHIAEoBRIQCghm",
            "cmVlSm9pbhgIIAEoBRIRCgluZWVkU2NvcmUYCSABKAUSKgoHbWVtYmVycxgK",
            "IAMoCzIZLnByb3RvYnVmLkZhbWlseU1lbWJlck1zZyKoAQoTRmFtaWx5U2Vh",
            "cmNoSXRlbU1zZxILCgN1aWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRkZXNj",
            "GAMgASgJEg0KBWljb25zGAQgAygFEhMKC21lbWJlckNvdW50GAUgASgFEhAK",
            "CGlzQWN0aXZlGAYgASgIEhIKCmlzRnJpZW5kSW4YByABKAgSDQoFaXNOZXcY",
            "CCABKAgSDwoHaXNBcHBseRgJIAEoCCpoCghDVVJSRU5DWRISCg5DVVJSRU5D",
            "WV9CRUdJThAAEgkKBU1PTkVZEAESCAoER09MRBACEgcKA1JNQhADEgcKA0dF",
            "TRAEEgcKA0JPWBAFEgwKCEFSRU5BRVhQEAYSCgoGRE9OQVRFEAcqJgoJQ2hh",
            "bm5lbElEEhEKDUNIQU5ORUxfQkVHSU4QABIGCgJHTRABKo0FCglFcnJvckNv",
            "ZGUSCwoHU3VjY2VzcxAAEhUKEUNoYW5uZWxJZF9Ob0V4aXN0EAESFAoQVXNl",
            "ck5hbWVfSW52YWxpZBACEhgKFFVzZXJQYXNzV29yZF9JbnZhbGlkEAMSEAoM",
            "VW5rbm93X0Vycm9yEAQSEQoNSW5wdXRfSW52YWxpZBAFEgsKB1RpbWVvdXQQ",
            "BhIWChJTZXNzaW9uS2V5X0ludmFsaWQQBxIQCgxMb2dpbl9Ob1VzZXIQCBIT",
            "Cg9Ob3RFbm91Z2hfTW9uZXkQCRISCg5Ob3RFbm91Z2hfR29sZBAKEhEKDU5v",
            "dEVub3VnaF9HZW0QCxITCg9Ob3RGb3VuZF9GcmllbmQQDBISCg5BbHJlYWR5",
            "X0ZyaWVuZBANEhIKDkluQmxvY2tfRnJpZW5kEA4SDgoKTWF4X0ZyaWVuZBAP",
            "EhAKDE1heF9OaWNrTmFtZRAQEhQKEEludmFsaWRfTmlja05hbWUQERISCg5N",
            "YXhfU3RvcmVMaW1pdBASEhYKEk5vdEVub3VnaF9TdG9yZUJ1eRATEhQKEE5v",
            "dE9wZW5fUGFzc1BvcnQQFBIUChBBbHJlYWR5X1Bhc3NQb3J0EBUSHAoYTmVl",
            "ZFZpcF9QYXNzUG9ydFRha2VJdGVtEBYSHgoaTmVlZExldmVsX1Bhc3NQb3J0",
            "VGFrZUl0ZW0QFxIcChhBbHJlYWR5X1Bhc3NQb3J0VGFrZUl0ZW0QGBIcChhJ",
            "bnZhbGlkX1Bhc3NQb3J0QnV5TGV2ZWwQGRIWChJIYXNVbmxvY2tfQXJlbmFC",
            "b3gQGhIbChdPdGhlclVubG9ja2luZ19BcmVuYUJveBAbEhgKFE5vdFRpbWVU",
            "YWtlX0FyZW5hQm94EBwqcQoIQ2hhdFR5cGUSEgoOQ2hhdFR5cGVfQmVnaW4Q",
            "ABIRCg1DaGF0VHlwZV9UZXh0EAESFgoSQ2hhdFR5cGVfRG9uYXRlR2VtEAIS",
            "EwoPQ2hhdFR5cGVfU3lzdGVtEAMSEQoNQ2hhdFR5cGVfSm9pbhAEYgZwcm90",
            "bzM="));
            "bmFCb3hNc2cSDgoGZG9uYXRlGBQgASgFIp8BCglGcmllbmRNc2cSEAoIdXNl",
            "cm5hbWUYASABKAkSEAoIbmlja25hbWUYAiABKAkSDwoHaGVhZGltZxgDIAEo",
            "BRINCgVsZXZlbBgFIAEoBRIMCgRyYW5rGAYgASgFEg0KBXNjb3JlGAcgASgF",
            "Eg4KBm9ubGluZRgIIAEoCBIhCgdnZW1kZWNrGAkgAygLMhAucHJvdG9idWYu",
            "R2VtTXNnIlYKDFN0b3JlQXJlYU1zZxIKCgJpZBgBIAEoBRITCgtyZWZyZXNo",
            "VGltZRgCIAEoBRIlCgVpdGVtcxgDIAMoCzIWLnByb3RvYnVmLlN0b3JlSXRl",
            "bU1zZyIsCgxTdG9yZUl0ZW1Nc2cSCgoCaWQYASABKAUSEAoIYnV5Q291bnQY",
            "AiABKAUiOAoNUmV3YXJkSXRlbU1zZxIMCgR0eXBlGAEgASgFEgoKAmlkGAIg",
            "ASgFEg0KBWNvdW50GAMgASgFIj0KC0FyZW5hQm94TXNnEgsKA3BvcxgBIAEo",
            "BRINCgVib3hpZBgCIAEoBRISCgpleHBpcmVUaW1lGAMgASgFItIBCg9GYW1p",
            "bHlNZW1iZXJNc2cSEAoIdXNlcm5hbWUYASABKAkSEAoIbmlja25hbWUYAiAB",
            "KAkSDwoHaGVhZGltZxgDIAEoBRIQCghwb3NpdGlvbhgEIAEoBRIOCgZvbmxp",
            "bmUYBSABKAgSDQoFc2NvcmUYBiABKAUSDQoFbGV2ZWwYByABKAUSEgoKd2Vl",
            "a0RvbmF0ZRgIIAEoBRITCgt0b3RhbERvbmF0ZRgJIAEoBRIhCgdnZW1kZWNr",
            "GAogAygLMhAucHJvdG9idWYuR2VtTXNnIjwKE0ZhbWlseURvbmF0ZUl0ZW1N",
            "c2cSEAoIdXNlcm5hbWUYASABKAkSEwoLZG9uYXRlQ291bnQYAiABKAUikgMK",
            "DUZhbWlseUNoYXRNc2cSEQoJbWVzc2FnZUlkGAEgASgFEhAKCHVzZXJuYW1l",
            "GAIgASgJEhAKCG5pY2tuYW1lGAMgASgJEg8KB2hlYWRpbWcYBCABKAUSEgoK",
            "Y3JlYXRlVGltZRgFIAEoBRIPCgdjb250ZW50GAYgASgJEiQKCGNoYXRUeXBl",
            "GAcgASgOMhIucHJvdG9idWYuQ2hhdFR5cGUSDQoFZ2VtSWQYCCABKAUSMQoK",
            "ZG9uYXRlbGlzdBgJIAMoCzIdLnByb3RvYnVmLkZhbWlseURvbmF0ZUl0ZW1N",
            "c2cSFAoMcmVjZWl2ZUNvdW50GAogASgFEhIKClRvdGFsQ291bnQYCyABKAUS",
            "EAoIbm90aWNlSWQYDCABKAUSDgoGcGFyYW1zGA0gAygJEhMKC25ld1VzZXJu",
            "YW1lGA4gASgJEhMKC25ld05pY2tuYW1lGA8gASgJEhIKCm5ld0hlYWRpbWcY",
            "ECABKAUSEAoIbmV3TGV2ZWwYESABKAUSEAoIbmV3U2NvcmUYEiABKAUi0gEK",
            "CUZhbWlseU1zZxILCgN1aWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRkZXNj",
            "GAMgASgJEg0KBWljb25zGAQgAygFEg0KBXNjb3JlGAUgASgFEhMKC3Njb3Jl",
            "c2hvcElkGAYgASgFEhgKEHNjb3Jlc2hvcEV4cGlyZWQYByABKAUSEAoIZnJl",
            "ZUpvaW4YCCABKAUSEQoJbmVlZFNjb3JlGAkgASgFEioKB21lbWJlcnMYCiAD",
            "KAsyGS5wcm90b2J1Zi5GYW1pbHlNZW1iZXJNc2cimgEKE0ZhbWlseVNlYXJj",
            "aEl0ZW1Nc2cSCwoDdWlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFaWNvbnMY",
            "AyADKAUSEwoLbWVtYmVyQ291bnQYBCABKAUSEAoIaXNBY3RpdmUYBSABKAgS",
            "EgoKaXNGcmllbmRJbhgGIAEoCBINCgVpc05ldxgHIAEoCBIPCgdpc0FwcGx5",
            "GAggASgIKmgKCENVUlJFTkNZEhIKDkNVUlJFTkNZX0JFR0lOEAASCQoFTU9O",
            "RVkQARIICgRHT0xEEAISBwoDUk1CEAMSBwoDR0VNEAQSBwoDQk9YEAUSDAoI",
            "QVJFTkFFWFAQBhIKCgZET05BVEUQByomCglDaGFubmVsSUQSEQoNQ0hBTk5F",
            "TF9CRUdJThAAEgYKAkdNEAEqrwUKCUVycm9yQ29kZRILCgdTdWNjZXNzEAAS",
            "FQoRQ2hhbm5lbElkX05vRXhpc3QQARIUChBVc2VyTmFtZV9JbnZhbGlkEAIS",
            "GAoUVXNlclBhc3NXb3JkX0ludmFsaWQQAxIQCgxVbmtub3dfRXJyb3IQBBIR",
            "Cg1JbnB1dF9JbnZhbGlkEAUSCwoHVGltZW91dBAGEhYKElNlc3Npb25LZXlf",
            "SW52YWxpZBAHEhAKDExvZ2luX05vVXNlchAIEhMKD05vdEVub3VnaF9Nb25l",
            "eRAJEhIKDk5vdEVub3VnaF9Hb2xkEAoSEQoNTm90RW5vdWdoX0dlbRALEhMK",
            "D05vdEZvdW5kX0ZyaWVuZBAMEhIKDkFscmVhZHlfRnJpZW5kEA0SEgoOSW5C",
            "bG9ja19GcmllbmQQDhIOCgpNYXhfRnJpZW5kEA8SEAoMTWF4X05pY2tOYW1l",
            "EBASFAoQSW52YWxpZF9OaWNrTmFtZRAREhIKDk1heF9TdG9yZUxpbWl0EBIS",
            "FgoSTm90RW5vdWdoX1N0b3JlQnV5EBMSFAoQTm90T3Blbl9QYXNzUG9ydBAU",
            "EhQKEEFscmVhZHlfUGFzc1BvcnQQFRIcChhOZWVkVmlwX1Bhc3NQb3J0VGFr",
            "ZUl0ZW0QFhIeChpOZWVkTGV2ZWxfUGFzc1BvcnRUYWtlSXRlbRAXEhwKGEFs",
            "cmVhZHlfUGFzc1BvcnRUYWtlSXRlbRAYEhwKGEludmFsaWRfUGFzc1BvcnRC",
            "dXlMZXZlbBAZEhYKEkhhc1VubG9ja19BcmVuYUJveBAaEhsKF090aGVyVW5s",
            "b2NraW5nX0FyZW5hQm94EBsSGAoUTm90VGltZVRha2VfQXJlbmFCb3gQHBIg",
            "ChxOb3RFbm91Z2hfTGV2ZWxfQ3JlYXRlRmFtaWx5EB0qcQoIQ2hhdFR5cGUS",
            "EgoOQ2hhdFR5cGVfQmVnaW4QABIRCg1DaGF0VHlwZV9UZXh0EAESFgoSQ2hh",
            "dFR5cGVfRG9uYXRlR2VtEAISEwoPQ2hhdFR5cGVfU3lzdGVtEAMSEQoNQ2hh",
            "dFR5cGVfSm9pbhAEYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Protobuf.CURRENCY), typeof(global::Protobuf.ChannelID), typeof(global::Protobuf.ErrorCode), typeof(global::Protobuf.ChatType), }, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.GemMsg), global::Protobuf.GemMsg.Parser, new[]{ "GemId", "Level", "Count" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.UserDataMsg), global::Protobuf.UserDataMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Singature", "Level", "Rank", "Score", "Exp", "Money", "Gold", "Gems", "Gemdeck1", "Gemdeck2", "Gemdeck3", "Deckid", "Acceptfriend", "Namedchanged", "Areaexp", "Areaboxes", "Family", "Donate" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.UserDataMsg), global::Protobuf.UserDataMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Singature", "Level", "Rank", "Score", "Exp", "Money", "Gold", "Gems", "Gemdeck1", "Gemdeck2", "Gemdeck3", "Deckid", "Acceptfriend", "Namedchanged", "Areaexp", "Areaboxes", "Donate" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FriendMsg), global::Protobuf.FriendMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Level", "Rank", "Score", "Online", "Gemdeck" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.StoreAreaMsg), global::Protobuf.StoreAreaMsg.Parser, new[]{ "Id", "RefreshTime", "Items" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.StoreItemMsg), global::Protobuf.StoreItemMsg.Parser, new[]{ "Id", "BuyCount" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.RewardItemMsg), global::Protobuf.RewardItemMsg.Parser, new[]{ "Type", "Id", "Count" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.ArenaBoxMsg), global::Protobuf.ArenaBoxMsg.Parser, new[]{ "Pos", "Boxid", "ExpireTime" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyMemberMsg), global::Protobuf.FamilyMemberMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Position", "Online", "Score", "Level", "WeekDonate", "TotalDonate" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyMemberMsg), global::Protobuf.FamilyMemberMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Position", "Online", "Score", "Level", "WeekDonate", "TotalDonate", "Gemdeck" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyDonateItemMsg), global::Protobuf.FamilyDonateItemMsg.Parser, new[]{ "Username", "DonateCount" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyChatMsg), global::Protobuf.FamilyChatMsg.Parser, new[]{ "MessageId", "Username", "Nickname", "Headimg", "CreateTime", "Content", "ChatType", "GemId", "Donatelist", "ReceiveCount", "TotalCount", "NoticeId", "Params", "NewUsername", "NewNickname", "NewHeadimg", "NewLevel", "NewScore" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyMsg), global::Protobuf.FamilyMsg.Parser, new[]{ "Uid", "Name", "Desc", "Icons", "Score", "ScoreshopId", "ScoreshopExpired", "FreeJoin", "NeedScore", "Members" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilySearchItemMsg), global::Protobuf.FamilySearchItemMsg.Parser, new[]{ "Uid", "Name", "Desc", "Icons", "MemberCount", "IsActive", "IsFriendIn", "IsNew", "IsApply" }, null, null, null)
            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilySearchItemMsg), global::Protobuf.FamilySearchItemMsg.Parser, new[]{ "Uid", "Name", "Icons", "MemberCount", "IsActive", "IsFriendIn", "IsNew", "IsApply" }, null, null, null)
          }));
    }
    #endregion
@@ -275,6 +275,10 @@
    /// ! 开宝箱失败,时间没到
    /// </summary>
    [pbr::OriginalName("NotTimeTake_ArenaBox")] NotTimeTakeArenaBox = 28,
    /// <summary>
    /// 创建公会失败,等级不足
    /// </summary>
    [pbr::OriginalName("NotEnough_Level_CreateFamily")] NotEnoughLevelCreateFamily = 29,
  }
  public enum ChatType {
@@ -531,7 +535,6 @@
      namedchanged_ = other.namedchanged_;
      areaexp_ = other.areaexp_;
      areaboxes_ = other.areaboxes_.Clone();
      Family = other.family_ != null ? other.Family.Clone() : null;
      donate_ = other.donate_;
    }
@@ -783,22 +786,8 @@
      get { return areaboxes_; }
    }
    /// <summary>Field number for the "family" field.</summary>
    public const int FamilyFieldNumber = 20;
    private global::Protobuf.FamilyMsg family_;
    /// <summary>
    ///  工会信息
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Protobuf.FamilyMsg Family {
      get { return family_; }
      set {
        family_ = value;
      }
    }
    /// <summary>Field number for the "donate" field.</summary>
    public const int DonateFieldNumber = 21;
    public const int DonateFieldNumber = 20;
    private int donate_;
    /// <summary>
    /// 工会捐赠积分
@@ -843,7 +832,6 @@
      if (Namedchanged != other.Namedchanged) return false;
      if (Areaexp != other.Areaexp) return false;
      if(!areaboxes_.Equals(other.areaboxes_)) return false;
      if (!object.Equals(Family, other.Family)) return false;
      if (Donate != other.Donate) return false;
      return true;
    }
@@ -870,7 +858,6 @@
      if (Namedchanged != false) hash ^= Namedchanged.GetHashCode();
      if (Areaexp != 0) hash ^= Areaexp.GetHashCode();
      hash ^= areaboxes_.GetHashCode();
      if (family_ != null) hash ^= Family.GetHashCode();
      if (Donate != 0) hash ^= Donate.GetHashCode();
      return hash;
    }
@@ -943,12 +930,8 @@
        output.WriteInt32(Areaexp);
      }
      areaboxes_.WriteTo(output, _repeated_areaboxes_codec);
      if (family_ != null) {
        output.WriteRawTag(162, 1);
        output.WriteMessage(Family);
      }
      if (Donate != 0) {
        output.WriteRawTag(168, 1);
        output.WriteRawTag(160, 1);
        output.WriteInt32(Donate);
      }
    }
@@ -1003,9 +986,6 @@
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(Areaexp);
      }
      size += areaboxes_.CalculateSize(_repeated_areaboxes_codec);
      if (family_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(Family);
      }
      if (Donate != 0) {
        size += 2 + pb::CodedOutputStream.ComputeInt32Size(Donate);
      }
@@ -1064,12 +1044,6 @@
        Areaexp = other.Areaexp;
      }
      areaboxes_.Add(other.areaboxes_);
      if (other.family_ != null) {
        if (family_ == null) {
          family_ = new global::Protobuf.FamilyMsg();
        }
        Family.MergeFrom(other.Family);
      }
      if (other.Donate != 0) {
        Donate = other.Donate;
      }
@@ -1162,14 +1136,7 @@
            areaboxes_.AddEntriesFrom(input, _repeated_areaboxes_codec);
            break;
          }
          case 162: {
            if (family_ == null) {
              family_ = new global::Protobuf.FamilyMsg();
            }
            input.ReadMessage(family_);
            break;
          }
          case 168: {
          case 160: {
            Donate = input.ReadInt32();
            break;
          }
@@ -2233,6 +2200,7 @@
      level_ = other.level_;
      weekDonate_ = other.weekDonate_;
      totalDonate_ = other.totalDonate_;
      gemdeck_ = other.gemdeck_.Clone();
    }
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2351,6 +2319,16 @@
      }
    }
    /// <summary>Field number for the "gemdeck" field.</summary>
    public const int GemdeckFieldNumber = 10;
    private static readonly pb::FieldCodec<global::Protobuf.GemMsg> _repeated_gemdeck_codec
        = pb::FieldCodec.ForMessage(82, global::Protobuf.GemMsg.Parser);
    private readonly pbc::RepeatedField<global::Protobuf.GemMsg> gemdeck_ = new pbc::RepeatedField<global::Protobuf.GemMsg>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Protobuf.GemMsg> Gemdeck {
      get { return gemdeck_; }
    }
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as FamilyMemberMsg);
@@ -2373,6 +2351,7 @@
      if (Level != other.Level) return false;
      if (WeekDonate != other.WeekDonate) return false;
      if (TotalDonate != other.TotalDonate) return false;
      if(!gemdeck_.Equals(other.gemdeck_)) return false;
      return true;
    }
@@ -2388,6 +2367,7 @@
      if (Level != 0) hash ^= Level.GetHashCode();
      if (WeekDonate != 0) hash ^= WeekDonate.GetHashCode();
      if (TotalDonate != 0) hash ^= TotalDonate.GetHashCode();
      hash ^= gemdeck_.GetHashCode();
      return hash;
    }
@@ -2434,6 +2414,7 @@
        output.WriteRawTag(72);
        output.WriteInt32(TotalDonate);
      }
      gemdeck_.WriteTo(output, _repeated_gemdeck_codec);
    }
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2466,6 +2447,7 @@
      if (TotalDonate != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(TotalDonate);
      }
      size += gemdeck_.CalculateSize(_repeated_gemdeck_codec);
      return size;
    }
@@ -2501,6 +2483,7 @@
      if (other.TotalDonate != 0) {
        TotalDonate = other.TotalDonate;
      }
      gemdeck_.Add(other.gemdeck_);
    }
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2545,6 +2528,10 @@
          }
          case 72: {
            TotalDonate = input.ReadInt32();
            break;
          }
          case 82: {
            gemdeck_.AddEntriesFrom(input, _repeated_gemdeck_codec);
            break;
          }
        }
@@ -3737,7 +3724,6 @@
    public FamilySearchItemMsg(FamilySearchItemMsg other) : this() {
      uid_ = other.uid_;
      name_ = other.name_;
      desc_ = other.desc_;
      icons_ = other.icons_.Clone();
      memberCount_ = other.memberCount_;
      isActive_ = other.isActive_;
@@ -3779,24 +3765,10 @@
      }
    }
    /// <summary>Field number for the "desc" field.</summary>
    public const int DescFieldNumber = 3;
    private string desc_ = "";
    /// <summary>
    ///  描述
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Desc {
      get { return desc_; }
      set {
        desc_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Field number for the "icons" field.</summary>
    public const int IconsFieldNumber = 4;
    public const int IconsFieldNumber = 3;
    private static readonly pb::FieldCodec<int> _repeated_icons_codec
        = pb::FieldCodec.ForInt32(34);
        = pb::FieldCodec.ForInt32(26);
    private readonly pbc::RepeatedField<int> icons_ = new pbc::RepeatedField<int>();
    /// <summary>
    ///  徽章图标
@@ -3807,7 +3779,7 @@
    }
    /// <summary>Field number for the "memberCount" field.</summary>
    public const int MemberCountFieldNumber = 5;
    public const int MemberCountFieldNumber = 4;
    private int memberCount_;
    /// <summary>
    ///  当前人数
@@ -3821,7 +3793,7 @@
    }
    /// <summary>Field number for the "isActive" field.</summary>
    public const int IsActiveFieldNumber = 6;
    public const int IsActiveFieldNumber = 5;
    private bool isActive_;
    /// <summary>
    ///  是否活跃
@@ -3835,7 +3807,7 @@
    }
    /// <summary>Field number for the "isFriendIn" field.</summary>
    public const int IsFriendInFieldNumber = 7;
    public const int IsFriendInFieldNumber = 6;
    private bool isFriendIn_;
    /// <summary>
    ///  是否好友在此工会
@@ -3849,7 +3821,7 @@
    }
    /// <summary>Field number for the "isNew" field.</summary>
    public const int IsNewFieldNumber = 8;
    public const int IsNewFieldNumber = 7;
    private bool isNew_;
    /// <summary>
    ///  是否是新公会
@@ -3863,7 +3835,7 @@
    }
    /// <summary>Field number for the "isApply" field.</summary>
    public const int IsApplyFieldNumber = 9;
    public const int IsApplyFieldNumber = 8;
    private bool isApply_;
    /// <summary>
    ///  是否已申请
@@ -3891,7 +3863,6 @@
      }
      if (Uid != other.Uid) return false;
      if (Name != other.Name) return false;
      if (Desc != other.Desc) return false;
      if(!icons_.Equals(other.icons_)) return false;
      if (MemberCount != other.MemberCount) return false;
      if (IsActive != other.IsActive) return false;
@@ -3906,7 +3877,6 @@
      int hash = 1;
      if (Uid.Length != 0) hash ^= Uid.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Desc.Length != 0) hash ^= Desc.GetHashCode();
      hash ^= icons_.GetHashCode();
      if (MemberCount != 0) hash ^= MemberCount.GetHashCode();
      if (IsActive != false) hash ^= IsActive.GetHashCode();
@@ -3931,29 +3901,25 @@
        output.WriteRawTag(18);
        output.WriteString(Name);
      }
      if (Desc.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Desc);
      }
      icons_.WriteTo(output, _repeated_icons_codec);
      if (MemberCount != 0) {
        output.WriteRawTag(40);
        output.WriteRawTag(32);
        output.WriteInt32(MemberCount);
      }
      if (IsActive != false) {
        output.WriteRawTag(48);
        output.WriteRawTag(40);
        output.WriteBool(IsActive);
      }
      if (IsFriendIn != false) {
        output.WriteRawTag(56);
        output.WriteRawTag(48);
        output.WriteBool(IsFriendIn);
      }
      if (IsNew != false) {
        output.WriteRawTag(64);
        output.WriteRawTag(56);
        output.WriteBool(IsNew);
      }
      if (IsApply != false) {
        output.WriteRawTag(72);
        output.WriteRawTag(64);
        output.WriteBool(IsApply);
      }
    }
@@ -3966,9 +3932,6 @@
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Desc.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Desc);
      }
      size += icons_.CalculateSize(_repeated_icons_codec);
      if (MemberCount != 0) {
@@ -3999,9 +3962,6 @@
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Desc.Length != 0) {
        Desc = other.Desc;
      }
      icons_.Add(other.icons_);
      if (other.MemberCount != 0) {
@@ -4037,32 +3997,28 @@
            Name = input.ReadString();
            break;
          }
          case 26: {
            Desc = input.ReadString();
            break;
          }
          case 34:
          case 32: {
          case 26:
          case 24: {
            icons_.AddEntriesFrom(input, _repeated_icons_codec);
            break;
          }
          case 40: {
          case 32: {
            MemberCount = input.ReadInt32();
            break;
          }
          case 48: {
          case 40: {
            IsActive = input.ReadBool();
            break;
          }
          case 56: {
          case 48: {
            IsFriendIn = input.ReadBool();
            break;
          }
          case 64: {
          case 56: {
            IsNew = input.ReadBool();
            break;
          }
          case 72: {
          case 64: {
            IsApply = input.ReadBool();
            break;
          }