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를 활용하여 사용자 통계를 효과적으로 가져오고 처리하는 방법을 보여줍니다.