/// <summary> /// 查询排行榜数据回调 /// </summary> /// <param name="pCallback"></param> /// <param name="bIOFailure"></param> void OnLeaderboardScoresDownloaded(LeaderboardScoresDownloaded_t pCallback, bool bIOFailure) { m_SteamLeaderboardEntries = pCallback.m_hSteamLeaderboardEntries; List <GetLeaderboardEntriesResult.LeaderboardEntries> listData = new List <GetLeaderboardEntriesResult.LeaderboardEntries>(); for (int i = 0; i < pCallback.m_cEntryCount; i++) { LeaderboardEntry_t entry_T; bool ret = SteamUserStats.GetDownloadedLeaderboardEntry(m_SteamLeaderboardEntries, i, out entry_T, null, 0); GetLeaderboardEntriesResult.LeaderboardEntries itemData = new GetLeaderboardEntriesResult.LeaderboardEntries(); itemData.score = entry_T.m_nScore; itemData.rank = entry_T.m_nGlobalRank; itemData.steamID = entry_T.m_steamIDUser.ToString(); listData.Add(itemData); } if (mFindDataType == 0) { OnLeaderboardEntriesFindResultCallBack.leaderboradEntriesFindResultForSelf(listData); } else if (mFindDataType == 1) { OnLeaderboardEntriesFindResultCallBack.leaderboradEntriesFindResultForAll(listData); } }
private void OnLeaderBoardScoresDownloaded(LeaderboardScoresDownloaded_t param, bool bIOFailure) { List <LeaderBoardVars> results = new List <LeaderBoardVars>(); if (bIOFailure) { Debug.LogError("Error getting leader board entries"); } else { int count = param.m_cEntryCount; SteamLeaderboardEntries_t entries = param.m_hSteamLeaderboardEntries; for (int i = 0; i < count; i++) { LeaderboardEntry_t entry; int[] details = new int[MAX_DETAILS]; if (SteamUserStats.GetDownloadedLeaderboardEntry(entries, i, out entry, details, MAX_DETAILS)) { LeaderBoardVars leaderBoardVars = ExtractLeaderBoardVars(entry, details); results.Add(leaderBoardVars); } } results = SortEntries(results); } callbackAction(results, false); }
//This checks if the leaderboard was successfully downloaded or not and updates the variables that'll be used in conjuction with the SteamAPI Handler static private void OnLeaderBoardScoresDownloaded(LeaderboardScoresDownloaded_t _callback, bool _IOFailure) { m_leaderboardEntries = _callback.m_hSteamLeaderboardEntries; m_leaderboardCount = _callback.m_cEntryCount; Debug.Log("Leaderboard: " + _callback.m_hSteamLeaderboard + " Entries: " + _callback.m_hSteamLeaderboardEntries + "Count: " + _callback.m_cEntryCount); }
private void OnLeaderboardFindAroundUser(LeaderboardScoresDownloaded_t pCallback, bool failure) { Debug.Log("STEAM LEADERBOARDS: found " + pCallback.m_cEntryCount + " entries around user with failure: " + failure); s_entriesAroundUser = pCallback.m_hSteamLeaderboardEntries; entriesAroundUser = GetDownloadedEntries(s_entriesAroundUser, pCallback.m_cEntryCount); OnLeaderboardUpdate.Invoke(failure); }
private void OnLeaderboardScoresDownloadedForUserList(LeaderboardScoresDownloaded_t itemResult, bool bIOFailure) { if (bIOFailure) { if (mEntriesCallBack != null) { mEntriesCallBack.GetEntriesForUserListFail(SteamLeaderboardFailEnum.GETLIST_FAIL); } return; } SteamLeaderboardEntries_t entriesData = itemResult.m_hSteamLeaderboardEntries; List <SteamLeaderboardEntryBean> listData = new List <SteamLeaderboardEntryBean>(); for (int i = 0; i < itemResult.m_cEntryCount; i++) { LeaderboardEntry_t entry_T; int[] detailsInt = new int[64]; SteamUserStats.GetDownloadedLeaderboardEntry(entriesData, i, out entry_T, detailsInt, 64); SteamLeaderboardEntryBean itemData = new SteamLeaderboardEntryBean { score = entry_T.m_nScore, rank = entry_T.m_nGlobalRank, steamID = entry_T.m_steamIDUser, details = detailsInt }; listData.Add(itemData); } if (mEntriesCallBack != null) { mEntriesCallBack.GetEntriesForUserListSuccess(itemResult.m_hSteamLeaderboard.m_SteamLeaderboard, listData); } }
private void OnLeaderboardFindTopTen(LeaderboardScoresDownloaded_t pCallback, bool failure) { Debug.Log("STEAM LEADERBOARDS: found top " + pCallback.m_cEntryCount + " entries with failure: " + failure); s_entriesTopTen = pCallback.m_hSteamLeaderboardEntries; entriesTopTen = GetDownloadedEntries(s_entriesTopTen, pCallback.m_cEntryCount); OnLeaderboardUpdate.Invoke(failure); }
LeaderboardEntry_t[] GetDownloadedEntries(SteamLeaderboardEntries_t entries, int count) { LeaderboardEntry_t[] e = new LeaderboardEntry_t[count]; for (int i = 0; i < count; i++) { LeaderboardEntry_t entry; SteamUserStats.GetDownloadedLeaderboardEntry(entries, i, out entry, new int[] { }, 0); e[i] = entry; } return(e); }
/// <summary> /// Ons the leaderboard scores downloaded. /// </summary> /// <param name="pCallback">P callback.</param> /// <param name="bIOFailure">If set to <c>true</c> b IOF ailure.</param> private void OnLeaderboardScoresDownloaded(LeaderboardScoresDownloaded_t pCallback, bool bIOFailure) { Debug.Log("[" + LeaderboardScoresDownloaded_t.k_iCallback + " - LeaderboardScoresDownloaded] - " + pCallback.m_hSteamLeaderboard + " -- " + pCallback.m_hSteamLeaderboardEntries + " -- " + pCallback.m_cEntryCount); SteamLeaderboardEntries = pCallback.m_hSteamLeaderboardEntries; CurrentDownloadEntryCnt = pCallback.m_cEntryCount; if (callBackDownload != null) { callBackDownload(pCallback); } }
private void OnLeaderboardTop100Downloaded(LeaderboardScoresDownloaded_t pCallback, bool bIOFailure) { if (pCallback.m_cEntryCount == 0) { Debug.Log("[LeaderBoard] Top100: No entries Found"); } else { Debug.Log("[LeaderBoardTop100] Top100: " + pCallback.m_cEntryCount + " entries found"); topEntriesCount = pCallback.m_cEntryCount; hSteamTop100Entries = pCallback.m_hSteamLeaderboardEntries; downLoadingTop100Entries = false; } }
private void OnleaderboardScoresDownloaded(LeaderboardScoresDownloaded_t pCallback, bool bIOFailure) { if (pCallback.m_cEntryCount == 0) { Debug.Log("[LeaderBoard] No entries Found"); SetLeaderBoardScore(1200); uic.intro_playerMMR.text = "mmr: 1200"; pc.playerMMR = 1200; pc.newPlayer = true; uic.fetchSteamLeaderboardEntry = false; } else { Debug.Log("[LeaderBoard] " + pCallback.m_cEntryCount + " entry found"); hSteamLeaderboardEntry = pCallback.m_hSteamLeaderboardEntries; downLoadingUserEntry = false; downloadedLeaderboard = true; } }
private void OnLeaderboardFindUser(LeaderboardScoresDownloaded_t pCallback, bool failure) { if (pCallback.m_cEntryCount == 0) { failure = true; } Debug.Log("STEAM LEADERBOARDS: found user entry with failure: " + failure); s_userEntry = pCallback.m_hSteamLeaderboardEntries; if (pCallback.m_cEntryCount == 1) { entryUser = GetDownloadedEntries(s_userEntry, pCallback.m_cEntryCount)[0]; } else { failure = true; } OnLeaderboardUpdate.Invoke(failure); }
private void OnLeaderboardScoresDownloaded(LeaderboardScoresDownloaded_t pCallback, bool bIOFailure) { LeaderboardScoreEntryArg arg = new LeaderboardScoreEntryArg("", -1, 0); if (pCallback.m_hSteamLeaderboard != null) { KeyValuePair <string, SteamLeaderboard_t?>?entry = leaderbordsStatus.Where(y => y.Value == pCallback.m_hSteamLeaderboard).FirstOrDefault(); if (entry != null) { arg.LeaderboardId = entry.Value.Key; } } if (!bIOFailure) { SteamLeaderboardEntries_t m_SteamLeaderboardEntries = pCallback.m_hSteamLeaderboardEntries; LeaderboardEntry_t LeaderboardEntry; bool ret = SteamUserStats.GetDownloadedLeaderboardEntry(m_SteamLeaderboardEntries, 0, out LeaderboardEntry, null, 0); if (ret) { arg.Rank = LeaderboardEntry.m_nGlobalRank; arg.Score = LeaderboardEntry.m_nScore; } else { arg.Rank = -1; } } else { arg.Rank = -1; } if (!string.IsNullOrEmpty(arg.LeaderboardId)) { RaiseGameServiceEvent(new GameServiceEvent(GameServiceEventType.LeaderboardScoreReady, arg)); } }
private void OnLeaderboardScoresDownloaded(LeaderboardScoresDownloaded_t pCallback, bool bIOFailure) { Debug.Log("[" + LeaderboardScoresDownloaded_t.k_iCallback + " - LeaderboardScoresDownloaded] - " + pCallback.m_hSteamLeaderboard + " -- " + pCallback.m_hSteamLeaderboardEntries + " -- " + pCallback.m_cEntryCount); m_SteamLeaderboardEntries = pCallback.m_hSteamLeaderboardEntries; }
internal bool GetDownloadedLeaderboardEntry(SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, ref LeaderboardEntry_t pLeaderboardEntry, [In, Out] int[] pDetails, int cDetailsMax) { var returnValue = _GetDownloadedLeaderboardEntry(Self, hSteamLeaderboardEntries, index, ref pLeaderboardEntry, pDetails, cDetailsMax); return(returnValue); }
public static extern bool ISteamUserStats_GetDownloadedLeaderboardEntry(SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, out LeaderboardEntry_t pLeaderboardEntry, [In, Out] int[] pDetails, int cDetailsMax);
public static bool GetDownloadedLeaderboardEntry(SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, out LeaderboardEntry_t pLeaderboardEntry, int[] pDetails, int cDetailsMax) { InteropHelp.TestIfAvailableClient(); return NativeMethods.ISteamUserStats_GetDownloadedLeaderboardEntry(hSteamLeaderboardEntries, index, out pLeaderboardEntry, pDetails, cDetailsMax); }
private static extern bool _GetDownloadedLeaderboardEntry(IntPtr self, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, ref LeaderboardEntry_t pLeaderboardEntry, [In, Out] int[] pDetails, int cDetailsMax);