만능 NPC제작법 스크립트
/* */ == 주석 처리 (메소드 무효화 기능)
// == 주석 처리 (위와 동일)
\r\n == 키보드의 Enter 기능
cm.sendSimple("할말, 선택문"); // 선택문
cm.sendOk("할말"); // 확인문
cm.openNpc(엔피시코D); // 해당 엔피시 오픈
cm.openShop(상점코D); // 해당 상점 오픈
기본적으로 만능에 상점 넣고 싶으면 쿼RI 상점코D 찾고 하는게 더 편하겠죠?
일단 제일 기초적인 것은 기본 스크립트 보시면 아래쪽에 if (status == 0) { // 이거 있죠?
그거 아래에 var blank = "만능 NPC 편공"; 이렇게 적어 줍니다.
그 때, blank에는 뭐 암거나 쓰셔도 되구요 (대표적으론 chat, chat이라고 채팅 관련 메소드 X)
대신 마지막에 cm.sendSimple(); 이 가로안에 blank에 썼던 것을 써 넣어야 합니다.
sendSimple문은 선택문이랬죠? 그러면 선택문 하나 들어가야 합니다.
if (status == 0) {
var chat = "만능 NPC 편공입니다. 무엇을 하시겠습니까?\r\n";
chat += "#L0##e#r너님을 죽이겠습니다.#k#n";
cm.sendSimple(chat);
이렇게 끝나겠습니다.
그러면 chat += ""; 에는 다양한 기능을 넣을 수 있겠죠? 이 부분은 여러분이 직접 하시길 바랍니다.
만약 특정 마을에서만 만능 NPC를 발동시키고 싶다? 하면
if (status == 0) {
if (cm.getPlayer().getMapId() == 맵코D) { // 이렇게 선언하시면 됩니다.
그럼, 그 특정 마을 외의 곳에서는 할 수 없겠죠? 그럼 할 수 없게만 놔둘 수는 없으니
if (status == 0) {
if (cm.getPlayer().getMapId() == 맵코D) {
var chat = "만능 NPC 편공입니다. 무엇을 하시겠습니까?\r\n";
chat += "#L0##e#r너님을 죽이겠습니다.#k#n";
cm.sendSimple(chat); // 선택문 보내기 완료
} else { // 그러나 해당 맵에 없다면
var chat = "이곳에서는 이용하실 수 없습니다. 헤네시스로 돌아가시겠습니까?\r\n";
chat = "#L1##b헤네시스로 돌아가겠습니다.";
cm.sendSimple(chat); // 역시 선택문이 있으니 이렇게 보냅니다
} else if (selection == 0) {
cm.sendOk("크허억...");
cm.dispose();
} else if (selection == 1) {
cm.warp(100000000);
cm.sendOk("수고하십시오 고갱님.");
cm.dispose();
}
}
}
뭐 대충 이런식으로 응용하면 될 것 같습니다.
*Tip - 솔직히 만능NPC라고 해서 여러 NPC 열어주는 기능밖에 없습니다. 모든 P@ck 의 만능NPC 보면 말이죠, cm.openNpc(엔피시코D) 이게 만능NPC 스크립트의 반은 넘게 차지하는 것 같습니다. 그러니까 이런거도 잘 응용해서 하시기 바랍니다.
Else !!
플레이어 레벨 인식문을 이용해서 재밌는 거 하나 알려드리겠습니다.
if (status == 0) {
var chat = "너는 레벨 200 이상이므로 150제 상점을 이용할 수 있어"; // 먼저 뭘 할지 보냅니다
if (cm.getPlayer().getLevel() > 199) { // 레벨을 인식합니다
chat += "#L1#나는 레벨 200이상이므로 150제 상점을 이용할래"; // 선택문을 보내므로
cm.sendSimple(chat); // sendSImple을 보냅니다
} else { // 레벨 200 이상이 아니면
chat += "시발 난 레벨 200이 안되네"; // 선택문이 없는 그냥 확인문으로
cm.sendOk(chat); // sendOk문을 보냅니다
cm.dispose(); // 창을 닫습니다
}
} if (selection == 1) { //1번을 선택한다면
cm.dispose();
cm.openShop(150); // 150번 상점을 엽니다
.
.
.

늅늅 님의 최근 댓글