Browse Source

增补一个enterLobby的通讯.

王刚 3 years ago
parent
commit
b8123d2462

+ 55 - 12
CSserver/MultiDup/server/Lobby.cs

@@ -34,13 +34,14 @@ namespace MultiDup
         public Channel<KeyValuePair<int, sSocketData>> MsgChannel = Channel.CreateBounded<KeyValuePair<int, sSocketData>>(1000);
         public Channel<KeyValuePair<int, sSocketData>> MsgChannel = Channel.CreateBounded<KeyValuePair<int, sSocketData>>(1000);
 
 
 
 
-        Dictionary<int,Room> roomDic = new Dictionary<int,Room>();
+        Dictionary<int, Room> roomDic = new Dictionary<int, Room>();
 
 
 
 
         public Lobby()
         public Lobby()
         {
         {
-
+            this.callbacks.Add(eProtocalCommand.CsMdEnterLobby, On_EnterLobby);
             this.callbacks.Add(eProtocalCommand.CsLeaveRoom, On_Leave);
             this.callbacks.Add(eProtocalCommand.CsLeaveRoom, On_Leave);
+            callbacks.Add(eProtocalCommand.CsMdGetRoomList,)
             callbacks.Add(eProtocalCommand.CsMdCreateRoom, On_CreateRoom);
             callbacks.Add(eProtocalCommand.CsMdCreateRoom, On_CreateRoom);
             callbacks.Add(eProtocalCommand.CsMdEnterRoom, On_EnterRoom);
             callbacks.Add(eProtocalCommand.CsMdEnterRoom, On_EnterRoom);
             var t = Task.Run(MsgLoop);
             var t = Task.Run(MsgLoop);
@@ -69,16 +70,57 @@ namespace MultiDup
         public void OnNewPeerConnected(Peer peer)
         public void OnNewPeerConnected(Peer peer)
         {
         {
             AddPeer(peer);
             AddPeer(peer);
-            var msg = new SC_MD_GetRoomList() { };
-            this.roomDic.Values.ToList().ForEach(r =>
+        }
+
+        /// <summary>
+        /// 进入大厅(登陆自己的uid)
+        /// </summary>
+        /// <param name="data"></param>
+        void On_EnterLobby(int peerId, sSocketData data)
+        {
+            var msg = CS_MD_EnterLobby.Parser.ParseFrom(data._data);
+
+            if (this.ClientPeers.TryGetValue(peerId, out var peer))
             {
             {
-                var info = new SC_MD_GetRoomList.Types.RoomInfo() { Battleserver = "", Mapid = r.mapId, RoomId = r.Id};
-                info.PlayerUids.Add(peer.UID);
-                msg.RoomInfos.Add(info);
-            });
+                peer.SendEvent(eProtocalCommand.ScMdEnterLobby, new SC_MD_EnterLobby() { });
+                peer.CurrentState = ClientState.InLobby;
+                peer.Properties.Add(PropertyName.Uid, msg.Uid);
+                peer.Properties.Add(PropertyName.Zoneid, msg.Zoneid);
+            }
+            //var msg = new SC_MD_GetRoomList() { };
+            //this.roomDic.Values.ToList().ForEach(r =>
+            //{
+            //    var info = new SC_MD_GetRoomList.Types.RoomInfo() { Battleserver = "", Mapid = r.mapId, RoomId = r.Id };
+            //    info.PlayerUids.Add(peer.UID);
+            //    msg.RoomInfos.Add(info);
+            //});
+
+            //peer.SendEvent(eProtocalCommand.ScMdGetRoomList, msg);
 
 
-            peer.SendEvent(eProtocalCommand.ScMdGetRoomList, msg);
+        }
+
+        /// <summary>
+        /// 查询房间列表
+        /// </summary>
+        /// <param name="data"></param>
+        void On_GetRoomList(int peerId, sSocketData data)
+        {
 
 
+            var msg = new SC_MD_GetRoomList() { };
+            if (this.ClientPeers.TryGetValue(peerId, out var peer))
+            {
+                this.roomDic.Values.ToList().ForEach(r =>
+                {
+                    var info = new SC_MD_GetRoomList.Types.RoomInfo() { Battleserver = "", Mapid = r.mapId, RoomId = r.Id };
+                    r.ClientPeers.Values.ToList().ForEach(peer =>
+                    {
+                        info.PlayerUids.Add(peer.UID);
+                    });
+                    msg.RoomInfos.Add(info);
+                });
+
+                peer.SendEvent(eProtocalCommand.ScMdGetRoomList, msg);
+            }
         }
         }
         /// <summary>
         /// <summary>
         /// 创建一个房间(副本)
         /// 创建一个房间(副本)
@@ -92,7 +134,7 @@ namespace MultiDup
                 peer.SendEvent(eProtocalCommand.ScMdCreateRoom, new SC_MD_CreateRoom() { });
                 peer.SendEvent(eProtocalCommand.ScMdCreateRoom, new SC_MD_CreateRoom() { });
                 var room = new Room(msg.Mapid);
                 var room = new Room(msg.Mapid);
                 room.AddPeer(peer);                   // 转移进房间
                 room.AddPeer(peer);                   // 转移进房间
-                roomDic.Add(room.Id,room);
+                roomDic.Add(room.Id, room);
 
 
                 //RemovePeer(peerId);                                                  // 从大厅移除
                 //RemovePeer(peerId);                                                  // 从大厅移除
             }
             }
@@ -107,8 +149,9 @@ namespace MultiDup
             var msg = CS_MD_EnterRoom.Parser.ParseFrom(data._data);
             var msg = CS_MD_EnterRoom.Parser.ParseFrom(data._data);
             if (this.ClientPeers.TryGetValue(peerId, out var peer))
             if (this.ClientPeers.TryGetValue(peerId, out var peer))
             {
             {
-                if (roomDic.TryGetValue(msg.RoomId, out var room)){
-                    room.AddPeer(peer);                
+                if (roomDic.TryGetValue(msg.RoomId, out var room))
+                {
+                    room.AddPeer(peer);
                 }
                 }
 
 
             }
             }

+ 9 - 2
CSserver/MultiDup/server/Peer.cs

@@ -19,11 +19,15 @@ namespace MultiDup
         /// </summary>
         /// </summary>
         Connected,
         Connected,
         /// <summary>
         /// <summary>
-        /// 已登录
+        /// 在大厅(已登录)
+        /// </summary>
+        InLobby,
+        /// <summary>
+        /// 在房间
         /// </summary>
         /// </summary>
         InRoom,
         InRoom,
         /// <summary>
         /// <summary>
-        /// 已开始游戏
+        /// 已开始游戏(在房间)
         /// </summary>
         /// </summary>
         InGame,
         InGame,
         /// <summary>
         /// <summary>
@@ -82,6 +86,7 @@ namespace MultiDup
             Id = _UniqPeerId++;
             Id = _UniqPeerId++;
             var t = Task.Run(() => recv(Sock));                                 // 新建接收线程 
             var t = Task.Run(() => recv(Sock));                                 // 新建接收线程 
             var tcs = Task.Run(WriteToClient);                                  // 向客户端发送消息线程
             var tcs = Task.Run(WriteToClient);                                  // 向客户端发送消息线程
+
         }
         }
 
 
 
 
@@ -175,9 +180,11 @@ namespace MultiDup
                         switch (CurrentState)
                         switch (CurrentState)
                         {
                         {
                             case ClientState.Connected:
                             case ClientState.Connected:
+                            case ClientState.InLobby:
                                 await Lobby.Instance.MsgChannel.Writer.WriteAsync(new KeyValuePair<int, sSocketData>(this.Id, _socketData)); // 放入大厅处理队列
                                 await Lobby.Instance.MsgChannel.Writer.WriteAsync(new KeyValuePair<int, sSocketData>(this.Id, _socketData)); // 放入大厅处理队列
                                 break;
                                 break;
                             case ClientState.InRoom:
                             case ClientState.InRoom:
+                            case ClientState.InGame:
                                 if (null != room)
                                 if (null != room)
                                 {
                                 {
                                     await room.MsgChannel.Writer.WriteAsync(new KeyValuePair<int, sSocketData>(this.Id, _socketData));           // 放入房间channel
                                     await room.MsgChannel.Writer.WriteAsync(new KeyValuePair<int, sSocketData>(this.Id, _socketData));           // 放入房间channel

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

@@ -26,6 +26,9 @@ enum eProtocalCommand {
 
 
   // ----多人副本----
   // ----多人副本----
 
 
+  // 多人副本,进入大厅(登录自己的uid)
+  CS_MD_EnterLobby =20; 
+
   // 多人副本, 创建房间
   // 多人副本, 创建房间
   CS_MD_CreateRoom =21;
   CS_MD_CreateRoom =21;
   // 多人副本, 申请房间(列表)
   // 多人副本, 申请房间(列表)
@@ -56,6 +59,8 @@ enum eProtocalCommand {
   SC_ChatNewMsg = 111;
   SC_ChatNewMsg = 111;
 
 
   // ---- 多人副本 ----
   // ---- 多人副本 ----
+  // 多人副本, 进入大厅(登录自己的uid)
+  SC_MD_EnterLobby =120;
   // 多人副本, 创建房间
   // 多人副本, 创建房间
   SC_MD_CreateRoom =121;
   SC_MD_CreateRoom =121;
   // 多人副本, 申请房间(列表)
   // 多人副本, 申请房间(列表)

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

@@ -3,12 +3,19 @@
 package MultiDup;
 package MultiDup;
  
  
 //
 //
+// 进入大厅(注册下自己的uid)
+ message CS_MD_EnterLobby{
+ 	int32 Zoneid = 1;
+	string Uid = 2;
+ }
   // 多人副本, 创建房间
   // 多人副本, 创建房间
  message CS_MD_CreateRoom {
  message CS_MD_CreateRoom {
 	 int32 Zoneid=1;    // zoneid
 	 int32 Zoneid=1;    // zoneid
 	 string Uid=2;      // 玩家id
 	 string Uid=2;      // 玩家id
 	 int32 Mapid=3;     // 地图id
 	 int32 Mapid=3;     // 地图id
  }
  }
+
+
   // 多人副本, 申请房间(列表)
   // 多人副本, 申请房间(列表)
  message CS_MD_GetRoomList {
  message CS_MD_GetRoomList {
 	 int32 Zoneid=1;
 	 int32 Zoneid=1;
@@ -36,6 +43,11 @@ package MultiDup;
 
 
 
 
  // 
  // 
+ // 加入房间成功
+ message SC_MD_EnterLobby{
+ 
+ }
+
   // 多人副本, 创建房间
   // 多人副本, 创建房间
  message SC_MD_CreateRoom {
  message SC_MD_CreateRoom {
 	 int32 Zoneid=1;
 	 int32 Zoneid=1;

+ 18 - 9
CSserver/PBReferens/pbcs/MsgTypeEnum.cs

@@ -20,17 +20,18 @@ public static partial class MsgTypeEnumReflection {
   static MsgTypeEnumReflection() {
   static MsgTypeEnumReflection() {
     byte[] descriptorData = global::System.Convert.FromBase64String(
     byte[] descriptorData = global::System.Convert.FromBase64String(
         string.Concat(
         string.Concat(
-          "ChRwYi9Nc2dUeXBlRW51bS5wcm90byq/AwoQZVByb3RvY2FsQ29tbWFuZBII",
+          "ChRwYi9Nc2dUeXBlRW51bS5wcm90byrrAwoQZVByb3RvY2FsQ29tbWFuZBII",
           "CgRub29wEAASDAoIQ1NfTG9naW4QARITCg9DU19SZXBvcnREYW1hZ2UQAhIQ",
           "CgRub29wEAASDAoIQ1NfTG9naW4QARITCg9DU19SZXBvcnREYW1hZ2UQAhIQ",
           "CgxDU19MZWF2ZVJvb20QAxITCg9DU19SZXBvcnRVc2VySHAQBBIQCgxDU19D",
           "CgxDU19MZWF2ZVJvb20QAxITCg9DU19SZXBvcnRVc2VySHAQBBIQCgxDU19D",
-          "aGF0TG9naW4QChISCg5DU19DaGF0U2VuZE1zZxALEhQKEENTX01EX0NyZWF0",
-          "ZVJvb20QFRIVChFDU19NRF9HZXRSb29tTGlzdBAWEhMKD0NTX01EX0VudGVy",
-          "Um9vbRAXEhMKD0NTX01EX0xlYXZlUm9vbRAYEhIKDkNTX01EX0JlZ2luRHVw",
-          "EBkSDAoIU0NfTG9naW4QZBIXChNTQ19VcGRhdGVQcm9wZXJ0aWVzEGUSDwoL",
-          "U0NfR2FtZU92ZXIQZhIQCgxTQ19DaGF0TG9naW4QbhIRCg1TQ19DaGF0TmV3",
-          "TXNnEG8SFAoQU0NfTURfQ3JlYXRlUm9vbRB5EhUKEVNDX01EX0dldFJvb21M",
-          "aXN0EHoSEwoPU0NfTURfRW50ZXJSb29tEHsSEwoPU0NfTURfTGVhdmVSb29t",
-          "EHwSEgoOU0NfTURfQmVnaW5EdXAQfWIGcHJvdG8z"));
+          "aGF0TG9naW4QChISCg5DU19DaGF0U2VuZE1zZxALEhQKEENTX01EX0VudGVy",
+          "TG9iYnkQFBIUChBDU19NRF9DcmVhdGVSb29tEBUSFQoRQ1NfTURfR2V0Um9v",
+          "bUxpc3QQFhITCg9DU19NRF9FbnRlclJvb20QFxITCg9DU19NRF9MZWF2ZVJv",
+          "b20QGBISCg5DU19NRF9CZWdpbkR1cBAZEgwKCFNDX0xvZ2luEGQSFwoTU0Nf",
+          "VXBkYXRlUHJvcGVydGllcxBlEg8KC1NDX0dhbWVPdmVyEGYSEAoMU0NfQ2hh",
+          "dExvZ2luEG4SEQoNU0NfQ2hhdE5ld01zZxBvEhQKEFNDX01EX0VudGVyTG9i",
+          "YnkQeBIUChBTQ19NRF9DcmVhdGVSb29tEHkSFQoRU0NfTURfR2V0Um9vbUxp",
+          "c3QQehITCg9TQ19NRF9FbnRlclJvb20QexITCg9TQ19NRF9MZWF2ZVJvb20Q",
+          "fBISCg5TQ19NRF9CZWdpbkR1cBB9YgZwcm90bzM="));
     descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
     descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
         new pbr::FileDescriptor[] { },
         new pbr::FileDescriptor[] { },
         new pbr::GeneratedClrTypeInfo(new[] {typeof(global::eProtocalCommand), }, null));
         new pbr::GeneratedClrTypeInfo(new[] {typeof(global::eProtocalCommand), }, null));
@@ -69,6 +70,10 @@ public enum eProtocalCommand {
   /// </summary>
   /// </summary>
   [pbr::OriginalName("CS_ChatSendMsg")] CsChatSendMsg = 11,
   [pbr::OriginalName("CS_ChatSendMsg")] CsChatSendMsg = 11,
   /// <summary>
   /// <summary>
+  /// 多人副本,进入大厅(登录自己的uid)
+  /// </summary>
+  [pbr::OriginalName("CS_MD_EnterLobby")] CsMdEnterLobby = 20,
+  /// <summary>
   /// 多人副本, 创建房间
   /// 多人副本, 创建房间
   /// </summary>
   /// </summary>
   [pbr::OriginalName("CS_MD_CreateRoom")] CsMdCreateRoom = 21,
   [pbr::OriginalName("CS_MD_CreateRoom")] CsMdCreateRoom = 21,
@@ -110,6 +115,10 @@ public enum eProtocalCommand {
   [pbr::OriginalName("SC_ChatNewMsg")] ScChatNewMsg = 111,
   [pbr::OriginalName("SC_ChatNewMsg")] ScChatNewMsg = 111,
   /// <summary>
   /// <summary>
   /// ---- 多人副本 ----
   /// ---- 多人副本 ----
+  /// 多人副本, 进入大厅(登录自己的uid)
+  /// </summary>
+  [pbr::OriginalName("SC_MD_EnterLobby")] ScMdEnterLobby = 120,
+  /// <summary>
   /// 多人副本, 创建房间
   /// 多人副本, 创建房间
   /// </summary>
   /// </summary>
   [pbr::OriginalName("SC_MD_CreateRoom")] ScMdCreateRoom = 121,
   [pbr::OriginalName("SC_MD_CreateRoom")] ScMdCreateRoom = 121,

+ 269 - 26
CSserver/PBReferens/pbcs/MultiDup.cs

@@ -22,31 +22,34 @@ namespace MultiDup {
     static MultiDupReflection() {
     static MultiDupReflection() {
       byte[] descriptorData = global::System.Convert.FromBase64String(
       byte[] descriptorData = global::System.Convert.FromBase64String(
           string.Concat(
           string.Concat(
-            "ChFwYi9NdWx0aUR1cC5wcm90bxIITXVsdGlEdXAiPgoQQ1NfTURfQ3JlYXRl",
+            "ChFwYi9NdWx0aUR1cC5wcm90bxIITXVsdGlEdXAiLwoQQ1NfTURfRW50ZXJM",
+            "b2JieRIOCgZab25laWQYASABKAUSCwoDVWlkGAIgASgJIj4KEENTX01EX0Ny",
+            "ZWF0ZVJvb20SDgoGWm9uZWlkGAEgASgFEgsKA1VpZBgCIAEoCRINCgVNYXBp",
+            "ZBgDIAEoBSIwChFDU19NRF9HZXRSb29tTGlzdBIOCgZab25laWQYASABKAUS",
+            "CwoDVWlkGAIgASgJIj4KD0NTX01EX0VudGVyUm9vbRIOCgZab25laWQYASAB",
+            "KAUSCwoDVWlkGAIgASgJEg4KBlJvb21JZBgDIAEoBSIuCg9DU19NRF9MZWF2",
+            "ZVJvb20SDgoGWm9uZWlkGAEgASgFEgsKA1VpZBgCIAEoCSItCg5DU19NRF9C",
+            "ZWdpbkR1cBIOCgZab25laWQYASABKAUSCwoDVWlkGAIgASgJIhIKEFNDX01E",
+            "X0VudGVyTG9iYnkiTgoQU0NfTURfQ3JlYXRlUm9vbRIOCgZab25laWQYASAB",
+            "KAUSCwoDVWlkGAIgASgJEg0KBU1hcGlkGAMgASgFEg4KBlJvb21JZBgEIAEo",
+            "BSKhAQoRU0NfTURfR2V0Um9vbUxpc3QSNwoJUm9vbUluZm9zGAEgAygLMiQu",
+            "TXVsdGlEdXAuU0NfTURfR2V0Um9vbUxpc3QuUm9vbUluZm8aUwoIUm9vbUlu",
+            "Zm8SDgoGUm9vbUlkGAEgASgFEg0KBU1hcGlkGAIgASgFEhIKClBsYXllclVp",
+            "ZHMYAyADKAkSFAoMYmF0dGxlc2VydmVyGAQgASgJImsKD1NDX01EX0VudGVy",
             "Um9vbRIOCgZab25laWQYASABKAUSCwoDVWlkGAIgASgJEg0KBU1hcGlkGAMg",
             "Um9vbRIOCgZab25laWQYASABKAUSCwoDVWlkGAIgASgJEg0KBU1hcGlkGAMg",
-            "ASgFIjAKEUNTX01EX0dldFJvb21MaXN0Eg4KBlpvbmVpZBgBIAEoBRILCgNV",
-            "aWQYAiABKAkiPgoPQ1NfTURfRW50ZXJSb29tEg4KBlpvbmVpZBgBIAEoBRIL",
-            "CgNVaWQYAiABKAkSDgoGUm9vbUlkGAMgASgFIi4KD0NTX01EX0xlYXZlUm9v",
-            "bRIOCgZab25laWQYASABKAUSCwoDVWlkGAIgASgJIi0KDkNTX01EX0JlZ2lu",
-            "RHVwEg4KBlpvbmVpZBgBIAEoBRILCgNVaWQYAiABKAkiTgoQU0NfTURfQ3Jl",
-            "YXRlUm9vbRIOCgZab25laWQYASABKAUSCwoDVWlkGAIgASgJEg0KBU1hcGlk",
-            "GAMgASgFEg4KBlJvb21JZBgEIAEoBSKhAQoRU0NfTURfR2V0Um9vbUxpc3QS",
-            "NwoJUm9vbUluZm9zGAEgAygLMiQuTXVsdGlEdXAuU0NfTURfR2V0Um9vbUxp",
-            "c3QuUm9vbUluZm8aUwoIUm9vbUluZm8SDgoGUm9vbUlkGAEgASgFEg0KBU1h",
-            "cGlkGAIgASgFEhIKClBsYXllclVpZHMYAyADKAkSFAoMYmF0dGxlc2VydmVy",
-            "GAQgASgJImsKD1NDX01EX0VudGVyUm9vbRIOCgZab25laWQYASABKAUSCwoD",
-            "VWlkGAIgASgJEg0KBU1hcGlkGAMgASgFEgoKAklwGAQgASgJEgwKBFBvcnQY",
-            "BSABKAUSEgoKUGxheWVyVWlkcxgGIAMoCSIuCg9TQ19NRF9MZWF2ZVJvb20S",
-            "DgoGWm9uZWlkGAEgASgFEgsKA1VpZBgCIAEoCSIQCg5TQ19NRF9CZWdpbkR1",
-            "cGIGcHJvdG8z"));
+            "ASgFEgoKAklwGAQgASgJEgwKBFBvcnQYBSABKAUSEgoKUGxheWVyVWlkcxgG",
+            "IAMoCSIuCg9TQ19NRF9MZWF2ZVJvb20SDgoGWm9uZWlkGAEgASgFEgsKA1Vp",
+            "ZBgCIAEoCSIQCg5TQ19NRF9CZWdpbkR1cGIGcHJvdG8z"));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
           new pbr::FileDescriptor[] { },
           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+            new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_EnterLobby), global::MultiDup.CS_MD_EnterLobby.Parser, new[]{ "Zoneid", "Uid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_CreateRoom), global::MultiDup.CS_MD_CreateRoom.Parser, new[]{ "Zoneid", "Uid", "Mapid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_CreateRoom), global::MultiDup.CS_MD_CreateRoom.Parser, new[]{ "Zoneid", "Uid", "Mapid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_GetRoomList), global::MultiDup.CS_MD_GetRoomList.Parser, new[]{ "Zoneid", "Uid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_GetRoomList), global::MultiDup.CS_MD_GetRoomList.Parser, new[]{ "Zoneid", "Uid" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_EnterRoom), global::MultiDup.CS_MD_EnterRoom.Parser, new[]{ "Zoneid", "Uid", "RoomId" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.CS_MD_EnterRoom), global::MultiDup.CS_MD_EnterRoom.Parser, new[]{ "Zoneid", "Uid", "RoomId" }, null, null, null),
             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_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_MD_BeginDup), global::MultiDup.CS_MD_BeginDup.Parser, new[]{ "Zoneid", "Uid" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_EnterLobby), global::MultiDup.SC_MD_EnterLobby.Parser, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_CreateRoom), global::MultiDup.SC_MD_CreateRoom.Parser, new[]{ "Zoneid", "Uid", "Mapid", "RoomId" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_CreateRoom), global::MultiDup.SC_MD_CreateRoom.Parser, new[]{ "Zoneid", "Uid", "Mapid", "RoomId" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_GetRoomList), global::MultiDup.SC_MD_GetRoomList.Parser, new[]{ "RoomInfos" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_GetRoomList.Types.RoomInfo), global::MultiDup.SC_MD_GetRoomList.Types.RoomInfo.Parser, new[]{ "RoomId", "Mapid", "PlayerUids", "Battleserver" }, null, null, null)}),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_GetRoomList), global::MultiDup.SC_MD_GetRoomList.Parser, new[]{ "RoomInfos" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_GetRoomList.Types.RoomInfo), global::MultiDup.SC_MD_GetRoomList.Types.RoomInfo.Parser, new[]{ "RoomId", "Mapid", "PlayerUids", "Battleserver" }, null, null, null)}),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_EnterRoom), global::MultiDup.SC_MD_EnterRoom.Parser, new[]{ "Zoneid", "Uid", "Mapid", "Ip", "Port", "PlayerUids" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::MultiDup.SC_MD_EnterRoom), global::MultiDup.SC_MD_EnterRoom.Parser, new[]{ "Zoneid", "Uid", "Mapid", "Ip", "Port", "PlayerUids" }, null, null, null),
@@ -60,6 +63,154 @@ namespace MultiDup {
   #region Messages
   #region Messages
   /// <summary>
   /// <summary>
   ///
   ///
+  /// 进入大厅(注册下自己的uid)
+  /// </summary>
+  public sealed partial class CS_MD_EnterLobby : pb::IMessage<CS_MD_EnterLobby> {
+    private static readonly pb::MessageParser<CS_MD_EnterLobby> _parser = new pb::MessageParser<CS_MD_EnterLobby>(() => new CS_MD_EnterLobby());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<CS_MD_EnterLobby> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[0]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public CS_MD_EnterLobby() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public CS_MD_EnterLobby(CS_MD_EnterLobby other) : this() {
+      zoneid_ = other.zoneid_;
+      uid_ = other.uid_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public CS_MD_EnterLobby Clone() {
+      return new CS_MD_EnterLobby(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_MD_EnterLobby);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(CS_MD_EnterLobby 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_MD_EnterLobby 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;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
   /// 多人副本, 创建房间
   /// 多人副本, 创建房间
   /// </summary>
   /// </summary>
   public sealed partial class CS_MD_CreateRoom : pb::IMessage<CS_MD_CreateRoom> {
   public sealed partial class CS_MD_CreateRoom : pb::IMessage<CS_MD_CreateRoom> {
@@ -69,7 +220,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[0]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[1]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -254,7 +405,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[1]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[2]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -402,7 +553,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[2]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[3]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -581,7 +732,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[3]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[4]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -732,7 +883,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[4]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[5]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -875,6 +1026,98 @@ namespace MultiDup {
 
 
   /// <summary>
   /// <summary>
   /// 
   /// 
+  /// 加入房间成功
+  /// </summary>
+  public sealed partial class SC_MD_EnterLobby : pb::IMessage<SC_MD_EnterLobby> {
+    private static readonly pb::MessageParser<SC_MD_EnterLobby> _parser = new pb::MessageParser<SC_MD_EnterLobby>(() => new SC_MD_EnterLobby());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<SC_MD_EnterLobby> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[6]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SC_MD_EnterLobby() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SC_MD_EnterLobby(SC_MD_EnterLobby other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SC_MD_EnterLobby Clone() {
+      return new SC_MD_EnterLobby(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as SC_MD_EnterLobby);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(SC_MD_EnterLobby 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(SC_MD_EnterLobby 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;
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
   /// 多人副本, 创建房间
   /// 多人副本, 创建房间
   /// </summary>
   /// </summary>
   public sealed partial class SC_MD_CreateRoom : pb::IMessage<SC_MD_CreateRoom> {
   public sealed partial class SC_MD_CreateRoom : pb::IMessage<SC_MD_CreateRoom> {
@@ -884,7 +1127,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[5]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[7]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1091,7 +1334,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[6]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[8]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1406,7 +1649,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[7]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[9]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1667,7 +1910,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[8]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[10]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1818,7 +2061,7 @@ namespace MultiDup {
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public static pbr::MessageDescriptor Descriptor {
     public static pbr::MessageDescriptor Descriptor {
-      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[9]; }
+      get { return global::MultiDup.MultiDupReflection.Descriptor.MessageTypes[11]; }
     }
     }
 
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]