XblAchievementsUpdateAchievementAsync
Allow achievement progress to be updated and achievements to be unlocked.
Syntax
HRESULT XblAchievementsUpdateAchievementAsync(
XblContextHandle xboxLiveContext,
uint64_t xboxUserId,
const char* achievementId,
uint32_t percentComplete,
XAsyncBlock* async
)
Parameters
xboxLiveContext _In_
Type: XblContextHandle
An xbox live context handle created with XblContextCreateHandle.
xboxUserId _In_
Type: uint64_t
The Xbox User ID of the player.
achievementId _In_z_
Type: char*
The UTF-8 encoded achievement ID as defined by XDP or Dev Center.
percentComplete _In_
Type: uint32_t
The completion percentage of the achievement to indicate progress. Valid values are from 1 to 100. Set to 100 to unlock the achievement. Progress will be set by the server to the highest value sent
async _In_
Type: XAsyncBlock*
Caller allocated AsyncBlock.
Return value
Type: HRESULT
HRESULT return code for this API operation.
Remarks
This API will work even when offline on PC and Xbox One. Offline updates will be posted by the system when connection is re-established even if the title isn't running. The result of the asynchronous operation can be obtained by calling XAsyncGetStatus inside the AsyncBlock callback or after the AsyncBlock is complete. If the achievement has already been unlocked or the progress value is less than or equal to what is currently recorded on the server, then XAsyncGetStatus() inside the callback will return HTTP_E_STATUS_NOT_MODIFIED (0x80190130L).
REST Call
V2 POST /users/xuid({xuid})/achievements/{scid}/update
Requirements
Header: achievements_c.h
Library: Microsoft.Xbox.Services.14x.GDK.C.lib