컴파일 하기 전에 아무런 수정을 하지 않은 아테나 폴더를 열어
src > common > mmo.h
파일을 열어서 '자신이 알아서' 수정해 줍니다.
이에 대해 잘 모른다면 아무 것도 수정하지 않습니다.
rAthena와 Hercules 둘 다 같은 위치에 있는 파일이고
내용은 비슷하기 때문에 큰 어려움은 없을 것 같습니다.
단, 위의 파일은 rAthena에 있는 mmo.h 입니다.
※src 폴더 안의 파일들을 수정했을 때는 반드시 다시 컴파일 해야 수정 사항이 적용됩니다.
다운 받은 아테나 중 rAthena를 컴파일 해보겠습니다.
Hercules도 크게 다르지 않기 때문에 같은 방법으로 컴파일 하면 됩니다.
다운 받은 rAthena나 폴더를 열어 안의 파일들 중 rAthena-13.sln 파일을 우클릭으로 선택합니다.
Microsoft Visual Studio Solution 파일입니다.
(Hercules의 경우 Hercules-12.sln 파일을 선택하면 됩니다.)
우클릭 한 후 연결 프로그램에서 Microsoft Visual Studio 2013을 선택하면 됩니다.
만약 Microsoft Visual Studio C++ 2010 Express를 설치했다면 C++ 2010 Express를 선택하여 실행하면 됩니다.
또는 비주얼 스튜디오를 실행한 다음 File > Open > Project/Solution 을 선택하여 솔루션 파일을 불러와도 됩니다.
비주얼 스튜디오에서 약간의 로딩을 거친 후 아래와 같이 비주얼 스튜디오가 실행됩니다.
우측에 불러온 솔루션과 프로젝트가 보인다면 제대로 불러온 것입니다.
(rAthena의 경우 4개의 프로젝트 파일이 있어야 하고 Hercules의 경우 8개의 프로젝트 파일이 있어야 합니다.)
올바르게 불러왔다면 Solution Configurations에서 Debug를 Release로 아래와 같이 바꾸어 줍니다.
Solution configurations를 Release로 바꾸어 준 후 우측의 Solution Explorer에서 솔루션 파일을 우클릭 한 후 Build Solution을 선택하여
컴파일을 시작합니다.
컴파일이 시작되면 아래의 Output 창에서 과정을 볼 수 있습니다.
컴파일이 완료되면 아래와 같이 Build succeeded 메시지를 볼 수 있으며 failed가 있다면 컴파일이 제대로 되지 않은 것이므로
이후에 실행이 제대로 되지 않을 수 있습니다.
이것으로 아테나 컴파일이 완료되었습니다.
이렇게 컴파일이 완료되고 약간의 설정을 거친 후에 아테나를 실행할 수 있는 이 아테나를 흔히 통파일이라고 합니다.
하지만 중요한 설정이 남았기 때문에 아테나를 실행해도 제대로 실행되지 않습니다.
Visual Studio Community 2013이 아닌 2010 Express를 설치했다면 솔루션 파일을 선택할 때 반드시
rAthena-10.sln
Hercules-10.sln
파일을 선택하여 컴파일을 시작해야 합니다.
비주얼 스튜디오의 인터페이스는 둘 다 거의 같기 때문에 위의 캡쳐를 그대로 보고 따라하도 됩니다.
위의 컴파일 캡쳐를 rAthena로 한 이유는 바로 Warning 메시지 때문인데
컴파일 중에 아래의 Output 메시지 창에서 Warnig 경고 메시지를 주르륵 띄워 줍니다.
Output 창 아래의 Error List를 선택하여 보면 아래와 같이 오류 같은 Warning 메시지가 많이 있습니다.
하지만 이 Warning 메시지는 무시해도 큰 문제없는 경고 메시지 입니다.
원인은 해당 파일의 인코딩 문제로 위의 rAthena에서는
src > common > nullpo.h와
src > map > pc.c
두 개의 파일에서 인코딩 경고가 발생하였습니다.
(글 작성일 기준으로 Hercules의 아테나는 컴파일 시 위의 Warning 메시지가 발생하지 않습니다.)
해결 방법은 위의 두 파일을 적당한 편집기를 이용하여 유니코드 unicode 형식을 다시 저장해 주면 됩니다.
간단히 윈도의 메모장으로 nullpo.h를 열어서 다른 이름으로 저장을 하여
아래와 같이 인코딩을 변경하여 저장하면 인코딩 문제를 해결 할 수 있습니다.
사실 인코딩을 변경하지 않아도 큰 문제가 되지 않기 때문에 인코딩을 바꿔주기 싫지만
경고 메시지는 보기 싫다면
아래와 같이 해당 프로젝트를 모두 선택하여 속성에서 해당 경고를 보여주지 않는 설정을 하여
단순히 경고 메시지를 보이지 않게 할 수도 있습니다.