少年修仙传客户端代码仓库
client_Wu Xijin
2018-12-18 e9e14ae5ed35a21687522145b3f053018c65280e
5434 【1.4】 新增资源检测逻辑
3个文件已修改
120 ■■■■■ 已修改文件
Core/GameEngine/Login/LoginStage.cs 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/AssetVersion/AssetVersionUtility.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ClientVersion/VersionUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/LoginStage.cs
@@ -10,6 +10,9 @@
    public override void Initialize()
    {
        base.Initialize();
        checkClientTimer = Time.time + 60f;
        checkAssetVersionTimer = Time.time + 70f;
        WindowCenter.Instance.Open<LaunchBackGroundWin>(true);
        var backGroundWin = WindowCenter.Instance.Get<LaunchBackGroundWin>();
@@ -59,14 +62,123 @@
        }
        MapTransferUtility.Instance.Clear();
        PreFightMission.Instance.Destroy();
    }
    public override void UnInitialize()
    {
        StopAllCoroutines();
        base.UnInitialize();
    }
    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;
            ConfirmCancel.ShowPopConfirm(
                Language.Get("Mail101"),
                Language.GetFromLocal(35),
                   () =>
                   {
                       switch (Application.platform)
                       {
                           case RuntimePlatform.IPhonePlayer:
                               Application.Quit();
                               break;
                           case RuntimePlatform.Android:
                               SDKUtility.Instance.RestartApp();
                               break;
                           default:
                               break;
                       }
                   }
                );
        }
        else
        {
            checkClientTimer = Time.time + 60f;
        }
    }
    float checkAssetVersionTimer = 0f;
    private void CheckClientAssets()
    {
        if (Time.time > checkAssetVersionTimer)
        {
            checkAssetVersionTimer += Time.time + 5f;
            if (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;
                ConfirmCancel.ShowPopConfirm(
                    Language.Get("Mail101"),
                    Language.GetFromLocal(35),
                       () =>
                       {
                           switch (Application.platform)
                           {
                               case RuntimePlatform.IPhonePlayer:
                                   Application.Quit();
                                   break;
                               case RuntimePlatform.Android:
                                   SDKUtility.Instance.RestartApp();
                                   break;
                               default:
                                   break;
                           }
                       }
                    );
            }
            else
            {
                checkAssetVersionTimer += Time.time + 60f;
            }
        }
        else
        {
            checkAssetVersionTimer += Time.time + 60f;
        }
    }
}
System/AssetVersion/AssetVersionUtility.cs
@@ -10,6 +10,10 @@
[XLua.LuaCallCSharp]
public class AssetVersionUtility
{
    public static string assetVersionsLocalMd5 {
        get { return LocalSave.GetString("AssetVersionsLocalMd5"); }
        set { LocalSave.SetString("AssetVersionsLocalMd5", value); }
    }
    static bool m_HasDownLoadFullAsset = LocalSave.GetBool("HasDownLoadFullAsset");
    public static bool hasDownLoadFullAsset {
@@ -71,6 +75,7 @@
        if (_ok)
        {
            assetVersionsLocalMd5 = FileExtersion.GetStringMD5Hash(_result);
            var assetVersions = UpdateAssetVersions(_result);
            BeginCheckAssets();
        }
System/ClientVersion/VersionUtility.cs
@@ -53,6 +53,7 @@
    public void RequestVersionCheck()
    {
        m_Step = Step.None;
        var tables = new Dictionary<string, string>();
        tables["channel"] = VersionConfig.Get().appId;
        tables["versioncode"] = VersionConfig.Get().version;