/// <summary> /// Downloads the leaderboard for the filter criteria. The p_onDownloadedScores callback is invoked when done. /// First all score entries are fetched, then all user names are loaded if they are not yet cached by Steam. /// Avatars are loaded as soon as they are requested with SteamLeaderboardsMain.GetAvatarTexture. /// See also SteamLeaderboardsMain.OnDownloadedScores. /// </summary> /// <returns><c>true</c>, if a request was started, <c>false</c> when the request could not have been started due to an error.</returns> /// <param name="p_leaderboardName">name of the leaderboard to load.</param> /// <param name="p_scoreSource">source of the leaderboard entries (Global, AroundUser, Friends).</param> /// <param name="p_rangeStart">score entries range to load. For example, [0,10] for Global, [-4,5] for AroundUser.</param> /// <param name="p_rangeEnd">score entries range to load. For example, [0,10] for Global, [-4,5] for AroundUser.</param> /// <param name="p_onDownloadedScores">invoked when the leaderboard is either fully loaded or an error has occured.</param> public bool DownloadScores(string p_leaderboardName, ELeaderboardDataRequest p_scoreSource, int p_rangeStart, int p_rangeEnd, System.Action <LeaderboardsDownloadedScoresEventArgs> p_onDownloadedScores) { if (SteamManager.Initialized) { SetSingleShotEventHandler("OnDownloadedScores", ref OnDownloadedScores, p_onDownloadedScores); Execute <LeaderboardFindResult_t>(SteamUserStats.FindLeaderboard(p_leaderboardName), (p_callback, p_bIOFailure) => OnDownloadScoresFindLeaderboardCallCompleted(p_leaderboardName, p_scoreSource, p_rangeStart, p_rangeEnd, p_callback, p_bIOFailure)); return(true); // request started } else { ErrorEventArgs errorArgs = ErrorEventArgs.CreateSteamNotInit(); InvokeEventHandlerSafely(p_onDownloadedScores, new LeaderboardsDownloadedScoresEventArgs(errorArgs)); HandleError("DownloadScores: failed! ", errorArgs); return(false); // no request, because there is no connection to steam } }
/// <summary> /// Upload or update a score entry in the given leaderboard. The p_onUploadedScore callback is invoked when done.<br /> /// See also SteamLeaderboardsMain.OnUploadedScore. /// </summary> /// <returns><c>true</c>, if a request was started, <c>false</c> when the request could not have been started due to an error.</returns> /// <param name="p_leaderboardName">name of the leaderboard to update.</param> /// <param name="p_score">users score to submit.</param> /// <param name="p_scoreSorting">if the leaderboard with the given name does not yet exist, then it will be created with the given sorting</param> /// <param name="p_scoreType">if the leaderboard with the given name does not yet exist, then it will be created with the given score display type</param> /// <param name="p_scoreDetails">additional game-defined information regarding how the user got that score. E.g. a replay, a screenshot, etc...</param> /// <param name="p_onUploadedScore">invoked when the score upload is successfull or an error has occured.</param> public bool UploadScore(string p_leaderboardName, int p_score, ELeaderboardSortMethod p_scoreSorting, ELeaderboardDisplayType p_scoreType, int[] p_scoreDetails, System.Action <LeaderboardsUploadedScoreEventArgs> p_onUploadedScore) { if (SteamManager.Initialized) { if (p_scoreDetails != null && p_scoreDetails.Length > 64) { Debug.LogError("UploadScore: max. score details array length is 64 integers! Provided '" + p_scoreDetails.Length + "'! Data will be cutoff!"); } SetSingleShotEventHandler(GetEventNameForOnUploadedScore(p_leaderboardName, p_score), ref OnUploadedScore, p_onUploadedScore); Execute <LeaderboardFindResult_t>(SteamUserStats.FindOrCreateLeaderboard(p_leaderboardName, p_scoreSorting, p_scoreType), (p_callback, p_bIOFailure) => OnUploadScoreFindOrCreateLeaderboardCallCompleted(p_leaderboardName, p_score, p_scoreSorting, p_scoreType, p_scoreDetails, p_callback, p_bIOFailure)); return(true); // request started } else { ErrorEventArgs errorArgs = ErrorEventArgs.CreateSteamNotInit(); InvokeEventHandlerSafely(p_onUploadedScore, new LeaderboardsUploadedScoreEventArgs(errorArgs)); HandleError("UploadScore: failed! ", errorArgs); return(false); // no request, because there is no connection to steam } }