> ## 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.

# XblAchievementsManagerUpdateAchievement

> XblAchievementsManagerUpdateAchievement

# XblAchievementsManagerUpdateAchievement

允許更新成就進度及解除鎖定成就。

## 語法

```cpp theme={null}
HRESULT XblAchievementsManagerUpdateAchievement(  
         uint64_t xboxUserId,  
         const char* achievementId,  
         uint8_t currentProgess  
)  
```

### 參數

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

玩家的 XBOX 使用者識別碼。

*achievementId*   \_In\_\
類型：char\*

Dev Center 所定義的 UTF-8 編碼成就識別碼。

*currentProgess*   \_In\_\
類型：uint8\_t

表示進度的成就完成百分比。有效值為 1 到 100。設定為 100 即可解除鎖定成就。伺服器會將進度設定為所傳送的最高值。

### 傳回值

類型：HRESULT

此 API 作業的 HRESULT 傳回碼。

## 備註

假設已使用 [XblAchievementsManagerAddLocalUser](/zh-TW/reference/live/xsapi-c/achievements_manager_c/functions/xblachievementsmanageraddlocaluser) 成功初始化 Achievements Manager，即使在 PC 和 XBOX 主機上離線時，此 API 仍可運作。重新建立連線時，系統會張貼離線更新，即使遊戲並未執行也是如此。作業的結果不會立即反映在本機。最早會在下一個畫面格呼叫 DoWork 之後反映更新。反映變更之後，DoWork 傳回的陣列將包含事件類型為 AchievementProgressUpdated 的 [XblAchievementsManagerEvent](/zh-TW/reference/live/xsapi-c/achievements_manager_c/structs/xblachievementsmanagerevent)，如果新進度導致成就解除鎖定，還可能包含類型為 AchievementUnlocked 的額外事件。如果成就已解除鎖定，或進度值小於或等於從伺服器快取的值，此函式將分別傳回 E\_NOT\_VALID\_STATE 或 E\_INVALIDARG。只有以遊戲為基礎的成就可以使用此函式更新。以事件為基礎的成就無法使用此函式更新。

## REST 呼叫

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

## 需求

**標頭：** achievements\_manager\_c.h

**程式庫：** Microsoft.Xbox.Services.14x.GDK.C.lib

## 另請參閱

[achievements\_manager\_c](/zh-TW/reference/live/xsapi-c/achievements_manager_c/achievements_manager_c_members)


## Related topics

- [XblAchievementsManagerAddLocalUser](/zh-TW/reference/live/xsapi-c/achievements_manager_c/functions/xblachievementsmanageraddlocaluser.md)
- [XBOX 成就管理員 API 概觀](/zh-TW/services/xbox-services/player-data/achievements/achievements-manager/live-achievements-manager-overview.md)
- [XblAchievementsUpdateAchievementAsync](/zh-TW/reference/live/xsapi-c/achievements_c/functions/xblachievementsupdateachievementasync.md)
- [XblAchievementsManagerGetAchievements](/zh-TW/reference/live/xsapi-c/achievements_manager_c/functions/xblachievementsmanagergetachievements.md)
- [XblAchievementsManagerGetAchievement](/zh-TW/reference/live/xsapi-c/achievements_manager_c/functions/xblachievementsmanagergetachievement.md)
