sweetgum83/scripts/event/s4aWorld.js
2024-01-19 03:56:28 -05:00

130 lines
2.8 KiB
JavaScript

/*
* 4th Job Snipe / Concentration
*/
var minPlayers = 1;
function init() {
em.setProperty("started", "false");
}
function monsterValue(eim, mobId) {
return 1;
}
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();
for (var i = 0; i < party.size(); i++) {
var ch = partyList[i];
if (ch.getMapId() == 105090200 && ch.getLevel() >= 120) {
if (ch.isLeader()) {
hasLeader = true;
}
eligible.push(ch);
}
}
}
if (!(hasLeader && eligible.length >= minPlayers)) {
eligible = [];
}
return Java.to(eligible, Java.type('net.server.world.PartyCharacter[]'));
}
function setup(level, lobbyid) {
var eim = em.newInstance("s4aWorld_" + lobbyid);
eim.setProperty("level", level);
eim.getInstanceMap(910500000).resetPQ(1);
respawnStages(eim);
eim.getMapInstance(910500000).instanceMapForceRespawn();
eim.startEventTimer(1200000);
em.setProperty("started", "true");
return eim;
}
function afterSetup(eim) {}
function respawnStages(eim) {
eim.getMapInstance(910500000).instanceMapRespawn();
eim.schedule("respawnStages", 15 * 1000);
}
function playerEntry(eim, player) {
var map = eim.getMapFactory().getMap(910500000);
player.changeMap(map, map.getPortal(0));
}
function playerDead(eim, player) {
}
function playerRevive(eim, player) {
}
function scheduledTimeout(eim) {
eim.disposeIfPlayerBelow(100, 105090200);
em.setProperty("started", "false");
}
function changedMap(eim, player, mapid) {
if (mapid != 910500000) {
eim.unregisterPlayer(player);
if (eim.disposeIfPlayerBelow(minPlayers, 105090200)) {
em.setProperty("started", "false");
}
}
}
function playerDisconnected(eim, player) {
return 0;
}
function leftParty(eim, player) {
// If only 2 players are left, uncompletable:
playerExit(eim, player);
}
function disbandParty(eim) {
//boot whole party and end
eim.disposeIfPlayerBelow(100, 105090200);
em.setProperty("started", "false");
}
function playerUnregistered(eim, player) {}
function playerExit(eim, player) {
eim.unregisterPlayer(player);
var map = eim.getMapFactory().getMap(105090200);
player.changeMap(map, map.getPortal(0));
}
function clearPQ(eim) {
eim.disposeIfPlayerBelow(100, 105090200);
em.setProperty("started", "false");
}
function monsterKilled(mob, eim) {}
function allMonstersDead(eim) {}
function cancelSchedule() {}
function dispose() {}
// ---------- FILLER FUNCTIONS ----------
function changedLeader(eim, leader) {}