시상 테이블 사용
이 자습서에서는 재설정 가능한 순위표에서 특정 순위 범위 내의 플레이어 그룹에 대한 일련의 작업을 트리거하는 시상 테이블을 만드는 방법을 안내합니다.
특히, 이는 메일을 트리거하고, 푸시 알림을 보내고, 인벤토리 아이템 및 가상 통화를 지급하고, 또는 순위표 재설정 시 CloudScript 함수를 실행하는 방법입니다.
이 예에서는 재설정이 수행된 후 순위표에서 순위를 기반으로 5명의 플레이어에게 가상 통화를 지급하는 시상 테이블 종료 토너먼트 상을 만드는 방법을 보여 줍니다.
요구 사항
Important
이 자습서는 ‘고급’ 자습서입니다. 아래에 나타난 모든 요구 사항을 충족하는지 확인하세요. 그렇지 않으면 이 자습서를 완료하지 ‘못 할’ 수 있습니다.
- 플레이어에게 어떠한 작업을 수행하기 전에 플레이어가 순위표에 있어야 하기 때문에 플레이어를 만드는 방법에 대한 기본 지식이 필요합니다.
- 시상 테이블이 만들어지는 곳인 게임 관리자에 익숙하지 않은 경우 게임 관리자 빠른 시작을 읽어보는 것이 좋습니다.
- 시상 테이블을 사용하기 위해 재설정 가능한 순위표의 작동 방식에 대한 일반적인 지식이 있어야 합니다. 순위표에 대한 재설정 가능한 통계 및 순위표 사용 자습서를 읽어보세요.
- 또한 가상 통화를 설정해야 합니다.
통화에 대한 자습서를 읽고 다음 매개 변수를 사용하여 두 가지 통화를 설정하세요.
- 통화 코드: GO
- 표시 이름: 골드
- 최초 입금: 200
- 통화 코드: SI
- 표시 이름: 실버
- 최초 입금: 1000
1단계 - 순위표 만들기
게임 관리자에서:
- 왼쪽 메뉴에서 순위표로 이동합니다.
- 새 순위표를 선택합니다.
- 통계 이름 필드에 tournamentScore_manual이라는 순위표를 추가합니다.
- 제공된 드롭다운 메뉴를 사용하여 Reset frequency(빈도 다시 설정) 필드를 수동으로 설정합니다.
- Aggregation method(집계 방법) 필드로 이동하고 제공된 드롭다운 메뉴에서 Maximum (always use the highest value)(최대(항상 가장 큰 값 사용))를 선택합니다.
2단계 - 순위표에 대한 시상 테이블 만들기
이제 순위표를 만들었으니 이를 시상 테이블과 연결할 수 있습니다. 다음으로 이동하세요.
- 순위표로 이동합니다.
- 시상 테이블 탭을 선택합니다.
- 새 시상 테이블 단추를 선택하여 새 시상 테이블 보기로 이동합니다.
새 시상 테이블 보기에서:
- 정보 영역으로 이동하고종료 토너먼트 상 권한이 있는 새 시상 테이블의 이름을 입력합니다.
- 순위표 드롭다운 메뉴에서 tournamentScore_manual을 선택합니다.
이 시상 테이블이 몇 가지 작업을 수행하려면 순위를 설정해야 합니다. 이렇게 하려면 다음을 수행합니다.
- 목차 섹션 아래에서 + 순위 추가를 선택합니다.
- 순위 양식이 표시됩니다.
순위 양식에서:
- 순위 시작 필드의 값이 1인지 확인합니다.
- 끝(포함) 필드의 값이 2인지 확인합니다.
- 유형 드롭다운 메뉴에서 Grant virtual currency(가상 통화 지급)를 선택합니다.
- Virtual currency code(가상 통화 코드) 드롭다운 메뉴에서 GO(골드)를 10만큼 선택합니다.
이제 두 번째 순위 범위를 추가합니다.
- 목차 섹션 아래에서 +순위 추가를 선택합니다(하단에 두 번째 양식이 표시되므로 그것을 사용해도 됩니다).
- 나타나는 순위 양식에서 순위 시작 필드의 값이 3이고 끝(포함) 필드의 값이 5인지 확인합니다.
- Virtual currency code(가상 통화 코드) 드롭다운 메뉴에서 SI(실버)를 10만큼 선택합니다.
3단계 - 플레이어로 순위표 채우기
이제 순위표와 이와 연결된 시상 테이블을 만들었습니다. 다음 단계는 순위표를 플레이어로 채우는 것입니다.
플레이어를 만들기 위해 LoginWithCustomID를 사용합니다. 그런 다음 플레이어를 사용하여 순위표를 UpdatePlayerStatistics로 채웁니다.
UpdatePlayerStatistics를 사용하려면 API 기능에서 활성화해야 합니다.
- 왼쪽 메뉴에서 설정을 선택합니다.
- API 기능 탭을 선택합니다.
- Allow client to post player statistics(클라이언트가 플레이어의 통계를 게시할 수 있도록 허용) 확인란을 선택합니다.
- 그런 다음 화면 아래쪽에 있는 SAVE API FEATURES(API 기능 저장) 단추를 선택합니다.
C# 코드 예제
다음 C# 코드로 5명의 플레이어를 만들고 LoginWithCustomID를 사용하여 이들을 로그인하게 만듭니다.
그러면 이전에 만든 순위표(tournamentScore_manual
)가 UpdatePlayerStatistics를 사용하여 105, 104, 103, 102, 101의 값이 있는 5명의 플레이어로 채워집니다.
// Note: This is a recursive function. Invoke it initially with no parameter
public void CreatePlayerAndPopulateLeaderboard(int playerIndex = 5) {
if (playerIndex <= 0) return;
const string leaderboardName = "tournamentScore_manual";
PlayFabClientAPI.LoginWithCustomID(new LoginWithCustomIDRequest {
CustomId = playerIndex.ToString(),
CreateAccount = true
}, result => OnLoggedIn(result,playerIndex,leaderboardName), FailureCallback);
}
private void OnLoggedIn(LoginResult loginResult, int playerIndex, string leaderboardName) {
Debug.Log("Player has successfully logged in with " + loginResult.PlayFabId);
PlayFabClientAPI.UpdatePlayerStatistics(new UpdatePlayerStatisticsRequest {
Statistics = new List<StatisticUpdate> {
new StatisticUpdate {
StatisticName = leaderboardName,
Value = playerIndex + 100
}
}
}, result=> OnStatisticsUpdated(result,playerIndex), FailureCallback);
}
private void OnStatisticsUpdated(UpdatePlayerStatisticsResult updateResult, int playerIndex) {
Debug.Log("Successfully updated player statistic");
// Recursively invoke for next player
CreatePlayerAndPopulateLeaderboard(playerIndex - 1);
}
private void FailureCallback(PlayFabError error){
Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
Debug.LogError(error.GenerateErrorReport());
}
C# 코드 예제의 결과 확인
순위표가 올바른 값을 가진 5명의 플레이어로 채워졌는지 확인하는 방법은 다음과 같습니다.
- 왼쪽 메뉴에서 순위표를 선택합니다.
- 순위표 탭에서 순위표 목록 보기로 돌아갑니다.
- tournamentScore_manual을 선택하면 105, 104, 103, 102, 101 값을 가진 5명의 플레이어가 나타나야 합니다.
4단계 - 플레이어의 초기 통화 확인
모든 항목을 검사하기 전에:
- 2단계에서 왼쪽 메뉴의플레이어로 돌아갑니다.
- 플레이어 탭으로 이동하고 3단계에서 tournamentScore_manual순위표에 입력한 플레이어를 찾습니다.
- 해당 플레이어의 플레이어 ID 및 가상 통화 탭을 선택합니다.
- 해당 플레이어의 GO(골드) 및 SI(실버) 통화 가치를 기록합니다.
항목을 검사하기 전에 돌아가서 2단계의 플레이어를 테스트합니다.
- 플레이어로 이동하고 3단계에서 tournamentScore_manual 순위표에 입력한 플레이어를 찾습니다.
- 해당 플레이어의 플레이어 ID 및 가상 통화 탭을 선택합니다.
- 해당 플레이어의 GO(골드) 및 SI(실버) 통화 가치를 기록합니다.
- 이제 3단계에서 tournamentScore_manual 순위표에 입력한 나머지 플레이어 4와 5에 대해 동일한 작업을 수행합니다.
- 그들의 GO(골드) 및 SI(실버) 통화 가치를 기록해야 합니다(이는 재설정 후 시상 테이블이 작동하기 위한 확인을 위해 중요).
5단계 - 보상을 지급하도록 순위표 다시 설정
이제 순위표로 이동합니다.
순위표 목록 보기로 돌아갑니다.
tournamentScore_manual을 선택합니다.
순위표에서 플레이어의 위치를 기록합니다(‘인덱스가 0부터 시작’하므로 위치 0은 ‘첫 번째’ 플레이어가 됩니다).
RESET NOW(지금 재설정) 단추를 선택합니다.
재설정 단추를 다시 선택하여 순위표가 재설정되도록 합니다.
그러면 플레이어 목록이 지워집니다.
- 화면 맨 위에서 RESET NOW(지금 재설정) 단추를 선택합니다.
- Reset this Leaderboard now?(이 순위표를 지금 재설정하시겠습니까?)라는 메시지가 나타나면 재설정 단추를 선택하여 재설정을 확인합니다.
- 그러면 플레이어 목록이 지워집니다.
6단계 - 시상 테이블이 작동하는지 테스트
시상 테이블이 작동하는지 여부를 확인하려면 순위표의 플레이어를 살펴 올바른 금액의 통화를 지급받았는지 확인할 수 있습니다. 그러면 플레이어의 PlayStream 디버거에서 빠르게 확인할 수 있습니다.
PlayStream 디버거에서 이를 확인하려면:
- 왼쪽 메뉴에서 플레이어를 선택합니다.
- PlayStream 탭에서 순위표 이벤트에 플레이어 순위가 표시되며, 그 다음으로 가상 통화 업데이트가 표시됩니다.
이제 플레이어가 올바른 통화를 받았는지 수동으로 확인합니다.
- 왼쪽 메뉴에서 플레이어를 선택합니다.
- 플레이어 탭에서 화면의 가상 통화 영역으로 이동합니다.
- 통화가 올바르게 지급되었는지 확인합니다.
- 이는 이전에 기록한 금액보다 ‘1이 더’ 많아야 합니다.
- 순위표에서 위치가 0 또는 1인 플레이어들이 10 골드를 얻고 ‘실버는 얻지 못했음’을 알 수 있습니다.
- 한편 위치가 2, 3 및 4인 플레이어는 10 실버를 받고 ‘골드를 받지 못했습니다’.
- 이는 시상 테이블에 대해 설정한 작업과 일치합니다.
가상 통화가 올바르게 지급되었는지 확인하는 또 다른 방법은 다음과 같습니다.
- 플레이어로 이동합니다.
- 이벤트 기록을 확인합니다.
- 지급된 가상 통화에 대해 변경된 금액에 대한 세부 정보와 함께 player_virtual_currency_balance_changed 이벤트가 표시됩니다.