전체 글 (205)
문자열로부터 CRC-32 해시값을 구해주는 스크립트입니다. 스크립트가 많아서 GML 파일로 첨부하였으며, scr_crc32_init, scr_crc32_final, scr_crc32_get 으로 구성되어있습니다. * 주의사항 게임메이커: 스튜디오(GameMaker: Studio)의 실수는 8바이트이지만, scr_crc32_get 에서 CRC-32 의 해시값은 4바이트로 반환됩니다. 이러한 둘의 바이트 차 때문에 마지막 NOT 연산 후 값이 음수가 나올 수도 있으므로, 음수가 나오는 것이 싫다면, "return (crc ^ $ffffffff)"을 붙여주세요. 사용하실 때에 init 와 final 스크립트는 게임을 시작했을 때와 끝냈을 때 각각 한 번만 사용하면 됩니다. 이 스크립트는 김게맛(sodium03..
체크섬을 생성하는 스크립트 ///scr_checksum_get(buffer, size) var pos = buffer_tell(argument0), sum = 0; buffer_seek(argument0, buffer_seek_start, 0) while(buffer_tell(argument0)> 16) + (sum & $ffff) sum += (sum >> 16) sum = ((~sum) & $ffff) return sum 체크섬을 검증하는 스크립트 ///scr_checksum_verify(buffer, size, checksum) var pos = buffer_tell(argument0), sum = argument2; buffer_seek(argument0, buffer_seek_start, 0) ..
GMK 혹은 GM81 파일의 분해와 재조립을 지원하는 프로그램이며, 게임메이커 커뮤니티의 회원인 Medo42님이 제작하였습니다. 프로그램을 실행할 때에 자바가 필요하며, 명령어는 'gmksplit.exe input output'입니다. 사이트 : http://gmc.yoyogames.com/index.php?showtopic=510358
HQ 파일은 천년의신화, 임진록2, 임진록2+ 조선의반격에 존재하는 파일이며, Data/Data.hq, Hq/Hq.hq 이렇게 두 개의 쌍으로 존재합니다. 여기서 *.hq는 헤더파일, *은 패킹 된 파일로 분류되지요. 아울러 쌍으로 된 이 파일들은 기본적으로 "(var & 16) ? var-16 : var+16" 암호화가 되어있어 먼저 복호화를 해줘야 합니다. 복호화된 천년의신화의 Data.hq 모습. 총라인수 : [파일 개수]->파일 명\t[파일 크기]\t[파일 오프셋]->파일 명\t[파일 크기]\t[파일 오프셋]…. 헤더는 이처럼 먼저 파일명이 명시된 뒤 크기와 오프셋이 뒤따르는 구조입니다.
컴퓨터에서 특정한 폴더 혹은 파일을 삭제할 때 다양한 오류가 발생할 수 있는데, 대표적으로는 현재 사용 중인 파일을 삭제하거나, 권한이 없는 파일을 삭제할 때 삭제 오류가 발생합니다. 위와 같을 때에는 전자의 경우 사용 중인 파일을 중단시키고(Unlocker등 유틸을 이용), 후자의 경우에는 윈도우 권한을 상승시키면 되지요. 하지만 이 글에서 다루고자 하는 상황은 조금 다릅니다. 이 글에서 다루고자 하는 상황은, 바로 윈도우에서 인식되지 않는 파일명을 가진 파일을 삭제하고 싶은 경우입니다. 여기, 바로 위 사진과 같이 겉보기에는 멀쩡하지만 지워지지 않는 파일들이 있습니다. 제가 프로그래밍을 하다가 실수로 만들게된 괴짜 파일명을 가진 파일들인데요, 이 파일들 때문에 폴더를 삭제할 때 0x80070091 오..
이 스크립트는 인스턴스가 룸 밖으로 나가지 못하게 하며, 좌표의 기준을 스프라이트의 충돌 박스(bbox)로 잡기 때문에 보다 자연스럽습니다. 사용하실 때에 이 스크립트를 End Step 이벤트에 넣어주세요. ///scr_room_block() if(0>=bbox_left){x=x-bbox_left} if(0>=bbox_top){y=y-bbox_top} if(bbox_right>=room_width){x=room_width+(x-bbox_right)} if(bbox_bottom>=room_height){y=room_height+(y-bbox_bottom)} +) 간략화 버전 x = max(x-bbox_left, min(x, room_width+(x-bbox_right))) y = max(y-bbox_top..
네트워킹 완전정복 3개의 강좌를 했었지만, 그럼에도 많은 분들이 '좌표 공유 방법을 모르겠어요!' 혹은 '총알은 어떻게 발사하나요?' 라고 질문들을 하셔서, 게임메이커: 스튜디오(GameMaker: Studio)에서 기본적으로 지원하는 데모 파일을 가지고 설명을 해볼까 합니다. 제가 이 데모 파일에서 설명할 것은 좌표 공유에 관한 이야기입니다. 서버와 클라이언트의 개체에 대한 처리 방법은 '실체, 허상, 부분 동기화' 등 여러 가지가 있는데, 그중에서 겜스 네트워킹 예제는 '허상'이라는 방법을 사용합니다. 허상이란, 서버는 모든 개체의 실체를 가지고 있고, 클라이언트는 개체에 대한 허상만 가지고 있는 처리 방법입니다. 허상의 전제는 다음과 같습니다. 1. 서버는 자신과 모든 클라이언트의 oPlayer 라..
먹고 싶지? 하며 능욕하는 회복의 물약 신전의 해골바가지가 너무 쌔서 한 마리 한 마리씩 유인해서 잡는 중…. 근데, 나는 위로 못 올라가는데, 이 해골들은 어떻게 이리로 오는 걸까;; 알고 보니 비밀 통로가 있었음 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 개 뻘짓;; 날 냅두고 지 혼자 사라진 아서. 열쇠를 얻고 체력이 없어서, 초기에 물약 놔둔 곳에 가서 피를 채움. 근데 열쇠 따고 돌아오니까 체력 포션이 넘침 ㅋㅋㅋㅋ;;; 풀셋. 나중에 건물 안 깬 거 깬 다음, '피로 물든 눈' 얻어서 장착! 승리! 게임을 하면서 느낀점을 쓰자면, 1. 비밀통로 찾는 게 너무 어렵네요. (시간 다 날림;;) 2. 비밀병기… 내가 거기로 가기도 전에 발견해서 내 병기가 머드맨한테 죽어버려써요…. 스토리는 나쁘지 않고(알고 있는 쥬라..
게임: http://o.playgm.co.kr/397 게임메이커: 스튜디오의 소스 파일입니다. 4일 만에 만든 거라서 코드가 통일성이 없고 많이 허접합니다. (중간에 기획이 이리저리 바뀌어서요. ㅠㅠ) http://cafe.naver.com/playgm
○ 개발 툴 게임메이커: 스튜디오 v1.2.1224 ○ 게임 방법 [조작 방법] 방향키: 이동 1~6: 아이템 선택 X: 아이템 버리기 Z: 아이템 줍기 A: 고기 먹기 SpaceBar: 공격 [초반 공략] 1. 체온이 떨어지거나, 포만감이 떨어지면 죽어버립니다. 2. 초반 캠프파이어 주위에 나무 3개와 작은 돌 2개가 있습니다. 3. 캠프파이어에 가까이 가면 체온이 떨어지지 않으며, 더 가까이 가면 체온이 차오릅니다. 4. 횃불을 만들면 체온이 떨어지지 않습니다. [조합 방법] 나무 3 + 큰 돌 1 = 캠프파이어 나무 2 + 작은 돌 1 = 횃불 나무 1 + 작은 돌 1 = 망치 나무 1 + 얼음 조각 1 = 나이프 나무 1 + 작은 돌 1 + 가죽 1 + 얼음 조각 1 = 권총 [드랍률] 토끼: 나..