Exemple #1
0
    public static async void GetLevelLeaderboard(string levelLeaderboardName)
    {
        var leaderboard = await SteamUserStats.FindLeaderboardAsync(levelLeaderboardName);

        if (leaderboard.HasValue)
        {
            Steamworks.Data.Leaderboard unwrappedLeaderboard = leaderboard.Value;
        }
        else
        {
            Debug.LogError($"Could not retrieve leaderboard {levelLeaderboardName} from steam");
        }
    }
Exemple #2
0
 public override void OnEnter()
 {
     isSuccess.Value = (bool)SteamUserStats.ClearAchievement((string)achievementAPIname.Value);
     if (isSuccess.Value)
     {
         Fsm.Event(success);
     }
     else
     {
         Fsm.Event(failed);
     }
     Finish();
 }
Exemple #3
0
        /// <summary>
        /// Refreshes the user's entry for this board
        /// </summary>
        public void RefreshUserEntry()
        {
            if (!LeaderboardId.HasValue)
            {
                Debug.LogError(name + " Leaderboard Data Object, cannot download scores, the leaderboard has not been initalized and cannot download scores.");
                return;
            }

            CSteamID[] users  = new CSteamID[] { SteamUser.GetSteamID() };
            var        handle = SteamUserStats.DownloadLeaderboardEntriesForUsers(LeaderboardId.Value, users, 1);

            OnLeaderboardScoresDownloadedCallResult.Set(handle, OnLeaderboardUserRefreshRequest);
        }
Exemple #4
0
        public static async Task <List <LeaderboardEntry> > FindLeaderboard(string name, int entryCount)
        {
            var leaderboard = await SteamUserStats.FindLeaderboardAsync(name);

            if (leaderboard.HasValue)
            {
                return(GetLeaderboardScores(leaderboard.Value, entryCount).Result);
            }
            else
            {
                return(new List <LeaderboardEntry>());
            }
        }
Exemple #5
0
    public LeaderEntry[] ReadDownloadedTop100Entries()
    {
        Debug.Log("[LeaderBoard] reading top 100 entries");
        LeaderEntry[] vals = new LeaderEntry[topEntriesCount];

        for (int i = 0; i < topEntriesCount; i++)
        {
            LeaderboardEntry_t entry_T;
            SteamUserStats.GetDownloadedLeaderboardEntry(hSteamTop100Entries, i, out entry_T, pScoreDetails, cScoreDetailsCount);
            vals[i] = new LeaderEntry(entry_T.m_steamIDUser, entry_T.m_nGlobalRank, entry_T.m_nScore);
        }
        return(vals);
    }
 public void ResetAchievements()
 {
     if (active && SteamAPI.IsSteamRunning())
     {
         try
         {
             SteamUserStats.ResetAllStats(bAchievementsToo: true);
         }
         catch (Exception)
         {
         }
     }
 }
Exemple #7
0
    //-----------------------------------------------------------------------------
    // Purpose: Accumulate distance traveled
    //-----------------------------------------------------------------------------
    //public void AddDistanceTraveled(float flDistance)
    //{
    //    m_flGameFeetTraveled += flDistance;
    //}

    //-----------------------------------------------------------------------------
    // Purpose: Game state has changed
    //-----------------------------------------------------------------------------
    //public void OnGameStateChange(EClientGameState eNewState)
    //{
    //    if (!m_bStatsValid)
    //        return;

    //    if (eNewState == EClientGameState.k_EClientGameActive)
    //    {
    //        // Reset per-game stats
    //        m_flGameFeetTraveled = 0;
    //        m_ulTickCountGameStart = Time.time;
    //    }
    //    else if (eNewState == EClientGameState.k_EClientGameWinner || eNewState == EClientGameState.k_EClientGameLoser)
    //    {
    //        if (eNewState == EClientGameState.k_EClientGameWinner)
    //        {
    //            m_nTotalNumWins++;
    //        }
    //        else
    //        {
    //            m_nTotalNumLosses++;
    //        }

    //        // Tally games
    //        m_nTotalGamesPlayed++;

    //        // Accumulate distances
    //        m_flTotalFeetTraveled += m_flGameFeetTraveled;

    //        // New max?
    //        if (m_flGameFeetTraveled > m_flMaxFeetTraveled)
    //            m_flMaxFeetTraveled = m_flGameFeetTraveled;

    //        // Calc game duration
    //        m_flGameDurationSeconds = Time.time - m_ulTickCountGameStart;

    //        // We want to update stats the next frame.
    //        m_bStoreStats = true;
    //    }
    //}

    //-----------------------------------------------------------------------------
    // Purpose: Unlock this achievement
    //-----------------------------------------------------------------------------
    private void UnlockAchievement(Achievement_t achievement)
    {
        achievement.m_bAchieved = true;

        // the icon may change once it's unlocked
        //achievement.m_iIconImage = 0;

        // mark it down
        SteamUserStats.SetAchievement(achievement.m_eAchievementID.ToString());

        // Store stats end of frame
        m_bStoreStats = true;
    }
Exemple #8
0
        public static void ResetAllStats(bool andCheevos = true)
        {
            if (!SteamInitialized)
            {
                return;
            }
            SteamUserStats.ResetAllStats(andCheevos);
            SteamUserStats.RequestCurrentStats();

            _achievementDictionary = new Dictionary <string, bool>();
            _statDictionary        = new Dictionary <string, int>();
            StatsInitialized.Value = false;
        }
    public void UpdateLeaderboardScore(ulong leaderboardId, int score, int[] scoreDetails, int scoreDetailsMax, ISteamLeaderboardUpdateCallBack callBack)
    {
        this.mUpdateCallBack = callBack;
        SteamLeaderboard_t m_SteamLeaderboard = new SteamLeaderboard_t
        {
            m_SteamLeaderboard = leaderboardId
        };
        CallResult <LeaderboardScoreUploaded_t> callResult = CallResult <LeaderboardScoreUploaded_t> .Create(OnLeaderboardScoreUploaded);

        SteamAPICall_t handle = SteamUserStats.UploadLeaderboardScore(m_SteamLeaderboard, ELeaderboardUploadScoreMethod.k_ELeaderboardUploadScoreMethodForceUpdate, score, scoreDetails, scoreDetailsMax);

        callResult.Set(handle);
    }
    public void ChangeLeaderboard(int newScore)
    {
        //store for a retry?
        recentScore = newScore;

        if (foundLeaderboard)
        {
            //create new call instance
            SteamAPICall_t newApiCall = SteamUserStats.UploadLeaderboardScore(leaderboard_t, ELeaderboardUploadScoreMethod.k_ELeaderboardUploadScoreMethodKeepBest, newScore, null, 0);
            //upload call
            uploadResultLeaderboard.Set(newApiCall);
        }
    }
Exemple #11
0
    private void MyCallbacks_LobbyCreated(SteamHubLobby lobby)
    {
        int elo;

        //bool ret =
        SteamUserStats.GetStat("NumGames", out elo);

        //if (ret)
        //    lobby.SetData<string>("ELO", ret);

        lobby.SetData <string>("name", lobbyName.GetComponent <Text>().text);
        Debug.Log("LOBBY CREATED CALLBACK: Lobby name\"" + lobby.GetData <string>("name") + "\"");
    }
    public void Init()
    {
        if (!SteamManager.Initialized)
        {
            Debug.Assert(false, "SteamManager not initialized");
        }

        stats.Clear();
        stats.Add("NUM_WAVES_COMPLETED", 0);
        stats.Add("DAMAGE_DEALT", 0);
        stats.Add("CRITICAL_HITS", 0);
        stats.Add("COMBOS_GAINED", 0);
        stats.Add("HEALTH_HEALED", 0);
        stats.Add("NUM_RESURRECTIONS", 0);
        stats.Add("MINIONS_UNLOCKED", 0);
        achievementProgress.Clear();
        achievementProgress.Add("NUM_WAVES_COMPLETED", new AchievementProgressData[2] {
            new AchievementProgressData("GETTING_STARTED", 25, 100),
            new AchievementProgressData("VETERAN_MINIMANCER", 50, 250)
        });
        achievementProgress.Add("DAMAGE_DEALT", new AchievementProgressData[2] {
            new AchievementProgressData("DAMAGE_DEALER", 25000, 100000),
            new AchievementProgressData("DAMAGE_MASTER", 100000, 1000000)
        });
        achievementProgress.Add("CRITICAL_HITS", new AchievementProgressData[1] {
            new AchievementProgressData("CRITICALLY_ACCLAIMED", 100, 500)
        });
        achievementProgress.Add("COMBOS_GAINED", new AchievementProgressData[1] {
            new AchievementProgressData("COMBO_COLLECTOR", 250, 1000)
        });
        achievementProgress.Add("HEALTH_HEALED", new AchievementProgressData[1] {
            new AchievementProgressData("MASTER_HEALER", 2500, 10000)
        });
        achievementProgress.Add("NUM_RESURRECTIONS", new AchievementProgressData[1] {
            new AchievementProgressData("UNKILLABLE", 10, 30)
        });
        achievementProgress.Add("MINIONS_UNLOCKED", new AchievementProgressData[1] {
            new AchievementProgressData("COMPLETIONIST", 10, 113)
        });


        gameID = new CGameID(SteamUtils.GetAppID());

        statsRecievedCallback = Callback <UserStatsReceived_t> .Create(OnStatsReceived);

        statsStoredCallback = Callback <UserStatsStored_t> .Create(OnStatsStored);

        achievementStoredCallback = Callback <UserAchievementStored_t> .Create(OnAchievementStored);

        bRequestedStats = SteamUserStats.RequestCurrentStats();
    }
Exemple #13
0
        private static void OnUserStatsReceived(UserStatsReceived_t pCallback)
        {
            if (!SteamInitialized)
            {
                return;
            }

            if (pCallback.m_nGameID != Main.SteamAppID || pCallback.m_eResult != EResult.k_EResultOK)
            {
                return;
            }

            //I'm sorry, Evan. We'll need to find somewhere nice to put this part.
            string[] cheevoNames = new string[]
            {
                "ending_a",
                "ending_b",
                "ending_c",
                "ending_d",
                "ending_e",
                "cheating_jerk",
                "pillar_crushed",
                "orbs",
            };
            string[] statNames = new string[]
            {
                "orbs_collected"
            };

            foreach (var cheevo in cheevoNames)
            {
                bool value;
                bool success = SteamUserStats.GetAchievement("cheevo_" + cheevo, out value);
                if (success)
                {
                    _achievementDictionary.Add("cheevo_" + cheevo, value);
                }
            }

            foreach (var stat in statNames)
            {
                int  value;
                bool success = SteamUserStats.GetStat("stat_" + stat, out value);
                if (success)
                {
                    _statDictionary.Add("stat_" + stat, value);
                }
            }
            StatsInitialized = true;
        }
Exemple #14
0
 public static void UploadStats(bool force = false)
 {
     if (!Initialized)
     {
         return;
     }
     if (!_anythingChanged && !force)
     {
         return;
     }
     SteamUserStats.StoreStats();
     _anythingChanged   = false;
     _statsLastUploaded = DateTime.Now;
 }
Exemple #15
0
        public int GetIntStat(AchievementData ach)
        {
            int result;

            if (ach.StatHandle != null)
            {
                SteamUserStats.GetStat(ach.StatHandle, out result);
            }
            else
            {
                SteamUserStats.GetStat(ach.StatKey, out result);
            }
            return(result);
        }
Exemple #16
0
        private void OnDownloadScoresFindLeaderboardCallCompleted(string p_leaderboardName, ELeaderboardDataRequest p_scoreSource, int p_rangeStart, int p_rangeEnd, LeaderboardFindResult_t p_callbackFind, bool p_bIOFailureFind)
        {
            EResult callResultType = p_callbackFind.m_bLeaderboardFound == 1 ? EResult.k_EResultOK : EResult.k_EResultFileNotFound;

            if (CheckAndLogResult <LeaderboardFindResult_t, LeaderboardsDownloadedScoresEventArgs>("OnDownloadScoresFindLeaderboardCallCompleted", callResultType, p_bIOFailureFind, "OnDownloadedScores", ref OnDownloadedScores))
            {
                // download scores
                Execute <LeaderboardScoresDownloaded_t>(SteamUserStats.DownloadLeaderboardEntries(p_callbackFind.m_hSteamLeaderboard, p_scoreSource, p_rangeStart, p_rangeEnd), (p_callbackDownload, p_bIOFailureDownload) => OnDownloadLeaderboardEntriesCallCompleted(p_leaderboardName, p_callbackDownload, p_bIOFailureDownload));
                if (IsDebugLogEnabled)
                {
                    Debug.Log("DownloadScores: leaderboard '" + p_leaderboardName + "' found, starting scores download");
                }
            }
        }
 public void lvl_5_complite()
 {
     if (gameplayParametrs != null && !gameplayParametrs.ThisDemoVersion)
     {
         bool resultYN = false;
         bool unloskYN = false;
         resultYN = SteamUserStats.GetAchievement(name_Complete_lvl_5, out unloskYN);
         if (resultYN && !unloskYN)
         {
             SteamUserStats.SetAchievement(name_Complete_lvl_5);
             to_server_ok = false;
         }
     }
 }
Exemple #18
0
 public void UnlockSteamAchievement(string ID)
 {
     TestSteamAchievement(ID);
     if (!unlockTest)
     {
         Debug.Log("Unlock" + ID);
         SteamUserStats.SetAchievement(ID);
         SteamUserStats.StoreStats();
     }
     else
     {
         Debug.Log("Already Unlock" + ID);
     }
 }
Exemple #19
0
 public override void OnEnter()
 {
     isSuccess.Value = (bool)SteamUserStats.IndicateAchievementProgress((string)achievementAPIname.Value, (uint)CurrentProgress.Value, (uint)MaxProgress.Value);
     if (isSuccess.Value)
     {
         SteamUserStats.StoreStats();
         Fsm.Event(success);
     }
     else
     {
         Fsm.Event(failed);
     }
     Finish();
 }
    public void plus_1_tank_shell()
    {
        if (gameplayParametrs != null && !gameplayParametrs.ThisDemoVersion)
        {
            Destroy_tank_shell++;
            SteamUserStats.SetStat(name_Destroy_tankShell, Destroy_tank_shell);


            if (Destroy_tank_shell == 10)
            {
                to_server_ok = false;
            }
        }
    }
    public void TestNewScoreTop(int NewScoreTop)
    {
        if (ScoreTop < NewScoreTop)
        {
            ScoreTop = NewScoreTop;
            SteamUserStats.SetStat(name_ScoreTop, ScoreTop);

            //Если счет резко отличается то нужно отправить немедленно или если игра закончилать
            if (ScoreTopOldSend * 10 < ScoreTop || (gameplayParametrs != null && gameplayParametrs.GameOver))
            {
                //to_server_ok = false;
            }
        }
    }
 public void zero_score()
 {
     if (gameplayParametrs != null && !gameplayParametrs.ThisDemoVersion)
     {
         bool resultYN = false;
         bool unloskYN = false;
         resultYN = SteamUserStats.GetAchievement(name_zero_score, out unloskYN);
         if (resultYN && !unloskYN)
         {
             SteamUserStats.SetAchievement(name_zero_score);
             to_server_ok = false;
         }
     }
 }
 public void destroy_fighter()
 {
     if (gameplayParametrs != null && !gameplayParametrs.ThisDemoVersion)
     {
         bool resultYN = false;
         bool unloskYN = false;
         resultYN = SteamUserStats.GetAchievement(name_destroy_fighter, out unloskYN);
         if (resultYN && !unloskYN)
         {
             SteamUserStats.SetAchievement(name_destroy_fighter);
             to_server_ok = false;
         }
     }
 }
    public static void GetSteamAchievement(string achievementName)
    {
        if (fa.dontConnectSteam)
        {
            return;
        }

        if (SteamManager.Initialized)
        {
            bool resultBool = false;
            SteamUserStats.GetAchievement(achievementName, out resultBool);
            SteamUserStats.SetAchievement(achievementName);
        }
    }
    void inicialize()
    {
        //Получить
        bool geting_current_acivment = false;

        geting_current_acivment = SteamUserStats.RequestCurrentStats();
        bool           geting_stats = false;
        SteamAPICall_t user         = SteamUserStats.RequestUserStats(SteamUser.GetSteamID());

        if (geting_current_acivment && user != null)
        {
            inicialized_yn = true;
        }
    }
Exemple #26
0
 public void IncrementGoldEarnedStats(long goldEarned)
 {
     if (m_StatsValid)
     {
         m_GoldEarned += (int)goldEarned;
         SteamUserStats.SetStat("Gold Earned", m_GoldEarned);
         if (m_GoldEarned < 10000)
         {
             SteamUserStats.IndicateAchievementProgress("Gold Earned", (uint)m_GoldEarned, 10000);
         }
     }
     SteamUserStats.StoreStats();
     Debug.Log("[SteamStats] " + m_GoldEarned + "Gold Earned");
 }
 public void UploadStatistics()
 {
     if (m_initialised)
     {
         if (m_statsNeedUpload && SteamUserStats.StoreStats())
         {
             m_statsNeedUpload = false;
         }
     }
     else
     {
         m_earlyUpload = true;
     }
 }
Exemple #28
0
 public void SetLeaderBoardScore(int score)
 {
     Debug.Log("[LeaderBoard] Setting leaderboard score to: " + score);
     if (score >= 0 && score <= 5000)
     {
         SteamAPICall_t handle2 = SteamUserStats.UploadLeaderboardScore(hSteamLeaderboard, eLeaderboardUploadScoreMethod, score, pScoreDetails, cScoreDetailsCount);
         m_LeaderBoardScoreUploaded.Set(handle2);
     }
     else if (score >= 5000)
     {
         SteamAPICall_t handle2 = SteamUserStats.UploadLeaderboardScore(hSteamLeaderboard, eLeaderboardUploadScoreMethod, 5000, pScoreDetails, cScoreDetailsCount);
         m_LeaderBoardScoreUploaded.Set(handle2);
     }
 }
Exemple #29
0
 public void UpdateScore(int score)
 {
     if (!s_initialized)
     {
         Debug.LogError("Leaderboard not initialized");
     }
     else
     {
         score = PlayerPrefs.GetInt("high_wave", 0);
         //Change upload method to
         SteamAPICall_t hSteamAPICall = SteamUserStats.UploadLeaderboardScore(s_currentLeaderboard, ELeaderboardUploadScoreMethod.k_ELeaderboardUploadScoreMethodKeepBest, score, null, 0);
         m_uploadResult.Set(hSteamAPICall, OnLeaderboardUploadResult);
     }
 }
Exemple #30
0
    public static void SetAchievement(string id)
    {
        if (SteamManager.Initialized)
        {
            CheckAchievement(id);

            if (!unlocked)
            {
                Debug.Log($"Unlocking {id}...");
                SteamUserStats.SetAchievement(id);
                SteamUserStats.StoreStats();
            }
        }
    }