이동npc제작(선택지버전)
이전에 이동 npc는 한맵에 한하여 이동시켜주는 npc를 제작하였지만.
이번에는 내가 이동하고싶은장소를 골라 내가 원하는장소에 이동할수있는 좀더 다양하고 효율적인 npc제작을 해보겠다.
스크립트를 소개하기전에..
"function action (a,b,c) 에서 c의 값은 #L2# 에서 L과 같은값이다.
즉 C = L 이라는거고 위에경우는 c = 2 인셈이다.
이제 스크립트를 보자.



인지가 어려운분들을위해서 스크립트를 따로 적겠다.
------------------------------
//존재 맵코드:105100000
function start() {
negative = -1
action (1,0,0)
}
function action(a,b,c) {
if (a == 0) {
cm.dispose();
return;
}
if (negative == -1) {
cm.sendSimple("당신은 이동이가능합니다. 어디로 이동하시겠습니까? \r #L1# #b헤네시스 #L2# #b에레브 #L3# #b미지의장소");
}
if (c == 1) {
cm.warp(100000000);
cm.dispose();
} else if (c == 2) {
cm.warp(130000000);
cm.dispose();
} else if (c == 3) {
cm.warp(105100000);
cm.dispose();
}
}
--------------------------------------------
이 스크립트를 실행하게되면 이렇게된다.

스크립트를 해석해보면..
if (a == 0) {
cm.dispose();
return;
}
npc를 실행할때 이 명령어가없으면 npc창이 종료가안되서 아무것도 못하는상황에 처해진다.
그런고로 이 명령어들을 넣는다.
cm.dispose와 return 이 두개가 반드시 존재해야한다.
npc의 창을 부정했을때 발동되는 조건문에 "종료"를 정상적으로 하게끔 해주는것이다.
대략 이 코드는
cm.dispose(); == 흔히 작업관리자에있는 프로세스 종료.
return == npc창을 종료.
라고 보심되겠다.
if (c == 1) {
cm.warp(100000000);
cm.dispose();
} else if (c == 2) {
cm.warp(130000000);
cm.dispose();
} else if (c == 3) {
cm.warp(105100000);
cm.dispose();
}
이 명령어는 cm.sendSimple에서 선택했을때 조건이 발동되는문구이다.
c는 언급을했지만 #L# 의 숫자와 같다고 말을했다.
#L1#은 헤네시스므로 이 문구를 선택할경우 if (c == 1) 이라는 조건문이 발동된다.
헤네시스의코드는 참고로 "100000000"이다.
그런이유로 해당맵으로 이동하고 npc창 프로세스가 종료된다.
그 외 나머지도 다를께없다. "else if" 라는것은 "그외(else) 이거일때(if)" 로 해석할수있는데.
else if가아닌 if가 들어와도 문제없다.
이상으로 npc 맵이동 선택지버전 스크립트를 제작해보았다.

negative 님의 최근 댓글
어디서받아볼수있을까요? 여기에 그런거 안올려져있는듯한데 2016 07.05 무슨맵을 추가하셨어요? 어둠기본브금은 그냥 본섭 어둠클라에서 가져오면되는거고. 랄까 기본적으로 이미 다 있을껀데. 2016 06.25 무엇을 개조하셨을까요.. 어둠의전설에경우는 클라개조는 그다지 중요해보이지도않던데.~ 그리고 몇 버전을하시는지. 제공하시는 그 클라라는게 몇버전으로 된건지도 알려주시면 편할듯. 2016 06.25 님 누구셈? 전 그냥 이웃블로그 분들 어둠정보공유하는거 허락맡고 퍼오는건데 ㅋㅋ 2016 06.07