楓之谷私服武陵道場NPC JS腳本
適用端口:120白狐端
演示:
兌換道具數量可在腳本內自行更改。
- 中文化:本人
- NPC:2091005
腳本:
var status = -1;
var sel;
var mapid;
function start() {
mapid = cm.getMapId();
if (mapid == 925020001) {
cm.sendSimple("我的師傅是武陵中擁有最高功力的人,您現在是想告訴我您要挑戰我的師傅嗎?不要說我沒有警告過你。#b \n\r #L0#我想單人挑戰他#l \n\r #L1#我想組隊挑戰他#l \n\r #L2#我想兌換腰帶#l \n\r #L3#我想重設訓練點#l \n\r #L5#什麼是武陵修煉場?#l");
} else if (isRestingSpot(mapid)) {
cm.sendSimple("我很驚訝你已經安全地達到了這個樓層,但是不會再這麼容易了。你怎麼想?你想繼續嗎?#b \n\r #L0#是的,我要繼續。#l \n\r #L1#我想離開。#l \n\r #L2#我想儲存我的紀錄。#l");
} else {
cm.sendYesNo("什麼?你準備要離開了?您還可以進入下一個級別呢!你確定真的要離開?");
}
}
function action(mode, type, selection) {
if (mapid == 925020001) {
if (mode == 1) {
status++;
} else {
cm.dispose();
return;
}
if (status == 0) {
sel = selection;
if (sel == 5) {
cm.sendNext("我的師傅是武陵中擁有最高功力的人,且他也是建立這個武陵修練塔的人。武陵道場是一個龐大的訓練設施,共有38層。 每個樓層難度級別都不同。當然,憑藉您的功力,到達頂樓是不可能的...");
cm.dispose();
} else if (sel == 3) {
cm.sendYesNo("您知道如果重新設置訓練點,它將恢復為0,對吧?老實說,這不一定是壞事。重置訓練點並重新開始後,那麼您就可以再次收到皮帶了。 你想重設訓練點嗎?");
} else if (sel == 2) {
cm.sendSimple("到目前為止,您的總訓練點數是 #b"+cm.getDojoPoints()+"#k。 我的師父惜愛有才華的人,因此,如果您積累了足夠的訓練點, 您將可以根據自己的訓練點獲得腰帶...\n\r #L0##i1132000:# #t1132000# (50)#l \n\r #L1##i1132001:# #t1132001# (150)#l \n\r #L2##i1132002:# #t1132002# (300)#l \n\r #L3##i1132003:# #t1132003# (450)#l \n\r #L4##i1132004:# #t1132004# (600)#l\r\n");
} else if (sel == 1) {
if (cm.getParty() != null) {
if (cm.isLeader()) {
cm.sendOk("您要立即進入嗎?");
} else {
cm.sendOk("嘿,您甚至都不是隊長。您想偷偷溜進去做什麼?如果您想進入該場所,請告訴您的隊長與我交談。");
}
}
} else if (sel == 0) {
if (cm.getParty() != null) {
cm.sendOk("請離開你的隊伍。");
cm.dispose();
}
var record = cm.getQuestRecord(150000);
var data = record.getCustomData();
if (data != null) {
var idd = get_restinFieldID(parseInt(data));
if (idd != 925020002) {
cm.dojoAgent_NextMap(true, true , idd );
record.setCustomData(null);
} else {
cm.sendOk("請等等再嘗試一次。");
}
} else {
cm.start_DojoAgent(true, false);
}
cm.dispose();
// cm.sendYesNo("The last time you took the challenge yourself, you were able to reach Floor #18. I can take you straight to that floor, if you want. Are you interested?");
}
} else if (status == 1) {
if (sel == 3) {
cm.setDojoRecord(true);
cm.sendOk("我已將您的訓練點重設為0");
} else if (sel == 2) {
var record = cm.getDojoRecord();
var required = 0;
switch (record) {
case 0:
required = 500;
break;
case 1:
required = 1500;
break;
case 2:
required = 3000;
break;
case 3:
required = 4500;
break;
case 4:
required = 6000;
break;
case 5:
required = 9000;
break;
case 6:
required = 11000;
break;
case 7:
required = 15000;
break;
}
if (record == selection && cm.getDojoPoints() >= required) {
var item = 1132000 + record;
if (cm.canHold(item)) {
cm.gainItem(item, 1);
cm.setDojoRecord(false);
} else {
cm.sendOk("請檢查背包中是否還有空位。");
}
} else {
cm.sendOk("您已經擁有或訓練點不足。請嘗試先獲取較低階的腰帶。");
}
cm.dispose();
} else if (sel == 1) {
cm.start_DojoAgent(true, true);
cm.dispose();
}
}
} else if (isRestingSpot(mapid)) {
if (mode == 1) {
status++;
} else {
cm.dispose();
return;
}
if (status == 0) {
sel = selection;
if (sel == 0) {
if (cm.getParty() == null || cm.isLeader()) {
cm.dojoAgent_NextMap(true, true);
} else {
cm.sendOk("只有隊長可以繼續前進。");
}
//cm.getQuestRecord(150000).setCustomData(null);
cm.dispose();
} else if (sel == 1) {
cm.askAcceptDecline("你想退出嗎?你真的想離開這裡嗎?");
} else if (sel == 2) {
if (cm.getParty() == null) {
var stage = get_stageId(cm.getMapId());
cm.getQuestRecord(150000).setCustomData(stage);
cm.sendOk("我剛剛記錄了您的進度。下次您到達這裡時,我會直接將您送到此樓層。");
cm.dispose();
} else {
cm.sendOk("嘿..您無法記錄與隊伍合作的進度...");
cm.dispose();
}
}
} else if (status == 1) {
if (sel == 1) {
if (cm.isLeader()) {
cm.warpParty(925020002);
} else {
cm.warp(925020002);
}
}
cm.dispose();
}
} else {
if (mode == 1) {
if (cm.isLeader()) {
cm.warpParty(925020002);
} else {
cm.warp(925020002);
}
}
cm.dispose();
}
}
function get_restinFieldID(id) {
var idd = 925020002;
switch (id) {
case 1:
idd = 925020600;
break;
case 2:
idd = 925021200;
break;
case 3:
idd = 925021800;
break;
case 4:
idd = 925022400;
break;
case 5:
idd = 925023000;
break;
case 6:
idd = 925023600;
break;
}
for (var i = 0; i < 10; i++) {
var canenterr = true;
for (var x = 1; x < 39; x++) {
var map = cm.getMap(925020000 + 100 * x + i);
if (map.getCharactersSize() > 0) {
canenterr = false;
break;
}
}
if (canenterr) {
idd += i;
break;
}
}
return idd;
}
function get_stageId(mapid) {
if (mapid >= 925020600 && mapid <= 925020614) {
return 1;
} else if (mapid >= 925021200 && mapid <= 925021214) {
return 2;
} else if (mapid >= 925021800 && mapid <= 925021814) {
return 3;
} else if (mapid >= 925022400 && mapid <= 925022414) {
return 4;
} else if (mapid >= 925023000 && mapid <= 925023014) {
return 5;
} else if (mapid >= 925023600 && mapid <= 925023614) {
return 6;
}
return 0;
}
function isRestingSpot(id) {
return (get_stageId(id) > 0);
}