Profile
주인장수표 관리자

2018.12.26

[쿠키 API] ini처럼 온라인 데이터 저장/불러오기 구현하기

조회 수 65 추천 수 2
애드블럭을 꺼주시면 서버 운영에 도움이 됩니다.
부탁드립니다.
이 강좌는 쿠키의 데이터 베이스를 경유하여 작동됩니다
 
먼저 유저간의 데이터를 저장하기 위해서는 로그인이 필요하겠죠?
https://www.cookiee.net/tips/5203
위의 강좌를 다 보고, 로그인 시스템을 적용시키신후 이 강좌를 봐주세요~!
 
또한 쿠키의 데이터베이스를 사용하여 온라인 저장/불러오기 작업을 진행할것이기에 아래의 소스를 받아주세요!
 
이제 진행해보도록 하겠습니다!
먼저 쿠키 로그인 시스템의 토큰을 이용하여 데이터 업로드를 하기때문에, 토큰이 알맞은지 확인해주세요!
 
# 2018.12.26 V2에서 V3로 업데이트 되었습니다!
업데이트 사항
cookie_datas_val(key) 형태에서 cookie_datas_val(key, default) 형태로 변경됨
key 값이 없다면 default를 리턴함
 
#게임메이커 스튜디오와 연동하기
게임메이커 스튜디오 버전은 상관없이 1.4와 2 전부 사용이 가능합니다
 
먼저 Cookie_Data_V3.gmez 파일을 아래 링크를 참고하여 넣어주세요!
 
겜스 1에경우, 아래 강좌를 보고 gmez 파일을 겜스에 넣어주세요!
 
그리고 추가된 에셋들 중에서 Script만 남기고 object와 room을 없에주세요!
그 부분은 저희가 전부 짤것이니 그냥 날려주세요!
만약 연구용(?)으로 남겨두고 싶으시다면 상관은 없습니다
 
그 다음 오브젝트를 하나 만들어 줍니다.
 
전 data_system으로 짓겠습니다.
 
그리고 Create 이벤트를 만들어 아래와 같이 써주세요!
 
cookie_datas_init();
데이터를 담기위해 초기화를 해줍니다!
이렇게 하면 cookie_data에 있는 함수들을 사용할수 있게 된것입니다!
 
그 다음 HTTP 이벤트를 만들어 줍니다
 
 
그리고 아래와 같이 코드를 입력해줍니다
 
 
cookie_datas_http();
웹과 통신해서 데이터를 저장하거나 불러오기 위해서 이 이벤트를 사용해줍니다
 
또한 저장하고 불러온 데이타는 전부 global.CK_data_map_data 에 저장됩니다
그러면 데이터가 잘 불러와지는지 아니면 안 불러와지는지 확인해봐야겠죠?
 
Draw 이벤트를 만들어서 한번 확인해봅시다!
 
 
Draw 이벤트를 만들어 주시고 아래와 같이 코드를 입력해주세요!
 
 
draw_text(0, 0, string_hash_to_newline(json_encode(global.CK_data_map_data)));
 
이렇게 해주면 global.CK_data_map_data 속에 들어있는 데이터들을 한번에 볼수 있게 됩니다!
 
그러면 이제 데이터를 저장해볼까요?
 
이 소스는 ini와 매우 비슷하게 제작되어 있습니다
 
우리는 변수를 만들때 이렇게 만들죠
apple = 10;
그러면 apple 라는 변수에 10이 담기게 되죠.
 
이걸 쿠키에서 구현하면
cookie_datas_val_add("apple", 10);
// apple = 10
 
이렇게 구현이 가능해요!
그런데 변수를 변경하고 싶다면 어떻게 하나요?
그럼 똑같이 해주면 되요!
 
cookie_datas_val_add("apple", 10);
// apple = 10
cookie_datas_val_add("apple", 20);
// apple = 20
 
또 데이터의 값 부분에는 ds_map 이던 ds_list 이던 어떤 값을 넣어도 문제가 없습니다!
var a = ds_map_create();
cookie_datas_val_add("ds", a);
// 작동 됩니다!
 
이렇게 cookie_datas_val_add를 해주면 변수의 값을 바꿔줘요!
 
또한 문자를 넣고 싶다면 이렇게 해주면 됩니다!
 
cookie_datas_val_add("banana", "Banana!");
// banana = "Banana!"
 
그리고 이걸 웹으로 전송을 해줘야 저장이 된답니다!
cookie_datas_save() 함수를 사용해주면 데이터를 쿠키 서버에 저장합니다
 
그러면 A라는 키를 누르면 값을 넣고 저장해볼까요?
 
이렇게 A키를 누르면 작동되는 이벤트를 만들어 주시고 아래 코드를 넣어주세요!
 
 cookie_datas_val_add("apple", 10);
// apple = 10
cookie_datas_val_add("banana", "Banana!");
// banana = "Banana!"

cookie_datas_save();
//데이터를 쿠키 서버에 저장합니다
 
 
 

이렇게 해주고 로그인 후 이동되는 룸에 배치를 해줍니다!
저의 경우 로그인 오브젝트가 room0에 있고 로그인 후 그 아래 있는 룸인 room1로 이동됩니다
그렇기에 data_system 오브젝트를 room1에 넣겠습니다!
 
 
실행을 해주면 로그인 후 { } 이런 글씨만 띄워져 있을겁니다!
여기서 A 키를 눌러주면..
 
 
위에 흰글씨를 보면 banana에 Banana!가 대입되어 있고
apple 에 10.0000 즉 10이 대입되어있다고 하죠!
 
또 메세지에서 전송에 성공했다고 합니다!
값이 1이면 최초 등록
값이 2이면 업데이트 된것입니다!
 
그러면 실제로 적용되었는지 확인해볼까요?
https://www.cookiee.net/gmdata 쿠키 게임 관리 시스템에 들어가서
 
 
자신의 게임 옆에 저 메뉴 버튼을 눌러주시면
 
이렇게 업로드된 데이터들을 볼수 있습니다!
이렇게 banana에 Banana!가 들어가 있고 apple에 10이 넣어져 있는 모습을 볼수 있습니다!
 
웹상에서 데이터 보는 기능 새로 추가 했습니다!
앞으로도 관리하기 쉬워지실꺼에요!
 
 
# 데이터 불러오기
 
이제 데이터 저장은 해결됐네요
 
그러면 서버에서 데이터를 불러와봐야 겠죠?
 
L키를 누르면 서버에서 데이터를 불러오게 해봅시다!
 
 
L키를 누르면 생기는 이벤트를 생성해주시고 아래와 같이 써주세요!
 
 
cookie_datas_load();
 
이렇게 하면 데이터를 불러올수 있습니다.
쉽죠? ㅎㅎ
 
테스트 해보시면 잘 불러와 지는것을 볼수 있습니다!
 
그러면 이제 데이터를 뽑아와야겠죠?
매우 쉽습니다
cookie_datas_val("변수 이름", 기본 값) 으로 가져오면 됩니다
 
var item = cookie_datas_val("apple", 5);
아까전 apple에 10을 넣었으니 item에는 10이 들어가겠네요!
 
그런데 만약 데이터에 apple이라는 값이 없다면 어떻게 될까요?
데이터가 없으면 기본 값인 5가 들어가게 된답니다!
 
또한 apple이라는 데이터 값이 있는지 찾기 위해
cookie_datas_val_exist("변수 이름") 이라는 함수가 있습니다

cookie_datas_val_exist("apple") 하면 아까 위에서 apple이라는 변수를 넣었기 때문에 true를 주겠죠
그러나
cookie_datas_val_exist("rice") 라고 하면 rice라는 변수가 없기때문에 false를 반환하겠죠!
 
또한 변수를 없에고 싶다면 cookie_datas_val_delete("변수 이름") 을 입력해주면 됩니다!

cookie_datas_val_delete("apple"); 하면 데이터에서 apple 변수가 사라지겠죠!
 
 
# 함수 설명
 
cookie_datas_init(); // Data 초기화 함수 입니다
cookie_datas_http(); //http 이벤트 함수 입니다
cookie_datas_load(); // 쿠키 서버에서 데이터를 로드하는 함수입니다
cookie_datas_save(); // 쿠키 서버에 데이터를 저장하는 함수입니다
cookie_datas_val_add(변수 명, 변수 값); // 변수 명 = 변수 값; 형태로 저장하는 함수 입니다
cookie_datas_val_delete(변수 명); //변수 명에 넣어진 이름의 변수를 삭제합니다
cookie_datas_val_exist(변수 명); //변수 명을 가진 변수가 존재하는지 확인합니다
cookie_datas_val(변수 명); // 변수 명을 가진 변수의 값을 리턴합니다
cookie_datas_end(); // cookie_datas 함수의 변수를 제거합니다. game_end 이벤트에 넣어주세요

추천해주신 분들



Profile
22
Lv
주인장수표
관리자 입니다~! 잘부탁 드려요~

3개의 댓글

번호 제목 글쓴이 날짜 조회 수
공지 게임메이커 구체적인 설명과 알면 매우 좋은 팁 30개 [장문] 7 profile 도개걸윷모 2018.11.03 186
64 [팁] <댓글 스티커>, <쿠키 마켓>의 쿠키 반환 비율 (수수료, 이익 비율) 2 profile 며르치 2019.01.21 33
63 [팁] 쿠키 얻기/쓰기 조건 정리 4 profile 며르치 2019.01.17 60
[쿠키 API] ini처럼 온라인 데이터 저장/불러오기 구현하기 3 profile 주인장수표 2018.12.26 65
61 [쿠키 API] 구글, 네이버, 카카오톡 로그인 구현하기 profile 주인장수표 2018.12.26 52
60 인벤토리 만들기 - 1 profile Experience 2018.12.18 36
59 간단한 도트 찍는 방법! profile Experience 2018.12.17 23
58 [자료] 스팀 게임 플레이어의 통상적 컴퓨터 사양 1 profile 주인장수표 2018.12.17 21
57 [변수의 활용] VAR (if) 액션과 컨트롤액션 profile Experience 2018.12.17 6
56 윈도우를 컨트롤하자! profile Experience 2018.12.17 16
55 GML 차근차근 배워보기. [ 4 ] 조건문 profile Experience 2018.12.17 7
54 GML 차근차근 배워보기. [ 3 ] 연산자 (2) profile Experience 2018.12.17 5
53 GML 차근차근 배워보기. [ 3 ] 연산자 (1) profile Experience 2018.12.17 10
52 GML 차근차근 배워보기. [ 2 ] 변수 (2) profile Experience 2018.12.17 8
51 GML 차근차근 배워보기. [ 2 ] 변수 (1) profile Experience 2018.12.17 11
50 GML 차근차근 배워보기. [ 1 ] 강좌 진행 환경 조성 2 profile Experience 2018.12.17 8
49 리얼리티 '뷰' 노이즈 강좌 profile Experience 2018.11.29 14
48 [윈도우] 게임을 실행할 때 다른 윈도우를 모두 최소화시키기 profile Experience 2018.11.29 13
47 간단한 8방향 이동 코드 profile Experience 2018.11.29 9
46 겜스 간단한 페이드인/페이드아웃 profile Experience 2018.11.29 11
45 게임메이커 8 강좌 5화 -룸- END profile Experience 2018.11.29 13
서버에 요청 중입니다. 잠시만 기다려 주십시오...