Files
sweetgum-server/scripts/quest/21401.js
ronancpl f958624f6a Reactor Loot + Obstacles damage mob + Static calls from scripts
Revised starting AP, now working out with flags. To supply the 9AP shortage of 4/4/4/4, two options: one giving out 9 AP from the start, other giving 4/5 AP when changing jobs (1st, 2nd). This change would also work with the autoassign for beginners flag.
Refactored several quest scripts, that would be glitching the player when doing quest start/complete and disposing under the same script status.
Cleared some cases with the quest reward system where it would call out a "full inventory" even though new inventory slots could get discovered when doing the quest loot transaction.
Fixed an issue with player stores being deployed overlapping in a few scenarios.
Fixed reduced EXP gain from kills when triggering skill Mortal Blow.
Added "open Duey" functionality when clicking "O" in the incoming package notification.
Fixed packages without messages (a quirk from quick delivery) not accounting visually as a "quick" one.
Fixed certain mounts (non-item skill mounts, such as Yeti or Spaceship) not showing up properly to other players when changing maps.
Added handler for mob damage by environment objects (OrbisPQ jail storage area).
Added a placeholder on mob's stolen items to prevent more steals to be placed as soon as the Steal mechanism is triggered.
Patched boss logs not removing recent entries from the DB tables (the reset method is actually supposed to clear every entry).
Revised a possible memory leak scenario happening due to an exception thrown midway monster kill method.
Improved reactor drops, now placing loots visible for the acting player centered (similar as to how mob loots work).
Refactored several issues in scripts, related to accessing static Java methods through an object, that would start appearing after transitioning to Java 8.
2019-08-14 21:14:15 -03:00

82 lines
3.2 KiB
JavaScript

importPackage(Packages.server.life);
var status = -1;
function start(mode, type, selection) {
status++;
if(mode == 0 && type == 0)
status -= 2;
else if (mode != 1) {
//if (mode == 0)
qm.sendNext("#b(You need to think about this for a second...)#k");
qm.dispose();
return;
}
if (status == 0) {
qm.sendNext("Why do I look like this, you ask? I don't want to talk about it, but I suppose I can't hide from you since you're my master.");
} else if (status == 1) {
qm.sendNextPrev("While you were trapped inside ice for hundreds of years, I, too, was frozen. It was a long time to be away from you. That's when the seed of darkness was planted in my heart.");
} else if (status == 2) {
qm.sendNextPrev("But since you awoke, I thought the darkness had gone away. I thought things would return to the way they were. But I was mistaken...");
} else if (status == 3) {
qm.sendAcceptDecline("Please, Aran. Please stop me from becoming enraged. Only you can control me. It's getting out of my hands now. Please do whatever it takes to #rstop me from going berserk#k!");
} else if (status == 4) {
var em = qm.getEventManager("MahaBattle");
if (!em.startInstance(qm.getPlayer())) {
qm.sendOk("There is currently someone in this map, come back later.");
} else {
qm.startQuest();
}
qm.dispose();
}
}
function end(mode, type, selection) {
status++;
if(mode == 0 && type == 0)
status -= 2;
else if (mode != 1) {
//if (mode == 0)
qm.sendNext("#b(You need to think about this for a second...)#k");
qm.dispose();
return;
}
if (status == 0) {
qm.sendNext("Thank you, Aran. If it weren't for you, I would have become enraged and who knows what could have happened. Thank you, NOT! It's only your duty as my master...");
} else if(status == 1) {
qm.sendYesNo("Anyway, I just noticed how high of a level you've reached. If you were able to control me in my state of rage, I think you're ready to handle more abilities.");
} else if(status == 2) {
if(!qm.isQuestCompleted(21401)) {
if(!qm.canHold(1142132)) {
qm.sendOk("Wow, your #bequip#k inventory is full. I need you to make at least 1 empty slot to complete this quest.");
qm.dispose();
return;
}
if (!qm.canHold(2280003, 1)) {
qm.sendOk("Hey, your #buse#k inventory is full. I need you to make at least 1 empty slot to complete this quest.");
qm.dispose();
return;
}
qm.gainItem(1142132, true);
qm.gainItem(2280003, 1);
qm.changeJobById(2112);
qm.completeQuest();
}
qm.sendNext("Your skills have been restored. Those skills have been dormant for so long that you'll have to re-train yourself, but you'll be as good as new once you complete your training.");
} else if(status == 3) {
qm.dispose();
}
}
function spawnMob(x, y, id, map) {
if(map.getMonsterById(id) != null)
return;
var mob = MapleLifeFactory.getMonster(id);
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(x, y));
}