コード例 #1
0
        public string GetLeaderboardName(LeaderboardHandle handle)
        {
            CheckIfUsable();
            IntPtr pointer = NativeMethods.Stats_GetLeaderboardName(handle.AsUInt64);

            return(NativeHelpers.ToStringAnsi(pointer));
        }
コード例 #2
0
        /// <summary>
        /// Invokes LeaderboardScoreUploaded
        /// </summary>
        /// <param name="handle"></param>
        /// <param name="scoreMethod"></param>
        /// <param name="score"></param>
        /// <param name="details"></param>
        public void UploadLeaderboardScore(LeaderboardHandle handle, LeaderboardUploadScoreMethod scoreMethod,
                                           int score, int[] details)
        {
            CheckIfUsable();
            using (NativeBuffer buffer = new NativeBuffer(NativeBuffer.ToBytes(details)))
            {
                buffer.WriteToUnmanagedMemory();

                NativeMethods.Stats_UploadLeaderboardScore(handle.AsUInt64, (int)scoreMethod, score,
                                                           buffer.UnmanagedMemory, details.Length);
            }
        }
コード例 #3
0
        /// <summary>
        /// Invokes LeaderboardScoresDownloaded
        /// </summary>
        /// <param name="handle"></param>
        /// <param name="users"></param>
        public void DownloadLeaderboardEntriesForUsers(LeaderboardHandle handle, SteamID[] users)
        {
            CheckIfUsable();
            // We need to first convert the array of SteamID objects to a byte array
            byte[] rawData = NativeBuffer.ToBytes(users);

            using (NativeBuffer buffer = new NativeBuffer(rawData))
            {
                // Copies the list of user ID's to unmanaged memory
                buffer.WriteToUnmanagedMemory();

                NativeMethods.Stats_DownloadLeaderboardEntriesForUsers(handle.AsUInt64,
                                                                       buffer.UnmanagedMemory, users.Length);
            }
        }
コード例 #4
0
        /// <summary>
        /// Invokes LeaderboardScoresDownloaded
        /// </summary>
        /// <param name="handle"></param>
        /// <param name="users"></param>
        public void DownloadLeaderboardEntriesForUsers(LeaderboardHandle handle, SteamID[] users)
        {
            CheckIfUsable();
            // We need to first convert the array of SteamID objects to a byte array
            byte[] rawData = NativeBuffer.ToBytes(users);

            using (NativeBuffer buffer = new NativeBuffer(rawData))
            {
                // Copies the list of user ID's to unmanaged memory
                buffer.WriteToUnmanagedMemory();

                NativeMethods.Stats_DownloadLeaderboardEntriesForUsers(handle.AsUInt64,
                    buffer.UnmanagedMemory, users.Length);
            }
        }
コード例 #5
0
 /// <summary>
 /// Invokes LeaderboardScoresDownloaded
 /// </summary>
 /// <param name="handle"></param>
 /// <param name="dataRequest"></param>
 /// <param name="start"></param>
 /// <param name="end"></param>
 public void DownloadLeaderboardEntries(LeaderboardHandle handle, LeaderboardDataRequest dataRequest,
     int rangeStart, int rangeEnd)
 {
     CheckIfUsable();
     NativeMethods.Stats_DownloadLeaderboardEntries(handle.AsUInt64, (int)dataRequest, rangeStart, rangeEnd);
 }
コード例 #6
0
 public LeaderboardDisplayType GetLeaderboardDisplayType(LeaderboardHandle handle)
 {
     CheckIfUsable();
     return (LeaderboardDisplayType)NativeMethods.Stats_GetLeaderboardDisplayType(handle.AsUInt64);
 }
コード例 #7
0
 public LeaderboardSortMethod GetLeaderboardSortMethod(LeaderboardHandle handle)
 {
     CheckIfUsable();
     return (LeaderboardSortMethod)NativeMethods.Stats_GetLeaderboardSortMethod(handle.AsUInt64);
 }
コード例 #8
0
 public int GetLeaderboardEntryCount(LeaderboardHandle handle)
 {
     CheckIfUsable();
     return NativeMethods.Stats_GetLeaderboardEntryCount(handle.AsUInt64);
 }
コード例 #9
0
 public string GetLeaderboardName(LeaderboardHandle handle)
 {
     CheckIfUsable();
     IntPtr pointer = NativeMethods.Stats_GetLeaderboardName(handle.AsUInt64);
     return NativeHelpers.ToStringAnsi(pointer);
 }
コード例 #10
0
 /// <summary>
 /// Invokes LeaderboardScoresDownloaded
 /// </summary>
 /// <param name="handle"></param>
 /// <param name="dataRequest"></param>
 /// <param name="start"></param>
 /// <param name="end"></param>
 public void DownloadLeaderboardEntries(LeaderboardHandle handle, LeaderboardDataRequest dataRequest,
                                        int rangeStart, int rangeEnd)
 {
     CheckIfUsable();
     NativeMethods.Stats_DownloadLeaderboardEntries(handle.AsUInt64, (int)dataRequest, rangeStart, rangeEnd);
 }
コード例 #11
0
 public LeaderboardDisplayType GetLeaderboardDisplayType(LeaderboardHandle handle)
 {
     CheckIfUsable();
     return((LeaderboardDisplayType)NativeMethods.Stats_GetLeaderboardDisplayType(handle.AsUInt64));
 }
コード例 #12
0
 public LeaderboardSortMethod GetLeaderboardSortMethod(LeaderboardHandle handle)
 {
     CheckIfUsable();
     return((LeaderboardSortMethod)NativeMethods.Stats_GetLeaderboardSortMethod(handle.AsUInt64));
 }
コード例 #13
0
 public int GetLeaderboardEntryCount(LeaderboardHandle handle)
 {
     CheckIfUsable();
     return(NativeMethods.Stats_GetLeaderboardEntryCount(handle.AsUInt64));
 }
コード例 #14
0
        /// <summary>
        /// Invokes LeaderboardScoreUploaded
        /// </summary>
        /// <param name="handle"></param>
        /// <param name="scoreMethod"></param>
        /// <param name="score"></param>
        /// <param name="details"></param>
        public void UploadLeaderboardScore(LeaderboardHandle handle, LeaderboardUploadScoreMethod scoreMethod,
            int score, int[] details)
        {
            CheckIfUsable();
            using (NativeBuffer buffer = new NativeBuffer(NativeBuffer.ToBytes(details)))
            {
                buffer.WriteToUnmanagedMemory();

                NativeMethods.Stats_UploadLeaderboardScore(handle.AsUInt64, (int)scoreMethod, score,
                    buffer.UnmanagedMemory, details.Length);
            }
        }
コード例 #15
0
 /// <summary>
 /// Invokes LeaderboardUGCSet
 /// </summary>
 /// <param name="handle"></param>
 /// <param name="ugcHandle"></param>
 public void AttachLeaderboardUGC(LeaderboardHandle handle, UGCHandle ugcHandle)
 {
     CheckIfUsable();
     NativeMethods.Stats_AttachLeaderboardUGC(handle.AsUInt64, ugcHandle.AsUInt64);
 }
コード例 #16
0
 /// <summary>
 /// Invokes LeaderboardUGCSet
 /// </summary>
 /// <param name="handle"></param>
 /// <param name="ugcHandle"></param>
 public void AttachLeaderboardUGC(LeaderboardHandle handle, UGCHandle ugcHandle)
 {
     CheckIfUsable();
     NativeMethods.Stats_AttachLeaderboardUGC(handle.AsUInt64, ugcHandle.AsUInt64);
 }
コード例 #17
0
        void TestStats()
        {
            IStats stats = null;

            LeaderboardHandle        lHandle  = default(LeaderboardHandle);
            LeaderboardEntriesHandle leHandle = default(LeaderboardEntriesHandle);
            LeaderboardEntry         entry    = default(LeaderboardEntry);

            LeaderboardSortMethod        sort    = LeaderboardSortMethod.None;
            LeaderboardDisplayType       display = LeaderboardDisplayType.None;
            LeaderboardDataRequest       request = LeaderboardDataRequest.Friends;
            LeaderboardUploadScoreMethod score   = LeaderboardUploadScoreMethod.None;

            switch (sort)
            {
            case LeaderboardSortMethod.None:
                break;

            case LeaderboardSortMethod.Ascending:
                break;

            case LeaderboardSortMethod.Descending:
                break;

            default:
                break;
            }
            switch (display)
            {
            case LeaderboardDisplayType.None:
                break;

            case LeaderboardDisplayType.Numeric:
                break;

            case LeaderboardDisplayType.TimeSeconds:
                break;

            case LeaderboardDisplayType.TimeMilliSeconds:
                break;

            default:
                break;
            }
            switch (request)
            {
            case LeaderboardDataRequest.Global:
                break;

            case LeaderboardDataRequest.GlobalAroundUser:
                break;

            case LeaderboardDataRequest.Friends:
                break;

            case LeaderboardDataRequest.Users:
                break;

            default:
                break;
            }
            switch (score)
            {
            case LeaderboardUploadScoreMethod.None:
                break;

            case LeaderboardUploadScoreMethod.KeepBest:
                break;

            case LeaderboardUploadScoreMethod.ForceUpdate:
                break;

            default:
                break;
            }

            stats.UserStatsReceived                 += (UserStatsReceived x) => { };
            stats.UserStatsStored                   += (UserStatsStored x) => { };
            stats.UserAchievementStored             += (UserAchievementStored x) => { };
            stats.LeaderboardFindResult             += (LeaderboardFindResult x, bool y) => { };
            stats.LeaderboardScoresDownloaded       += (LeaderboardScoresDownloaded x, bool y) => { };
            stats.LeaderboardScoreUploaded          += (LeaderboardScoreUploaded x, bool y) => { };
            stats.LeaderboardUGCSet                 += (LeaderboardUGCSet x, bool y) => { };
            stats.NumberOfCurrentPlayers            += (NumberOfCurrentPlayers x, bool y) => { };
            stats.UserStatsUnloaded                 += (UserStatsUnloaded x) => { };
            stats.UserAchievementIconFetched        += (UserAchievementIconFetched x) => { };
            stats.GlobalAchievementPercentagesReady += (GlobalAchievementPercentagesReady x, bool y) => { };
            stats.GlobalStatsReceived               += (GlobalStatsReceived x, bool y) => { };

            b = stats.RequestCurrentStats();
            b = stats.GetStat(s, out i);
            b = stats.GetStat(s, out f);
            b = stats.SetStat(s, i);
            b = stats.SetStat(s, f);
            b = stats.UpdateAverageRateStat(s, f, d);
            b = stats.GetAchievement(s, out b);
            b = stats.SetAchievement(s);
            b = stats.ClearAchievement(s);
            b = stats.GetAchievementAndUnlockTime(s, out b, out ui);
            b = stats.StoreStats();
            s = stats.GetAchievementDisplayAttribute(s, s);
            b = stats.IndicateAchievementProgress(s, ui, ui);
            stats.RequestUserStats(steamID);
            b = stats.GetUserStat(steamID, s, out i);
            b = stats.GetUserStat(steamID, s, out f);
            b = stats.GetUserAchievement(steamID, s, out b);
            b = stats.GetUserAchievementAndUnlockTime(steamID, s, out b, out ui);
            b = stats.ResetAllStats(b);
            stats.FindOrCreateLeaderboard(s, sort, display);
            stats.FindLeaderboard(s);
            s       = stats.GetLeaderboardName(lHandle);
            i       = stats.GetLeaderboardEntryCount(lHandle);
            sort    = stats.GetLeaderboardSortMethod(lHandle);
            display = stats.GetLeaderboardDisplayType(lHandle);
            stats.DownloadLeaderboardEntries(lHandle, request, i, i);
            stats.DownloadLeaderboardEntriesForUsers(lHandle, sia);
            b = stats.GetDownloadedLeaderboardEntry(leHandle, i, out entry, ia);
            stats.UploadLeaderboardScore(lHandle, score, i, ia);
            stats.AttachLeaderboardUGC(lHandle, ugcHandle);
            stats.GetNumberOfCurrentPlayers();
            stats.RequestGlobalAchievementPercentages();
            i = stats.GetMostAchievedAchievementInfo(out s, out f, out b);
            i = stats.GetNextMostAchievedAchievementInfo(i, out s, out f, out b);
            b = stats.GetAchievementAchievedPercent(s, out f);
            stats.RequestGlobalStats(i);
            b = stats.GetGlobalStat(s, out l);
            b = stats.GetGlobalStat(s, out d);
            i = stats.GetGlobalStatHistory(s, out la, i);
            i = stats.GetGlobalStatHistory(s, out da, i);
        }