using System.Collections; using System.Collections.Generic; using UnityEngine; using Snxxz.UI; public class LoginStage : Stage { LoginModel loginModel { get { return ModelCenter.Instance.GetModel(); } } public override void Initialize() { base.Initialize(); checkClientTimer = Time.time + 60f; checkAssetVersionTimer = Time.time + 70f; WindowCenter.Instance.Close(); WindowCenter.Instance.CloseImmediately("MainInterfaceWin"); if (VersionUtility.Instance.InIosAuditTime()) { ServerListCenter.Instance.ParseServerLocalServerList(); } if (VersionConfig.Get().isBanShu) { WindowCenter.Instance.Open(true); } else { WindowCenter.Instance.Open(true); } switch (VersionConfig.Get().versionAuthority) { case VersionAuthority.InterTest: GameNotice.OpenGameNotice(); break; case VersionAuthority.Release: if (!VersionConfig.Get().isBanShu) { if (!loginModel.sdkLogined) { SDKUtility.Instance.FreePlatformLogin(); OperationLogCollect.Instance.RecordLauchEvent(4); OperationLogCollect.Instance.RecordEvent(4); } } break; } SoundPlayer.Instance.PlayLoginMusic(); if (VersionUtility.Instance.NeedDownAsset() && !AssetVersionUtility.hasDownLoadFullAsset) { InGameDownLoad.Instance.inGameDownLoadAllow = true; InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.None); } MapTransferUtility.Instance.Clear(); } public override void UnInitialize() { StopAllCoroutines(); base.UnInitialize(); } protected override void OnStageLoadFinish() { base.OnStageLoadFinish(); if (ServerForceExitHintWin.reason != 0) { WindowCenter.Instance.Open(); } } protected override void OnLateUpdate() { base.OnLateUpdate(); CheckClientVersion(); CheckClientAssets(); } float checkClientTimer = 0f; private void CheckClientVersion() { if (Time.time > checkClientTimer) { checkClientTimer = Time.time + 60f; StopCoroutine("Co_RequestGetVersionInfo"); StartCoroutine("Co_RequestGetVersionInfo"); } } private IEnumerator Co_RequestGetVersionInfo() { VersionUtility.Instance.RequestVersionCheck(); while (!VersionUtility.Instance.completed) { yield return null; } if (VersionUtility.Instance.versionInfo != null && VersionUtility.Instance.versionInfo.VersionCount > 0) { checkClientTimer = Time.time + 60000f; WindowCenter.Instance.Open(); } else { checkClientTimer = Time.time + 60f; } } float checkAssetVersionTimer = 0f; private void CheckClientAssets() { if (Time.time > checkAssetVersionTimer) { checkAssetVersionTimer += Time.time + 5f; var check = true; if (Application.platform == RuntimePlatform.IPhonePlayer && VersionUtility.Instance.InIosAuditTime()) { check = false; } if (check && VersionUtility.Instance.NeedDownAsset()) { checkAssetVersionTimer += Time.time + 10f; var assetVersionUrl = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), "/", "AssetsVersion.txt"); HttpRequest.Instance.RequestHttpGet(assetVersionUrl, HttpRequest.defaultHttpContentType, 3, OnGetAssetVersionFile); } } } private void OnGetAssetVersionFile(bool ok, string result) { if (ok) { var md5 = FileExtersion.GetStringMD5Hash(result); if (AssetVersionUtility.assetVersionsLocalMd5 != md5) { checkAssetVersionTimer += Time.time + 36000f; WindowCenter.Instance.Open(); } else { checkAssetVersionTimer += Time.time + 60f; } } else { checkAssetVersionTimer += Time.time + 60f; } } }