Exemple #1
0
        public AchievementCollection EndGetAchievements(IAsyncResult result)
        {
            uint numAch = SteamUserStats.GetNumAchievements();
            List <Achievement> achievements = new List <Achievement>((int)numAch);

            for (uint i = 0; i < numAch; i += 1)
            {
                string key  = SteamUserStats.GetAchievementName(i);
                string name = SteamUserStats.GetAchievementDisplayAttribute(key, "name");
                string desc = SteamUserStats.GetAchievementDisplayAttribute(key, "desc");
                string hide = SteamUserStats.GetAchievementDisplayAttribute(key, "hidden");
                bool   earned;
                uint   unlockTime;
                SteamUserStats.GetUserAchievementAndUnlockTime(
                    steamID,
                    key,
                    out earned,
                    out unlockTime
                    );
                DateTime unlockDT = new DateTime(1970, 1, 1, 0, 0, 0);
                unlockDT.AddSeconds(unlockTime);
                achievements.Add(new Achievement(
                                     key,
                                     name,
                                     desc,
                                     hide == "0",
                                     earned,
                                     unlockDT
                                     ));
            }
            statReceiveAction = null;
            return(new AchievementCollection(achievements));
        }
        /// <summary>
        /// UserStats received, normally used on the enable of this script to check the state of all achievements.
        /// this must be initialized via "DownloadUserStats()" method otherwise the achievements will not work.
        /// <para/> Also it can be used to reconcile the data if you use achievements for unlockables.
        /// </summary>
        /// <param name="_callback"></param>
        /// <param name="IOFailure"></param>
        private void OnUserStatsReceived(UserStatsReceived_t _callback, bool IOFailure)
        {
            Debug.Log("Failure - " + IOFailure + " User - " +
                      _callback.m_steamIDUser + "GameID -" + _callback.m_nGameID);

            foreach (Achievements _achiev in listOfAchievements)
            {
                bool _ret = SteamUserStats.GetAchievement(_achiev.achievementID, out _achiev.Achieved);
                if (_ret)
                {
                    _achiev.achievementName = SteamUserStats.GetAchievementDisplayAttribute(
                        _achiev.achievementID, "name");

                    _achiev.achievementDesc = SteamUserStats.GetAchievementDisplayAttribute(
                        _achiev.achievementID, "desc");

                    SteamUserStats.GetStat(_achiev.achievementID + "_STAT", out _achiev.achievementStat);

                    Debug.Log(
                        "Achievement ID - " + _achiev.achievementID + "\n" +
                        " Achievement Name - " + _achiev.achievementName + "\n" +
                        " Achievement Descri - " + _achiev.achievementDesc + "\n" +
                        " Achievement Stat - " + _achiev.achievementStat.ToString() + "\n" +
                        " Achievement Achieved - " + _achiev.Achieved + "\n"
                        );
                }
                else
                {
                    Debug.Log("SteamUserStats.GetAchievement failed for Achievement " + _achiev.achievementID + "\nIs it registered in the Steam Partner site?");
                }
            }
        }
Exemple #3
0
 private void OnUserStatsReceived(UserStatsReceived_t pCallback)
 {
     if (!SteamManager.Initialized)
     {
         return;
     }
     if ((ulong)this.m_GameID == pCallback.m_nGameID)
     {
         if (pCallback.m_eResult == EResult.k_EResultOK)
         {
             Log.Info("Received stats and achievements from Steam\n");
             SteamHelper.Achievement_t[] achievements = SteamHelper.m_Achievements;
             for (int i = 0; i < achievements.Length; i++)
             {
                 SteamHelper.Achievement_t achievement_t = achievements[i];
                 bool achievement = SteamUserStats.GetAchievement(achievement_t.m_eAchievementID.ToString(), out achievement_t.m_bAchieved);
                 if (achievement)
                 {
                     achievement_t.m_strName        = SteamUserStats.GetAchievementDisplayAttribute(achievement_t.m_eAchievementID.ToString(), "name");
                     achievement_t.m_strDescription = SteamUserStats.GetAchievementDisplayAttribute(achievement_t.m_eAchievementID.ToString(), "desc");
                 }
                 else
                 {
                     Log.Error("SteamUserStats.GetAchievement failed for Achievement " + achievement_t.m_eAchievementID + "\nIs it registered in the Steam Partner site?");
                 }
             }
         }
         else
         {
             Log.Info("RequestStats - failed, " + pCallback.m_eResult);
         }
     }
 }
Exemple #4
0
    //-----------------------------------------------------------------------------
    // Purpose: We have stats data from Steam. It is authoritative, so update
    //			our data with those results now.
    //-----------------------------------------------------------------------------
    private void OnUserStatsReceived(UserStatsReceived_t pCallback)
    {
        if (!SteamManager.Initialized)
        {
            return;
        }

        // we may get callbacks for other games' stats arriving, ignore them
        if ((ulong)m_GameID == pCallback.m_nGameID)
        {
            if (EResult.k_EResultOK == pCallback.m_eResult)
            {
                Debug.Log("Received stats and achievements from Steam\n");

                m_bStatsValid = true;

                // load achievements
                foreach (Achievement_t ach in m_Achievements)
                {
                    bool ret = SteamUserStats.GetAchievement(ach.m_eAchievementID.ToString(), out ach.m_bAchieved);
                    if (ret)
                    {
                        ach.m_strName        = SteamUserStats.GetAchievementDisplayAttribute(ach.m_eAchievementID.ToString(), "name");
                        ach.m_strDescription = SteamUserStats.GetAchievementDisplayAttribute(ach.m_eAchievementID.ToString(), "desc");
                    }
                    else
                    {
                        Debug.LogWarning("SteamUserStats.GetAchievement failed for Achievement " + ach.m_eAchievementID + "\nIs it registered in the Steam Partner site?");
                    }
                }



                // load stats
                for (int i = 3; i < steamMatches.Length; i++)
                {
                    SteamUserStats.GetStat("match_" + i, out steamMatches[i]);
                }
                //set other stats:
                for (int i = 1; i < steamStatKeys.Length + 1; i++)
                {
                    SteamUserStats.GetStat("stat_" + i, out steamStatKeys[i - 1]);
                }
                SteamUserStats.GetStat("wins", out wins);
                SteamUserStats.GetStat("wins_p", out wins_p);
                SteamUserStats.GetStat("wins_ai", out wins_ai);
                SteamUserStats.GetStat("losses", out losses);
                SteamUserStats.GetStat("losses_p", out losses_p);
                SteamUserStats.GetStat("losses_ai", out losses_ai);
            }
            else
            {
                Debug.Log("RequestStats - failed, " + pCallback.m_eResult);
            }
        }
    }
Exemple #5
0
        public static AchievementInfo Query(string achId)
        {
            var achName   = SteamUserStats.GetAchievementDisplayAttribute(achId, "name");
            var achDesc   = SteamUserStats.GetAchievementDisplayAttribute(achId, "desc");
            var hiddenStr = SteamUserStats.GetAchievementDisplayAttribute(achId, "hidden");
            var hidden    = BoolFromIntStr(hiddenStr);

            SteamUserStats.GetAchievement(achId, out var achieved);

            return(new AchievementInfo(achId, achName, achDesc, achieved, hidden));
        }
Exemple #6
0
    private void OnUserStatsReceived(UserStatsReceived_t pCallback)
    {
        if (!((ulong)gameID == pCallback.m_nGameID))
        {
            return;
        }

        if (EResult.k_EResultOK == pCallback.m_eResult)
        {
            Debug.Log("Received stats and achievements from Steam");

            statsValid = true;

            // load achievements
            foreach (KeyValuePair <AchievementID, Achievement> entry in achievements)
            {
                bool ret = SteamUserStats.GetAchievement(entry.Key.ToString(), out entry.Value.achieved);
                if (ret)
                {
                    entry.Value.name = SteamUserStats.GetAchievementDisplayAttribute(entry.Key.ToString(), "name");
                    entry.Value.desc = SteamUserStats.GetAchievementDisplayAttribute(entry.Key.ToString(), "desc");

                    if (entry.Value.achieved)
                    {
                        achievementCounter++;
                    }
                }
                else
                {
                    Debug.LogWarning("SteamUserStats.GetAchievement failed for Achievement " + entry.Key + "\nIs it registered in the Steam Partner site?");
                }
            }

            // load stats
            SteamUserStats.GetStat("GamesPlayed", out totalGamesPlayed);
            SteamUserStats.GetStat("TotalGameStarts", out totalGameStarts);
            SteamUserStats.GetStat("AssesKilled", out assesKilled);
            SteamUserStats.GetStat("EnemiesKilled", out enemiesKilled);
            SteamUserStats.GetStat("EnemiesCut", out enemiesCut);
            SteamUserStats.GetStat("BulletsShot", out bulletsShot);
            SteamUserStats.GetStat("CharactersPlayed", out charactersPlayed);

            storeStats = true;
        }
        else
        {
            Debug.Log("RequestStats - failed, " + pCallback.m_eResult);
        }
    }
    //-----------------------------------------------------------------------------
    // Purpose: We have stats data from Steam. It is authoritative, so update
    //			our data with those results now.
    //-----------------------------------------------------------------------------
    private void OnUserStatsReceived(UserStatsReceived_t pCallback)
    {
        if (!SteamManager.Initialized)
        {
            return;
        }

        // we may get callbacks for other games' stats arriving, ignore them
        if ((ulong)m_GameID == pCallback.m_nGameID)
        {
            if (EResult.k_EResultOK == pCallback.m_eResult)
            {
                Debug.Log("Received stats and achievements from Steam\n");

                m_bStatsValid = true;

                // load achievements
                foreach (Achievement_t ach in m_Achievements)
                {
                    bool ret = SteamUserStats.GetAchievement(ach.m_eAchievementID.ToString(), out ach.m_bAchieved);
                    if (ret)
                    {
                        ach.m_strName        = SteamUserStats.GetAchievementDisplayAttribute(ach.m_eAchievementID.ToString(), "name");
                        ach.m_strDescription = SteamUserStats.GetAchievementDisplayAttribute(ach.m_eAchievementID.ToString(), "desc");
                    }
                    else
                    {
                        Debug.LogWarning("SteamUserStats.GetAchievement failed for Achievement " + ach.m_eAchievementID + "\nIs it registered in the Steam Partner site?");
                    }
                }

                // load stats

                /*
                 *              SteamUserStats.GetStat("NumGames", out m_nTotalGamesPlayed);
                 *              SteamUserStats.GetStat("NumWins", out m_nTotalNumWins);
                 *              SteamUserStats.GetStat("NumLosses", out m_nTotalNumLosses);
                 *              SteamUserStats.GetStat("FeetTraveled", out m_flTotalFeetTraveled);
                 *              SteamUserStats.GetStat("MaxFeetTraveled", out m_flMaxFeetTraveled);
                 *              SteamUserStats.GetStat("AverageSpeed", out m_flAverageSpeed);
                 */
            }
            else
            {
                Debug.Log("RequestStats - failed, " + pCallback.m_eResult);
            }
        }
    }
Exemple #8
0
    //-----------------------------------------------------------------------------
    // Purpose: We have stats data from Steam. It is authoritative, so update
    //          our data with those results now.
    //-----------------------------------------------------------------------------
    /// <summary>
    /// 上传数据完成后,收到回调 UserStatsReceived_t
    /// </summary>
    /// <param name="pCallback"></param>
    private void OnUserStatsReceived(UserStatsReceived_t pCallback)
    {
        if (!SteamManager.Initialized)
        {
            return;
        }

        // we may get callbacks for other games' stats arriving, ignore them
        if ((ulong)m_GameID == pCallback.m_nGameID)
        {
            if (EResult.k_EResultOK == pCallback.m_eResult)
            {
                Debug.Log("Received stats and achievements from Steam\n");

                m_bStatsValid = true;

                // load achievements
                for (int i = 0; i < m_Achievements.Length; i++)
                {
                    bool ret = SteamUserStats.GetAchievement(m_Achievements[i].m_apiName, out m_Achievements[i].m_bAchieved);
                    if (ret)
                    {
                        //m_Achievements[i].m_apiName = SteamUserStats.GetAchievementDisplayAttribute(m_Achievements[i].m_apiName, "name");
                        m_Achievements[i].m_strDescription = SteamUserStats.GetAchievementDisplayAttribute(m_Achievements[i].m_apiName, "desc");
                        Debug.Log(m_Achievements[i].m_eAchievementID.ToString() + "  " + m_Achievements[i].m_bAchieved + "  " + m_Achievements[i].m_apiName + "  " + m_Achievements[i].m_strDescription);
                    }
                    else
                    {
                        Debug.Log("SteamUserStats.GetAchievement failed for Achievement " + m_Achievements[i].m_eAchievementID + "\nIs it registered in the Steam Partner site?");
                    }
                    // load stats
                    if (!string.IsNullOrEmpty(m_StatNames[(int)m_Achievements[i].m_eStatID]))
                    {
                        bool bget = StatsUserPrefs.GetIntValue(m_StatNames[(int)m_Achievements[i].m_eStatID], out m_Stats[(int)m_Achievements[i].m_eAchievementID].m_StatValue);
                        if (!bget)
                        {
                            Debug.LogWarning("Do not has " + m_StatNames[(int)m_Achievements[i].m_eStatID]);
                        }
                    }
                }
            }
            else
            {
                Debug.Log("RequestStats - failed, " + pCallback.m_eResult);
            }
        }
    }
Exemple #9
0
        public override void OnEnter()
        {
            SteamUserStats.GetAchievementAndUnlockTime((string)statAPIname.Value, out pbAchieved, out punUnlockTime);

            name.Value        = SteamUserStats.GetAchievementDisplayAttribute((string)statAPIname.Value, "name");
            description.Value = SteamUserStats.GetAchievementDisplayAttribute((string)statAPIname.Value, "desc");
            string isHidden = SteamUserStats.GetAchievementDisplayAttribute((string)statAPIname.Value, "hidden");

            unlockTimeUnix.Value = (int)punUnlockTime;
            isAchieved.Value     = pbAchieved;
            if (isHidden == "1")
            {
                hidden.Value = true;
            }
            else
            {
                hidden.Value = false;
            }
            Finish();
        }
    //-----------------------------------------------------------------------------
    // Purpose: We have stats data from Steam. It is authoritative, so update
    //			our data with those results now.
    //-----------------------------------------------------------------------------
    void OnUserStatsReceived(UserStatsReceived_t pCallback)
    {
        if (!SteamManager.Initialized)
        {
            return;
        }

        // we may get callbacks for other games' stats arriving, ignore them
        if ((ulong)m_GameID == pCallback.m_nGameID)
        {
            if (EResult.k_EResultOK == pCallback.m_eResult)
            {
                Debug.Log("Received stats and achievements from Steam\n");

                // load achievements
                foreach (Achievement ach in Achievements)
                {
                    bool ret = SteamUserStats.GetAchievement(ach.achievementID.ToString(), out ach.achieved);

                    if (ret)
                    {
                        ach.name        = SteamUserStats.GetAchievementDisplayAttribute(ach.achievementID.ToString(), "name");
                        ach.description = SteamUserStats.GetAchievementDisplayAttribute(ach.achievementID.ToString(), "desc");
                        SteamUserStats.GetAchievement(ach.achievementID.ToString(), out ach.achieved);
                    }
                    else
                    {
                        Debug.LogWarning("SteamUserStats.GetAchievement failed for Achievement " + ach.achievementID.ToString() + "\nIs it registered in the Steam Partner site?");
                    }
                }

                StartCoroutine(StoreSteamData());
            }
            else
            {
                Debug.Log("RequestStats - failed, " + pCallback.m_eResult);
            }
        }
    }
Exemple #11
0
 private void OnUserStatsReceived(UserStatsReceived_t pCallback)
 {
     if (!(steamManager == null) && SteamManager.Initialized)
     {
         Debug.Log("Steamworks UserStats Received");
         if ((ulong)gameID == pCallback.m_nGameID)
         {
             if (pCallback.m_eResult == EResult.k_EResultOK)
             {
                 hasStats = true;
                 Achievement_t[] achievements = Achievements.achievements;
                 foreach (Achievement_t achievement_t in achievements)
                 {
                     if (SteamUserStats.GetAchievement(achievement_t.m_eAchievementID.ToString(), out achievement_t.m_bAchieved))
                     {
                         achievement_t.m_strName        = SteamUserStats.GetAchievementDisplayAttribute(achievement_t.m_eAchievementID.ToString(), "name");
                         achievement_t.m_strDescription = SteamUserStats.GetAchievementDisplayAttribute(achievement_t.m_eAchievementID.ToString(), "desc");
                         Debug.Log(achievement_t.m_strName + " : " + achievement_t.m_bAchieved);
                     }
                     else
                     {
                         Debug.LogWarning("SteamUserStats.GetAchievement failed for Achievement " + achievement_t.m_eAchievementID + "\nIs it registered in the Steam Partner site?");
                     }
                 }
             }
             else
             {
                 Debug.LogWarning("Steamworks UserStats failed to retrieve: " + pCallback.m_eResult);
             }
         }
         else
         {
             Debug.Log("Received stats for incorrect gameID: " + pCallback.m_nGameID);
         }
     }
 }
        /// <summary>
        /// This function shall be used for testing, or if you want to get the full details achievements
        /// </summary>
        /// <param name="_achievementID"></param>
        public static void CheckAchievementAndStats(string _achievementID)
        {
            Achievements _achievements = listOfAchievements.Find((_achievement) => _achievement.achievementID == _achievementID);

            try
            {
                if (_achievements.achievementID.Equals(_achievementID))
                {
                    //Get the achievement status (locked/unlocked)
                    SteamUserStats.GetAchievement(_achievementID, out _achievements.Achieved);

                    //Get the achievement name
                    _achievements.achievementName = SteamUserStats.GetAchievementDisplayAttribute(
                        _achievements.achievementID, "name");

                    //Get the achievement description
                    _achievements.achievementDesc = SteamUserStats.GetAchievementDisplayAttribute(
                        _achievements.achievementID, "desc");

                    //Get the stat related to the Achievement
                    SteamUserStats.GetStat(_achievements.achievementID + "_STAT", out _achievements.achievementStat);

                    Debug.Log(
                        "Achievement ID - " + _achievements.achievementID + "\n" +
                        " Achievement Name - " + _achievements.achievementName + "\n" +
                        " Achievement Descri - " + _achievements.achievementDesc + "\n" +
                        " Achievement Stat - " + _achievements.achievementStat.ToString() + "\n" +
                        " Achievement Achieved - " + _achievements.Achieved + "\n"
                        );
                }
            }
            catch (NullReferenceException)
            {
                Debug.Log("The achievement name was not found, verify if the name follows the standard");
            }
        }
Exemple #13
0
    //-----------------------------------------------------------------------------
    // Purpose: We have stats data from Steam. It is authoritative, so update
    //			our data with those results now.
    //-----------------------------------------------------------------------------
    private void OnUserStatsReceived(UserStatsReceived_t pCallback)
    {
        if (!SteamManager.Initialized)
        {
            return;
        }

        // we may get callbacks for other games' stats arriving, ignore them
        if ((ulong)m_GameID == pCallback.m_nGameID)
        {
            if (EResult.k_EResultOK == pCallback.m_eResult)
            {
                Console.WriteLine("Received stats and achievements from Steam\n");

                m_bStatsValid = true;

                // load achievements
                foreach (Achievement_t ach in m_Achievements)
                {
                    bool ret = SteamUserStats.GetAchievement(ach.m_eAchievementID.ToString(), out ach.m_bAchieved);
                    if (ret)
                    {
                        ach.m_strName        = SteamUserStats.GetAchievementDisplayAttribute(ach.m_eAchievementID.ToString(), "name");
                        ach.m_strDescription = SteamUserStats.GetAchievementDisplayAttribute(ach.m_eAchievementID.ToString(), "desc");
                    }
                    else
                    {
                        Console.WriteLine("SteamUserStats.GetAchievement failed for Achievement " + ach.m_eAchievementID + "\nIs it registered in the Steam Partner site?");
                    }
                }

                #region Load Stats
                //float tempfloat;    // These temps are used because  SteamUserStats.GetStat
                //int tempint;        // does not want to use temp.currentValue as an out parameter
                //Player tempPlayer = Global.ActivePlayer;

                ////Rounds Won
                //var temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Rounds Won");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("GamesWon", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                ////FeetTravelled
                ////var temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Feet Travelled");
                ////if (temp != null)
                ////{
                ////    SteamUserStats.GetStat("FeetTravelled", out tempfloat);
                ////    temp.CurrentValue = tempfloat;
                ////}
                ////Kills
                //temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Kills");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("Kills", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                ////Deaths
                //temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Deaths");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("Deaths", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                ////Money
                //if(SteamUserStats.GetStat("Money", out tempfloat))
                //    tempPlayer.Money = (decimal)tempfloat;
                ////Experience
                //if(SteamUserStats.GetStat("Experience", out tempint))
                //    tempPlayer.PermRewards.xp = tempint;
                ////Level
                //SteamUserStats.GetStat("Level", out tempPlayer.Level);
                ////Coins
                //temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Coin");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("Coins", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                ////Cows Rescued
                //temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Cattle Rescued");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("Cows Rescued", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                ////Multiplayer Rounds
                //temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Total Multiplayer Rounds");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("MultiplayerRounds", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                ////CTF Rounds
                //temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("CTF Rounds");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("CTFRounds", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                ////Co-Op Rounds
                //temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Co-Op Rounds");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("CoOp Rounds", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                ////Battle Rounds
                //temp = tempPlayer.universalScores.Objectives.GetObjectiveByName("Battle Rounds");
                //if (temp != null)
                //{
                //    SteamUserStats.GetStat("Battle Rounds", out tempint);
                //    temp.CurrentValue = tempint;
                //}
                #endregion
            }
            else
            {
                Console.WriteLine("RequestStats - failed, " + pCallback.m_eResult);
            }
        }
    }
Exemple #14
0
    private void OnUserStatsReceived(UserStatsReceived_t pCallback)
    {
        if (!SteamManager.Initialized)
        {
            return;
        }

        // we may get callbacks for other games' stats arriving, ignore them
        if ((ulong)m_GameID == pCallback.m_nGameID)
        {
            if (EResult.k_EResultOK == pCallback.m_eResult)
            {
                Debug.Log("Received stats and achievements from Steam\n");

                m_bStatsValid = true;

                // load achievements
                foreach (Achievement_t ach in m_Achievements)
                {
                    bool ret = SteamUserStats.GetAchievement(ach.m_eAchievementID.ToString(), out ach.m_bAchieved);
                    if (ret)
                    {
                        ach.m_strName        = SteamUserStats.GetAchievementDisplayAttribute(ach.m_eAchievementID.ToString(), "name");
                        ach.m_strDescription = SteamUserStats.GetAchievementDisplayAttribute(ach.m_eAchievementID.ToString(), "desc");
                    }
                    else
                    {
                        Debug.LogWarning("SteamUserStats.GetAchievement failed for Achievement " + ach.m_eAchievementID + "\nIs it registered in the Steam Partner site?");
                    }
                }

                int int_lookAtCredits;
                int int_sorry;
                int int_everyCar;
                int int_jansportShrineDiscovered;
                int int_didntRefund;
                int int_devTagUsed;
                int int_largeObjectInAir;
                int int_airBoost;
                int int_allPowerupsAtOnce;
                int int_plexusParkFallTenTimes;

                // load stats
                SteamUserStats.GetStat("stat_lookAtCredits", out int_lookAtCredits);
                SteamUserStats.GetStat("stat_sorry", out int_sorry);
                SteamUserStats.GetStat("stat_everyCar", out int_everyCar);
                SteamUserStats.GetStat("stat_jansportShrineDiscovered", out int_jansportShrineDiscovered);
                SteamUserStats.GetStat("stat_didntRefund", out int_didntRefund);
                SteamUserStats.GetStat("stat_devTagUsed", out int_devTagUsed);
                SteamUserStats.GetStat("stat_largeObjectInAir", out int_largeObjectInAir);
                SteamUserStats.GetStat("stat_airBoost", out int_airBoost);
                SteamUserStats.GetStat("stat_allPowerupsAtOnce", out int_allPowerupsAtOnce);
                SteamUserStats.GetStat("stat_plexusParkFallTenTimes", out int_plexusParkFallTenTimes);

                stat_lookAtCredits            = IntToBool(int_lookAtCredits);
                stat_sorry                    = IntToBool(int_sorry);
                stat_everyCar                 = IntToBool(int_everyCar);
                stat_jansportShrineDiscovered = IntToBool(int_jansportShrineDiscovered);
                stat_didntRefund              = (float)int_didntRefund;
                stat_devTagUsed               = IntToBool(int_devTagUsed);
                stat_largeObjectInAir         = IntToBool(int_largeObjectInAir);
                stat_airBoost                 = IntToBool(int_airBoost);
                stat_allPowerupsAtOnce        = IntToBool(int_allPowerupsAtOnce);
                stat_plexusParkFallTenTimes   = IntToBool(int_plexusParkFallTenTimes);
            }
            else
            {
                Debug.Log("RequestStats - failed, " + pCallback.m_eResult);
            }
        }
    }
    private void RenderPageOne()
    {
        if (GUILayout.Button("RequestCurrentStats()"))
        {
            bool ret = SteamUserStats.RequestCurrentStats();
            print("RequestCurrentStats() - " + ret);
        }

        {
            bool ret = SteamUserStats.GetStat("NumGames", out m_NumGamesStat);
            GUILayout.Label("GetStat(\"NumGames\", out m_NumGamesStat) - " + ret + " -- " + m_NumGamesStat);
        }

        {
            bool ret = SteamUserStats.GetStat("FeetTraveled", out m_FeetTraveledStat);
            GUILayout.Label("GetStat(\"FeetTraveled\", out m_FeetTraveledStat) - " + ret + " -- " + m_FeetTraveledStat);
        }

        if (GUILayout.Button("SetStat(\"NumGames\", m_NumGamesStat + 1)"))
        {
            bool ret = SteamUserStats.SetStat("NumGames", m_NumGamesStat + 1);
            print("SetStat(\"NumGames\", " + (m_NumGamesStat + 1) + ") - " + ret);
        }

        if (GUILayout.Button("SetStat(\"FeetTraveled\", m_FeetTraveledStat + 1)"))
        {
            bool ret = SteamUserStats.SetStat("FeetTraveled", m_FeetTraveledStat + 1);
            print("SetStat(\"FeetTraveled\", " + (m_FeetTraveledStat + 1) + ") - " + ret);
        }

        if (GUILayout.Button("UpdateAvgRateStat(\"AverageSpeed\", 100, 60.0)"))
        {
            bool ret = SteamUserStats.UpdateAvgRateStat("AverageSpeed", 100, 60.0);
            print("UpdateAvgRateStat(\"AverageSpeed\", 100, 60.0) - " + ret);
        }

        {
            bool ret = SteamUserStats.GetAchievement("ACH_WIN_ONE_GAME", out m_AchievedWinOneGame);
            GUILayout.Label("GetAchievement(\"ACH_WIN_ONE_GAME\", out m_AchievedWinOneGame) - " + ret + " -- " + m_AchievedWinOneGame);
        }

        if (GUILayout.Button("SetAchievement(\"ACH_WIN_ONE_GAME\")"))
        {
            bool ret = SteamUserStats.SetAchievement("ACH_WIN_ONE_GAME");
            print("SetAchievement(\"ACH_WIN_ONE_GAME\") - " + ret);
        }

        if (GUILayout.Button("ClearAchievement(\"ACH_WIN_ONE_GAME\")"))
        {
            bool ret = SteamUserStats.ClearAchievement("ACH_WIN_ONE_GAME");
            print("ClearAchievement(\"ACH_WIN_ONE_GAME\") - " + ret);
        }

        {
            bool Achieved;
            uint UnlockTime;
            bool ret = SteamUserStats.GetAchievementAndUnlockTime("ACH_WIN_ONE_GAME", out Achieved, out UnlockTime);
            GUILayout.Label("GetAchievementAndUnlockTime(\"ACH_WIN_ONE_GAME\", out Achieved, out UnlockTime) - " + ret + " -- " + Achieved + " -- " + UnlockTime);
        }

        if (GUILayout.Button("StoreStats()"))
        {
            bool ret = SteamUserStats.StoreStats();
            print("StoreStats() - " + ret);
        }

        if (GUILayout.Button("GetAchievementIcon(\"ACH_WIN_ONE_GAME\")"))
        {
            int icon = SteamUserStats.GetAchievementIcon("ACH_WIN_ONE_GAME");
            print("SteamUserStats.GetAchievementIcon(\"ACH_WIN_ONE_GAME\") - " + icon);

            if (icon != 0)
            {
                uint Width  = 0;
                uint Height = 0;
                bool ret    = SteamUtils.GetImageSize(icon, out Width, out Height);

                if (ret && Width > 0 && Height > 0)
                {
                    byte[] RGBA = new byte[Width * Height * 4];
                    ret = SteamUtils.GetImageRGBA(icon, RGBA, RGBA.Length);
                    if (ret)
                    {
                        m_Icon = new Texture2D((int)Width, (int)Height, TextureFormat.RGBA32, false, true);
                        m_Icon.LoadRawTextureData(RGBA);
                        m_Icon.Apply();
                    }
                }
            }
        }

        GUILayout.Label("GetAchievementDisplayAttribute(\"ACH_WIN_ONE_GAME\", \"name\") : " + SteamUserStats.GetAchievementDisplayAttribute("ACH_WIN_ONE_GAME", "name"));

        if (GUILayout.Button("IndicateAchievementProgress(\"ACH_WIN_100_GAMES\", 10, 100)"))
        {
            bool ret = SteamUserStats.IndicateAchievementProgress("ACH_WIN_100_GAMES", 10, 100);
            print("IndicateAchievementProgress(\"ACH_WIN_100_GAMES\", 10, 100) - " + ret);
        }

        GUILayout.Label("GetNumAchievements() : " + SteamUserStats.GetNumAchievements());
        GUILayout.Label("GetAchievementName(0) : " + SteamUserStats.GetAchievementName(0));

        if (GUILayout.Button("RequestUserStats(SteamUser.GetSteamID())"))
        {
            SteamAPICall_t handle = SteamUserStats.RequestUserStats(new CSteamID(76561197991230424));             //rlabrecque
            UserStatsReceived.Set(handle);
            print("RequestUserStats(" + SteamUser.GetSteamID() + ") - " + handle);
        }

        {
            int  Data;
            bool ret = SteamUserStats.GetUserStat(new CSteamID(76561197991230424), "NumWins", out Data);             //rlabrecque
            GUILayout.Label("GetUserStat(SteamUser.GetSteamID(), \"NumWins\", out Data) : " + ret + " -- " + Data);
        }

        {
            float Data;
            bool  ret = SteamUserStats.GetUserStat(new CSteamID(76561197991230424), "MaxFeetTraveled", out Data);            //rlabrecque
            GUILayout.Label("GetUserStat(SteamUser.GetSteamID(), \"NumWins\", out Data) : " + ret + " -- " + Data);
        }

        {
            bool Achieved;
            bool ret = SteamUserStats.GetUserAchievement(new CSteamID(76561197991230424), "ACH_TRAVEL_FAR_ACCUM", out Achieved);             //rlabrecque
            GUILayout.Label("GetUserAchievement(SteamUser.GetSteamID(), \"ACH_TRAVEL_FAR_ACCUM\", out Achieved) : " + ret + " -- " + Achieved);
        }

        {
            bool Achieved;
            uint UnlockTime;
            bool ret = SteamUserStats.GetUserAchievementAndUnlockTime(new CSteamID(76561197991230424), "ACH_WIN_ONE_GAME", out Achieved, out UnlockTime);             //rlabrecque
            GUILayout.Label("GetUserAchievementAndUnlockTime(SteamUser.GetSteamID(), ACH_TRAVEL_FAR_SINGLE\", out Achieved, out UnlockTime) : " + ret + " -- " + Achieved + " -- " + UnlockTime);
        }

        if (GUILayout.Button("ResetAllStats(true)"))
        {
            bool ret = SteamUserStats.ResetAllStats(true);
            print("ResetAllStats(true) - " + ret);
        }
    }
    public void RenderOnGUI()
    {
        GUILayout.BeginArea(new Rect(Screen.width - 200, 0, 200, Screen.height));
        GUILayout.Label("Variables:");
        GUILayout.Label("m_NumGamesStat: " + m_NumGamesStat);
        GUILayout.Label("m_FeetTraveledStat: " + m_FeetTraveledStat);
        GUILayout.Label("m_AchievedWinOneGame: " + m_AchievedWinOneGame);
        GUILayout.Label("m_SteamLeaderboard: " + m_SteamLeaderboard);
        GUILayout.Label("m_SteamLeaderboardEntries: " + m_SteamLeaderboardEntries);
        GUILayout.Label("m_Icon:");
        GUILayout.Label(m_Icon);
        GUILayout.EndArea();

        GUILayout.BeginVertical("box");
        m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos, GUILayout.Width(Screen.width - 215), GUILayout.Height(Screen.height - 33));

        if (GUILayout.Button("RequestCurrentStats()"))
        {
            bool ret = SteamUserStats.RequestCurrentStats();
            print("SteamUserStats.RequestCurrentStats() : " + ret);
        }

        {
            bool ret = SteamUserStats.GetStat("NumGames", out m_NumGamesStat);
            GUILayout.Label("GetStat(\"NumGames\", out m_NumGamesStat) : " + ret + " -- " + m_NumGamesStat);
        }

        {
            bool ret = SteamUserStats.GetStat("FeetTraveled", out m_FeetTraveledStat);
            GUILayout.Label("GetStat(\"FeetTraveled\", out m_FeetTraveledStat) : " + ret + " -- " + m_FeetTraveledStat);
        }

        if (GUILayout.Button("SetStat(\"NumGames\", m_NumGamesStat + 1)"))
        {
            bool ret = SteamUserStats.SetStat("NumGames", m_NumGamesStat + 1);
            print("SteamUserStats.SetStat(" + "\"NumGames\"" + ", " + m_NumGamesStat + 1 + ") : " + ret);
        }

        if (GUILayout.Button("SetStat(\"FeetTraveled\", m_FeetTraveledStat + 1)"))
        {
            bool ret = SteamUserStats.SetStat("FeetTraveled", m_FeetTraveledStat + 1);
            print("SteamUserStats.SetStat(" + "\"FeetTraveled\"" + ", " + m_FeetTraveledStat + 1 + ") : " + ret);
        }

        if (GUILayout.Button("UpdateAvgRateStat(\"AverageSpeed\", 100, 60.0)"))
        {
            bool ret = SteamUserStats.UpdateAvgRateStat("AverageSpeed", 100, 60.0);
            print("SteamUserStats.UpdateAvgRateStat(" + "\"AverageSpeed\"" + ", " + 100 + ", " + 60.0 + ") : " + ret);
        }

        {
            bool ret = SteamUserStats.GetAchievement("ACH_WIN_ONE_GAME", out m_AchievedWinOneGame);
            GUILayout.Label("GetAchievement(\"ACH_WIN_ONE_GAME\", out m_AchievedWinOneGame) : " + ret + " -- " + m_AchievedWinOneGame);
        }

        if (GUILayout.Button("SetAchievement(\"ACH_WIN_ONE_GAME\")"))
        {
            bool ret = SteamUserStats.SetAchievement("ACH_WIN_ONE_GAME");
            print("SteamUserStats.SetAchievement(" + "\"ACH_WIN_ONE_GAME\"" + ") : " + ret);
        }

        if (GUILayout.Button("ClearAchievement(\"ACH_WIN_ONE_GAME\")"))
        {
            bool ret = SteamUserStats.ClearAchievement("ACH_WIN_ONE_GAME");
            print("SteamUserStats.ClearAchievement(" + "\"ACH_WIN_ONE_GAME\"" + ") : " + ret);
        }

        {
            bool Achieved;
            uint UnlockTime;
            bool ret = SteamUserStats.GetAchievementAndUnlockTime("ACH_WIN_ONE_GAME", out Achieved, out UnlockTime);
            GUILayout.Label("GetAchievementAndUnlockTime(\"ACH_WIN_ONE_GAME\", out Achieved, out UnlockTime) : " + ret + " -- " + Achieved + " -- " + UnlockTime);
        }

        if (GUILayout.Button("StoreStats()"))
        {
            bool ret = SteamUserStats.StoreStats();
            print("SteamUserStats.StoreStats() : " + ret);
        }

        if (GUILayout.Button("GetAchievementIcon(\"ACH_WIN_ONE_GAME\")"))
        {
            int ret = SteamUserStats.GetAchievementIcon("ACH_WIN_ONE_GAME");
            print("SteamUserStats.GetAchievementIcon(" + "\"ACH_WIN_ONE_GAME\"" + ") : " + ret);
            if (ret != 0)
            {
                m_Icon = SteamUtilsTest.GetSteamImageAsTexture2D(ret);
            }
        }

        GUILayout.Label("GetAchievementDisplayAttribute(\"ACH_WIN_ONE_GAME\", \"name\") : " + SteamUserStats.GetAchievementDisplayAttribute("ACH_WIN_ONE_GAME", "name"));

        if (GUILayout.Button("IndicateAchievementProgress(\"ACH_WIN_100_GAMES\", 10, 100)"))
        {
            bool ret = SteamUserStats.IndicateAchievementProgress("ACH_WIN_100_GAMES", 10, 100);
            print("SteamUserStats.IndicateAchievementProgress(" + "\"ACH_WIN_100_GAMES\"" + ", " + 10 + ", " + 100 + ") : " + ret);
        }

        GUILayout.Label("GetNumAchievements() : " + SteamUserStats.GetNumAchievements());

        GUILayout.Label("GetAchievementName(0) : " + SteamUserStats.GetAchievementName(0));

        if (GUILayout.Button("RequestUserStats(TestConstants.Instance.k_SteamId_rlabrecque)"))
        {
            SteamAPICall_t handle = SteamUserStats.RequestUserStats(TestConstants.Instance.k_SteamId_rlabrecque);
            OnUserStatsReceivedCallResult.Set(handle);
            print("SteamUserStats.RequestUserStats(" + TestConstants.Instance.k_SteamId_rlabrecque + ") : " + handle);
        }

        {
            int  Data;
            bool ret = SteamUserStats.GetUserStat(TestConstants.Instance.k_SteamId_rlabrecque, "NumWins", out Data);
            GUILayout.Label("GetUserStat(TestConstants.Instance.k_SteamId_rlabrecque, \"NumWins\", out Data) : " + ret + " -- " + Data);
        }

        {
            float Data;
            bool  ret = SteamUserStats.GetUserStat(TestConstants.Instance.k_SteamId_rlabrecque, "MaxFeetTraveled", out Data);
            GUILayout.Label("GetUserStat(TestConstants.Instance.k_SteamId_rlabrecque, \"MaxFeetTraveled\", out Data) : " + ret + " -- " + Data);
        }

        {
            bool Achieved;
            bool ret = SteamUserStats.GetUserAchievement(TestConstants.Instance.k_SteamId_rlabrecque, "ACH_TRAVEL_FAR_ACCUM", out Achieved);
            GUILayout.Label("GetUserAchievement(TestConstants.Instance.k_SteamId_rlabrecque, \"ACH_TRAVEL_FAR_ACCUM\", out Achieved) : " + ret + " -- " + Achieved);
        }

        {
            bool Achieved;
            uint UnlockTime;
            bool ret = SteamUserStats.GetUserAchievementAndUnlockTime(TestConstants.Instance.k_SteamId_rlabrecque, "ACH_WIN_ONE_GAME", out Achieved, out UnlockTime);
            GUILayout.Label("GetUserAchievementAndUnlockTime(TestConstants.Instance.k_SteamId_rlabrecque, \"ACH_WIN_ONE_GAME\", out Achieved, out UnlockTime) : " + ret + " -- " + Achieved + " -- " + UnlockTime);
        }

        if (GUILayout.Button("ResetAllStats(true)"))
        {
            bool ret = SteamUserStats.ResetAllStats(true);
            print("SteamUserStats.ResetAllStats(" + true + ") : " + ret);
        }

        if (GUILayout.Button("FindOrCreateLeaderboard(\"Feet Traveled\", ELeaderboardSortMethod.k_ELeaderboardSortMethodAscending, ELeaderboardDisplayType.k_ELeaderboardDisplayTypeNumeric)"))
        {
            SteamAPICall_t handle = SteamUserStats.FindOrCreateLeaderboard("Feet Traveled", ELeaderboardSortMethod.k_ELeaderboardSortMethodAscending, ELeaderboardDisplayType.k_ELeaderboardDisplayTypeNumeric);
            OnLeaderboardFindResultCallResult.Set(handle);
            print("SteamUserStats.FindOrCreateLeaderboard(" + "\"Feet Traveled\"" + ", " + ELeaderboardSortMethod.k_ELeaderboardSortMethodAscending + ", " + ELeaderboardDisplayType.k_ELeaderboardDisplayTypeNumeric + ") : " + handle);
        }

        if (GUILayout.Button("FindLeaderboard(\"Feet Traveled\")"))
        {
            SteamAPICall_t handle = SteamUserStats.FindLeaderboard("Feet Traveled");
            OnLeaderboardFindResultCallResult.Set(handle);
            print("SteamUserStats.FindLeaderboard(" + "\"Feet Traveled\"" + ") : " + handle);
        }

        // Spams SteamAPI Warnings that the SteamLeaderboard does not exist.
        if (m_SteamLeaderboard != new SteamLeaderboard_t(0))
        {
            GUILayout.Label("GetLeaderboardName(m_SteamLeaderboard) : " + SteamUserStats.GetLeaderboardName(m_SteamLeaderboard));

            GUILayout.Label("GetLeaderboardEntryCount(m_SteamLeaderboard) : " + SteamUserStats.GetLeaderboardEntryCount(m_SteamLeaderboard));

            GUILayout.Label("GetLeaderboardSortMethod(m_SteamLeaderboard) : " + SteamUserStats.GetLeaderboardSortMethod(m_SteamLeaderboard));

            GUILayout.Label("GetLeaderboardDisplayType(m_SteamLeaderboard) : " + SteamUserStats.GetLeaderboardDisplayType(m_SteamLeaderboard));
        }
        else
        {
            GUILayout.Label("GetLeaderboardName(m_SteamLeaderboard) : ");
            GUILayout.Label("GetLeaderboardEntryCount(m_SteamLeaderboard) : ");
            GUILayout.Label("GetLeaderboardSortMethod(m_SteamLeaderboard) : ");
            GUILayout.Label("GetLeaderboardDisplayType(m_SteamLeaderboard) : ");
        }

        if (GUILayout.Button("DownloadLeaderboardEntries(m_SteamLeaderboard, ELeaderboardDataRequest.k_ELeaderboardDataRequestGlobal, 1, 5)"))
        {
            SteamAPICall_t handle = SteamUserStats.DownloadLeaderboardEntries(m_SteamLeaderboard, ELeaderboardDataRequest.k_ELeaderboardDataRequestGlobal, 1, 5);
            OnLeaderboardScoresDownloadedCallResult.Set(handle);
            print("SteamUserStats.DownloadLeaderboardEntries(" + m_SteamLeaderboard + ", " + ELeaderboardDataRequest.k_ELeaderboardDataRequestGlobal + ", " + 1 + ", " + 5 + ") : " + handle);
        }

        if (GUILayout.Button("DownloadLeaderboardEntriesForUsers(m_SteamLeaderboard, Users, Users.Length)"))
        {
            CSteamID[]     Users  = { SteamUser.GetSteamID() };
            SteamAPICall_t handle = SteamUserStats.DownloadLeaderboardEntriesForUsers(m_SteamLeaderboard, Users, Users.Length);
            OnLeaderboardScoresDownloadedCallResult.Set(handle);
            print("SteamUserStats.DownloadLeaderboardEntriesForUsers(" + m_SteamLeaderboard + ", " + Users + ", " + Users.Length + ") : " + handle);
        }

        if (GUILayout.Button("GetDownloadedLeaderboardEntry(m_SteamLeaderboardEntries, 0, out LeaderboardEntry, null, 0)"))
        {
            LeaderboardEntry_t LeaderboardEntry;
            bool ret = SteamUserStats.GetDownloadedLeaderboardEntry(m_SteamLeaderboardEntries, 0, out LeaderboardEntry, null, 0);
            print("SteamUserStats.GetDownloadedLeaderboardEntry(" + m_SteamLeaderboardEntries + ", " + 0 + ", " + "out LeaderboardEntry" + ", " + null + ", " + 0 + ") : " + ret + " -- " + LeaderboardEntry);
        }

        if (GUILayout.Button("UploadLeaderboardScore(m_SteamLeaderboard, ELeaderboardUploadScoreMethod.k_ELeaderboardUploadScoreMethodForceUpdate, (int)m_FeetTraveledStat, null, 0)"))
        {
            SteamAPICall_t handle = SteamUserStats.UploadLeaderboardScore(m_SteamLeaderboard, ELeaderboardUploadScoreMethod.k_ELeaderboardUploadScoreMethodForceUpdate, (int)m_FeetTraveledStat, null, 0);
            OnLeaderboardScoreUploadedCallResult.Set(handle);
            print("SteamUserStats.UploadLeaderboardScore(" + m_SteamLeaderboard + ", " + ELeaderboardUploadScoreMethod.k_ELeaderboardUploadScoreMethodForceUpdate + ", " + (int)m_FeetTraveledStat + ", " + null + ", " + 0 + ") : " + handle);
        }

        if (GUILayout.Button("AttachLeaderboardUGC(m_SteamLeaderboard, UGCHandle_t.Invalid)"))
        {
            SteamAPICall_t handle = SteamUserStats.AttachLeaderboardUGC(m_SteamLeaderboard, UGCHandle_t.Invalid);
            OnLeaderboardUGCSetCallResult.Set(handle);
            print("SteamUserStats.AttachLeaderboardUGC(" + m_SteamLeaderboard + ", " + UGCHandle_t.Invalid + ") : " + handle);
        }

        if (GUILayout.Button("GetNumberOfCurrentPlayers()"))
        {
            SteamAPICall_t handle = SteamUserStats.GetNumberOfCurrentPlayers();
            OnNumberOfCurrentPlayersCallResult.Set(handle);
            print("SteamUserStats.GetNumberOfCurrentPlayers() : " + handle);
        }

        if (GUILayout.Button("RequestGlobalAchievementPercentages()"))
        {
            SteamAPICall_t handle = SteamUserStats.RequestGlobalAchievementPercentages();
            OnGlobalAchievementPercentagesReadyCallResult.Set(handle);
            print("SteamUserStats.RequestGlobalAchievementPercentages() : " + handle);
        }

        {
            int Iterator;

            {
                string Name;
                float  Percent;
                bool   Achieved;
                Iterator = SteamUserStats.GetMostAchievedAchievementInfo(out Name, 120, out Percent, out Achieved);
                if (Iterator != -1)
                {
                    GUILayout.Label("GetMostAchievedAchievementInfo(out Name, 120, out Percent, out Achieved) : " + Iterator + " -- " + Name + " -- " + Percent + " -- " + Achieved);
                }
                else
                {
                    GUILayout.Label("GetMostAchievedAchievementInfo(out Name, 120, out Percent, out Achieved) : " + Iterator);
                }
            }

            if (Iterator != -1)
            {
                string Name;
                float  Percent;
                bool   Achieved;
                Iterator = SteamUserStats.GetNextMostAchievedAchievementInfo(Iterator, out Name, 120, out Percent, out Achieved);
                GUILayout.Label("GetNextMostAchievedAchievementInfo(out Name, 120, out Percent, out Achieved) : " + Iterator + " -- " + Name + " -- " + Percent + " -- " + Achieved);
            }
        }

        {
            float Percent;
            bool  ret = SteamUserStats.GetAchievementAchievedPercent("ACH_WIN_100_GAMES", out Percent);
            GUILayout.Label("GetAchievementAchievedPercent(\"ACH_WIN_100_GAMES\", out Percent) : " + ret + " -- " + Percent);
        }

        if (GUILayout.Button("RequestGlobalStats(3)"))
        {
            SteamAPICall_t handle = SteamUserStats.RequestGlobalStats(3);
            OnGlobalStatsReceivedCallResult.Set(handle);
            print("SteamUserStats.RequestGlobalStats(" + 3 + ") : " + handle);
        }

        /* TODO - Spams SteamAPI warnings
         * Does SpaceWar have a stat marked as "aggregated" to try out these functions?
         * {
         *      long Data;
         *      bool ret = SteamUserStats.GetGlobalStat("", out Data);
         *      GUILayout.Label("GetGlobalStat(\"\", out Data) : " + ret + " -- " + Data);
         * }
         */

        {
            double Data;
            bool   ret = SteamUserStats.GetGlobalStat("", out Data);
            GUILayout.Label("GetGlobalStat(\"\", out Data) : " + ret + " -- " + Data);
        }

        {
            long[] Data = new long[1];
            int    ret  = SteamUserStats.GetGlobalStatHistory("", Data, (uint)Data.Length);
            if (ret != 0)
            {
                GUILayout.Label("GetGlobalStatHistory(\"\", Data, " + (uint)Data.Length + ") : " + ret + " -- " + Data[0]);
            }
            else
            {
                GUILayout.Label("GetGlobalStatHistory(\"\", Data, " + (uint)Data.Length + ") : " + ret + " -- ");
            }
        }

        {
            double[] Data = new double[1];
            int      ret  = SteamUserStats.GetGlobalStatHistory("", Data, (uint)Data.Length);
            if (ret != 0)
            {
                GUILayout.Label("GetGlobalStatHistory(\"\", Data, " + (uint)Data.Length + ") : " + ret + " -- " + Data[0]);
            }
            else
            {
                GUILayout.Label("GetGlobalStatHistory(\"\", Data, " + (uint)Data.Length + ") : " + ret + " -- ");
            }
        }

        //SteamUserStats.InstallPS3Trophies() // PS3 Only.

        //SteamUserStats.GetTrophySpaceRequiredBeforeInstall() // PS3 Only.

        //SteamUserStats.SetUserStatsData() // PS3 Only.

        //SteamUserStats.GetUserStatsData() // PS3 Only.

        GUILayout.EndScrollView();
        GUILayout.EndVertical();
    }