클라우드 동기화 함수 설명
이 문서에서는 게임 시작 시 호출되는 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 맵의 상태를 가져옵니다. 상태가 음수인 경우 문제가 발생했음을 사용자에게 알리고, 그렇지 않으면 동기화된 데이터를 가져와 텍스트 파일에 저장합니다.