Scrolls for spike/cold protection + quest completion with equipped items
Added mechanic for the scrolls for spikes on shoes and cold protection on capes. Fixed an issue where equipped items were being counted towards materials for quests, therefore showing odds behaviours when completing it. Fixed some minor issues on the dollhouse quest/event.
This commit is contained in:
@@ -24,8 +24,9 @@
|
||||
**/
|
||||
importPackage(Packages.tools);
|
||||
|
||||
var returnMap;
|
||||
var map;
|
||||
var entryMap = 922000010;
|
||||
var exitMap = 221024400;
|
||||
var eventTime = 10; //10 minutes
|
||||
var eim;
|
||||
|
||||
function init() {
|
||||
@@ -33,59 +34,45 @@ function init() {
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
returnMap = em.getChannelServer().getMapFactory().getMap(221024400);
|
||||
eim = em.getInstance("DollHouse");
|
||||
map = eim.getMapFactory().getMap(922000010);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
map.shuffleReactors();
|
||||
eim.getInstanceMap(entryMap).shuffleReactors();
|
||||
eim.setExclusiveItems([4031094]);
|
||||
|
||||
player.changeMap(entryMap, 0);
|
||||
em.setProperty("noEntry","true");
|
||||
em.schedule("timeOut", 600000);
|
||||
player.getClient().getSession().write(MaplePacketCreator.getClock(600));
|
||||
|
||||
player.getClient().getSession().write(MaplePacketCreator.getClock(eventTime * 60));
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function playerExit(eim, player) {
|
||||
em.setProperty("noEntry","false");
|
||||
player.changeMap(returnMap, returnMap.getPortal(4));
|
||||
//eim.unregisterPlayer(player); needed no more
|
||||
em.cancel();
|
||||
em.disposeInstance("DollHouse");
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
}
|
||||
|
||||
function timeOut() {
|
||||
em.setProperty("noEntry","false");
|
||||
function scheduledTimeout(eim) {
|
||||
var player = eim.getPlayers().get(0);
|
||||
player.changeMap(returnMap, returnMap.getPortal(4));
|
||||
//eim.unregisterPlayer(player);
|
||||
em.cancel();
|
||||
em.disposeInstance("DollHouse");
|
||||
eim.dispose();
|
||||
playerExit(eim, eim.getPlayers().get(0));
|
||||
player.changeMap(exitMap, 4);
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
em.setProperty("noEntry","false");
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(returnMap);
|
||||
//eim.unregisterPlayer(player);
|
||||
em.cancel();
|
||||
em.disposeInstance("DollHouse");
|
||||
eim.dispose();
|
||||
playerExit(eim, player);
|
||||
}
|
||||
|
||||
function clear(eim) {
|
||||
em.setProperty("noEntry","false");
|
||||
var player = eim.getPlayers().get(0);
|
||||
player.changeMap(returnMap, returnMap.getPortal(4));
|
||||
//eim.unregisterPlayer(player);
|
||||
em.cancel();
|
||||
em.disposeInstance("DollHouse");
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 4);
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid != entryMap) playerExit(eim, chr);
|
||||
}
|
||||
|
||||
function dispose() {
|
||||
}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose() {}
|
||||
|
||||
@@ -24,24 +24,39 @@
|
||||
*/
|
||||
|
||||
var greeting;
|
||||
var status;
|
||||
|
||||
function start() {
|
||||
var greeting = "Thank you for finding the pendulum. Are you ready to return to Eos Tower?";
|
||||
if (cm.isQuestStarted(3230)) {
|
||||
if (cm.haveItem(4031094)) {
|
||||
cm.completeQuest(3230);
|
||||
cm.gainItem(4031094, -1);
|
||||
} else
|
||||
greeting = "You haven't found the pendulum yet. Do you want to go back to Eos Tower?";
|
||||
}
|
||||
cm.sendYesNo(greeting);
|
||||
status = -1;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode > 0) {
|
||||
var em = cm.getEventManager("DollHouse");
|
||||
var eim = em.getInstance("DollHouse");
|
||||
eim.exitPlayer(cm.getPlayer());
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
} else {
|
||||
if (mode == 0 && status == 0) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if(status == 0) {
|
||||
var greeting = "Thank you for finding the pendulum. Are you ready to return to Eos Tower?";
|
||||
if (cm.isQuestStarted(3230)) {
|
||||
if (cm.haveItem(4031094)) {
|
||||
cm.completeQuest(3230);
|
||||
cm.gainItem(4031094, -1);
|
||||
} else
|
||||
greeting = "You haven't found the pendulum yet. Do you want to go back to Eos Tower?";
|
||||
}
|
||||
cm.sendYesNo(greeting);
|
||||
} else if(status == 1) {
|
||||
cm.warp(221024400, 4);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
cm.dispose();
|
||||
}
|
||||
Reference in New Issue
Block a user