클라우드 동기화 함수 설명
이 문서에서는 게임 시작 시 호출되는 cloud_synchronise 함수에 대해 설명합니다. 이 함수는 클라우드 서비스의 현재 상태를 가져오는 데 사용됩니다. 함수는 고유한 ID 값을 반환하며, 이 값은 비동기 클라우드 이벤트에서 DS 맵의 관련 정보를 가져오는 데 사용됩니다.
함수 설명
cloud_synchronise 함수는 클라우드에서 데이터를 요청하고 적절한 비동기 이벤트를 트리거합니다. 이 이벤트에서 반환된 async_load DS 맵에서 다음과 같은 값을 확인할 수 있습니다:
| 키 | 설명 |
|---|---|
| status | 상태 코드. 음수 값은 오류를 나타내며, 오류 설명은 errorString에 포함됩니다. 0 또는 양수 값은 성공을 나타냅니다. 성공 시 resultString에 반환된 데이터 또는 성공 메시지가 포함됩니다. |
| id | 호출된 함수에서 반환된 ID. 여러 개의 클라우드 요청을 보낸 경우, 이 값을 사용하여 어떤 요청에 대한 응답인지 확인할 수 있습니다. |
| description | 마지막으로 업로드된 파일의 설명. |
| resultString | 클라우드에서 반환된 데이터 블롭을 포함하는 문자열. |
| errorString | 오류가 발생한 경우 오류 문자열을 반환합니다. |
상태 값 설명
다음 표는 반환된 status 맵 항목의 정확한 의미를 설명합니다:
| 상태 값 | errorString / resultString | 설명 |
|---|---|---|
| -1 | errorString = "Not logged in to |
클라우드 서비스에 성공적으로 로그인하지 않았습니다. |
| 0 | resultString = recovered data | 클라우드에서 새 게임 데이터가 다운로드되었습니다. |
| 1 | resultString = "AlreadySynchronized" | 마지막 호출 이후 새로운 데이터가 없습니다. |
| 2 | resultString = "ConflictDeferral" | 충돌이 발생했지만 사용자가 무시하기로 선택했습니다. |
| 3 | resultString = "GameUploadSuccess" | cloud_string_save() 또는 cloud_file_save()에서 데이터가 성공적으로 클라우드에 업로드되었습니다. |
| -n | errorString = Description of error | 다른 음수 값은 동기화 실패를 의미합니다. |
사용 예제
이 함수는 게임 시작 이벤트와 같은 이벤트에서 호출되거나 게임의 첫 번째 방에 배치된 객체에서 호출됩니다. 클라우드 서버에서 현재 데이터 블롭을 확인하여 최신 상태인지 확인하는 것이 목적입니다.
cloud_check = cloud_synchronise();
그 다음, 비동기 클라우드 이벤트에서 반환된 DS 맵을 확인하여 상태와 반환된 문자열을 확인할 수 있습니다:
if (ds_map_find_value(async_load, "id") == cloud_check) {
if (ds_map_find_value(async_load, "status") < 0) {
show_message_async("Cloud Services not available. Please check connectivity.");
} else {
if (ds_map_find_value(async_load, "status") == 0) {
var file = file_text_open_write("Save.txt");
file_text_write_string(file, ds_map_find_value(async_load, "resultString"));
file_text_close(file);
}
}
}
위 코드는 올바른 비동기 함수 호출이 수정되고 있는지 확인한 후, 반환된 클라우드 DS 맵의 상태를 가져옵니다. 상태가 음수인 경우 문제가 발생했음을 사용자에게 알리고, 그렇지 않으면 동기화된 데이터를 가져와 텍스트 파일에 저장합니다.