다음을 통해 공유


XblAchievementsUpdateAchievementAsync

도전 과제 진행 상태를 업데이트하고 도전 과제를 잠금 해제할 수 있도록 허용합니다.

구문

HRESULT XblAchievementsUpdateAchievementAsync(  
         XblContextHandle xboxLiveContext,  
         uint64_t xboxUserId,  
         const char* achievementId,  
         uint32_t percentComplete,  
         XAsyncBlock* async  
)  

매개 변수

xboxLiveContext _In_
형식: XblContextHandle

XblContextCreateHandle로 생성된 Xbox Live 컨텍스트 핸들입니다.

xboxUserId _In_
형식: uint64_t

플레이어의 Xbox 사용자 ID입니다.

achievementId _In_z_
형식: char*

XDP 또는 개발자 센터에서 정의된 UTF-8로 인코딩된 도전 과제 ID입니다.

percentComplete _In_
형식: uint32_t

도전 과제 완료율로, 진행 상태를 나타냅니다. 유효한 값은 1에서 100 사이입니다. 도전 과제를 잠금 해제하려면 100으로 설정합니다. 진행 상태는 서버에서 전송된 가장 높은 값으로 설정됩니다.

async _In_
형식: XAsyncBlock*

호출자가 할당한 AsyncBlock입니다.

반환 값

형식: HRESULT

이 API 작업에 대한 HRESULT 반환 코드입니다.

설명

이 API는 PC 및 Xbox One에서 오프라인 상태에서도 작동합니다. 오프라인 업데이트는 타이틀이 실행 중이 아니어도 연결이 다시 설정되었을 때 시스템에서 게시됩니다. 비동기 작업의 결과는 AsyncBlock 콜백 내에서 또는 AsyncBlock이 완료된 후 XAsyncGetStatus를 호출하여 가져올 수 있습니다. 도전 과제가 이미 잠금 해제되었거나 진행 상황 값이 현재 서버에 기록된 값보다 작거나 같은 경우 콜백 내의 XAsyncGetStatus()에서 HTTP_E_STATUS_NOT_MODIFIED(0x80190130L)를 반환합니다.

REST 호출

V2 POST /users/xuid({xuid})/achievements/{scid}/update

요건

헤더: achievements_c.h

도서관: Microsoft.Xbox.Services.14x.GDK.C.lib

참고 항목

achievements_c