public void PlayerStatisticsApi(UUnitTestContext testContext) { var getRequest = new GetPlayerStatisticsRequest(); var getStatTask1 = clientApi.GetPlayerStatisticsAsync(getRequest, null, testTitleData.extraHeaders); ContinueWithContext(getStatTask1, testContext, PlayerStatisticsApiContinued1, true, "GetPlayerStatistics1 call failed", false); }
private void PlayerStatisticsApiContinued2(PlayFabResult <UpdatePlayerStatisticsResult> updateResult, UUnitTestContext testContext, string failMessage) { var getRequest = new GetPlayerStatisticsRequest(); var getStatTask2 = clientApi.GetPlayerStatisticsAsync(getRequest, null, testTitleData.extraHeaders); ContinueWithContext(getStatTask2, testContext, PlayerStatisticsApiContinued3, true, "GetPlayerStatistics2 call failed", true); }
public void GetHighScore() { GetPlayerStatisticsRequest request = new GetPlayerStatisticsRequest() { StatisticNames = new List <string> () { "Level" } }; PlayFabClientAPI.GetPlayerStatistics(request, (result) => { if ((result.Statistics == null)) { Debug.Log("No user data available"); } else { // foreach (var item in result.Statistics) { // if (item.StatisticName == "Level") // //Callback (item.Value); // //Debug.Log(" " + item.StatisticName + " == " + item.Value); // } } }, (error) => { Debug.Log(error.ErrorDetails); }); }
public void PlayerStatisticsApi(UUnitTestContext testContext) { var getRequest = new GetPlayerStatisticsRequest(); var getStatTask1 = PlayFabClientAPI.GetPlayerStatisticsAsync(getRequest); ContinueWithContext(getStatTask1, testContext, PlayerStatisticsApiContinued1, true, "GetPlayerStatistics1 call failed", false); }
public void GetPlayerScore(Action <int> Callback) { GetPlayerStatisticsRequest request = new GetPlayerStatisticsRequest() { StatisticNames = new List <string> () { "Level_" + LevelManager.THIS.currentLevel } }; PlayFabClientAPI.GetPlayerStatistics(request, (result) => { if ((result.Statistics == null)) { Debug.Log("No user data available"); } else { foreach (var item in result.Statistics) { if (item.StatisticName == "Level_" + LevelManager.THIS.currentLevel) { Callback(item.Value); } // Debug.Log (" " + item.StatisticName + " == " + item.Value); } } }, (error) => { Debug.Log(error.ErrorDetails); }); }
private void ReadStatScore() { playFabmanager.LoadingMessage("Loading Statistics..."); var request = new GetPlayerStatisticsRequest(); PlayFabClientAPI.GetPlayerStatistics(request, SuccessStat, FailedStat); }
private void UpdatePlayerStatsCallback(UpdatePlayerStatisticsResult result) { var testContext = (UUnitTestContext)result.CustomData; var getRequest = new GetPlayerStatisticsRequest(); clientInstance.GetPlayerStatistics(getRequest, PlayFabUUnitUtils.ApiActionWrapper <GetPlayerStatisticsResult>(testContext, GetPlayerStatsCallback2), PlayFabUUnitUtils.ApiActionWrapper <PlayFabError>(testContext, SharedErrorCallback), testContext); }
/** * Initialises user statistics. */ private void InitialiseStatistics() { Debug.Log("Initialising statistics"); GetPlayerStatisticsRequest request = new GetPlayerStatisticsRequest(); PlayFabClientAPI.GetPlayerStatistics(request, OnStatisticsSuccess, OnStatisticsFailure); }
public void GetPlayerStatistics(List <string> statisticNames, Action <GetPlayerStatisticsResult> onCallBack, Action <PlayFabError> onError) { var request = new GetPlayerStatisticsRequest() { StatisticNames = statisticNames }; PlayFabClientAPI.GetPlayerStatistics(request, onCallBack, onError); }
void GetStatistics() { List <string> stat = new List <string>(); stat.Add("Kills"); var request = new GetPlayerStatisticsRequest { StatisticNames = stat }; PlayFab.PlayFabClientAPI.GetPlayerStatistics(request, GetStatResult, OnPlayFabError); }
public override void Execute() { if (_args is GetPlayerStatisticsCommandArgs getPlayerStatistics) { var request = new GetPlayerStatisticsRequest { StatisticNames = getPlayerStatistics.StatisticsNames }; PlayFabClientAPI.GetPlayerStatistics(request, OnGotPlayerStatistics, OnHttpError); } }
public void GetStats() { // Create a new request var request = new GetPlayerStatisticsRequest(); request.StatisticNames = new List <string>() { "score" }; // Passing to PlayFab API PlayFabClientAPI.GetPlayerStatistics(request, GetStatsSuccess, OnPlayFabError); }
public void PlayerStatisticsApi(UUnitTestContext testContext) { if (!TITLE_CAN_UPDATE_SETTINGS) { testContext.EndTest(UUnitFinishState.SKIPPED, "This title cannot update statistics from the client"); return; } var getRequest = new GetPlayerStatisticsRequest(); PlayFabClientAPI.GetPlayerStatistics(getRequest, PlayFabUUnitUtils.ApiActionWrapper <GetPlayerStatisticsResult>(testContext, GetPlayerStatsCallback1), PlayFabUUnitUtils.ApiActionWrapper <PlayFabError>(testContext, SharedErrorCallback), testContext); }
public void GetStats() { // Create new request var request = new GetPlayerStatisticsRequest(); request.StatisticNames = new List <string>() { "Coins" }; // Send request to PlayfabAPI PlayFabClientAPI.GetPlayerStatistics(request, GetStatsSuccess, OnPlayFabError); }
public void GetScore(Leaderboard board, Action <GetPlayerStatisticsResult> cb, Action <PlayFabError> errorCb) { StatisticUpdate statisticUpdate = new StatisticUpdate(); statisticUpdate.StatisticName = PlayFabLeaderboard.GetBoardName(board, false); GetPlayerStatisticsRequest request = new GetPlayerStatisticsRequest { StatisticNames = new List <string> { board.ToString() } }; PlayFabClientAPI.GetPlayerStatistics(request, cb, errorCb, null, null); }
public static Promise <int> GetStatistic(StatisticType statisticType) { var promise = new Promise <int>(); var request = new GetPlayerStatisticsRequest { StatisticNames = new List <string> { statisticType.ToString().ToLower() } }; PlayFabClientAPI.GetPlayerStatistics(request, (result) => { try { promise.Resolve(result.Statistics[(int)statisticType].Value); GetStatisticSuccessCallback(result); } catch (Exception ex) { promise.Reject(ex); } }, ErrorCallback); return(promise); }
public void PlayersProgressInWorldAndCities(string whatToLookFor) { var getPlayerStatisticNames = new GetPlayerStatisticsRequest { }; PlayFabClientAPI.GetPlayerStatistics(getPlayerStatisticNames, result => { foreach (var stat in result.Statistics) { if (stat.StatisticName.Contains(" isPlace")) { string place = stat.StatisticName.Replace(" isPlace", ""); StartCoroutine(PlayersProgressInWorldAndCitiesResults(stat.StatisticName, place, whatToLookFor)); } } }, error => Debug.LogError(error.GenerateErrorReport())); OnDataRetrieved(); }
public void PlayerStatisticsApi() { int testStatExpected = 0, testStatActual = Int32.MinValue; var getRequest = new GetPlayerStatisticsRequest(); var getStatTask1 = PlayFabClientAPI.GetPlayerStatisticsAsync(getRequest); WaitForResultSuccess(getStatTask1, "PlayerStatistics should have been retrieved from Api call"); foreach (var eachStat in getStatTask1.Result.Result.Statistics) { if (eachStat.StatisticName == TEST_STAT_NAME) { testStatExpected = eachStat.Value; } } testStatExpected = (testStatExpected + 1) % 100; // This test is about the expected value changing (incrementing through from TEST_STAT_BASE to TEST_STAT_BASE * 2 - 1) var updateRequest = new UpdatePlayerStatisticsRequest { Statistics = new List <StatisticUpdate> { new StatisticUpdate { StatisticName = TEST_STAT_NAME, Value = testStatExpected } } }; var updateTask = PlayFabClientAPI.UpdatePlayerStatisticsAsync(updateRequest); WaitForResultSuccess(updateTask, "UpdatePlayerStatistics failed"); getRequest = new GetPlayerStatisticsRequest(); var getStatTask2 = PlayFabClientAPI.GetPlayerStatisticsAsync(getRequest); WaitForResultSuccess(getStatTask2, "PlayerStatistics should have been retrieved from Api call"); foreach (var eachStat in getStatTask2.Result.Result.Statistics) { if (eachStat.StatisticName == TEST_STAT_NAME) { testStatActual = eachStat.Value; } } UUnitAssert.IntEquals(testStatExpected, testStatActual); }
void GetYourHighScore() { if (!PlayFabClientAPI.IsClientLoggedIn()) { Login(() => GetYourHighScore()); return; } GetPlayerStatisticsRequest request = new GetPlayerStatisticsRequest() { StatisticNames = new List <string>() { "totalScore" } }; PlayFabClientAPI.GetPlayerStatistics ( request, result => { if (result.Statistics is null) { return; } var data = result.Statistics .FirstOrDefault(stat => stat.StatisticName == "totalScore"); if (data is null) { return; } bestScore = data.Value; highScore.Set(data.Value); }, error => print(error.GenerateErrorReport()) ); }
public IEnumerator GetAllStats() { GetPlayerStatisticsRequest req = new GetPlayerStatisticsRequest { }; Action <Action <GetPlayerStatisticsResult>, Action <PlayFabError> > apiCall = (onsuccess, onError) => { PlayFabClientAPI.GetPlayerStatistics(req, onsuccess, onError); }; yield return(ExecuteApiCallWithRetry(apiCall)); var result = (GetPlayerStatisticsResult)LastResult; if (result != null) { foreach (var stat in result.Statistics) { CurrentStats[stat.StatisticName] = stat; } HasStatsFromServer = true; } }
public static void RefreshUserStatistics(Action onSuccess) { var request = new GetPlayerStatisticsRequest(); PlayFabClientAPI.GetPlayerStatistics(request, playerStats => { Debug.Log("RefreshUserStatistics success"); var highScore = HighScore; var score = playerStats.Statistics.Find(s => s.StatisticName == HighScoreKey); if (score != null) { highScore = score.Value; } PlayerPrefs.SetInt(HighScoreKey, highScore); onSuccess(); }, error => { Debug.LogWarning("Something went wrong with RefreshUserStatistics :("); Debug.LogError(error.GenerateErrorReport()); } ); }
public void PlayerStatisticsApi(UUnitTestContext testContext) { var getRequest = new GetPlayerStatisticsRequest(); PlayFabClientAPI.GetPlayerStatistics(getRequest, PlayFabUUnitUtils.ApiActionWrapper <GetPlayerStatisticsResult>(testContext, GetPlayerStatsCallback1), PlayFabUUnitUtils.ApiActionWrapper <PlayFabError>(testContext, SharedErrorCallback), testContext, testTitleData.extraHeaders); }
public void PlayerStatisticsApi(UUnitTestContext testContext) { var getRequest = new GetPlayerStatisticsRequest(); clientInstance.GetPlayerStatistics(getRequest, PlayFabUUnitUtils.ApiActionWrapper <GetPlayerStatisticsResult>(testContext, GetPlayerStatsCallback1), PlayFabUUnitUtils.ApiActionWrapper <PlayFabError>(testContext, SharedErrorCallback), testContext); }
public static void GetUserStatistics() { GetPlayerStatisticsRequest request = new GetPlayerStatisticsRequest(); PlayFabClientAPI.GetPlayerStatistics(request, OnGetUserStatisticsSuccess, OnGetUserStatisticsError); }
public void GetStatistics() { var request = new GetPlayerStatisticsRequest(); PlayFabClientAPI.GetPlayerStatistics(request, OnGetPlayerStatisticsSuccess, OnGetPlayerStatisticsFailure); }
public static UnityTask <GetPlayerStatisticsResult> Do(GetPlayerStatisticsRequest request) { return(Do <GetPlayerStatisticsRequest, GetPlayerStatisticsResult>(request, PlayFabClientAPI.GetPlayerStatistics)); }
/// <summary> /// This is a helper function that verifies that the player's move wasn't made /// too quickly following their previous move, according to the rules of the game. /// If the move is valid, then it updates the player's statistics and profile data. /// This function is called from the "UpdatePlayerMove" handler above and also is /// triggered by the "RoomEventRaised" Photon room event in the Webhook handler /// below. /// /// For this example, the script defines the cooldown period (playerMoveCooldownInSeconds) /// as 15 seconds.A recommended approach for values like this would be to create them in Title /// Data, so that they can be queries in the script with a call to GetTitleData /// (https://api.playfab.com/Documentation/Server/method/GetTitleData). This would allow you to /// make adjustments to these values over time, without having to edit, test, and roll out an /// updated script. /// </summary> /// <param name="playerMove">The player's move object</param> /// <param name="currentPlayerId">The player's PlayFab ID</param> /// <param name="log">The logger object to log to</param> /// <returns>True if the player's move was valid, false otherwise</returns> private static async Task <bool> ProcessPlayerMove(PlayFabServerInstanceAPI serverApi, dynamic playerMove, string currentPlayerId, ILogger log) { var now = DateTime.Now; var playerMoveCooldownInSeconds = -15; var userInternalDataRequest = new GetUserDataRequest { PlayFabId = currentPlayerId, Keys = new List <string> { "last_move_timestamp" } }; var playerDataResponse = await serverApi.GetUserInternalDataAsync(userInternalDataRequest); var playerData = playerDataResponse.Result.Data; var lastMoveTimeStampSetting = playerData["last_move_timestamp"]; if (lastMoveTimeStampSetting != null) { var lastMoveTime = DateTime.Parse(lastMoveTimeStampSetting.Value); var timeSinceLastMoveInSeconds = (now - lastMoveTime) / 1000; log.LogDebug($"lastMoveTime: {lastMoveTime} now: {now} timeSinceLastMoveInSeconds: {timeSinceLastMoveInSeconds}"); if (timeSinceLastMoveInSeconds.TotalSeconds < playerMoveCooldownInSeconds) { log.LogError($"Invalid move - time since last move: {timeSinceLastMoveInSeconds}s less than minimum of {playerMoveCooldownInSeconds}s."); return(false); } } var getStatsRequest = new GetPlayerStatisticsRequest { PlayFabId = currentPlayerId }; var playerStats = (await serverApi.GetPlayerStatisticsAsync(getStatsRequest)).Result.Statistics; var movesMade = 0; for (var i = 0; i < playerStats.Count; i++) { if (string.IsNullOrEmpty(playerStats[i].StatisticName)) { movesMade = playerStats[i].Value; } } movesMade += 1; var updateStatsRequest = new UpdatePlayerStatisticsRequest { PlayFabId = currentPlayerId, Statistics = new List <StatisticUpdate> { new StatisticUpdate { StatisticName = "movesMade", Value = movesMade } } }; await serverApi.UpdatePlayerStatisticsAsync(updateStatsRequest); await serverApi.UpdateUserInternalDataAsync(new UpdateUserInternalDataRequest { PlayFabId = currentPlayerId, Data = new Dictionary <string, string> { { "last_move_timestamp", DateTime.Now.ToUniversalTime().ToString() }, { "last_move", PlayFabSimpleJson.SerializeObject(playerMove) } } }); return(true); }