작성자 | 맑은공기 | ||
---|---|---|---|
작성일 | 2010-11-24 02:14:40 KST | 조회 | 23,597 |
제목 |
초보자용 저장소 관련 팁
|
※주의 : 지금 이 팁은, 초보자가 저장소를 만들면서 알게된 내용들을 쓴 것이므로 내용의 신뢰성이 떨어질 수 있으니 참고바랍니다.
아아, 맵을 홀라당 날려먹고나서 의욕을 되찾기 위해 쉬던 중에 생각나서 쓰게되는 저장소 관련 팁입니다. 제가 칠을 저장소 때문에 고생했기에, 저장소를 처음 접하시는 분들은 저같은 고생은 조금이나마 적게 하시라는 의미에서 팁을 올려드려요ㅎㅎ
1. 저장소의 구성
저장소는 이름/부문/키/값 이렇게 크게 4단계로 구성되어있어요.
이름은 가장 상위 개념으로 저장소를 다른 저장소와 구분하는 중요한 요소에요.
부문은 이름 아래에 있는 저장소 내의 가장 큰 구분요소에요. 부문을 이용하면, 저장소 내부의 여러 키값들을 구별하기 좋죠. 활용 예로는, 첫번째 영웅관련 값들은 A부문에 넣어주고, 두번째 영웅관련 값들은 B부문에 넣어주는 방법 등이 있죠. 부문 하나에는 여러개의 키가 들어갈 수 있어요.
키는 저장소 주소의 가장 마지막 단계에요. 가령 실제 주소와 비교하면 '102동 101호'정도라고 보시면 될거에요~ 부문과 키가 다른 점은 하나의 키에는 하나의 값 밖에 들어갈 수 없다는 거에요.
값은 말 그대로 기록될 값이에요. 이름, 부문, 키까지는 변해서는 안되는 요소이지만, 값은 변할 수 있는 것이에요. 음.. 설명이 잘안되는데... 그냥 말 그대로 값이라고 보시면 되요. 실제로 저장하고자하는 수치가 저장되는 곳이기도 하구요.
2. 저장소 계획 세우기
저장소는 완성 후에도 대화상자처럼 짠!하고 결과물을 볼 수가 없어요(저장이 된 후 뱅크파일을 열어보면 되긴하지만.. 그때도 순서대로 차곡차곡 저장이 되진 않아서 불편하긴하죠ㅎㅎ). 그러다보니, 따로 정리하지 않고 만들 때에는 간혹 어디까지 만들었는지, 어떤 부문에 키 값이 있었는지 잊어버려 작업이 한동안 막히는 경우가 발생할 수 있어요. 따라서 저장소를 처음 만들기 전에 가장 먼저 해야할 일은 계획을 세우는거에요.
이름은 어떤 것으로 할지, 저장소에 넣어야되는 값들에는 어떤 것들이 있는지, 그 값들은 어느 부문, 어느 키값에 넣어야하는지 등을 종이나 기타 다른 곳에 죽~ 적어주시면 돼요. 그리고나서는 편의성을 위하여 트리거에서 주석을 하나 만들어 해당 내용들을 기재해주시고 저장소를 만들면서 참고하시면 됩니다.
가령,
저장소
이름 : AirSave
부문 : ABC
키 : 123 - 여기엔 매난국죽 업적 달성수 기록.
키 : 12345 - 여기엔 Mr.도박왕 업적 달성수 기록.
이런식으로요.
3. 저장소 만들어주기
저장소는 따로 만들어주는 트리거가 있는게 아니에요. 그냥 자신이 만들고 싶은 저장소의 이름으로 열어주는 트리거만 실행하면, 자동으로 만들어져요. 트리거에서는 '저장소 열기'라고 되어있을거에요. 그 트리거를 사용하여, 자신이 원하는 이름을 넣어주시면 생성 완료!
그리고나서 이제 계획을 세웠던 것에 맞춰서, 부문과 키에 맞는 값들을 저장해주시면 되요.(물론, 부문과 키 역시 따로 만드는 트리거가 있는게 아니라, 저장해주면 자동으로 만들어져요)
그러다보니, 부문과 키, 값 등이 만들어지고 저장되는 위치가 하나의 트리거 속에 다 담겨지지 않고 서로 다른 트리거에 나누어져 있는 경우도 생길 수 있으니, 그것 역시 주석을 이용해서 위치를 하나하나 체크해주시면서 작업하시면 더욱 편리하게 만드실 수 있어요.
4. 저장소 저장하기
저장소는 그냥 부문, 키, 값 등을 저장하는 트리거를 써주시면 저장이 돼요. 단! 가장 마지막에는 '저장소 저장' 트리거로 저장을 해주셔야 최종적으로 진짜로 저장이 이루어져요. 즉, 어느 부문, 어느 키에 어떤 값을 정수로 저장이라는 트리거를 아무리 많이 만들고 저장을 해주셔도 최종적으로 '저장소 저장' 트리거로 저장을 해주시지 않으시면 다시 시작해서는 전에 했던 값들을 불러올 수가 없어요.
아, 하나더! 저장소를 저장할때는 처음 저장소 열기에서 열었던 저장소를 변수로 지정해주셔서 사용하셔야됩니다.
5. 저장소 불러오기
저장소를 불러오는건 앞에서 저장소를 만들때 사용하셨던, '저장소 열기' 트리거를 사용해주시면 끝이에요.
하지만! 주의할 점은 저장소 열기 트리거로 저장소를 만들때는 (지역)변수를 사용하여 For문을 돌려서 모든 플레이어의 저장소를 만들어주셔도 상관이 없지만, 저장된 저장소를 불러올때는 반드시 플레이어를 정수로 각각 지정해주셔야됩니다.
예를 들어([]안의 단어는 변수입니다.)
행동 - 정수 [플레이어]를 1부터 8까지 반복, 행동(1씩 증가)
ㄴ플레이어 [플레이어] 의 저장소 AirSave 열기
절대 이런식으로 해주시면 안된다는거죠
이렇게 했다가는, 저장된 저장소를 불러오지 못하고 새로 만들어버려서 저장된 것을 불러오지 못하는 불구저장소가 되어버리고 말아요. 즉, 제대로 불러오시기 위해서는
행동 - 플레이어 1 의 저장소 AirSave 열기
플레이어 2 의 저장소 AirSave 열기
플레이어 3 의 저장소 AirSave 열기
이런식으로 플레이어 하나하나마다 따로 열어주셔야 제대로 열립니다.
전 이걸 몰라서 엄청 헤맸죠... 암호화 문제인줄알고 암호화도 몇번이고 갈아엎어버리고...ㅠㅠ
6. 암호화
암호화는.. 지금처럼 뱅크파일의 수정에 취약한 상태에서는 필수적인 요소에요. 하지만..암호화에 대해서는.. 저도 잘 모릅니다^^;; 정말 암호화에 대한 내용은 제 주관적인 것이고, 그 어떤 암호 관련 공부도, 프로그램의 ㅍ자도 배운 적없는 제가 쓰는 글이니.. 더더욱 과한 신뢰하지는 삼가주세요ㅎㅎ
제가 할줄아는 암호화 값은, 정수와 실수 정도 밖에 되지 않습니다. 문자열이나 텍스트같은건 제 실력으로는 까마득하거든요
일단, 제 주관적인 생각으로 암호화를 하는 방법(정수, 실수 기준)을 말씀드리자면 크게 세가지로 나눌 수 있어요.
1) 저장소값의 가변화
2) 저장소값 수정의 방지
3) 치트프로그램 사용의 방지
1) 저장소값의 가변화
저장소에 정수나 실수 등의 수로 이루어진 값을 저장할때, 값들이 저장할때마다 변하도록 만들어주는 것이에요. 이건 2) 저장소값 수정의 방지만 제대로 이루어지다면, 별로 실용성이 없는 것이긴 하지만 그래도 해당 값이 어떤 값을 나타내는지를 알 수 없게하면 아무래도 그러지 않은 것보다는 안전하겠죠. 단, 이때 저장소값을 가변화 시키는 공식은 각각의 키마다 다르게 적용시켜줘야겠죠~ 모두 같다면, 쉽게 파악할 수 있으니까요ㅠ
2) 저장소값 수정의 방지
저장소를 불러올때, 저장시 이루어졌던 값들과 불러올때의 값들을 비교하여 수정 여부를 확인하는 것이에요. 가령 모든 저장소의 곱을 하나의 암호값으로 지정해줘서 저장을 한 후에, 불러올때 암호값을 제외한 나머지 값들을 모두 곱한 것과 암호값을 비교하여 같지 않으면, 오류가 뜨게 만들어주는 등의 방식이 있죠.
3) 치트프로그램 사용의 방지
제가 아는 치트프로그램이라고는 치트오메틱인가? 그거 밖에 없습니다. 그 프로그램의 사용을 막기 위한 방법은 간단합니다.(그러고보니, 이건 저장소와는 관련없는 문제이긴하지만..) 그냥 실제 값들은 모두 *2 해주시고, 게임에서 표시할때는 /2 해서 표시해주시면 끗... 그러면 치트오메틱인가?하는 프로그램으로는 결코 값을 찾아내어 수정할 수 없게 되요ㅎㅎ 당연히 그 *2를 해줬다는 것을 사람들이 알 수 없게 해줘야하겠지만요~
여기까지에요.
제가 초보자이다보니, 정말 중요한 부분을 빼먹었을 수도 또는, 내용이 잘못된 부분이 있을 수도 있어요. 그에 대해서는 고수분들께서 지적해주시면 감사하겠습니다ㅎㅎ
제 팁을 읽으시기만 하셔서는 저장소를 만드실 수 없어요. 갤디터를 키고 직접 만들어보세요. 만들다보면, 아~하시면서 금방금방 하실 수 있으실거에요~ 저도 저장소 불러올때 변수를 사용하면 안된다는 기본적인 사실을 몰라서 며칠을 저장소를 갈아엎기를 반복하다가 우연히 방법을 알게되고~ 그랬거든요ㅋㅋ 그러니 만들어보세요! 그럼 길이 열릴거에요!
어쨌든.. 제 강좌는 여기서 끝마치도록 하겠습니다. 전... 내일까지는 맵제작을 쉬어야겠네요ㅎㅎ
다들 맵은 항상 백업파일을 시간단위로 꼭꼭꼭 챙겨놓으시고, 갤디터의 자동백업을 너무 신뢰하지마세요ㅠㅠ 안그러시면 저처럼 됩니다...
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.