Displaying a specific player ranking using the Leaderboard v1 (Legacy)
Overview
The Leaderboard service empowers you to create a competitive atmosphere amongst players, by displaying the Leaderboard and providing information about player ranking.
Goals
In this section you will learn how to use the SDK to retrieve a Leaderboard, or retrieve just a specified player's ranking.
Prerequisites
- Access to the AccelByte Admin Portal.
- Access to the AccelByte SDK for Unreal or Unity.
- Access to the AccelByte Leaderboard API documentation for further reference.
Display the Leaderboard Rankings
To display the Leaderboard rankings, you need to get the Leaderboard data. The data will be returned for the specified life cycle of the Leaderboard (daily, weekly, monthly, etc.). You can also specify a limit to the number of players that you want to retrieve data on (for example, top 10, or top 50). And you can specify an offset, so you can retrieve the next 10, next 50, and so on, if you wish to display the Leaderboard in pages.
You can use the following function to get the Leaderboard rankings:
- Unreal Engine
- Unity
Unreal SDK - Get Leaderboard rankings
FString LeaderboardCode = FString("SomeLeaderboardCode");
EAccelByteLeaderboardTimeFrame TimeFrame = EAccelByteLeaderboardTimeFrame::ALL_TIME;
int32 Offset = 0;
int32 Limit = 99;
FRegistry::Leaderboard.GetRankings(LeaderboardCode, TimeFrame, Offset, Limit, THandler<FAccelByteModelsLeaderboardRankingResult>::CreateLambda([](const FAccelByteModelsLeaderboardRankingResult& Result)
{
// Do something if GetRankings has been successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetRankings has an error
UE_LOG(LogTemp, Log, TEXT("Error GetRankings, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
}));
Unity SDK - Get Leaderboard rankings
string leaderboardCode = "SomeLeaderboardCode";
LeaderboardTimeFrame timeFrame= LeaderboardTimeFrame.ALL_TIME;
int offset = 0;
int limit = 99;
AccelBytePlugin.GetLeaderboard().GetRankings(leaderboardCode, timeFrame, offset, limit, result =>
{
if (result.IsError)
{
// Do something if GetRankings has an error
Debug.Log($"Error GetRankings, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if GetRankings has been successful
}
});
Display a Player's Ranking
You can display or highlight a specific player's rank.
You can get a specific player's ranking using the User ID, with the following function:
- Unreal Engine
- Unity
Unreal SDK - Get specific player's ranking
FString UserId = FString("SomeUserId");
FString LeaderboardCode = FString("SomeLeaderboardCode");
FRegistry::Leaderboard.GetUserRanking(UserId, LeaderboardCode, THandler<FAccelByteModelsUserRankingData>::CreateLambda([](const FAccelByteModelsUserRankingData& Result)
{
// Do something if GetUserRanking has been successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetUserRanking has an error
UE_LOG(LogTemp, Log, TEXT("Error GetUserRanking, Error Code: %d Error Meessage: %s"), ErrorCode, *ErrorMessage);
}));
Unity SDK - Get specific player's ranking
string userId = "SomeUserId";
string leaderboardCode = "SomeLeaderboardCode";
AccelBytePlugin.GetLeaderboard().GetUserRanking(userId, leaderboardCode, result =>
{
if (result.IsError)
{
// Do something if GetUserRanking has an error
Debug.Log($"Error GetUserRanking, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if GetUserRanking has been successful
}
});