'마비노기'에 해당되는 글 1건

  1. 2008/08/07 마비노기 부분언팩 (31)
2008/08/07 08:39

마비노기 부분언팩

부분언팩 2008. 08. 18

- 기존 버전은 C언어를 바탕으로 제작되었지만, 이번 버전은 Ruby로 작성되었습니다. Ruby는 현재 Native code를 생성할 수 있는 컴파일러가 따로 존재하지 않으므로, 루비 인터프리터를 내부에 포함한 파일을 배포합니다. 이 때문에 파일의 크기가 약 40배(... 10배) 증가하였고 속도도 약간 느려졌습니다. 하지만, 이는 차후에 Ruby 새 버전이 나오면 개선될 수 있는 부분이며, C에 비해 새로운 기능을 추가하기가 압도적으로 쉬워졌습니다.

- 이번 버전은 기존에 사용하던 list.txt 파일 외에, list_yes.txt도 파일 리스트로서 기능합니다. 단, list_yes.txt파일 안에 쓰여진 파일들은 사용자에게 적용 여부를 묻지 않습니다.
주의) list.txt와 list_yes.txt는 (빈 파일일지라도) 반드시 존재해야 합니다. 이는 C와 Ruby 1.8.6 사이의 동작 방식 차이에서 기인한 것입니다.

- 이번 버전은 이전 버전과 달리, list.txt(list_yes.txt) 안의 파일 이름이 일부만 일치하는 것이 아니라 완전히 일치해야만 합니다. 대신 wildcard를 지원합니다. 예) dungeon*.xml

- 이번 버전은 번거롭게 pack파일의 이름을 입력할 필요가 없습니다. 실행하면 자동으로 자신이 속한 폴더 내의 .pack 파일을 검색하여 적용합니다. 물론 리스트 파일들은 작성해야 합니다.
수정) 폴더 내 pack파일 중 단 하나만 적용되는 문제를 해결함. -_-; 디버그 하려고 반복문 사이에  break를 넣어뒀었던듯



!!!!! 참고 / 지금 꽤 많은 컴에서 제대로 작동하지 않고 있습니다. 해결책을 찾고 있으니 잠시만 기다려주셈 _-_  해결. 내가 뭘 잘못 짜거나 한건 아니고요 -ㅅ- 루비는 스크립트 언어라서 인터프리터가 설치되지 않은 환경에서 실행할 수가 없어요. 그래서  Rubyscript2exe라는 걸 이용해서 exe파일로 만든 건데, 이게 버그가 있네요. exerb라는 걸로 대체했음. 아마 이제 잘 될거에요. (확신은 못하겠으나..)



 음. 몇마디 더 붙이겠습니다. 이 프로그램은 마비노기 패키지 파일 내부에 있는 특정 파일의 확장명을 바꾸어서, 마비노기 클라이언트에서 패키지 파일 안에 파일이 없는 것으로 인식하도록 하는 것이 목표입니다. 이를 이용해서 해당 파일들을 대응되는 폴더에 넣으면 언팩한 효과가 나도록 하는 것입니다.

 따라서 이 프로그램을 실행하면 자동으로 미니맵 수정이 일어난다거나 하는 것은 아닙니다. 여기에는 몇가지 이유가 있습니다.

 리버스 엔지니어링을 통해 파일 포맷 분석하는 것은 불법이 아닙니다. 파일 포맷에는 저작권이 적용되지 않습니다. 따라서 제가 이 pack포맷을 가지고 뭔가를 하는 프로그램을 작성하여 배포하는 것은 문제가 없습니다.

 하지만 언팩은 분명히 넥슨 측에서 원했던 게임 플레이 방식이 아니며, 어떤 면에서는 불법 프로그램(이른바 핵)과 비슷한 성격도 지니고 있습니다.

 패키지 파일 포맷 자체에는 저작권이 적용되지 않지만, 이 패키지 파일들이 담고 있는 파일들 각각은 넥슨에게 저작권이 있습니다. 그래서 제가 수정된 파일들을 함께 배포하거나, 그러한 파일들을 이용하는 방법을 자세히 설명할 수 없습니다.  만일 그랬다가는 저는 영구블럭은 물론이고, 자칫하면 넥슨에게 고발당할지도 모르지요. 저는 그런 일은 바라지 않습니다.
Trackback 0 Comment 31