Xbox Live 소셜 리더보드 가져오기
이 문서는 Xbox Live의 소셜 리더보드를 가져오는 함수인 xboxlive_stats_get_social_leaderboard
에 대해 설명합니다. 이 함수를 사용하면 특정 통계에 대한 순위의 소셜 리더보드를 검색할 수 있습니다.
함수 설명
이 함수는 다음과 같은 매개변수를 사용합니다:
- user_id: 사용자 ID (예:
xboxlive_get_user()
함수로 반환된 값) - stat: 생성할 글로벌 리더보드의 통계 문자열
- num_entries: 검색할 글로벌 리더보드의 항목 수
- start_rank: 리더보드에서 시작할 순위 (사용자가 지정한 경우 0 사용)
- start_at_user: 사용자 ID 순위에서 시작할지 여부 (true 또는 false)
- favourites_only: "즐겨찾기"로 표시된 친구만 표시할지 여부 (true 또는 false)
반환 값
이 함수는 다음과 같은 정보를 포함하는 콜백을 생성합니다:
- id:
achievement_stat_event
상수 - event: "GetLeaderboardComplete" 문자열
- userid: 요청과 관련된 사용자 ID
- error: 성공 시 0, 오류 발생 시 다른 값
- errormessage: 오류 메시지 (있을 경우)
- display_name: 제공자 대시보드에서 정의된 리더보드의 고유 ID
- numentries: 수신한 리더보드 항목 수
리더보드 데이터는 다음 형식으로 포함됩니다:
- PlayerN: 플레이어 이름
- PlayeridN: 플레이어의 고유 사용자 ID
- RankN: 리더보드 내 플레이어의 순위
- ScoreN: 플레이어의 점수
사용 예제
다음은 이 함수를 사용하는 확장된 예제입니다.
// Room Start 또는 Create 이벤트에서 호출
xboxlive_stats_get_social_leaderboard(user_id, "GlobalTime", 20, 1, false, false);
위 코드는 게임의 모든 글로벌 리더보드 위치 목록을 가져오는 데 사용됩니다. 이후 소셜 비동기 이벤트 콜백을 처리하는 방법은 다음과 같습니다:
if (async_load[? "id"] == achievement_stat_event) {
if (async_load[? "event"] == "GetLeaderboardComplete") {
global.numentries = async_load[? "numentries"];
for(var i = 0; i < numentries; i++) {
global.playername[i] = async_load[? "Player" + string(i)];
global.playerid[i] = async_load[? "Playerid" + string(i)];
global.playerrank[i] = async_load[? "Rank" + string(i)];
global.playerscore[i] = async_load[? "Score" + string(i)];
}
}
}
위 코드는 소셜 비동기 이벤트에서 반환된 DS 맵을 확인하고, "id"가 확인된 상수와 일치하는 경우, 리더보드 데이터가 반환되었는지 확인한 후, 맵을 반복하여 다양한 값을 여러 글로벌 배열에 저장합니다.
활용 예제
예제 번호 | 설명 |
---|---|
1 | 특정 사용자에 대한 리더보드 정보를 가져오기 |
2 | 즐겨찾기 친구의 리더보드 점수만 표시하기 |
3 | 리더보드의 특정 순위부터 시작하기 |
4 | 리더보드 항목 수를 동적으로 조정하기 |
5 | 리더보드 데이터를 화면에 표시하기 |
이 문서에서는 Xbox Live 소셜 리더보드를 가져오는 방법과 그 활용 예제를 설명했습니다.