From c1d12cdfd23933a0db431a70ff5e145924864782 Mon Sep 17 00:00:00 2001
From: River Jiang <546213258@qq.com>
Date: Wed, 21 Oct 2020 15:08:29 +0800
Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master

---
 Assets/Scripts/Net/NetExtends/Game.cs | 4156 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 4,154 insertions(+), 2 deletions(-)

diff --git a/Assets/Scripts/Net/NetExtends/Game.cs b/Assets/Scripts/Net/NetExtends/Game.cs
index dd2d8a5..3dea287 100644
--- a/Assets/Scripts/Net/NetExtends/Game.cs
+++ b/Assets/Scripts/Net/NetExtends/Game.cs
@@ -94,7 +94,48 @@
             "KAgimAEKEFRha2VBcmVuYUJveF9TMkMSEQoJZXJyb3Jjb2RlGAEgASgFEgsK",
             "A3BvcxgCIAEoBRINCgVib3hpZBgDIAEoBRIpCghjdXJpdGVtcxgEIAMoCzIX",
             "LnByb3RvYnVmLlJld2FyZEl0ZW1Nc2cSKgoJYm94cmV3YXJkGAUgAygLMhcu",
-            "cHJvdG9idWYuUmV3YXJkSXRlbU1zZ2IGcHJvdG8z"));
+            "cHJvdG9idWYuUmV3YXJkSXRlbU1zZyI+ChBGYW1pbHlTZWFyY2hfQzJTEgwK",
+            "BG5hbWUYASABKAkSDQoFc3RhcnQYAiABKAUSDQoFbGltaXQYAyABKAUiZwoQ",
+            "RmFtaWx5U2VhcmNoX1MyQxIRCgllcnJvcmNvZGUYASABKAUSMQoKZmFtaWx5",
+            "bGlzdBgCIAMoCzIdLnByb3RvYnVmLkZhbWlseVNlYXJjaEl0ZW1Nc2cSDQoF",
+            "dG90YWwYAyABKAUiOgoWRmFtaWx5UGxheWVyT25saW5lX1MyQxIQCgh1c2Vy",
+            "bmFtZRgBIAEoBRIOCgZvbmxpbmUYAiABKAgiYgoQRmFtaWx5Q3JlYXRlX0My",
+            "UxIMCgRuYW1lGAEgASgJEgwKBGRlc2MYAiABKAkSDQoFaWNvbnMYAyADKAUS",
+            "EAoIZnJlZUpvaW4YBCABKAUSEQoJbmVlZFNjb3JlGAUgASgFIh0KDkZhbWls",
+            "eUpvaW5fQzJTEgsKA3VpZBgBIAEoCSIwCg5GYW1pbHlKb2luX1MyQxIRCgll",
+            "cnJvcmNvZGUYASABKAUSCwoDdWlkGAIgASgJIjEKEUZhbWlseUdldENoYXRf",
+            "QzJTEg0KBXN0YXJ0GAEgASgFEg0KBWxpbWl0GAIgASgFInUKEUZhbWlseUdl",
+            "dENoYXRfUzJDEhEKCWVycm9yY29kZRgBIAEoBRIpCghtZXNzYWdlcxgCIAMo",
+            "CzIXLnByb3RvYnVmLkZhbWlseUNoYXRNc2cSDQoFdG90YWwYAyABKAUSEwoL",
+            "b25saW5lQ291bnQYBCABKAUiTAoTRmFtaWx5U3RhcnRDaGF0X0MyUxIkCghj",
+            "aGF0VHlwZRgBIAEoDjISLnByb3RvYnVmLkNoYXRUeXBlEg8KB2NvbnRlbnQY",
+            "AiABKAkiUgoTRmFtaWx5U3RhcnRDaGF0X1MyQxIRCgllcnJvcmNvZGUYASAB",
+            "KAUSKAoHbWVzc2FnZRgCIAEoCzIXLnByb3RvYnVmLkZhbWlseUNoYXRNc2ci",
+            "KgoVRmFtaWx5U3RhcnREb25hdGVfQzJTEhEKCW1lc3NhZ2VJZBgBIAEoBSJU",
+            "ChVGYW1pbHlTdGFydERvbmF0ZV9TMkMSEQoJZXJyb3Jjb2RlGAEgASgFEigK",
+            "B21lc3NhZ2UYAiABKAsyFy5wcm90b2J1Zi5GYW1pbHlDaGF0TXNnIhAKDkZh",
+            "bWlseVF1aXRfQzJTIiMKDkZhbWlseVF1aXRfUzJDEhEKCWVycm9yY29kZRgB",
+            "IAEoBSIoChNGYW1pbHlBZ3JlZUpvaW5fQzJTEhEKCW1lc3NhZ2VJZBgBIAEo",
+            "BSJWChNGYW1pbHlBZ3JlZUpvaW5fUzJDEhEKCWVycm9yY29kZRgBIAEoBRIs",
+            "CgluZXdNZW1iZXIYAiABKAsyGS5wcm90b2J1Zi5GYW1pbHlNZW1iZXJNc2ci",
+            "JgoSRmFtaWx5S2lja1VzZXJfQzJTEhAKCHVzZXJuYW1lGAEgASgJIicKEkZh",
+            "bWlseUtpY2tVc2VyX1MyQxIRCgllcnJvcmNvZGUYASABKAUiKQoVRmFtaWx5",
+            "VHJhbnNMZWFkZXJfQzJTEhAKCHVzZXJuYW1lGAEgASgJIioKFUZhbWlseVRy",
+            "YW5zTGVhZGVyX1MyQxIRCgllcnJvcmNvZGUYASABKAUiGQoXRmFtaWx5R2V0",
+            "RG9uYXRlU2hvcF9DMlMiZwoXRmFtaWx5R2V0RG9uYXRlU2hvcF9TMkMSEQoJ",
+            "ZXJyb3Jjb2RlGAEgASgFEiUKBWl0ZW1zGAIgAygLMhYucHJvdG9idWYuU3Rv",
+            "cmVJdGVtTXNnEhIKCmV4cGlyZVRpbWUYAyABKAUiLwoXRmFtaWx5QnV5RG9u",
+            "YXRlU2hvcF9DMlMSFAoMZG9uYXRlc2hvcElkGAEgASgFIn8KF0ZhbWlseUJ1",
+            "eURvbmF0ZVNob3BfUzJDEhEKCWVycm9yY29kZRgBIAEoBRIUCgxkb25hdGVz",
+            "aG9wSWQYAiABKAUSKQoIY3VyaXRlbXMYAyADKAsyFy5wcm90b2J1Zi5SZXdh",
+            "cmRJdGVtTXNnEhAKCGJ1eUNvdW50GAQgASgFIhgKFkZhbWlseUdldFNjb3Jl",
+            "U2hvcF9DMlMiZgoWRmFtaWx5R2V0U2NvcmVTaG9wX1MyQxIRCgllcnJvcmNv",
+            "ZGUYASABKAUSJQoFaXRlbXMYAiADKAsyFi5wcm90b2J1Zi5TdG9yZUl0ZW1N",
+            "c2cSEgoKZXhwaXJlVGltZRgDIAEoBSItChZGYW1pbHlCdXlTY29yZVNob3Bf",
+            "QzJTEhMKC3Njb3Jlc2hvcElkGAEgASgFIoEBChZGYW1pbHlCdXlTY29yZVNo",
+            "b3BfUzJDEhEKCWVycm9yY29kZRgBIAEoBRITCgtzY29yZXNob3BJZBgCIAEo",
+            "BRIYChBzY29yZXNob3BFeHBpcmVkGAMgASgFEhMKC2ZhbWlseVNjb3JlGAQg",
+            "ASgFEhAKCGJ1eUNvdW50GAUgASgFYgZwcm90bzM="));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { global::Protobuf.CommonReflection.Descriptor, },
           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
@@ -146,7 +187,35 @@
             new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.UnLockArenaBox_C2S), global::Protobuf.UnLockArenaBox_C2S.Parser, new[]{ "Pos" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.UnLockArenaBox_S2C), global::Protobuf.UnLockArenaBox_S2C.Parser, new[]{ "Errorcode", "Areabox" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.TakeArenaBox_C2S), global::Protobuf.TakeArenaBox_C2S.Parser, new[]{ "Pos", "Free" }, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.TakeArenaBox_S2C), global::Protobuf.TakeArenaBox_S2C.Parser, new[]{ "Errorcode", "Pos", "Boxid", "Curitems", "Boxreward" }, null, null, null)
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.TakeArenaBox_S2C), global::Protobuf.TakeArenaBox_S2C.Parser, new[]{ "Errorcode", "Pos", "Boxid", "Curitems", "Boxreward" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilySearch_C2S), global::Protobuf.FamilySearch_C2S.Parser, new[]{ "Name", "Start", "Limit" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilySearch_S2C), global::Protobuf.FamilySearch_S2C.Parser, new[]{ "Errorcode", "Familylist", "Total" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyPlayerOnline_S2C), global::Protobuf.FamilyPlayerOnline_S2C.Parser, new[]{ "Username", "Online" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyCreate_C2S), global::Protobuf.FamilyCreate_C2S.Parser, new[]{ "Name", "Desc", "Icons", "FreeJoin", "NeedScore" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyJoin_C2S), global::Protobuf.FamilyJoin_C2S.Parser, new[]{ "Uid" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyJoin_S2C), global::Protobuf.FamilyJoin_S2C.Parser, new[]{ "Errorcode", "Uid" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyGetChat_C2S), global::Protobuf.FamilyGetChat_C2S.Parser, new[]{ "Start", "Limit" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyGetChat_S2C), global::Protobuf.FamilyGetChat_S2C.Parser, new[]{ "Errorcode", "Messages", "Total", "OnlineCount" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyStartChat_C2S), global::Protobuf.FamilyStartChat_C2S.Parser, new[]{ "ChatType", "Content" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyStartChat_S2C), global::Protobuf.FamilyStartChat_S2C.Parser, new[]{ "Errorcode", "Message" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyStartDonate_C2S), global::Protobuf.FamilyStartDonate_C2S.Parser, new[]{ "MessageId" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyStartDonate_S2C), global::Protobuf.FamilyStartDonate_S2C.Parser, new[]{ "Errorcode", "Message" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyQuit_C2S), global::Protobuf.FamilyQuit_C2S.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyQuit_S2C), global::Protobuf.FamilyQuit_S2C.Parser, new[]{ "Errorcode" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyAgreeJoin_C2S), global::Protobuf.FamilyAgreeJoin_C2S.Parser, new[]{ "MessageId" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyAgreeJoin_S2C), global::Protobuf.FamilyAgreeJoin_S2C.Parser, new[]{ "Errorcode", "NewMember" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyKickUser_C2S), global::Protobuf.FamilyKickUser_C2S.Parser, new[]{ "Username" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyKickUser_S2C), global::Protobuf.FamilyKickUser_S2C.Parser, new[]{ "Errorcode" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyTransLeader_C2S), global::Protobuf.FamilyTransLeader_C2S.Parser, new[]{ "Username" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyTransLeader_S2C), global::Protobuf.FamilyTransLeader_S2C.Parser, new[]{ "Errorcode" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyGetDonateShop_C2S), global::Protobuf.FamilyGetDonateShop_C2S.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyGetDonateShop_S2C), global::Protobuf.FamilyGetDonateShop_S2C.Parser, new[]{ "Errorcode", "Items", "ExpireTime" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyBuyDonateShop_C2S), global::Protobuf.FamilyBuyDonateShop_C2S.Parser, new[]{ "DonateshopId" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyBuyDonateShop_S2C), global::Protobuf.FamilyBuyDonateShop_S2C.Parser, new[]{ "Errorcode", "DonateshopId", "Curitems", "BuyCount" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyGetScoreShop_C2S), global::Protobuf.FamilyGetScoreShop_C2S.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyGetScoreShop_S2C), global::Protobuf.FamilyGetScoreShop_S2C.Parser, new[]{ "Errorcode", "Items", "ExpireTime" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyBuyScoreShop_C2S), global::Protobuf.FamilyBuyScoreShop_C2S.Parser, new[]{ "ScoreshopId" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyBuyScoreShop_S2C), global::Protobuf.FamilyBuyScoreShop_S2C.Parser, new[]{ "Errorcode", "ScoreshopId", "ScoreshopExpired", "FamilyScore", "BuyCount" }, null, null, null)
           }));
     }
     #endregion
@@ -7788,6 +7857,4089 @@
 
   }
 
+  /// <summary>
+  ///  查找工会,支持模糊查询 
+  /// </summary>
+  public sealed partial class FamilySearch_C2S : pb::IMessage<FamilySearch_C2S> {
+    private static readonly pb::MessageParser<FamilySearch_C2S> _parser = new pb::MessageParser<FamilySearch_C2S>(() => new FamilySearch_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilySearch_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[49]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearch_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearch_C2S(FamilySearch_C2S other) : this() {
+      name_ = other.name_;
+      start_ = other.start_;
+      limit_ = other.limit_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearch_C2S Clone() {
+      return new FamilySearch_C2S(this);
+    }
+
+    /// <summary>Field number for the "name" field.</summary>
+    public const int NameFieldNumber = 1;
+    private string name_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Name {
+      get { return name_; }
+      set {
+        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "start" field.</summary>
+    public const int StartFieldNumber = 2;
+    private int start_;
+    /// <summary>
+    ///  起始分页0
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Start {
+      get { return start_; }
+      set {
+        start_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "limit" field.</summary>
+    public const int LimitFieldNumber = 3;
+    private int limit_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Limit {
+      get { return limit_; }
+      set {
+        limit_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilySearch_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilySearch_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Name != other.Name) return false;
+      if (Start != other.Start) return false;
+      if (Limit != other.Limit) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Name.Length != 0) hash ^= Name.GetHashCode();
+      if (Start != 0) hash ^= Start.GetHashCode();
+      if (Limit != 0) hash ^= Limit.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 (Name.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Name);
+      }
+      if (Start != 0) {
+        output.WriteRawTag(16);
+        output.WriteInt32(Start);
+      }
+      if (Limit != 0) {
+        output.WriteRawTag(24);
+        output.WriteInt32(Limit);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Name.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+      }
+      if (Start != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
+      }
+      if (Limit != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Limit);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilySearch_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Name.Length != 0) {
+        Name = other.Name;
+      }
+      if (other.Start != 0) {
+        Start = other.Start;
+      }
+      if (other.Limit != 0) {
+        Limit = other.Limit;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Name = input.ReadString();
+            break;
+          }
+          case 16: {
+            Start = input.ReadInt32();
+            break;
+          }
+          case 24: {
+            Limit = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilySearch_S2C : pb::IMessage<FamilySearch_S2C> {
+    private static readonly pb::MessageParser<FamilySearch_S2C> _parser = new pb::MessageParser<FamilySearch_S2C>(() => new FamilySearch_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilySearch_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[50]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearch_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearch_S2C(FamilySearch_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      familylist_ = other.familylist_.Clone();
+      total_ = other.total_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearch_S2C Clone() {
+      return new FamilySearch_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "familylist" field.</summary>
+    public const int FamilylistFieldNumber = 2;
+    private static readonly pb::FieldCodec<global::Protobuf.FamilySearchItemMsg> _repeated_familylist_codec
+        = pb::FieldCodec.ForMessage(18, global::Protobuf.FamilySearchItemMsg.Parser);
+    private readonly pbc::RepeatedField<global::Protobuf.FamilySearchItemMsg> familylist_ = new pbc::RepeatedField<global::Protobuf.FamilySearchItemMsg>();
+    /// <summary>
+    /// 工会
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<global::Protobuf.FamilySearchItemMsg> Familylist {
+      get { return familylist_; }
+    }
+
+    /// <summary>Field number for the "total" field.</summary>
+    public const int TotalFieldNumber = 3;
+    private int total_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Total {
+      get { return total_; }
+      set {
+        total_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilySearch_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilySearch_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if(!familylist_.Equals(other.familylist_)) return false;
+      if (Total != other.Total) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      hash ^= familylist_.GetHashCode();
+      if (Total != 0) hash ^= Total.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      familylist_.WriteTo(output, _repeated_familylist_codec);
+      if (Total != 0) {
+        output.WriteRawTag(24);
+        output.WriteInt32(Total);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      size += familylist_.CalculateSize(_repeated_familylist_codec);
+      if (Total != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Total);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilySearch_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      familylist_.Add(other.familylist_);
+      if (other.Total != 0) {
+        Total = other.Total;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            familylist_.AddEntriesFrom(input, _repeated_familylist_codec);
+            break;
+          }
+          case 24: {
+            Total = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  服务器广播其他玩家在线或下线
+  /// </summary>
+  public sealed partial class FamilyPlayerOnline_S2C : pb::IMessage<FamilyPlayerOnline_S2C> {
+    private static readonly pb::MessageParser<FamilyPlayerOnline_S2C> _parser = new pb::MessageParser<FamilyPlayerOnline_S2C>(() => new FamilyPlayerOnline_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyPlayerOnline_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[51]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyPlayerOnline_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyPlayerOnline_S2C(FamilyPlayerOnline_S2C other) : this() {
+      username_ = other.username_;
+      online_ = other.online_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyPlayerOnline_S2C Clone() {
+      return new FamilyPlayerOnline_S2C(this);
+    }
+
+    /// <summary>Field number for the "username" field.</summary>
+    public const int UsernameFieldNumber = 1;
+    private int username_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Username {
+      get { return username_; }
+      set {
+        username_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "online" field.</summary>
+    public const int OnlineFieldNumber = 2;
+    private bool online_;
+    /// <summary>
+    ///  true 在线 false 不在线
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Online {
+      get { return online_; }
+      set {
+        online_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyPlayerOnline_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyPlayerOnline_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Username != other.Username) return false;
+      if (Online != other.Online) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Username != 0) hash ^= Username.GetHashCode();
+      if (Online != false) hash ^= Online.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 (Username != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Username);
+      }
+      if (Online != false) {
+        output.WriteRawTag(16);
+        output.WriteBool(Online);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Username != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Username);
+      }
+      if (Online != false) {
+        size += 1 + 1;
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyPlayerOnline_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Username != 0) {
+        Username = other.Username;
+      }
+      if (other.Online != false) {
+        Online = other.Online;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Username = input.ReadInt32();
+            break;
+          }
+          case 16: {
+            Online = input.ReadBool();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  创建工会,成功返回 Success
+  /// </summary>
+  public sealed partial class FamilyCreate_C2S : pb::IMessage<FamilyCreate_C2S> {
+    private static readonly pb::MessageParser<FamilyCreate_C2S> _parser = new pb::MessageParser<FamilyCreate_C2S>(() => new FamilyCreate_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyCreate_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[52]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyCreate_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyCreate_C2S(FamilyCreate_C2S other) : this() {
+      name_ = other.name_;
+      desc_ = other.desc_;
+      icons_ = other.icons_.Clone();
+      freeJoin_ = other.freeJoin_;
+      needScore_ = other.needScore_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyCreate_C2S Clone() {
+      return new FamilyCreate_C2S(this);
+    }
+
+    /// <summary>Field number for the "name" field.</summary>
+    public const int NameFieldNumber = 1;
+    private string name_ = "";
+    /// <summary>
+    ///  工会名
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Name {
+      get { return name_; }
+      set {
+        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "desc" field.</summary>
+    public const int DescFieldNumber = 2;
+    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 = 3;
+    private static readonly pb::FieldCodec<int> _repeated_icons_codec
+        = pb::FieldCodec.ForInt32(26);
+    private readonly pbc::RepeatedField<int> icons_ = new pbc::RepeatedField<int>();
+    /// <summary>
+    ///  徽章图标
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<int> Icons {
+      get { return icons_; }
+    }
+
+    /// <summary>Field number for the "freeJoin" field.</summary>
+    public const int FreeJoinFieldNumber = 4;
+    private int freeJoin_;
+    /// <summary>
+    /// ! 1 免费加入,2 需要批准,3 禁止加入
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int FreeJoin {
+      get { return freeJoin_; }
+      set {
+        freeJoin_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "needScore" field.</summary>
+    public const int NeedScoreFieldNumber = 5;
+    private int needScore_;
+    /// <summary>
+    ///  需要积分
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int NeedScore {
+      get { return needScore_; }
+      set {
+        needScore_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyCreate_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyCreate_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Name != other.Name) return false;
+      if (Desc != other.Desc) return false;
+      if(!icons_.Equals(other.icons_)) return false;
+      if (FreeJoin != other.FreeJoin) return false;
+      if (NeedScore != other.NeedScore) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Name.Length != 0) hash ^= Name.GetHashCode();
+      if (Desc.Length != 0) hash ^= Desc.GetHashCode();
+      hash ^= icons_.GetHashCode();
+      if (FreeJoin != 0) hash ^= FreeJoin.GetHashCode();
+      if (NeedScore != 0) hash ^= NeedScore.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 (Name.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Name);
+      }
+      if (Desc.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Desc);
+      }
+      icons_.WriteTo(output, _repeated_icons_codec);
+      if (FreeJoin != 0) {
+        output.WriteRawTag(32);
+        output.WriteInt32(FreeJoin);
+      }
+      if (NeedScore != 0) {
+        output.WriteRawTag(40);
+        output.WriteInt32(NeedScore);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      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 (FreeJoin != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(FreeJoin);
+      }
+      if (NeedScore != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NeedScore);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyCreate_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Name.Length != 0) {
+        Name = other.Name;
+      }
+      if (other.Desc.Length != 0) {
+        Desc = other.Desc;
+      }
+      icons_.Add(other.icons_);
+      if (other.FreeJoin != 0) {
+        FreeJoin = other.FreeJoin;
+      }
+      if (other.NeedScore != 0) {
+        NeedScore = other.NeedScore;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Name = input.ReadString();
+            break;
+          }
+          case 18: {
+            Desc = input.ReadString();
+            break;
+          }
+          case 26:
+          case 24: {
+            icons_.AddEntriesFrom(input, _repeated_icons_codec);
+            break;
+          }
+          case 32: {
+            FreeJoin = input.ReadInt32();
+            break;
+          }
+          case 40: {
+            NeedScore = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  申请加入公会
+  /// </summary>
+  public sealed partial class FamilyJoin_C2S : pb::IMessage<FamilyJoin_C2S> {
+    private static readonly pb::MessageParser<FamilyJoin_C2S> _parser = new pb::MessageParser<FamilyJoin_C2S>(() => new FamilyJoin_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyJoin_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[53]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyJoin_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyJoin_C2S(FamilyJoin_C2S other) : this() {
+      uid_ = other.uid_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyJoin_C2S Clone() {
+      return new FamilyJoin_C2S(this);
+    }
+
+    /// <summary>Field number for the "uid" field.</summary>
+    public const int UidFieldNumber = 1;
+    private string uid_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Uid {
+      get { return uid_; }
+      set {
+        uid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyJoin_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyJoin_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Uid != other.Uid) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Uid.Length != 0) hash ^= Uid.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 (Uid.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Uid);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Uid.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Uid);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyJoin_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Uid.Length != 0) {
+        Uid = other.Uid;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Uid = input.ReadString();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyJoin_S2C : pb::IMessage<FamilyJoin_S2C> {
+    private static readonly pb::MessageParser<FamilyJoin_S2C> _parser = new pb::MessageParser<FamilyJoin_S2C>(() => new FamilyJoin_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyJoin_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[54]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyJoin_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyJoin_S2C(FamilyJoin_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      uid_ = other.uid_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyJoin_S2C Clone() {
+      return new FamilyJoin_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "uid" field.</summary>
+    public const int UidFieldNumber = 2;
+    private string uid_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Uid {
+      get { return uid_; }
+      set {
+        uid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyJoin_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyJoin_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if (Uid != other.Uid) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      if (Uid.Length != 0) hash ^= Uid.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      if (Uid.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Uid);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      if (Uid.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Uid);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyJoin_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      if (other.Uid.Length != 0) {
+        Uid = other.Uid;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            Uid = input.ReadString();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  /// 获取聊天信息,基于分页查询,默认显示最后一页
+  /// </summary>
+  public sealed partial class FamilyGetChat_C2S : pb::IMessage<FamilyGetChat_C2S> {
+    private static readonly pb::MessageParser<FamilyGetChat_C2S> _parser = new pb::MessageParser<FamilyGetChat_C2S>(() => new FamilyGetChat_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyGetChat_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[55]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetChat_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetChat_C2S(FamilyGetChat_C2S other) : this() {
+      start_ = other.start_;
+      limit_ = other.limit_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetChat_C2S Clone() {
+      return new FamilyGetChat_C2S(this);
+    }
+
+    /// <summary>Field number for the "start" field.</summary>
+    public const int StartFieldNumber = 1;
+    private int start_;
+    /// <summary>
+    ///  0是最后一页,1倒数第二页
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Start {
+      get { return start_; }
+      set {
+        start_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "limit" field.</summary>
+    public const int LimitFieldNumber = 2;
+    private int limit_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Limit {
+      get { return limit_; }
+      set {
+        limit_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyGetChat_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyGetChat_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Start != other.Start) return false;
+      if (Limit != other.Limit) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Start != 0) hash ^= Start.GetHashCode();
+      if (Limit != 0) hash ^= Limit.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 (Start != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Start);
+      }
+      if (Limit != 0) {
+        output.WriteRawTag(16);
+        output.WriteInt32(Limit);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Start != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
+      }
+      if (Limit != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Limit);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyGetChat_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Start != 0) {
+        Start = other.Start;
+      }
+      if (other.Limit != 0) {
+        Limit = other.Limit;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Start = input.ReadInt32();
+            break;
+          }
+          case 16: {
+            Limit = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyGetChat_S2C : pb::IMessage<FamilyGetChat_S2C> {
+    private static readonly pb::MessageParser<FamilyGetChat_S2C> _parser = new pb::MessageParser<FamilyGetChat_S2C>(() => new FamilyGetChat_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyGetChat_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[56]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetChat_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetChat_S2C(FamilyGetChat_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      messages_ = other.messages_.Clone();
+      total_ = other.total_;
+      onlineCount_ = other.onlineCount_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetChat_S2C Clone() {
+      return new FamilyGetChat_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "messages" field.</summary>
+    public const int MessagesFieldNumber = 2;
+    private static readonly pb::FieldCodec<global::Protobuf.FamilyChatMsg> _repeated_messages_codec
+        = pb::FieldCodec.ForMessage(18, global::Protobuf.FamilyChatMsg.Parser);
+    private readonly pbc::RepeatedField<global::Protobuf.FamilyChatMsg> messages_ = new pbc::RepeatedField<global::Protobuf.FamilyChatMsg>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<global::Protobuf.FamilyChatMsg> Messages {
+      get { return messages_; }
+    }
+
+    /// <summary>Field number for the "total" field.</summary>
+    public const int TotalFieldNumber = 3;
+    private int total_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Total {
+      get { return total_; }
+      set {
+        total_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "onlineCount" field.</summary>
+    public const int OnlineCountFieldNumber = 4;
+    private int onlineCount_;
+    /// <summary>
+    ///  公会在线玩家数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int OnlineCount {
+      get { return onlineCount_; }
+      set {
+        onlineCount_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyGetChat_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyGetChat_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if(!messages_.Equals(other.messages_)) return false;
+      if (Total != other.Total) return false;
+      if (OnlineCount != other.OnlineCount) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      hash ^= messages_.GetHashCode();
+      if (Total != 0) hash ^= Total.GetHashCode();
+      if (OnlineCount != 0) hash ^= OnlineCount.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      messages_.WriteTo(output, _repeated_messages_codec);
+      if (Total != 0) {
+        output.WriteRawTag(24);
+        output.WriteInt32(Total);
+      }
+      if (OnlineCount != 0) {
+        output.WriteRawTag(32);
+        output.WriteInt32(OnlineCount);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      size += messages_.CalculateSize(_repeated_messages_codec);
+      if (Total != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Total);
+      }
+      if (OnlineCount != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(OnlineCount);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyGetChat_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      messages_.Add(other.messages_);
+      if (other.Total != 0) {
+        Total = other.Total;
+      }
+      if (other.OnlineCount != 0) {
+        OnlineCount = other.OnlineCount;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            messages_.AddEntriesFrom(input, _repeated_messages_codec);
+            break;
+          }
+          case 24: {
+            Total = input.ReadInt32();
+            break;
+          }
+          case 32: {
+            OnlineCount = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  玩家发送聊天内容
+  /// </summary>
+  public sealed partial class FamilyStartChat_C2S : pb::IMessage<FamilyStartChat_C2S> {
+    private static readonly pb::MessageParser<FamilyStartChat_C2S> _parser = new pb::MessageParser<FamilyStartChat_C2S>(() => new FamilyStartChat_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyStartChat_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[57]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartChat_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartChat_C2S(FamilyStartChat_C2S other) : this() {
+      chatType_ = other.chatType_;
+      content_ = other.content_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartChat_C2S Clone() {
+      return new FamilyStartChat_C2S(this);
+    }
+
+    /// <summary>Field number for the "chatType" field.</summary>
+    public const int ChatTypeFieldNumber = 1;
+    private global::Protobuf.ChatType chatType_ = 0;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::Protobuf.ChatType ChatType {
+      get { return chatType_; }
+      set {
+        chatType_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "content" field.</summary>
+    public const int ContentFieldNumber = 2;
+    private string content_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Content {
+      get { return content_; }
+      set {
+        content_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyStartChat_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyStartChat_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (ChatType != other.ChatType) return false;
+      if (Content != other.Content) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (ChatType != 0) hash ^= ChatType.GetHashCode();
+      if (Content.Length != 0) hash ^= Content.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 (ChatType != 0) {
+        output.WriteRawTag(8);
+        output.WriteEnum((int) ChatType);
+      }
+      if (Content.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Content);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (ChatType != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ChatType);
+      }
+      if (Content.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Content);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyStartChat_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.ChatType != 0) {
+        ChatType = other.ChatType;
+      }
+      if (other.Content.Length != 0) {
+        Content = other.Content;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            chatType_ = (global::Protobuf.ChatType) input.ReadEnum();
+            break;
+          }
+          case 18: {
+            Content = input.ReadString();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  这个消息也会群发给其他玩家
+  /// </summary>
+  public sealed partial class FamilyStartChat_S2C : pb::IMessage<FamilyStartChat_S2C> {
+    private static readonly pb::MessageParser<FamilyStartChat_S2C> _parser = new pb::MessageParser<FamilyStartChat_S2C>(() => new FamilyStartChat_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyStartChat_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[58]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartChat_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartChat_S2C(FamilyStartChat_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      Message = other.message_ != null ? other.Message.Clone() : null;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartChat_S2C Clone() {
+      return new FamilyStartChat_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "message" field.</summary>
+    public const int MessageFieldNumber = 2;
+    private global::Protobuf.FamilyChatMsg message_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::Protobuf.FamilyChatMsg Message {
+      get { return message_; }
+      set {
+        message_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyStartChat_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyStartChat_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if (!object.Equals(Message, other.Message)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      if (message_ != null) hash ^= Message.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      if (message_ != null) {
+        output.WriteRawTag(18);
+        output.WriteMessage(Message);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      if (message_ != null) {
+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Message);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyStartChat_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      if (other.message_ != null) {
+        if (message_ == null) {
+          message_ = new global::Protobuf.FamilyChatMsg();
+        }
+        Message.MergeFrom(other.Message);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            if (message_ == null) {
+              message_ = new global::Protobuf.FamilyChatMsg();
+            }
+            input.ReadMessage(message_);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  给一个玩家捐献一个宝石
+  /// </summary>
+  public sealed partial class FamilyStartDonate_C2S : pb::IMessage<FamilyStartDonate_C2S> {
+    private static readonly pb::MessageParser<FamilyStartDonate_C2S> _parser = new pb::MessageParser<FamilyStartDonate_C2S>(() => new FamilyStartDonate_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyStartDonate_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[59]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartDonate_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartDonate_C2S(FamilyStartDonate_C2S other) : this() {
+      messageId_ = other.messageId_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartDonate_C2S Clone() {
+      return new FamilyStartDonate_C2S(this);
+    }
+
+    /// <summary>Field number for the "messageId" field.</summary>
+    public const int MessageIdFieldNumber = 1;
+    private int messageId_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int MessageId {
+      get { return messageId_; }
+      set {
+        messageId_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyStartDonate_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyStartDonate_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (MessageId != other.MessageId) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (MessageId != 0) hash ^= MessageId.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 (MessageId != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(MessageId);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (MessageId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MessageId);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyStartDonate_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.MessageId != 0) {
+        MessageId = other.MessageId;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            MessageId = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  捐赠结果 这个消息也会群发给其他玩家
+  /// </summary>
+  public sealed partial class FamilyStartDonate_S2C : pb::IMessage<FamilyStartDonate_S2C> {
+    private static readonly pb::MessageParser<FamilyStartDonate_S2C> _parser = new pb::MessageParser<FamilyStartDonate_S2C>(() => new FamilyStartDonate_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyStartDonate_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[60]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartDonate_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartDonate_S2C(FamilyStartDonate_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      Message = other.message_ != null ? other.Message.Clone() : null;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyStartDonate_S2C Clone() {
+      return new FamilyStartDonate_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "message" field.</summary>
+    public const int MessageFieldNumber = 2;
+    private global::Protobuf.FamilyChatMsg message_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::Protobuf.FamilyChatMsg Message {
+      get { return message_; }
+      set {
+        message_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyStartDonate_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyStartDonate_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if (!object.Equals(Message, other.Message)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      if (message_ != null) hash ^= Message.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      if (message_ != null) {
+        output.WriteRawTag(18);
+        output.WriteMessage(Message);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      if (message_ != null) {
+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Message);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyStartDonate_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      if (other.message_ != null) {
+        if (message_ == null) {
+          message_ = new global::Protobuf.FamilyChatMsg();
+        }
+        Message.MergeFrom(other.Message);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            if (message_ == null) {
+              message_ = new global::Protobuf.FamilyChatMsg();
+            }
+            input.ReadMessage(message_);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  退出工会
+  ///  如果是会长退出,服务器会指定一个新的会长
+  /// </summary>
+  public sealed partial class FamilyQuit_C2S : pb::IMessage<FamilyQuit_C2S> {
+    private static readonly pb::MessageParser<FamilyQuit_C2S> _parser = new pb::MessageParser<FamilyQuit_C2S>(() => new FamilyQuit_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyQuit_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[61]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyQuit_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyQuit_C2S(FamilyQuit_C2S other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyQuit_C2S Clone() {
+      return new FamilyQuit_C2S(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyQuit_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyQuit_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      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) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyQuit_C2S other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyQuit_S2C : pb::IMessage<FamilyQuit_S2C> {
+    private static readonly pb::MessageParser<FamilyQuit_S2C> _parser = new pb::MessageParser<FamilyQuit_S2C>(() => new FamilyQuit_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyQuit_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[62]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyQuit_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyQuit_S2C(FamilyQuit_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyQuit_S2C Clone() {
+      return new FamilyQuit_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyQuit_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyQuit_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyQuit_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  /// @{ 会长特有协议
+  ///  会长批准入会
+  /// </summary>
+  public sealed partial class FamilyAgreeJoin_C2S : pb::IMessage<FamilyAgreeJoin_C2S> {
+    private static readonly pb::MessageParser<FamilyAgreeJoin_C2S> _parser = new pb::MessageParser<FamilyAgreeJoin_C2S>(() => new FamilyAgreeJoin_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyAgreeJoin_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[63]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyAgreeJoin_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyAgreeJoin_C2S(FamilyAgreeJoin_C2S other) : this() {
+      messageId_ = other.messageId_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyAgreeJoin_C2S Clone() {
+      return new FamilyAgreeJoin_C2S(this);
+    }
+
+    /// <summary>Field number for the "messageId" field.</summary>
+    public const int MessageIdFieldNumber = 1;
+    private int messageId_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int MessageId {
+      get { return messageId_; }
+      set {
+        messageId_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyAgreeJoin_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyAgreeJoin_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (MessageId != other.MessageId) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (MessageId != 0) hash ^= MessageId.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 (MessageId != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(MessageId);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (MessageId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MessageId);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyAgreeJoin_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.MessageId != 0) {
+        MessageId = other.MessageId;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            MessageId = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyAgreeJoin_S2C : pb::IMessage<FamilyAgreeJoin_S2C> {
+    private static readonly pb::MessageParser<FamilyAgreeJoin_S2C> _parser = new pb::MessageParser<FamilyAgreeJoin_S2C>(() => new FamilyAgreeJoin_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyAgreeJoin_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[64]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyAgreeJoin_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyAgreeJoin_S2C(FamilyAgreeJoin_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      NewMember = other.newMember_ != null ? other.NewMember.Clone() : null;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyAgreeJoin_S2C Clone() {
+      return new FamilyAgreeJoin_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "newMember" field.</summary>
+    public const int NewMemberFieldNumber = 2;
+    private global::Protobuf.FamilyMemberMsg newMember_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::Protobuf.FamilyMemberMsg NewMember {
+      get { return newMember_; }
+      set {
+        newMember_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyAgreeJoin_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyAgreeJoin_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if (!object.Equals(NewMember, other.NewMember)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      if (newMember_ != null) hash ^= NewMember.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      if (newMember_ != null) {
+        output.WriteRawTag(18);
+        output.WriteMessage(NewMember);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      if (newMember_ != null) {
+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(NewMember);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyAgreeJoin_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      if (other.newMember_ != null) {
+        if (newMember_ == null) {
+          newMember_ = new global::Protobuf.FamilyMemberMsg();
+        }
+        NewMember.MergeFrom(other.NewMember);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            if (newMember_ == null) {
+              newMember_ = new global::Protobuf.FamilyMemberMsg();
+            }
+            input.ReadMessage(newMember_);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  踢出会员
+  /// </summary>
+  public sealed partial class FamilyKickUser_C2S : pb::IMessage<FamilyKickUser_C2S> {
+    private static readonly pb::MessageParser<FamilyKickUser_C2S> _parser = new pb::MessageParser<FamilyKickUser_C2S>(() => new FamilyKickUser_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyKickUser_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[65]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyKickUser_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyKickUser_C2S(FamilyKickUser_C2S other) : this() {
+      username_ = other.username_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyKickUser_C2S Clone() {
+      return new FamilyKickUser_C2S(this);
+    }
+
+    /// <summary>Field number for the "username" field.</summary>
+    public const int UsernameFieldNumber = 1;
+    private string username_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Username {
+      get { return username_; }
+      set {
+        username_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyKickUser_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyKickUser_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Username != other.Username) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Username.Length != 0) hash ^= Username.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 (Username.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Username);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Username.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Username);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyKickUser_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Username.Length != 0) {
+        Username = other.Username;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Username = input.ReadString();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyKickUser_S2C : pb::IMessage<FamilyKickUser_S2C> {
+    private static readonly pb::MessageParser<FamilyKickUser_S2C> _parser = new pb::MessageParser<FamilyKickUser_S2C>(() => new FamilyKickUser_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyKickUser_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[66]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyKickUser_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyKickUser_S2C(FamilyKickUser_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyKickUser_S2C Clone() {
+      return new FamilyKickUser_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyKickUser_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyKickUser_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyKickUser_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  转让会长
+  /// </summary>
+  public sealed partial class FamilyTransLeader_C2S : pb::IMessage<FamilyTransLeader_C2S> {
+    private static readonly pb::MessageParser<FamilyTransLeader_C2S> _parser = new pb::MessageParser<FamilyTransLeader_C2S>(() => new FamilyTransLeader_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyTransLeader_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[67]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyTransLeader_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyTransLeader_C2S(FamilyTransLeader_C2S other) : this() {
+      username_ = other.username_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyTransLeader_C2S Clone() {
+      return new FamilyTransLeader_C2S(this);
+    }
+
+    /// <summary>Field number for the "username" field.</summary>
+    public const int UsernameFieldNumber = 1;
+    private string username_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Username {
+      get { return username_; }
+      set {
+        username_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyTransLeader_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyTransLeader_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Username != other.Username) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Username.Length != 0) hash ^= Username.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 (Username.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Username);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Username.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Username);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyTransLeader_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Username.Length != 0) {
+        Username = other.Username;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Username = input.ReadString();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyTransLeader_S2C : pb::IMessage<FamilyTransLeader_S2C> {
+    private static readonly pb::MessageParser<FamilyTransLeader_S2C> _parser = new pb::MessageParser<FamilyTransLeader_S2C>(() => new FamilyTransLeader_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyTransLeader_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[68]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyTransLeader_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyTransLeader_S2C(FamilyTransLeader_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyTransLeader_S2C Clone() {
+      return new FamilyTransLeader_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyTransLeader_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyTransLeader_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyTransLeader_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  /// @ 工会商店(使用工会捐献积分兑换,所有人都有权限)
+  ///  获取捐赠商店列表
+  /// </summary>
+  public sealed partial class FamilyGetDonateShop_C2S : pb::IMessage<FamilyGetDonateShop_C2S> {
+    private static readonly pb::MessageParser<FamilyGetDonateShop_C2S> _parser = new pb::MessageParser<FamilyGetDonateShop_C2S>(() => new FamilyGetDonateShop_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyGetDonateShop_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[69]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetDonateShop_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetDonateShop_C2S(FamilyGetDonateShop_C2S other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetDonateShop_C2S Clone() {
+      return new FamilyGetDonateShop_C2S(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyGetDonateShop_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyGetDonateShop_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      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) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyGetDonateShop_C2S other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyGetDonateShop_S2C : pb::IMessage<FamilyGetDonateShop_S2C> {
+    private static readonly pb::MessageParser<FamilyGetDonateShop_S2C> _parser = new pb::MessageParser<FamilyGetDonateShop_S2C>(() => new FamilyGetDonateShop_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyGetDonateShop_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[70]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetDonateShop_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetDonateShop_S2C(FamilyGetDonateShop_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      items_ = other.items_.Clone();
+      expireTime_ = other.expireTime_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetDonateShop_S2C Clone() {
+      return new FamilyGetDonateShop_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "items" field.</summary>
+    public const int ItemsFieldNumber = 2;
+    private static readonly pb::FieldCodec<global::Protobuf.StoreItemMsg> _repeated_items_codec
+        = pb::FieldCodec.ForMessage(18, global::Protobuf.StoreItemMsg.Parser);
+    private readonly pbc::RepeatedField<global::Protobuf.StoreItemMsg> items_ = new pbc::RepeatedField<global::Protobuf.StoreItemMsg>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<global::Protobuf.StoreItemMsg> Items {
+      get { return items_; }
+    }
+
+    /// <summary>Field number for the "expireTime" field.</summary>
+    public const int ExpireTimeFieldNumber = 3;
+    private int expireTime_;
+    /// <summary>
+    /// !下次刷新时间,UNIX时间戳,单位秒
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int ExpireTime {
+      get { return expireTime_; }
+      set {
+        expireTime_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyGetDonateShop_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyGetDonateShop_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if(!items_.Equals(other.items_)) return false;
+      if (ExpireTime != other.ExpireTime) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      hash ^= items_.GetHashCode();
+      if (ExpireTime != 0) hash ^= ExpireTime.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      items_.WriteTo(output, _repeated_items_codec);
+      if (ExpireTime != 0) {
+        output.WriteRawTag(24);
+        output.WriteInt32(ExpireTime);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      size += items_.CalculateSize(_repeated_items_codec);
+      if (ExpireTime != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ExpireTime);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyGetDonateShop_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      items_.Add(other.items_);
+      if (other.ExpireTime != 0) {
+        ExpireTime = other.ExpireTime;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            items_.AddEntriesFrom(input, _repeated_items_codec);
+            break;
+          }
+          case 24: {
+            ExpireTime = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  购买捐赠商城物品
+  /// </summary>
+  public sealed partial class FamilyBuyDonateShop_C2S : pb::IMessage<FamilyBuyDonateShop_C2S> {
+    private static readonly pb::MessageParser<FamilyBuyDonateShop_C2S> _parser = new pb::MessageParser<FamilyBuyDonateShop_C2S>(() => new FamilyBuyDonateShop_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyBuyDonateShop_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[71]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyDonateShop_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyDonateShop_C2S(FamilyBuyDonateShop_C2S other) : this() {
+      donateshopId_ = other.donateshopId_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyDonateShop_C2S Clone() {
+      return new FamilyBuyDonateShop_C2S(this);
+    }
+
+    /// <summary>Field number for the "donateshopId" field.</summary>
+    public const int DonateshopIdFieldNumber = 1;
+    private int donateshopId_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int DonateshopId {
+      get { return donateshopId_; }
+      set {
+        donateshopId_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyBuyDonateShop_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyBuyDonateShop_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (DonateshopId != other.DonateshopId) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (DonateshopId != 0) hash ^= DonateshopId.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 (DonateshopId != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(DonateshopId);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (DonateshopId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DonateshopId);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyBuyDonateShop_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.DonateshopId != 0) {
+        DonateshopId = other.DonateshopId;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            DonateshopId = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyBuyDonateShop_S2C : pb::IMessage<FamilyBuyDonateShop_S2C> {
+    private static readonly pb::MessageParser<FamilyBuyDonateShop_S2C> _parser = new pb::MessageParser<FamilyBuyDonateShop_S2C>(() => new FamilyBuyDonateShop_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyBuyDonateShop_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[72]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyDonateShop_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyDonateShop_S2C(FamilyBuyDonateShop_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      donateshopId_ = other.donateshopId_;
+      curitems_ = other.curitems_.Clone();
+      buyCount_ = other.buyCount_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyDonateShop_S2C Clone() {
+      return new FamilyBuyDonateShop_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "donateshopId" field.</summary>
+    public const int DonateshopIdFieldNumber = 2;
+    private int donateshopId_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int DonateshopId {
+      get { return donateshopId_; }
+      set {
+        donateshopId_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "curitems" field.</summary>
+    public const int CuritemsFieldNumber = 3;
+    private static readonly pb::FieldCodec<global::Protobuf.RewardItemMsg> _repeated_curitems_codec
+        = pb::FieldCodec.ForMessage(26, global::Protobuf.RewardItemMsg.Parser);
+    private readonly pbc::RepeatedField<global::Protobuf.RewardItemMsg> curitems_ = new pbc::RepeatedField<global::Protobuf.RewardItemMsg>();
+    /// <summary>
+    ///  消费后的当前值
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<global::Protobuf.RewardItemMsg> Curitems {
+      get { return curitems_; }
+    }
+
+    /// <summary>Field number for the "buyCount" field.</summary>
+    public const int BuyCountFieldNumber = 4;
+    private int buyCount_;
+    /// <summary>
+    ///  当前的购买次数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int BuyCount {
+      get { return buyCount_; }
+      set {
+        buyCount_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyBuyDonateShop_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyBuyDonateShop_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if (DonateshopId != other.DonateshopId) return false;
+      if(!curitems_.Equals(other.curitems_)) return false;
+      if (BuyCount != other.BuyCount) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      if (DonateshopId != 0) hash ^= DonateshopId.GetHashCode();
+      hash ^= curitems_.GetHashCode();
+      if (BuyCount != 0) hash ^= BuyCount.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      if (DonateshopId != 0) {
+        output.WriteRawTag(16);
+        output.WriteInt32(DonateshopId);
+      }
+      curitems_.WriteTo(output, _repeated_curitems_codec);
+      if (BuyCount != 0) {
+        output.WriteRawTag(32);
+        output.WriteInt32(BuyCount);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      if (DonateshopId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DonateshopId);
+      }
+      size += curitems_.CalculateSize(_repeated_curitems_codec);
+      if (BuyCount != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BuyCount);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyBuyDonateShop_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      if (other.DonateshopId != 0) {
+        DonateshopId = other.DonateshopId;
+      }
+      curitems_.Add(other.curitems_);
+      if (other.BuyCount != 0) {
+        BuyCount = other.BuyCount;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 16: {
+            DonateshopId = input.ReadInt32();
+            break;
+          }
+          case 26: {
+            curitems_.AddEntriesFrom(input, _repeated_curitems_codec);
+            break;
+          }
+          case 32: {
+            BuyCount = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  获取积分商店物品列表
+  /// </summary>
+  public sealed partial class FamilyGetScoreShop_C2S : pb::IMessage<FamilyGetScoreShop_C2S> {
+    private static readonly pb::MessageParser<FamilyGetScoreShop_C2S> _parser = new pb::MessageParser<FamilyGetScoreShop_C2S>(() => new FamilyGetScoreShop_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyGetScoreShop_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[73]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetScoreShop_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetScoreShop_C2S(FamilyGetScoreShop_C2S other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetScoreShop_C2S Clone() {
+      return new FamilyGetScoreShop_C2S(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyGetScoreShop_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyGetScoreShop_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      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) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyGetScoreShop_C2S other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyGetScoreShop_S2C : pb::IMessage<FamilyGetScoreShop_S2C> {
+    private static readonly pb::MessageParser<FamilyGetScoreShop_S2C> _parser = new pb::MessageParser<FamilyGetScoreShop_S2C>(() => new FamilyGetScoreShop_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyGetScoreShop_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[74]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetScoreShop_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetScoreShop_S2C(FamilyGetScoreShop_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      items_ = other.items_.Clone();
+      expireTime_ = other.expireTime_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyGetScoreShop_S2C Clone() {
+      return new FamilyGetScoreShop_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "items" field.</summary>
+    public const int ItemsFieldNumber = 2;
+    private static readonly pb::FieldCodec<global::Protobuf.StoreItemMsg> _repeated_items_codec
+        = pb::FieldCodec.ForMessage(18, global::Protobuf.StoreItemMsg.Parser);
+    private readonly pbc::RepeatedField<global::Protobuf.StoreItemMsg> items_ = new pbc::RepeatedField<global::Protobuf.StoreItemMsg>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<global::Protobuf.StoreItemMsg> Items {
+      get { return items_; }
+    }
+
+    /// <summary>Field number for the "expireTime" field.</summary>
+    public const int ExpireTimeFieldNumber = 3;
+    private int expireTime_;
+    /// <summary>
+    /// !下次刷新时间,UNIX时间戳,单位秒
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int ExpireTime {
+      get { return expireTime_; }
+      set {
+        expireTime_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyGetScoreShop_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyGetScoreShop_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if(!items_.Equals(other.items_)) return false;
+      if (ExpireTime != other.ExpireTime) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      hash ^= items_.GetHashCode();
+      if (ExpireTime != 0) hash ^= ExpireTime.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      items_.WriteTo(output, _repeated_items_codec);
+      if (ExpireTime != 0) {
+        output.WriteRawTag(24);
+        output.WriteInt32(ExpireTime);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      size += items_.CalculateSize(_repeated_items_codec);
+      if (ExpireTime != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ExpireTime);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyGetScoreShop_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      items_.Add(other.items_);
+      if (other.ExpireTime != 0) {
+        ExpireTime = other.ExpireTime;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            items_.AddEntriesFrom(input, _repeated_items_codec);
+            break;
+          }
+          case 24: {
+            ExpireTime = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  购买积分商城物品
+  /// </summary>
+  public sealed partial class FamilyBuyScoreShop_C2S : pb::IMessage<FamilyBuyScoreShop_C2S> {
+    private static readonly pb::MessageParser<FamilyBuyScoreShop_C2S> _parser = new pb::MessageParser<FamilyBuyScoreShop_C2S>(() => new FamilyBuyScoreShop_C2S());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyBuyScoreShop_C2S> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[75]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyScoreShop_C2S() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyScoreShop_C2S(FamilyBuyScoreShop_C2S other) : this() {
+      scoreshopId_ = other.scoreshopId_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyScoreShop_C2S Clone() {
+      return new FamilyBuyScoreShop_C2S(this);
+    }
+
+    /// <summary>Field number for the "scoreshopId" field.</summary>
+    public const int ScoreshopIdFieldNumber = 1;
+    private int scoreshopId_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int ScoreshopId {
+      get { return scoreshopId_; }
+      set {
+        scoreshopId_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyBuyScoreShop_C2S);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyBuyScoreShop_C2S other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (ScoreshopId != other.ScoreshopId) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (ScoreshopId != 0) hash ^= ScoreshopId.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 (ScoreshopId != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(ScoreshopId);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (ScoreshopId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ScoreshopId);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyBuyScoreShop_C2S other) {
+      if (other == null) {
+        return;
+      }
+      if (other.ScoreshopId != 0) {
+        ScoreshopId = other.ScoreshopId;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            ScoreshopId = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyBuyScoreShop_S2C : pb::IMessage<FamilyBuyScoreShop_S2C> {
+    private static readonly pb::MessageParser<FamilyBuyScoreShop_S2C> _parser = new pb::MessageParser<FamilyBuyScoreShop_S2C>(() => new FamilyBuyScoreShop_S2C());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyBuyScoreShop_S2C> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.GameReflection.Descriptor.MessageTypes[76]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyScoreShop_S2C() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyScoreShop_S2C(FamilyBuyScoreShop_S2C other) : this() {
+      errorcode_ = other.errorcode_;
+      scoreshopId_ = other.scoreshopId_;
+      scoreshopExpired_ = other.scoreshopExpired_;
+      familyScore_ = other.familyScore_;
+      buyCount_ = other.buyCount_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyBuyScoreShop_S2C Clone() {
+      return new FamilyBuyScoreShop_S2C(this);
+    }
+
+    /// <summary>Field number for the "errorcode" field.</summary>
+    public const int ErrorcodeFieldNumber = 1;
+    private int errorcode_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Errorcode {
+      get { return errorcode_; }
+      set {
+        errorcode_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "scoreshopId" field.</summary>
+    public const int ScoreshopIdFieldNumber = 2;
+    private int scoreshopId_;
+    /// <summary>
+    /// ! 这个2个字段,复制到工会结构体里面
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int ScoreshopId {
+      get { return scoreshopId_; }
+      set {
+        scoreshopId_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "scoreshopExpired" field.</summary>
+    public const int ScoreshopExpiredFieldNumber = 3;
+    private int scoreshopExpired_;
+    /// <summary>
+    /// ! 注意,这个是不积分商店刷新时间,这个是新的BUF过期时间戳.单位秒
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int ScoreshopExpired {
+      get { return scoreshopExpired_; }
+      set {
+        scoreshopExpired_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "familyScore" field.</summary>
+    public const int FamilyScoreFieldNumber = 4;
+    private int familyScore_;
+    /// <summary>
+    /// !当前的工会积分
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int FamilyScore {
+      get { return familyScore_; }
+      set {
+        familyScore_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "buyCount" field.</summary>
+    public const int BuyCountFieldNumber = 5;
+    private int buyCount_;
+    /// <summary>
+    /// ! 当前的购买次数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int BuyCount {
+      get { return buyCount_; }
+      set {
+        buyCount_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyBuyScoreShop_S2C);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyBuyScoreShop_S2C other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Errorcode != other.Errorcode) return false;
+      if (ScoreshopId != other.ScoreshopId) return false;
+      if (ScoreshopExpired != other.ScoreshopExpired) return false;
+      if (FamilyScore != other.FamilyScore) return false;
+      if (BuyCount != other.BuyCount) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Errorcode != 0) hash ^= Errorcode.GetHashCode();
+      if (ScoreshopId != 0) hash ^= ScoreshopId.GetHashCode();
+      if (ScoreshopExpired != 0) hash ^= ScoreshopExpired.GetHashCode();
+      if (FamilyScore != 0) hash ^= FamilyScore.GetHashCode();
+      if (BuyCount != 0) hash ^= BuyCount.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 (Errorcode != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Errorcode);
+      }
+      if (ScoreshopId != 0) {
+        output.WriteRawTag(16);
+        output.WriteInt32(ScoreshopId);
+      }
+      if (ScoreshopExpired != 0) {
+        output.WriteRawTag(24);
+        output.WriteInt32(ScoreshopExpired);
+      }
+      if (FamilyScore != 0) {
+        output.WriteRawTag(32);
+        output.WriteInt32(FamilyScore);
+      }
+      if (BuyCount != 0) {
+        output.WriteRawTag(40);
+        output.WriteInt32(BuyCount);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Errorcode != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Errorcode);
+      }
+      if (ScoreshopId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ScoreshopId);
+      }
+      if (ScoreshopExpired != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ScoreshopExpired);
+      }
+      if (FamilyScore != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(FamilyScore);
+      }
+      if (BuyCount != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(BuyCount);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyBuyScoreShop_S2C other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Errorcode != 0) {
+        Errorcode = other.Errorcode;
+      }
+      if (other.ScoreshopId != 0) {
+        ScoreshopId = other.ScoreshopId;
+      }
+      if (other.ScoreshopExpired != 0) {
+        ScoreshopExpired = other.ScoreshopExpired;
+      }
+      if (other.FamilyScore != 0) {
+        FamilyScore = other.FamilyScore;
+      }
+      if (other.BuyCount != 0) {
+        BuyCount = other.BuyCount;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Errorcode = input.ReadInt32();
+            break;
+          }
+          case 16: {
+            ScoreshopId = input.ReadInt32();
+            break;
+          }
+          case 24: {
+            ScoreshopExpired = input.ReadInt32();
+            break;
+          }
+          case 32: {
+            FamilyScore = input.ReadInt32();
+            break;
+          }
+          case 40: {
+            BuyCount = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
   #endregion
 
 }

--
Gitblit v1.9.1