sweetgum83/scripts/portal/TD_MC_enterboss2.js

75 lines
2.9 KiB
JavaScript
Raw Normal View History

2024-01-19 08:56:28 +00:00
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;
}
}