Reformat and clean up event scripts
This commit is contained in:
@@ -81,7 +81,7 @@ function scheduledTimeout(eim) {
|
||||
function timeOut(eim) {
|
||||
if (eim.getPlayerCount() > 0) {
|
||||
var pIter = eim.getPlayers().iterator();
|
||||
while (pIter.hasNext()){
|
||||
while (pIter.hasNext()) {
|
||||
var player = pIter.next();
|
||||
player.dropMessage(6, "You have run out of time to complete this event!");
|
||||
playerExit(eim, player);
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
2x EXP Event Script
|
||||
-- Author --------------------------------------------------------------------------------------
|
||||
Twdtwd
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
2x EXP Event Script
|
||||
-- Author --------------------------------------------------------------------------------------
|
||||
Twdtwd
|
||||
**/
|
||||
|
||||
var timer1;
|
||||
var timer2;
|
||||
@@ -32,27 +32,31 @@ var timer3;
|
||||
var timer4;
|
||||
|
||||
function init() {
|
||||
/*
|
||||
/*
|
||||
if(em.getChannelServer().getId() == 1) { // Only run on channel 1.
|
||||
// AEST
|
||||
timer1 = em.scheduleAtTimestamp("start", 1428220800000);
|
||||
timer2 = em.scheduleAtTimestamp("stop", 1428228000000);
|
||||
// EDT
|
||||
timer1 = em.scheduleAtTimestamp("start", 1428271200000);
|
||||
timer2 = em.scheduleAtTimestamp("stop", 1428278400000);
|
||||
}
|
||||
// AEST
|
||||
timer1 = em.scheduleAtTimestamp("start", 1428220800000);
|
||||
timer2 = em.scheduleAtTimestamp("stop", 1428228000000);
|
||||
// EDT
|
||||
timer1 = em.scheduleAtTimestamp("start", 1428271200000);
|
||||
timer2 = em.scheduleAtTimestamp("stop", 1428278400000);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (timer1 != null)
|
||||
if (timer1 != null) {
|
||||
timer1.cancel(true);
|
||||
if (timer2 != null)
|
||||
}
|
||||
if (timer2 != null) {
|
||||
timer2.cancel(true);
|
||||
if (timer3 != null)
|
||||
}
|
||||
if (timer3 != null) {
|
||||
timer3.cancel(true);
|
||||
if (timer4 != null)
|
||||
}
|
||||
if (timer4 != null) {
|
||||
timer4.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* 3rd Job Event - Bowman
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 108010100;
|
||||
var exitMap = 105040305;
|
||||
@@ -37,22 +37,22 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("3rdJob_bowman_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
eim.getInstanceMap(maxMapId).resetPQ(1);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 0);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -64,7 +64,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -81,19 +81,21 @@ function clear(eim) {
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* 3rd Job Event - Magician
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 108010200;
|
||||
var exitMap = 100040106;
|
||||
@@ -37,22 +37,22 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("3rdJob_magician_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
eim.getInstanceMap(maxMapId).resetPQ(1);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 0);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -64,7 +64,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -81,19 +81,21 @@ function clear(eim) {
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* 3rd Job Event - Kenta's Mount Quest
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 923010000;
|
||||
var exitMap = 923010100;
|
||||
@@ -39,7 +39,7 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function checkHogHealth(eim) {
|
||||
@@ -47,7 +47,7 @@ function checkHogHealth(eim) {
|
||||
if (watchHog != null) {
|
||||
var hp = watchHog.getHp();
|
||||
var oldHp = eim.getIntProperty("whog_hp");
|
||||
|
||||
|
||||
if (oldHp - hp > 1000) { // or 800, if using mobHP / eventTime
|
||||
eim.dropMessage(6, "Please protect the pig from the aliens!"); // thanks Vcoc
|
||||
}
|
||||
@@ -61,7 +61,7 @@ function respawnStages(eim) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
checkHogHealth(eim);
|
||||
|
||||
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
}
|
||||
|
||||
@@ -70,19 +70,19 @@ function setup(level, lobbyid) {
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
eim.setProperty("whog_hp", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
|
||||
|
||||
mapObj.resetPQ(1);
|
||||
mapObj.instanceMapForceRespawn();
|
||||
respawnStages(eim);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 0);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -95,10 +95,10 @@ function playerExit(eim, player) {
|
||||
var api = player.getAbstractPlayerInteraction();
|
||||
api.removeAll(4031507);
|
||||
api.removeAll(4031508);
|
||||
|
||||
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -112,29 +112,31 @@ function playerDisconnected(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
if(em.getProperty("noEntry") != "false") {
|
||||
if (em.getProperty("noEntry") != "false") {
|
||||
var player = eim.getPlayers().get(0);
|
||||
playerExit(eim, player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* 3rd Job Event - Pirate
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 108010500;
|
||||
var exitMap = 105070200;
|
||||
@@ -37,14 +37,14 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
eim.getInstanceMap(maxMapId).resetPQ(1);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 0);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -55,7 +55,7 @@ function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("3rdJob_pirate_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -81,19 +81,21 @@ function clear(eim) {
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* 3rd Job Event - Thief
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 108010400;
|
||||
var exitMap = 107000402;
|
||||
@@ -37,22 +37,22 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("3rdJob_thief_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
eim.getInstanceMap(maxMapId).resetPQ(1);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 0);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -64,7 +64,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -81,19 +81,21 @@ function clear(eim) {
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* 3rd Job Event - Warrior
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 108010300;
|
||||
var exitMap = 105070001;
|
||||
@@ -37,22 +37,22 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("3rdJob_warrior_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
eim.getInstanceMap(maxMapId).resetPQ(1);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 0);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -64,7 +64,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -81,19 +81,21 @@ function clear(eim) {
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* Event - Jonathan's Test Quest
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 912020000;
|
||||
var exitMap = 120000102;
|
||||
@@ -37,7 +37,7 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
@@ -68,7 +68,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {}
|
||||
@@ -84,7 +84,9 @@ function playerDisconnected(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* Event - Kyrin's Test Quest
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 912010000;
|
||||
var exitMap = 120000101;
|
||||
@@ -37,7 +37,7 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
@@ -82,7 +82,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {}
|
||||
@@ -98,19 +98,21 @@ function playerDisconnected(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
@@ -124,7 +126,7 @@ function monsterValue(eim, mobId) {
|
||||
}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
if(em.getProperty("noEntry") != "false") {
|
||||
if (em.getProperty("noEntry") != "false") {
|
||||
var player = eim.getPlayers().get(0);
|
||||
playerExit(eim, player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* Event - Kyrin's Test Quest
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 912010100;
|
||||
var exitMap = 120000101;
|
||||
@@ -37,7 +37,7 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
@@ -82,7 +82,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {}
|
||||
@@ -98,7 +98,9 @@ function playerDisconnected(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {}
|
||||
@@ -106,13 +108,13 @@ function changedLeader(eim, leader) {}
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
@@ -126,7 +128,7 @@ function monsterValue(eim, mobId) {
|
||||
}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
if(em.getProperty("noEntry") != "false") {
|
||||
if (em.getProperty("noEntry") != "false") {
|
||||
var player = eim.getPlayers().get(0);
|
||||
playerExit(eim, player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
@@ -8,13 +8,13 @@ var KC_docked;
|
||||
//Time Setting is in millisecond
|
||||
var closeTime = 4 * 60 * 1000; //The time to close the gate
|
||||
var beginTime = 5 * 60 * 1000; //The time to begin the ride
|
||||
var rideTime = 1 * 60 * 1000; //The time that require move to destination
|
||||
var rideTime = 1 * 60 * 1000; //The time that require move to destination
|
||||
|
||||
function init() {
|
||||
closeTime = em.getTransportationTime(closeTime);
|
||||
beginTime = em.getTransportationTime(beginTime);
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
|
||||
KC_bfd = em.getChannelServer().getMapFactory().getMap(540010100);
|
||||
CBD_bfd = em.getChannelServer().getMapFactory().getMap(540010001);
|
||||
Plane_to_CBD = em.getChannelServer().getMapFactory().getMap(540010101);
|
||||
@@ -32,11 +32,11 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function stopEntry() {
|
||||
em.setProperty("entry","false");
|
||||
em.setProperty("entry", "false");
|
||||
}
|
||||
|
||||
function takeoff() {
|
||||
em.setProperty("docked","false");
|
||||
em.setProperty("docked", "false");
|
||||
KC_bfd.warpEveryone(Plane_to_CBD.getId());
|
||||
CBD_bfd.warpEveryone(Plane_to_KC.getId());
|
||||
em.schedule("arrived", rideTime); //The time that require move to destination
|
||||
@@ -45,7 +45,7 @@ function takeoff() {
|
||||
function arrived() {
|
||||
Plane_to_CBD.warpEveryone(CBD_docked.getId(), 0);
|
||||
Plane_to_KC.warpEveryone(KC_docked.getId(), 7);
|
||||
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Amoria PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var onlyMarriedPlayers = true;
|
||||
@@ -40,249 +40,264 @@ var eventTime = 75; // 75 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n At least 1 of both genders";
|
||||
if(onlyMarriedPlayers) reqStr += "\r\n All married";
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n At least 1 of both genders";
|
||||
if (onlyMarriedPlayers) {
|
||||
reqStr += "\r\n All married";
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4031594, 4031595, 4031596, 4031597];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4031594, 4031595, 4031596, 4031597];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [2000, 4000, 6000, 8000, 9000, 11000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [2000, 4000, 6000, 8000, 9000, 11000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false, hasNotMarried = false;
|
||||
var mask = 0;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false, hasNotMarried = false;
|
||||
var mask = 0;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
if(!ch.getPlayer().isMarried()) hasNotMarried = true;
|
||||
eligible.push(ch);
|
||||
|
||||
mask |= (1 << ch.getPlayer().getGender());
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
if (!ch.getPlayer().isMarried()) {
|
||||
hasNotMarried = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
|
||||
mask |= (1 << ch.getPlayer().getGender());
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers && mask == 3)) eligible = [];
|
||||
if(onlyMarriedPlayers && hasNotMarried) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers && mask == 3)) {
|
||||
eligible = [];
|
||||
}
|
||||
if (onlyMarriedPlayers && hasNotMarried) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Amoria" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("marriedGroup", 0);
|
||||
eim.setProperty("missCount", 0);
|
||||
eim.setProperty("statusStg1", -1);
|
||||
eim.setProperty("statusStg2", -1);
|
||||
eim.setProperty("statusStg3", -1);
|
||||
eim.setProperty("statusStg4", -1);
|
||||
eim.setProperty("statusStg5", -1);
|
||||
eim.setProperty("statusStg6", -1);
|
||||
eim.setProperty("statusStgBonus", 0);
|
||||
|
||||
eim.getInstanceMap(670010200).resetPQ(level);
|
||||
eim.getInstanceMap(670010300).resetPQ(level);
|
||||
eim.getInstanceMap(670010301).resetPQ(level);
|
||||
eim.getInstanceMap(670010302).resetPQ(level);
|
||||
eim.getInstanceMap(670010400).resetPQ(level);
|
||||
eim.getInstanceMap(670010500).resetPQ(level);
|
||||
eim.getInstanceMap(670010600).resetPQ(level);
|
||||
eim.getInstanceMap(670010700).resetPQ(level);
|
||||
eim.getInstanceMap(670010750).resetPQ(level);
|
||||
eim.getInstanceMap(670010800).resetPQ(level);
|
||||
|
||||
eim.getInstanceMap(670010200).toggleDrops();
|
||||
eim.getInstanceMap(670010300).toggleDrops();
|
||||
eim.getInstanceMap(670010301).toggleDrops();
|
||||
eim.getInstanceMap(670010302).toggleDrops();
|
||||
|
||||
eim.getInstanceMap(670010200).instanceMapForceRespawn();
|
||||
eim.getInstanceMap(670010500).instanceMapForceRespawn();
|
||||
|
||||
eim.getInstanceMap(670010750).shuffleReactors();
|
||||
eim.getInstanceMap(670010800).shuffleReactors();
|
||||
|
||||
var mapObj = eim.getInstanceMap(670010700);
|
||||
var eim = em.newInstance("Amoria" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var mobObj = LifeFactory.getMonster(9400536);
|
||||
mapObj.spawnMonsterOnGroundBelow(mobObj, new Point(942, 478));
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
return eim;
|
||||
eim.setProperty("marriedGroup", 0);
|
||||
eim.setProperty("missCount", 0);
|
||||
eim.setProperty("statusStg1", -1);
|
||||
eim.setProperty("statusStg2", -1);
|
||||
eim.setProperty("statusStg3", -1);
|
||||
eim.setProperty("statusStg4", -1);
|
||||
eim.setProperty("statusStg5", -1);
|
||||
eim.setProperty("statusStg6", -1);
|
||||
eim.setProperty("statusStgBonus", 0);
|
||||
|
||||
eim.getInstanceMap(670010200).resetPQ(level);
|
||||
eim.getInstanceMap(670010300).resetPQ(level);
|
||||
eim.getInstanceMap(670010301).resetPQ(level);
|
||||
eim.getInstanceMap(670010302).resetPQ(level);
|
||||
eim.getInstanceMap(670010400).resetPQ(level);
|
||||
eim.getInstanceMap(670010500).resetPQ(level);
|
||||
eim.getInstanceMap(670010600).resetPQ(level);
|
||||
eim.getInstanceMap(670010700).resetPQ(level);
|
||||
eim.getInstanceMap(670010750).resetPQ(level);
|
||||
eim.getInstanceMap(670010800).resetPQ(level);
|
||||
|
||||
eim.getInstanceMap(670010200).toggleDrops();
|
||||
eim.getInstanceMap(670010300).toggleDrops();
|
||||
eim.getInstanceMap(670010301).toggleDrops();
|
||||
eim.getInstanceMap(670010302).toggleDrops();
|
||||
|
||||
eim.getInstanceMap(670010200).instanceMapForceRespawn();
|
||||
eim.getInstanceMap(670010500).instanceMapForceRespawn();
|
||||
|
||||
eim.getInstanceMap(670010750).shuffleReactors();
|
||||
eim.getInstanceMap(670010800).shuffleReactors();
|
||||
|
||||
var mapObj = eim.getInstanceMap(670010700);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var mobObj = LifeFactory.getMonster(9400536);
|
||||
mapObj.spawnMonsterOnGroundBelow(mobObj, new Point(942, 478));
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function isTeamAllCouple(eim) { // everyone partner of someone on the team
|
||||
var eventPlayers = eim.getPlayers();
|
||||
|
||||
for (var iterator = eventPlayers.iterator(); iterator.hasNext();) {
|
||||
var chr = iterator.next();
|
||||
|
||||
var pid = chr.getPartnerId();
|
||||
if(pid <= 0 || eim.getPlayerById(pid) == null) {
|
||||
return false;
|
||||
}
|
||||
var eventPlayers = eim.getPlayers();
|
||||
|
||||
for (var iterator = eventPlayers.iterator(); iterator.hasNext();) {
|
||||
var chr = iterator.next();
|
||||
|
||||
var pid = chr.getPartnerId();
|
||||
if (pid <= 0 || eim.getPlayerById(pid) == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
if(isTeamAllCouple(eim)) {
|
||||
eim.setIntProperty("marriedGroup", 1);
|
||||
}
|
||||
if (isTeamAllCouple(eim)) {
|
||||
eim.setIntProperty("marriedGroup", 1);
|
||||
}
|
||||
}
|
||||
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
if(eim.getIntProperty("statusStg6") == 1) {
|
||||
eim.warpEventTeam(exitMap);
|
||||
}
|
||||
else {
|
||||
end(eim);
|
||||
}
|
||||
if (eim.getIntProperty("statusStg6") == 1) {
|
||||
eim.warpEventTeam(exitMap);
|
||||
} else {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* Event - Scadur's Mount Quest
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 921110000;
|
||||
var exitMap = 211050000;
|
||||
@@ -37,14 +37,14 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Aran_2ndmount_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -52,13 +52,13 @@ function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
|
||||
|
||||
mapObj.resetPQ(1);
|
||||
mapObj.instanceMapForceRespawn();
|
||||
respawnStages(eim);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 2);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -70,7 +70,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -84,29 +84,31 @@ function playerDisconnected(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
if(em.getProperty("noEntry") != "false") {
|
||||
if (em.getProperty("noEntry") != "false") {
|
||||
var player = eim.getPlayers().get(0);
|
||||
playerExit(eim, player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* Event - Wolves' Mount Quest
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 914030000;
|
||||
var exitMap = 140010210;
|
||||
@@ -37,14 +37,14 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Aran_3rdmount_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -52,14 +52,14 @@ function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
|
||||
|
||||
mapObj.resetPQ(1);
|
||||
mapObj.instanceMapForceRespawn();
|
||||
mapObj.closeMapSpawnPoints();
|
||||
respawnStages(eim);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 1);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -71,7 +71,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -85,33 +85,35 @@ function playerDisconnected(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(eim.getInstanceMap(entryMap).countMonsters() == 0) {
|
||||
if (eim.getInstanceMap(entryMap).countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
if(em.getProperty("noEntry") != "false") {
|
||||
if (em.getProperty("noEntry") != "false") {
|
||||
var player = eim.getPlayers().get(0);
|
||||
playerExit(eim, player);
|
||||
player.changeMap(exitMap);
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Bamboo Warrior Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
Ronan - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Bamboo Warrior Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
Ronan - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
function init() {
|
||||
scheduleNew();
|
||||
}
|
||||
@@ -35,25 +35,26 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var mapObj = em.getChannelServer().getMapFactory().getMap(800020120); // original mapid was 251010101
|
||||
var mobObj = LifeFactory.getMonster(6090002);
|
||||
|
||||
if(mapObj.getMonsterById(6090002) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
if (mapObj.getMonsterById(6090002) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
mapObj.spawnMonsterOnGroundBelow(mobObj, new Point(560, 50));
|
||||
mapObj.broadcastMessage(PacketCreator.serverNotice(6, "From amongst the ruins shrouded by the mists, Bamboo Warrior appears."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Centipede Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
Ronan - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Centipede Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
Ronan - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
function init() {
|
||||
scheduleNew();
|
||||
}
|
||||
@@ -35,17 +35,18 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var herbGarden = em.getChannelServer().getMapFactory().getMap(251010102);
|
||||
|
||||
if(herbGarden.getMonsterById(5220004) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
if (herbGarden.getMonsterById(5220004) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
@@ -54,7 +55,7 @@ function start() {
|
||||
var gcent = LifeFactory.getMonster(5220004);
|
||||
herbGarden.spawnMonsterOnGroundBelow(gcent, new Point(560, 50));
|
||||
herbGarden.broadcastMessage(PacketCreator.serverNotice(6, "From the mists surrounding the herb garden, the gargantuous Giant Centipede appears."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Deo Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Deo Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
function init() {
|
||||
scheduleNew();
|
||||
}
|
||||
@@ -35,17 +35,18 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var royalCatthusDesert = em.getChannelServer().getMapFactory().getMap(260010201);
|
||||
|
||||
if(royalCatthusDesert.getMonsterById(3220001) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
if (royalCatthusDesert.getMonsterById(3220001) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
@@ -54,7 +55,7 @@ function start() {
|
||||
var deo = LifeFactory.getMonster(3220001);
|
||||
royalCatthusDesert.spawnMonsterOnGroundBelow(deo, new Point(645, 275));
|
||||
royalCatthusDesert.broadcastMessage(PacketCreator.serverNotice(6, "Deo slowly appeared out of the sand dust."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -33,15 +33,16 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var bossMobid = 9400610;
|
||||
var bossMapid = 677000003;
|
||||
var bossMsg = "Amdusias has appeared!";
|
||||
|
||||
|
||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||
if (map.getMonsterById(bossMobid) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
@@ -56,7 +57,7 @@ function start() {
|
||||
var bossPos = new Point(467, 0);
|
||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||
map.broadcastMessage(PacketCreator.serverNotice(6, bossMsg));
|
||||
|
||||
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -33,15 +33,16 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var bossMobid = 9400609;
|
||||
var bossMapid = 677000005;
|
||||
var bossMsg = "Andras has appeared!";
|
||||
|
||||
|
||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||
if (map.getMonsterById(bossMobid) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
@@ -56,7 +57,7 @@ function start() {
|
||||
var bossPos = new Point(201, 80);
|
||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||
map.broadcastMessage(PacketCreator.serverNotice(6, bossMsg));
|
||||
|
||||
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -33,15 +33,16 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var bossMobid = 9400613;
|
||||
var bossMapid = 677000009;
|
||||
var bossMsg = "Valefor has appeared!";
|
||||
|
||||
|
||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||
if (map.getMonsterById(bossMobid) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
@@ -56,7 +57,7 @@ function start() {
|
||||
var bossPos = new Point(251, -841);
|
||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||
map.broadcastMessage(PacketCreator.serverNotice(6, bossMsg));
|
||||
|
||||
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -33,15 +33,16 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var bossMobid = 9400633;
|
||||
var bossMapid = 677000012;
|
||||
var bossMsg = "Astaroth has appeared!";
|
||||
|
||||
|
||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||
if (map.getMonsterById(bossMobid) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
@@ -56,7 +57,7 @@ function start() {
|
||||
var bossPos = new Point(842, 0);
|
||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||
map.broadcastMessage(PacketCreator.serverNotice(6, bossMsg));
|
||||
|
||||
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -33,15 +33,16 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var bossMobid = 9400612;
|
||||
var bossMapid = 677000001;
|
||||
var bossMsg = "Marbas has appeared!";
|
||||
|
||||
|
||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||
if (map.getMonsterById(bossMobid) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
@@ -56,7 +57,7 @@ function start() {
|
||||
var bossPos = new Point(461, 61);
|
||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||
map.broadcastMessage(PacketCreator.serverNotice(6, bossMsg));
|
||||
|
||||
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Door boss Spawner (based on xQuasar's King Clang spawner)
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -33,15 +33,16 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var bossMobid = 9400611;
|
||||
var bossMapid = 677000007;
|
||||
var bossMsg = "Crocell has appeared!";
|
||||
|
||||
|
||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||
if (map.getMonsterById(bossMobid) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
@@ -56,7 +57,7 @@ function start() {
|
||||
var bossPos = new Point(171, 50);
|
||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||
map.broadcastMessage(PacketCreator.serverNotice(6, bossMsg));
|
||||
|
||||
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Dyle Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Dyle Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,24 +36,25 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var dangeroudCroko1 = em.getChannelServer().getMapFactory().getMap(107000300);
|
||||
if(dangeroudCroko1.getMonsterById(6220000) != null) {
|
||||
setupTask = em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
if (dangeroudCroko1.getMonsterById(6220000) != null) {
|
||||
setupTask = em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(90, 119);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(90, 119);
|
||||
dangeroudCroko1.spawnMonsterOnGroundBelow(LifeFactory.getMonster(6220000), spawnpoint);
|
||||
dangeroudCroko1.broadcastMessage(PacketCreator.serverNotice(6, "The huge crocodile Dyle has come out from the swamp."));
|
||||
setupTask = em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
setupTask = em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Eliza1 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Eliza1 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
var setupTask;
|
||||
|
||||
@@ -38,8 +38,9 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
@@ -47,17 +48,17 @@ function start() {
|
||||
var eliza = LifeFactory.getMonster(8220000);
|
||||
var stairwayToTheSky2 = em.getChannelServer().getMapFactory().getMap(200010300);
|
||||
|
||||
if(stairwayToTheSky2.getMonsterById(8220000) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
if (stairwayToTheSky2.getMonsterById(8220000) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(208, 83);
|
||||
const spawnpoint = new Point(208, 83);
|
||||
stairwayToTheSky2.spawnMonsterOnGroundBelow(eliza, spawnpoint);
|
||||
stairwayToTheSky2.broadcastMessage(PacketCreator.serverNotice(6, "Eliza has appeared with a black whirlwind."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Faust1 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Faust1 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,16 +36,17 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var theForestOfEvil1 = em.getChannelServer().getMapFactory().getMap(100040105);
|
||||
if(theForestOfEvil1.getMonsterById(5220002) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
if (theForestOfEvil1.getMonsterById(5220002) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
@@ -55,7 +56,7 @@ function start() {
|
||||
const spawnpoint = new Point(456, 278);
|
||||
theForestOfEvil1.spawnMonsterOnGroundBelow(faust1, spawnpoint);
|
||||
theForestOfEvil1.broadcastMessage(PacketCreator.serverNotice(6, "Faust appeared amidst the blue fog."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Faust2 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Faust2 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,27 +36,28 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var theForestOfEvil2 = em.getChannelServer().getMapFactory().getMap(100040106);
|
||||
var faust2 = LifeFactory.getMonster(5220002);
|
||||
|
||||
if(theForestOfEvil2.getMonsterById(5220002) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(474, 278);
|
||||
if (theForestOfEvil2.getMonsterById(5220002) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(474, 278);
|
||||
theForestOfEvil2.spawnMonsterOnGroundBelow(faust2, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
theForestOfEvil2.broadcastMessage(PacketCreator.serverNotice(6, "Faust appeared amidst the blue fog."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Chimera/Kimera Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Chimera/Kimera Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,30 +36,31 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var labSecretBasementPath = em.getChannelServer().getMapFactory().getMap(261030000);
|
||||
var chimera = LifeFactory.getMonster(8220002);
|
||||
|
||||
if(labSecretBasementPath.getMonsterById(8220002) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (labSecretBasementPath.getMonsterById(8220002) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 180;
|
||||
posX = (Math.floor(Math.random() * 900) - 900);
|
||||
posX = (Math.floor(Math.random() * 900) - 900);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
labSecretBasementPath.spawnMonsterOnGroundBelow(chimera, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
labSecretBasementPath.broadcastMessage(PacketCreator.serverNotice(6, "Kimera has appeared out of the darkness of the underground with a glitter in her eyes."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,17 +20,17 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
King Clang Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
King Clang Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
var hotSand;
|
||||
|
||||
function init() {
|
||||
hotSand = em.getChannelServer().getMapFactory().getMap(110040000);
|
||||
hotSand = em.getChannelServer().getMapFactory().getMap(110040000);
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
@@ -39,28 +39,29 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
if(hotSand.getMonsterById(5220001) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
if (hotSand.getMonsterById(5220001) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var kingClang = LifeFactory.getMonster(5220001);
|
||||
var posX;
|
||||
var posY = 140;
|
||||
posX = Math.floor((Math.random() * 2400) - 1600);
|
||||
posX = Math.floor((Math.random() * 2400) - 1600);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
hotSand.spawnMonsterOnGroundBelow(kingClang, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
hotSand.broadcastMessage(PacketCreator.serverNotice(6, "A strange turban shell has appeared on the beach."));
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
King Sage Cat Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
King Sage Cat Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,29 +36,30 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var goblinForest2 = em.getChannelServer().getMapFactory().getMap(250010504);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var kingSageCat = LifeFactory.getMonster(7220002);
|
||||
|
||||
if(goblinForest2.getMonsterById(7220002) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
if (goblinForest2.getMonsterById(7220002) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
var posX;
|
||||
var posY = 540;
|
||||
posX = Math.floor((Math.random() * 1300) - 500);
|
||||
posX = Math.floor((Math.random() * 1300) - 500);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
goblinForest2.spawnMonsterOnGroundBelow(kingSageCat, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
goblinForest2.broadcastMessage(PacketCreator.serverNotice(6, "The ghostly air around here has become stronger. The unpleasant sound of a cat crying can be heard."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Leviathan Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Leviathan Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,29 +36,30 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var leviathansCanyon = em.getChannelServer().getMapFactory().getMap(240040401);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var leviathan = LifeFactory.getMonster(8220003);
|
||||
if(leviathansCanyon.getMonsterById(8220003) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
if (leviathansCanyon.getMonsterById(8220003) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 1125;
|
||||
posX = Math.floor((Math.random() * 600) - 300);
|
||||
posX = Math.floor((Math.random() * 600) - 300);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
leviathansCanyon.spawnMonsterOnGroundBelow(leviathan, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
leviathansCanyon.broadcastMessage(PacketCreator.serverNotice(6, "Leviathan emerges from the canyon and the cold icy wind blows."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Mano Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Mano Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -35,15 +35,16 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var thicketAroundTheBeach3 = em.getChannelServer().getMapFactory().getMap(104000400);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var mano = LifeFactory.getMonster(2220000);
|
||||
if(thicketAroundTheBeach3.getMonsterById(2220000) != null) {
|
||||
if (thicketAroundTheBeach3.getMonsterById(2220000) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
@@ -54,7 +55,7 @@ function start() {
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
thicketAroundTheBeach3.broadcastMessage(PacketCreator.serverNotice(6, "A cool breeze was felt when Mano appeared."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Nine Tailed Fox (Old Fox) Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Nine Tailed Fox (Old Fox) Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,28 +36,29 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var moonRidge = em.getChannelServer().getMapFactory().getMap(222010310);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var nineTailedFox = LifeFactory.getMonster(7220001);
|
||||
if(moonRidge.getMonsterById(7220001) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
if (moonRidge.getMonsterById(7220001) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
var posX;
|
||||
var posY = 33;
|
||||
posX = Math.floor((Math.random() * 1300) - 800);
|
||||
posX = Math.floor((Math.random() * 1300) - 800);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
moonRidge.spawnMonsterOnGroundBelow(nineTailedFox, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
moonRidge.broadcastMessage(PacketCreator.serverNotice(6, "As the moon light dims, a long fox cry can be heard and the presence of the old fox can be felt"));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Seruf Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Seruf Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -37,30 +37,31 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var theSeaweedTower = em.getChannelServer().getMapFactory().getMap(230020100);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var seruf = LifeFactory.getMonster(4220001);
|
||||
|
||||
if(theSeaweedTower.getMonsterById(4220001) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (theSeaweedTower.getMonsterById(4220001) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 520;
|
||||
posX = Math.floor((Math.random() * 2300) - 1500);
|
||||
posX = Math.floor((Math.random() * 2300) - 1500);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
theSeaweedTower.spawnMonsterOnGroundBelow(seruf, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
theSeaweedTower.broadcastMessage(PacketCreator.serverNotice(6, "A strange shell has appeared from a grove of seaweed"));
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Snack Bar Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
Ronan - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Snack Bar Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
Ronan - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
function init() {
|
||||
scheduleNew();
|
||||
}
|
||||
@@ -35,8 +35,9 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Stumpy Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Stumpy Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,20 +36,21 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var eastRockyMountain5 = em.getChannelServer().getMapFactory().getMap(101030404);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var stumpy = LifeFactory.getMonster(3220000);
|
||||
|
||||
if(eastRockyMountain5.getMonsterById(3220000) != null) {
|
||||
|
||||
if (eastRockyMountain5.getMonsterById(3220000) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var posX;
|
||||
var posY = 1280;
|
||||
posX = Math.floor((Math.random() * 800) + 400);
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Tae Roon Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Tae Roon Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,30 +36,31 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var territoryOfWanderingBear = em.getChannelServer().getMapFactory().getMap(250010304);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var taeRoon = LifeFactory.getMonster(7220000);
|
||||
|
||||
if(territoryOfWanderingBear.getMonsterById(7220000) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (territoryOfWanderingBear.getMonsterById(7220000) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 390;
|
||||
posX = Math.floor((Math.random() * 700) - 800);
|
||||
posX = Math.floor((Math.random() * 700) - 800);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
territoryOfWanderingBear.spawnMonsterOnGroundBelow(taeRoon, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
territoryOfWanderingBear.broadcastMessage(PacketCreator.serverNotice(6, "Tae Roon has appeared with a soft whistling sound."));
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Timer1 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Timer1 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -35,30 +35,31 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var whirlpoolOfTime = em.getChannelServer().getMapFactory().getMap(220050100);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var timer1 = LifeFactory.getMonster(5220003);
|
||||
|
||||
if(whirlpoolOfTime.getMonsterById(5220003) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (whirlpoolOfTime.getMonsterById(5220003) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 1030;
|
||||
posX = Math.floor((Math.random() * 770) - 770);
|
||||
posX = Math.floor((Math.random() * 770) - 770);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
whirlpoolOfTime.spawnMonsterOnGroundBelow(timer1, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
whirlpoolOfTime.broadcastMessage(PacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Timer2 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Timer2 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -36,30 +36,31 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var lostTime1 = em.getChannelServer().getMapFactory().getMap(220050000);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var timer2 = LifeFactory.getMonster(5220003);
|
||||
|
||||
if(lostTime1.getMonsterById(5220003) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (lostTime1.getMonsterById(5220003) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 1030;
|
||||
posX = Math.floor((Math.random() * 1400) - 1000);
|
||||
posX = Math.floor((Math.random() * 1400) - 1000);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
lostTime1.spawnMonsterOnGroundBelow(timer2, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
lostTime1.broadcastMessage(PacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Timer3 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Timer3 Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
|
||||
**/
|
||||
**/
|
||||
|
||||
function init() {
|
||||
scheduleNew();
|
||||
@@ -37,30 +37,31 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var lostTime2 = em.getChannelServer().getMapFactory().getMap(220050200);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
var timer3 = LifeFactory.getMonster(5220003);
|
||||
|
||||
if(lostTime2.getMonsterById(5220003) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (lostTime2.getMonsterById(5220003) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 1030;
|
||||
posX = Math.floor((Math.random() * 1400) - 700);
|
||||
posX = Math.floor((Math.random() * 1400) - 700);
|
||||
const Point = Java.type('java.awt.Point');
|
||||
const spawnpoint = new Point(posX, posY);
|
||||
lostTime2.spawnMonsterOnGroundBelow(timer3, spawnpoint);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
lostTime2.broadcastMessage(PacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Zeno Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Zeno Spawner
|
||||
-- Edited by --------------------------------------------------------------------------------------
|
||||
ThreeStep - based on xQuasar's King Clang spawner
|
||||
**/
|
||||
function init() {
|
||||
scheduleNew();
|
||||
}
|
||||
@@ -35,17 +35,18 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
if (setupTask != null)
|
||||
if (setupTask != null) {
|
||||
setupTask.cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
function start() {
|
||||
var graysPrairie = em.getChannelServer().getMapFactory().getMap(221040301);
|
||||
|
||||
if(graysPrairie.getMonsterById(6220001) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
if (graysPrairie.getMonsterById(6220001) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
@@ -54,7 +55,7 @@ function start() {
|
||||
var zeno = LifeFactory.getMonster(6220001);
|
||||
graysPrairie.spawnMonsterOnGroundBelow(zeno, new Point(-4224, 776));
|
||||
graysPrairie.broadcastMessage(PacketCreator.serverNotice(6, "Zeno has appeared with a heavy sound of machinery."));
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Balrog
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 6, maxPlayers = 30;
|
||||
@@ -44,140 +44,150 @@ var releaseClawTime = 1;
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Balrog" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(105100300).resetPQ(level);
|
||||
eim.getInstanceMap(105100301).resetPQ(level);
|
||||
eim.schedule("releaseLeftClaw", releaseClawTime * 60000);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Balrog" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(105100300).resetPQ(level);
|
||||
eim.getInstanceMap(105100301).resetPQ(level);
|
||||
eim.schedule("releaseLeftClaw", releaseClawTime * 60000);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
spawnBalrog(eim);
|
||||
spawnBalrog(eim);
|
||||
}
|
||||
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function releaseLeftClaw(eim) {
|
||||
eim.getInstanceMap(entryMap).killMonster(8830006);
|
||||
eim.getInstanceMap(entryMap).killMonster(8830006);
|
||||
}
|
||||
|
||||
function spawnBalrog(eim) {
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
mapObj.spawnFakeMonsterOnGroundBelow(LifeFactory.getMonster(8830000), new Point(412, 258));
|
||||
mapObj.spawnMonsterOnGroundBelow(LifeFactory.getMonster(8830002), new Point(412, 258));
|
||||
mapObj.spawnMonsterOnGroundBelow(LifeFactory.getMonster(8830006), new Point(412, 258));
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
mapObj.spawnFakeMonsterOnGroundBelow(LifeFactory.getMonster(8830000), new Point(412, 258));
|
||||
mapObj.spawnMonsterOnGroundBelow(LifeFactory.getMonster(8830002), new Point(412, 258));
|
||||
mapObj.spawnMonsterOnGroundBelow(LifeFactory.getMonster(8830006), new Point(412, 258));
|
||||
}
|
||||
|
||||
function spawnSealedBalrog(eim) {
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.getInstanceMap(entryMap).spawnMonsterOnGroundBelow(LifeFactory.getMonster(bossMobId), new Point(412, 258));
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.getInstanceMap(entryMap).spawnMonsterOnGroundBelow(LifeFactory.getMonster(bossMobId), new Point(412, 258));
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {}
|
||||
@@ -185,21 +195,21 @@ function changedLeader(eim, leader) {}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {}
|
||||
@@ -207,60 +217,60 @@ function leftParty(eim, player) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isUnsealedBalrog(mob) {
|
||||
var balrogid = mob.getId() - 8830000;
|
||||
return balrogid >= 0 && balrogid <= 2;
|
||||
var balrogid = mob.getId() - 8830000;
|
||||
return balrogid >= 0 && balrogid <= 2;
|
||||
}
|
||||
|
||||
function isBalrogBody(mob) {
|
||||
return mob.getId() == minMobId;
|
||||
return mob.getId() == minMobId;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isUnsealedBalrog(mob)) {
|
||||
var count = eim.getIntProperty("boss");
|
||||
|
||||
if(count == 2) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
if (isUnsealedBalrog(mob)) {
|
||||
var count = eim.getIntProperty("boss");
|
||||
|
||||
eim.dispatchRaiseQuestMobCount(bossMobId, entryMap);
|
||||
eim.dispatchRaiseQuestMobCount(9101003, entryMap); // thanks Atoot for noticing quest not getting updated after boss kill
|
||||
mob.getMap().broadcastBalrogVictory(eim.getLeader().getName());
|
||||
} else {
|
||||
if(count == 1) {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.makeMonsterReal(mapobj.getMonsterById(8830000));
|
||||
}
|
||||
|
||||
eim.setIntProperty("boss", count + 1);
|
||||
}
|
||||
|
||||
if(isBalrogBody(mob)) {
|
||||
eim.schedule("spawnSealedBalrog", 10 * 1000);
|
||||
}
|
||||
if (count == 2) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
|
||||
eim.dispatchRaiseQuestMobCount(bossMobId, entryMap);
|
||||
eim.dispatchRaiseQuestMobCount(9101003, entryMap); // thanks Atoot for noticing quest not getting updated after boss kill
|
||||
mob.getMap().broadcastBalrogVictory(eim.getLeader().getName());
|
||||
} else {
|
||||
if (count == 1) {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.makeMonsterReal(mapobj.getMonsterById(8830000));
|
||||
}
|
||||
|
||||
eim.setIntProperty("boss", count + 1);
|
||||
}
|
||||
|
||||
if (isBalrogBody(mob)) {
|
||||
eim.schedule("spawnSealedBalrog", 10 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Balrog
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 30;
|
||||
@@ -44,140 +44,150 @@ var releaseClawTime = 1;
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Balrog" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(105100400).resetPQ(level);
|
||||
eim.getInstanceMap(105100401).resetPQ(level);
|
||||
eim.schedule("releaseLeftClaw", releaseClawTime * 60000);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Balrog" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(105100400).resetPQ(level);
|
||||
eim.getInstanceMap(105100401).resetPQ(level);
|
||||
eim.schedule("releaseLeftClaw", releaseClawTime * 60000);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
spawnBalrog(eim);
|
||||
spawnBalrog(eim);
|
||||
}
|
||||
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function releaseLeftClaw(eim) {
|
||||
eim.getInstanceMap(entryMap).killMonster(8830013);
|
||||
eim.getInstanceMap(entryMap).killMonster(8830013);
|
||||
}
|
||||
|
||||
function spawnBalrog(eim) {
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
mapObj.spawnFakeMonsterOnGroundBelow(LifeFactory.getMonster(8830007), new Point(412, 258));
|
||||
mapObj.spawnMonsterOnGroundBelow(LifeFactory.getMonster(8830009), new Point(412, 258));
|
||||
mapObj.spawnMonsterOnGroundBelow(LifeFactory.getMonster(8830013), new Point(412, 258));
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
mapObj.spawnFakeMonsterOnGroundBelow(LifeFactory.getMonster(8830007), new Point(412, 258));
|
||||
mapObj.spawnMonsterOnGroundBelow(LifeFactory.getMonster(8830009), new Point(412, 258));
|
||||
mapObj.spawnMonsterOnGroundBelow(LifeFactory.getMonster(8830013), new Point(412, 258));
|
||||
}
|
||||
|
||||
function spawnSealedBalrog(eim) {
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.getInstanceMap(entryMap).spawnMonsterOnGroundBelow(LifeFactory.getMonster(bossMobId), new Point(412, 258));
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.getInstanceMap(entryMap).spawnMonsterOnGroundBelow(LifeFactory.getMonster(bossMobId), new Point(412, 258));
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {}
|
||||
@@ -185,21 +195,21 @@ function changedLeader(eim, leader) {}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {}
|
||||
@@ -207,58 +217,58 @@ function leftParty(eim, player) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isUnsealedBalrog(mob) {
|
||||
var balrogid = mob.getId() - 8830007;
|
||||
return balrogid >= 0 && balrogid <= 2;
|
||||
var balrogid = mob.getId() - 8830007;
|
||||
return balrogid >= 0 && balrogid <= 2;
|
||||
}
|
||||
|
||||
function isBalrogBody(mob) {
|
||||
return mob.getId() == minMobId;
|
||||
return mob.getId() == minMobId;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isUnsealedBalrog(mob)) {
|
||||
var count = eim.getIntProperty("boss");
|
||||
|
||||
if(count == 2) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
if (isUnsealedBalrog(mob)) {
|
||||
var count = eim.getIntProperty("boss");
|
||||
|
||||
eim.dispatchRaiseQuestMobCount(bossMobId, entryMap);
|
||||
mob.getMap().broadcastBalrogVictory(eim.getLeader().getName());
|
||||
} else {
|
||||
if(count == 1) {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.makeMonsterReal(mapobj.getMonsterById(8830007));
|
||||
}
|
||||
eim.setIntProperty("boss", count + 1);
|
||||
}
|
||||
|
||||
if(isBalrogBody(mob)) {
|
||||
eim.schedule("spawnSealedBalrog", 10 * 1000);
|
||||
}
|
||||
if (count == 2) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
|
||||
eim.dispatchRaiseQuestMobCount(bossMobId, entryMap);
|
||||
mob.getMap().broadcastBalrogVictory(eim.getLeader().getName());
|
||||
} else {
|
||||
if (count == 1) {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.makeMonsterReal(mapobj.getMonsterById(8830007));
|
||||
}
|
||||
eim.setIntProperty("boss", count + 1);
|
||||
}
|
||||
|
||||
if (isBalrogBody(mob)) {
|
||||
eim.schedule("spawnSealedBalrog", 10 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/**
|
||||
* @Author Ronan
|
||||
* Event - Balrog Quest
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 910520000;
|
||||
var exitMap = 105100100;
|
||||
@@ -37,14 +37,14 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("BalrogQuest_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -54,14 +54,14 @@ function afterSetup(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
|
||||
|
||||
mapObj.resetPQ(1);
|
||||
mapObj.instanceMapForceRespawn();
|
||||
mapObj.closeMapSpawnPoints();
|
||||
respawnStages(eim);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 1);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -73,7 +73,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -87,21 +87,24 @@ function playerDisconnected(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid < minMapId || mapid > maxMapId) playerExit(eim, chr);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function isBalrog(mob) {
|
||||
return mob.getId() == 9300326;
|
||||
return mob.getId() == 9300326;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isBalrog(mob)) {
|
||||
if (isBalrog(mob)) {
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.spawnNpc(1061015, new Point(0, 115), mob.getMap());
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -17,10 +17,10 @@ var invasionDelay = 5 * 1000; //The time that spawn balrog
|
||||
function init() {
|
||||
closeTime = em.getTransportationTime(closeTime);
|
||||
beginTime = em.getTransportationTime(beginTime);
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
invasionStartTime = em.getTransportationTime(invasionStartTime);
|
||||
invasionDelayTime = em.getTransportationTime(invasionDelayTime);
|
||||
|
||||
|
||||
Orbis_btf = em.getChannelServer().getMapFactory().getMap(200000112);
|
||||
Ellinia_btf = em.getChannelServer().getMapFactory().getMap(101000301);
|
||||
Boat_to_Orbis = em.getChannelServer().getMapFactory().getMap(200090010);
|
||||
@@ -30,16 +30,16 @@ function init() {
|
||||
Ellinia_docked = em.getChannelServer().getMapFactory().getMap(101000300);
|
||||
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000100);
|
||||
Orbis_docked = em.getChannelServer().getMapFactory().getMap(200000111);
|
||||
|
||||
|
||||
Ellinia_docked.setDocked(true);
|
||||
Orbis_docked.setDocked(true);
|
||||
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
function scheduleNew() {
|
||||
em.setProperty("docked", "true");
|
||||
|
||||
|
||||
em.setProperty("entry", "true");
|
||||
em.setProperty("haveBalrog", "false");
|
||||
em.schedule("stopentry", closeTime);
|
||||
@@ -47,7 +47,7 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function stopentry() {
|
||||
em.setProperty("entry","false");
|
||||
em.setProperty("entry", "false");
|
||||
Orbis_Boat_Cabin.clearMapObjects(); //boxes
|
||||
Ellinia_Boat_Cabin.clearMapObjects();
|
||||
}
|
||||
@@ -57,9 +57,9 @@ function takeoff() {
|
||||
Ellinia_btf.warpEveryone(Boat_to_Orbis.getId());
|
||||
Ellinia_docked.broadcastShip(false);
|
||||
Orbis_docked.broadcastShip(false);
|
||||
|
||||
em.setProperty("docked","false");
|
||||
|
||||
|
||||
em.setProperty("docked", "false");
|
||||
|
||||
if (Math.random() < 0.42) {
|
||||
em.schedule("approach", (invasionStartTime + Math.trunc((Math.random() * invasionDelayTime))));
|
||||
}
|
||||
@@ -83,13 +83,13 @@ function arrived() {
|
||||
|
||||
function approach() {
|
||||
if (Math.floor(Math.random() * 10) < 10) {
|
||||
em.setProperty("haveBalrog","true");
|
||||
em.setProperty("haveBalrog", "true");
|
||||
Boat_to_Orbis.broadcastEnemyShip(true);
|
||||
Boat_to_Ellinia.broadcastEnemyShip(true);
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
Boat_to_Orbis.broadcastMessage(PacketCreator.musicChange("Bgm04/ArabPirate"));
|
||||
Boat_to_Ellinia.broadcastMessage(PacketCreator.musicChange("Bgm04/ArabPirate"));
|
||||
|
||||
|
||||
em.schedule("invasion", invasionDelay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Boss Rush PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 6;
|
||||
@@ -39,192 +39,203 @@ var eventTime = 5; //5 minutes
|
||||
const maxLobbies = 7;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel;
|
||||
var itemSet, itemQty, evLevel;
|
||||
|
||||
evLevel = 6; //Rewards at event completion
|
||||
itemSet = [3010061, 1122018, 1122005, 1022088, 1402013, 1032030, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022180, 2022179, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 4, 4, 12, 12, 12, 12, 12, 25];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
evLevel = 6; //Rewards at event completion
|
||||
itemSet = [3010061, 1122018, 1122005, 1022088, 1402013, 1032030, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022180, 2022179, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 4, 4, 12, 12, 12, 12, 12, 25];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 5; //Rewards at Rest Spot V
|
||||
itemSet = [3010063, 1122018, 1122005, 1022088, 1402013, 1032030, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022180, 2022179, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 2, 2, 8, 8, 8, 8, 8, 12];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 4; //Rewards at Rest Spot IV
|
||||
itemSet = [1122001, 1122006, 1022103, 1442065, 1032042, 1032021, 1102168, 2070005, 2040025, 2040029, 2040301, 2040413, 2040701, 2040817, 2002028, 2020009, 2020010, 2020011, 2022004, 2022005, 2022025, 2022027, 2022048, 2022049, 4020000, 4020001, 4020002, 4020003, 4020004, 4020005, 4020006, 4020007, 4020008, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 45, 45, 45, 45, 45, 45, 45, 45, 45, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 3; //Rewards at Rest Spot III
|
||||
itemSet = [1122002, 1022088, 1012076, 1402029, 1032041, 1032044, 1102167, 2070011, 2040026, 2040030, 2040302, 2040412, 2040702, 2040818, 2002028, 2020009, 2020010, 2020011, 2022004, 2022005, 2022025, 2022027, 2022048, 2022049, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 2; //Rewards at Rest Spot II
|
||||
itemSet = [1122003, 1012077, 1012079, 1432014, 1032059, 1032002, 1102191, 2330002, 2040001, 2040311, 2040401, 2040601, 2040824, 2040901, 2010000, 2010001, 2010002, 2010003, 2010004, 2020001, 2020002, 2020003, 2022020, 2022022, 4020000, 4020001, 4020002, 4020003, 4020004, 4020005, 4020006, 4020007, 4020008, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 1; //Rewards at Rest Spot I
|
||||
itemSet = [1122004, 1012078, 1432008, 1432009, 1032040, 1032009, 1102166, 2070001, 2040002, 2040310, 2040400, 2040600, 2040825, 2040902, 2010000, 2010001, 2010002, 2010003, 2010004, 2020001, 2020002, 2020003, 2022020, 2022022, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
evLevel = 5; //Rewards at Rest Spot V
|
||||
itemSet = [3010063, 1122018, 1122005, 1022088, 1402013, 1032030, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022180, 2022179, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 2, 2, 8, 8, 8, 8, 8, 12];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 4; //Rewards at Rest Spot IV
|
||||
itemSet = [1122001, 1122006, 1022103, 1442065, 1032042, 1032021, 1102168, 2070005, 2040025, 2040029, 2040301, 2040413, 2040701, 2040817, 2002028, 2020009, 2020010, 2020011, 2022004, 2022005, 2022025, 2022027, 2022048, 2022049, 4020000, 4020001, 4020002, 4020003, 4020004, 4020005, 4020006, 4020007, 4020008, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 45, 45, 45, 45, 45, 45, 45, 45, 45, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 3; //Rewards at Rest Spot III
|
||||
itemSet = [1122002, 1022088, 1012076, 1402029, 1032041, 1032044, 1102167, 2070011, 2040026, 2040030, 2040302, 2040412, 2040702, 2040818, 2002028, 2020009, 2020010, 2020011, 2022004, 2022005, 2022025, 2022027, 2022048, 2022049, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 2; //Rewards at Rest Spot II
|
||||
itemSet = [1122003, 1012077, 1012079, 1432014, 1032059, 1032002, 1102191, 2330002, 2040001, 2040311, 2040401, 2040601, 2040824, 2040901, 2010000, 2010001, 2010002, 2010003, 2010004, 2020001, 2020002, 2020003, 2022020, 2022022, 4020000, 4020001, 4020002, 4020003, 4020004, 4020005, 4020006, 4020007, 4020008, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 1; //Rewards at Rest Spot I
|
||||
itemSet = [1122004, 1012078, 1432008, 1432009, 1032040, 1032009, 1102166, 2070001, 2040002, 2040310, 2040400, 2040600, 2040825, 2040902, 2010000, 2010001, 2010002, 2010003, 2010004, 2020001, 2020002, 2020003, 2022020, 2022022, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("BossRush" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("lobby", lobbyid);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("BossRush" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("lobby", lobbyid);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap + eim.getIntProperty("lobby"));
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap + eim.getIntProperty("lobby"));
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player))
|
||||
end(eim);
|
||||
else
|
||||
playerExit(eim, player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared(); // from now on event just finishes when ALL players gets out of the range defined inside changedMap function.
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared(); // from now on event just finishes when ALL players gets out of the range defined inside changedMap function.
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Crimsonwood Keep PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 6, maxPlayers = 30;
|
||||
@@ -39,7 +39,7 @@ var eventTime = 2; // 2 minutes for first stg
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
@@ -47,40 +47,46 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001256, 4001257, 4001258, 4001259, 4001260];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001256, 4001257, 4001258, 4001259, 4001260];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [2500, 8000, 18000, 25000, 30000, 40000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = [500, 1000, 2000, 5000, 8000, 20000]; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [2500, 8000, 18000, 25000, 30000, 40000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = [500, 1000, 2000, 5000, 8000, 20000]; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -90,36 +96,38 @@ function getNameFromList(index, array) {
|
||||
}
|
||||
|
||||
function generateMapReactors(map) {
|
||||
|
||||
var jobReactors = [ [0, 0, -1, -1, 0],
|
||||
[-1, 4, 3, 3, 3],
|
||||
[1, 3, 4, 2, 2],
|
||||
[2, -1, 0, 1, -1],
|
||||
[3, 2, 1, 0, -1],
|
||||
[4, 1, -1, 4, 1],
|
||||
[-1, 2, 4],
|
||||
[-1, -1]
|
||||
];
|
||||
|
||||
|
||||
var jobReactors = [[0, 0, -1, -1, 0],
|
||||
[-1, 4, 3, 3, 3],
|
||||
[1, 3, 4, 2, 2],
|
||||
[2, -1, 0, 1, -1],
|
||||
[3, 2, 1, 0, -1],
|
||||
[4, 1, -1, 4, 1],
|
||||
[-1, 2, 4],
|
||||
[-1, -1]
|
||||
];
|
||||
|
||||
var rndIndex;
|
||||
var jobFound;
|
||||
while(true) {
|
||||
while (true) {
|
||||
jobFound = {};
|
||||
rndIndex = [];
|
||||
|
||||
for(var i = 0; i < jobReactors.length; i++) {
|
||||
|
||||
for (var i = 0; i < jobReactors.length; i++) {
|
||||
var jobReactorSlot = jobReactors[i];
|
||||
|
||||
|
||||
var idx = Math.floor(Math.random() * jobReactorSlot.length);
|
||||
jobFound["" + jobReactorSlot[idx]] = 1;
|
||||
rndIndex.push(idx);
|
||||
}
|
||||
|
||||
if(Object.keys(jobFound).length == 6) break;
|
||||
|
||||
if (Object.keys(jobFound).length == 6) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var toDeploy = [];
|
||||
|
||||
|
||||
toDeploy.push(getNameFromList(rndIndex[0], ["4skill0a", "4skill0b", "4fake1c", "4fake1d", "4skill0e"]));
|
||||
toDeploy.push(getNameFromList(rndIndex[1], ["4fake0a", "4skill4b", "4skill3c", "4skill3d", "4skill3e"]));
|
||||
toDeploy.push(getNameFromList(rndIndex[2], ["4skill1a", "4skill3b", "4skill4c", "4skill2d", "4skill2e"]));
|
||||
@@ -128,22 +136,22 @@ function generateMapReactors(map) {
|
||||
toDeploy.push(getNameFromList(rndIndex[5], ["4skill4a", "4skill1b", "4fake0c", "4skill4d", "4skill1e"]));
|
||||
toDeploy.push(getNameFromList(rndIndex[6], ["4fake1a", "4skill2c", "4skill4e"]));
|
||||
toDeploy.push(getNameFromList(rndIndex[7], ["4fake0b", "4fake0d"]));
|
||||
|
||||
var toRandomize = new Array();
|
||||
|
||||
for(var i = 0; i < toDeploy.length; i++) {
|
||||
|
||||
var toRandomize = [];
|
||||
|
||||
for (var i = 0; i < toDeploy.length; i++) {
|
||||
var react = map.getReactorByName(toDeploy[i]);
|
||||
|
||||
|
||||
react.setState(1);
|
||||
toRandomize.push(react);
|
||||
}
|
||||
|
||||
|
||||
map.shuffleReactors(toRandomize);
|
||||
}
|
||||
|
||||
function setup(channel) {
|
||||
var eim = em.newInstance("CWKPQ" + channel);
|
||||
|
||||
|
||||
eim.setProperty("current_instance", "0");
|
||||
eim.setProperty("glpq1", "0");
|
||||
eim.setProperty("glpq2", "0");
|
||||
@@ -153,7 +161,7 @@ function setup(channel) {
|
||||
eim.setProperty("glpq5", "0");
|
||||
eim.setProperty("glpq5_room", "0");
|
||||
eim.setProperty("glpq6", "0");
|
||||
|
||||
|
||||
eim.setProperty("glpq_f0", "0");
|
||||
eim.setProperty("glpq_f1", "0");
|
||||
eim.setProperty("glpq_f2", "0");
|
||||
@@ -180,10 +188,10 @@ function setup(channel) {
|
||||
eim.getInstanceMap(610030600).resetPQ(level);
|
||||
eim.getInstanceMap(610030700).resetPQ(level);
|
||||
eim.getInstanceMap(610030800).resetPQ(level);
|
||||
|
||||
|
||||
generateMapReactors(eim.getInstanceMap(610030400));
|
||||
eim.getInstanceMap(610030550).shuffleReactors();
|
||||
|
||||
|
||||
//add environments
|
||||
var a = Array("a", "b", "c", "d", "e", "f", "g", "h", "i");
|
||||
var map = eim.getInstanceMap(610030400);
|
||||
@@ -198,20 +206,20 @@ function setup(channel) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var pos_x = Array(944,401,28,-332,-855);
|
||||
var pos_y = Array(-204,-384,-504,-384,-204);
|
||||
|
||||
var pos_x = Array(944, 401, 28, -332, -855);
|
||||
var pos_y = Array(-204, -384, -504, -384, -204);
|
||||
var map = eim.getInstanceMap(610030540);
|
||||
for (var z = 0; z < pos_x.length; z++) {
|
||||
var mob = em.getMonster(9400594);
|
||||
eim.registerMonster(mob);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(pos_x[z], pos_y[z]));
|
||||
}
|
||||
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
|
||||
eim.schedule("spawnGuardians", 60000);
|
||||
return eim;
|
||||
}
|
||||
@@ -225,13 +233,13 @@ function playerEntry(eim, player) {
|
||||
function spawnGuardians(eim) {
|
||||
var map = eim.getMapInstance(610030100);
|
||||
if (map.countPlayers() <= 0) {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
map.broadcastStringMessage(5, "The Master Guardians have detected you.");
|
||||
for (var i = 0; i < 20; i++) { //spawn 20 guardians
|
||||
var mob = eim.getMonster(9400594);
|
||||
eim.registerMonster(mob);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(1000, 336));
|
||||
var mob = eim.getMonster(9400594);
|
||||
eim.registerMonster(mob);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(1000, 336));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,53 +249,52 @@ function scheduledTimeout(eim) {
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
} else {
|
||||
switch(mapid) {
|
||||
case 610030200:
|
||||
if (eim.getIntProperty("current_instance") == 0) {
|
||||
eim.restartEventTimer(600000); //10 mins
|
||||
eim.setIntProperty("current_instance", 1);
|
||||
}
|
||||
break;
|
||||
case 610030300:
|
||||
if (eim.getIntProperty("current_instance") == 1) {
|
||||
eim.restartEventTimer(600000); //10 mins
|
||||
eim.setIntProperty("current_instance", 2);
|
||||
}
|
||||
break;
|
||||
case 610030400:
|
||||
if (eim.getIntProperty("current_instance") == 2) {
|
||||
eim.restartEventTimer(600000); //10 mins
|
||||
eim.setIntProperty("current_instance", 3);
|
||||
}
|
||||
break;
|
||||
case 610030500:
|
||||
if (eim.getIntProperty("current_instance") == 3) {
|
||||
eim.restartEventTimer(1200000); //20 mins
|
||||
eim.setIntProperty("current_instance", 4);
|
||||
}
|
||||
break;
|
||||
case 610030600:
|
||||
if (eim.getIntProperty("current_instance") == 4) {
|
||||
eim.restartEventTimer(3600000); //1 hr
|
||||
eim.setIntProperty("current_instance", 5);
|
||||
}
|
||||
break;
|
||||
case 610030800:
|
||||
if (eim.getIntProperty("current_instance") == 5) {
|
||||
eim.restartEventTimer(60000); //1 min
|
||||
eim.setIntProperty("current_instance", 6);
|
||||
}
|
||||
break;
|
||||
switch (mapid) {
|
||||
case 610030200:
|
||||
if (eim.getIntProperty("current_instance") == 0) {
|
||||
eim.restartEventTimer(600000); //10 mins
|
||||
eim.setIntProperty("current_instance", 1);
|
||||
}
|
||||
break;
|
||||
case 610030300:
|
||||
if (eim.getIntProperty("current_instance") == 1) {
|
||||
eim.restartEventTimer(600000); //10 mins
|
||||
eim.setIntProperty("current_instance", 2);
|
||||
}
|
||||
break;
|
||||
case 610030400:
|
||||
if (eim.getIntProperty("current_instance") == 2) {
|
||||
eim.restartEventTimer(600000); //10 mins
|
||||
eim.setIntProperty("current_instance", 3);
|
||||
}
|
||||
break;
|
||||
case 610030500:
|
||||
if (eim.getIntProperty("current_instance") == 3) {
|
||||
eim.restartEventTimer(1200000); //20 mins
|
||||
eim.setIntProperty("current_instance", 4);
|
||||
}
|
||||
break;
|
||||
case 610030600:
|
||||
if (eim.getIntProperty("current_instance") == 4) {
|
||||
eim.restartEventTimer(3600000); //1 hr
|
||||
eim.setIntProperty("current_instance", 5);
|
||||
}
|
||||
break;
|
||||
case 610030800:
|
||||
if (eim.getIntProperty("current_instance") == 5) {
|
||||
eim.restartEventTimer(60000); //1 min
|
||||
eim.setIntProperty("current_instance", 6);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -301,8 +308,7 @@ function playerRevive(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
@@ -313,16 +319,15 @@ function playerDisconnected(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty (eim, player) {}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty (eim) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
|
||||
@@ -21,23 +21,23 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Cabin between Orbis and Leafre
|
||||
-- By ---------------------------------------------------------------------------------------------
|
||||
Information
|
||||
-- Version Info -----------------------------------------------------------------------------------
|
||||
1.5 - Fix for infinity looping [Information]
|
||||
1.4 - Ship/boat is now showed
|
||||
- Removed temp message[Information]
|
||||
- Credits to Snow, superraz777 for old source
|
||||
- Credits to Titan, Kool for the ship/boat packet
|
||||
1.3 - Removing some function since is not needed [Information]
|
||||
- Remove register player menthod [Information]
|
||||
1.2 - It should be 2 ships not 1 [Information]
|
||||
1.1 - Add timer variable for easy edit [Information]
|
||||
1.0 - First Version by Information
|
||||
---------------------------------------------------------------------------------------------------
|
||||
**/
|
||||
-- Odin JavaScript --------------------------------------------------------------------------------
|
||||
Cabin between Orbis and Leafre
|
||||
-- By ---------------------------------------------------------------------------------------------
|
||||
Information
|
||||
-- Version Info -----------------------------------------------------------------------------------
|
||||
1.5 - Fix for infinity looping [Information]
|
||||
1.4 - Ship/boat is now showed
|
||||
- Removed temp message[Information]
|
||||
- Credits to Snow, superraz777 for old source
|
||||
- Credits to Titan, Kool for the ship/boat packet
|
||||
1.3 - Removing some function since is not needed [Information]
|
||||
- Remove register player menthod [Information]
|
||||
1.2 - It should be 2 ships not 1 [Information]
|
||||
1.1 - Add timer variable for easy edit [Information]
|
||||
1.0 - First Version by Information
|
||||
---------------------------------------------------------------------------------------------------
|
||||
**/
|
||||
|
||||
var Orbis_btf;
|
||||
var Leafre_btf;
|
||||
@@ -49,13 +49,13 @@ var Leafre_docked;
|
||||
//Time Setting is in millisecond
|
||||
var closeTime = 4 * 60 * 1000; //The time to close the gate
|
||||
var beginTime = 5 * 60 * 1000; //The time to begin the ride
|
||||
var rideTime = 5 * 60 * 1000; //The time that require move to destination
|
||||
var rideTime = 5 * 60 * 1000; //The time that require move to destination
|
||||
|
||||
function init() {
|
||||
closeTime = em.getTransportationTime(closeTime);
|
||||
beginTime = em.getTransportationTime(beginTime);
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
Orbis_btf = em.getChannelServer().getMapFactory().getMap(200000132);
|
||||
Leafre_btf = em.getChannelServer().getMapFactory().getMap(240000111);
|
||||
Cabin_to_Orbis = em.getChannelServer().getMapFactory().getMap(200090210);
|
||||
@@ -64,7 +64,7 @@ function init() {
|
||||
Leafre_docked = em.getChannelServer().getMapFactory().getMap(240000110);
|
||||
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000100);
|
||||
Leafre_Station = em.getChannelServer().getMapFactory().getMap(240000100);
|
||||
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
@@ -72,37 +72,37 @@ function scheduleNew() {
|
||||
em.setProperty("docked", "true");
|
||||
Orbis_docked.setDocked(true);
|
||||
Leafre_docked.setDocked(true);
|
||||
|
||||
|
||||
em.setProperty("entry", "true");
|
||||
em.schedule("stopEntry", closeTime); //The time to close the gate
|
||||
em.schedule("takeoff", beginTime); //The time to begin the ride
|
||||
}
|
||||
|
||||
function stopEntry() {
|
||||
em.setProperty("entry","false");
|
||||
em.setProperty("entry", "false");
|
||||
}
|
||||
|
||||
function takeoff() {
|
||||
Orbis_btf.warpEveryone(Cabin_to_Leafre.getId());
|
||||
Leafre_btf.warpEveryone(Cabin_to_Orbis.getId());
|
||||
|
||||
|
||||
Orbis_docked.broadcastShip(false);
|
||||
Leafre_docked.broadcastShip(false);
|
||||
|
||||
em.setProperty("docked","false");
|
||||
|
||||
em.setProperty("docked", "false");
|
||||
Orbis_docked.setDocked(false);
|
||||
Leafre_docked.setDocked(false);
|
||||
|
||||
|
||||
em.schedule("arrived", rideTime); //The time that require move to destination
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Cabin_to_Orbis.warpEveryone(Orbis_Station.getId(), 0);
|
||||
Cabin_to_Leafre.warpEveryone(Leafre_Station.getId(), 0);
|
||||
|
||||
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Leafre_docked.broadcastShip(true);
|
||||
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Cafe PQ 1
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
@@ -41,207 +41,217 @@ var couponsNeeded = 400; // total of coupons to complete the event
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001014];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [20000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001014];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [20000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Lan1_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Lan1_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function getDroppedQuantity(mob) {
|
||||
if(mob.getLevel() > 65) {
|
||||
if (mob.getLevel() > 65) {
|
||||
return 5;
|
||||
} else if(mob.getLevel() > 40) {
|
||||
} else if (mob.getLevel() > 40) {
|
||||
return 2;
|
||||
} else {
|
||||
return 1;
|
||||
@@ -250,16 +260,19 @@ function getDroppedQuantity(mob) {
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
|
||||
} catch(err) {} // PQ not started yet
|
||||
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Cafe PQ 2
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
@@ -41,207 +41,217 @@ var couponsNeeded = 350; // total of coupons to complete the event
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001009];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [15000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001009];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [15000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Lan2_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Lan2_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function getDroppedQuantity(mob) {
|
||||
if(mob.getLevel() > 65) {
|
||||
if (mob.getLevel() > 65) {
|
||||
return 5;
|
||||
} else if(mob.getLevel() > 40) {
|
||||
} else if (mob.getLevel() > 40) {
|
||||
return 2;
|
||||
} else {
|
||||
return 1;
|
||||
@@ -250,16 +260,19 @@ function getDroppedQuantity(mob) {
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
|
||||
} catch(err) {} // PQ not started yet
|
||||
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Cafe PQ 3
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
@@ -41,207 +41,217 @@ var couponsNeeded = 350; // total of coupons to complete the event
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001013];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [12000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001013];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [12000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Lan3_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Lan3_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function getDroppedQuantity(mob) {
|
||||
if(mob.getLevel() > 65) {
|
||||
if (mob.getLevel() > 65) {
|
||||
return 3;
|
||||
} else if(mob.getLevel() > 40) {
|
||||
} else if (mob.getLevel() > 40) {
|
||||
return 2;
|
||||
} else {
|
||||
return 1;
|
||||
@@ -250,16 +260,19 @@ function getDroppedQuantity(mob) {
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
|
||||
} catch(err) {} // PQ not started yet
|
||||
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Cafe PQ 4
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
@@ -41,207 +41,217 @@ var couponsNeeded = 450; // total of coupons to complete the event
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001011];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [21000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001011];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [21000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Lan4_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Lan4_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function getDroppedQuantity(mob) {
|
||||
if(mob.getLevel() > 65) {
|
||||
if (mob.getLevel() > 65) {
|
||||
return 5;
|
||||
} else if(mob.getLevel() > 40) {
|
||||
} else if (mob.getLevel() > 40) {
|
||||
return 2;
|
||||
} else {
|
||||
return 1;
|
||||
@@ -250,16 +260,19 @@ function getDroppedQuantity(mob) {
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
|
||||
} catch(err) {} // PQ not started yet
|
||||
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Cafe PQ 5
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
@@ -41,207 +41,217 @@ var couponsNeeded = 500; // total of coupons to complete the event
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001012];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [25000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001012];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [25000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Lan5_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Lan5_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function getDroppedQuantity(mob) {
|
||||
if(mob.getLevel() > 65) {
|
||||
if (mob.getLevel() > 65) {
|
||||
return 5;
|
||||
} else if(mob.getLevel() > 40) {
|
||||
} else if (mob.getLevel() > 40) {
|
||||
return 2;
|
||||
} else {
|
||||
return 1;
|
||||
@@ -250,16 +260,19 @@ function getDroppedQuantity(mob) {
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
|
||||
} catch(err) {} // PQ not started yet
|
||||
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Cafe PQ 6
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
@@ -41,207 +41,217 @@ var couponsNeeded = 300; // total of coupons to complete the event
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001007];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001010];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [10000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001010];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [10000]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Lan6_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Lan6_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
|
||||
eim.setIntProperty("couponsNeeded", couponsNeeded);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
var mapObj = eim.getInstanceMap(eventMaps[i]);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.toggleDrops();
|
||||
mapObj.instanceMapForceRespawn();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).instanceMapRespawn();
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < eventMaps.length; i++) {
|
||||
eim.getInstanceMap(eventMaps[i]).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect(eventMaps[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function getDroppedQuantity(mob) {
|
||||
if(mob.getLevel() > 65) {
|
||||
if (mob.getLevel() > 65) {
|
||||
return 5;
|
||||
} else if(mob.getLevel() > 40) {
|
||||
} else if (mob.getLevel() > 40) {
|
||||
return 2;
|
||||
} else {
|
||||
return 1;
|
||||
@@ -250,8 +260,10 @@ function getDroppedQuantity(mob) {
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item(4001007, 0, 1);
|
||||
@@ -259,8 +271,9 @@ function monsterKilled(mob, eim) {
|
||||
|
||||
itemObj.setQuantity(getDroppedQuantity(mob));
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
|
||||
} catch(err) {} // PQ not started yet
|
||||
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -5,96 +5,98 @@ var entryMap = 101000000;
|
||||
var exitMap = 101000000;
|
||||
var eventMap = 910110000;
|
||||
|
||||
function init(){}
|
||||
function init() {}
|
||||
|
||||
function setup(difficulty, lobbyId){
|
||||
var eim = em.newInstance("Cygnus_Magic_Library_" +lobbyId);
|
||||
eim.getInstanceMap(eventMap).resetFully();
|
||||
eim.getInstanceMap(eventMap).allowSummonState(false);
|
||||
respawn(eim);
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
function setup(difficulty, lobbyId) {
|
||||
var eim = em.newInstance("Cygnus_Magic_Library_" + lobbyId);
|
||||
eim.getInstanceMap(eventMap).resetFully();
|
||||
eim.getInstanceMap(eventMap).allowSummonState(false);
|
||||
respawn(eim);
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim){}
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawn(eim){
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
map.allowSummonState(true);
|
||||
map.instanceMapRespawn();
|
||||
eim.schedule("respawn", 10000);
|
||||
function respawn(eim) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
map.allowSummonState(true);
|
||||
map.instanceMapRespawn();
|
||||
eim.schedule("respawn", 10000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player){
|
||||
var magicLibrary = eim.getMapInstance(eventMap);
|
||||
player.changeMap(magicLibrary, magicLibrary.getPortal(1));
|
||||
function playerEntry(eim, player) {
|
||||
var magicLibrary = eim.getMapInstance(eventMap);
|
||||
player.changeMap(magicLibrary, magicLibrary.getPortal(1));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim){
|
||||
var party = eim.getPlayers();
|
||||
function scheduledTimeout(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++)
|
||||
playerExit(eim, party.get(i));
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
|
||||
eim.dispose();
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerRevive(eim, player){
|
||||
player.respawn(eim, entryMap);
|
||||
return false;
|
||||
function playerRevive(eim, player) {
|
||||
player.respawn(eim, entryMap);
|
||||
return false;
|
||||
}
|
||||
|
||||
function playerDead(eim, player){}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerDisconnected(eim, player){
|
||||
var party = eim.getPlayers();
|
||||
function playerDisconnected(eim, player) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++){
|
||||
if(party.get(i).equals(player))
|
||||
removePlayer(eim, player);
|
||||
else
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
if (party.get(i).equals(player)) {
|
||||
removePlayer(eim, player);
|
||||
} else {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId){
|
||||
return -1;
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
function leftParty(eim, player){}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty(eim){}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function playerUnregistered(eim, player){}
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(entryMap, 2);
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(entryMap, 2);
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid == exitMap){
|
||||
removePlayer(eim, chr);
|
||||
eim.dispose();
|
||||
}
|
||||
if (mapid == exitMap) {
|
||||
removePlayer(eim, chr);
|
||||
eim.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
function removePlayer(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(entryMap);
|
||||
function removePlayer(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(entryMap);
|
||||
}
|
||||
|
||||
function cancelSchedule(){}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(){}
|
||||
function dispose() {}
|
||||
|
||||
function clearPQ(eim){}
|
||||
function clearPQ(eim) {}
|
||||
|
||||
function monsterKilled(mob, eim){}
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function allMonstersDead(eim){}
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Delli Battle
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 2;
|
||||
@@ -38,166 +38,176 @@ var eventTime = 6; // 6 minutes
|
||||
const maxLobbies = 7;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Delli" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
|
||||
eim.getMapInstance(entryMap).toggleDrops();
|
||||
return eim;
|
||||
var eim = em.newInstance("Delli" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
|
||||
eim.getMapInstance(entryMap).toggleDrops();
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
eim.getMapInstance(entryMap).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect();
|
||||
clearPQ(eim);
|
||||
eim.getMapInstance(entryMap).killAllMonstersNotFriendly();
|
||||
eim.showClearEffect();
|
||||
clearPQ(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
if (mob.getId() == 9300162) {
|
||||
end(eim);
|
||||
}
|
||||
if (mob.getId() == 9300162) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -21,30 +21,30 @@
|
||||
*/
|
||||
/**
|
||||
*Dollhouse Event
|
||||
**/
|
||||
**/
|
||||
|
||||
var entryMap = 922000010;
|
||||
var exitMap = 221024400;
|
||||
var eventTime = 10; //10 minutes
|
||||
|
||||
function init() {
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("DollHouse_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
eim.getInstanceMap(entryMap).shuffleReactors();
|
||||
eim.setExclusiveItems([4031094]);
|
||||
|
||||
|
||||
player.changeMap(entryMap, 0);
|
||||
em.setProperty("noEntry","true");
|
||||
em.setProperty("noEntry", "true");
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(eventTime * 60));
|
||||
@@ -56,7 +56,7 @@ function playerUnregistered(eim, player) {}
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
@@ -73,13 +73,15 @@ function clear(eim) {
|
||||
var player = eim.getPlayers().get(0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 4);
|
||||
|
||||
|
||||
eim.dispose();
|
||||
em.setProperty("noEntry","false");
|
||||
em.setProperty("noEntry", "false");
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if(mapid != entryMap) playerExit(eim, chr);
|
||||
if (mapid != entryMap) {
|
||||
playerExit(eim, chr);
|
||||
}
|
||||
}
|
||||
|
||||
function cancelSchedule() {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Elemental Thanatos
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 2, maxPlayers = 2;
|
||||
@@ -39,82 +39,92 @@ var eventTime = 20; // 20 minutes
|
||||
const maxLobbies = 7;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n For #rmagicians only#k.";
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n For #rmagicians only#k.";
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel && ch.getJob().getJobNiche() == 2) {
|
||||
if(ch.isLeader()) hasLeader = true; // magician niche only
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel && ch.getJob().getJobNiche() == 2) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
} // magician niche only
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Elemental" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(922020100).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Elemental" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(922020100).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -122,116 +132,116 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isElemental(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == 9300086 || mobid == 9300100;
|
||||
var mobid = mob.getId();
|
||||
return mobid == 9300086 || mobid == 9300100;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isElemental(mob)) {
|
||||
var killed = eim.getIntProperty("boss");
|
||||
if(killed == 1) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
} else {
|
||||
eim.setIntProperty("boss", killed + 1);
|
||||
}
|
||||
if (isElemental(mob)) {
|
||||
var killed = eim.getIntProperty("boss");
|
||||
if (killed == 1) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
} else {
|
||||
eim.setIntProperty("boss", killed + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -22,22 +22,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//Time Setting is in millisecond
|
||||
var beginTime = 60 * 1000; //The time to begin the ride
|
||||
var rideTime = 60 * 1000; //The time that require move to destination
|
||||
var rideTime = 60 * 1000; //The time that require move to destination
|
||||
|
||||
function init() {
|
||||
beginTime = em.getTransportationTime(beginTime);
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
em.getChannelServer().getMapFactory().getMap(222020100).resetReactors();
|
||||
em.getChannelServer().getMapFactory().getMap(222020200).resetReactors();
|
||||
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
function scheduleNew() {
|
||||
em.setProperty("goingUp", "false");
|
||||
em.setProperty("goingDown", "true");
|
||||
|
||||
|
||||
em.getChannelServer().getMapFactory().getMap(222020100).resetReactors();
|
||||
em.getChannelServer().getMapFactory().getMap(222020200).setReactorState();
|
||||
em.schedule("goingUpNow", beginTime);
|
||||
@@ -55,7 +55,7 @@ function goingUpNow() {
|
||||
em.getChannelServer().getMapFactory().getMap(222020110).warpEveryone(222020111);
|
||||
em.setProperty("goingUp", "true");
|
||||
em.schedule("isUpNow", rideTime);
|
||||
|
||||
|
||||
em.getChannelServer().getMapFactory().getMap(222020100).setReactorState();
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ function goingDownNow() {
|
||||
em.getChannelServer().getMapFactory().getMap(222020210).warpEveryone(222020211);
|
||||
em.setProperty("goingDown", "true");
|
||||
em.schedule("isDownNow", rideTime);
|
||||
|
||||
|
||||
em.getChannelServer().getMapFactory().getMap(222020200).setReactorState();
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ function isDownNow() {
|
||||
em.setProperty("goingUp", "false"); // clear
|
||||
em.getChannelServer().getMapFactory().getMap(222020100).resetReactors();
|
||||
em.getChannelServer().getMapFactory().getMap(222020211).warpEveryone(222020100, 4);
|
||||
|
||||
|
||||
goUp();
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Ellin PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 4, maxPlayers = 6;
|
||||
@@ -39,200 +39,213 @@ var eventTime = 30; // 30 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n For #radventurers only#k.";
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n For #radventurers only#k.";
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001162, 4001163, 4001169, 2270004];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001162, 4001163, 4001169, 2270004];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel && Math.floor(ch.getJob().getId() / 1000) == 0) { //only adventurers
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel && Math.floor(ch.getJob().getId() / 1000) == 0) { //only adventurers
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Ellin" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("statusStg4", 0);
|
||||
|
||||
eim.getInstanceMap(930000000).resetPQ(level);
|
||||
eim.getInstanceMap(930000100).resetPQ(level);
|
||||
eim.getInstanceMap(930000200).resetPQ(level);
|
||||
eim.getInstanceMap(930000300).resetPQ(level);
|
||||
eim.getInstanceMap(930000400).resetPQ(level);
|
||||
var map = eim.getInstanceMap(930000500);
|
||||
map.resetPQ(level);
|
||||
map.shuffleReactors();
|
||||
eim.getInstanceMap(930000600).resetPQ(level);
|
||||
eim.getInstanceMap(930000700).resetPQ(level);
|
||||
var eim = em.newInstance("Ellin" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
respawnStg2(eim);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
eim.setProperty("statusStg4", 0);
|
||||
|
||||
eim.getInstanceMap(930000000).resetPQ(level);
|
||||
eim.getInstanceMap(930000100).resetPQ(level);
|
||||
eim.getInstanceMap(930000200).resetPQ(level);
|
||||
eim.getInstanceMap(930000300).resetPQ(level);
|
||||
eim.getInstanceMap(930000400).resetPQ(level);
|
||||
var map = eim.getInstanceMap(930000500);
|
||||
map.resetPQ(level);
|
||||
map.shuffleReactors();
|
||||
eim.getInstanceMap(930000600).resetPQ(level);
|
||||
eim.getInstanceMap(930000700).resetPQ(level);
|
||||
|
||||
respawnStg2(eim);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStg2(eim) {
|
||||
if(!eim.getMapInstance(930000200).getPlayers().isEmpty()) eim.getMapInstance(930000200).instanceMapRespawn();
|
||||
function respawnStg2(eim) {
|
||||
if (!eim.getMapInstance(930000200).getPlayers().isEmpty()) {
|
||||
eim.getMapInstance(930000200).instanceMapRespawn();
|
||||
}
|
||||
eim.schedule("respawnStg2", 4 * 1000);
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player))
|
||||
end(eim);
|
||||
else
|
||||
playerExit(eim, player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isPoisonGolem(mob) {
|
||||
var mobid = mob.getId();
|
||||
return (mobid == 9300182);
|
||||
var mobid = mob.getId();
|
||||
return (mobid == 9300182);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim, hasKiller) {
|
||||
var map = mob.getMap();
|
||||
|
||||
if(isPoisonGolem(mob)) {
|
||||
eim.showClearEffect(map.getId());
|
||||
eim.clearPQ();
|
||||
} else if(map.countMonsters() == 0) {
|
||||
var stage = ((map.getId() % 1000) / 100);
|
||||
|
||||
if(stage == 1 || (stage == 4 && !hasKiller)) {
|
||||
eim.showClearEffect(map.getId());
|
||||
}
|
||||
var map = mob.getMap();
|
||||
|
||||
if (isPoisonGolem(mob)) {
|
||||
eim.showClearEffect(map.getId());
|
||||
eim.clearPQ();
|
||||
} else if (map.countMonsters() == 0) {
|
||||
var stage = ((map.getId() % 1000) / 100);
|
||||
|
||||
if (stage == 1 || (stage == 4 && !hasKiller)) {
|
||||
eim.showClearEffect(map.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: ElNath PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 4;
|
||||
@@ -38,156 +38,166 @@ var eventTime = 10; // 10 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Tylus" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
return eim;
|
||||
var eim = em.newInstance("Tylus" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -30,13 +30,13 @@ var Ariant_docked;
|
||||
//Time Setting is in millisecond
|
||||
var closeTime = 4 * 60 * 1000; //The time to close the gate
|
||||
var beginTime = 5 * 60 * 1000; //The time to begin the ride
|
||||
var rideTime = 5 * 60 * 1000; //The time that require move to destination
|
||||
var rideTime = 5 * 60 * 1000; //The time that require move to destination
|
||||
|
||||
function init() {
|
||||
closeTime = em.getTransportationTime(closeTime);
|
||||
beginTime = em.getTransportationTime(beginTime);
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
Orbis_btf = em.getChannelServer().getMapFactory().getMap(200000152);
|
||||
Ariant_btf = em.getChannelServer().getMapFactory().getMap(260000110);
|
||||
Genie_to_Orbis = em.getChannelServer().getMapFactory().getMap(200090410);
|
||||
@@ -44,7 +44,7 @@ function init() {
|
||||
Orbis_docked = em.getChannelServer().getMapFactory().getMap(200000151);
|
||||
Ariant_docked = em.getChannelServer().getMapFactory().getMap(260000100);
|
||||
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000100);
|
||||
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
@@ -52,14 +52,14 @@ function scheduleNew() {
|
||||
em.setProperty("docked", "true");
|
||||
Orbis_docked.setDocked(true);
|
||||
Ariant_docked.setDocked(true);
|
||||
|
||||
|
||||
em.setProperty("entry", "true");
|
||||
em.schedule("stopEntry", closeTime); //The time to close the gate
|
||||
em.schedule("takeoff", beginTime); //The time to begin the ride
|
||||
}
|
||||
|
||||
function stopEntry() {
|
||||
em.setProperty("entry","false");
|
||||
em.setProperty("entry", "false");
|
||||
}
|
||||
|
||||
function takeoff() {
|
||||
@@ -67,11 +67,11 @@ function takeoff() {
|
||||
Ariant_btf.warpEveryone(Genie_to_Orbis.getId());
|
||||
Orbis_docked.broadcastShip(false);
|
||||
Ariant_docked.broadcastShip(false);
|
||||
|
||||
em.setProperty("docked","false");
|
||||
|
||||
em.setProperty("docked", "false");
|
||||
Orbis_docked.setDocked(false);
|
||||
Ariant_docked.setDocked(false);
|
||||
|
||||
|
||||
em.schedule("arrived", rideTime); //The time that require move to destination
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ function arrived() {
|
||||
Genie_to_Ariant.warpEveryone(Ariant_docked.getId(), 1);
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Ariant_docked.broadcastShip(true);
|
||||
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,104 +5,105 @@ var exitMap = 240070000;
|
||||
var eventMap = 240070010;
|
||||
var eventBossIds = [7120100, 7120101, 7120102, 8120100, 8120101, 8140510];
|
||||
|
||||
function init(){}
|
||||
function init() {}
|
||||
|
||||
function setup(difficulty, lobbyId){
|
||||
var eim = em.newInstance("Nex_" + lobbyId);
|
||||
eim.setIntProperty("nex", lobbyId);
|
||||
|
||||
eim.getInstanceMap(eventMap + 10 * lobbyId).resetFully();
|
||||
eim.getInstanceMap(eventMap + 10 * lobbyId).allowSummonState(false);
|
||||
respawn(eim);
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
function setup(difficulty, lobbyId) {
|
||||
var eim = em.newInstance("Nex_" + lobbyId);
|
||||
eim.setIntProperty("nex", lobbyId);
|
||||
|
||||
eim.getInstanceMap(eventMap + 10 * lobbyId).resetFully();
|
||||
eim.getInstanceMap(eventMap + 10 * lobbyId).allowSummonState(false);
|
||||
respawn(eim);
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim){}
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawn(eim){}
|
||||
function respawn(eim) {}
|
||||
|
||||
function playerEntry(eim, player){
|
||||
var cave = eim.getMapInstance(eventMap + 10 * eim.getIntProperty("nex"));
|
||||
player.changeMap(cave, 1);
|
||||
function playerEntry(eim, player) {
|
||||
var cave = eim.getMapInstance(eventMap + 10 * eim.getIntProperty("nex"));
|
||||
player.changeMap(cave, 1);
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim){
|
||||
var party = eim.getPlayers();
|
||||
function scheduledTimeout(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++)
|
||||
playerExit(eim, party.get(i));
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
|
||||
eim.dispose();
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerRevive(eim, player){
|
||||
player.respawn(eim, exitMap);
|
||||
return false;
|
||||
function playerRevive(eim, player) {
|
||||
player.respawn(eim, exitMap);
|
||||
return false;
|
||||
}
|
||||
|
||||
function playerDead(eim, player){}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId){
|
||||
return -1;
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid != (eventMap + 10 * eim.getIntProperty("nex"))) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player){}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function disbandParty(eim){}
|
||||
function dispose() {}
|
||||
|
||||
function playerUnregistered(eim, player){}
|
||||
|
||||
function playerExit(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid){
|
||||
if (mapid != (eventMap + 10 * eim.getIntProperty("nex"))) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
function monsterKilled(mob, eim) {
|
||||
if (mob.getId() == eventBossIds[eim.getIntProperty("nex")]) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function cancelSchedule(){}
|
||||
|
||||
function dispose(){}
|
||||
|
||||
function clearPQ(eim){
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim){
|
||||
if (mob.getId() == eventBossIds[eim.getIntProperty("nex")]) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim){}
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Sharenian Guild PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 6, maxPlayers = 30;
|
||||
@@ -41,239 +41,248 @@ var bonusTime = 0.5; // 30 seconds
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n All members of the same guild";
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n All members of the same guild";
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [1032033, 4001024, 4001025, 4001026, 4001027, 4001028, 4001029, 4001030, 4001031, 4001032, 4001033, 4001034, 4001035, 4001037];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [1032033, 4001024, 4001025, 4001026, 4001027, 4001028, 4001029, 4001030, 4001031, 4001032, 4001033, 4001034, 4001035, 4001037];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
var guildId = 0;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if(ch.isLeader()) {
|
||||
guildId = ch.getGuildId();
|
||||
break;
|
||||
}
|
||||
}
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
var guildId = 0;
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel && ch.getGuildId() == guildId) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (ch.isLeader()) {
|
||||
guildId = ch.getGuildId();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel && ch.getGuildId() == guildId) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!(hasLeader)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Guild" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("guild", 0);
|
||||
eim.setProperty("canJoin", 1);
|
||||
eim.setProperty("canRevive", 0);
|
||||
|
||||
eim.getInstanceMap(990000000).resetPQ(level);
|
||||
eim.getInstanceMap(990000100).resetPQ(level);
|
||||
eim.getInstanceMap(990000200).resetPQ(level);
|
||||
eim.getInstanceMap(990000300).resetPQ(level);
|
||||
eim.getInstanceMap(990000301).resetPQ(level);
|
||||
eim.getInstanceMap(990000400).resetPQ(level);
|
||||
eim.getInstanceMap(990000401).resetPQ(level);
|
||||
eim.getInstanceMap(990000410).resetPQ(level);
|
||||
eim.getInstanceMap(990000420).resetPQ(level);
|
||||
eim.getInstanceMap(990000430).resetPQ(level);
|
||||
eim.getInstanceMap(990000431).resetPQ(level);
|
||||
eim.getInstanceMap(990000440).resetPQ(level);
|
||||
eim.getInstanceMap(990000500).resetPQ(level);
|
||||
eim.getInstanceMap(990000501).resetPQ(level);
|
||||
eim.getInstanceMap(990000502).resetPQ(level);
|
||||
eim.getInstanceMap(990000600).resetPQ(level);
|
||||
eim.getInstanceMap(990000610).resetPQ(level);
|
||||
eim.getInstanceMap(990000611).resetPQ(level);
|
||||
eim.getInstanceMap(990000620).resetPQ(level);
|
||||
eim.getInstanceMap(990000630).resetPQ(level);
|
||||
eim.getInstanceMap(990000631).resetPQ(level);
|
||||
eim.getInstanceMap(990000640).resetPQ(level);
|
||||
eim.getInstanceMap(990000641).resetPQ(level);
|
||||
eim.getInstanceMap(990000700).resetPQ(level);
|
||||
eim.getInstanceMap(990000800).resetPQ(level);
|
||||
eim.getInstanceMap(990000900).resetPQ(level);
|
||||
eim.getInstanceMap(990001000).resetPQ(level);
|
||||
eim.getInstanceMap(990001100).resetPQ(level);
|
||||
eim.getInstanceMap(990001101).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
var ts = Date.now();
|
||||
ts += (60000 * waitTime);
|
||||
eim.setProperty("entryTimestamp", "" + ts);
|
||||
|
||||
eim.startEventTimer(waitTime * 60000);
|
||||
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
return eim;
|
||||
var eim = em.newInstance("Guild" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("guild", 0);
|
||||
eim.setProperty("canJoin", 1);
|
||||
eim.setProperty("canRevive", 0);
|
||||
|
||||
eim.getInstanceMap(990000000).resetPQ(level);
|
||||
eim.getInstanceMap(990000100).resetPQ(level);
|
||||
eim.getInstanceMap(990000200).resetPQ(level);
|
||||
eim.getInstanceMap(990000300).resetPQ(level);
|
||||
eim.getInstanceMap(990000301).resetPQ(level);
|
||||
eim.getInstanceMap(990000400).resetPQ(level);
|
||||
eim.getInstanceMap(990000401).resetPQ(level);
|
||||
eim.getInstanceMap(990000410).resetPQ(level);
|
||||
eim.getInstanceMap(990000420).resetPQ(level);
|
||||
eim.getInstanceMap(990000430).resetPQ(level);
|
||||
eim.getInstanceMap(990000431).resetPQ(level);
|
||||
eim.getInstanceMap(990000440).resetPQ(level);
|
||||
eim.getInstanceMap(990000500).resetPQ(level);
|
||||
eim.getInstanceMap(990000501).resetPQ(level);
|
||||
eim.getInstanceMap(990000502).resetPQ(level);
|
||||
eim.getInstanceMap(990000600).resetPQ(level);
|
||||
eim.getInstanceMap(990000610).resetPQ(level);
|
||||
eim.getInstanceMap(990000611).resetPQ(level);
|
||||
eim.getInstanceMap(990000620).resetPQ(level);
|
||||
eim.getInstanceMap(990000630).resetPQ(level);
|
||||
eim.getInstanceMap(990000631).resetPQ(level);
|
||||
eim.getInstanceMap(990000640).resetPQ(level);
|
||||
eim.getInstanceMap(990000641).resetPQ(level);
|
||||
eim.getInstanceMap(990000700).resetPQ(level);
|
||||
eim.getInstanceMap(990000800).resetPQ(level);
|
||||
eim.getInstanceMap(990000900).resetPQ(level);
|
||||
eim.getInstanceMap(990001000).resetPQ(level);
|
||||
eim.getInstanceMap(990001100).resetPQ(level);
|
||||
eim.getInstanceMap(990001101).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
var ts = Date.now();
|
||||
ts += (60000 * waitTime);
|
||||
eim.setProperty("entryTimestamp", "" + ts);
|
||||
|
||||
eim.startEventTimer(waitTime * 60000);
|
||||
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function isTeamAllJobs(eim) {
|
||||
var eventJobs = eim.getEventPlayersJobs();
|
||||
var rangeJobs = parseInt('111110', 2);
|
||||
|
||||
return ((eventJobs & rangeJobs) == rangeJobs);
|
||||
var eventJobs = eim.getEventPlayersJobs();
|
||||
var rangeJobs = parseInt('111110', 2);
|
||||
|
||||
return ((eventJobs & rangeJobs) == rangeJobs);
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
var leader = em.getChannelServer().getPlayerStorage().getCharacterById(eim.getLeaderId());
|
||||
if(leader != null) {
|
||||
eim.setProperty("guild", "" + leader.getGuildId());
|
||||
}
|
||||
var leader = em.getChannelServer().getPlayerStorage().getCharacterById(eim.getLeaderId());
|
||||
if (leader != null) {
|
||||
eim.setProperty("guild", "" + leader.getGuildId());
|
||||
}
|
||||
}
|
||||
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
if(eim.isEventCleared()) {
|
||||
eim.warpEventTeam(990001100);
|
||||
} else {
|
||||
if(eim.getIntProperty("canJoin") == 1) {
|
||||
eim.setProperty("canJoin", 0);
|
||||
if (eim.isEventCleared()) {
|
||||
eim.warpEventTeam(990001100);
|
||||
} else {
|
||||
if (eim.getIntProperty("canJoin") == 1) {
|
||||
eim.setProperty("canJoin", 0);
|
||||
|
||||
if(eim.checkEventTeamLacking(true, minPlayers)) {
|
||||
end(eim);
|
||||
} else {
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
|
||||
if(isTeamAllJobs(eim)) {
|
||||
var rnd = Math.floor(Math.random() * 4);
|
||||
eim.applyEventPlayersItemBuff(2023000 + rnd);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
end(eim);
|
||||
if (eim.checkEventTeamLacking(true, minPlayers)) {
|
||||
end(eim);
|
||||
} else {
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
|
||||
if (isTeamAllJobs(eim)) {
|
||||
var rnd = Math.floor(Math.random() * 4);
|
||||
eim.applyEventPlayersItemBuff(2023000 + rnd);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {
|
||||
player.cancelEffect(2023000);
|
||||
player.cancelEffect(2023001);
|
||||
player.cancelEffect(2023002);
|
||||
player.cancelEffect(2023003);
|
||||
player.cancelEffect(2023000);
|
||||
player.cancelEffect(2023001);
|
||||
player.cancelEffect(2023002);
|
||||
player.cancelEffect(2023003);
|
||||
}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player) && eim.getIntProperty("canJoin") == 0) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player) && eim.getIntProperty("canJoin") == 0) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function afterChangedMap(eim, player, mapid) {
|
||||
if (mapid == 990000100) {
|
||||
var texttt = "So, here is the brief. You guys should be warned that, once out on the fortress outskirts, anyone that would not be equipping the #b#t1032033##k will die instantly due to the deteriorated state of the air around there. That being said, once your team moves out, make sure to #bhit the glowing rocks#k in that region and #bequip the dropped item#k before advancing stages. That will protect you thoroughly from the air sickness. Good luck!";
|
||||
player.getAbstractPlayerInteraction().npcTalk(9040000, texttt);
|
||||
}
|
||||
if (mapid == 990000100) {
|
||||
var texttt = "So, here is the brief. You guys should be warned that, once out on the fortress outskirts, anyone that would not be equipping the #b#t1032033##k will die instantly due to the deteriorated state of the air around there. That being said, once your team moves out, make sure to #bhit the glowing rocks#k in that region and #bequip the dropped item#k before advancing stages. That will protect you thoroughly from the air sickness. Good luck!";
|
||||
player.getAbstractPlayerInteraction().npcTalk(9040000, texttt);
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {}
|
||||
|
||||
function playerDead(eim, player) {
|
||||
if(player.getMapId() == 990000900) {
|
||||
if(player.getMap().countAlivePlayers() == 0 && player.getMap().countMonsters() > 0) {
|
||||
end(eim);
|
||||
}
|
||||
if (player.getMapId() == 990000900) {
|
||||
if (player.getMap().countAlivePlayers() == 0 && player.getMap().countMonsters() > 0) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if(eim.getIntProperty("canRevive") == 0) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player) && eim.getIntProperty("canJoin") == 0) {
|
||||
player.respawn(eim, exitMap);
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
player.respawn(eim, exitMap);
|
||||
}
|
||||
|
||||
return false;
|
||||
if (eim.getIntProperty("canRevive") == 0) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player) && eim.getIntProperty("canJoin") == 0) {
|
||||
player.respawn(eim, exitMap);
|
||||
end(eim);
|
||||
} else {
|
||||
player.respawn(eim, exitMap);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player) && eim.getIntProperty("canJoin") == 0) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player) && eim.getIntProperty("canJoin") == 0) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {}
|
||||
@@ -281,27 +290,27 @@ function leftParty(eim, player) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.warpEventTeam(clearMap);
|
||||
eim.startEventTimer(bonusTime * 60000);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.warpEventTeam(clearMap);
|
||||
eim.startEventTimer(bonusTime * 60000);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
@@ -311,9 +320,9 @@ function allMonstersDead(eim) {}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(eim) {
|
||||
em.schedule("reopenGuildQuest", em.getLobbyDelay() * 1.5 * 1000);
|
||||
em.schedule("reopenGuildQuest", em.getLobbyDelay() * 1.5 * 1000);
|
||||
}
|
||||
|
||||
function reopenGuildQuest() {
|
||||
em.attemptStartGuildInstance();
|
||||
em.attemptStartGuildInstance();
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
var returnTo = new Array(200000141, 250000100);
|
||||
var rideTo = new Array(250000100, 200000141);
|
||||
var birdRide = new Array(200090300, 200090310);
|
||||
var returnTo = [200000141, 250000100];
|
||||
var rideTo = [250000100, 200000141];
|
||||
var birdRide = [200090300, 200090310];
|
||||
var myRide;
|
||||
var returnMap;
|
||||
var exitMap;
|
||||
@@ -15,49 +15,49 @@ function init() {
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Hak_" + lobbyid);
|
||||
return eim;
|
||||
var eim = em.newInstance("Hak_" + lobbyid);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
if (player.getMapId() == returnTo[0]) {
|
||||
myRide = 0;
|
||||
} else {
|
||||
myRide = 1;
|
||||
}
|
||||
exitMap = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]);
|
||||
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
||||
onRide = eim.getMapFactory().getMap(birdRide[myRide]);
|
||||
player.changeMap(onRide, onRide.getPortal(0));
|
||||
if (player.getMapId() == returnTo[0]) {
|
||||
myRide = 0;
|
||||
} else {
|
||||
myRide = 1;
|
||||
}
|
||||
exitMap = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]);
|
||||
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
||||
onRide = eim.getMapFactory().getMap(birdRide[myRide]);
|
||||
player.changeMap(onRide, onRide.getPortal(0));
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(rideTime / 1000));
|
||||
eim.schedule("timeOut", rideTime);
|
||||
player.sendPacket(PacketCreator.getClock(rideTime / 1000));
|
||||
eim.schedule("timeOut", rideTime);
|
||||
}
|
||||
|
||||
function timeOut(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player, success) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(success ? exitMap.getId() : returnMap.getId(), 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(success ? exitMap.getId() : returnMap.getId(), 0);
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i), true);
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i), true);
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
playerExit(eim, player, false);
|
||||
playerExit(eim, player, false);
|
||||
}
|
||||
|
||||
function cancelSchedule() {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Henesys PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
@@ -39,231 +39,240 @@ var eventTime = 10; // 10 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001095, 4001096, 4001097, 4001098, 4001099, 4001100, 4001101];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001095, 4001096, 4001097, 4001098, 4001099, 4001100, 4001101];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001158];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [1600]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [4001158];
|
||||
itemQty = [1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [1600]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Henesys" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("bunnyCake", "0");
|
||||
eim.setProperty("bunnyDamaged", "0");
|
||||
|
||||
eim.getInstanceMap(910010000).resetPQ(level);
|
||||
eim.getInstanceMap(910010000).allowSummonState(false);
|
||||
|
||||
eim.getInstanceMap(910010200).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Henesys" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("bunnyCake", "0");
|
||||
eim.setProperty("bunnyDamaged", "0");
|
||||
|
||||
eim.getInstanceMap(910010000).resetPQ(level);
|
||||
eim.getInstanceMap(910010000).allowSummonState(false);
|
||||
|
||||
eim.getInstanceMap(910010200).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getInstanceMap(910010000).instanceMapRespawn();
|
||||
eim.getInstanceMap(910010200).instanceMapRespawn();
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
eim.getInstanceMap(910010000).instanceMapRespawn();
|
||||
eim.getInstanceMap(910010200).instanceMapRespawn();
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
if(eim.getProperty("1stageclear") != null) {
|
||||
var curStage = 910010200, toStage = 910010400;
|
||||
eim.warpEventTeam(curStage, toStage);
|
||||
}
|
||||
else {
|
||||
end(eim);
|
||||
}
|
||||
if (eim.getProperty("1stageclear") != null) {
|
||||
var curStage = 910010200, toStage = 910010400;
|
||||
eim.warpEventTeam(curStage, toStage);
|
||||
} else {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function bunnyDefeated(eim) {
|
||||
eim.dropMessage(5, "Due to your failure to protect the Moon Bunny, you have been transported to the Exile Map.");
|
||||
end(eim);
|
||||
eim.dropMessage(5, "Due to your failure to protect the Moon Bunny, you have been transported to the Exile Map.");
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId || mapid == 910010300) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId || mapid == 910010300) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.warpEventTeam(910010100);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.warpEventTeam(910010100);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
if (mob.getId() == 9300061) {
|
||||
eim.schedule("bunnyDefeated", 5 * 1000);
|
||||
}
|
||||
if (mob.getId() == 9300061) {
|
||||
eim.schedule("bunnyDefeated", 5 * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function friendlyItemDrop(eim, mob) {
|
||||
if (mob.getId() == 9300061) {
|
||||
var cakes = eim.getIntProperty("bunnyCake") + 1;
|
||||
eim.setIntProperty("bunnyCake", cakes);
|
||||
if (mob.getId() == 9300061) {
|
||||
var cakes = eim.getIntProperty("bunnyCake") + 1;
|
||||
eim.setIntProperty("bunnyCake", cakes);
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
mob.getMap().broadcastMessage(PacketCreator.serverNotice(6, "The Moon Bunny made rice cake number " + cakes + "."));
|
||||
}
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
mob.getMap().broadcastMessage(PacketCreator.serverNotice(6, "The Moon Bunny made rice cake number " + cakes + "."));
|
||||
}
|
||||
}
|
||||
|
||||
function friendlyDamaged(eim, mob) {
|
||||
if (mob.getId() == 9300061) {
|
||||
var bunnyDamage = eim.getIntProperty("bunnyDamaged") + 1;
|
||||
if (bunnyDamage > 5) {
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
broadcastMessage(PacketCreator.serverNotice(6, "The Moon Bunny is feeling sick. Please protect it so it can make delicious rice cakes."));
|
||||
eim.setIntProperty("bunnyDamaged", 0);
|
||||
}
|
||||
if (mob.getId() == 9300061) {
|
||||
var bunnyDamage = eim.getIntProperty("bunnyDamaged") + 1;
|
||||
if (bunnyDamage > 5) {
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
broadcastMessage(PacketCreator.serverNotice(6, "The Moon Bunny is feeling sick. Please protect it so it can make delicious rice cakes."));
|
||||
eim.setIntProperty("bunnyDamaged", 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Holiday PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
// GMS-like event string data thanks to iHealForLove
|
||||
|
||||
@@ -41,314 +41,330 @@ var eventTime = 15; // 15 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4032094, 4032095];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4032094, 4032095];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 3; //Rewards at Hard difficulty
|
||||
itemSet = [1302080, 1002033, 2022153, 2022042, 2020006, 2020009, 2020016, 2020024, 4010006, 4010007, 4020004, 4020005, 4003002];
|
||||
itemQty = [1, 1, 1, 5, 20, 15, 10, 10, 2, 4, 4, 4, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 2; //Rewards at Normal difficulty
|
||||
itemSet = [1302080, 1002033, 2012005, 2012006, 2020002, 2020025, 2020026, 4010003, 4010004, 4010005, 4020002, 4020003, 4020007];
|
||||
itemQty = [1, 1, 15, 15, 15, 10, 10, 3, 3, 3, 3, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 1; //Rewards at Easy difficulty
|
||||
itemSet = [1002033, 2012005, 2012006, 2020002, 2022006, 2022002, 4010000, 4010001, 4010002, 4020000, 4020001, 4020006];
|
||||
itemQty = [1, 15, 15, 10, 5, 5, 2, 2, 2, 2, 2, 2];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [210, 620, 500, 1400, 950, 2200]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 3; //Rewards at Hard difficulty
|
||||
itemSet = [1302080, 1002033, 2022153, 2022042, 2020006, 2020009, 2020016, 2020024, 4010006, 4010007, 4020004, 4020005, 4003002];
|
||||
itemQty = [1, 1, 1, 5, 20, 15, 10, 10, 2, 4, 4, 4, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 2; //Rewards at Normal difficulty
|
||||
itemSet = [1302080, 1002033, 2012005, 2012006, 2020002, 2020025, 2020026, 4010003, 4010004, 4010005, 4020002, 4020003, 4020007];
|
||||
itemQty = [1, 1, 15, 15, 15, 10, 10, 3, 3, 3, 3, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 1; //Rewards at Easy difficulty
|
||||
itemSet = [1002033, 2012005, 2012006, 2020002, 2022006, 2022002, 4010000, 4010001, 4010002, 4020000, 4020001, 4020006];
|
||||
itemQty = [1, 15, 15, 10, 5, 5, 2, 2, 2, 2, 2, 2];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [210, 620, 500, 1400, 950, 2200]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Holiday1_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("statusStg1", "-1");
|
||||
eim.setProperty("missingDrops", "0");
|
||||
eim.setProperty("snowmanLevel", "0");
|
||||
eim.setProperty("snowmanStep", "0");
|
||||
eim.setProperty("spawnedBoss", "0");
|
||||
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.resetPQ(level);
|
||||
mapobj.allowSummonState(false);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Holiday1_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("statusStg1", "-1");
|
||||
eim.setProperty("missingDrops", "0");
|
||||
eim.setProperty("snowmanLevel", "0");
|
||||
eim.setProperty("snowmanStep", "0");
|
||||
eim.setProperty("spawnedBoss", "0");
|
||||
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.resetPQ(level);
|
||||
mapobj.allowSummonState(false);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getInstanceMap(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
eim.getInstanceMap(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
}
|
||||
|
||||
function snowmanHeal(eim) {
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = eim.getInstanceMap(entryMap).getMonsterById(9400316 + (5 * difficulty) + 5);
|
||||
|
||||
snowman.heal(200 + 200 * difficulty, 0);
|
||||
eim.schedule("snowmanHeal", 10 * 1000);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = eim.getInstanceMap(entryMap).getMonsterById(9400316 + (5 * difficulty) + 5);
|
||||
|
||||
snowman.heal(200 + 200 * difficulty, 0);
|
||||
eim.schedule("snowmanHeal", 10 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.applyEventPlayersItemBuff(2022436);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.applyEventPlayersItemBuff(2022436);
|
||||
}
|
||||
|
||||
function isScrooge(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid >= 9400319 && mobid <= 9400321;
|
||||
var mobid = mob.getId();
|
||||
return mobid >= 9400319 && mobid <= 9400321;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
else if(isScrooge(mob)) {
|
||||
eim.giveEventPlayersStageReward(2 * eim.getIntProperty("level"));
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
} else if (isScrooge(mob)) {
|
||||
eim.giveEventPlayersStageReward(2 * eim.getIntProperty("level"));
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
return;
|
||||
}
|
||||
|
||||
var rnd = Math.random();
|
||||
var forceDrop = false;
|
||||
if(rnd >= 0.42) { // 42% chance of dropping token
|
||||
var miss = eim.getIntProperty("missingDrops");
|
||||
if(miss < 5) {
|
||||
eim.setIntProperty("missingDrops", miss + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
forceDrop = true;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
var rnd = Math.random();
|
||||
var forceDrop = false;
|
||||
if (rnd >= 0.42) { // 42% chance of dropping token
|
||||
var miss = eim.getIntProperty("missingDrops");
|
||||
if (miss < 5) {
|
||||
eim.setIntProperty("missingDrops", miss + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
eim.setIntProperty("missingDrops", 0);
|
||||
} catch(err) {} // PQ not started yet
|
||||
forceDrop = true;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
eim.setIntProperty("missingDrops", 0);
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
eim.setIntProperty("snowmanStep", 0);
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if(snowmanLevel <= 1) {
|
||||
end(eim);
|
||||
} else {
|
||||
eim.setIntProperty("snowmanLevel", snowmanLevel - 1);
|
||||
}
|
||||
eim.setIntProperty("snowmanStep", 0);
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if (snowmanLevel <= 1) {
|
||||
end(eim);
|
||||
} else {
|
||||
eim.setIntProperty("snowmanLevel", snowmanLevel - 1);
|
||||
}
|
||||
}
|
||||
|
||||
function snowmanEvolve(eim, curLevel) {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400317 + (5 * difficulty) + (curLevel - 1));
|
||||
|
||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||
mapobj.killMonster(snowman, null, false, 2);
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400317 + (5 * difficulty) + (curLevel - 1));
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var snowman = LifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||
|
||||
if(curLevel >= 4) {
|
||||
mapobj.allowSummonState(false);
|
||||
mapobj.killAllMonstersNotFriendly();
|
||||
mapobj.setReactorState();
|
||||
|
||||
eim.giveEventPlayersStageReward(2 * difficulty - 1);
|
||||
eim.showClearEffect();
|
||||
}
|
||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||
mapobj.killMonster(snowman, null, false, 2);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var snowman = LifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||
|
||||
if (curLevel >= 4) {
|
||||
mapobj.allowSummonState(false);
|
||||
mapobj.killAllMonstersNotFriendly();
|
||||
mapobj.setReactorState();
|
||||
|
||||
eim.giveEventPlayersStageReward(2 * difficulty - 1);
|
||||
eim.showClearEffect();
|
||||
}
|
||||
}
|
||||
|
||||
function snowmanSnack(eim) {
|
||||
if(eim.getIntProperty("snowmanLevel") >= 5) return;
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if(step >= 2 + (eim.getIntProperty("level") * snowmanLevel)) {
|
||||
step = 0;
|
||||
snowmanEvolve(eim, snowmanLevel);
|
||||
} else {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400316 + (5 * difficulty) + snowmanLevel);
|
||||
|
||||
snowman.heal(200 + (200 * snowmanLevel), 0);
|
||||
step += 1;
|
||||
}
|
||||
|
||||
eim.setIntProperty("snowmanStep", step);
|
||||
if (eim.getIntProperty("snowmanLevel") >= 5) {
|
||||
return;
|
||||
}
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if (step >= 2 + (eim.getIntProperty("level") * snowmanLevel)) {
|
||||
step = 0;
|
||||
snowmanEvolve(eim, snowmanLevel);
|
||||
} else {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400316 + (5 * difficulty) + snowmanLevel);
|
||||
|
||||
snowman.heal(200 + (200 * snowmanLevel), 0);
|
||||
step += 1;
|
||||
}
|
||||
|
||||
eim.setIntProperty("snowmanStep", step);
|
||||
}
|
||||
|
||||
function snowmanSnackFake(eim) {
|
||||
if(eim.getIntProperty("snowmanLevel") >= 5) return;
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
if(step > 0) {
|
||||
eim.setIntProperty("snowmanStep", step - 1);
|
||||
}
|
||||
|
||||
eim.dropMessage(5, "The snowman absorbed a Fake Snow Vigor!");
|
||||
if (eim.getIntProperty("snowmanLevel") >= 5) {
|
||||
return;
|
||||
}
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
if (step > 0) {
|
||||
eim.setIntProperty("snowmanStep", step - 1);
|
||||
}
|
||||
|
||||
eim.dropMessage(5, "The snowman absorbed a Fake Snow Vigor!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Holiday PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
// GMS-like event string data thanks to iHealForLove
|
||||
|
||||
@@ -41,314 +41,330 @@ var eventTime = 20; // 20 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4032094, 4032095];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4032094, 4032095];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 3; //Rewards at Hard difficulty
|
||||
itemSet = [1302080, 1002033, 2022153, 2022042, 2020006, 2020009, 2020016, 2020024, 4010006, 4010007, 4020004, 4020005, 4003002];
|
||||
itemQty = [1, 1, 1, 5, 20, 15, 10, 10, 2, 4, 4, 4, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 2; //Rewards at Normal difficulty
|
||||
itemSet = [1302080, 1002033, 2012005, 2012006, 2020002, 2020025, 2020026, 4010003, 4010004, 4010005, 4020002, 4020003, 4020007];
|
||||
itemQty = [1, 1, 15, 15, 15, 10, 10, 3, 3, 3, 3, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 1; //Rewards at Easy difficulty
|
||||
itemSet = [1002033, 2012005, 2012006, 2020002, 2022006, 2022002, 4010000, 4010001, 4010002, 4020000, 4020001, 4020006];
|
||||
itemQty = [1, 15, 15, 10, 5, 5, 2, 2, 2, 2, 2, 2];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [210, 620, 500, 1400, 950, 2200]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 3; //Rewards at Hard difficulty
|
||||
itemSet = [1302080, 1002033, 2022153, 2022042, 2020006, 2020009, 2020016, 2020024, 4010006, 4010007, 4020004, 4020005, 4003002];
|
||||
itemQty = [1, 1, 1, 5, 20, 15, 10, 10, 2, 4, 4, 4, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 2; //Rewards at Normal difficulty
|
||||
itemSet = [1302080, 1002033, 2012005, 2012006, 2020002, 2020025, 2020026, 4010003, 4010004, 4010005, 4020002, 4020003, 4020007];
|
||||
itemQty = [1, 1, 15, 15, 15, 10, 10, 3, 3, 3, 3, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 1; //Rewards at Easy difficulty
|
||||
itemSet = [1002033, 2012005, 2012006, 2020002, 2022006, 2022002, 4010000, 4010001, 4010002, 4020000, 4020001, 4020006];
|
||||
itemQty = [1, 15, 15, 10, 5, 5, 2, 2, 2, 2, 2, 2];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [210, 620, 500, 1400, 950, 2200]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Holiday2_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("statusStg1", "-1");
|
||||
eim.setProperty("missingDrops", "0");
|
||||
eim.setProperty("snowmanLevel", "0");
|
||||
eim.setProperty("snowmanStep", "0");
|
||||
eim.setProperty("spawnedBoss", "0");
|
||||
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.resetPQ(level);
|
||||
mapobj.allowSummonState(false);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Holiday2_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("statusStg1", "-1");
|
||||
eim.setProperty("missingDrops", "0");
|
||||
eim.setProperty("snowmanLevel", "0");
|
||||
eim.setProperty("snowmanStep", "0");
|
||||
eim.setProperty("spawnedBoss", "0");
|
||||
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.resetPQ(level);
|
||||
mapobj.allowSummonState(false);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getInstanceMap(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
eim.getInstanceMap(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
}
|
||||
|
||||
function snowmanHeal(eim) {
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = eim.getInstanceMap(entryMap).getMonsterById(9400316 + (5 * difficulty) + 5);
|
||||
|
||||
snowman.heal(200 + 200 * difficulty, 0);
|
||||
eim.schedule("snowmanHeal", 10 * 1000);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = eim.getInstanceMap(entryMap).getMonsterById(9400316 + (5 * difficulty) + 5);
|
||||
|
||||
snowman.heal(200 + 200 * difficulty, 0);
|
||||
eim.schedule("snowmanHeal", 10 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.applyEventPlayersItemBuff(2022437);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.applyEventPlayersItemBuff(2022437);
|
||||
}
|
||||
|
||||
function isScrooge(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid >= 9400319 && mobid <= 9400321;
|
||||
var mobid = mob.getId();
|
||||
return mobid >= 9400319 && mobid <= 9400321;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
else if(isScrooge(mob)) {
|
||||
eim.giveEventPlayersStageReward(2 * eim.getIntProperty("level"));
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
} else if (isScrooge(mob)) {
|
||||
eim.giveEventPlayersStageReward(2 * eim.getIntProperty("level"));
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
return;
|
||||
}
|
||||
|
||||
var rnd = Math.random();
|
||||
var forceDrop = false;
|
||||
if(rnd >= 0.42) { // 42% chance of dropping token
|
||||
var miss = eim.getIntProperty("missingDrops");
|
||||
if(miss < 5) {
|
||||
eim.setIntProperty("missingDrops", miss + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
forceDrop = true;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
var rnd = Math.random();
|
||||
var forceDrop = false;
|
||||
if (rnd >= 0.42) { // 42% chance of dropping token
|
||||
var miss = eim.getIntProperty("missingDrops");
|
||||
if (miss < 5) {
|
||||
eim.setIntProperty("missingDrops", miss + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
eim.setIntProperty("missingDrops", 0);
|
||||
} catch(err) {} // PQ not started yet
|
||||
forceDrop = true;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
eim.setIntProperty("missingDrops", 0);
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
eim.setIntProperty("snowmanStep", 0);
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if(snowmanLevel <= 1) {
|
||||
end(eim);
|
||||
} else {
|
||||
eim.setIntProperty("snowmanLevel", snowmanLevel - 1);
|
||||
}
|
||||
eim.setIntProperty("snowmanStep", 0);
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if (snowmanLevel <= 1) {
|
||||
end(eim);
|
||||
} else {
|
||||
eim.setIntProperty("snowmanLevel", snowmanLevel - 1);
|
||||
}
|
||||
}
|
||||
|
||||
function snowmanEvolve(eim, curLevel) {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400317 + (5 * difficulty) + (curLevel - 1));
|
||||
|
||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||
mapobj.killMonster(snowman, null, false, 2);
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400317 + (5 * difficulty) + (curLevel - 1));
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var snowman = LifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||
|
||||
if(curLevel >= 4) {
|
||||
mapobj.allowSummonState(false);
|
||||
mapobj.killAllMonstersNotFriendly();
|
||||
mapobj.setReactorState();
|
||||
|
||||
eim.giveEventPlayersStageReward(2 * difficulty - 1);
|
||||
eim.showClearEffect();
|
||||
}
|
||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||
mapobj.killMonster(snowman, null, false, 2);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var snowman = LifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||
|
||||
if (curLevel >= 4) {
|
||||
mapobj.allowSummonState(false);
|
||||
mapobj.killAllMonstersNotFriendly();
|
||||
mapobj.setReactorState();
|
||||
|
||||
eim.giveEventPlayersStageReward(2 * difficulty - 1);
|
||||
eim.showClearEffect();
|
||||
}
|
||||
}
|
||||
|
||||
function snowmanSnack(eim) {
|
||||
if(eim.getIntProperty("snowmanLevel") >= 5) return;
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if(step >= 2 + (eim.getIntProperty("level") * snowmanLevel)) {
|
||||
step = 0;
|
||||
snowmanEvolve(eim, snowmanLevel);
|
||||
} else {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400316 + (5 * difficulty) + snowmanLevel);
|
||||
|
||||
snowman.heal(200 + (200 * snowmanLevel), 0);
|
||||
step += 1;
|
||||
}
|
||||
|
||||
eim.setIntProperty("snowmanStep", step);
|
||||
if (eim.getIntProperty("snowmanLevel") >= 5) {
|
||||
return;
|
||||
}
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if (step >= 2 + (eim.getIntProperty("level") * snowmanLevel)) {
|
||||
step = 0;
|
||||
snowmanEvolve(eim, snowmanLevel);
|
||||
} else {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400316 + (5 * difficulty) + snowmanLevel);
|
||||
|
||||
snowman.heal(200 + (200 * snowmanLevel), 0);
|
||||
step += 1;
|
||||
}
|
||||
|
||||
eim.setIntProperty("snowmanStep", step);
|
||||
}
|
||||
|
||||
function snowmanSnackFake(eim) {
|
||||
if(eim.getIntProperty("snowmanLevel") >= 5) return;
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
if(step > 0) {
|
||||
eim.setIntProperty("snowmanStep", step - 1);
|
||||
}
|
||||
|
||||
eim.dropMessage(5, "The snowman absorbed a Fake Snow Vigor!");
|
||||
if (eim.getIntProperty("snowmanLevel") >= 5) {
|
||||
return;
|
||||
}
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
if (step > 0) {
|
||||
eim.setIntProperty("snowmanStep", step - 1);
|
||||
}
|
||||
|
||||
eim.dropMessage(5, "The snowman absorbed a Fake Snow Vigor!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Holiday PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
// GMS-like event string data thanks to iHealForLove
|
||||
|
||||
@@ -41,314 +41,330 @@ var eventTime = 25; // 25 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4032094, 4032095];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4032094, 4032095];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 3; //Rewards at Hard difficulty
|
||||
itemSet = [1302080, 1002033, 2022153, 2022042, 2020006, 2020009, 2020016, 2020024, 4010006, 4010007, 4020004, 4020005, 4003002];
|
||||
itemQty = [1, 1, 1, 5, 20, 15, 10, 10, 2, 4, 4, 4, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 2; //Rewards at Normal difficulty
|
||||
itemSet = [1302080, 1002033, 2012005, 2012006, 2020002, 2020025, 2020026, 4010003, 4010004, 4010005, 4020002, 4020003, 4020007];
|
||||
itemQty = [1, 1, 15, 15, 15, 10, 10, 3, 3, 3, 3, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 1; //Rewards at Easy difficulty
|
||||
itemSet = [1002033, 2012005, 2012006, 2020002, 2022006, 2022002, 4010000, 4010001, 4010002, 4020000, 4020001, 4020006];
|
||||
itemQty = [1, 15, 15, 10, 5, 5, 2, 2, 2, 2, 2, 2];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [210, 620, 500, 1400, 950, 2200]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 3; //Rewards at Hard difficulty
|
||||
itemSet = [1302080, 1002033, 2022153, 2022042, 2020006, 2020009, 2020016, 2020024, 4010006, 4010007, 4020004, 4020005, 4003002];
|
||||
itemQty = [1, 1, 1, 5, 20, 15, 10, 10, 2, 4, 4, 4, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 2; //Rewards at Normal difficulty
|
||||
itemSet = [1302080, 1002033, 2012005, 2012006, 2020002, 2020025, 2020026, 4010003, 4010004, 4010005, 4020002, 4020003, 4020007];
|
||||
itemQty = [1, 1, 15, 15, 15, 10, 10, 3, 3, 3, 3, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
evLevel = 1; //Rewards at Easy difficulty
|
||||
itemSet = [1002033, 2012005, 2012006, 2020002, 2022006, 2022002, 4010000, 4010001, 4010002, 4020000, 4020001, 4020006];
|
||||
itemQty = [1, 15, 15, 10, 5, 5, 2, 2, 2, 2, 2, 2];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [210, 620, 500, 1400, 950, 2200]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Holiday3_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("statusStg1", "-1");
|
||||
eim.setProperty("missingDrops", "0");
|
||||
eim.setProperty("snowmanLevel", "0");
|
||||
eim.setProperty("snowmanStep", "0");
|
||||
eim.setProperty("spawnedBoss", "0");
|
||||
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.resetPQ(level);
|
||||
mapobj.allowSummonState(false);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Holiday3_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("statusStg1", "-1");
|
||||
eim.setProperty("missingDrops", "0");
|
||||
eim.setProperty("snowmanLevel", "0");
|
||||
eim.setProperty("snowmanStep", "0");
|
||||
eim.setProperty("spawnedBoss", "0");
|
||||
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
mapobj.resetPQ(level);
|
||||
mapobj.allowSummonState(false);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getInstanceMap(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
eim.getInstanceMap(entryMap).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
}
|
||||
|
||||
function snowmanHeal(eim) {
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = eim.getInstanceMap(entryMap).getMonsterById(9400316 + (5 * difficulty) + 5);
|
||||
|
||||
snowman.heal(200 + 200 * difficulty, 0);
|
||||
eim.schedule("snowmanHeal", 10 * 1000);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = eim.getInstanceMap(entryMap).getMonsterById(9400316 + (5 * difficulty) + 5);
|
||||
|
||||
snowman.heal(200 + 200 * difficulty, 0);
|
||||
eim.schedule("snowmanHeal", 10 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.applyEventPlayersItemBuff(2022438);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.applyEventPlayersItemBuff(2022438);
|
||||
}
|
||||
|
||||
function isScrooge(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid >= 9400319 && mobid <= 9400321;
|
||||
var mobid = mob.getId();
|
||||
return mobid >= 9400319 && mobid <= 9400321;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
try {
|
||||
if(eim.isEventCleared()) return;
|
||||
else if(isScrooge(mob)) {
|
||||
eim.giveEventPlayersStageReward(2 * eim.getIntProperty("level"));
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (eim.isEventCleared()) {
|
||||
return;
|
||||
} else if (isScrooge(mob)) {
|
||||
eim.giveEventPlayersStageReward(2 * eim.getIntProperty("level"));
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
return;
|
||||
}
|
||||
|
||||
var rnd = Math.random();
|
||||
var forceDrop = false;
|
||||
if(rnd >= 0.42) { // 42% chance of dropping token
|
||||
var miss = eim.getIntProperty("missingDrops");
|
||||
if(miss < 5) {
|
||||
eim.setIntProperty("missingDrops", miss + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
forceDrop = true;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
var rnd = Math.random();
|
||||
var forceDrop = false;
|
||||
if (rnd >= 0.42) { // 42% chance of dropping token
|
||||
var miss = eim.getIntProperty("missingDrops");
|
||||
if (miss < 5) {
|
||||
eim.setIntProperty("missingDrops", miss + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
eim.setIntProperty("missingDrops", 0);
|
||||
} catch(err) {} // PQ not started yet
|
||||
forceDrop = true;
|
||||
}
|
||||
|
||||
var mapObj = mob.getMap();
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||
var dropper = eim.getPlayers().get(0);
|
||||
|
||||
mapObj.spawnItemDrop(mob, dropper, itemObj, mob.getPosition(), true, false);
|
||||
eim.setIntProperty("missingDrops", 0);
|
||||
} catch (err) {
|
||||
} // PQ not started yet
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
eim.setIntProperty("snowmanStep", 0);
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if(snowmanLevel <= 1) {
|
||||
end(eim);
|
||||
} else {
|
||||
eim.setIntProperty("snowmanLevel", snowmanLevel - 1);
|
||||
}
|
||||
eim.setIntProperty("snowmanStep", 0);
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if (snowmanLevel <= 1) {
|
||||
end(eim);
|
||||
} else {
|
||||
eim.setIntProperty("snowmanLevel", snowmanLevel - 1);
|
||||
}
|
||||
}
|
||||
|
||||
function snowmanEvolve(eim, curLevel) {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400317 + (5 * difficulty) + (curLevel - 1));
|
||||
|
||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||
mapobj.killMonster(snowman, null, false, 2);
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400317 + (5 * difficulty) + (curLevel - 1));
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var snowman = LifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||
|
||||
if(curLevel >= 4) {
|
||||
mapobj.allowSummonState(false);
|
||||
mapobj.killAllMonstersNotFriendly();
|
||||
mapobj.setReactorState();
|
||||
|
||||
eim.giveEventPlayersStageReward(2 * difficulty - 1);
|
||||
eim.showClearEffect();
|
||||
}
|
||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||
mapobj.killMonster(snowman, null, false, 2);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var snowman = LifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||
|
||||
if (curLevel >= 4) {
|
||||
mapobj.allowSummonState(false);
|
||||
mapobj.killAllMonstersNotFriendly();
|
||||
mapobj.setReactorState();
|
||||
|
||||
eim.giveEventPlayersStageReward(2 * difficulty - 1);
|
||||
eim.showClearEffect();
|
||||
}
|
||||
}
|
||||
|
||||
function snowmanSnack(eim) {
|
||||
if(eim.getIntProperty("snowmanLevel") >= 5) return;
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if(step >= 2 + (eim.getIntProperty("level") * snowmanLevel)) {
|
||||
step = 0;
|
||||
snowmanEvolve(eim, snowmanLevel);
|
||||
} else {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400316 + (5 * difficulty) + snowmanLevel);
|
||||
|
||||
snowman.heal(200 + (200 * snowmanLevel), 0);
|
||||
step += 1;
|
||||
}
|
||||
|
||||
eim.setIntProperty("snowmanStep", step);
|
||||
if (eim.getIntProperty("snowmanLevel") >= 5) {
|
||||
return;
|
||||
}
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
var snowmanLevel = eim.getIntProperty("snowmanLevel");
|
||||
|
||||
if (step >= 2 + (eim.getIntProperty("level") * snowmanLevel)) {
|
||||
step = 0;
|
||||
snowmanEvolve(eim, snowmanLevel);
|
||||
} else {
|
||||
var mapobj = eim.getInstanceMap(entryMap);
|
||||
var difficulty = eim.getIntProperty("level");
|
||||
var snowman = mapobj.getMonsterById(9400316 + (5 * difficulty) + snowmanLevel);
|
||||
|
||||
snowman.heal(200 + (200 * snowmanLevel), 0);
|
||||
step += 1;
|
||||
}
|
||||
|
||||
eim.setIntProperty("snowmanStep", step);
|
||||
}
|
||||
|
||||
function snowmanSnackFake(eim) {
|
||||
if(eim.getIntProperty("snowmanLevel") >= 5) return;
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
if(step > 0) {
|
||||
eim.setIntProperty("snowmanStep", step - 1);
|
||||
}
|
||||
|
||||
eim.dropMessage(5, "The snowman absorbed a Fake Snow Vigor!");
|
||||
if (eim.getIntProperty("snowmanLevel") >= 5) {
|
||||
return;
|
||||
}
|
||||
|
||||
var step = eim.getIntProperty("snowmanStep");
|
||||
if (step > 0) {
|
||||
eim.setIntProperty("snowmanStep", step - 1);
|
||||
}
|
||||
|
||||
eim.dropMessage(5, "The snowman absorbed a Fake Snow Vigor!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Horntail Battle
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 6, maxPlayers = 30;
|
||||
@@ -39,7 +39,7 @@ var eventTime = 120; // 120 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
@@ -47,40 +47,46 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = []; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = []; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -102,15 +108,15 @@ function setup(channel) {
|
||||
map = eim.getInstanceMap(240060000);
|
||||
mob = LifeFactory.getMonster(8810000);
|
||||
map.spawnMonsterOnGroundBelow(mob, new Point(960, 120));
|
||||
|
||||
|
||||
map = eim.getInstanceMap(240060100);
|
||||
mob = LifeFactory.getMonster(8810001);
|
||||
map.spawnMonsterOnGroundBelow(mob, new Point(-420, 120));
|
||||
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -126,12 +132,11 @@ function scheduledTimeout(eim) {
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
@@ -147,8 +152,7 @@ function playerRevive(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
@@ -159,16 +163,15 @@ function playerDisconnected(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty (eim, player) {}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty (eim) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
@@ -209,14 +212,14 @@ function isHorntail(mob) {
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isHorntail(mob)) {
|
||||
if (isHorntail(mob)) {
|
||||
eim.setIntProperty("defeatedBoss", 1);
|
||||
eim.showClearEffect(mob.getMap().getId());
|
||||
eim.clearPQ();
|
||||
|
||||
|
||||
eim.dispatchRaiseQuestMobCount(8810018, 240060200);
|
||||
mob.getMap().broadcastHorntailVictory();
|
||||
} else if(isHorntailHead(mob)) {
|
||||
} else if (isHorntailHead(mob)) {
|
||||
var killed = eim.getIntProperty("defeatedHead");
|
||||
eim.setIntProperty("defeatedHead", killed + 1);
|
||||
eim.showClearEffect(mob.getMap().getId());
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Horntail PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 6, maxPlayers = 6;
|
||||
@@ -39,95 +39,105 @@ var eventTime = 25; // 25 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001087, 4001088, 4001089, 4001090, 4001091, 4001092, 4001093];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001087, 4001088, 4001089, 4001090, 4001091, 4001092, 4001093];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("PreHorntail" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.getInstanceMap(240050000).resetPQ(level);
|
||||
eim.getInstanceMap(240050100).resetPQ(level);
|
||||
eim.getInstanceMap(240050101).resetPQ(level);
|
||||
eim.getInstanceMap(240050102).resetPQ(level);
|
||||
eim.getInstanceMap(240050103).resetPQ(level);
|
||||
eim.getInstanceMap(240050104).resetPQ(level);
|
||||
eim.getInstanceMap(240050105).resetPQ(level);
|
||||
eim.getInstanceMap(240050200).resetPQ(level);
|
||||
eim.getInstanceMap(240050300).resetPQ(level);
|
||||
eim.getInstanceMap(240050310).resetPQ(level);
|
||||
|
||||
eim.getInstanceMap(240050101).getReactorByName("passKey1").setEventState(0);
|
||||
eim.getInstanceMap(240050102).getReactorByName("passKey2").setEventState(1);
|
||||
eim.getInstanceMap(240050103).getReactorByName("passKey3").setEventState(2);
|
||||
eim.getInstanceMap(240050104).getReactorByName("passKey4").setEventState(3);
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
return eim;
|
||||
var eim = em.newInstance("PreHorntail" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.getInstanceMap(240050000).resetPQ(level);
|
||||
eim.getInstanceMap(240050100).resetPQ(level);
|
||||
eim.getInstanceMap(240050101).resetPQ(level);
|
||||
eim.getInstanceMap(240050102).resetPQ(level);
|
||||
eim.getInstanceMap(240050103).resetPQ(level);
|
||||
eim.getInstanceMap(240050104).resetPQ(level);
|
||||
eim.getInstanceMap(240050105).resetPQ(level);
|
||||
eim.getInstanceMap(240050200).resetPQ(level);
|
||||
eim.getInstanceMap(240050300).resetPQ(level);
|
||||
eim.getInstanceMap(240050310).resetPQ(level);
|
||||
|
||||
eim.getInstanceMap(240050101).getReactorByName("passKey1").setEventState(0);
|
||||
eim.getInstanceMap(240050102).getReactorByName("passKey2").setEventState(1);
|
||||
eim.getInstanceMap(240050103).getReactorByName("passKey3").setEventState(2);
|
||||
eim.getInstanceMap(240050104).getReactorByName("passKey4").setEventState(3);
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -135,100 +145,100 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.warpEventTeam(clearMap);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.warpEventTeam(clearMap);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Kerning PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 4;
|
||||
@@ -39,180 +39,190 @@ var eventTime = 30; // 30 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001007, 4001008];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001007, 4001008];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2040505, 2040514, 2040502, 2040002, 2040602, 2040402, 2040802, 1032009, 1032004, 1032005, 1032006, 1032007, 1032010, 1032002, 1002026, 1002089, 1002090, 2000003, 2000001, 2000002, 2000006, 2022003, 2022000, 2000004, 4003000, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4020000, 4020001, 4020002, 4020003, 4020004, 4020005, 4020006, 4020007, 4020008];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 80, 80, 80, 50, 5, 15, 15, 30, 15, 15, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [100, 200, 400, 800, 1500]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2040505, 2040514, 2040502, 2040002, 2040602, 2040402, 2040802, 1032009, 1032004, 1032005, 1032006, 1032007, 1032010, 1032002, 1002026, 1002089, 1002090, 2000003, 2000001, 2000002, 2000006, 2022003, 2022000, 2000004, 4003000, 4010000, 4010001, 4010002, 4010003, 4010004, 4010005, 4010006, 4010007, 4020000, 4020001, 4020002, 4020003, 4020004, 4020005, 4020006, 4020007, 4020008];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 80, 80, 80, 50, 5, 15, 15, 30, 15, 15, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 3];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [100, 200, 400, 800, 1500]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Kerning" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Kerning" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(103000800).instanceMapRespawn();
|
||||
eim.getMapInstance(103000805).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(103000800).instanceMapRespawn();
|
||||
eim.getMapInstance(103000805).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var returnTo = new Array(103000100, 103000310);
|
||||
var rideTo = new Array(103000310, 103000100);
|
||||
var trainRide = new Array(103000301, 103000302);
|
||||
var returnTo = [103000100, 103000310];
|
||||
var rideTo = [103000310, 103000100];
|
||||
var trainRide = [103000301, 103000302];
|
||||
var myRide;
|
||||
var returnMap;
|
||||
var exitMap;
|
||||
@@ -15,51 +15,51 @@ function init() {
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("KerningTrain_" + lobbyid);
|
||||
return eim;
|
||||
var eim = em.newInstance("KerningTrain_" + lobbyid);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
if (player.getMapId() == returnTo[0]) {
|
||||
myRide = 0;
|
||||
} else {
|
||||
myRide = 1;
|
||||
}
|
||||
|
||||
exitMap = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]);
|
||||
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
||||
onRide = eim.getMapFactory().getMap(trainRide[myRide]);
|
||||
player.changeMap(onRide, onRide.getPortal(0));
|
||||
if (player.getMapId() == returnTo[0]) {
|
||||
myRide = 0;
|
||||
} else {
|
||||
myRide = 1;
|
||||
}
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(rideTime / 1000));
|
||||
player.sendPacket(PacketCreator.earnTitleMessage("The next stop is at Kerning " + (myRide == 0 ? "Square" : "Subway") + " Station. The exit is to your left."));
|
||||
eim.schedule("timeOut", rideTime);
|
||||
exitMap = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]);
|
||||
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
||||
onRide = eim.getMapFactory().getMap(trainRide[myRide]);
|
||||
player.changeMap(onRide, onRide.getPortal(0));
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.getClock(rideTime / 1000));
|
||||
player.sendPacket(PacketCreator.earnTitleMessage("The next stop is at Kerning " + (myRide == 0 ? "Square" : "Subway") + " Station. The exit is to your left."));
|
||||
eim.schedule("timeOut", rideTime);
|
||||
}
|
||||
|
||||
function timeOut(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player, success) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(success ? exitMap.getId() : returnMap.getId(), 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(success ? exitMap.getId() : returnMap.getId(), 0);
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i), true);
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i), true);
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
playerExit(eim, player, false);
|
||||
playerExit(eim, player, false);
|
||||
}
|
||||
|
||||
function cancelSchedule() {}
|
||||
|
||||
@@ -4,87 +4,88 @@ var eventTimer = 1000 * 60 * timeLimit;
|
||||
var exitMap = 106021400;
|
||||
var eventMap = 106021500;
|
||||
|
||||
function init(){}
|
||||
function init() {}
|
||||
|
||||
function setup(difficulty, lobbyId){
|
||||
var eim = em.newInstance("KingPepe_" +lobbyId);
|
||||
eim.getInstanceMap(eventMap).resetFully();
|
||||
eim.getInstanceMap(eventMap).allowSummonState(false);
|
||||
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
function setup(difficulty, lobbyId) {
|
||||
var eim = em.newInstance("KingPepe_" + lobbyId);
|
||||
eim.getInstanceMap(eventMap).resetFully();
|
||||
eim.getInstanceMap(eventMap).allowSummonState(false);
|
||||
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim){}
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function playerEntry(eim, player){
|
||||
var yetiMap = eim.getMapInstance(eventMap);
|
||||
player.changeMap(yetiMap, yetiMap.getPortal(1));
|
||||
function playerEntry(eim, player) {
|
||||
var yetiMap = eim.getMapInstance(eventMap);
|
||||
player.changeMap(yetiMap, yetiMap.getPortal(1));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim){
|
||||
var party = eim.getPlayers();
|
||||
function scheduledTimeout(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++)
|
||||
playerExit(eim, party.get(i));
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
|
||||
eim.dispose();
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerDead(eim, player){}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerDisconnected(eim, player){
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId){
|
||||
return -1;
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function leftParty(eim, player){}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty(eim){}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function playerUnregistered(eim, player){}
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 2);
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 2);
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if (mapid != eventMap) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, chr)) {
|
||||
eim.unregisterPlayer(chr);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(chr);
|
||||
if (mapid != eventMap) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, chr)) {
|
||||
eim.unregisterPlayer(chr);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(chr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function cancelSchedule(){}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(){}
|
||||
function dispose() {}
|
||||
|
||||
function clearPQ(eim){}
|
||||
function clearPQ(eim) {}
|
||||
|
||||
function monsterKilled(mob, eim){}
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function allMonstersDead(eim){}
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Latanica
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 6;
|
||||
@@ -39,80 +39,90 @@ var eventTime = 10; // 10 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Latanica" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(541010100).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Latanica" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(541010100).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -120,111 +130,111 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isLatanica(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == 9420513;
|
||||
var mobid = mob.getId();
|
||||
return mobid == 9420513;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isLatanica(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
if (isLatanica(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Ludibrium Maze PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
@@ -39,82 +39,92 @@ var eventTime = 15; // 15 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001106];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001106];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [1442017, 1322025, 1032013, 1302016, 1072263, 1032043, 2000005, 2000004, 2001001, 2001002, 2020008, 2020010, 2030008, 2030010, 2030009, 2022000, 2001000, 2022019, 2020007, 2020006, 2020009, 2000006, 2040601, 2040605, 2040602, 2041027, 2041028, 2041004, 2041029, 2041017, 2041020, 2040008, 2040001, 2040009, 2040002, 2040504, 2040511, 2040505, 2040501, 2040904, 2040901, 2040905, 2040902, 2040404, 2040401, 2040405, 2040402];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 20, 20, 20, 20, 20, 50, 50, 50, 100, 100, 100, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [1442017, 1322025, 1032013, 1302016, 1072263, 1032043, 2000005, 2000004, 2001001, 2001002, 2020008, 2020010, 2030008, 2030010, 2030009, 2022000, 2001000, 2022019, 2020007, 2020006, 2020009, 2000006, 2040601, 2040605, 2040602, 2041027, 2041028, 2041004, 2041029, 2041017, 2041020, 2040008, 2040001, 2040009, 2040002, 2040504, 2040511, 2040505, 2040501, 2040904, 2040901, 2040905, 2040902, 2040404, 2040401, 2040405, 2040402];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 20, 20, 20, 20, 20, 50, 50, 50, 100, 100, 100, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("LudiMaze" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
for(var i = 809050000; i <= 809050016; i++) {
|
||||
eim.getInstanceMap(i).resetPQ(level);
|
||||
eim.getInstanceMap(i).shuffleReactors();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("LudiMaze" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
for (var i = 809050000; i <= 809050016; i++) {
|
||||
eim.getInstanceMap(i).resetPQ(level);
|
||||
eim.getInstanceMap(i).shuffleReactors();
|
||||
}
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -122,102 +132,102 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var rand = Math.floor(Math.random() * 15);
|
||||
|
||||
var map = eim.getMapInstance(entryMap + rand);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var rand = Math.floor(Math.random() * 15);
|
||||
|
||||
var map = eim.getMapInstance(entryMap + rand);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.warpEventTeam(809050016);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.warpEventTeam(809050016);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Ludibrium PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 5, maxPlayers = 6;
|
||||
@@ -39,112 +39,122 @@ var eventTime = 45; // 45 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001022, 4001023];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001022, 4001023];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2040602, 2040802, 2040002, 2040402, 2040505, 2040502, 2040601, 2044501, 2044701, 2044601, 2041019, 2041016, 2041022, 2041013, 2041007, 2043301, 2040301, 2040801, 2040001, 2040004, 2040504, 2040501, 2040513, 2043101, 2044201, 2044401, 2040701, 2044301, 2043801, 2040401, 2043701, 2040803, 2000003, 2000002, 2000004, 2000006, 2000005, 2022000, 2001001, 2001002, 2022003, 2001000, 2020014, 2020015, 4003000, 1102003, 1102004, 1102000, 1102002, 1102001, 1102011, 1102012, 1102013, 1102014, 1032011, 1032012, 1032013, 1032002, 1032008, 1032011, 2070011, 4010003, 4010000, 4010006, 4010002, 4010005, 4010004, 4010001, 4020001, 4020002, 4020008, 4020007, 4020003, 4020000, 4020004, 4020005, 4020006];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 85, 85, 10, 60, 2, 20, 15, 15, 20, 15, 10, 5, 35, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 6, 10, 10, 10, 10, 10, 10, 4, 4, 10, 10, 10, 10, 10];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [210, 2520, 2940, 3360, 3770, 0, 4620, 5040, 5950]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2040602, 2040802, 2040002, 2040402, 2040505, 2040502, 2040601, 2044501, 2044701, 2044601, 2041019, 2041016, 2041022, 2041013, 2041007, 2043301, 2040301, 2040801, 2040001, 2040004, 2040504, 2040501, 2040513, 2043101, 2044201, 2044401, 2040701, 2044301, 2043801, 2040401, 2043701, 2040803, 2000003, 2000002, 2000004, 2000006, 2000005, 2022000, 2001001, 2001002, 2022003, 2001000, 2020014, 2020015, 4003000, 1102003, 1102004, 1102000, 1102002, 1102001, 1102011, 1102012, 1102013, 1102014, 1032011, 1032012, 1032013, 1032002, 1032008, 1032011, 2070011, 4010003, 4010000, 4010006, 4010002, 4010005, 4010004, 4010001, 4020001, 4020002, 4020008, 4020007, 4020003, 4020000, 4020004, 4020005, 4020006];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 85, 85, 10, 60, 2, 20, 15, 15, 20, 15, 10, 5, 35, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 6, 10, 10, 10, 10, 10, 10, 4, 4, 10, 10, 10, 10, 10];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [210, 2520, 2940, 3360, 3770, 0, 4620, 5040, 5950]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Ludi" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("statusStg1", -1);
|
||||
eim.setProperty("statusStg2", -1);
|
||||
eim.setProperty("statusStg3", -1);
|
||||
eim.setProperty("statusStg4", -1);
|
||||
eim.setProperty("statusStg5", -1);
|
||||
eim.setProperty("statusStg6", -1);
|
||||
eim.setProperty("statusStg7", -1);
|
||||
eim.setProperty("statusStg8", -1);
|
||||
eim.setProperty("statusStg9", -1);
|
||||
|
||||
eim.getInstanceMap(922010100).resetPQ(level);
|
||||
eim.getInstanceMap(922010200).resetPQ(level);
|
||||
eim.getInstanceMap(922010201).resetPQ(level);
|
||||
eim.getInstanceMap(922010300).resetPQ(level);
|
||||
eim.getInstanceMap(922010400).resetPQ(level);
|
||||
eim.getInstanceMap(922010401).resetPQ(level);
|
||||
eim.getInstanceMap(922010402).resetPQ(level);
|
||||
eim.getInstanceMap(922010403).resetPQ(level);
|
||||
eim.getInstanceMap(922010404).resetPQ(level);
|
||||
eim.getInstanceMap(922010405).resetPQ(level);
|
||||
eim.getInstanceMap(922010500).resetPQ(level);
|
||||
eim.getInstanceMap(922010500).resetPQ(level);
|
||||
eim.getInstanceMap(922010501).resetPQ(level);
|
||||
eim.getInstanceMap(922010502).resetPQ(level);
|
||||
eim.getInstanceMap(922010503).resetPQ(level);
|
||||
eim.getInstanceMap(922010504).resetPQ(level);
|
||||
eim.getInstanceMap(922010505).resetPQ(level);
|
||||
eim.getInstanceMap(922010506).resetPQ(level);
|
||||
eim.getInstanceMap(922010600).resetPQ(level);
|
||||
eim.getInstanceMap(922010700).resetPQ(level);
|
||||
eim.getInstanceMap(922010800).resetPQ(level);
|
||||
eim.getInstanceMap(922010900).resetPQ(level);
|
||||
eim.getInstanceMap(922011000).resetPQ(level);
|
||||
eim.getInstanceMap(922011100).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Ludi" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("statusStg1", -1);
|
||||
eim.setProperty("statusStg2", -1);
|
||||
eim.setProperty("statusStg3", -1);
|
||||
eim.setProperty("statusStg4", -1);
|
||||
eim.setProperty("statusStg5", -1);
|
||||
eim.setProperty("statusStg6", -1);
|
||||
eim.setProperty("statusStg7", -1);
|
||||
eim.setProperty("statusStg8", -1);
|
||||
eim.setProperty("statusStg9", -1);
|
||||
|
||||
eim.getInstanceMap(922010100).resetPQ(level);
|
||||
eim.getInstanceMap(922010200).resetPQ(level);
|
||||
eim.getInstanceMap(922010201).resetPQ(level);
|
||||
eim.getInstanceMap(922010300).resetPQ(level);
|
||||
eim.getInstanceMap(922010400).resetPQ(level);
|
||||
eim.getInstanceMap(922010401).resetPQ(level);
|
||||
eim.getInstanceMap(922010402).resetPQ(level);
|
||||
eim.getInstanceMap(922010403).resetPQ(level);
|
||||
eim.getInstanceMap(922010404).resetPQ(level);
|
||||
eim.getInstanceMap(922010405).resetPQ(level);
|
||||
eim.getInstanceMap(922010500).resetPQ(level);
|
||||
eim.getInstanceMap(922010500).resetPQ(level);
|
||||
eim.getInstanceMap(922010501).resetPQ(level);
|
||||
eim.getInstanceMap(922010502).resetPQ(level);
|
||||
eim.getInstanceMap(922010503).resetPQ(level);
|
||||
eim.getInstanceMap(922010504).resetPQ(level);
|
||||
eim.getInstanceMap(922010505).resetPQ(level);
|
||||
eim.getInstanceMap(922010506).resetPQ(level);
|
||||
eim.getInstanceMap(922010600).resetPQ(level);
|
||||
eim.getInstanceMap(922010700).resetPQ(level);
|
||||
eim.getInstanceMap(922010800).resetPQ(level);
|
||||
eim.getInstanceMap(922010900).resetPQ(level);
|
||||
eim.getInstanceMap(922011000).resetPQ(level);
|
||||
eim.getInstanceMap(922011100).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -152,107 +162,106 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
if(eim.getProperty("9stageclear") != null) {
|
||||
var curStage = 922011000, toStage = 922011100;
|
||||
eim.warpEventTeam(curStage, toStage);
|
||||
}
|
||||
else {
|
||||
end(eim);
|
||||
}
|
||||
if (eim.getProperty("9stageclear") != null) {
|
||||
var curStage = 922011000, toStage = 922011100;
|
||||
eim.warpEventTeam(curStage, toStage);
|
||||
} else {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.startEventTimer(1 * 60000);
|
||||
eim.warpEventTeam(922011000);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.startEventTimer(1 * 60000);
|
||||
eim.warpEventTeam(922011000);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -11,159 +11,164 @@ var maxMapId = 106021600;
|
||||
|
||||
var mobId = 3300008; //Prime Minister
|
||||
|
||||
function init(){}
|
||||
function init() {}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(difficulty, lobbyId){
|
||||
var eim = em.newInstance("MK_PrimeMinister_" +lobbyId);
|
||||
respawn(eim);
|
||||
|
||||
return eim;
|
||||
function setup(difficulty, lobbyId) {
|
||||
var eim = em.newInstance("MK_PrimeMinister_" + lobbyId);
|
||||
respawn(eim);
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim){}
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function primeMinisterCheck(eim) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
|
||||
var pIter = map.getAllPlayers().iterator();
|
||||
while (pIter.hasNext()) {
|
||||
var player = pIter.next();
|
||||
if (player.getQuestStatus(2333) == 1 && player.getAbstractPlayerInteraction().getQuestProgressInt(2333, mobId) == 0) {
|
||||
return true;
|
||||
}
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
|
||||
var pIter = map.getAllPlayers().iterator();
|
||||
while (pIter.hasNext()) {
|
||||
var player = pIter.next();
|
||||
if (player.getQuestStatus(2333) == 1 && player.getAbstractPlayerInteraction().getQuestProgressInt(2333, mobId) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
function respawn(eim){
|
||||
if (primeMinisterCheck(eim)) {
|
||||
eim.startEventTimer(eventTime);
|
||||
function respawn(eim) {
|
||||
if (primeMinisterCheck(eim)) {
|
||||
eim.startEventTimer(eventTime);
|
||||
|
||||
var weddinghall = eim.getMapInstance(entryMap);
|
||||
weddinghall.getPortal(1).setPortalState(false);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
weddinghall.spawnMonsterOnGroundBelow(LifeFactory.getMonster(mobId), new Point(292, 143));
|
||||
} else {
|
||||
eim.schedule("respawn", 10000);
|
||||
}
|
||||
var weddinghall = eim.getMapInstance(entryMap);
|
||||
weddinghall.getPortal(1).setPortalState(false);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
weddinghall.spawnMonsterOnGroundBelow(LifeFactory.getMonster(mobId), new Point(292, 143));
|
||||
} else {
|
||||
eim.schedule("respawn", 10000);
|
||||
}
|
||||
}
|
||||
|
||||
function playerEntry(eim, player){
|
||||
var weddinghall = eim.getMapInstance(entryMap);
|
||||
player.changeMap(weddinghall, weddinghall.getPortal(1));
|
||||
function playerEntry(eim, player) {
|
||||
var weddinghall = eim.getMapInstance(entryMap);
|
||||
player.changeMap(weddinghall, weddinghall.getPortal(1));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim){
|
||||
var party = eim.getPlayers();
|
||||
function scheduledTimeout(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++)
|
||||
playerExit(eim, party.get(i));
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
|
||||
eim.dispose();
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player){}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerDisconnected(eim, player){
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId){
|
||||
return -1;
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function leftParty(eim, player){}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty(eim){}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function playerUnregistered(eim, player){}
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 2);
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 2);
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function removePlayer(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(entryMap);
|
||||
function removePlayer(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(entryMap);
|
||||
}
|
||||
|
||||
function cancelSchedule(){}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(){}
|
||||
function dispose() {}
|
||||
|
||||
function clearPQ(eim){
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim){
|
||||
if (mob.getId() == mobId) {
|
||||
eim.getMapInstance(entryMap).getPortal(1).setPortalState(true);
|
||||
function monsterKilled(mob, eim) {
|
||||
if (mob.getId() == mobId) {
|
||||
eim.getMapInstance(entryMap).getPortal(1).setPortalState(true);
|
||||
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim){}
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
|
||||
@@ -11,150 +11,155 @@ var maxMapId = 106021601;
|
||||
|
||||
var mobId = 3300008; //Prime Minister
|
||||
|
||||
function init(){}
|
||||
function init() {}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(difficulty, lobbyId){
|
||||
var eim = em.newInstance("MK_PrimeMinister2_" +lobbyId);
|
||||
respawn(eim);
|
||||
|
||||
return eim;
|
||||
function setup(difficulty, lobbyId) {
|
||||
var eim = em.newInstance("MK_PrimeMinister2_" + lobbyId);
|
||||
respawn(eim);
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim){}
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function primeMinisterCheck(eim) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
return !map.getAllPlayers().isEmpty();
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
return !map.getAllPlayers().isEmpty();
|
||||
}
|
||||
|
||||
function respawn(eim){
|
||||
if (primeMinisterCheck(eim)) {
|
||||
eim.startEventTimer(eventTime);
|
||||
function respawn(eim) {
|
||||
if (primeMinisterCheck(eim)) {
|
||||
eim.startEventTimer(eventTime);
|
||||
|
||||
var weddinghall = eim.getMapInstance(entryMap);
|
||||
weddinghall.getPortal(1).setPortalState(false);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
weddinghall.spawnMonsterOnGroundBelow(LifeFactory.getMonster(mobId), new Point(292, 143));
|
||||
} else {
|
||||
eim.schedule("respawn", 10000);
|
||||
}
|
||||
var weddinghall = eim.getMapInstance(entryMap);
|
||||
weddinghall.getPortal(1).setPortalState(false);
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
weddinghall.spawnMonsterOnGroundBelow(LifeFactory.getMonster(mobId), new Point(292, 143));
|
||||
} else {
|
||||
eim.schedule("respawn", 10000);
|
||||
}
|
||||
}
|
||||
|
||||
function playerEntry(eim, player){
|
||||
var weddinghall = eim.getMapInstance(entryMap);
|
||||
player.changeMap(weddinghall, weddinghall.getPortal(1));
|
||||
function playerEntry(eim, player) {
|
||||
var weddinghall = eim.getMapInstance(entryMap);
|
||||
player.changeMap(weddinghall, weddinghall.getPortal(1));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim){
|
||||
var party = eim.getPlayers();
|
||||
function scheduledTimeout(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++)
|
||||
playerExit(eim, party.get(i));
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
|
||||
eim.dispose();
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player){}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerDisconnected(eim, player){
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId){
|
||||
return -1;
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function leftParty(eim, player){}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty(eim){}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function playerUnregistered(eim, player){}
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 2);
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 2);
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function removePlayer(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(entryMap);
|
||||
function removePlayer(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(entryMap);
|
||||
}
|
||||
|
||||
function cancelSchedule(){}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(){}
|
||||
function dispose() {}
|
||||
|
||||
function clearPQ(eim){
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim){
|
||||
if (mob.getId() == mobId) {
|
||||
eim.getMapInstance(entryMap).getPortal(1).setPortalState(true);
|
||||
function monsterKilled(mob, eim) {
|
||||
if (mob.getId() == mobId) {
|
||||
eim.getMapInstance(entryMap).getPortal(1).setPortalState(true);
|
||||
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim){}
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Magatia PQ (Alcadno)
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 4, maxPlayers = 4;
|
||||
@@ -39,121 +39,131 @@ var eventTime = 45; // 45 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001130, 4001131, 4001132, 4001133, 4001134, 4001135];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001130, 4001131, 4001132, 4001133, 4001134, 4001135];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2000003, 2000002, 2000004, 2000005, 2022003, 1032016, 1032015, 1032014, 2041212, 2041020, 2040502, 2041016, 2044701, 2040301, 2043201, 2040501, 2040704, 2044001, 2043701, 2040803, 1102026, 1102028, 1102029];
|
||||
itemQty = [100, 100, 20, 10, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [0, 10000, 20000, 0, 20000, 20000, 0, 0]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2000003, 2000002, 2000004, 2000005, 2022003, 1032016, 1032015, 1032014, 2041212, 2041020, 2040502, 2041016, 2044701, 2040301, 2043201, 2040501, 2040704, 2044001, 2043701, 2040803, 1102026, 1102028, 1102029];
|
||||
itemQty = [100, 100, 20, 10, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [0, 10000, 20000, 0, 20000, 20000, 0, 0]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("MagatiaA" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setIntProperty("isAlcadno", 1);
|
||||
|
||||
eim.setIntProperty("escortFail", 0);
|
||||
eim.setIntProperty("yuleteTimeout", 0);
|
||||
eim.setIntProperty("yuleteTalked", 0);
|
||||
eim.setIntProperty("yuletePassed", 0);
|
||||
eim.setIntProperty("npcShocked", 0);
|
||||
eim.setIntProperty("normalClear", 0);
|
||||
|
||||
eim.setIntProperty("statusStg1", 0);
|
||||
eim.setIntProperty("statusStg2", 0);
|
||||
eim.setIntProperty("statusStg3", 0);
|
||||
eim.setIntProperty("statusStg4", 0);
|
||||
eim.setIntProperty("statusStg5", 0);
|
||||
eim.setIntProperty("statusStg6", 0);
|
||||
eim.setIntProperty("statusStg7", 0);
|
||||
|
||||
eim.getInstanceMap(926110000).resetPQ(level);
|
||||
eim.getInstanceMap(926110001).resetPQ(level);
|
||||
eim.getInstanceMap(926110100).resetPQ(level);
|
||||
eim.getInstanceMap(926110200).resetPQ(level);
|
||||
eim.getInstanceMap(926110201).resetPQ(level);
|
||||
eim.getInstanceMap(926110202).resetPQ(level);
|
||||
eim.getInstanceMap(926110203).resetPQ(level);
|
||||
eim.getInstanceMap(926110300).resetPQ(level);
|
||||
eim.getInstanceMap(926110301).resetPQ(level);
|
||||
eim.getInstanceMap(926110302).resetPQ(level);
|
||||
eim.getInstanceMap(926110303).resetPQ(level);
|
||||
eim.getInstanceMap(926110304).resetPQ(level);
|
||||
eim.getInstanceMap(926110400).resetPQ(level);
|
||||
eim.getInstanceMap(926110401).resetPQ(level);
|
||||
eim.getInstanceMap(926110500).resetPQ(level);
|
||||
eim.getInstanceMap(926110600).resetPQ(level);
|
||||
eim.getInstanceMap(926110700).resetPQ(level);
|
||||
|
||||
eim.getInstanceMap(926110201).shuffleReactors(2518000, 2612004);
|
||||
eim.getInstanceMap(926110202).shuffleReactors(2518000, 2612004);
|
||||
var eim = em.newInstance("MagatiaA" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.spawnNpc(2112010, new Point(252, 243), eim.getInstanceMap(926110203));
|
||||
eim.spawnNpc(2112010, new Point(200, 100), eim.getInstanceMap(926110401));
|
||||
eim.spawnNpc(2112011, new Point(200, 100), eim.getInstanceMap(926110500));
|
||||
eim.spawnNpc(2112018, new Point(200, 100), eim.getInstanceMap(926110600));
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
eim.setIntProperty("isAlcadno", 1);
|
||||
|
||||
eim.setIntProperty("escortFail", 0);
|
||||
eim.setIntProperty("yuleteTimeout", 0);
|
||||
eim.setIntProperty("yuleteTalked", 0);
|
||||
eim.setIntProperty("yuletePassed", 0);
|
||||
eim.setIntProperty("npcShocked", 0);
|
||||
eim.setIntProperty("normalClear", 0);
|
||||
|
||||
eim.setIntProperty("statusStg1", 0);
|
||||
eim.setIntProperty("statusStg2", 0);
|
||||
eim.setIntProperty("statusStg3", 0);
|
||||
eim.setIntProperty("statusStg4", 0);
|
||||
eim.setIntProperty("statusStg5", 0);
|
||||
eim.setIntProperty("statusStg6", 0);
|
||||
eim.setIntProperty("statusStg7", 0);
|
||||
|
||||
eim.getInstanceMap(926110000).resetPQ(level);
|
||||
eim.getInstanceMap(926110001).resetPQ(level);
|
||||
eim.getInstanceMap(926110100).resetPQ(level);
|
||||
eim.getInstanceMap(926110200).resetPQ(level);
|
||||
eim.getInstanceMap(926110201).resetPQ(level);
|
||||
eim.getInstanceMap(926110202).resetPQ(level);
|
||||
eim.getInstanceMap(926110203).resetPQ(level);
|
||||
eim.getInstanceMap(926110300).resetPQ(level);
|
||||
eim.getInstanceMap(926110301).resetPQ(level);
|
||||
eim.getInstanceMap(926110302).resetPQ(level);
|
||||
eim.getInstanceMap(926110303).resetPQ(level);
|
||||
eim.getInstanceMap(926110304).resetPQ(level);
|
||||
eim.getInstanceMap(926110400).resetPQ(level);
|
||||
eim.getInstanceMap(926110401).resetPQ(level);
|
||||
eim.getInstanceMap(926110500).resetPQ(level);
|
||||
eim.getInstanceMap(926110600).resetPQ(level);
|
||||
eim.getInstanceMap(926110700).resetPQ(level);
|
||||
|
||||
eim.getInstanceMap(926110201).shuffleReactors(2518000, 2612004);
|
||||
eim.getInstanceMap(926110202).shuffleReactors(2518000, 2612004);
|
||||
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.spawnNpc(2112010, new Point(252, 243), eim.getInstanceMap(926110203));
|
||||
eim.spawnNpc(2112010, new Point(200, 100), eim.getInstanceMap(926110401));
|
||||
eim.spawnNpc(2112011, new Point(200, 100), eim.getInstanceMap(926110500));
|
||||
eim.spawnNpc(2112018, new Point(200, 100), eim.getInstanceMap(926110600));
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function shuffle(array) {
|
||||
@@ -176,274 +186,273 @@ function shuffle(array) {
|
||||
}
|
||||
|
||||
function generateStg6Combo(eim) { // thanks Chloek3, seth1 for stating generated sequences are supposed to be linked
|
||||
var matrix = [];
|
||||
|
||||
var matrix = [];
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
matrix.push([]);
|
||||
}
|
||||
|
||||
for (var j = 0; j < 10; j++) {
|
||||
var array = [0, 1, 2, 3];
|
||||
array = shuffle(array);
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
matrix.push([]);
|
||||
matrix[i].push(array[i]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
var comb = "";
|
||||
for (var j = 0; j < 10; j++) {
|
||||
var array = [0, 1, 2, 3];
|
||||
array = shuffle(array);
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
matrix[i].push(array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
var comb = "";
|
||||
for(var j = 0; j < 10; j++) {
|
||||
var r = matrix[i][j];
|
||||
comb += r.toString();
|
||||
}
|
||||
|
||||
eim.setProperty("stage6_comb" + (i + 1), comb);
|
||||
var r = matrix[i][j];
|
||||
comb += r.toString();
|
||||
}
|
||||
|
||||
eim.setProperty("stage6_comb" + (i + 1), comb);
|
||||
}
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
eim.setIntProperty("escortFail", 0); // refresh friendly status
|
||||
|
||||
var books = [-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 2, 3];
|
||||
shuffle(books);
|
||||
|
||||
eim.setIntProperty("stg1_b0", books[0]);
|
||||
eim.setIntProperty("stg1_b1", books[1]);
|
||||
eim.setIntProperty("stg1_b2", books[2]);
|
||||
eim.setIntProperty("stg1_b3", books[3]);
|
||||
eim.setIntProperty("stg1_b4", books[4]);
|
||||
eim.setIntProperty("stg1_b5", books[5]);
|
||||
eim.setIntProperty("stg1_b6", books[6]);
|
||||
eim.setIntProperty("stg1_b7", books[7]);
|
||||
eim.setIntProperty("stg1_b8", books[8]);
|
||||
eim.setIntProperty("stg1_b9", books[9]);
|
||||
eim.setIntProperty("stg1_b10", books[10]);
|
||||
eim.setIntProperty("stg1_b11", books[11]);
|
||||
eim.setIntProperty("stg1_b12", books[12]);
|
||||
eim.setIntProperty("stg1_b13", books[13]);
|
||||
eim.setIntProperty("stg1_b14", books[14]);
|
||||
eim.setIntProperty("stg1_b15", books[15]);
|
||||
eim.setIntProperty("stg1_b16", books[16]);
|
||||
eim.setIntProperty("stg1_b17", books[17]);
|
||||
eim.setIntProperty("stg1_b18", books[18]);
|
||||
eim.setIntProperty("stg1_b19", books[19]);
|
||||
eim.setIntProperty("stg1_b20", books[20]);
|
||||
eim.setIntProperty("stg1_b21", books[21]);
|
||||
eim.setIntProperty("stg1_b22", books[22]);
|
||||
eim.setIntProperty("stg1_b23", books[23]);
|
||||
eim.setIntProperty("stg1_b24", books[24]);
|
||||
eim.setIntProperty("stg1_b25", books[25]);
|
||||
eim.setIntProperty("escortFail", 0); // refresh friendly status
|
||||
|
||||
var books = [-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 2, 3];
|
||||
shuffle(books);
|
||||
|
||||
eim.setIntProperty("stg1_b0", books[0]);
|
||||
eim.setIntProperty("stg1_b1", books[1]);
|
||||
eim.setIntProperty("stg1_b2", books[2]);
|
||||
eim.setIntProperty("stg1_b3", books[3]);
|
||||
eim.setIntProperty("stg1_b4", books[4]);
|
||||
eim.setIntProperty("stg1_b5", books[5]);
|
||||
eim.setIntProperty("stg1_b6", books[6]);
|
||||
eim.setIntProperty("stg1_b7", books[7]);
|
||||
eim.setIntProperty("stg1_b8", books[8]);
|
||||
eim.setIntProperty("stg1_b9", books[9]);
|
||||
eim.setIntProperty("stg1_b10", books[10]);
|
||||
eim.setIntProperty("stg1_b11", books[11]);
|
||||
eim.setIntProperty("stg1_b12", books[12]);
|
||||
eim.setIntProperty("stg1_b13", books[13]);
|
||||
eim.setIntProperty("stg1_b14", books[14]);
|
||||
eim.setIntProperty("stg1_b15", books[15]);
|
||||
eim.setIntProperty("stg1_b16", books[16]);
|
||||
eim.setIntProperty("stg1_b17", books[17]);
|
||||
eim.setIntProperty("stg1_b18", books[18]);
|
||||
eim.setIntProperty("stg1_b19", books[19]);
|
||||
eim.setIntProperty("stg1_b20", books[20]);
|
||||
eim.setIntProperty("stg1_b21", books[21]);
|
||||
eim.setIntProperty("stg1_b22", books[22]);
|
||||
eim.setIntProperty("stg1_b23", books[23]);
|
||||
eim.setIntProperty("stg1_b24", books[24]);
|
||||
eim.setIntProperty("stg1_b25", books[25]);
|
||||
}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(926110100).instanceMapRespawn();
|
||||
eim.getMapInstance(926110200).instanceMapRespawn();
|
||||
|
||||
if(!eim.isEventCleared()) {
|
||||
var mapobj = eim.getMapInstance(926110401);
|
||||
var mobcount = mapobj.countMonster(9300150);
|
||||
var mobobj;
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
if(mobcount == 0) {
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-278, -126));
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(926110100).instanceMapRespawn();
|
||||
eim.getMapInstance(926110200).instanceMapRespawn();
|
||||
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||
} else if(mobcount == 1) {
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
var mapobj = eim.getMapInstance(926110401);
|
||||
var mobcount = mapobj.countMonster(9300150);
|
||||
var mobobj;
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
if (mobcount == 0) {
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-278, -126));
|
||||
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||
} else if (mobcount == 1) {
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
|
||||
} else if(mapid == 926110203 && eim.getIntProperty("yuleteTimeout") == 0) {
|
||||
eim.setIntProperty("yuleteTimeout", 1);
|
||||
eim.schedule("yuleteAction", 10 * 1000);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
|
||||
} else if (mapid == 926110203 && eim.getIntProperty("yuleteTimeout") == 0) {
|
||||
eim.setIntProperty("yuleteTimeout", 1);
|
||||
eim.schedule("yuleteAction", 10 * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function yuleteAction(eim) {
|
||||
if(eim.getIntProperty("yuleteTalked") == 1) {
|
||||
eim.setIntProperty("yuletePassed", 1);
|
||||
|
||||
eim.dropMessage(5, "Yulete: Ugh, you guys disgust me. All I desired was to make this nation the greatest alchemy powerhouse of the entire world. If they won't accept this, I will make it true by myself, at any costs!!!");
|
||||
} else {
|
||||
eim.dropMessage(5, "Yulete: Hahaha... Did you really think I was going to be so disprepared knowing that the Magatia societies' dogs would be coming in my pursuit after my actions? Fools!");
|
||||
}
|
||||
eim.setIntProperty("yuleteTalked", -1);
|
||||
|
||||
var mapobj = eim.getMapInstance(926110203);
|
||||
var mob1 = 9300143, mob2 = 9300144;
|
||||
|
||||
mapobj.destroyNPC(2112010);
|
||||
if (eim.getIntProperty("yuleteTalked") == 1) {
|
||||
eim.setIntProperty("yuletePassed", 1);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var mobobj1, mobobj2;
|
||||
for(var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(-455, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(-455, 135));
|
||||
}
|
||||
|
||||
eim.dropMessage(5, "Yulete: Ugh, you guys disgust me. All I desired was to make this nation the greatest alchemy powerhouse of the entire world. If they won't accept this, I will make it true by myself, at any costs!!!");
|
||||
} else {
|
||||
eim.dropMessage(5, "Yulete: Hahaha... Did you really think I was going to be so disprepared knowing that the Magatia societies' dogs would be coming in my pursuit after my actions? Fools!");
|
||||
}
|
||||
eim.setIntProperty("yuleteTalked", -1);
|
||||
|
||||
for(var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(0, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(0, 135));
|
||||
}
|
||||
|
||||
|
||||
for(var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(360, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(360, 135));
|
||||
}
|
||||
var mapobj = eim.getMapInstance(926110203);
|
||||
var mob1 = 9300143, mob2 = 9300144;
|
||||
|
||||
mapobj.destroyNPC(2112010);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var mobobj1, mobobj2;
|
||||
for (var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(-455, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(-455, 135));
|
||||
}
|
||||
|
||||
|
||||
for (var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(0, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(0, 135));
|
||||
}
|
||||
|
||||
|
||||
for (var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(360, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(360, 135));
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
var map = mob.getMap();
|
||||
|
||||
if(map.getId() == 926110001 && eim.getIntProperty("statusStg1") == 1) {
|
||||
if(map.countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
eim.setIntProperty("statusStg2", 1);
|
||||
}
|
||||
}
|
||||
else if(map.getId() == 926110203 && eim.getIntProperty("statusStg1") == 1) {
|
||||
if(map.countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
|
||||
generateStg6Combo(eim);
|
||||
map.getReactorByName("jnr6_out").forceHitReactor(1);
|
||||
}
|
||||
} else if(mob.getId() == 9300151 || mob.getId() == 9300152) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(7);
|
||||
var map = mob.getMap();
|
||||
|
||||
eim.spawnNpc(2112005, new java.awt.Point(-370, -150), map);
|
||||
|
||||
var gain = (eim.getIntProperty("escortFail") == 1) ? 90000 : ((mob.getId() == 9300139) ? 105000 : 140000);
|
||||
eim.giveEventPlayersExp(gain);
|
||||
|
||||
map.killAllMonstersNotFriendly();
|
||||
|
||||
if(mob.getId() == 9300139) {
|
||||
eim.setIntProperty("normalClear", 1);
|
||||
}
|
||||
|
||||
eim.clearPQ();
|
||||
if (map.getId() == 926110001 && eim.getIntProperty("statusStg1") == 1) {
|
||||
if (map.countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
eim.setIntProperty("statusStg2", 1);
|
||||
}
|
||||
} else if (map.getId() == 926110203 && eim.getIntProperty("statusStg1") == 1) {
|
||||
if (map.countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
|
||||
generateStg6Combo(eim);
|
||||
map.getReactorByName("jnr6_out").forceHitReactor(1);
|
||||
}
|
||||
} else if (mob.getId() == 9300151 || mob.getId() == 9300152) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(7);
|
||||
|
||||
eim.spawnNpc(2112005, new java.awt.Point(-370, -150), map);
|
||||
|
||||
var gain = (eim.getIntProperty("escortFail") == 1) ? 90000 : ((mob.getId() == 9300139) ? 105000 : 140000);
|
||||
eim.giveEventPlayersExp(gain);
|
||||
|
||||
map.killAllMonstersNotFriendly();
|
||||
|
||||
if (mob.getId() == 9300139) {
|
||||
eim.setIntProperty("normalClear", 1);
|
||||
}
|
||||
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
eim.setIntProperty("escortFail", 1);
|
||||
eim.setIntProperty("escortFail", 1);
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Magatia PQ (Zenumist)
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 4, maxPlayers = 4;
|
||||
@@ -39,121 +39,131 @@ var eventTime = 45; // 45 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001130, 4001131, 4001132, 4001133, 4001134, 4001135];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001130, 4001131, 4001132, 4001133, 4001134, 4001135];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2000003, 2000002, 2000004, 2000005, 2022003, 1032016, 1032015, 1032014, 2041212, 2041020, 2040502, 2041016, 2044701, 2040301, 2043201, 2040501, 2040704, 2044001, 2043701, 2040803, 1102026, 1102028, 1102029];
|
||||
itemQty = [100, 100, 20, 10, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [0, 10000, 20000, 0, 20000, 20000, 0, 0]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2000003, 2000002, 2000004, 2000005, 2022003, 1032016, 1032015, 1032014, 2041212, 2041020, 2040502, 2041016, 2044701, 2040301, 2043201, 2040501, 2040704, 2044001, 2043701, 2040803, 1102026, 1102028, 1102029];
|
||||
itemQty = [100, 100, 20, 10, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = [0, 10000, 20000, 0, 20000, 20000, 0, 0]; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("MagatiaZ" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setIntProperty("isAlcadno", 0);
|
||||
|
||||
eim.setIntProperty("escortFail", 0);
|
||||
eim.setIntProperty("yuleteTimeout", 0);
|
||||
eim.setIntProperty("yuleteTalked", 0);
|
||||
eim.setIntProperty("yuletePassed", 0);
|
||||
eim.setIntProperty("npcShocked", 0);
|
||||
eim.setIntProperty("normalClear", 0);
|
||||
|
||||
eim.setIntProperty("statusStg1", 0);
|
||||
eim.setIntProperty("statusStg2", 0);
|
||||
eim.setIntProperty("statusStg3", 0);
|
||||
eim.setIntProperty("statusStg4", 0);
|
||||
eim.setIntProperty("statusStg5", 0);
|
||||
eim.setIntProperty("statusStg6", 0);
|
||||
eim.setIntProperty("statusStg7", 0);
|
||||
|
||||
eim.getInstanceMap(926100000).resetPQ(level);
|
||||
eim.getInstanceMap(926100001).resetPQ(level);
|
||||
eim.getInstanceMap(926100100).resetPQ(level);
|
||||
eim.getInstanceMap(926100200).resetPQ(level);
|
||||
eim.getInstanceMap(926100201).resetPQ(level);
|
||||
eim.getInstanceMap(926100202).resetPQ(level);
|
||||
eim.getInstanceMap(926100203).resetPQ(level);
|
||||
eim.getInstanceMap(926100300).resetPQ(level);
|
||||
eim.getInstanceMap(926100301).resetPQ(level);
|
||||
eim.getInstanceMap(926100302).resetPQ(level);
|
||||
eim.getInstanceMap(926100303).resetPQ(level);
|
||||
eim.getInstanceMap(926100304).resetPQ(level);
|
||||
eim.getInstanceMap(926100400).resetPQ(level);
|
||||
eim.getInstanceMap(926100401).resetPQ(level);
|
||||
eim.getInstanceMap(926100500).resetPQ(level);
|
||||
eim.getInstanceMap(926100600).resetPQ(level);
|
||||
eim.getInstanceMap(926100700).resetPQ(level);
|
||||
|
||||
eim.getInstanceMap(926100201).shuffleReactors(2518000, 2612004);
|
||||
eim.getInstanceMap(926100202).shuffleReactors(2518000, 2612004);
|
||||
var eim = em.newInstance("MagatiaZ" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.spawnNpc(2112000, new Point(252, 243), eim.getInstanceMap(926100203));
|
||||
eim.spawnNpc(2112000, new Point(200, 100), eim.getInstanceMap(926100401));
|
||||
eim.spawnNpc(2112001, new Point(200, 100), eim.getInstanceMap(926100500));
|
||||
eim.spawnNpc(2112018, new Point(200, 100), eim.getInstanceMap(926100600));
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
eim.setIntProperty("isAlcadno", 0);
|
||||
|
||||
eim.setIntProperty("escortFail", 0);
|
||||
eim.setIntProperty("yuleteTimeout", 0);
|
||||
eim.setIntProperty("yuleteTalked", 0);
|
||||
eim.setIntProperty("yuletePassed", 0);
|
||||
eim.setIntProperty("npcShocked", 0);
|
||||
eim.setIntProperty("normalClear", 0);
|
||||
|
||||
eim.setIntProperty("statusStg1", 0);
|
||||
eim.setIntProperty("statusStg2", 0);
|
||||
eim.setIntProperty("statusStg3", 0);
|
||||
eim.setIntProperty("statusStg4", 0);
|
||||
eim.setIntProperty("statusStg5", 0);
|
||||
eim.setIntProperty("statusStg6", 0);
|
||||
eim.setIntProperty("statusStg7", 0);
|
||||
|
||||
eim.getInstanceMap(926100000).resetPQ(level);
|
||||
eim.getInstanceMap(926100001).resetPQ(level);
|
||||
eim.getInstanceMap(926100100).resetPQ(level);
|
||||
eim.getInstanceMap(926100200).resetPQ(level);
|
||||
eim.getInstanceMap(926100201).resetPQ(level);
|
||||
eim.getInstanceMap(926100202).resetPQ(level);
|
||||
eim.getInstanceMap(926100203).resetPQ(level);
|
||||
eim.getInstanceMap(926100300).resetPQ(level);
|
||||
eim.getInstanceMap(926100301).resetPQ(level);
|
||||
eim.getInstanceMap(926100302).resetPQ(level);
|
||||
eim.getInstanceMap(926100303).resetPQ(level);
|
||||
eim.getInstanceMap(926100304).resetPQ(level);
|
||||
eim.getInstanceMap(926100400).resetPQ(level);
|
||||
eim.getInstanceMap(926100401).resetPQ(level);
|
||||
eim.getInstanceMap(926100500).resetPQ(level);
|
||||
eim.getInstanceMap(926100600).resetPQ(level);
|
||||
eim.getInstanceMap(926100700).resetPQ(level);
|
||||
|
||||
eim.getInstanceMap(926100201).shuffleReactors(2518000, 2612004);
|
||||
eim.getInstanceMap(926100202).shuffleReactors(2518000, 2612004);
|
||||
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.spawnNpc(2112000, new Point(252, 243), eim.getInstanceMap(926100203));
|
||||
eim.spawnNpc(2112000, new Point(200, 100), eim.getInstanceMap(926100401));
|
||||
eim.spawnNpc(2112001, new Point(200, 100), eim.getInstanceMap(926100500));
|
||||
eim.spawnNpc(2112018, new Point(200, 100), eim.getInstanceMap(926100600));
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function shuffle(array) {
|
||||
@@ -176,274 +186,273 @@ function shuffle(array) {
|
||||
}
|
||||
|
||||
function generateStg6Combo(eim) {
|
||||
var matrix = [];
|
||||
|
||||
var matrix = [];
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
matrix.push([]);
|
||||
}
|
||||
|
||||
for (var j = 0; j < 10; j++) {
|
||||
var array = [0, 1, 2, 3];
|
||||
array = shuffle(array);
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
matrix.push([]);
|
||||
matrix[i].push(array[i]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
var comb = "";
|
||||
for (var j = 0; j < 10; j++) {
|
||||
var array = [0, 1, 2, 3];
|
||||
array = shuffle(array);
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
matrix[i].push(array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < 4; i++) {
|
||||
var comb = "";
|
||||
for(var j = 0; j < 10; j++) {
|
||||
var r = matrix[i][j];
|
||||
comb += r.toString();
|
||||
}
|
||||
|
||||
eim.setProperty("stage6_comb" + (i + 1), comb);
|
||||
var r = matrix[i][j];
|
||||
comb += r.toString();
|
||||
}
|
||||
|
||||
eim.setProperty("stage6_comb" + (i + 1), comb);
|
||||
}
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
eim.setIntProperty("escortFail", 0); // refresh friendly status
|
||||
|
||||
var books = [-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 2, 3];
|
||||
shuffle(books);
|
||||
|
||||
eim.setIntProperty("stg1_b0", books[0]);
|
||||
eim.setIntProperty("stg1_b1", books[1]);
|
||||
eim.setIntProperty("stg1_b2", books[2]);
|
||||
eim.setIntProperty("stg1_b3", books[3]);
|
||||
eim.setIntProperty("stg1_b4", books[4]);
|
||||
eim.setIntProperty("stg1_b5", books[5]);
|
||||
eim.setIntProperty("stg1_b6", books[6]);
|
||||
eim.setIntProperty("stg1_b7", books[7]);
|
||||
eim.setIntProperty("stg1_b8", books[8]);
|
||||
eim.setIntProperty("stg1_b9", books[9]);
|
||||
eim.setIntProperty("stg1_b10", books[10]);
|
||||
eim.setIntProperty("stg1_b11", books[11]);
|
||||
eim.setIntProperty("stg1_b12", books[12]);
|
||||
eim.setIntProperty("stg1_b13", books[13]);
|
||||
eim.setIntProperty("stg1_b14", books[14]);
|
||||
eim.setIntProperty("stg1_b15", books[15]);
|
||||
eim.setIntProperty("stg1_b16", books[16]);
|
||||
eim.setIntProperty("stg1_b17", books[17]);
|
||||
eim.setIntProperty("stg1_b18", books[18]);
|
||||
eim.setIntProperty("stg1_b19", books[19]);
|
||||
eim.setIntProperty("stg1_b20", books[20]);
|
||||
eim.setIntProperty("stg1_b21", books[21]);
|
||||
eim.setIntProperty("stg1_b22", books[22]);
|
||||
eim.setIntProperty("stg1_b23", books[23]);
|
||||
eim.setIntProperty("stg1_b24", books[24]);
|
||||
eim.setIntProperty("stg1_b25", books[25]);
|
||||
eim.setIntProperty("escortFail", 0); // refresh friendly status
|
||||
|
||||
var books = [-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 2, 3];
|
||||
shuffle(books);
|
||||
|
||||
eim.setIntProperty("stg1_b0", books[0]);
|
||||
eim.setIntProperty("stg1_b1", books[1]);
|
||||
eim.setIntProperty("stg1_b2", books[2]);
|
||||
eim.setIntProperty("stg1_b3", books[3]);
|
||||
eim.setIntProperty("stg1_b4", books[4]);
|
||||
eim.setIntProperty("stg1_b5", books[5]);
|
||||
eim.setIntProperty("stg1_b6", books[6]);
|
||||
eim.setIntProperty("stg1_b7", books[7]);
|
||||
eim.setIntProperty("stg1_b8", books[8]);
|
||||
eim.setIntProperty("stg1_b9", books[9]);
|
||||
eim.setIntProperty("stg1_b10", books[10]);
|
||||
eim.setIntProperty("stg1_b11", books[11]);
|
||||
eim.setIntProperty("stg1_b12", books[12]);
|
||||
eim.setIntProperty("stg1_b13", books[13]);
|
||||
eim.setIntProperty("stg1_b14", books[14]);
|
||||
eim.setIntProperty("stg1_b15", books[15]);
|
||||
eim.setIntProperty("stg1_b16", books[16]);
|
||||
eim.setIntProperty("stg1_b17", books[17]);
|
||||
eim.setIntProperty("stg1_b18", books[18]);
|
||||
eim.setIntProperty("stg1_b19", books[19]);
|
||||
eim.setIntProperty("stg1_b20", books[20]);
|
||||
eim.setIntProperty("stg1_b21", books[21]);
|
||||
eim.setIntProperty("stg1_b22", books[22]);
|
||||
eim.setIntProperty("stg1_b23", books[23]);
|
||||
eim.setIntProperty("stg1_b24", books[24]);
|
||||
eim.setIntProperty("stg1_b25", books[25]);
|
||||
}
|
||||
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(926100100).instanceMapRespawn();
|
||||
eim.getMapInstance(926100200).instanceMapRespawn();
|
||||
|
||||
if(!eim.isEventCleared()) {
|
||||
var mapobj = eim.getMapInstance(926100401);
|
||||
var mobcount = mapobj.countMonster(9300150);
|
||||
var mobobj;
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
if(mobcount == 0) {
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-278, -126));
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(926100100).instanceMapRespawn();
|
||||
eim.getMapInstance(926100200).instanceMapRespawn();
|
||||
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||
} else if(mobcount == 1) {
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
var mapobj = eim.getMapInstance(926100401);
|
||||
var mobcount = mapobj.countMonster(9300150);
|
||||
var mobobj;
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
if (mobcount == 0) {
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-278, -126));
|
||||
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||
} else if (mobcount == 1) {
|
||||
mobobj = LifeFactory.getMonster(9300150);
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
eim.schedule("respawnStages", 15 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
|
||||
} else if(mapid == 926100203 && eim.getIntProperty("yuleteTimeout") == 0) {
|
||||
eim.setIntProperty("yuleteTimeout", 1);
|
||||
eim.schedule("yuleteAction", 10 * 1000);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
|
||||
} else if (mapid == 926100203 && eim.getIntProperty("yuleteTimeout") == 0) {
|
||||
eim.setIntProperty("yuleteTimeout", 1);
|
||||
eim.schedule("yuleteAction", 10 * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function yuleteAction(eim) {
|
||||
if(eim.getIntProperty("yuleteTalked") == 1) {
|
||||
eim.setIntProperty("yuletePassed", 1);
|
||||
|
||||
eim.dropMessage(5, "Yulete: Ugh, you guys disgust me. All I desired was to make this nation the greatest alchemy powerhouse of the entire world. If they won't accept this, I will make it true by myself, at any costs!!!");
|
||||
} else {
|
||||
eim.dropMessage(5, "Yulete: Hahaha... Did you really think I was going to be so disprepared knowing that the Magatia societies' dogs would be coming in my pursuit after my actions? Fools!");
|
||||
}
|
||||
eim.setIntProperty("yuleteTalked", -1);
|
||||
|
||||
var mapobj = eim.getMapInstance(926100203);
|
||||
var mob1 = 9300143, mob2 = 9300144;
|
||||
|
||||
mapobj.destroyNPC(2112000);
|
||||
if (eim.getIntProperty("yuleteTalked") == 1) {
|
||||
eim.setIntProperty("yuletePassed", 1);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var mobobj1, mobobj2;
|
||||
for(var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(-455, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(-455, 135));
|
||||
}
|
||||
|
||||
eim.dropMessage(5, "Yulete: Ugh, you guys disgust me. All I desired was to make this nation the greatest alchemy powerhouse of the entire world. If they won't accept this, I will make it true by myself, at any costs!!!");
|
||||
} else {
|
||||
eim.dropMessage(5, "Yulete: Hahaha... Did you really think I was going to be so disprepared knowing that the Magatia societies' dogs would be coming in my pursuit after my actions? Fools!");
|
||||
}
|
||||
eim.setIntProperty("yuleteTalked", -1);
|
||||
|
||||
for(var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(0, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(0, 135));
|
||||
}
|
||||
|
||||
|
||||
for(var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(360, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(360, 135));
|
||||
}
|
||||
var mapobj = eim.getMapInstance(926100203);
|
||||
var mob1 = 9300143, mob2 = 9300144;
|
||||
|
||||
mapobj.destroyNPC(2112000);
|
||||
|
||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||
const Point = Java.type('java.awt.Point');
|
||||
var mobobj1, mobobj2;
|
||||
for (var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(-455, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(-455, 135));
|
||||
}
|
||||
|
||||
|
||||
for (var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(0, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(0, 135));
|
||||
}
|
||||
|
||||
|
||||
for (var i = 0; i < 5; i++) {
|
||||
mobobj1 = LifeFactory.getMonster(mob1);
|
||||
mobobj2 = LifeFactory.getMonster(mob2);
|
||||
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(360, 135));
|
||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(360, 135));
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
var map = mob.getMap();
|
||||
|
||||
if(map.getId() == 926100001 && eim.getIntProperty("statusStg1") == 1) {
|
||||
if(map.countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
eim.setIntProperty("statusStg2", 1);
|
||||
}
|
||||
}
|
||||
else if(map.getId() == 926100203 && eim.getIntProperty("statusStg1") == 1) {
|
||||
if(map.countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
|
||||
generateStg6Combo(eim);
|
||||
map.getReactorByName("rnj6_out").forceHitReactor(1);
|
||||
}
|
||||
} else if(mob.getId() == 9300139 || mob.getId() == 9300140) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(7);
|
||||
var map = mob.getMap();
|
||||
|
||||
eim.spawnNpc(2112006, new java.awt.Point(-370, -150), map);
|
||||
|
||||
var gain = (eim.getIntProperty("escortFail") == 1) ? 90000 : ((mob.getId() == 9300139) ? 105000 : 140000);
|
||||
eim.giveEventPlayersExp(gain);
|
||||
|
||||
map.killAllMonstersNotFriendly();
|
||||
|
||||
if(mob.getId() == 9300139) {
|
||||
eim.setIntProperty("normalClear", 1);
|
||||
}
|
||||
|
||||
eim.clearPQ();
|
||||
if (map.getId() == 926100001 && eim.getIntProperty("statusStg1") == 1) {
|
||||
if (map.countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
eim.setIntProperty("statusStg2", 1);
|
||||
}
|
||||
} else if (map.getId() == 926100203 && eim.getIntProperty("statusStg1") == 1) {
|
||||
if (map.countMonsters() == 0) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
|
||||
generateStg6Combo(eim);
|
||||
map.getReactorByName("rnj6_out").forceHitReactor(1);
|
||||
}
|
||||
} else if (mob.getId() == 9300139 || mob.getId() == 9300140) {
|
||||
eim.showClearEffect();
|
||||
eim.giveEventPlayersStageReward(7);
|
||||
|
||||
eim.spawnNpc(2112006, new java.awt.Point(-370, -150), map);
|
||||
|
||||
var gain = (eim.getIntProperty("escortFail") == 1) ? 90000 : ((mob.getId() == 9300139) ? 105000 : 140000);
|
||||
eim.giveEventPlayersExp(gain);
|
||||
|
||||
map.killAllMonstersNotFriendly();
|
||||
|
||||
if (mob.getId() == 9300139) {
|
||||
eim.setIntProperty("normalClear", 1);
|
||||
}
|
||||
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
eim.setIntProperty("escortFail", 1);
|
||||
eim.setIntProperty("escortFail", 1);
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Uncontrollable Maha
|
||||
*/
|
||||
*/
|
||||
|
||||
var entryMap = 914020000;
|
||||
var exitMap = 140000000;
|
||||
@@ -38,17 +38,17 @@ const maxLobbies = 7;
|
||||
function init() {}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Maha" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.instanceMapForceRespawn();
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
return eim;
|
||||
var eim = em.newInstance("Maha" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
var mapObj = eim.getInstanceMap(entryMap);
|
||||
mapObj.resetPQ(level);
|
||||
mapObj.instanceMapForceRespawn();
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -56,36 +56,36 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {}
|
||||
@@ -93,21 +93,21 @@ function changedLeader(eim, leader) {}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {}
|
||||
@@ -115,36 +115,36 @@ function leftParty(eim, player) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isMaha(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == 9001014;
|
||||
var mobid = mob.getId();
|
||||
return mobid == 9001014;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isMaha(mob)) {
|
||||
eim.clearPQ();
|
||||
}
|
||||
if (isMaha(mob)) {
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -7,97 +7,99 @@ var eventMap = 240040611;
|
||||
var minMapId = 240040611;
|
||||
var maxMapId = 240040611;
|
||||
|
||||
function init(){}
|
||||
function init() {}
|
||||
|
||||
function setup(difficulty, lobbyId){
|
||||
var eim = em.newInstance("NineSpirit_" +lobbyId);
|
||||
eim.getInstanceMap(eventMap).resetFully();
|
||||
eim.getInstanceMap(eventMap).allowSummonState(false);
|
||||
respawn(eim);
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
function setup(difficulty, lobbyId) {
|
||||
var eim = em.newInstance("NineSpirit_" + lobbyId);
|
||||
eim.getInstanceMap(eventMap).resetFully();
|
||||
eim.getInstanceMap(eventMap).allowSummonState(false);
|
||||
respawn(eim);
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim){}
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawn(eim){}
|
||||
function respawn(eim) {}
|
||||
|
||||
function playerEntry(eim, player){
|
||||
var nest = eim.getMapInstance(eventMap);
|
||||
if (!player.haveItem(4001094)) {
|
||||
eim.spawnNpc(2081008, nest.getReactorById(2406000).getPosition(), nest);
|
||||
function playerEntry(eim, player) {
|
||||
var nest = eim.getMapInstance(eventMap);
|
||||
if (!player.haveItem(4001094)) {
|
||||
eim.spawnNpc(2081008, nest.getReactorById(2406000).getPosition(), nest);
|
||||
}
|
||||
|
||||
player.changeMap(nest, 1);
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerRevive(eim, player) {
|
||||
player.respawn(eim, exitMap);
|
||||
return false;
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
if (party.get(i).equals(player)) {
|
||||
removePlayer(eim, player);
|
||||
} else {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
|
||||
player.changeMap(nest, 1);
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim){
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++)
|
||||
playerExit(eim, party.get(i));
|
||||
|
||||
eim.dispose();
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
function playerRevive(eim, player){
|
||||
player.respawn(eim, exitMap);
|
||||
return false;
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
}
|
||||
|
||||
function playerDead(eim, player){}
|
||||
|
||||
function playerDisconnected(eim, player){
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++){
|
||||
if(party.get(i).equals(player))
|
||||
removePlayer(eim, player);
|
||||
else
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
removePlayer(eim, chr);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId){
|
||||
return -1;
|
||||
function removePlayer(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(exitMap);
|
||||
}
|
||||
|
||||
function leftParty(eim, player){}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function disbandParty(eim){}
|
||||
function dispose() {}
|
||||
|
||||
function playerUnregistered(eim, player){}
|
||||
function clearPQ(eim) {}
|
||||
|
||||
function playerExit(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
}
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function changedMap(eim, chr, mapid){
|
||||
if(mapid < minMapId || mapid > maxMapId){
|
||||
removePlayer(eim, chr);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
function removePlayer(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(exitMap);
|
||||
}
|
||||
|
||||
function cancelSchedule(){}
|
||||
|
||||
function dispose(){}
|
||||
|
||||
function clearPQ(eim){}
|
||||
|
||||
function monsterKilled(mob, eim){}
|
||||
|
||||
function allMonstersDead(eim){}
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Orbis PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 5, maxPlayers = 6;
|
||||
@@ -39,248 +39,257 @@ var eventTime = 45; // 45 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001044, 4001045, 4001046, 4001047, 4001048, 4001049, 4001050, 4001051, 4001052, 4001053, 4001054, 4001055, 4001056, 4001057, 4001058, 4001059, 4001060, 4001061, 4001062, 4001063];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001044, 4001045, 4001046, 4001047, 4001048, 4001049, 4001050, 4001051, 4001052, 4001053, 4001054, 4001055, 4001056, 4001057, 4001058, 4001059, 4001060, 4001061, 4001062, 4001063];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2040602, 2040802, 2040002, 2040402, 2040505, 2040502, 2040601, 2044501, 2044701, 2044601, 2041019, 2041016, 2041022, 2041013, 2041007, 2043301, 2040301, 2040801, 2040001, 2040004, 2040504, 2040501, 2040513, 2043101, 2044201, 2044401, 2040701, 2044301, 2043801, 2040401, 2043701, 2040803, 2000003, 2000002, 2000004, 2000006, 2000005, 2022000, 2001001, 2001002, 2022003, 2001000, 2020014, 2020015, 4003000, 1102015, 1102016, 1102017, 1102018, 1102021, 1102022, 1102023, 1102024, 1102084, 1102085, 1102086, 1032019, 1032020, 1032021, 1032014, 2070011, 4010003, 4010000, 4010006, 4010002, 4010005, 4010004, 4010001, 4020001, 4020002, 4020008, 4020007, 4020003, 4020000, 4020004, 4020005, 4020006, 2210000, 2210001, 2210002, 2070006, 2070005, 2070007, 2070004, 2061003, 2060003, 2060004, 2061004, 2100000, 2100001, 2100002, 2100003, 2100004, 2100005];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 100, 100, 15, 80, 5, 25, 20, 20, 25, 20, 15, 10, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 10, 15, 15, 15, 15, 15, 15, 10, 10, 15, 15, 15, 15, 15, 5, 5, 5, 1, 1, 1, 1, 2000, 2000, 2000, 2000, 1, 1, 1, 1, 1, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [2040602, 2040802, 2040002, 2040402, 2040505, 2040502, 2040601, 2044501, 2044701, 2044601, 2041019, 2041016, 2041022, 2041013, 2041007, 2043301, 2040301, 2040801, 2040001, 2040004, 2040504, 2040501, 2040513, 2043101, 2044201, 2044401, 2040701, 2044301, 2043801, 2040401, 2043701, 2040803, 2000003, 2000002, 2000004, 2000006, 2000005, 2022000, 2001001, 2001002, 2022003, 2001000, 2020014, 2020015, 4003000, 1102015, 1102016, 1102017, 1102018, 1102021, 1102022, 1102023, 1102024, 1102084, 1102085, 1102086, 1032019, 1032020, 1032021, 1032014, 2070011, 4010003, 4010000, 4010006, 4010002, 4010005, 4010004, 4010001, 4020001, 4020002, 4020008, 4020007, 4020003, 4020000, 4020004, 4020005, 4020006, 2210000, 2210001, 2210002, 2070006, 2070005, 2070007, 2070004, 2061003, 2060003, 2060004, 2061004, 2100000, 2100001, 2100002, 2100003, 2100004, 2100005];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 100, 100, 15, 80, 5, 25, 20, 20, 25, 20, 15, 10, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 10, 15, 15, 15, 15, 15, 15, 10, 10, 15, 15, 15, 15, 15, 5, 5, 5, 1, 1, 1, 1, 2000, 2000, 2000, 2000, 1, 1, 1, 1, 1, 1];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Orbis" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("statusStg0", -1);
|
||||
eim.setProperty("statusStg1", -1);
|
||||
eim.setProperty("statusStg2", -1);
|
||||
eim.setProperty("statusStg3", -1);
|
||||
eim.setProperty("statusStg4", -1);
|
||||
eim.setProperty("statusStg5", -1);
|
||||
eim.setProperty("statusStg6", -1);
|
||||
eim.setProperty("statusStg7", -1);
|
||||
eim.setProperty("statusStg8", -1);
|
||||
eim.setProperty("statusStg2_c", 0);
|
||||
eim.setProperty("statusStg7_c", 0);
|
||||
eim.setProperty("statusStgBonus", 0);
|
||||
|
||||
|
||||
eim.getInstanceMap(920010000).resetPQ(level);
|
||||
eim.getInstanceMap(920010100).resetPQ(level);
|
||||
eim.getInstanceMap(920010200).resetPQ(level);
|
||||
eim.getInstanceMap(920010300).resetPQ(level);
|
||||
eim.getInstanceMap(920010400).resetPQ(level);
|
||||
eim.getInstanceMap(920010500).resetPQ(level);
|
||||
eim.getInstanceMap(920010600).resetPQ(level);
|
||||
eim.getInstanceMap(920010601).resetPQ(level);
|
||||
eim.getInstanceMap(920010602).resetPQ(level);
|
||||
eim.getInstanceMap(920010603).resetPQ(level);
|
||||
eim.getInstanceMap(920010604).resetPQ(level);
|
||||
eim.getInstanceMap(920010700).resetPQ(level);
|
||||
eim.getInstanceMap(920010800).resetPQ(level);
|
||||
eim.getInstanceMap(920010900).resetPQ(level);
|
||||
eim.getInstanceMap(920010910).resetPQ(level);
|
||||
eim.getInstanceMap(920010911).resetPQ(level);
|
||||
eim.getInstanceMap(920010912).resetPQ(level);
|
||||
eim.getInstanceMap(920010920).resetPQ(level);
|
||||
eim.getInstanceMap(920010921).resetPQ(level);
|
||||
eim.getInstanceMap(920010922).resetPQ(level);
|
||||
eim.getInstanceMap(920010930).resetPQ(level);
|
||||
eim.getInstanceMap(920010931).resetPQ(level);
|
||||
eim.getInstanceMap(920010932).resetPQ(level);
|
||||
eim.getInstanceMap(920011000).resetPQ(level);
|
||||
eim.getInstanceMap(920011100).resetPQ(level);
|
||||
eim.getInstanceMap(920011200).resetPQ(level);
|
||||
eim.getInstanceMap(920011300).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
var d = new Date();
|
||||
eim.getInstanceMap(920010400).getReactorByName("music").setEventState(d.getDay());
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
return eim;
|
||||
var eim = em.newInstance("Orbis" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("statusStg0", -1);
|
||||
eim.setProperty("statusStg1", -1);
|
||||
eim.setProperty("statusStg2", -1);
|
||||
eim.setProperty("statusStg3", -1);
|
||||
eim.setProperty("statusStg4", -1);
|
||||
eim.setProperty("statusStg5", -1);
|
||||
eim.setProperty("statusStg6", -1);
|
||||
eim.setProperty("statusStg7", -1);
|
||||
eim.setProperty("statusStg8", -1);
|
||||
eim.setProperty("statusStg2_c", 0);
|
||||
eim.setProperty("statusStg7_c", 0);
|
||||
eim.setProperty("statusStgBonus", 0);
|
||||
|
||||
|
||||
eim.getInstanceMap(920010000).resetPQ(level);
|
||||
eim.getInstanceMap(920010100).resetPQ(level);
|
||||
eim.getInstanceMap(920010200).resetPQ(level);
|
||||
eim.getInstanceMap(920010300).resetPQ(level);
|
||||
eim.getInstanceMap(920010400).resetPQ(level);
|
||||
eim.getInstanceMap(920010500).resetPQ(level);
|
||||
eim.getInstanceMap(920010600).resetPQ(level);
|
||||
eim.getInstanceMap(920010601).resetPQ(level);
|
||||
eim.getInstanceMap(920010602).resetPQ(level);
|
||||
eim.getInstanceMap(920010603).resetPQ(level);
|
||||
eim.getInstanceMap(920010604).resetPQ(level);
|
||||
eim.getInstanceMap(920010700).resetPQ(level);
|
||||
eim.getInstanceMap(920010800).resetPQ(level);
|
||||
eim.getInstanceMap(920010900).resetPQ(level);
|
||||
eim.getInstanceMap(920010910).resetPQ(level);
|
||||
eim.getInstanceMap(920010911).resetPQ(level);
|
||||
eim.getInstanceMap(920010912).resetPQ(level);
|
||||
eim.getInstanceMap(920010920).resetPQ(level);
|
||||
eim.getInstanceMap(920010921).resetPQ(level);
|
||||
eim.getInstanceMap(920010922).resetPQ(level);
|
||||
eim.getInstanceMap(920010930).resetPQ(level);
|
||||
eim.getInstanceMap(920010931).resetPQ(level);
|
||||
eim.getInstanceMap(920010932).resetPQ(level);
|
||||
eim.getInstanceMap(920011000).resetPQ(level);
|
||||
eim.getInstanceMap(920011100).resetPQ(level);
|
||||
eim.getInstanceMap(920011200).resetPQ(level);
|
||||
eim.getInstanceMap(920011300).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
var d = new Date();
|
||||
eim.getInstanceMap(920010400).getReactorByName("music").setEventState(d.getDay());
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
function isTeamAllJobs(eim) {
|
||||
var eventJobs = eim.getEventPlayersJobs();
|
||||
var rangeJobs = parseInt('111110', 2);
|
||||
|
||||
return ((eventJobs & rangeJobs) == rangeJobs);
|
||||
var eventJobs = eim.getEventPlayersJobs();
|
||||
var rangeJobs = parseInt('111110', 2);
|
||||
|
||||
return ((eventJobs & rangeJobs) == rangeJobs);
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
if(isTeamAllJobs(eim)) {
|
||||
var rnd = Math.floor(Math.random() * 4);
|
||||
eim.applyEventPlayersItemBuff(2022090 + rnd);
|
||||
}
|
||||
if (isTeamAllJobs(eim)) {
|
||||
var rnd = Math.floor(Math.random() * 4);
|
||||
eim.applyEventPlayersItemBuff(2022090 + rnd);
|
||||
}
|
||||
}
|
||||
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
|
||||
var texttt = "Hi, my name is Eak, the Chamberlain of the Goddess. Don't be alarmed; you won't be able to see me right now. Back when the Goddess turned into a block of stone, I simultaneously lost my own power. If you gather up the power of the Magic Cloud of Orbis, however, then I'll be able to recover my body and re-transform back to my original self. Please collect #b20#k Magic Clouds and bring them back to me. Right now, you'll only see me as a tiny, flickering light.";
|
||||
player.getAbstractPlayerInteraction().npcTalk(2013001, texttt);
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
|
||||
var texttt = "Hi, my name is Eak, the Chamberlain of the Goddess. Don't be alarmed; you won't be able to see me right now. Back when the Goddess turned into a block of stone, I simultaneously lost my own power. If you gather up the power of the Magic Cloud of Orbis, however, then I'll be able to recover my body and re-transform back to my original self. Please collect #b20#k Magic Clouds and bring them back to me. Right now, you'll only see me as a tiny, flickering light.";
|
||||
player.getAbstractPlayerInteraction().npcTalk(2013001, texttt);
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
if(eim.getIntProperty("statusStg8") == 1) {
|
||||
eim.warpEventTeam(920011300);
|
||||
}
|
||||
else {
|
||||
end(eim);
|
||||
}
|
||||
if (eim.getIntProperty("statusStg8") == 1) {
|
||||
eim.warpEventTeam(920011300);
|
||||
} else {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {
|
||||
player.cancelEffect(2022090);
|
||||
player.cancelEffect(2022091);
|
||||
player.cancelEffect(2022092);
|
||||
player.cancelEffect(2022093);
|
||||
player.cancelEffect(2022090);
|
||||
player.cancelEffect(2022091);
|
||||
player.cancelEffect(2022092);
|
||||
player.cancelEffect(2022093);
|
||||
}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Papulatus
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 6;
|
||||
@@ -39,119 +39,129 @@ var eventTime = 45; // 45 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Papulatus" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(220080001).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Papulatus" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(220080001).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
updateGateState(1);
|
||||
updateGateState(1);
|
||||
}
|
||||
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {}
|
||||
@@ -159,21 +169,21 @@ function changedLeader(eim, leader) {}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {}
|
||||
@@ -181,38 +191,38 @@ function leftParty(eim, player) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
updateGateState(0);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
updateGateState(0);
|
||||
}
|
||||
|
||||
function isPapulatus(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == 8500002;
|
||||
var mobid = mob.getId();
|
||||
return mobid == 8500002;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isPapulatus(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
if (isPapulatus(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
@@ -220,13 +230,13 @@ function allMonstersDead(eim) {}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function updateGateState(newState) { // thanks Conrad for noticing missing gate update
|
||||
em.getChannelServer().getMapFactory().getMap(220080000).getReactorById(2208001).forceHitReactor(newState);
|
||||
em.getChannelServer().getMapFactory().getMap(220080000).getReactorById(2208002).forceHitReactor(newState);
|
||||
em.getChannelServer().getMapFactory().getMap(220080000).getReactorById(2208003).forceHitReactor(newState);
|
||||
em.getChannelServer().getMapFactory().getMap(220080000).getReactorById(2208001).forceHitReactor(newState);
|
||||
em.getChannelServer().getMapFactory().getMap(220080000).getReactorById(2208002).forceHitReactor(newState);
|
||||
em.getChannelServer().getMapFactory().getMap(220080000).getReactorById(2208003).forceHitReactor(newState);
|
||||
}
|
||||
|
||||
function dispose(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
updateGateState(0);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
updateGateState(0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Pink Bean Battle
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 6, maxPlayers = 30;
|
||||
@@ -39,7 +39,7 @@ var eventTime = 140; // 140 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
@@ -47,40 +47,46 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = []; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = []; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
}
|
||||
|
||||
function afterSetup(eim) {
|
||||
@@ -93,7 +99,7 @@ function setup(channel) {
|
||||
eim.setProperty("canJoin", 1);
|
||||
eim.setProperty("defeatedBoss", 0);
|
||||
eim.setProperty("fallenPlayers", 0);
|
||||
|
||||
|
||||
eim.setProperty("stage", 1);
|
||||
eim.setProperty("channel", channel);
|
||||
|
||||
@@ -107,11 +113,11 @@ function setup(channel) {
|
||||
var mob = LifeFactory.getMonster(8820000);
|
||||
mob.disableDrops();
|
||||
eim.getInstanceMap(270050100).spawnMonsterOnGroundBelow(mob, new Point(0, -42));
|
||||
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -127,12 +133,11 @@ function scheduledTimeout(eim) {
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the expedition.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
@@ -144,15 +149,15 @@ function changedLeader(eim, leader) {}
|
||||
function playerDead(eim, player) {
|
||||
var count = eim.getIntProperty("fallenPlayers");
|
||||
count = count + 1;
|
||||
|
||||
|
||||
eim.setIntProperty("fallenPlayers", count);
|
||||
|
||||
if(count == 5) {
|
||||
|
||||
if (count == 5) {
|
||||
eim.dropMessage(5, "[Expedition] Too many players have fallen, Pink Bean is now deemed undefeatable; the expedition is over.");
|
||||
end(eim);
|
||||
} else if(count == 4) {
|
||||
} else if (count == 4) {
|
||||
eim.dropMessage(5, "[Expedition] Pink Bean is growing stronger than ever, last stand mode everyone!");
|
||||
} else if(count == 3) {
|
||||
} else if (count == 3) {
|
||||
eim.dropMessage(5, "[Expedition] Casualty count is starting to get out of control. Battle with care.");
|
||||
}
|
||||
}
|
||||
@@ -162,9 +167,9 @@ function playerRevive(eim, player) {
|
||||
}
|
||||
|
||||
function monsterRevive(eim, mob) {
|
||||
if(isPinkBean(mob)) {
|
||||
mob.enableDrops();
|
||||
}
|
||||
if (isPinkBean(mob)) {
|
||||
mob.enableDrops();
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
@@ -172,16 +177,15 @@ function playerDisconnected(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the expedition.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty (eim, player) {}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty (eim) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
@@ -226,9 +230,9 @@ function noJrBossesLeft(map) {
|
||||
}
|
||||
|
||||
function spawnJrBoss(mobObj, gotKilled) {
|
||||
if(gotKilled) {
|
||||
if (gotKilled) {
|
||||
spawnid = mobObj.getId() + 17;
|
||||
|
||||
|
||||
} else {
|
||||
mobObj.getMap().killMonster(mobObj.getId());
|
||||
spawnid = mobObj.getId() - 17;
|
||||
@@ -240,19 +244,19 @@ function spawnJrBoss(mobObj, gotKilled) {
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isPinkBean(mob)) {
|
||||
if (isPinkBean(mob)) {
|
||||
eim.setIntProperty("defeatedBoss", 1);
|
||||
eim.showClearEffect(mob.getMap().getId());
|
||||
mob.getMap().killAllMonsters();
|
||||
eim.clearPQ();
|
||||
|
||||
|
||||
var ch = eim.getIntProperty("channel");
|
||||
mob.getMap().broadcastPinkBeanVictory(ch);
|
||||
} else if(isJrBoss(mob)) {
|
||||
if(noJrBossesLeft(mob.getMap())) {
|
||||
} else if (isJrBoss(mob)) {
|
||||
if (noJrBossesLeft(mob.getMap())) {
|
||||
var stage = eim.getIntProperty("stage");
|
||||
|
||||
if(stage == 5) {
|
||||
|
||||
if (stage == 5) {
|
||||
var iid = 4001193;
|
||||
const Item = Java.type('client.inventory.Item');
|
||||
var itemObj = new Item(iid, 0, 1);
|
||||
@@ -266,19 +270,19 @@ function monsterKilled(mob, eim) {
|
||||
} else {
|
||||
stage++;
|
||||
eim.setIntProperty("stage", stage);
|
||||
|
||||
|
||||
eim.dropMessage(5, "The next wave will start within 15 seconds, prepare yourselves.");
|
||||
eim.schedule("startWave", 15 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function startWave(eim) {
|
||||
var mapObj = eim.getMapInstance(270050100);
|
||||
var stage = eim.getProperty("stage");
|
||||
|
||||
for(var i = 1; i <= stage; i++) {
|
||||
|
||||
for (var i = 1; i <= stage; i++) {
|
||||
spawnJrBoss(mapObj.getMonsterById(8820019 + (i % 5)), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Pirate PQ
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var isGrindMode = false; // stages done after breaking all boxes on maps
|
||||
@@ -41,7 +41,7 @@ var eventTime = 4; // 4 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
@@ -49,321 +49,333 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001117, 4001120, 4001121, 4001122];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [4001117, 4001120, 4001121, 4001122];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Pirate" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("stage2", "0");
|
||||
eim.setProperty("stage2a", "0");
|
||||
eim.setProperty("stage3a", "0");
|
||||
eim.setProperty("stage2b", "0");
|
||||
eim.setProperty("stage3b", "0");
|
||||
eim.setProperty("stage4", "0");
|
||||
eim.setProperty("stage5", "0");
|
||||
|
||||
eim.setProperty("curStage", "1");
|
||||
eim.setProperty("grindMode", isGrindMode ? "1" : "0");
|
||||
|
||||
eim.setProperty("openedChests", "0");
|
||||
eim.setProperty("openedBoxes", "0");
|
||||
eim.getInstanceMap(925100000).resetPQ(level);
|
||||
eim.getInstanceMap(925100000).shuffleReactors();
|
||||
|
||||
eim.getInstanceMap(925100100).resetPQ(level);
|
||||
var map = eim.getInstanceMap(925100200);
|
||||
map.resetPQ(level);
|
||||
map.shuffleReactors();
|
||||
for (var i = 0; i < 5; i++) {
|
||||
var mob = em.getMonster(9300124);
|
||||
var mob2 = em.getMonster(9300125);
|
||||
var mob3 = em.getMonster(9300124);
|
||||
var mob4 = em.getMonster(9300125);
|
||||
eim.registerMonster(mob);
|
||||
eim.registerMonster(mob2);
|
||||
eim.registerMonster(mob3);
|
||||
eim.registerMonster(mob4);
|
||||
mob.changeDifficulty(level,isPq);
|
||||
mob2.changeDifficulty(level,isPq);
|
||||
mob3.changeDifficulty(level,isPq);
|
||||
mob4.changeDifficulty(level,isPq);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(430, 75));
|
||||
map.spawnMonsterOnGroundBelow(mob2, new java.awt.Point(1600, 75));
|
||||
map.spawnMonsterOnGroundBelow(mob3, new java.awt.Point(430, 238));
|
||||
map.spawnMonsterOnGroundBelow(mob4, new java.awt.Point(1600, 238));
|
||||
}
|
||||
map = eim.getInstanceMap(925100201);
|
||||
map.resetPQ(level);
|
||||
for (var i = 0; i < 10; i++) {
|
||||
var mob = em.getMonster(9300112);
|
||||
var mob2 = em.getMonster(9300113);
|
||||
eim.registerMonster(mob);
|
||||
eim.registerMonster(mob2);
|
||||
mob.changeDifficulty(level,isPq);
|
||||
mob2.changeDifficulty(level,isPq);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(0, 238));
|
||||
map.spawnMonsterOnGroundBelow(mob2, new java.awt.Point(1700, 238));
|
||||
}
|
||||
eim.getInstanceMap(925100202).resetPQ(level);
|
||||
map = eim.getInstanceMap(925100300);
|
||||
map.resetPQ(level);
|
||||
map.shuffleReactors();
|
||||
for (var i = 0; i < 5; i++) {
|
||||
var mob = em.getMonster(9300124);
|
||||
var mob2 = em.getMonster(9300125);
|
||||
var mob3 = em.getMonster(9300124);
|
||||
var mob4 = em.getMonster(9300125);
|
||||
eim.registerMonster(mob);
|
||||
eim.registerMonster(mob2);
|
||||
eim.registerMonster(mob3);
|
||||
eim.registerMonster(mob4);
|
||||
mob.changeDifficulty(level,isPq);
|
||||
mob2.changeDifficulty(level,isPq);
|
||||
mob3.changeDifficulty(level,isPq);
|
||||
mob4.changeDifficulty(level,isPq);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(430, 75));
|
||||
map.spawnMonsterOnGroundBelow(mob2, new java.awt.Point(1600, 75));
|
||||
map.spawnMonsterOnGroundBelow(mob3, new java.awt.Point(430, 238));
|
||||
map.spawnMonsterOnGroundBelow(mob4, new java.awt.Point(1600, 238));
|
||||
}
|
||||
map = eim.getInstanceMap(925100301);
|
||||
map.resetPQ(level);
|
||||
for (var i = 0; i < 10; i++) {
|
||||
var mob = em.getMonster(9300112);
|
||||
var mob2 = em.getMonster(9300113);
|
||||
eim.registerMonster(mob);
|
||||
eim.registerMonster(mob2);
|
||||
mob.changeDifficulty(level,isPq);
|
||||
mob2.changeDifficulty(level,isPq);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(0, 238));
|
||||
map.spawnMonsterOnGroundBelow(mob2, new java.awt.Point(1700, 238));
|
||||
}
|
||||
eim.getInstanceMap(925100302).resetPQ(level);
|
||||
eim.getInstanceMap(925100400).resetPQ(level);
|
||||
eim.getInstanceMap(925100500).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("Pirate" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setProperty("stage2", "0");
|
||||
eim.setProperty("stage2a", "0");
|
||||
eim.setProperty("stage3a", "0");
|
||||
eim.setProperty("stage2b", "0");
|
||||
eim.setProperty("stage3b", "0");
|
||||
eim.setProperty("stage4", "0");
|
||||
eim.setProperty("stage5", "0");
|
||||
|
||||
eim.setProperty("curStage", "1");
|
||||
eim.setProperty("grindMode", isGrindMode ? "1" : "0");
|
||||
|
||||
eim.setProperty("openedChests", "0");
|
||||
eim.setProperty("openedBoxes", "0");
|
||||
eim.getInstanceMap(925100000).resetPQ(level);
|
||||
eim.getInstanceMap(925100000).shuffleReactors();
|
||||
|
||||
eim.getInstanceMap(925100100).resetPQ(level);
|
||||
var map = eim.getInstanceMap(925100200);
|
||||
map.resetPQ(level);
|
||||
map.shuffleReactors();
|
||||
for (var i = 0; i < 5; i++) {
|
||||
var mob = em.getMonster(9300124);
|
||||
var mob2 = em.getMonster(9300125);
|
||||
var mob3 = em.getMonster(9300124);
|
||||
var mob4 = em.getMonster(9300125);
|
||||
eim.registerMonster(mob);
|
||||
eim.registerMonster(mob2);
|
||||
eim.registerMonster(mob3);
|
||||
eim.registerMonster(mob4);
|
||||
mob.changeDifficulty(level, isPq);
|
||||
mob2.changeDifficulty(level, isPq);
|
||||
mob3.changeDifficulty(level, isPq);
|
||||
mob4.changeDifficulty(level, isPq);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(430, 75));
|
||||
map.spawnMonsterOnGroundBelow(mob2, new java.awt.Point(1600, 75));
|
||||
map.spawnMonsterOnGroundBelow(mob3, new java.awt.Point(430, 238));
|
||||
map.spawnMonsterOnGroundBelow(mob4, new java.awt.Point(1600, 238));
|
||||
}
|
||||
map = eim.getInstanceMap(925100201);
|
||||
map.resetPQ(level);
|
||||
for (var i = 0; i < 10; i++) {
|
||||
var mob = em.getMonster(9300112);
|
||||
var mob2 = em.getMonster(9300113);
|
||||
eim.registerMonster(mob);
|
||||
eim.registerMonster(mob2);
|
||||
mob.changeDifficulty(level, isPq);
|
||||
mob2.changeDifficulty(level, isPq);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(0, 238));
|
||||
map.spawnMonsterOnGroundBelow(mob2, new java.awt.Point(1700, 238));
|
||||
}
|
||||
eim.getInstanceMap(925100202).resetPQ(level);
|
||||
map = eim.getInstanceMap(925100300);
|
||||
map.resetPQ(level);
|
||||
map.shuffleReactors();
|
||||
for (var i = 0; i < 5; i++) {
|
||||
var mob = em.getMonster(9300124);
|
||||
var mob2 = em.getMonster(9300125);
|
||||
var mob3 = em.getMonster(9300124);
|
||||
var mob4 = em.getMonster(9300125);
|
||||
eim.registerMonster(mob);
|
||||
eim.registerMonster(mob2);
|
||||
eim.registerMonster(mob3);
|
||||
eim.registerMonster(mob4);
|
||||
mob.changeDifficulty(level, isPq);
|
||||
mob2.changeDifficulty(level, isPq);
|
||||
mob3.changeDifficulty(level, isPq);
|
||||
mob4.changeDifficulty(level, isPq);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(430, 75));
|
||||
map.spawnMonsterOnGroundBelow(mob2, new java.awt.Point(1600, 75));
|
||||
map.spawnMonsterOnGroundBelow(mob3, new java.awt.Point(430, 238));
|
||||
map.spawnMonsterOnGroundBelow(mob4, new java.awt.Point(1600, 238));
|
||||
}
|
||||
map = eim.getInstanceMap(925100301);
|
||||
map.resetPQ(level);
|
||||
for (var i = 0; i < 10; i++) {
|
||||
var mob = em.getMonster(9300112);
|
||||
var mob2 = em.getMonster(9300113);
|
||||
eim.registerMonster(mob);
|
||||
eim.registerMonster(mob2);
|
||||
mob.changeDifficulty(level, isPq);
|
||||
mob2.changeDifficulty(level, isPq);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(0, 238));
|
||||
map.spawnMonsterOnGroundBelow(mob2, new java.awt.Point(1700, 238));
|
||||
}
|
||||
eim.getInstanceMap(925100302).resetPQ(level);
|
||||
eim.getInstanceMap(925100400).resetPQ(level);
|
||||
eim.getInstanceMap(925100500).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawnStages(eim) {
|
||||
var stg = eim.getIntProperty("stage2");
|
||||
if (stg < 3) { // thanks Chloek3, seth1, BHB for suggesting map respawn rather than waves on stg2
|
||||
eim.getMapInstance(925100100).spawnAllMonsterIdFromMapSpawnList(9300114 + stg, eim.getIntProperty("level"), true);
|
||||
}
|
||||
|
||||
eim.getMapInstance(925100400).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
var stg = eim.getIntProperty("stage2");
|
||||
if (stg < 3) { // thanks Chloek3, seth1, BHB for suggesting map respawn rather than waves on stg2
|
||||
eim.getMapInstance(925100100).spawnAllMonsterIdFromMapSpawnList(9300114 + stg, eim.getIntProperty("level"), true);
|
||||
}
|
||||
|
||||
eim.getMapInstance(925100400).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMapInside(eim, mapid) {
|
||||
var stage = eim.getIntProperty("curStage");
|
||||
|
||||
if(stage == 1) {
|
||||
if(mapid == 925100100) {
|
||||
eim.restartEventTimer(6 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 2);
|
||||
}
|
||||
} else if(stage == 2) {
|
||||
if(mapid == 925100200) {
|
||||
eim.restartEventTimer(6 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 3);
|
||||
}
|
||||
} else if(stage == 3) {
|
||||
if(mapid == 925100300) {
|
||||
eim.restartEventTimer(6 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 4);
|
||||
}
|
||||
} else if(stage == 4) {
|
||||
if(mapid == 925100400) {
|
||||
eim.restartEventTimer(6 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 5);
|
||||
}
|
||||
} else if(stage == 5) {
|
||||
if(mapid == 925100500) {
|
||||
eim.restartEventTimer(8 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 6);
|
||||
}
|
||||
var stage = eim.getIntProperty("curStage");
|
||||
|
||||
if (stage == 1) {
|
||||
if (mapid == 925100100) {
|
||||
eim.restartEventTimer(6 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 2);
|
||||
}
|
||||
} else if (stage == 2) {
|
||||
if (mapid == 925100200) {
|
||||
eim.restartEventTimer(6 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 3);
|
||||
}
|
||||
} else if (stage == 3) {
|
||||
if (mapid == 925100300) {
|
||||
eim.restartEventTimer(6 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 4);
|
||||
}
|
||||
} else if (stage == 4) {
|
||||
if (mapid == 925100400) {
|
||||
eim.restartEventTimer(6 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 5);
|
||||
}
|
||||
} else if (stage == 5) {
|
||||
if (mapid == 925100500) {
|
||||
eim.restartEventTimer(8 * 60 * 1000);
|
||||
eim.setIntProperty("curStage", 6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
changedMapInside(eim, mapid);
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
} else {
|
||||
changedMapInside(eim, mapid);
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerExit(eim, player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
var chests = parseInt(eim.getProperty("openedChests"));
|
||||
var expGain = (chests == 0 ? 28000 : (chests == 1 ? 35000 : 42000));
|
||||
eim.giveEventPlayersExp(expGain);
|
||||
|
||||
eim.warpEventTeam(925100600);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
var chests = parseInt(eim.getProperty("openedChests"));
|
||||
var expGain = (chests == 0 ? 28000 : (chests == 1 ? 35000 : 42000));
|
||||
eim.giveEventPlayersExp(expGain);
|
||||
|
||||
eim.warpEventTeam(925100600);
|
||||
}
|
||||
|
||||
function isLordPirate(mob) {
|
||||
var mobid = mob.getId();
|
||||
return (mobid == 9300105) || (mobid == 9300106) || (mobid == 9300107) || (mobid == 9300119);
|
||||
var mobid = mob.getId();
|
||||
return (mobid == 9300105) || (mobid == 9300106) || (mobid == 9300107) || (mobid == 9300119);
|
||||
}
|
||||
|
||||
function passedGrindMode(map, eim) {
|
||||
if(eim.getIntProperty("grindMode") == 0) return true;
|
||||
return eim.activatedAllReactorsOnMap(map, 2511000, 2517999);
|
||||
if (eim.getIntProperty("grindMode") == 0) {
|
||||
return true;
|
||||
}
|
||||
return eim.activatedAllReactorsOnMap(map, 2511000, 2517999);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
var map = mob.getMap();
|
||||
|
||||
if(isLordPirate(mob)) { // lord pirate defeated, spawn the little fella!
|
||||
map.broadcastStringMessage(5, "As Lord Pirate dies, Wu Yang is released!");
|
||||
eim.spawnNpc(2094001, new java.awt.Point(777, 140), mob.getMap());
|
||||
}
|
||||
|
||||
if(map.countMonsters() == 0) {
|
||||
var stage = ((map.getId() % 1000) / 100) + 1;
|
||||
|
||||
if((stage == 1 || stage == 3 || stage == 4) && passedGrindMode(map, eim)) {
|
||||
eim.showClearEffect(map.getId());
|
||||
} else if(stage == 5) {
|
||||
if(map.getReactorByName("sMob1").getState() >= 1 && map.getReactorByName("sMob2").getState() >= 1 && map.getReactorByName("sMob3").getState() >= 1 && map.getReactorByName("sMob4").getState() >= 1) {
|
||||
eim.showClearEffect(map.getId());
|
||||
}
|
||||
}
|
||||
var map = mob.getMap();
|
||||
|
||||
if (isLordPirate(mob)) { // lord pirate defeated, spawn the little fella!
|
||||
map.broadcastStringMessage(5, "As Lord Pirate dies, Wu Yang is released!");
|
||||
eim.spawnNpc(2094001, new java.awt.Point(777, 140), mob.getMap());
|
||||
}
|
||||
|
||||
if (map.countMonsters() == 0) {
|
||||
var stage = ((map.getId() % 1000) / 100) + 1;
|
||||
|
||||
if ((stage == 1 || stage == 3 || stage == 4) && passedGrindMode(map, eim)) {
|
||||
eim.showClearEffect(map.getId());
|
||||
} else if (stage == 5) {
|
||||
if (map.getReactorByName("sMob1").getState() >= 1 && map.getReactorByName("sMob2").getState() >= 1 && map.getReactorByName("sMob3").getState() >= 1 && map.getReactorByName("sMob4").getState() >= 1) {
|
||||
eim.showClearEffect(map.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -7,93 +7,95 @@ var eventMap = 910510000;
|
||||
var minMapId = 910510000;
|
||||
var maxMapId = 910510000;
|
||||
|
||||
function init(){}
|
||||
function init() {}
|
||||
|
||||
function setup(difficulty, lobbyId){
|
||||
var eim = em.newInstance("Puppeteer_" +lobbyId);
|
||||
eim.getInstanceMap(eventMap).resetFully();
|
||||
eim.getInstanceMap(eventMap).allowSummonState(false);
|
||||
respawn(eim);
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
function setup(difficulty, lobbyId) {
|
||||
var eim = em.newInstance("Puppeteer_" + lobbyId);
|
||||
eim.getInstanceMap(eventMap).resetFully();
|
||||
eim.getInstanceMap(eventMap).allowSummonState(false);
|
||||
respawn(eim);
|
||||
eim.startEventTimer(eventTimer);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim){}
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawn(eim){}
|
||||
function respawn(eim) {}
|
||||
|
||||
function playerEntry(eim, player){
|
||||
var cave = eim.getMapInstance(eventMap);
|
||||
player.changeMap(cave, 1);
|
||||
function playerEntry(eim, player) {
|
||||
var cave = eim.getMapInstance(eventMap);
|
||||
player.changeMap(cave, 1);
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim){
|
||||
var party = eim.getPlayers();
|
||||
function scheduledTimeout(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++)
|
||||
playerExit(eim, party.get(i));
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
|
||||
eim.dispose();
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerRevive(eim, player){
|
||||
player.respawn(eim, exitMap);
|
||||
return false;
|
||||
function playerRevive(eim, player) {
|
||||
player.respawn(eim, exitMap);
|
||||
return false;
|
||||
}
|
||||
|
||||
function playerDead(eim, player){}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerDisconnected(eim, player){
|
||||
var party = eim.getPlayers();
|
||||
function playerDisconnected(eim, player) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for(var i = 0; i < party.size(); i++){
|
||||
if(party.get(i).equals(player))
|
||||
removePlayer(eim, player);
|
||||
else
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
if (party.get(i).equals(player)) {
|
||||
removePlayer(eim, player);
|
||||
} else {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId){
|
||||
return -1;
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
function leftParty(eim, player){}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty(eim){}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function playerUnregistered(eim, player){}
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap);
|
||||
}
|
||||
|
||||
function changedMap(eim, chr, mapid){
|
||||
if(mapid < minMapId || mapid > maxMapId){
|
||||
removePlayer(eim, chr);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.dispose();
|
||||
}
|
||||
function changedMap(eim, chr, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
removePlayer(eim, chr);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
function removePlayer(eim, player){
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(exitMap);
|
||||
function removePlayer(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.getMap().removePlayer(player);
|
||||
player.setMap(exitMap);
|
||||
}
|
||||
|
||||
function cancelSchedule(){}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(){}
|
||||
function dispose() {}
|
||||
|
||||
function clearPQ(eim){}
|
||||
function clearPQ(eim) {}
|
||||
|
||||
function monsterKilled(mob, eim){}
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function allMonstersDead(eim){}
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
// ---------- FILLER FUNCTIONS ----------
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @author: kevintjuh93
|
||||
* @author: Ronan
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 1;
|
||||
@@ -18,79 +18,89 @@ var eventTime = 3; // 3 minutes
|
||||
const maxLobbies = 20;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("RescueGaga_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("falls", "0");
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("RescueGaga_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("stage", "0");
|
||||
eim.setProperty("falls", "0");
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -98,54 +108,54 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.showEffect("event/space/start"));
|
||||
player.startMapEffect("Please rescue Gaga within the time limit.", 5120027);
|
||||
const PacketCreator = Java.type('tools.PacketCreator');
|
||||
player.sendPacket(PacketCreator.showEffect("event/space/start"));
|
||||
player.startMapEffect("Please rescue Gaga within the time limit.", 5120027);
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
|
||||
player.changeMap(mapid, 0);
|
||||
player.cancelEffect(2360002);
|
||||
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
|
||||
player.changeMap(mapid, 0);
|
||||
player.cancelEffect(2360002);
|
||||
}
|
||||
} else if (mapid == maxMapId) {
|
||||
eim.clearPQ();
|
||||
|
||||
var rgaga = player.getEvents().get("rescueGaga");
|
||||
rgaga.complete();
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
|
||||
player.changeMap(mapid, 0);
|
||||
player.cancelEffect(2360002);
|
||||
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
|
||||
player.changeMap(mapid, 0);
|
||||
player.cancelEffect(2360002);
|
||||
}
|
||||
} else if (mapid == maxMapId) {
|
||||
eim.clearPQ();
|
||||
|
||||
var rgaga = player.getEvents().get("rescueGaga");
|
||||
rgaga.complete();
|
||||
}
|
||||
}
|
||||
|
||||
function afterChangedMap(eim, player, mapid) {
|
||||
if (mapid == minMapId) {
|
||||
player.getAbstractPlayerInteraction().useItem(2360002);//HOORAY <3
|
||||
} else {
|
||||
player.cancelEffect(2360002);
|
||||
}
|
||||
if (mapid == minMapId) {
|
||||
player.getAbstractPlayerInteraction().useItem(2360002);//HOORAY <3
|
||||
} else {
|
||||
player.cancelEffect(2360002);
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {}
|
||||
@@ -153,21 +163,21 @@ function changedLeader(eim, leader) {}
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {}
|
||||
@@ -175,31 +185,31 @@ function leftParty(eim, player) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.schedule("spawnGrandpaBunny", 10 * 1000);
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
eim.schedule("spawnGrandpaBunny", 10 * 1000);
|
||||
}
|
||||
|
||||
function spawnGrandpaBunny(eim) {
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.spawnNpc(9001105, new Point(175, -20), eim.getInstanceMap(maxMapId));
|
||||
const Point = Java.type('java.awt.Point');
|
||||
eim.spawnNpc(9001105, new Point(175, -20), eim.getInstanceMap(maxMapId));
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -40,9 +40,9 @@ function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("RockSpirit_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
respawn(eim);
|
||||
eim.startEventTimer(timer);
|
||||
eim.startEventTimer(timer);
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -76,9 +76,9 @@ function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
@@ -86,13 +86,13 @@ function changedMap(eim, player, mapid) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim,mobId) {
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,38 +31,38 @@ var fightTime = 30;
|
||||
var timer = 1000 * 60 * fightTime;
|
||||
|
||||
function init() {
|
||||
exitMap = em.getChannelServer().getMapFactory().getMap(103040400);
|
||||
entryMap = em.getChannelServer().getMapFactory().getMap(103040440);
|
||||
otherMap = em.getChannelServer().getMapFactory().getMap(103040450);
|
||||
exitMap = em.getChannelServer().getMapFactory().getMap(103040400);
|
||||
entryMap = em.getChannelServer().getMapFactory().getMap(103040440);
|
||||
otherMap = em.getChannelServer().getMapFactory().getMap(103040450);
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("RockSpiritVIP_" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
|
||||
respawn(eim);
|
||||
eim.startEventTimer(timer);
|
||||
return eim;
|
||||
eim.startEventTimer(timer);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
|
||||
function respawn(eim) {
|
||||
var map = eim.getMapInstance(entryMap.getId());
|
||||
var map2 = eim.getMapInstance(otherMap.getId());
|
||||
map.allowSummonState(true);
|
||||
map2.allowSummonState(true);
|
||||
map.instanceMapRespawn();
|
||||
map2.instanceMapRespawn();
|
||||
eim.schedule("respawn", 10000);
|
||||
var map = eim.getMapInstance(entryMap.getId());
|
||||
var map2 = eim.getMapInstance(otherMap.getId());
|
||||
map.allowSummonState(true);
|
||||
map2.allowSummonState(true);
|
||||
map.instanceMapRespawn();
|
||||
map2.instanceMapRespawn();
|
||||
eim.schedule("respawn", 10000);
|
||||
}
|
||||
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var amplifierMap = eim.getMapInstance(entryMap.getId());
|
||||
player.changeMap(amplifierMap, 1);
|
||||
eim.schedule("timeOut", timer);
|
||||
var amplifierMap = eim.getMapInstance(entryMap.getId());
|
||||
player.changeMap(amplifierMap, 1);
|
||||
eim.schedule("timeOut", timer);
|
||||
}
|
||||
|
||||
function playerRevive(eim, player) {
|
||||
@@ -76,9 +76,9 @@ function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
@@ -86,13 +86,13 @@ function changedMap(eim, player, mapid) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim,mobId) {
|
||||
function monsterValue(eim, mobId) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Scarga Battle
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 6, maxPlayers = 30;
|
||||
@@ -39,7 +39,7 @@ var eventTime = 60; // 60 minutes for boss stg
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
@@ -47,40 +47,46 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [1102145, 1102084, 1102085, 1102086, 1102087, 1052165, 1052166, 1052167, 1402013, 1332030, 1032030, 1032070, 4003000, 4000030, 4006000, 4006001, 4005000, 4005001, 4005002, 4005003, 4005004, 2022016, 2022263, 2022264, 2022015, 2022306, 2022307, 2022306, 2022113];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 50, 50, 120, 120, 4, 4, 4, 4, 2, 125, 125, 125, 30, 30, 30, 30, 30];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = []; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [1102145, 1102084, 1102085, 1102086, 1102087, 1052165, 1052166, 1052167, 1402013, 1332030, 1032030, 1032070, 4003000, 4000030, 4006000, 4006001, 4005000, 4005001, 4005002, 4005003, 4005004, 2022016, 2022263, 2022264, 2022015, 2022306, 2022307, 2022306, 2022113];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 50, 50, 120, 120, 4, 4, 4, 4, 2, 125, 125, 125, 30, 30, 30, 30, 30];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = []; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -92,11 +98,11 @@ function setup(channel) {
|
||||
|
||||
var level = 1;
|
||||
eim.getInstanceMap(551030200).resetPQ(level);
|
||||
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -112,12 +118,11 @@ function scheduledTimeout(eim) {
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
@@ -133,8 +138,7 @@ function playerRevive(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
@@ -145,16 +149,15 @@ function playerDisconnected(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty (eim, player) {}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty (eim) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
@@ -185,18 +188,18 @@ function clearPQ(eim) {
|
||||
}
|
||||
|
||||
function isScarga(mob) {
|
||||
var mobid = mob.getId();
|
||||
return (mobid == 9420544) || (mobid == 9420549);
|
||||
var mobid = mob.getId();
|
||||
return (mobid == 9420544) || (mobid == 9420549);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isScarga(mob)) {
|
||||
if (isScarga(mob)) {
|
||||
var killed = eim.getIntProperty("defeatedBoss");
|
||||
if(killed == 1) {
|
||||
if (killed == 1) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
|
||||
|
||||
eim.setIntProperty("defeatedBoss", killed + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Showa Boss Battle
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 3, maxPlayers = 30;
|
||||
@@ -39,7 +39,7 @@ var eventTime = 60; // 60 minutes for boss stg
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
@@ -47,40 +47,46 @@ function getMaxLobbies() {
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
var itemSet, itemQty, evLevel, expStages, mesoStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [1102145, 1102084, 1102085, 1102086, 1102087, 1052165, 1052166, 1052167, 1402013, 1332030, 1032030, 1032070, 4003000, 4000030, 4006000, 4006001, 4005000, 4005001, 4005002, 4005003, 4005004, 2022016, 2022263, 2022264, 2022015, 2022306, 2022307, 2022306, 2022113];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 40, 40, 100, 100, 2, 2, 2, 2, 1, 100, 100, 100, 40, 40, 40, 40, 40];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = []; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [1102145, 1102084, 1102085, 1102086, 1102087, 1052165, 1052166, 1052167, 1402013, 1332030, 1032030, 1032070, 4003000, 4000030, 4006000, 4006001, 4005000, 4005001, 4005002, 4005003, 4005004, 2022016, 2022263, 2022264, 2022015, 2022306, 2022307, 2022306, 2022113];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 40, 40, 100, 100, 2, 2, 2, 2, 1, 100, 100, 100, 40, 40, 40, 40, 40];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
|
||||
mesoStages = []; //bonus meso given on CLEAR stage signal
|
||||
eim.setEventClearStageMeso(mesoStages);
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -92,12 +98,12 @@ function setup(channel) {
|
||||
|
||||
var level = 1;
|
||||
eim.getInstanceMap(801040100).resetPQ(level);
|
||||
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
|
||||
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -119,12 +125,11 @@ function scheduledTimeout(eim) {
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
if (eim.isExpeditionTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
@@ -142,8 +147,7 @@ function playerRevive(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
@@ -154,16 +158,15 @@ function playerDisconnected(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the instance.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty (eim, player) {}
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty (eim) {}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
@@ -190,11 +193,11 @@ function giveRandomEventReward(eim, player) {
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.getInstanceMap(801040100).killAllMonsters();
|
||||
|
||||
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
if(eim.getIntProperty("playerDied") == 0) {
|
||||
|
||||
if (eim.getIntProperty("playerDied") == 0) {
|
||||
var mob = eim.getMonster(9400114);
|
||||
eim.getMapInstance(801040101).spawnMonsterOnGroundBelow(mob, new java.awt.Point(500, -50));
|
||||
eim.dropMessage(5, "Konpei: The Boss has been defeated with no casualties, well done! We found a suspicious machine inside, we're moving it out.");
|
||||
@@ -202,11 +205,11 @@ function clearPQ(eim) {
|
||||
}
|
||||
|
||||
function isTheBoss(mob) {
|
||||
return mob.getId() == 9400300;
|
||||
return mob.getId() == 9400300;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isTheBoss(mob)) {
|
||||
if (isTheBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
|
||||
@@ -6,15 +6,15 @@ var Subway_to_NLC;
|
||||
var NLC_docked;
|
||||
|
||||
//Time Setting is in millisecond
|
||||
var closeTime = 50 * 1000; //The time to close the gate
|
||||
var closeTime = 50 * 1000; //The time to close the gate
|
||||
var beginTime = 1 * 60 * 1000; //The time to begin the ride
|
||||
var rideTime = 4 * 60 * 1000; //The time that require move to destination
|
||||
var rideTime = 4 * 60 * 1000; //The time that require move to destination
|
||||
|
||||
function init() {
|
||||
closeTime = em.getTransportationTime(closeTime);
|
||||
beginTime = em.getTransportationTime(beginTime);
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
rideTime = em.getTransportationTime(rideTime);
|
||||
|
||||
KC_Waiting = em.getChannelServer().getMapFactory().getMap(600010004);
|
||||
NLC_Waiting = em.getChannelServer().getMapFactory().getMap(600010002);
|
||||
Subway_to_KC = em.getChannelServer().getMapFactory().getMap(600010003);
|
||||
@@ -32,7 +32,7 @@ function scheduleNew() {
|
||||
}
|
||||
|
||||
function stopEntry() {
|
||||
em.setProperty("entry","false");
|
||||
em.setProperty("entry", "false");
|
||||
}
|
||||
|
||||
function takeoff() {
|
||||
@@ -41,8 +41,8 @@ function takeoff() {
|
||||
//sound src: https://www.soundjay.com/transportation/metro-door-close-01.mp3
|
||||
KC_docked.broadcastMessage(PacketCreator.playSound("subway/whistle"));
|
||||
NLC_docked.broadcastMessage(PacketCreator.playSound("subway/whistle"));
|
||||
|
||||
em.setProperty("docked","false");
|
||||
|
||||
em.setProperty("docked", "false");
|
||||
KC_Waiting.warpEveryone(Subway_to_NLC.getId());
|
||||
NLC_Waiting.warpEveryone(Subway_to_KC.getId());
|
||||
em.schedule("arrived", rideTime);
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Bergamot
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 2, maxPlayers = 6;
|
||||
@@ -41,80 +41,90 @@ var eventTime = 10; // 10 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -122,111 +132,111 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isTDBoss(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
if (isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Dunas
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 2, maxPlayers = 6;
|
||||
@@ -41,80 +41,90 @@ var eventTime = 10; // 10 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -122,111 +132,111 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isTDBoss(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
if (isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Aufheben
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 2, maxPlayers = 6;
|
||||
@@ -41,80 +41,90 @@ var eventTime = 15; // 15 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -122,111 +132,111 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isTDBoss(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
if (isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Oberon
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 2, maxPlayers = 6;
|
||||
@@ -41,80 +41,90 @@ var eventTime = 15; // 15 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -122,111 +132,111 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isTDBoss(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
if (isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Vs Nibelung
|
||||
*/
|
||||
*/
|
||||
|
||||
var isPq = true;
|
||||
var minPlayers = 2, maxPlayers = 6;
|
||||
@@ -41,80 +41,90 @@ var eventTime = 20; // 20 minutes
|
||||
const maxLobbies = 1;
|
||||
|
||||
function init() {
|
||||
setEventRequirements();
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function getMaxLobbies() {
|
||||
return maxLobbies;
|
||||
return maxLobbies;
|
||||
}
|
||||
|
||||
function setEventRequirements() {
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if(maxPlayers - minPlayers >= 1) reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
else reqStr += minPlayers;
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if(maxLevel - minLevel >= 1) reqStr += minLevel + " ~ " + maxLevel;
|
||||
else reqStr += minLevel;
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
var reqStr = "";
|
||||
|
||||
reqStr += "\r\n Number of players: ";
|
||||
if (maxPlayers - minPlayers >= 1) {
|
||||
reqStr += minPlayers + " ~ " + maxPlayers;
|
||||
} else {
|
||||
reqStr += minPlayers;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Level range: ";
|
||||
if (maxLevel - minLevel >= 1) {
|
||||
reqStr += minLevel + " ~ " + maxLevel;
|
||||
} else {
|
||||
reqStr += minLevel;
|
||||
}
|
||||
|
||||
reqStr += "\r\n Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
var itemSet = [];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
var itemSet, itemQty, evLevel, expStages;
|
||||
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
evLevel = 1; //Rewards at clear PQ
|
||||
itemSet = [];
|
||||
itemQty = [];
|
||||
eim.setEventRewards(evLevel, itemSet, itemQty);
|
||||
|
||||
expStages = []; //bonus exp given on CLEAR stage signal
|
||||
eim.setEventClearStageExp(expStages);
|
||||
}
|
||||
|
||||
function getEligibleParty(party) { //selects, from the given party, the team that is allowed to attempt this event
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
if(party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
var eligible = [];
|
||||
var hasLeader = false;
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
if (party.size() > 0) {
|
||||
var partyList = party.toArray();
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
}
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if (ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if (ch.isLeader()) {
|
||||
hasLeader = true;
|
||||
}
|
||||
eligible.push(ch);
|
||||
}
|
||||
}
|
||||
|
||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
if (!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) {
|
||||
eligible = [];
|
||||
}
|
||||
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
|
||||
}
|
||||
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
var eim = em.newInstance("TDBoss" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("boss", "0");
|
||||
|
||||
eim.getInstanceMap(240070203).resetPQ(level);
|
||||
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -122,111 +132,111 @@ function afterSetup(eim) {}
|
||||
function respawnStages(eim) {}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function playerLeft(eim, player) {
|
||||
if(!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
playerExit(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
var mapid = leader.getMapId();
|
||||
if (!eim.isEventCleared() && (mapid < minMapId || mapid > maxMapId)) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) { // player presses ok on the death pop up.
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
eim.unregisterPlayer(player);
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
} else {
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
}
|
||||
else
|
||||
playerLeft(eim, player);
|
||||
if (eim.isEventTeamLackingNow(false, minPlayers, player)) {
|
||||
end(eim);
|
||||
} else {
|
||||
playerLeft(eim, player);
|
||||
}
|
||||
}
|
||||
|
||||
function disbandParty(eim) {
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
if (!eim.isEventCleared()) {
|
||||
end(eim);
|
||||
}
|
||||
}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
var party = eim.getPlayers();
|
||||
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function isTDBoss(mob) {
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
var mobid = mob.getId();
|
||||
return mobid == tdBossId;
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {
|
||||
if(isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
if (isTDBoss(mob)) {
|
||||
eim.showClearEffect();
|
||||
eim.clearPQ();
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user