Exemplo n.º 1
0
 /// <summary>
 /// This is set to the <see cref="HeathenEngineering.SteamApi.PlayerServices.SteamworksLeaderboardData.UserRankLoaded"/> event in <see cref="RegisterForBoardEvents"/> method
 /// </summary>
 /// <param name="eventData">The user data resulting of the load operation</param>
 void handleUserRankLoaded(HeathenEngineering.SteamApi.PlayerServices.LeaderboardUserData eventData)
 {
     Debug.Log("Local user's rank data has been loaded, Rank: " + eventData.entry.m_nGlobalRank + ", Score: " + eventData.entry.m_nScore + ", Details: " + eventData.details);
 }
Exemplo n.º 2
0
        private bool ProcessScoresDownloaded(LeaderboardScoresDownloaded_t param, bool bIOFailure)
        {
            bool playerIncluded = false;

            ///Check for the current users data in the record set and update accordingly
            if (!bIOFailure)
            {
                var userId = SteamUser.GetSteamID();

                for (int i = 0; i < param.m_cEntryCount; i++)
                {
                    LeaderboardEntry_t buffer;
                    int[] details = null;

                    if (MaxDetailEntries < 1)
                    {
                        SteamUserStats.GetDownloadedLeaderboardEntry(param.m_hSteamLeaderboardEntries, i, out buffer, details, MaxDetailEntries);
                    }
                    else
                    {
                        details = new int[MaxDetailEntries];
                        SteamUserStats.GetDownloadedLeaderboardEntry(param.m_hSteamLeaderboardEntries, i, out buffer, details, MaxDetailEntries);
                    }

                    if (buffer.m_steamIDUser.m_SteamID == userId.m_SteamID)
                    {
                        playerIncluded = true;
                        if (!UserEntry.HasValue || UserEntry.Value.m_nGlobalRank != buffer.m_nGlobalRank)
                        {
                            var l = new LeaderboardUserData()
                            {
                                leaderboardName = leaderboardName,
                                leaderboardId   = LeaderboardId.Value,
                                entry           = buffer,
                                details         = details
                            };

                            var lc = new LeaderboardRankChangeData()
                            {
                                leaderboardName = leaderboardName,
                                leaderboardId   = LeaderboardId.Value,
                                newEntry        = buffer,
                                oldEntry        = UserEntry.HasValue ? new LeaderboardEntry_t?(UserEntry.Value) : null
                            };

                            UserEntry = buffer;

                            UserRankLoaded.Invoke(l);
                            UserRankChanged.Invoke(lc);

                            if (lc.newEntry.m_nGlobalRank < (lc.oldEntry.HasValue ? lc.oldEntry.Value.m_nGlobalRank : int.MaxValue))
                            {
                                UserNewHighRank.Invoke(lc);
                            }
                        }
                        else
                        {
                            var l = new LeaderboardUserData()
                            {
                                leaderboardName = leaderboardName,
                                leaderboardId   = LeaderboardId.Value,
                                entry           = buffer,
                                details         = details
                            };

                            UserEntry = buffer;
                            UserRankLoaded.Invoke(l);
                        }
                    }
                }
            }

            return(playerIncluded);
        }
Exemplo n.º 3
0
 private void HandleLeaderboardRankLoaded(LeaderboardUserData arg0)
 {
     LeaderboardRankLoaded.Invoke(arg0);
 }