Xbox Live 성취도 진행 업데이트
이 문서는 Xbox Live의 성취도 진행 상황을 업데이트하는 함수에 대해 설명합니다. 이 함수를 사용하면 특정 사용자의 성취도 진행 상황을 설정할 수 있습니다.
함수 설명
xboxlive_achievements_set_progress
함수는 성취도의 진행 상황을 업데이트하는 데 사용됩니다. 이 함수는 다음과 같은 인자를 필요로 합니다:
- user_id: 성취도를 설정할 사용자의 ID입니다. 이 ID는
xboxlive_get_user()
함수에서 반환됩니다. - achievement: 설정할 성취도입니다. 이는 XDP/Windows Dev Center에서 생성할 때 할당된 성취도 ID입니다.
- progress: 설정할 진행 값으로, 0에서 100 사이의 값을 입력합니다. 현재 진행 값보다 낮은 값으로 업데이트하려고 하면 시스템에서 거부됩니다.
문법
xboxlive_achievements_set_progress(user_id, achievement, progress);
인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
user_id | 문자열 | 성취도를 설정할 사용자의 ID |
achievement | 문자열 | 설정할 성취도 |
progress | 정수 | 설정할 진행 값 (0에서 100 사이) |
활용 예제
다음은 이 함수를 어떻게 사용할 수 있는지에 대한 확장된 예제입니다.
- 리더보드 가져오기: 먼저, 사용자의 글로벌 리더보드 위치를 가져옵니다.
xboxlive_stats_get_social_leaderboard(user_id, "GlobalTime", 20, 1, false, false);
- 진행 상황 계산: 글로벌 변수에 기반하여 진행 상황을 계산합니다.
var _progress = (global.Level / global.LevelMax) * 100;
- 성취도 진행 업데이트: 계산된 진행 상황을 사용하여 성취도를 업데이트합니다.
xboxlive_achievements_set_progress(user_id, "Game_Completed", _progress);
이 예제는 사용자가 게임을 완료했을 때 성취도 진행 상황을 업데이트하는 방법을 보여줍니다.
추가 활용 예제
- 게임 내 특정 이벤트 발생 시 성취도 업데이트:
if (player.hasDefeatedBoss) {
xboxlive_achievements_set_progress(user_id, "Boss_Defeated", 100);
}
- 레벨 업 시 성취도 업데이트:
if (global.Level >= global.LevelMax) {
xboxlive_achievements_set_progress(user_id, "Level_Up", 100);
}
- 특정 아이템 수집 시 성취도 업데이트:
if (player.itemsCollected >= requiredItems) {
var progress = (player.itemsCollected / requiredItems) * 100;
xboxlive_achievements_set_progress(user_id, "Items_Collected", progress);
}
이러한 예제들은 다양한 상황에서 성취도를 업데이트하는 방법을 보여줍니다.