DS 맵 보안 로드 버퍼
이 문서는 DS 맵을 보안적으로 로드하는 방법에 대해 설명합니다. ds_map_secure_load_buffer
함수는 버퍼에서 안전하게 저장된 DS 맵을 로드합니다. 이 함수를 사용하기 전에 먼저 buffer_load
를 사용하여 메모리에 버퍼를 로드해야 하며, 그 후 이 함수를 호출하면 버퍼의 내용으로 채워진 DS 맵을 반환합니다.
주요 사항
- 버퍼는 반드시
ds_map_secure_save_buffer
함수를 사용하여 생성된 것이어야 합니다. - 로드되는 DS 맵이 배열을 포함하고 있다면, 배열은 DS 리스트로 변환됩니다.
- HTML5에서는 이 함수가 지원되지 않습니다.
사용법
안전하게 저장된 파일의 특징 중 하나는 해당 파일이 생성된 장치에 잠겨 있다는 것입니다. 따라서 한 장치에서 저장된 파일을 다른 장치에서 실행 중인 프로젝트에 로드할 수 없습니다.
버퍼의 탐색 위치는 데이터의 시작 부분이어야 합니다. buffer_seek
를 사용하여 데이터가 작성된 올바른 위치로 이동할 수 있습니다.
문법
ds_map_secure_load_buffer(buffer);
인수
인수 | 유형 | 설명 |
---|---|---|
buffer | Buffer | 맵 데이터를 로드할 버퍼입니다. |
반환값
- DS 맵
- -1: 버퍼에서 데이터를 올바르게 읽을 수 없는 경우
예제
var _buff = buffer_load("save.dat");
map = ds_map_secure_load_buffer(_buff);
buffer_delete(_buff);
위 코드는 버퍼에서 안전하게 저장된 DS 맵을 로드하고, 그 인덱스 값을 변수에 저장하여 이후에 사용할 수 있도록 합니다.
활용 예제
- 게임 진행 상황 저장 및 로드
gml // 게임 진행 상황 저장 var save_buffer = buffer_create(1024, buffer_grow, 1); ds_map_secure_save_buffer(map, save_buffer); buffer_save(save_buffer, "save.dat"); buffer_delete(save_buffer);
- 게임 설정 로드
gml // 게임 설정 로드 var settings_buffer = buffer_load("settings.dat"); settings_map = ds_map_secure_load_buffer(settings_buffer); buffer_delete(settings_buffer);
- 플레이어 데이터 저장
gml // 플레이어 데이터 저장 var player_buffer = buffer_create(2048, buffer_grow, 1); ds_map_secure_save_buffer(player_map, player_buffer); buffer_save(player_buffer, "player_data.dat"); buffer_delete(player_buffer);
- 레벨 데이터 로드
gml // 레벨 데이터 로드 var level_buffer = buffer_load("level_data.dat"); level_map = ds_map_secure_load_buffer(level_buffer); buffer_delete(level_buffer);
이러한 예제들은 DS 맵을 안전하게 저장하고 로드하는 다양한 방법을 보여줍니다.