Adjusted reactor drops, now performing spray-like for any reactor. Revised usage of synchronized statements in several methods in the source. Fixed a quest from the Aran questline using "password" system unpredictedly. Fixed column name in table "reports". Fixed commands "startquest" and "completequest" not using the quest's NPC in the talk window. Fixed HP regen bonuses such as sauna robes and from Endure skill, when applied in maps with improved regen, leading to false-positives (with the heal on the player). Fixed a recent typo on a property from HenesysPQ. Fixed "Combat Step" effect showing twice for other players. Fixed type-cast issues within some script-hubbing methods in some Java classes. Reactivated an unused flag that ignores level difference when applying EXP gains to party players. Fixed Gaviota not disappearing after attack, as defined in the description of the skill. Fixed CPQ1 field 3 & 4 not allowing players to use summons/protectors. Fixed exped leaders still receiving exped creation packets even though it was dismissed due to failure on starting (daily entry limit, other fail cases). Fixed a locking issue that would show up due to a infinite loop case within the procedure that makes disappear items immediately if there were already many items on map. Fixed several summon skills not using buff icons. Fixed max damage calculation for summons getting extremely low values when either a player doesn't equip a weapon or attack value is too low. Fixed explosive loots not taking effect at all, although loot drop-types were already implemented. Fixed NPE cases when trying to update position of summons/dragons server-side. Reviewed reactor reset of reactors that disappears for a while. They are now supposed to return immediately once issued a reset.
36 lines
1.4 KiB
JavaScript
36 lines
1.4 KiB
JavaScript
// @Author: Resinate
|
|
|
|
importPackage(Packages.server.life);
|
|
importPackage(Packages.tools);
|
|
|
|
var towns = new Array(800020120, 251010102, 260010201, 107000300, 200010300, 100040105, 100040106, 261030000, 110040000, 240040401, 104000400, 222010310, 230040420, 230040420, 230020100, 105090310, 101030404, 250010304, 220050100, 220050000, 220050200, 221040301);
|
|
var spawns = new Array(6090002, 5220004, 3220001, 6220000, 8220000, 5220002, 5220002, 8220002, 5220001, 8220003, 2220000, 7220001, 8510000, 8520000, 4220001, 8220008, 3220000, 7220000, 5220003, 5220003, 5220003, 6220001);
|
|
var x = new Array(560, 560, 645, 90, 208, 456, 474, -300, 200, 0, 400, 0, 527, 138, 0, -626, 800, -300, -300, 0, 0, -4224);
|
|
var y = new Array(50, 50, 275, 119, 83, 278, 278, 180, 140, 1125, 455, 33, -437, 138, 520, -604, 1280, 390, 1030, 1030, 1030, 776);
|
|
var mapObj;
|
|
var mobObj;
|
|
|
|
function init() {
|
|
scheduleNew();
|
|
}
|
|
|
|
function scheduleNew() {
|
|
setupTask = em.schedule("start", 0);
|
|
}
|
|
|
|
function cancelSchedule() {
|
|
if (setupTask != null)
|
|
setupTask.cancel(true);
|
|
}
|
|
|
|
function start() {
|
|
for(var i = 0; i < towns.length; i++) {
|
|
mapObj = em.getChannelServer().getMapFactory().getMap(towns[i]);
|
|
mobObj = MapleLifeFactory.getMonster(spawns[i]);
|
|
if(mapObj.getMonsterById(spawns[i]) == null) {
|
|
mapObj.spawnMonsterOnGroundBelow(mobObj, new Packages.java.awt.Point(x[i],y[i]));
|
|
}
|
|
}
|
|
setupTask = em.schedule("start", 30 * 60 * 1000);
|
|
}
|