using PlayFab.ServerModels; using PlayFab.BuffbaerMuses.Models; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace PlayFab.BuffbaerMuses.Util{ public class StatisticUtil{ public static async Task UpdateStatValue(string playFabId, string statName, int deltaValue){ var apiSettings = new PlayFabApiSettings { TitleId = Environment.GetEnvironmentVariable("PLAYFAB_TITLE_ID", EnvironmentVariableTarget.Process), DeveloperSecretKey = Environment.GetEnvironmentVariable("PLAYFAB_DEV_SECRET_KEY", EnvironmentVariableTarget.Process) }; var serverApi = new PlayFabServerInstanceAPI(apiSettings); var currentStatResult = await serverApi.GetPlayerStatisticsAsync( new GetPlayerStatisticsRequest{ PlayFabId = playFabId, } ); var newValue = deltaValue; var updateStatResult = await serverApi.UpdatePlayerStatisticsAsync( new UpdatePlayerStatisticsRequest{ Statistics = new List<StatisticUpdate>{ new StatisticUpdate{ StatisticName = statName, Value = newValue } }, PlayFabId = playFabId }); } public static async Task CheckStatValue(string playFabId, string statName, int rewardValue){ var apiSettings = new PlayFabApiSettings { TitleId = Environment.GetEnvironmentVariable("PLAYFAB_TITLE_ID", EnvironmentVariableTarget.Process), DeveloperSecretKey = Environment.GetEnvironmentVariable("PLAYFAB_DEV_SECRET_KEY", EnvironmentVariableTarget.Process) }; var serverApi = new PlayFabServerInstanceAPI(apiSettings); var currentStatResult = await serverApi.GetPlayerStatisticsAsync( new GetPlayerStatisticsRequest{ //OnGetStatistics, //error => Debug.Log(error.GenerateErrorReport()) //PlayFabId = playFabId, } ); /*if(currentStatResult == "Premium Choices"){ AddVC(playFabId,50); }*/ /*foreach(var eachStat in currentStatResult){ switch(eachStat.StatisticName){ case "Premium Choices": if(eachStat.Value == 1){ //Reward player 50 coins. //serverApi.AddUserVirtualCurrency(playFabId, VirtualCurrency:"BC", ArgumentOutOfRangeException:"50"); } //Premium Choices function after checking the condition } }*/ } void OnGetStatistics(GetPlayerStatisticsResult result){ } public static async Task AddVC(string playFabId,int vc){ var apiSettings = new PlayFabApiSettings { TitleId = Environment.GetEnvironmentVariable("PLAYFAB_TITLE_ID", EnvironmentVariableTarget.Process), DeveloperSecretKey = Environment.GetEnvironmentVariable("PLAYFAB_DEV_SECRET_KEY", EnvironmentVariableTarget.Process) }; var serverApi = new PlayFabServerInstanceAPI(apiSettings); var request = new AddUserVirtualCurrencyRequest{ PlayFabId = playFabId, VirtualCurrency = "BC", Amount = vc }; var AddUserVirtualCurrencyResult = await serverApi.AddUserVirtualCurrencyAsync(request); } } }
I am trying to access only one of the statistic to check if it hits my condition.
I am not able to do so. Every I have checked, It's always GetPlayerStatisitcs, but as you can see i am using async. How can i get one statistic value?