I get an error message when I want to update my leaderboard in CloudScript:
"apiError": { "code": 400, "status": "BadRequest", "error": "InvalidParams", "errorCode": 1000, "errorMessage": "Invalid input parameters", "errorHash": null, "errorDetails": { "Statistics": [ "The Statistics field is required." ] }
Is something wrong with this code?
var result = server.UpdatePlayerStatistics({ PlayFabId: currentPlayerId, Statistics : { StatisticName : leaderboardname, Value : score } });
In addition, how can I get the player’s highscore in CloudScript when I call server.GetLeaderboard? I don't know how to get the highscore from resultleaderboard in CloudScript.
if ((resultleaderboard != null) && (resultleaderboard.Error == null)) return "Your highscore: " + resultleaderboard.;
CloudScript:
handlers.UpdateLeaderboard = function (args, context) { var AddScore = UpdatePlayerScore(args.Leaderboardname, args.Playerscore); if (AddScore.leaderboardupdated == true) log.info("User statistics updated."); else log.info("Could not update statistics."); var resultleaderboard = server.GetLeaderboard( { PlayFabID: currentPlayerId, StatisticName : args.Leaderboardname, ProfileConstraints: { ShowDisplayName : true } }); //How can I get the player's highscore? if ((resultleaderboard != null) && (resultleaderboard.Error == null)) return "Your highscore: ..."; else return "Something went wrong. Could not get leaderboard highscore." } function UpdatePlayerScore(leaderboardname, score) { var result = server.UpdatePlayerStatistics({ PlayFabId: currentPlayerId, Statistics : { StatisticName : leaderboardname, Value : score } }); if (result.Error == null) return { leaderboardupdated: true }; else return { leaderboardupdated: false }; }
Client code:
private async Task UpdatePlayerHighscore(string leaderboardname, string playerscore) { var result = await PlayFabClientAPI.ExecuteCloudScriptAsync(new ExecuteCloudScriptRequest() { FunctionName = "UpdateLeaderboard", FunctionParameter = new { Leaderboardname = leaderboardname, playerscore }, GeneratePlayStreamEvent = true }); if (result.Error != null) Console.WriteLine(result.Error.Error.ToString()); else { if (result.Result.Logs.Count() > 0) Console.WriteLine(result.Result.Logs[0].Message); if (result.Result.FunctionResult != null) Console.WriteLine(result.Result.FunctionResult); } }