王刚 3 жил өмнө
parent
commit
aab6e09efa

+ 17 - 9
CSserver/BattleRoom/server/RoomManager.cs

@@ -49,7 +49,7 @@ namespace BattleRoom
         {
             this.callbacks.Add(eProtocalCommand.CsBtLogin, On_BtLogin);
             this.callbacks.Add(eProtocalCommand.CsLeaveRoom, On_Leave);
-             
+
             var t = Task.Run(MsgLoop);
 
         }
@@ -90,7 +90,8 @@ namespace BattleRoom
             if (this.ClientPeers.TryGetValue(peerId, out var peer))
             {
                 Console.WriteLine("寻找对应的房间");
-                roomDic.Values.ToList().ForEach(r => {
+                roomDic.Values.ToList().ForEach(r =>
+                {
                     if (r.PlayerUids.Contains(msg.Uid))
                     {
                         peer.room = r;               // 设置自己的room
@@ -98,12 +99,19 @@ namespace BattleRoom
                         Console.WriteLine("加入对应的房间");
                     }
                 });
+                if (null == peer.room)
+                {
+                    Console.WriteLine("未找到对应的房间");
+                    peer.SendEvent(eProtocalCommand.ScBtLogin, new SC_BT_Login() { Msg = "未找到对应房间!" });
+                }
+                else
+                {
+                    peer.Properties.Add(PropertyName.Uid, msg.Uid);
+                    peer.Properties.Add(PropertyName.Zoneid, msg.Zoneid);
+                    peer.CurrentState = ClientState.InGame;
+                    peer.SendEvent(eProtocalCommand.ScBtLogin, new SC_BT_Login() { Msg = peer.room.Id.ToString() });
 
-                peer.Properties.Add(PropertyName.Uid, msg.Uid);
-                peer.Properties.Add(PropertyName.Zoneid, msg.Zoneid);
-                peer.CurrentState = ClientState.InGame;
-                peer.SendEvent(eProtocalCommand.ScBtLogin, new SC_BT_Login() { });
-                Console.WriteLine("寻找对应的房间");
+                }
 
             }
         }
@@ -118,7 +126,7 @@ namespace BattleRoom
         {
             Console.WriteLine("接收到创建房间指令!");
             var msg = SS_CreateBattleServer.Parser.ParseFrom(data._data);
-             
+
             var room = new Room(msg.RoomId, msg.PlayerUids);
             roomDic.Add(room.Id, room);
 
@@ -126,7 +134,7 @@ namespace BattleRoom
             // todo: 建立玩家列表, 当玩家登录进来以后, 将其连接转入房间
 
         }
-         
+
         /// <summary>
         /// 离开房间(战斗结束)
         /// </summary>

+ 4 - 0
CSserver/PBReferens/pb/MsgTypeEnum.proto

@@ -48,6 +48,8 @@ enum eProtocalCommand {
   CS_BT_Position=33;
   // 战斗服务 广播
   CS_BT_BroadCast =34;
+  // 战斗服务器 玩家列表更新
+  CS_BT_PeopleList =35;
 
   //
   //=======  S => C  =======
@@ -88,6 +90,8 @@ enum eProtocalCommand {
   SC_BT_Postion =133;
   // 战斗服务 广播
   SC_BT_BroadCast =134;
+  // 战斗服务 玩家列表更新
+  SC_BT_PeopleList =135;
 
   //////////////   S - S    //////////////////
   //创建战斗房间

+ 13 - 0
CSserver/PBReferens/pb/MultiDup.proto

@@ -46,6 +46,11 @@ package MultiDup;
 	 string Uid =2;
 	 string Msg=3;
  }
+ // 查询组队列表
+ message CS_BT_PeopleList{
+	 int32 Zoneid=1;
+	 string Uid =2;
+ }
  message CS_BT_Status{
 	 int32 Zoneid=1;
 	 string SenderUid =2;
@@ -127,6 +132,14 @@ package MultiDup;
 	 string Uid =2;
 	 string Msg=3;
  }
+
+ // 战斗服务器, 玩家列表更新
+ message SC_BT_PeopleList{
+	 int32 Zoneid=1;
+	 string NewerUid =2;       // (新进id)
+	 repeated string  PlayerUids=3;
+ }
+
  // 战斗服务 同步状态
  message SC_BT_Status{
 	 int32 Zoneid=1;

+ 17 - 8
CSserver/PBReferens/pbcs/MsgTypeEnum.cs

@@ -20,7 +20,7 @@ public static partial class MsgTypeEnumReflection {
   static MsgTypeEnumReflection() {
     byte[] descriptorData = global::System.Convert.FromBase64String(
         string.Concat(
-          "ChRwYi9Nc2dUeXBlRW51bS5wcm90byq8BQoQZVByb3RvY2FsQ29tbWFuZBII",
+          "ChRwYi9Nc2dUeXBlRW51bS5wcm90byrpBQoQZVByb3RvY2FsQ29tbWFuZBII",
           "CgRub29wEAASDAoIQ1NfTG9naW4QARITCg9DU19SZXBvcnREYW1hZ2UQAhIQ",
           "CgxDU19MZWF2ZVJvb20QAxITCg9DU19SZXBvcnRVc2VySHAQBBIQCgxDU19D",
           "aGF0TG9naW4QChISCg5DU19DaGF0U2VuZE1zZxALEhQKEENTX01EX0VudGVy",
@@ -28,13 +28,14 @@ public static partial class MsgTypeEnumReflection {
           "bUxpc3QQFhITCg9DU19NRF9FbnRlclJvb20QFxITCg9DU19NRF9MZWF2ZVJv",
           "b20QGBISCg5DU19NRF9CZWdpbkR1cBAZEg8KC0NTX0JUX0xvZ2luEB8SEAoM",
           "Q1NfQlRfU3RhdHVzECASEgoOQ1NfQlRfUG9zaXRpb24QIRITCg9DU19CVF9C",
-          "cm9hZENhc3QQIhIMCghTQ19Mb2dpbhBkEhcKE1NDX1VwZGF0ZVByb3BlcnRp",
-          "ZXMQZRIPCgtTQ19HYW1lT3ZlchBmEhAKDFNDX0NoYXRMb2dpbhBuEhEKDVND",
-          "X0NoYXROZXdNc2cQbxIUChBTQ19NRF9FbnRlckxvYmJ5EHgSFAoQU0NfTURf",
-          "Q3JlYXRlUm9vbRB5EhUKEVNDX01EX0dldFJvb21MaXN0EHoSEwoPU0NfTURf",
-          "RW50ZXJSb29tEHsSEwoPU0NfTURfTGVhdmVSb29tEHwSEgoOU0NfTURfQmVn",
-          "aW5EdXAQfRIQCgtTQ19CVF9Mb2dpbhCDARIRCgxTQ19CVF9TdGF0dXMQhAES",
-          "EgoNU0NfQlRfUG9zdGlvbhCFARIUCg9TQ19CVF9Ccm9hZENhc3QQhgESGAoT",
+          "cm9hZENhc3QQIhIUChBDU19CVF9QZW9wbGVMaXN0ECMSDAoIU0NfTG9naW4Q",
+          "ZBIXChNTQ19VcGRhdGVQcm9wZXJ0aWVzEGUSDwoLU0NfR2FtZU92ZXIQZhIQ",
+          "CgxTQ19DaGF0TG9naW4QbhIRCg1TQ19DaGF0TmV3TXNnEG8SFAoQU0NfTURf",
+          "RW50ZXJMb2JieRB4EhQKEFNDX01EX0NyZWF0ZVJvb20QeRIVChFTQ19NRF9H",
+          "ZXRSb29tTGlzdBB6EhMKD1NDX01EX0VudGVyUm9vbRB7EhMKD1NDX01EX0xl",
+          "YXZlUm9vbRB8EhIKDlNDX01EX0JlZ2luRHVwEH0SEAoLU0NfQlRfTG9naW4Q",
+          "gwESEQoMU0NfQlRfU3RhdHVzEIQBEhIKDVNDX0JUX1Bvc3Rpb24QhQESFAoP",
+          "U0NfQlRfQnJvYWRDYXN0EIYBEhUKEFNDX0JUX1Blb3BsZUxpc3QQhwESGAoT",
           "U1NfQ3JlYXRlQmF0dGxlUm9vbRCtAhIaChVTU19DcmVhdGVCYXR0bGVSb29t",
           "T2sQrgJiBnByb3RvMw=="));
     descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
@@ -115,6 +116,10 @@ public enum eProtocalCommand {
   /// </summary>
   [pbr::OriginalName("CS_BT_BroadCast")] CsBtBroadCast = 34,
   /// <summary>
+  /// 战斗服务器 玩家列表更新
+  /// </summary>
+  [pbr::OriginalName("CS_BT_PeopleList")] CsBtPeopleList = 35,
+  /// <summary>
   /// 登录结果
   /// </summary>
   [pbr::OriginalName("SC_Login")] ScLogin = 100,
@@ -176,6 +181,10 @@ public enum eProtocalCommand {
   /// </summary>
   [pbr::OriginalName("SC_BT_BroadCast")] ScBtBroadCast = 134,
   /// <summary>
+  /// 战斗服务 玩家列表更新
+  /// </summary>
+  [pbr::OriginalName("SC_BT_PeopleList")] ScBtPeopleList = 135,
+  /// <summary>
   ///////////////   S - S    //////////////////
   ///创建战斗房间
   /// </summary>

+ 370 - 46
CSserver/PBReferens/pbcs/MultiDup.cs

@@ -31,35 +31,38 @@ namespace MultiDup {
             "ZVJvb20SDgoGWm9uZWlkGAEgASgFEgsKA1VpZBgCIAEoCSItCg5DU19NRF9C",
             "ZWdpbkR1cBIOCgZab25laWQYASABKAUSCwoDVWlkGAIgASgJIjcKC0NTX0JU",
             "X0xvZ2luEg4KBlpvbmVpZBgBIAEoBRILCgNVaWQYAiABKAkSCwoDTXNnGAMg",
-            "ASgJIlYKDENTX0JUX1N0YXR1cxIOCgZab25laWQYASABKAUSEQoJU2VuZGVy",
-            "VWlkGAIgASgJEhQKDFByb3BlcnR5TmFtZRgDIAEoCRINCgVWYWx1ZRgEIAEo",
-            "CSJUCg5DU19CVF9Qb3NpdGlvbhIOCgZab25laWQYASABKAUSEQoJU2VuZGVy",
-            "VWlkGAIgASgJEgkKAVgYAyABKAISCQoBWRgEIAEoAhIJCgFaGAUgASgCIkEK",
-            "D0NTX0JUX0Jyb2FkQ2FzdBIOCgZab25laWQYASABKAUSEQoJU2VuZGVyVWlk",
-            "GAIgASgJEgsKA01zZxgDIAEoCSI8CgpDU19CVF9PdmVyEg4KBlpvbmVpZBgB",
-            "IAEoBRIRCglTZW5kZXJVaWQYAiABKAkSCwoDTXNnGAMgASgJIhIKEFNDX01E",
-            "X0VudGVyTG9iYnkiTgoQU0NfTURfQ3JlYXRlUm9vbRIOCgZab25laWQYASAB",
-            "KAUSCwoDVWlkGAIgASgJEg0KBU1hcGlkGAMgASgFEg4KBlJvb21JZBgEIAEo",
-            "BSK7AQoRU0NfTURfR2V0Um9vbUxpc3QSNwoJUm9vbUluZm9zGAEgAygLMiQu",
-            "TXVsdGlEdXAuU0NfTURfR2V0Um9vbUxpc3QuUm9vbUluZm8abQoIUm9vbUlu",
-            "Zm8SDgoGUm9vbUlkGAEgASgFEg0KBU1hcGlkGAIgASgFEhIKClBsYXllclVp",
-            "ZHMYAyADKAkSFAoMQmF0dGxlc2VydmVyGAQgASgJEhgKEEJhdHRsZVNlcnZl",
-            "clBvcnQYBSABKAUiawoPU0NfTURfRW50ZXJSb29tEg4KBlpvbmVpZBgBIAEo",
-            "BRILCgNVaWQYAiABKAkSDQoFTWFwaWQYAyABKAUSCgoCSXAYBCABKAkSDAoE",
-            "UG9ydBgFIAEoBRISCgpQbGF5ZXJVaWRzGAYgAygJIi4KD1NDX01EX0xlYXZl",
-            "Um9vbRIOCgZab25laWQYASABKAUSCwoDVWlkGAIgASgJIk8KDlNDX01EX0Jl",
-            "Z2luRHVwEhQKDEJhdHRsZXNlcnZlchgBIAEoCRIYChBCYXR0bGVTZXJ2ZXJQ",
-            "b3J0GAIgASgFEg0KBU1hcGlkGAMgASgFIjcKC1NDX0JUX0xvZ2luEg4KBlpv",
-            "bmVpZBgBIAEoBRILCgNVaWQYAiABKAkSCwoDTXNnGAMgASgJIlYKDFNDX0JU",
-            "X1N0YXR1cxIOCgZab25laWQYASABKAUSEQoJU2VuZGVyVWlkGAIgASgJEhQK",
-            "DFByb3BlcnR5TmFtZRgDIAEoCRINCgVWYWx1ZRgEIAEoCSJUCg5TQ19CVF9Q",
-            "b3NpdGlvbhIOCgZab25laWQYASABKAUSEQoJU2VuZGVyVWlkGAIgASgJEgkK",
-            "AVgYAyABKAISCQoBWRgEIAEoAhIJCgFaGAUgASgCIkEKD1NDX0JUX0Jyb2Fk",
-            "Q2FzdBIOCgZab25laWQYASABKAUSEQoJU2VuZGVyVWlkGAIgASgJEgsKA01z",
-            "ZxgDIAEoCSI8CgpTQ19CVF9PdmVyEg4KBlpvbmVpZBgBIAEoBRIRCglTZW5k",
-            "ZXJVaWQYAiABKAkSCwoDTXNnGAMgASgJIjsKFVNTX0NyZWF0ZUJhdHRsZVNl",
-            "cnZlchIOCgZSb29tSWQYASABKAUSEgoKUGxheWVyVWlkcxgCIAMoCSIZChdT",
-            "U19DcmVhdGVCYXR0bGVTZXJ2ZXJPS2IGcHJvdG8z"));
+            "ASgJIi8KEENTX0JUX1Blb3BsZUxpc3QSDgoGWm9uZWlkGAEgASgFEgsKA1Vp",
+            "ZBgCIAEoCSJWCgxDU19CVF9TdGF0dXMSDgoGWm9uZWlkGAEgASgFEhEKCVNl",
+            "bmRlclVpZBgCIAEoCRIUCgxQcm9wZXJ0eU5hbWUYAyABKAkSDQoFVmFsdWUY",
+            "BCABKAkiVAoOQ1NfQlRfUG9zaXRpb24SDgoGWm9uZWlkGAEgASgFEhEKCVNl",
+            "bmRlclVpZBgCIAEoCRIJCgFYGAMgASgCEgkKAVkYBCABKAISCQoBWhgFIAEo",
+            "AiJBCg9DU19CVF9Ccm9hZENhc3QSDgoGWm9uZWlkGAEgASgFEhEKCVNlbmRl",
+            "clVpZBgCIAEoCRILCgNNc2cYAyABKAkiPAoKQ1NfQlRfT3ZlchIOCgZab25l",
+            "aWQYASABKAUSEQoJU2VuZGVyVWlkGAIgASgJEgsKA01zZxgDIAEoCSISChBT",
+            "Q19NRF9FbnRlckxvYmJ5Ik4KEFNDX01EX0NyZWF0ZVJvb20SDgoGWm9uZWlk",
+            "GAEgASgFEgsKA1VpZBgCIAEoCRINCgVNYXBpZBgDIAEoBRIOCgZSb29tSWQY",
+            "BCABKAUiuwEKEVNDX01EX0dldFJvb21MaXN0EjcKCVJvb21JbmZvcxgBIAMo",
+            "CzIkLk11bHRpRHVwLlNDX01EX0dldFJvb21MaXN0LlJvb21JbmZvGm0KCFJv",
+            "b21JbmZvEg4KBlJvb21JZBgBIAEoBRINCgVNYXBpZBgCIAEoBRISCgpQbGF5",
+            "ZXJVaWRzGAMgAygJEhQKDEJhdHRsZXNlcnZlchgEIAEoCRIYChBCYXR0bGVT",
+            "ZXJ2ZXJQb3J0GAUgASgFImsKD1NDX01EX0VudGVyUm9vbRIOCgZab25laWQY",
+            "ASABKAUSCwoDVWlkGAIgASgJEg0KBU1hcGlkGAMgASgFEgoKAklwGAQgASgJ",
+            "EgwKBFBvcnQYBSABKAUSEgoKUGxheWVyVWlkcxgGIAMoCSIuCg9TQ19NRF9M",
+            "ZWF2ZVJvb20SDgoGWm9uZWlkGAEgASgFEgsKA1VpZBgCIAEoCSJPCg5TQ19N",
+            "RF9CZWdpbkR1cBIUCgxCYXR0bGVzZXJ2ZXIYASABKAkSGAoQQmF0dGxlU2Vy",
+            "dmVyUG9ydBgCIAEoBRINCgVNYXBpZBgDIAEoBSI3CgtTQ19CVF9Mb2dpbhIO",
+            "CgZab25laWQYASABKAUSCwoDVWlkGAIgASgJEgsKA01zZxgDIAEoCSJIChBT",
+            "Q19CVF9QZW9wbGVMaXN0Eg4KBlpvbmVpZBgBIAEoBRIQCghOZXdlclVpZBgC",
+            "IAEoCRISCgpQbGF5ZXJVaWRzGAMgAygJIlYKDFNDX0JUX1N0YXR1cxIOCgZa",
+            "b25laWQYASABKAUSEQoJU2VuZGVyVWlkGAIgASgJEhQKDFByb3BlcnR5TmFt",
+            "ZRgDIAEoCRINCgVWYWx1ZRgEIAEoCSJUCg5TQ19CVF9Qb3NpdGlvbhIOCgZa",
+            "b25laWQYASABKAUSEQoJU2VuZGVyVWlkGAIgASgJEgkKAVgYAyABKAISCQoB",
+            "WRgEIAEoAhIJCgFaGAUgASgCIkEKD1NDX0JUX0Jyb2FkQ2FzdBIOCgZab25l",
+            "aWQYASABKAUSEQoJU2VuZGVyVWlkGAIgASgJEgsKA01zZxgDIAEoCSI8CgpT",
+            "Q19CVF9PdmVyEg4KBlpvbmVpZBgBIAEoBRIRCglTZW5kZXJVaWQYAiABKAkS",
+            "CwoDTXNnGAMgASgJIjsKFVNTX0NyZWF0ZUJhdHRsZVNlcnZlchIOCgZSb29t",
+            "SWQYASABKAUSEgoKUGxheWVyVWlkcxgCIAMoCSIZChdTU19DcmVhdGVCYXR0",
+            "bGVTZXJ2ZXJPS2IGcHJvdG8z"));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
@@ -70,6 +73,7 @@ namespace MultiDup {
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_LeaveRoom), global::MultiDup.CS_MD_LeaveRoom.Parser, new[]{ "Zoneid", "Uid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_BeginDup), global::MultiDup.CS_MD_BeginDup.Parser, new[]{ "Zoneid", "Uid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_BT_Login), global::MultiDup.CS_BT_Login.Parser, new[]{ "Zoneid", "Uid", "Msg" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_BT_PeopleList), global::MultiDup.CS_BT_PeopleList.Parser, new[]{ "Zoneid", "Uid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_BT_Status), global::MultiDup.CS_BT_Status.Parser, new[]{ "Zoneid", "SenderUid", "PropertyName", "Value" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_BT_Position), global::MultiDup.CS_BT_Position.Parser, new[]{ "Zoneid", "SenderUid", "X", "Y", "Z" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_BT_BroadCast), global::MultiDup.CS_BT_BroadCast.Parser, new[]{ "Zoneid", "SenderUid", "Msg" }, null, null, null),
@@ -81,6 +85,7 @@ namespace MultiDup {
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_LeaveRoom), global::MultiDup.SC_MD_LeaveRoom.Parser, new[]{ "Zoneid", "Uid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_BeginDup), global::MultiDup.SC_MD_BeginDup.Parser, new[]{ "Battleserver", "BattleServerPort", "Mapid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_BT_Login), global::MultiDup.SC_BT_Login.Parser, new[]{ "Zoneid", "Uid", "Msg" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_BT_PeopleList), global::MultiDup.SC_BT_PeopleList.Parser, new[]{ "Zoneid", "NewerUid", "PlayerUids" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_BT_Status), global::MultiDup.SC_BT_Status.Parser, new[]{ "Zoneid", "SenderUid", "PropertyName", "Value" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_BT_Position), global::MultiDup.SC_BT_Position.Parser, new[]{ "Zoneid", "SenderUid", "X", "Y", "Z" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_BT_BroadCast), global::MultiDup.SC_BT_BroadCast.Parser, new[]{ "Zoneid", "SenderUid", "Msg" }, null, null, null),
@@ -1229,6 +1234,154 @@ namespace MultiDup {
 
   }
 
+  /// <summary>
+  /// 查询组队列表
+  /// </summary>
+  public sealed partial class CS_BT_PeopleList : pb::IMessage<CS_BT_PeopleList> {
+    private static readonly pb::MessageParser<CS_BT_PeopleList> _parser = new pb::MessageParser<CS_BT_PeopleList>(() => new CS_BT_PeopleList());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<CS_BT_PeopleList> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[7]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public CS_BT_PeopleList() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public CS_BT_PeopleList(CS_BT_PeopleList other) : this() {
+      zoneid_ = other.zoneid_;
+      uid_ = other.uid_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public CS_BT_PeopleList Clone() {
+      return new CS_BT_PeopleList(this);
+    }
+
+    /// <summary>Field number for the "Zoneid" field.</summary>
+    public const int ZoneidFieldNumber = 1;
+    private int zoneid_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Zoneid {
+      get { return zoneid_; }
+      set {
+        zoneid_ = 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 CS_BT_PeopleList);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(CS_BT_PeopleList other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Zoneid != other.Zoneid) return false;
+      if (Uid != other.Uid) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Zoneid != 0) hash ^= Zoneid.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 (Zoneid != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Zoneid);
+      }
+      if (Uid.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Uid);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Zoneid != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Zoneid);
+      }
+      if (Uid.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Uid);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(CS_BT_PeopleList other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Zoneid != 0) {
+        Zoneid = other.Zoneid;
+      }
+      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: {
+            Zoneid = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            Uid = input.ReadString();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
   public sealed partial class CS_BT_Status : pb::IMessage<CS_BT_Status> {
     private static readonly pb::MessageParser<CS_BT_Status> _parser = new pb::MessageParser<CS_BT_Status>(() => new CS_BT_Status());
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1236,7 +1389,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[7]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[8]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1437,7 +1590,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[8]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[9]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1669,7 +1822,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[9]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[10]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1842,7 +1995,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[10]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[11]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2019,7 +2172,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[11]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[12]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2111,7 +2264,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[12]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[13]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2318,7 +2471,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[13]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[14]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2661,7 +2814,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[14]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[15]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2922,7 +3075,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[15]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[16]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3073,7 +3226,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[16]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[17]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3246,7 +3399,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[17]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[18]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3412,6 +3565,177 @@ namespace MultiDup {
 
   }
 
+  /// <summary>
+  /// 战斗服务器, 玩家列表更新
+  /// </summary>
+  public sealed partial class SC_BT_PeopleList : pb::IMessage<SC_BT_PeopleList> {
+    private static readonly pb::MessageParser<SC_BT_PeopleList> _parser = new pb::MessageParser<SC_BT_PeopleList>(() => new SC_BT_PeopleList());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<SC_BT_PeopleList> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[19]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SC_BT_PeopleList() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SC_BT_PeopleList(SC_BT_PeopleList other) : this() {
+      zoneid_ = other.zoneid_;
+      newerUid_ = other.newerUid_;
+      playerUids_ = other.playerUids_.Clone();
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SC_BT_PeopleList Clone() {
+      return new SC_BT_PeopleList(this);
+    }
+
+    /// <summary>Field number for the "Zoneid" field.</summary>
+    public const int ZoneidFieldNumber = 1;
+    private int zoneid_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Zoneid {
+      get { return zoneid_; }
+      set {
+        zoneid_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "NewerUid" field.</summary>
+    public const int NewerUidFieldNumber = 2;
+    private string newerUid_ = "";
+    /// <summary>
+    /// (新进id)
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string NewerUid {
+      get { return newerUid_; }
+      set {
+        newerUid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "PlayerUids" field.</summary>
+    public const int PlayerUidsFieldNumber = 3;
+    private static readonly pb::FieldCodec<string> _repeated_playerUids_codec
+        = pb::FieldCodec.ForString(26);
+    private readonly pbc::RepeatedField<string> playerUids_ = new pbc::RepeatedField<string>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<string> PlayerUids {
+      get { return playerUids_; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as SC_BT_PeopleList);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(SC_BT_PeopleList other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Zoneid != other.Zoneid) return false;
+      if (NewerUid != other.NewerUid) return false;
+      if(!playerUids_.Equals(other.playerUids_)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Zoneid != 0) hash ^= Zoneid.GetHashCode();
+      if (NewerUid.Length != 0) hash ^= NewerUid.GetHashCode();
+      hash ^= playerUids_.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 (Zoneid != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(Zoneid);
+      }
+      if (NewerUid.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(NewerUid);
+      }
+      playerUids_.WriteTo(output, _repeated_playerUids_codec);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Zoneid != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Zoneid);
+      }
+      if (NewerUid.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(NewerUid);
+      }
+      size += playerUids_.CalculateSize(_repeated_playerUids_codec);
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(SC_BT_PeopleList other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Zoneid != 0) {
+        Zoneid = other.Zoneid;
+      }
+      if (other.NewerUid.Length != 0) {
+        NewerUid = other.NewerUid;
+      }
+      playerUids_.Add(other.playerUids_);
+    }
+
+    [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: {
+            Zoneid = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            NewerUid = input.ReadString();
+            break;
+          }
+          case 26: {
+            playerUids_.AddEntriesFrom(input, _repeated_playerUids_codec);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
   /// <summary>
   /// 战斗服务 同步状态
   /// </summary>
@@ -3422,7 +3746,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[18]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[20]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3632,7 +3956,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[19]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[21]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3867,7 +4191,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[20]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[22]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4046,7 +4370,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[21]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[23]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4222,7 +4546,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[22]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[24]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4362,7 +4686,7 @@ namespace MultiDup {
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[23]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[25]; }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]