가장 먼저 npc를 추가해보도록 하겠습니다.
텍스트 형식의 올바른(오류가 없는) npc 스크립트 파일을 원하는 폴더에 위치시킵니다.
(위에는 직접 만든 머리의 모양, 색깔, 옷의 색 등을 바꾸어는 npc 입니다.)
![](https://t1.daumcdn.net/cfile/tistory/221E963A557A3DC613)
그 다음 상위 폴더인 npc 폴더의 script_custom.conf를 텍스트 편집기 등을 이용하여 열고
![](https://t1.daumcdn.net/cfile/tistory/216D854F557A3F1622)
아래와 같이 추가한 npc 스크립트 파일이 있는 경로와 파일명을 추가하면 됩니다.
![](https://t1.daumcdn.net/cfile/tistory/240F8250557A3F9E2A)
이로써 npc를 서버에 추가하는 것은 끝나게 됩니다.
위의 script_custom.conf 파일 안을 보면 알겠지만 주석 처리된 부분은 서버 구동시
읽어들이지 않기 때문에 npc가 나타나지 않게 됩니다.
또한 npc들은 서버가 처음 구동될 때 모두 읽어들이고 서버가 구동되는 동안에는
추가하거나 수정해도 서버 내에서 바뀐 내용이 반영되지 않습니다.
즉, 다시 서버를 구동하거나 스크립트를 reload해야만 합니다.
스크립트가 제대로 읽어들여지고 문제가 없다면 다음과 같이 서버가 구동될 것입니다.
![](https://t1.daumcdn.net/cfile/tistory/25475A41557A41C915)
만약 문제가 있다면 해당 스크립트 파일의 오류 부분을 보여주고 해당 npc는 서버에 로드되지 않습니다.
한가지 팁으로 Hercules의 에뮬에는 스크립트 체커 script checker가 있는데
이를 이용하면 실제로 서버를 구동하여 스크립트에 문제가 있는지 알아봐야하는 수고를 덜어 줍니다.
![](https://t1.daumcdn.net/cfile/tistory/21050948557A439C2A)
위의 script-checker.bat를 실행하면 아래와 같은 도스창이 열리는데
여기에 확인해볼 스크립트 파일의 경로를 직접 적어주거나
스크립트 체크를 해볼 txt 파일을 드래그 앤 드롭하면 됩니다.
![](https://t1.daumcdn.net/cfile/tistory/267ECE35557A449024)
스크립트에 문제가 없다면 아무런 메시지도 나오지 않지만 스크립트에
문법적 오류가 있다면 다음과 같이 출력이 됩니다.
![](https://t1.daumcdn.net/cfile/tistory/257B7E34557A45532C)
오류가 발생한 스크립트 파일 안의 구문 위치와 대략 어떤 문법 오류인지 알려주기 때문에
스크립트를 만들 때 큰 도움이 됩니다.
간단한 버프 NPC 입니다. 최종 완성은 아니며, sc_start 스크립트를 이용한 npc 입니다.
npc 추가 방법은 위와 같습니다.
const.txt의 상태이상 관련 스킬과 상태 중 버프 효과(좋은 효과의)의 스킬류만 힘들게 골라내서
적용하였습니다. 골라낸 버프 스킬 중 중첩이 불가능한 스킬은 스킵하면서 버프를 줄 수 있도록 하였고
속성 부여와 중첩이 잘 되지 않는 연주, 합주 스킬, 스테이터스를 올려주는 아이템 효과는 아예 제외하였습니다.
(종류가 많아서 다른 npc로 만들어 볼 생각입니다.)
버프가 적용 될 때 버프 자체의 이펙트 효과를 제외하고 따로 적용한 이펙트는 없고
회복에만 간단히 적용하였습니다. 적용되는 버프 수가 많다보니 이펙트까지는 스크립트에 반영하지 않았습니다.
(마찬가지로 차후에 적용할 생각입니다.)
스크립트에서 '모든 버프 적용'을 선택할 시 한번에 모든 버프가 적용되는데
스크립트 안의 설명에 따라서 아래와 같이 스크립트를 조정하면
//버프를 하나하나 확인하면서 적용하고 싶다면
//아래 두 줄에 주석처리를 제거하고
//.@temp++;의 주석 처리를 하면 됩니다.
// .@choice = prompt("-다음 버프 (" + .@skillName$[.@temp1+1] + "):-취소");
// if(.@choice<2){.@temp1++;}else{break;}
.@temp1++;
위의 부분을 아래와 같이 수정하면
.@choice = prompt("-다음 버프 (" + .@skillName$[.@temp1+1] + "):-취소");
if(.@choice<2){.@temp1++;}else{break;}
// .@temp1++;
버프를 하나하나 확인해야 적용되도록 할 수 있습니다.
마지막으로 좋다고 생각하는 모든 스킬을 적용하기 때문에 직업에 따라서
버프 스킬이 제대로 동작하지 않을 수 있습니다.
추가할 점 또는 잘못된 점은 댓글 등으로 알려주시고 반드시 Athena의 스크립트만 다뤄주시기 바랍니다.
-업로드 되어있는 스크립트 파일은 다른 곳에 배포는 하지 말아주시기 바랍니다.-
-7월 19일
치명적인 독 부여, 포이즈닝 웨폰 스킬을 추가했습니다.
포이즈닝 웨폰은 오블리비언 커즈를 적용하였습니다.