/// <summary> /// Loads the scores of a user. /// </summary> /// <param name="user">User.</param> /// <param name="interval">Interval.</param> /// <param name="callback">Callback.</param> public static void LoadScoresByUser(User user, eLeaderboardInterval interval, System.Action <Score[], string> callback) { var form = CombuManager.instance.CreateForm(); form.AddField("action", "highscore_account"); form.AddField("Id", user.id); form.AddField("Interval", ((int)interval).ToString()); CombuManager.instance.CallWebservice(CombuManager.instance.GetUrl("leaderboards.php"), form, (string text, string error) => { List <Score> scores = new List <Score>(); if (string.IsNullOrEmpty(error)) { ArrayList result = text.arrayListFromJson(); if (result != null) { foreach (Hashtable data in result) { scores.Add(new Score( data["IdLeaderboard"] + "", data["CodeLeaderboard"] + "", int.Parse(data["Rank"].ToString()), user, double.Parse(data["Score"].ToString()) )); } } } if (callback != null) { callback(scores.ToArray(), error); } }); }
/// <summary> /// Loads the scores of a Leaderboard by user. /// </summary> /// <param name="leaderboardId">Leaderboard identifier.</param> /// <param name="user">User.</param> /// <param name="interval">Interval.</param> /// <param name="callback">Callback.</param> /// <example> /// Example of usage: /// <code> /// CombuManager.platform.LoadScores ("1234", CombuManager.localUser, eLeaderboardInterval.Week, 10, (Score score, int page, string error) => { /// Debug.Log("Score: " + score.rank); /// }); /// </code> /// </example> public virtual void LoadScoresByUser(string leaderboardId, User user, eLeaderboardInterval interval, int limit, System.Action <Score, int, string> callback) { if (!CombuManager.isInitialized) { throw new System.Exception("Combu Manager not initialized"); } Leaderboard board = new Leaderboard(); board.id = leaderboardId; board.LoadScoresByUser(user, interval, limit, callback); }
/// <summary> /// Loads the scores by user. /// </summary> /// <param name="userId">User identifier.</param> /// <param name="userName">User name.</param> /// <param name="interval">Interval.</param> /// <param name="limit">Limit.</param> /// <param name="callback">Callback.</param> protected void LoadScoresByUser(long userId, string userName, eLeaderboardInterval interval, int limit, System.Action <Score, int, string> callback) { var form = CombuManager.instance.CreateForm(); form.AddField("action", "highscore_account"); if (userId > 0) { form.AddField("Id", userId.ToString()); } else if (!string.IsNullOrEmpty(userName)) { form.AddField("Username", userName); } form.AddField("IdLeaderboard", id); form.AddField("Interval", ((int)interval).ToString()); form.AddField("Limit", limit.ToString()); CombuManager.instance.CallWebservice(CombuManager.instance.GetUrl("leaderboards.php"), form, (string text, string error) => { Score score = null; int page = 1; if (string.IsNullOrEmpty(error)) { Hashtable result = text.hashtableFromJson(); if (result != null && result.ContainsKey("Score")) { score = new Score( result["IdLeaderboard"] + "", result["CodeLeaderboard"] + "", int.Parse(result["Rank"].ToString()), new User(result["User"].ToString()), double.Parse(result["Score"].ToString()) ); page = int.Parse(result["Page"].ToString()); } } if (callback != null) { callback(score, page, error); } }); }
/// <summary> /// Loads the scores by userName. /// </summary> /// <param name="userName">User name.</param> /// <param name="interval">Interval.</param> /// <param name="limit">Limit.</param> /// <param name="callback">Callback.</param> public virtual void LoadScoresByUser(string userName, eLeaderboardInterval interval, int limit, System.Action <Score, int, string> callback) { LoadScoresByUser(0, userName, interval, limit, callback); }
/// <summary> /// Loads the scores by user id. /// </summary> /// <param name="userId">User identifier.</param> /// <param name="interval">Interval.</param> /// <param name="limit">Limit.</param> /// <param name="callback">Callback.</param> public virtual void LoadScoresByUser(long userId, eLeaderboardInterval interval, int limit, System.Action <Score, int, string> callback) { LoadScoresByUser(userId, string.Empty, interval, limit, callback); }
/// <summary> /// Loads the scores of a user on this leaderboard. /// </summary> /// <param name="user">User.</param> /// <param name="interval">Interval.</param> /// <param name="callback">Callback.</param> public virtual void LoadScoresByUser(User user, eLeaderboardInterval interval, int limit, System.Action <Score, int, string> callback) { LoadScoresByUser(user.idLong > 0 ? user.idLong : 0, user.idLong > 0 ? string.Empty : user.userName, interval, limit, callback); }