From a3316f22bceb07dd677c7af8aa79d8c52d26dc2b Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 18 十一月 2025 17:42:55 +0800
Subject: [PATCH] 0312 修复卡号问题

---
 Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs |    2 +-
 Main/System/Login/LoginManager.cs                                                     |   14 ++++++++++++++
 Main/Core/NetworkPackage/GameNetSystem.cs                                             |   34 ++++++++++++++++++++++++++++++++++
 3 files changed, 49 insertions(+), 1 deletions(-)

diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs
index ca633bf..e4a2ded 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs
@@ -15,7 +15,7 @@
         var vNetData = vNetPack as H0403_tagPlayerLoginLoadOK;
 
         GameNetSystem.Instance.netState = GameNetSystem.NetState.Connected;
-
+        GameNetSystem.Instance.SetIsWaitLoginMap(false);
         NetLinkWin.Hide();
 
         if (LoginManager.Instance.reconnectBackGround)
diff --git a/Main/Core/NetworkPackage/GameNetSystem.cs b/Main/Core/NetworkPackage/GameNetSystem.cs
index 6ce7feb..56744e6 100644
--- a/Main/Core/NetworkPackage/GameNetSystem.cs
+++ b/Main/Core/NetworkPackage/GameNetSystem.cs
@@ -6,6 +6,10 @@
 
 public class GameNetSystem : Singleton<GameNetSystem>
 {
+    //闄愬埗瀹㈡埛绔殑涓嬩竴涓寘鏄櫥褰曞寘C0101_tagCPlayerLogin锛屽鏋滀笉鏄櫥褰曞寘涓嶅厑璁稿彂閫�
+    bool waitLogin = false; //绛夊緟鍙戦�佺櫥褰曞寘锛屽鏋滄湁鍏朵粬鍖呯洿鎺ュ睆钄斤紝閬垮厤鏂嚎閲嶈繛鐨勬儏鍐靛彂浜嗘敾鍑诲寘涔嬬被鐨�
+    //绛夊緟鏈嶅姟绔�0403鐨勫寘鍚庢墠鑳藉彂鍏朵粬鐨勫姛鑳藉寘锛屽彧鏈塁0123_tagCClientPackVersion 鍜� C0101_tagCPlayerLogin 鍙互鍙戦��  
+    bool waitLoginMap = false; 
     NetUpdateBehaviour m_NetUpdateBehaviour;
     NeverConnectState neverConnectState;
     AccountLoginState accountLoginState;
@@ -125,8 +129,38 @@
         });
     }
 
+    //闄愬埗瀹㈡埛绔殑涓嬩竴涓寘鏄櫥褰曞寘C0101_tagCPlayerLogin锛屽鏋滀笉鏄櫥褰曞寘涓嶅厑璁稿彂閫�
+    public void SetIsWaitLogin(bool _wait)
+    {
+        waitLogin = _wait;
+    }
+
+    //绛夊緟鏈嶅姟绔�0403鐨勫寘鍚庢墠鑳藉彂鍏朵粬鐨勫姛鑳藉寘锛屽彧鏈塁0123_tagCClientPackVersion 鍜� C0101_tagCPlayerLogin 鍙互鍙戦��
+    public void SetIsWaitLoginMap(bool _wait)
+    {
+        waitLoginMap = _wait;
+    }
+
     public void SendInfo(GameNetPackBasic protocol)
     {
+        if (waitLogin)
+        {
+            if (protocol is not C0101_tagCPlayerLogin)
+            {
+                Debug.LogWarning("绛夊緟鎵ц鐧诲綍锛屼笉鍏佽鍙戦�佸叾浠栧寘 " + protocol.ToString());
+                return;
+            }
+        }
+
+        if (waitLoginMap)
+        {
+            if (protocol is not C0123_tagCClientPackVersion && protocol is not C0101_tagCPlayerLogin)
+            {
+                Debug.LogWarning("绛夊緟0403鍖咃紝涓嶅厑璁稿彂閫佸叾浠栧寘 " + protocol.ToString());
+                return;
+            }
+        }
+
         if (mainSocket != null)
         {
             mainSocket.SendInfo(protocol);
diff --git a/Main/System/Login/LoginManager.cs b/Main/System/Login/LoginManager.cs
index e914215..2aded75 100644
--- a/Main/System/Login/LoginManager.cs
+++ b/Main/System/Login/LoginManager.cs
@@ -66,6 +66,9 @@
         SDKUtils.Instance.onFreePlatformBindOk += OnSDKAccountBindOk;
 
         LaunchInHot.Instance.OnApplicationOut += OnApplicationOut;
+        // #if UNITY_EDITOR
+        // GlobalTimeEvent.Instance.MSEvent += OnMSEvent;
+        // #endif
     }
 
     public override void Release()
@@ -243,9 +246,12 @@
     {
         if (ok)
         {
+            GameNetSystem.Instance.SetIsWaitLogin(false);
+            GameNetSystem.Instance.SetIsWaitLoginMap(true);
             var sendInfo = new C0123_tagCClientPackVersion();
             sendInfo.Version = DwVersionNo;
             GameNetSystem.Instance.SendInfo(sendInfo);
+            GameNetSystem.Instance.SetIsWaitLogin(true);
         }
         else
         {
@@ -253,6 +259,13 @@
         }
     }
 
+    // void OnMSEvent()
+    // {
+    //     //娴嬭瘯鐢� 娴嬭瘯鐧诲綍娴佺▼涓竴鐩村彂鏃犵敤鐨勫寘鏄惁褰卞搷鐧诲綍
+    //     var pack = new CA504_tagCMPlayerGetReward();
+    //     GameNetSystem.Instance.SendInfo(pack);
+
+    // }
 
     public void AccessLogin(H0101_tagServerPrepared _serverInfo)
     {
@@ -291,6 +304,7 @@
 
     public C0101_tagCPlayerLogin Get0101SendPackage(H0101_tagServerPrepared _serverInfo)
     {
+        GameNetSystem.Instance.SetIsWaitLogin(false);
         var send = new C0101_tagCPlayerLogin();
         switch (VersionConfig.Get().versionAuthority)
         {

--
Gitblit v1.8.0