Nihal quests + Reactor's mapitem detection + MapleQuestMesoFetcher

Improved quests and game progression in the Nihal Desert region.
Reactors that uses map items now automatically detects those already on the ground after changing states.
New tool: MapleQuestMesoFetcher. This tool parses the Quest.wz XML files, detecting and reporting quest ids from quests that does not properly checks for mesos to take from the player before completing the quest.
This commit is contained in:
ronancpl
2017-12-07 19:08:38 -02:00
parent 8dba6957df
commit f698c41f00
118 changed files with 5819 additions and 1160 deletions

View File

@@ -1,8 +1,6 @@
/*
This file is part of the OdinMS Maple Story Server
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
Matthias Butz <matze@odinms.de>
Jan Christian Meyer <vimes@odinms.de>
This file is part of the HeavenMS (MapleSolaxiaV2) MapleStory Server
Copyleft (L) 2017 RonanLana
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
@@ -19,11 +17,15 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* NPC Base
Map Name (Map ID)
Extra NPC info.
/* Oasis near Ariant Castle
*/
importPackage(Packages.client);
function isTigunMorphed(ch) {
return ch.getBuffSource(MapleBuffStat.MORPH) == 2210005;
}
function start() {
status = -1;
action(1, 0, 0);
@@ -38,12 +40,30 @@ function action(mode, type, selection) {
else
status--;
if (status == 0 && mode == 1) {
if(cm.isQuestStarted(3900) && cm.getPlayer().getQuestInfo(3900) != 5) {
cm.sendOk("#b(You drink the water from the oasis and feel refreshed.)", 2);
//TODO: Update quest progress.
cm.getPlayer().updateQuestInfo(3900, "5");
}
cm.dispose();
}
if(cm.isQuestStarted(3900) && cm.getPlayer().getQuestInfo(3900) != 5) {
cm.sendOk("#b(You drink the water from the oasis and feel refreshed.)", 2);
cm.getPlayer().updateQuestInfo(3900, "5");
} else if(cm.isQuestCompleted(3938)) {
if(cm.canHold(2210005)) {
if(!cm.haveItem(2210005) && !isTigunMorphed(cm.getPlayer())) {
cm.gainItem(2210005, 1);
cm.sendOk("You found a lock of hair (probably Tigun's) floating by the water and catched it. Remembering how #bJano#k made it last time, you crafted a new #t2210005#", 2);
}
} else {
cm.sendOk("You don't have a USE slot available.", 2);
}
} else if(cm.isQuestStarted(3934) || (cm.isQuestCompleted(3934) && !cm.isQuestCompleted(3935))) {
if(cm.canHold(2210005)) {
if(!cm.haveItem(2210005) && !isTigunMorphed(cm.getPlayer())) {
cm.gainItem(2210005, 1);
cm.sendOk("You managed to find a strange flask floating on the river. It seems like a transformation bottle mimicking one of the guards of the castle, maybe with it you will be able to roam inside freely.", 2);
}
} else {
cm.sendOk("You found a strange flask floating on the river. But you decided to ignore it since you don't have a USE slot available.", 2);
}
}
cm.dispose();
}
}
}