private void OnRequestLocalPlayerScoreCompleted(AGSRequestScoreResponse response) { AGSSocialLeaderboard leaderboard = leaderboardForRequest.ContainsKey(response.userData) ? leaderboardForRequest[response.userData] : null; if (null != leaderboard) { leaderboard.localPlayerScore = response.score; leaderboard.localPlayerRank = response.rank; } leaderboardForRequest.Remove(response.userData); }
/// <summary> /// callback method for native code to communicate events back to unity /// </summary> public static void RequestLocalPlayerScoreSucceeded(string json) { AGSRequestScoreResponse response = AGSRequestScoreResponse.FromJSON(json); if (!response.IsError() && RequestLocalPlayerScoreSucceededEvent != null) { RequestLocalPlayerScoreSucceededEvent(response.leaderboardId, response.rank, response.score); } if (RequestLocalPlayerScoreCompleted != null) { RequestLocalPlayerScoreCompleted(response); } }
public static AGSRequestScoreResponse GetBlankResponseWithError(string error, string leaderboardId = "", LeaderboardScope scope = LeaderboardScope.GlobalAllTime, int userData = 0) { AGSRequestScoreResponse response = new AGSRequestScoreResponse (); response.error = error; response.userData = userData; response.leaderboardId = leaderboardId; response.scope = scope; response.rank = -1; response.score = -1; return response; }
public static AGSRequestScoreResponse GetBlankResponseWithError(string error, string leaderboardId = "", LeaderboardScope scope = LeaderboardScope.GlobalAllTime, int userData = 0) { AGSRequestScoreResponse response = new AGSRequestScoreResponse(); response.error = error; response.userData = userData; response.leaderboardId = leaderboardId; response.scope = scope; response.rank = -1; response.score = -1; return(response); }
public static AGSRequestScoreResponse FromJSON(string json) { try { AGSRequestScoreResponse response = new AGSRequestScoreResponse (); Hashtable hashtable = json.hashtableFromJson(); response.error = hashtable.ContainsKey("error") ? hashtable ["error"].ToString () : ""; response.userData = hashtable.ContainsKey("userData") ? int.Parse(hashtable ["userData"].ToString ()) : 0; response.leaderboardId = hashtable.ContainsKey("leaderboardId") ? hashtable ["leaderboardId"].ToString() : ""; response.rank = hashtable.ContainsKey ("rank") ? int.Parse (hashtable ["rank"].ToString ()) : -1; response.score = hashtable.ContainsKey ("score") ? long.Parse (hashtable ["score"].ToString ()) : -1; response.scope = (LeaderboardScope) Enum.Parse(typeof(LeaderboardScope), hashtable["scope"].ToString()); return response; } catch (Exception e) { AGSClient.LogGameCircleError(e.ToString()); return GetBlankResponseWithError(JSON_PARSE_ERROR); } }
public static AGSRequestScoreResponse FromJSON(string json) { try { AGSRequestScoreResponse response = new AGSRequestScoreResponse(); Hashtable hashtable = json.hashtableFromJson(); response.error = hashtable.ContainsKey("error") ? hashtable ["error"].ToString() : ""; response.userData = hashtable.ContainsKey("userData") ? int.Parse(hashtable ["userData"].ToString()) : 0; response.leaderboardId = hashtable.ContainsKey("leaderboardId") ? hashtable ["leaderboardId"].ToString() : ""; response.rank = hashtable.ContainsKey("rank") ? int.Parse(hashtable ["rank"].ToString()) : -1; response.score = hashtable.ContainsKey("score") ? long.Parse(hashtable ["score"].ToString()) : -1; response.scope = (LeaderboardScope)Enum.Parse(typeof(LeaderboardScope), hashtable["scope"].ToString()); return(response); } catch (Exception e) { AGSClient.LogGameCircleError(e.ToString()); return(GetBlankResponseWithError(JSON_PARSE_ERROR)); } }
/// <summary> /// request current player's score for a given leaderboad and scope /// </summary> /// <remarks> /// RequestLocalPlayerScoreCompleted will be called if the event is registered. /// </remarks> /// <param name="leaderboardId">the id of the leaderboard for the score request</param> /// <param name="userData"> /// ANDROID ONLY /// An optional code that will be returned in the response. Used to associate a function call to its response. /// A value of 0 is not recommended because 0 is the value returned when userData is not specified. /// </param> public static void RequestLocalPlayerScore(string leaderboardId, LeaderboardScope scope, int userData = 0) { #if UNITY_EDITOR && (UNITY_ANDROID || UNITY_IOS) // GameCircle only functions on device. #elif UNITY_ANDROID JavaObject.Call("requestLocalPlayerScore", leaderboardId, (int)scope, 0); #else AGSRequestScoreResponse response = AGSRequestScoreResponse.GetPlatformNotSupportedResponse(leaderboardId, scope, userData); if (RequestLocalPlayerScoreFailedEvent != null) { RequestLocalPlayerScoreFailedEvent(response.leaderboardId, response.error); } if (RequestLocalPlayerScoreCompleted != null) { RequestLocalPlayerScoreCompleted(response); } #endif }
private void OnLocalPlayerScoresLoaded(AGSRequestScoreResponse response) { AMN_LocalPlayerScoreLoadedResult result = null; if (response.IsError()) { Debug.Log("[OnLocalPlayerScoresLoaded] error " + response.error); result = new AMN_LocalPlayerScoreLoadedResult(response.leaderboardId, response.scope.GetGCTimeSpan(), response.error); } else { Debug.Log("[OnLocalPlayerScoresLoaded] success " + response.rank + " " + response.score); result = new AMN_LocalPlayerScoreLoadedResult(response.leaderboardId, response.scope.GetGCTimeSpan(), response.rank, response.score); GC_Leaderboard leaderboard = GetLeaderboard(response.leaderboardId); if (leaderboard != null) { GC_Score score = new GC_Score(SA_AmazonGameCircleManager.Instance.Player.PlayerId, response.leaderboardId, response.rank, response.score, response.scope.GetGCTimeSpan()); leaderboard.UpdateCurrentPlayerScore(score); } } OnLocalPlayerScoreLoaded(result); }
private void OnRequestLocalPlayerScoreCompleted( AGSRequestScoreResponse response ) { if (response.IsError()){ // Update the local score request status message to show the error that occured. leaderboardsLocalScoreStatus[response.leaderboardId] = string.Format(leaderboardScoreFailed, response.leaderboardId); leaderboardsLocalScoreStatusMessage[response.leaderboardId] = response.error; } else { // Update the local score request status to show that the local score request has succeeded, // and update the message with the local score and rank. leaderboardsLocalScoreStatus[response.leaderboardId] = string.Format(leaderboardRankScoreLabel, response.rank, response.score); } }
private void OnRequestLocalPlayerScoreCompleted(AGSRequestScoreResponse response) { AGSSocialLeaderboard leaderboard = leaderboardForRequest.ContainsKey (response.userData) ? leaderboardForRequest[response.userData] : null; if (null != leaderboard) { leaderboard.localPlayerScore = response.score; leaderboard.localPlayerRank = response.rank; } leaderboardForRequest.Remove (response.userData); }