//[SerializeField] //IVTweenPopUp popUpAnimation; void Start() { //testin statistics PlayfabUtils.Instance.GetPlayerStatistics(null, (res) => { FMPlayfabUserStatistics.StoreItemsFromJson(res); }, OnError); }
public void FilterResult(ExecuteCloudScriptResult result) { Bonuses.Clear(); //Debug.Log(PlayFabSimpleJson.SerializeObject(result.FunctionResult)); JSONNode jsonResult = JSON.Parse(result.FunctionResult.ToString()); //Debug.Log(jsonResult); if ((jsonResult.Value.Equals("null") || result.Error != null)) { //status = FMRewardStatus.error; return; } //get logi_count statistic logCountStatistic = FMPlayfabUserStatistics.GetStatisticProgress("login_count"); RemainingHours = jsonResult["remainingHour"] == null ? 0 : jsonResult["remainingHour"].AsInt; int logCount = jsonResult["login_count"] == null ? logCountStatistic : jsonResult["login_count"].AsInt;; //if there's daily bonus string dailyRewardKey = jsonResult["daily_reward"]; if (!string.IsNullOrEmpty(dailyRewardKey)) { TodayReward = FMPlayfabReward.GetRewardFromKey(dailyRewardKey); } for (int i = 0; i < jsonResult["BonusResult"].AsArray.Count; i++) { string rewardKey = jsonResult["BonusResult"].AsArray[i]["reward_key"]; FMRewardItem reward = FMPlayfabReward.GetRewardFromKey(rewardKey); FMLoginBonusState state; if (logCount > i) { state = FMLoginBonusState.Claimed; } else if (logCount == i) { state = FMLoginBonusState.Today; } else { state = FMLoginBonusState.Unclaimed; } Bonuses.Add(new FMLoginBonusItem(i, reward, state)); //var ri = new FMRewardItem(rewardKey, rewardType, rewardValue, rewardValue); //ClaimedRewards.Add(ri); } }
public void UpdateData() { //update progress bar CurrentIndex = FMPlayfabUserAchievement.Instance.GetUserAchievementFromKey(Key).CurrenIndex; amountRequired = Achievement.AmountRequired[CurrentIndex]; int progress = FMPlayfabUserStatistics.GetStatisticProgress(Achievement.Statistic); progress = Mathf.Clamp(progress, 0, amountRequired); ProgressBar.gameObject.SetActive(true); ProgressBar.value = (float)progress / (float)amountRequired; labProgress.text = +progress + " / " + amountRequired; ProgressBar.gameObject.SetActive(false); //update levels FMUserAchievement uachv = FMPlayfabUserAchievement.Instance.GetUserAchievementFromKey(Key); States = uachv.States; for (int i = 0; i < uachv.States.Length; i++) { UISprite levelSprite = levelGrid.GetChildList()[i].gameObject.GetComponent <UISprite>(); levelSprite.color = States[i] == FMAchievementState.Claimed ? colorAchievedLv : colorUnAchievedLv; } levelGrid.Reposition(); //if we got a new reward if (progress >= Achievement.AmountRequired[CurrentIndex]) { buttonReward.isEnabled = true; buttonReward.state = UIButtonColor.State.Normal; buttonReward.defaultColor = new Color32(188, 179, 84, 255); ProgressBar.gameObject.SetActive(false); buttonReward.GetComponentInChildren <UILabel>().text = "Get Reward"; } //if it's not enough, display progress bar else if (States[CurrentIndex] == FMAchievementState.Locked || (States[CurrentIndex] == FMAchievementState.Claimed && CurrentIndex < States.Length)) { buttonReward.isEnabled = false; buttonReward.disabledColor = new Color32(125, 134, 135, 255); ProgressBar.gameObject.SetActive(true); } //if it's the last one, set as claimed if (uachv.States[uachv.States.Length - 1] == FMAchievementState.Claimed) { SetRewardAsClaimed(); } }
void OnLoginSuccess(LoginResult res) { //get display name PlayFabClientAPI.GetAccountInfo(new GetAccountInfoRequest() { PlayFabId = res.PlayFabId }, result => { ClientSessionData.Instance.UserName = result.AccountInfo.TitleInfo.DisplayName; labUser.text = result.AccountInfo.TitleInfo.DisplayName; }, error => { Debug.Log("error on get account info"); }); //get currency PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest(), resInventory => { int CO = 0; int PC = 0; resInventory.VirtualCurrency.TryGetValue("CO", out CO); resInventory.VirtualCurrency.TryGetValue("PC", out PC); labCurrencyCO.text = CO.ToString(); labCurrencyPC.text = PC.ToString(); ClientSessionData.Instance.currencyCO = CO; ClientSessionData.Instance.currencyPC = PC; } , error => { Debug.Log("error on get currency info"); }); //statistics PlayfabUtils.Instance.GetPlayerStatistics(null, statRes => { FMPlayfabUserStatistics.StoreItemsFromJson(statRes); ClientSessionData.Instance.Statistics = FMPlayfabUserStatistics.Items; }, error => { Debug.Log("error on getting statistics"); }); //getting reward and achievement list PlayfabUtils.Instance.GetTitleData(new List <string> { "fm_achievements", "fm_rewards" }, titleRes => { FMPlayfabAchievements.Instance.StoreItemsFromJson(titleRes); FMPlayfabReward.StoreItemsFromJson(titleRes); ClientSessionData.Instance.Achievements = FMPlayfabAchievements.Items; ClientSessionData.Instance.Rewads = FMPlayfabReward.Items; Debug.Log("got achievments " + ClientSessionData.Instance.Achievements.Count); Debug.Log("got rewards " + ClientSessionData.Instance.Rewads.Count); //LOGIN BONUS FMPlayfabLoginBonus.Instance.CheckLoginBonus(); }, error => { Debug.Log("error on get title info"); }); //get catalogItems PlayFabClientAPI.GetCatalogItems(new GetCatalogItemsRequest(), catalogRes => { ClientSessionData.Instance.CatalogItems = catalogRes.Catalog; //DisplayUserItems(catalogRes.Catalog); Debug.Log("got catalog" + ClientSessionData.Instance.CatalogItems.Count); } , error => { Debug.Log("error on get catalog info"); }); //get user Achievement //PlayfabUtils.Instance.GetUserReadOnlyData(new List<string> { "fm_user_achievements" }, result =>{ // FMPlayfabUserAchievement.Instance.StoreItemsFromJson(result); // ClientSessionData.Instance.UserAchievements = FMPlayfabUserAchievement.Items; // Debug.Log("got user achivements " + ClientSessionData.Instance.UserAchievements.Count); //}, error => { Debug.Log("error on getting read only data"); }); //var request = new GetUserDataRequest() //{ // Keys = new List<string>() { "fm_user_achievements"} //}; //PlayFabClientAPI.GetUserReadOnlyData(request, result => //{ // Debug.Log("los achievements " + result.ToJson().ToString()); // //ClientSessionData.Instance.UserAchievements = //}, OnLoginFailure); }
/// <summary> /// nesting so many callbacks is not that good practice, but for the sake of /// keeping it sinchronous, we'll do it just this one time /// </summary> /// <param name="logResult"></param> void OnLoginSuccess(LoginResult logResult) { List <ItemInstance> inventoryItems = new List <ItemInstance>(); //get display name PlayFabClientAPI.GetAccountInfo(new GetAccountInfoRequest() { PlayFabId = logResult.PlayFabId }, result => { ClientSessionData.Instance.PlayfabID = logResult.PlayFabId; ClientSessionData.Instance.UserName = result.AccountInfo.TitleInfo.DisplayName; labLoading.text = "... Loading user info ..."; progress += 0.20f; total += progress; //get currency PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest(), resInventory => { //currency int CO = 0; int PC = 0; resInventory.VirtualCurrency.TryGetValue("CO", out CO); resInventory.VirtualCurrency.TryGetValue("PC", out PC); ClientSessionData.Instance.currencyCO = CO; ClientSessionData.Instance.currencyPC = PC; //inventory inventoryItems = resInventory.Inventory; labLoading.text = "... Loading Inventory ..."; progress += 0.20f; //total += progress; //statistics PlayfabUtils.Instance.GetPlayerStatistics(null, statRes => { FMPlayfabUserStatistics.StoreItemsFromJson(statRes); ClientSessionData.Instance.Statistics = FMPlayfabUserStatistics.Items; labLoading.text = "... Loading User Statistics ..."; progress += 0.20f; total += progress; //get title Data PlayfabUtils.Instance.GetTitleData(new List <string> { "fm_achievements", "fm_rewards" }, titleRes => { FMPlayfabAchievements.Instance.StoreItemsFromJson(titleRes); FMPlayfabReward.StoreItemsFromJson(titleRes); ClientSessionData.Instance.Achievements = FMPlayfabAchievements.Items; ClientSessionData.Instance.Rewads = FMPlayfabReward.Items; labLoading.text = "... Loading Title Data ..."; progress += 0.20f; total += progress; //get catalogItems PlayFabClientAPI.GetCatalogItems(new GetCatalogItemsRequest(), catalogRes => { ClientSessionData.Instance.CatalogItems = catalogRes.Catalog; //crossing CatalogItem and ItemInstance items FMPlayFabInventory.StoreItemsFromPlayfab(catalogRes.Catalog, inventoryItems); ClientSessionData.Instance.InventoryItems = FMPlayFabInventory.Items; //TODO cross catalog and instance items; labLoading.text = "... Loading Catalog Items ..."; progress += 0.20f; total += progress; } , error => { Debug.Log("error on get catalog info"); }); //end catalog }, error => { Debug.Log("error on get title info"); }); //end get title }, error => { Debug.Log("error on getting statistics"); }); //end get Statistics } , error => { Debug.Log("error on get currency info"); }); //end get currency }, error => { Debug.Log("error on get account info"); }); //end get account info }