From 4debfee66e8d8aabd179e2f8a61c7ca5ce62af3d Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 31 十二月 2025 15:28:37 +0800
Subject: [PATCH] 0312 修复觉醒后战力计算错误的问题

---
 Main/Core/NetworkPackage/GameNetSystem.cs |  101 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 67 insertions(+), 34 deletions(-)

diff --git a/Main/Core/NetworkPackage/GameNetSystem.cs b/Main/Core/NetworkPackage/GameNetSystem.cs
index c5dde14..a0661a3 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;
@@ -85,8 +89,8 @@
     public GameNetSystem()
     {
         var gameObject = new GameObject("NetUpdateBehaviour");
-        GameObject.DontDestroyOnLoad(gameObject);
-        m_NetUpdateBehaviour = gameObject.AddComponent<NetUpdateBehaviour>();
+        GameObject.DontDestroyOnLoad(gameObject);
+        m_NetUpdateBehaviour = gameObject.AddComponent<NetUpdateBehaviour>();
         m_NetUpdateBehaviour.RegisterUpdateCallBack(OnUpdate);
 
         neverConnectState = gameObject.AddComponent<NeverConnectState>();
@@ -125,8 +129,61 @@
         });
     }
 
+    //闄愬埗瀹㈡埛绔殑涓嬩竴涓寘鏄櫥褰曞寘C0101_tagCPlayerLogin锛屽鏋滀笉鏄櫥褰曞寘涓嶅厑璁稿彂閫�
+    public void SetIsWaitLogin(bool _wait)
+    {
+        waitLogin = _wait;
+    }
+
+    //绛夊緟鏈嶅姟绔�0403鐨勫寘鍚庢墠鑳藉彂鍏朵粬鐨勫姛鑳藉寘锛屽彧鏈塁0123_tagCClientPackVersion 鍜� C0101_tagCPlayerLogin 鍙互鍙戦��
+    public void SetIsWaitLoginMap(bool _wait)
+    {
+        waitLoginMap = _wait;
+    }
+
+    public bool GetIsWaitLoginMap()
+    {
+        return waitLoginMap;
+    }
+
+    //0403鐧诲綍涔嬪墠鐨勫寘缂撳瓨
+    Queue<GameNetPackBasic> sendQueue = new Queue<GameNetPackBasic>();
+
+    public void SendCachePackage()
+    {
+        int cnt = sendQueue.Count;
+        if (mainSocket != null)
+        {
+            while (sendQueue.Count > 0)
+            {
+                SendInfo(sendQueue.Dequeue());
+            }
+        }
+        Debug.LogError($"閲嶇偣鎻愰啋锛�0403鐧诲綍鍚� 鍙戦�佺紦瀛樺寘鏁伴噺 {cnt} 涓�");
+    }
+
     public void SendInfo(GameNetPackBasic protocol)
     {
+        if (waitLogin)
+        {
+            if (protocol is not C0101_tagCPlayerLogin)
+            {
+                Debug.LogWarning("绛夊緟鎵ц鐧诲綍锛屼笉鍏佽鍙戦�佸叾浠栧寘 " + protocol.ToString());
+                return;
+            }
+        }
+
+        // 0102鏄粠鍦板浘鍙戦�佺殑 璇存槑宸茬櫥褰曪紝浣嗗彲鑳藉崱椤垮鑷撮�氱煡route鐘舵�佹參浜庡鎴风锛屼緷鐒堕渶瑕侀槻鑼�
+        if (waitLoginMap)
+        {
+            if (protocol is not C0123_tagCClientPackVersion && protocol is not C0101_tagCPlayerLogin)
+            {
+                Debug.LogError("閲嶇偣鎻愰啋锛氱櫥褰曞畬鎴愬墠鐨勫皝鍖呭厛鍔犲叆闃熷垪 绛�0403鍥炲寘鍚庡啀涓�璧峰彂閫佹湇鍔$ " + protocol.ToString());
+                sendQueue.Enqueue(protocol);
+                return;
+            }
+        }
+
         if (mainSocket != null)
         {
             mainSocket.SendInfo(protocol);
@@ -183,8 +240,7 @@
         finally
         {
             netState = NetState.DisConnected;
-            // var loginModel = ModelCenter.Instance.GetModel<LoginModel>();
-            // loginModel.busy = false;
+            LoginManager.Instance.busy = false;
         }
     }
 
@@ -208,21 +264,16 @@
         finally
         {
             netState = NetState.AccountLogin;
-            // var loginModel = ModelCenter.Instance.GetModel<LoginModel>();
-            // loginModel.busy = false;
-            // loginModel.ReAccountLogin();
+            LoginManager.Instance.busy = false;
+            LoginManager.Instance.ReAccountLogin();
         }
     }
 
     public void LoginOut()
     {
-        // if (CameraController.Instance != null)
-        //     CameraController.Instance.SetInGame(false);
-        // DTC0102_tagCDBPlayer.isAfterPlayerDataInitialize = false;
-
         try
         {
-            // ynmbxxjUtil.Instance.RoleLoginOut();
+            SDKUtils.Instance.RoleLoginOut();
 
             if (mainSocket != null)
             {
@@ -238,31 +289,11 @@
         finally
         {
             netState = NetState.NerverConnect;
-            // TODO YYL
 
-            // var loginModel = ModelCenter.Instance.GetModel<LoginModel>();
-            // loginModel.busy = false;
+            LoginManager.Instance.busy = false;
 
-            // StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
-            // {
-            //     toMapId = 1,
-            //     toLineId = 0,
-            //     needEmpty = false,
-            //     needLoadResource = true,
-            //     serverType = ServerType.Main,
-            //     isClientLoadMap = true
-            // });
-            // //CameraManager.uiCamera.clearFlags = CameraClearFlags.SolidColor;
-            // //GameObject obj = GameObject.Find("NormalCanvas");
-            // //int count = obj.transform.childCount;
-            // //for (int i = count - 1; i >= 0; --i)
-            // //{
-            // //    //Debug.LogError(obj.transform.GetChild(i).name);
-            // //    GameObject.Destroy(obj.transform.GetChild(i).gameObject);
-            // //}
-            // //SceneManager.LoadScene("Empty");
+            StageManager.Instance.ReturnToLoginScene();
             NetLinkWin.Hide();
-            // DTC0403_tagPlayerLoginLoadOK.neverLoginOk = true;
         }
     }
 
@@ -308,4 +339,6 @@
 public enum ServerType
 {
     Main = 1,
+    B430 = 2,
+    MainFight = 3,
 }

--
Gitblit v1.8.0