- UID
- 179410
- 帖子
- 15
- 主題
- 2
- 精華
- 0
- 積分
- 2
- 楓幣
- 165
- 威望
- 2
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 2
- 閱讀權限
- 10
- 性別
- 保密
- 在線時間
- 1 小時
- 註冊時間
- 2017-2-17
- 最後登入
- 2019-11-10
|
本帖最後由 a6170830 於 2019-10-26 19:30 編輯
我現在用一個npc 2000做一個萬能NPC,第一個想要做傳送地圖功能,想法是較另一個npc 2001來當地圖傳送員如下:
importPackage(Packages.client);
var status = -1;
var options = ["傳送地圖"];
var name = "113私服";
function start() {
action(1,0,0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (mode == 0 && status == 0) {
cm.dispose();
return;
}
if (mode == 1) {
status++;
} else {
status--;
}
if (status == 0) {
var msg = "親愛的 [" + cm.getPlayer().getName() + "] 你好,我是 #d" + name + "萬能NPC\r\n#b";
for (var i = 0; i < options.length; i++) {
msg += "\r\n#L" + i + "#" + options;
}
cm.sendOk(msg);
} else if (status == 1) {
switch(selection){
case 0://(地圖傳送)
cm.dispose();
cm.openNpc(2001);
break;
}
cm.dispose();
}
}
}
接著是npc 2001的JS:
importPackage(Packages.client);
var status = -1;
var mapname = ["回到自由"];
var name = "113私服";
function start() {
action1(1,0,0);
}
function action1(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (mode == 0 && status == 0) {
cm.dispose();
return;
}
if (mode == 1) {
status++;
} else {
status--;
}
if (status == 0) {
var msg = "親愛的 [" + cm.getPlayer().getName() + "] 你好,我是 #d" + name + "地圖傳送員\r\n#b";
for (var i = 0; i < mapname.length; i++) {
msg += "\r\n#L" + i + "#" + mapname;
}
cm.sendOk(msg);
} else if (status == 1) {
switch(selection){
case 0:
cm.dispose();
cm.warp(910000000);
break;
}
cm.dispose();
}
}
}
有試過如果點傳送地圖直接寫cm.warp(910000000)是可以傳到自由的,但是分成兩個npc就無法傳送,請問這個要怎麼解決?
---
解決方法:2000.js openNpc後面break改成return
|
|