75 lines
2.9 KiB
JavaScript
75 lines
2.9 KiB
JavaScript
|
function enter(pi) {
|
||
|
if (pi.isQuestCompleted(2331)) {
|
||
|
pi.openNpc(1300013);
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (pi.isQuestCompleted(2333) && pi.isQuestStarted(2331) && !pi.hasItem(4001318)) {
|
||
|
pi.getPlayer().message("Lost the Royal Seal, eh? Worry not! Kevin's code here to save your hide.");
|
||
|
if (pi.canHold(4001318)) {
|
||
|
pi.gainItem(4001318, 1);
|
||
|
} else {
|
||
|
pi.getPlayer().message("Hey, how do you plan to hold this Seal when your inventory is full?");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (pi.isQuestCompleted(2333)) {
|
||
|
pi.playPortalSound();
|
||
|
pi.warp(106021600, 1);
|
||
|
return true;
|
||
|
} else if (pi.isQuestStarted(2332) && pi.hasItem(4032388)) {
|
||
|
pi.forceCompleteQuest(2332, 1300002);
|
||
|
pi.getPlayer().message("You've found the princess!");
|
||
|
pi.giveCharacterExp(4400, pi.getPlayer());
|
||
|
|
||
|
var em = pi.getEventManager("MK_PrimeMinister");
|
||
|
var party = pi.getPlayer().getParty();
|
||
|
if (party != null) {
|
||
|
var eli = em.getEligibleParty(pi.getParty()); // thanks Conrad for pointing out missing eligible party declaration here
|
||
|
if (eli.size() > 0) {
|
||
|
if (em.startInstance(party, pi.getMap(), 1)) {
|
||
|
pi.playPortalSound();
|
||
|
return true;
|
||
|
} else {
|
||
|
pi.message("Another party is already challenging the boss in this channel.");
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
if (em.startInstance(pi.getPlayer())) { // thanks RedHat for noticing an issue here
|
||
|
pi.playPortalSound();
|
||
|
return true;
|
||
|
} else {
|
||
|
pi.message("Another party is already challenging the boss in this channel.");
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
} else if (pi.isQuestStarted(2333) || (pi.isQuestCompleted(2332) && !pi.isQuestStarted(2333))) {
|
||
|
var em = pi.getEventManager("MK_PrimeMinister");
|
||
|
|
||
|
var party = pi.getPlayer().getParty();
|
||
|
if (party != null) {
|
||
|
var eli = em.getEligibleParty(pi.getParty());
|
||
|
if (eli.size() > 0) {
|
||
|
if (em.startInstance(party, pi.getMap(), 1)) {
|
||
|
pi.playPortalSound();
|
||
|
return true;
|
||
|
} else {
|
||
|
pi.message("Another party is already challenging the boss in this channel.");
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
if (em.startInstance(pi.getPlayer())) {
|
||
|
pi.playPortalSound();
|
||
|
return true;
|
||
|
} else {
|
||
|
pi.message("Another party is already challenging the boss in this channel.");
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
pi.getPlayer().message("The door seems to be locked. Perhaps I can find a key to open it...");
|
||
|
return false;
|
||
|
}
|
||
|
}
|