이동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 06.07