WK charges fix + Job level cap + MapleQuestItemFetcher

Fixed WK charges not overriding one another and some concurrency issues within MapleMap and EventInstanceManager.
New feature: job level cap, limits EXP gain until job advancement is done.
New tool: MapleQuestItemFetcher, searches through the server files for missing quest items and reports the results.
This commit is contained in:
ronancpl
2017-11-07 10:44:00 -02:00
parent 1fead59c57
commit 624aca375e
164 changed files with 26482 additions and 35341 deletions

33
scripts/npc/1063016.js Normal file
View File

@@ -0,0 +1,33 @@
/* Strange Looking Statue
Puppeteer's Secret Passage (910510100)
Puppeteer JQ.
*/
var status;
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (mode == 0 && type > 0) {
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if(status == 0) {
cm.sendYesNo("Will you exit this trial?");
} else {
cm.warp(105040201, 2);
cm.dispose();
}
}
}

38
scripts/npc/1063017.js Normal file
View File

@@ -0,0 +1,38 @@
/* Monstrous Looking Statue
Puppeteer's Secret Passage (910510100)
Puppeteer JQ.
*/
var status;
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (mode == 0 && type > 0) {
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if(status == 0) {
cm.sendYesNo("Ahead awaits the Master himself. Are you ready to face him?");
} else {
if(cm.getClient().getChannelServer().getMapFactory().getMap(925020010).getCharacters().size() > 0) {
cm.sendOk("Someone is already challenging the Master. Try again later.");
} else {
cm.warp(910510202, 0);
}
cm.dispose();
}
}
}

View File

@@ -15,8 +15,6 @@ function action(mode, type, selection){
else
status++;
if(status == 0){
cm.sendNext("What the... you don't belong here!");
}

View File

@@ -5,7 +5,16 @@
var status = -1;
function start() {
action(1, 0, 0);
}
function action(mode, type, selection) {
if(mode == -1 || mode == 0 && type > 0) {
cm.dispose();
return;
}
if (mode == 1) {
status++;
} else {
@@ -16,8 +25,8 @@ function action(mode, type, selection) {
} else if (status == 1) {
cm.sendNextPrev("#b(The Black Wings? Huh? Who are they? And how is all this related to the Black Mage? Hm, maybe you should report this info to Tru.)#k", 3);
} else if (status == 2) {
cm.startQuest(21760);
cm.warp(105040200, 3);//104000004
cm.dispose();
cm.startQuest(21760);
cm.warp(105040200, 3);//104000004
cm.dispose();
}
}

View File

@@ -79,9 +79,9 @@ function action(mode, type, selection) {
cm.sendNext("Haha! Who are you trying to impress with a heart like that?\r\nGo back home where you belong!");
} else {
if(cm.getClient().getChannelServer().getMapFactory().getMap(925020010).getCharacters().size() > 0) {
cm.sendOk("Someone is already in Dojo");
cm.dispose();
return;
cm.sendOk("Someone is already in Dojo.");
cm.dispose();
return;
}
cm.warp(925020010, 0);
cm.getPlayer().setFinishedDojoTutorial();

View File

@@ -22,11 +22,10 @@ function action(mode, type, selection){
}
else if(status == 1){
if(cm.getText() == "Francis is a genius Puppeteer!"){
if(cm.isQuestCompleted(20730) || !cm.isQuestStarted(20730) || (cm.isQuestStarted(20730) && cm.getQuestProgress(20730, 9300285) > 0))
cm.warp(910510000, 1);
else if(cm.isQuestStarted(20730))
if(cm.isQuestStarted(20730) && cm.getQuestProgress(20730, 9300285) == 0)
cm.warp(910510001, 1);
else
cm.playerMessage(5, "Although you said the right answer, some mysterious forces is blocking the way in.");
cm.dispose();
}