WK charges fix + Job level cap + MapleQuestItemFetcher
Fixed WK charges not overriding one another and some concurrency issues within MapleMap and EventInstanceManager. New feature: job level cap, limits EXP gain until job advancement is done. New tool: MapleQuestItemFetcher, searches through the server files for missing quest items and reports the results.
This commit is contained in:
@@ -27,7 +27,6 @@ importPackage(Packages.tools);
|
||||
var entryMap = 922000010;
|
||||
var exitMap = 221024400;
|
||||
var eventTime = 10; //10 minutes
|
||||
var eim;
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
var minPlayers = 1;
|
||||
var timeLimit = 10; //10 minutes
|
||||
var timeLimit = 1; //10 minutes
|
||||
var eventTimer = 1000 * 60 * timeLimit;
|
||||
var entryMap = 910510001;
|
||||
var exitMap = 105070300;
|
||||
var eventMap = 910510000;
|
||||
|
||||
@@ -18,12 +17,7 @@ function setup(difficulty, lobbyId){
|
||||
|
||||
function afterSetup(eim){}
|
||||
|
||||
function respawn(eim){
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
map.allowSummonState(true);
|
||||
map.instanceMapRespawn();
|
||||
eim.schedule("respawn", 10000);
|
||||
}
|
||||
function respawn(eim){}
|
||||
|
||||
function playerEntry(eim, player){
|
||||
var cave = eim.getMapInstance(eventMap);
|
||||
@@ -43,7 +37,7 @@ function playerRevive(eim, player){
|
||||
player.setHp(50);
|
||||
player.setStance(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(entryMap);
|
||||
player.changeMap(exitMap);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -65,19 +59,7 @@ function monsterValue(eim, mobId){
|
||||
return -1;
|
||||
}
|
||||
|
||||
function leftParty(eim, player){
|
||||
var party = eim.getPlayers();
|
||||
|
||||
if(party.size() < minPlayers){
|
||||
for(var i = 0; i < party.size(); i++){
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
else{
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
function leftParty(eim, player){}
|
||||
|
||||
function disbandParty(eim){}
|
||||
|
||||
@@ -85,11 +67,11 @@ function playerUnregistered(eim, player){}
|
||||
|
||||
function playerExit(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(entryMap, 2);
|
||||
player.changeMap(exitMap);
|
||||
}
|
||||
|
||||
function moveMap(eim, player){
|
||||
if(player.getMap().getId() == exitMap || player.getMap().getId() == entryMap){
|
||||
function changedMap(eim, player){
|
||||
if(player.getMap().getId() < eventMap || player.getMap().getId() > next){
|
||||
removePlayer(eim, player);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
@@ -100,7 +82,7 @@ function moveMap(eim, player){
|
||||
function removePlayer(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(entryMap);
|
||||
player.setMap(exitMap);
|
||||
}
|
||||
|
||||
function cancelSchedule(){}
|
||||
|
||||
11
scripts/map/onUserEnter/910510202.js
Normal file
11
scripts/map/onUserEnter/910510202.js
Normal file
@@ -0,0 +1,11 @@
|
||||
importPackage(Packages.server.life);
|
||||
|
||||
function start(ms){
|
||||
var mobId = 9300344;
|
||||
var player = ms.getPlayer();
|
||||
var map = player.getMap();
|
||||
|
||||
if(map.countMonster(mobId) == 0) {
|
||||
map.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(mobId), new java.awt.Point(680, 258));
|
||||
}
|
||||
}
|
||||
33
scripts/npc/1063016.js
Normal file
33
scripts/npc/1063016.js
Normal file
@@ -0,0 +1,33 @@
|
||||
/* Strange Looking Statue
|
||||
Puppeteer's Secret Passage (910510100)
|
||||
Puppeteer JQ.
|
||||
*/
|
||||
|
||||
var status;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
} else {
|
||||
if (mode == 0 && type > 0) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if(status == 0) {
|
||||
cm.sendYesNo("Will you exit this trial?");
|
||||
} else {
|
||||
cm.warp(105040201, 2);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
38
scripts/npc/1063017.js
Normal file
38
scripts/npc/1063017.js
Normal file
@@ -0,0 +1,38 @@
|
||||
/* Monstrous Looking Statue
|
||||
Puppeteer's Secret Passage (910510100)
|
||||
Puppeteer JQ.
|
||||
*/
|
||||
|
||||
var status;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
} else {
|
||||
if (mode == 0 && type > 0) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if(status == 0) {
|
||||
cm.sendYesNo("Ahead awaits the Master himself. Are you ready to face him?");
|
||||
} else {
|
||||
if(cm.getClient().getChannelServer().getMapFactory().getMap(925020010).getCharacters().size() > 0) {
|
||||
cm.sendOk("Someone is already challenging the Master. Try again later.");
|
||||
} else {
|
||||
cm.warp(910510202, 0);
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,8 +15,6 @@ function action(mode, type, selection){
|
||||
else
|
||||
status++;
|
||||
|
||||
|
||||
|
||||
if(status == 0){
|
||||
cm.sendNext("What the... you don't belong here!");
|
||||
}
|
||||
|
||||
@@ -5,7 +5,16 @@
|
||||
|
||||
var status = -1;
|
||||
|
||||
function start() {
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if(mode == -1 || mode == 0 && type > 0) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mode == 1) {
|
||||
status++;
|
||||
} else {
|
||||
@@ -16,8 +25,8 @@ function action(mode, type, selection) {
|
||||
} else if (status == 1) {
|
||||
cm.sendNextPrev("#b(The Black Wings? Huh? Who are they? And how is all this related to the Black Mage? Hm, maybe you should report this info to Tru.)#k", 3);
|
||||
} else if (status == 2) {
|
||||
cm.startQuest(21760);
|
||||
cm.warp(105040200, 3);//104000004
|
||||
cm.dispose();
|
||||
cm.startQuest(21760);
|
||||
cm.warp(105040200, 3);//104000004
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
@@ -79,9 +79,9 @@ function action(mode, type, selection) {
|
||||
cm.sendNext("Haha! Who are you trying to impress with a heart like that?\r\nGo back home where you belong!");
|
||||
} else {
|
||||
if(cm.getClient().getChannelServer().getMapFactory().getMap(925020010).getCharacters().size() > 0) {
|
||||
cm.sendOk("Someone is already in Dojo");
|
||||
cm.dispose();
|
||||
return;
|
||||
cm.sendOk("Someone is already in Dojo.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
cm.warp(925020010, 0);
|
||||
cm.getPlayer().setFinishedDojoTutorial();
|
||||
|
||||
@@ -22,11 +22,10 @@ function action(mode, type, selection){
|
||||
}
|
||||
else if(status == 1){
|
||||
if(cm.getText() == "Francis is a genius Puppeteer!"){
|
||||
|
||||
if(cm.isQuestCompleted(20730) || !cm.isQuestStarted(20730) || (cm.isQuestStarted(20730) && cm.getQuestProgress(20730, 9300285) > 0))
|
||||
cm.warp(910510000, 1);
|
||||
else if(cm.isQuestStarted(20730))
|
||||
if(cm.isQuestStarted(20730) && cm.getQuestProgress(20730, 9300285) == 0)
|
||||
cm.warp(910510001, 1);
|
||||
else
|
||||
cm.playerMessage(5, "Although you said the right answer, some mysterious forces is blocking the way in.");
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
12
scripts/portal/enterDollWay.js
Normal file
12
scripts/portal/enterDollWay.js
Normal file
@@ -0,0 +1,12 @@
|
||||
function enter(pi) {
|
||||
if(pi.isQuestCompleted(20730) || pi.isQuestCompleted(21731)) { // puppeteer defeated, newfound secret path
|
||||
pi.warp(105070300,3);
|
||||
return true;
|
||||
} else if(pi.isQuestStarted(21731)) {
|
||||
pi.warp(910510100,0);
|
||||
return true;
|
||||
} else {
|
||||
pi.message("An ominous power prevents you from passing here.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,9 @@
|
||||
function enter(pi) {
|
||||
if(pi.isQuestCompleted(20730) || pi.isQuestCompleted(21731)) { // puppeteer defeated, newfound secret path
|
||||
pi.warp(105040201,2);
|
||||
return true;
|
||||
}
|
||||
|
||||
pi.openNpc(1063011, "PupeteerPassword");
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user