yyl
2025-10-31 39001a600fcae2bcf27c225df8752d75fb92fef4
Main/System/Login/LoginWin.cs
@@ -4,6 +4,7 @@
using System.Diagnostics.Tracing;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
public class LoginWin : UIBase, ICanvasRaycastFilter
{
@@ -19,7 +20,7 @@
    [SerializeField] Image m_Logo;
    [SerializeField] UIAlphaTween m_AlphaTween;
    // [SerializeField] UIAlphaTween m_AlphaTween;
    [SerializeField] RectTransform m_WaitServerList;
    [SerializeField] RectTransform m_ContainerEnterGame;
    [SerializeField] RectTransform m_ContainerAccount;
@@ -28,12 +29,12 @@
    [SerializeField] Text m_ServerName;
    [SerializeField] protected InputField m_Account;
    [SerializeField] Button m_EnterGame;
    [SerializeField] Button m_QQLogin;
    [SerializeField] Button m_WXLogin;
    //[SerializeField] Button m_QQLogin;
    //[SerializeField] Button m_WXLogin;
    [SerializeField] Button m_ServerSelect;
    [SerializeField] Button m_SwitchAccount;
    [SerializeField] Button m_Notice;
    [SerializeField] Button m_UserHelp;
    //[SerializeField] Button m_UserHelp;
    [SerializeField] Button m_CleanCache;
    [SerializeField] Toggle checkRead;
    [SerializeField] Button serverRead;
@@ -50,37 +51,36 @@
        m_Account.onEndEdit.AddListener(x => { EnterGame(); });
#endif
        m_EnterGame.SetListener(EnterGame);
        m_QQLogin.SetListener(QQLogin);
        m_WXLogin.SetListener(WXLogin);
        //m_QQLogin.SetListener(QQLogin);
        //m_WXLogin.SetListener(WXLogin);
        m_ServerSelect.SetListener(OpenServerListWin);
        m_SwitchAccount.SetListener(SwitchAccount);
        m_Notice.SetListener(VeiwNotice);
        if (m_UserHelp)
        {
            m_UserHelp.SetListener(OpenUserHelp);
        }
        //if (m_UserHelp)
        //{
        //    m_UserHelp.SetListener(OpenUserHelp);
        //}
        m_CleanCache.SetListener(ResourcesPath.Instance.CleanCache);
        m_CleanCache.SetListener(CleanCache);
        serverRead.SetListener(() => {
            GameAgeWarnWin win = UIManager.Instance.OpenWindow<GameAgeWarnWin>();
            win.SetFunctionOrder(1);
            // WindowCenter.Instance.OpenFromLocal<GameAgeWarnWin>(1);
            GameAgeWarnWin.data = 1;
            UIManager.Instance.OpenWindow<GameAgeWarnWin>();
        });
        hideRead.SetListener(() => {
            GameAgeWarnWin win = UIManager.Instance.OpenWindow<GameAgeWarnWin>();
            win.SetFunctionOrder(2);
            GameAgeWarnWin.data = 2;
            UIManager.Instance.OpenWindow<GameAgeWarnWin>();
        });
        ageWarn.SetListener(() => {
            GameAgeWarnWin win = UIManager.Instance.OpenWindow<GameAgeWarnWin>();
            win.SetFunctionOrder(3);
            GameAgeWarnWin.data = 3;
            UIManager.Instance.OpenWindow<GameAgeWarnWin>();
        });
    }
    public override void HandleOpen()
    protected override void OnPreOpen()
    {
        base.HandleOpen();
        base.OnPreOpen();
        Debug.Log("打开登录窗口");
@@ -90,20 +90,32 @@
        ServerListCenter.Instance.RequestPlayerServerList();
        LoginManager.Instance.isLogined = false;
        ServerListCenter.Instance.FiltrateDefaultServerAndServerGroup();
        m_AlphaTween.SetStartState();
        // m_AlphaTween.SetStartState();
        Refresh();
        m_AlphaTween.Play(() => {
            firstOpenEnd = true;
            InGameDownLoad.Instance.downLoadGo = false;
            DownloadMgr.MaxDownLoadTask = InGameDownLoad.Instance.GetMaxTask();
        });
        // m_AlphaTween.Play(() => {
        //     firstOpenEnd = true;
        //     InGameDownLoad.Instance.downLoadGo = false;
        //     DownloadMgr.MaxDownLoadTask = InGameDownLoad.Instance.GetMaxTask();
        // });
        AutoFightModel.Instance.isAutoAttack = false;
        AutoFightModel.Instance.isPause = false;
    }
    public override void HandleClose()
    protected override void OnOpenAnimationComplete()
    {
        base.HandleClose();
        base.OnOpenAnimationComplete();
        firstOpenEnd = true;
        InGameDownLoad.Instance.downLoadGo = false;
        DownloadHotMgr.MaxDownLoadTask = InGameDownLoad.Instance.GetMaxTask();
    }
    protected override void OnPreClose()
    {
        base.OnPreClose();
        Debug.Log("关闭登录窗口");
        ServerListCenter.Instance.serverSelectEvent -= OnServerChange;
        ServerListCenter.Instance.onServerListRefreshEvent -= OnServerListRefresh;
@@ -117,28 +129,24 @@
        base.Refresh();
        Debug.Log("刷新登录窗口");
        //打包版本 + 功能版本 + 语言ID
        verInfo.text = LoginManager.Instance.GetVersionStr();
        //  版本信息
        string strVersion = StringUtility.Contact("ver ", InitialFunctionConfig.Get("version").Numerical1);
        verInfo.text = strVersion;
        // var sprite = BuiltInLoader.LoadSprite("TB_DL_Logo");
        // m_Logo.overrideSprite = sprite;
        // m_Logo.SetNativeSize();
        var sprite = BuiltInLoader.LoadSprite("TB_DL_Logo");
        m_Logo.overrideSprite = sprite;
        m_Logo.SetNativeSize();
        m_Logo.rectTransform.anchoredPosition = VersionConfig.Get().logoPosition;
        m_Notice.SetActive(GameNotice.HasNotice());
        // var sprite = BuiltInLoader.LoadSprite("TB_DL_Logo");
        // TODO YYL
        // bool hasNotice = GameNotice.HasNotice();
        bool hasNotice = GameNotice.HasNotice();
        //  账号切换
        m_SwitchAccount.SetActive(false);
        //  用户帮助
        // TODO YYL
        // var appId = VersionConfig.Get().appId;
        // var branch = VersionConfig.Get().branch;
        var appId = VersionConfig.Get().appId;
        var branch = VersionConfig.Get().branch;
        // m_UserHelp.SetActive(ContactConfig.GetConfig(appId, branch) != null);
        //  是否已经获取到服务器列表
@@ -148,7 +156,7 @@
        m_ContainerEnterGame.SetActive(isGetServerList);
        m_ContainerAccount.SetActive(isGetServerList
            && (VersionConfig.Get().versionAuthority == VersionAuthority.InterTest || VersionConfig.Get().isBanShu));
        // loginBtn.SetActive(isGetServerList);
        m_EnterGame.SetActive(isGetServerList);
        if (isGetServerList)
        {
@@ -159,8 +167,8 @@
        ChangeUserInfo(LoginManager.Instance.localSaveAccountName);
        m_EnterGame.SetActive(true);
        m_QQLogin.SetActive(false);
        m_WXLogin.SetActive(false);
        //m_QQLogin.SetActive(false);
        //m_WXLogin.SetActive(false);
        // 用户协议 todo
        checkRead.isOn = LocalSave.GetBool("tqsecretToggle");
@@ -186,7 +194,7 @@
    private void ChangeServerInfo(ServerData _serverData)
    {
        // m_ServerName.text = _serverData.name.Replace("@gm", "");
        m_ServerName.text = _serverData.name.Replace("@gm", "");
        m_ServerIP = _serverData.region_domain;
        m_Port = _serverData.login_port;
        m_GamePort = _serverData.game_port;
@@ -195,43 +203,42 @@
        {
            case ServerState.Maintain:
            case ServerState.Predicted:
                // m_ServerState.SetSprite("XT_FWQ_TB4");
                // m_ServerStateDescription.text = Language.GetFromLocal(29);
                m_ServerState.SetSprite("XT_FWQ_TB4");
                m_ServerStateDescription.text = Language.GetFromLocal(29);
                break;
            case ServerState.Normal:
                // m_ServerState.SetSprite("XT_FWQ_TB2");
                // m_ServerStateDescription.text = Language.GetFromLocal(28);
                m_ServerState.SetSprite("XT_FWQ_TB2");
                m_ServerStateDescription.text = Language.GetFromLocal(28);
                break;
            case ServerState.Busy:
                // m_ServerState.SetSprite("XT_FWQ_TB3");
                // m_ServerStateDescription.text = Language.GetFromLocal(27);
                m_ServerState.SetSprite("XT_FWQ_TB3");
                m_ServerStateDescription.text = Language.GetFromLocal(27);
                break;
            case ServerState.Hot:
                // m_ServerState.SetSprite("XT_FWQ_TB1");
                // m_ServerStateDescription.text = Language.GetFromLocal(26);
                m_ServerState.SetSprite("XT_FWQ_TB1");
                m_ServerStateDescription.text = Language.GetFromLocal(26);
                break;
        }
    }
    private void ChangeUserInfo(string user)
    {
        // m_Account.text = user;
        m_Account.text = user;
    }
    private void OnServerListRefresh()
    {
        // m_WaitServerList.SetActive(!ServerListCenter.Instance.serverListGot);
        // m_ContainerEnterGame.SetActive(ServerListCenter.Instance.serverListGot);
        // m_ContainerAccount.SetActive(ServerListCenter.Instance.serverListGot
        //     && (VersionConfig.Get().versionAuthority == VersionAuthority.InterTest || VersionConfig.Get().isBanShu));
        m_WaitServerList.SetActive(!ServerListCenter.Instance.serverListGot);
        m_ContainerEnterGame.SetActive(ServerListCenter.Instance.serverListGot);
        m_ContainerAccount.SetActive(ServerListCenter.Instance.serverListGot
            && (VersionConfig.Get().versionAuthority == VersionAuthority.InterTest || VersionConfig.Get().isBanShu));
    }
    protected virtual void EnterGame()
    {
        if (!checkRead.isOn)
        {
            //  TODO YYL
            // ConfirmCancel.ShowPopConfirm(Language.Get("agreementTitle"), Language.Get("agreementInfo"));
            ConfirmCancel.ShowPopConfirm(Language.Get("agreementTitle"), Language.Get("agreementInfo"));
            LocalSave.SetBool("tqsecretToggle", false); //方便测试
            return;
        }
@@ -253,19 +260,8 @@
    }
    protected void QQLogin()
    {
        SDKUtils.Instance.TencentLogin("Login");
    }
    protected void WXLogin()
    {
        SDKUtils.Instance.TencentLogin("Loginwx");
    }
    private void OpenServerListWin()
    {
        // TODO YYL
        UIManager.Instance.OpenWindow<ServerListWin>();
    }
@@ -280,12 +276,11 @@
        GameNotice.OpenGameNoticeForce();
    }
    private void OpenUserHelp()
    {
         // TODO YYL
        // UIManager.Instance.OpenWindow<UserHelpWin>();
    }
    //private void OpenUserHelp()
    //{
    //    //  TODO YYL
    //    // UIManager.Instance.OpenWindow<UserHelpWin>();
    //}
    protected void Login()
    {
@@ -311,12 +306,11 @@
        {
            switch ((ServerState)ServerListCenter.Instance.currentServer.running_status)
            {
                //  TODO YYL
                case ServerState.Maintain:
                    // SysNotifyMgr.Instance.ShowTip("ServerDown");
                    SysNotifyMgr.Instance.ShowTip("ServerDown");
                    break;
                case ServerState.Predicted:
                    // SysNotifyMgr.Instance.ShowTip("ServerOpen", ServerListCenter.Instance.currentServer.start_date.ToString("yyyy-MM-dd HH:mm"));
                    SysNotifyMgr.Instance.ShowTip("ServerOpen", ServerListCenter.Instance.currentServer.start_date.ToString("yyyy-MM-dd HH:mm"));
                    break;
            }
@@ -330,8 +324,7 @@
                case VersionAuthority.InterTest:
                    if (string.IsNullOrEmpty(m_Account.text))
                    {
                        // TODO YYL
                        // ServerTipDetails.DisplayNormalTip(Language.Get("L1095"));
                        ServerTipDetails.DisplayNormalTip(Language.Get("L1095"));
                        return;
                    }
@@ -348,4 +341,52 @@
        }
    }
    public void CleanCache()
    {
        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
        Language.Get("CleanCache2"), (bool isOk) =>
        {
            if (isOk)
            {
                try
                {
                    LocalSave.DeleteAll();
                    // 获取persistentDataPath下的所有文件和文件夹
                    string[] files = Directory.GetFiles(ResourcesPath.Instance.ExternalStorePath);
                    string[] dirs = Directory.GetDirectories(ResourcesPath.Instance.ExternalStorePath);
                    // 删除所有文件
                    foreach (string file in files)
                    {
                        File.Delete(file);
                    }
                    // 递归删除所有文件夹
                    foreach (string dir in dirs)
                    {
                        Directory.Delete(dir, true);
                    }
                }
                catch (System.Exception e)
                {
                    Debug.LogError("Failed to clean persistent data: " + e.Message);
                }
                finally
                {
                    Clock.AlarmAfter(0.1f, () =>
                    {
                        Application.Quit();
                    });
                    Debug.Log("Persistent data cleaned.");
                }
            }
        });
    }
}