Xbox Live 사용자 통계 가져오기
이 문서는 Xbox Live 서버에서 특정 사용자 통계를 가져오는 방법에 대해 설명합니다. xboxlive_get_stats_for_user
함수를 사용하여 사용자 ID와 게임 서비스 구성 ID, 필요한 통계 이름을 제공하면 됩니다. 최대 14개의 통계를 요청할 수 있지만, 요청의 총 길이에 따라 최대 통계 수가 달라질 수 있습니다.
함수 설명
- 함수 이름:
xboxlive_get_stats_for_user
- 사용법:
- 사용자 ID는
xboxlive_get_user()
함수로 얻을 수 있습니다. - 게임 서비스 구성 ID는 XDP 콘솔에서 확인할 수 있습니다.
- 요청할 통계 이름을 입력합니다.
반환 값
- 요청이 성공하면 0을 반환합니다.
- 오류가 발생하면 -1을 반환합니다.
- 비동기 이벤트가 트리거됩니다.
비동기 이벤트
이벤트는 async_load
DS 맵을 포함하며, 다음과 같은 키를 파싱해야 합니다:
키 | 설명 |
---|---|
event_type | "stat_result" 문자열이 포함되어야 함 |
user | 요청된 통계의 사용자 ID |
추가적으로 요청한 통계 이름과 서버에서의 값이 포함될 수 있습니다. 만약 사용자가 해당 통계를 생성하지 않았다면, 해당 통계에 대한 값은 반환되지 않을 수 있습니다.
오류 처리
요청 길이가 너무 길어 실패할 경우, 콘솔에 다음과 같은 오류 코드가 표시됩니다: - xboxlive_get_stats_for_user - exception occurred getting results - 0x80190190
이 경우, 비동기 이벤트 DS 맵에는 "succeeded" 키가 "0" 값으로 포함되어야 하며, 더 적은 수의 통계를 요청해야 합니다.
함수 구문
xboxlive_get_stats_for_user(user_id, serviceconfig_id, statname1, …);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
user_id | Xbox User ID | 사용자 ID 포인터 |
serviceconfig_id | String | 서비스 구성 파일 ID |
statname1 (2, 3, ...) | Strings | 정보를 가져올 통계 이름들 |
활용 예제
다음은 사용자 ID를 가져오고 특정 통계 정보를 요청하는 코드 예제입니다:
var _uid = xboxlive_get_user(0);
var _configid = "00000000-0000-0000-0000-000000000000";
xboxlive_get_stats_for_user(_uid, _configid, "GameProgress", "CurrentMode");
이 코드는 사용자 ID를 가져온 후, 해당 사용자에 대한 특정 통계 정보를 요청합니다.
추가적인 활용 예제:
// 여러 통계를 요청하는 예제
xboxlive_get_stats_for_user(_uid, _configid, "TotalScore", "Achievements", "PlayTime");
// 통계 요청 후 결과 처리 예제
if (result == 0) {
// 성공적으로 통계를 가져온 경우
var stats = async_load;
if (ds_map_exists(stats, "GameProgress")) {
var progress = stats[? "GameProgress"];
// 진행 상황 처리
}
}
이 예제들은 Xbox Live API를 활용하여 사용자 통계를 효과적으로 가져오고 처리하는 방법을 보여줍니다.