From fdfe40ac7aebbd5d681cd9408f89e4566081a85a Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 16 九月 2025 16:00:09 +0800
Subject: [PATCH] 0312 增加断线提示
---
Main/Core/NetworkPackage/DataToCtl/AccountLoginState.cs | 2
Main/System/Login/DisconnectHintWin.cs | 83 ++++++++++++++++
Main/Core/NetworkPackage/DataToCtl/RoleLoginState.cs | 4
Main/Manager/StageManager.cs | 17 +++
Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0104_tagServerDisconnect.cs | 10 +-
Main/System/Login/LoginWin.cs | 10 --
Main/System/Login/DisconnectHintWin.cs.meta | 11 ++
Main/System/Login/ServerForceExitHintWin.cs.meta | 11 ++
Main/Core/NetworkPackage/GameNetSystem.cs | 38 +------
Main/Core/NetworkPackage/DataToCtl/ConnectedState.cs | 22 ++--
Main/System/Login/ServerForceExitHintWin.cs | 65 +++++++++++++
11 files changed, 212 insertions(+), 61 deletions(-)
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0104_tagServerDisconnect.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0104_tagServerDisconnect.cs
index 41aa579..7b39cfd 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0104_tagServerDisconnect.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0104_tagServerDisconnect.cs
@@ -1,7 +1,7 @@
-using UnityEngine;
-using System.Collections;
-using System;
-
+using UnityEngine;
+using System.Collections;
+using System;
+
//01 04 鏂嚎#tagServerDisconnect
public class DTC0104_tagServerDisconnect : DtcBasic {
@@ -13,7 +13,7 @@
{
Debug.Log("DTC0104_tagServerDisconnect" + vNetData.Reason);
- //ServerForceExitHintWin.reason = vNetData.Reason;
+ ServerForceExitHintWin.reason = vNetData.Reason;
LoginManager.Instance.busy = false;
if (VersionConfig.Get().versionAuthority == VersionAuthority.Release)
{
diff --git a/Main/Core/NetworkPackage/DataToCtl/AccountLoginState.cs b/Main/Core/NetworkPackage/DataToCtl/AccountLoginState.cs
index 5e2d93c..7e6fa2e 100644
--- a/Main/Core/NetworkPackage/DataToCtl/AccountLoginState.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/AccountLoginState.cs
@@ -23,7 +23,7 @@
if (Time.time > overTime)
{
GameNetSystem.Instance.LoginOut();
- // ServerForceExitHintWin.reason = 111;
+ ServerForceExitHintWin.reason = 111;
}
}
diff --git a/Main/Core/NetworkPackage/DataToCtl/ConnectedState.cs b/Main/Core/NetworkPackage/DataToCtl/ConnectedState.cs
index 8f95f05..599e1ce 100644
--- a/Main/Core/NetworkPackage/DataToCtl/ConnectedState.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/ConnectedState.cs
@@ -73,16 +73,16 @@
private void DetectConnected(int _seconds)
{
- connectedDetecting = true;
-
- var sendInfo1 = new C0104_tagCOnlineReturn();
- sendInfo1.Type = 0;
- GameNetSystem.Instance.SendInfo(sendInfo1);// 鍦ㄧ嚎鍥炲簲
-
- if (clock != null)
- {
- Clock.Stop(clock);
- }
+ connectedDetecting = true;
+
+ var sendInfo1 = new C0104_tagCOnlineReturn();
+ sendInfo1.Type = 0;
+ GameNetSystem.Instance.SendInfo(sendInfo1);// 鍦ㄧ嚎鍥炲簲
+
+ if (clock != null)
+ {
+ Clock.Stop(clock);
+ }
clock = Clock.AlarmAt(DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond), OnDetectEnd);
}
@@ -105,7 +105,7 @@
{
case NetworkReachability.NotReachable:
GameNetSystem.Instance.Disconnect();
- // WindowCenter.Instance.Open<DisconnectHintWin>();
+ UIManager.Instance.OpenWindow<DisconnectHintWin>();
break;
case NetworkReachability.ReachableViaCarrierDataNetwork:
case NetworkReachability.ReachableViaLocalAreaNetwork:
diff --git a/Main/Core/NetworkPackage/DataToCtl/RoleLoginState.cs b/Main/Core/NetworkPackage/DataToCtl/RoleLoginState.cs
index 66da6b0..9c25611 100644
--- a/Main/Core/NetworkPackage/DataToCtl/RoleLoginState.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/RoleLoginState.cs
@@ -28,7 +28,7 @@
if (timer1 > OVERTIME_THRESHOLD_1)
{
GameNetSystem.Instance.Disconnect();
- // WindowCenter.Instance.Open<DisconnectHintWin>();
+ UIManager.Instance.OpenWindow<DisconnectHintWin>();
}
@@ -36,7 +36,7 @@
if (timer2 > OVERTIME_THRESHOLD_2)
{
GameNetSystem.Instance.Disconnect();
- // WindowCenter.Instance.Open<DisconnectHintWin>();
+ UIManager.Instance.OpenWindow<DisconnectHintWin>();
}
}
diff --git a/Main/Core/NetworkPackage/GameNetSystem.cs b/Main/Core/NetworkPackage/GameNetSystem.cs
index 5b1e167..3624dd9 100644
--- a/Main/Core/NetworkPackage/GameNetSystem.cs
+++ b/Main/Core/NetworkPackage/GameNetSystem.cs
@@ -183,8 +183,7 @@
finally
{
netState = NetState.DisConnected;
- // var loginModel = ModelCenter.Instance.GetModel<LoginModel>();
- // loginModel.busy = false;
+ LoginManager.Instance.busy = false;
}
}
@@ -208,21 +207,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 +232,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;
}
}
diff --git a/Main/Manager/StageManager.cs b/Main/Manager/StageManager.cs
index 95949e7..8bac2ec 100644
--- a/Main/Manager/StageManager.cs
+++ b/Main/Manager/StageManager.cs
@@ -52,6 +52,23 @@
UIManager.Instance.OpenWindow<LoginWin>();
}
+ // 杩斿洖鐧诲綍鐣岄潰 濡傛柇绾�
+ public void ReturnToLoginScene()
+ {
+ UIManager.Instance.DestroyAllUI();
+
+ SceneManager.LoadSceneAsync("Login");
+
+ currentStage = StageName.Login;
+ UIManager.Instance.OpenWindow<LaunchBackGroundWin>();
+ UIManager.Instance.OpenWindow<LoginWin>();
+
+ if (ServerForceExitHintWin.reason != 0)
+ {
+ UIManager.Instance.OpenWindow<ServerForceExitHintWin>();
+ }
+ }
+
protected float GetManagerRequestDataProgress()
{
if (Main.managers.Count == 0)
diff --git a/Main/System/Login/DisconnectHintWin.cs b/Main/System/Login/DisconnectHintWin.cs
new file mode 100644
index 0000000..b20379c
--- /dev/null
+++ b/Main/System/Login/DisconnectHintWin.cs
@@ -0,0 +1,83 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Monday, November 20, 2017
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.SceneManagement;
+using UnityEngine.UI;
+
+
+public class DisconnectHintWin : UIBase
+{
+ [SerializeField] Text m_Content;
+ [SerializeField] Button m_Confirm;
+ [SerializeField] Button m_Cancel;
+
+ #region Built-in
+
+ protected override void InitComponent()
+ {
+ m_Cancel.AddListener(Cancel);
+ m_Confirm.AddListener(Confirm);
+ }
+
+ protected override void OnPreOpen()
+ {
+ if (StageManager.Instance.currentStage == StageName.Login)
+ {
+ m_Content.text = Language.Get("Disconnected_2");
+ }
+ else
+ {
+ m_Content.text = Language.Get("Disconnected_1");
+ }
+ }
+
+ #endregion
+
+ private void Confirm()
+ {
+ switch (Application.internetReachability)
+ {
+ case NetworkReachability.NotReachable:
+ GameNetSystem.Instance.LoginOut();
+ ServerForceExitHintWin.reason = 111;
+ break;
+ case NetworkReachability.ReachableViaCarrierDataNetwork:
+ case NetworkReachability.ReachableViaLocalAreaNetwork:
+ if (StageManager.Instance.currentStage == StageName.Login)
+ {
+ LoginManager.Instance.busy = false;
+ LoginManager.Instance.AccountLogin(LoginManager.Instance.accountBuf, LoginManager.Instance.ipBuf,
+ LoginManager.Instance.portBuf, LoginManager.Instance.gamePortBuf);
+ }
+ else
+ {
+ GameNetSystem.Instance.Reconnect();
+ }
+ break;
+ }
+
+ CloseWindow();
+ }
+
+ private void Cancel()
+ {
+ if (!(StageManager.Instance.currentStage == StageName.Login))
+ {
+ GameNetSystem.Instance.LoginOut();
+ }
+
+ CloseWindow();
+ }
+
+}
+
+
+
+
+
diff --git a/Main/System/Login/DisconnectHintWin.cs.meta b/Main/System/Login/DisconnectHintWin.cs.meta
new file mode 100644
index 0000000..651958b
--- /dev/null
+++ b/Main/System/Login/DisconnectHintWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: be709efee6ede2040a38bc53c2342fcc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Login/LoginWin.cs b/Main/System/Login/LoginWin.cs
index 7de36c8..5f942a2 100644
--- a/Main/System/Login/LoginWin.cs
+++ b/Main/System/Login/LoginWin.cs
@@ -260,16 +260,6 @@
}
- //protected void QQLogin()
- //{
- // SDKUtils.Instance.TencentLogin("Login");
- //}
-
- //protected void WXLogin()
- //{
- // SDKUtils.Instance.TencentLogin("Loginwx");
- //}
-
private void OpenServerListWin()
{
UIManager.Instance.OpenWindow<ServerListWin>();
diff --git a/Main/System/Login/ServerForceExitHintWin.cs b/Main/System/Login/ServerForceExitHintWin.cs
new file mode 100644
index 0000000..e99d19a
--- /dev/null
+++ b/Main/System/Login/ServerForceExitHintWin.cs
@@ -0,0 +1,65 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Saturday, December 16, 2017
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+public class ServerForceExitHintWin : UIBase
+{
+ public static int reason = 0;
+
+ [SerializeField] Text m_Reason;
+ [SerializeField] Button m_Confirm;
+
+ #region Built-in
+
+ protected override void InitComponent()
+ {
+ m_Confirm.AddListener(ReturnToLogin);
+ }
+
+ protected override void OnPreOpen()
+ {
+ var kickConfig = KickOutReasonConfig.Get(reason);
+ m_Reason.text = kickConfig == null ? "" : kickConfig.kickout;
+ }
+
+
+
+ protected override void OnPreClose()
+ {
+ }
+
+
+ #endregion
+
+ private void ReturnToLogin()
+ {
+ reason = 0;
+ CloseWindow();
+ switch (VersionConfig.Get().versionAuthority)
+ {
+ case VersionAuthority.InterTest:
+ GameNotice.OpenGameNotice();
+ break;
+ case VersionAuthority.Release:
+ if (!VersionConfig.Get().isBanShu)
+ {
+ if (!LoginManager.Instance.sdkLogined)
+ {
+ SDKUtils.Instance.FreePlatformLogin();
+ }
+ }
+ break;
+ }
+ }
+
+}
+
+
diff --git a/Main/System/Login/ServerForceExitHintWin.cs.meta b/Main/System/Login/ServerForceExitHintWin.cs.meta
new file mode 100644
index 0000000..1262b2a
--- /dev/null
+++ b/Main/System/Login/ServerForceExitHintWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5c32599cf6864744e96d2a540d3a159c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
--
Gitblit v1.8.0