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:
ronancpl
2017-11-07 10:44:00 -02:00
parent 1fead59c57
commit 624aca375e
164 changed files with 26482 additions and 35341 deletions

View File

@@ -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");

View File

@@ -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(){}