> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XblAchievementsUpdateAchievementForTitleIdAsync

> XblAchievementsUpdateAchievementForTitleIdAsync

# XblAchievementsUpdateAchievementForTitleIdAsync

允许更新成就进度并解锁成就。

## 语法

```cpp theme={null}
HRESULT XblAchievementsUpdateAchievementForTitleIdAsync(  
         XblContextHandle xboxLiveContext,  
         uint64_t xboxUserId,  
         const uint32_t titleId,  
         const char* serviceConfigurationId,  
         const char* achievementId,  
         uint32_t percentComplete,  
         XAsyncBlock* async  
)  
```

### 参数

*xboxLiveContext*   \_In\_\
类型：[XblContextHandle](/reference/live/xsapi-c/types_c/handles/xblcontexthandle)

使用 XblContextCreateHandle 创建的 XBOX Live 上下文句柄。

*xboxUserId*   \_In\_\
类型：uint64\_t

玩家的 XBOX 用户 ID。

*titleId*   \_In\_\
类型：uint32\_t

标题 ID。

*serviceConfigurationId*   \_In\_z\_\
类型：char\*

标题的服务配置 ID (SCID)。SCID 区分大小写，因此请直接从合作伙伴中心复制粘贴。

*achievementId*   \_In\_z\_\
类型：char\*

由 XDP 或开发人员中心定义的 UTF-8 编码的成就 ID。

*percentComplete*   \_In\_\
类型：uint32\_t

用于指示进度的成就完成百分比。有效值为 1 到 100。设置为 100 可解锁成就。服务端会将进度设置为所发送值中的最大值。

*async*   \_In\_\
类型：XAsyncBlock\*

调用方分配的 AsyncBlock。

### 返回值

类型：HRESULT

此 API 操作的 HRESULT 返回代码。

## 备注

即使在 PC 和 XBOX One 上离线时，此 API 也能正常工作。即使标题未在运行，系统也会在重新建立连接时发布离线更新。可通过在 AsyncBlock 回调内或 AsyncBlock 完成后调用 [XAsyncGetStatus](/reference/system/xasync/functions/xasyncgetstatus) 来获取异步操作的结果。如果此调用意外失败，请确保 XblInitArgs 中的 SCID 是正确的，因为该 SCID 区分大小写。

## REST 调用

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

## 要求

**头文件：** achievements\_c.h

**库：** Microsoft.Xbox.Services.14x.GDK.C.lib

## 另请参阅

[achievements\_c](/reference/live/xsapi-c/achievements_c/achievements_c_members)
