Beispiel #1
0
    IEnumerator InitData()
    {
        UIManager.Inst.Clear();
        Res.Inst.Release();
        yield return(new WaitForSeconds(0.1f));

        //登陆
        LoginManager.Inst.Login();
        while (LoginManager.Inst.loginStatus == LoginManager.LoginStatus.LOGINING)
        {
            yield return(null);
        }
        DataManager.Inst.SetDefaultValue();
        GamePatcher.Patcher();
        ServerDataManager.Inst.Init();
        SceneLoadManager.Inst.LoadScene(SceneName.HomeScene);
        TableBI.InitTime(LoginManager.Inst.InitStepCostTime);
    }
Beispiel #2
0
        /// <summary>
        /// 获取最新的版本信息
        /// </summary>
        /// <param name="upgradeInfo"></param>
        /// <returns></returns>
        public IEnumerator Upgrade(GameController.UpgradeInfo upgradeInfo)
        {
            //yield break;
            if (!AssetBundleConfig.Inst.UseAssetBundle)
            {
                yield break;
            }

            //请求服务器版本信息
            bool            finishCheckVersion = false;
            DataContainer   dataContainer      = new DataContainer();
            VersionInfoBody vb = new VersionInfoBody(URLConfig.AppVersion);

            vb.assetVersion = this._versionInfo.Version;
            HttpRequestTool.SendMessage(vb,
                                        (sucessData) =>
            {
                DebugUtil.Log("appversion sucess:" + sucessData);
                JSONNode jsonNode = JSONNode.Parse(sucessData);
                latestAssetUrl    = jsonNode["assetUrl"];
                if (string.IsNullOrEmpty(assetUrl))
                {
                    assetUrl = latestAssetUrl;
                }

                if (upgradeInfo != null)
                {
                    upgradeInfo.appUrl   = jsonNode["appUrl"];
                    upgradeInfo.assetUrl = latestAssetUrl;

                    upgradeInfo.assetUpdateType = jsonNode["assetUpdateType"];
                    upgradeInfo.appUpdateType   = jsonNode["appUpdateType"];

                    upgradeInfo.appVersion   = jsonNode["appVersion"];
                    upgradeInfo.assetVersion = jsonNode["assetVersion"];

                    if (upgradeInfo.appUpdateType == 1 || upgradeInfo.appUpdateType == 2)
                    {
                        upgradeInfo.noticeTitle   = jsonNode["appNotice"]["noticeTitle"];
                        upgradeInfo.noticeContent = jsonNode["appNotice"]["noticeContent"];
                        TableBI.Version_Updating(vb.appVersion, upgradeInfo.appVersion, vb.assetVersion, upgradeInfo.assetVersion);
                    }
                    else if (upgradeInfo.assetUpdateType == 1)
                    {
                        upgradeInfo.noticeTitle   = jsonNode["assetNotice"]["noticeTitle"];
                        upgradeInfo.noticeContent = jsonNode["assetNotice"]["noticeContent"];
                        TableBI.Version_Updating(vb.appVersion, upgradeInfo.appVersion, vb.assetVersion, upgradeInfo.assetVersion);
                    }
                }
                finishCheckVersion = true;
            },
                                        (failData) =>
            {
                DebugUtil.LogError("appversion fail:" + failData);
                finishCheckVersion = true;
            }, null, false);


            //等待版本信息
            while (!finishCheckVersion)
            {
                yield return(null);
            }
        }
Beispiel #3
0
    private IEnumerator OnReceiveServerData(string playData, string uid, Action <bool> callback = null)
    {
        if (!string.IsNullOrEmpty(playData))
        {
            JSONNode storageJson = JSONNode.Parse(playData);
            if (storageJson != null && storageJson["StorageAccountInfo"] != null)
            {
                int    storageVersion = storageJson["StorageAccountInfo"]["_StorageVersion"];
                int    storageId      = storageJson["StorageAccountInfo"]["_StorageId"];
                string storageDevId   = storageJson["StorageAccountInfo"]["_DevId"];

                int    localStorageVersion = StorageManager.Inst.GetStorage <StorageAccountInfo>().StorageVersion;
                int    localStorageId      = StorageManager.Inst.GetStorage <StorageAccountInfo>().StorageId;
                string localDevid          = StorageManager.Inst.GetStorage <StorageAccountInfo>().DevId;

                if (string.IsNullOrEmpty(localDevid))
                {
                    //本地没有数据,自动使用服务端数据
                    StorageManager.Inst.SetData(playData, false);
                }
                else if (storageVersion > localStorageVersion)
                {
                    //服务端版本更高,则用服务端数据
                    StorageManager.Inst.SetData(playData, false);
                }
                else
                {
                    //使用本地数据
                }



                // else if (localDevid == storageDevId)
                // {
                //     //自动使用本地数据
                // }
                // else
                // {
                //     //用户选择是否覆盖,(数据设备号不一样)
                //     //UISelectGameData uiSelectGameData = UIManager.Inst.ShowUI(UIModuleEnum.UISelectGameData) as UISelectGameData;
                //     //while (!UISelectGameData.close)
                //     //{
                //     //    yield return null;
                //     //}
                //
                //     //try
                //     //{
                //     //    if (UISelectGameData.selectedServer)
                //     //    {
                //     //        StorageManager.Inst.SetData(playData);
                //     //    }
                //     //    DebugUtil.Log("=========user server UId:" + StorageManager.Inst.GetStorage<StorageAccountInfo>().Uid);
                //     //}
                //     //catch (Exception e)
                //     //{
                //     //    DebugUtil.LogError("LoginManager.OnReceiveServerData fail: " + playData);
                //     //}
                // }

                SetDevidAndUid(uid);
            }
        }
        else
        {
            SetDevidAndUid(uid);
        }

        TableBI.Login(SystemClock.Now);
        loginStatus = LoginStatus.LOGINSUCESS;
        if (callback != null)
        {
            callback.Invoke(true);
        }
        ReSendNeedSessionHttpPacket();
        yield break;
    }