More PQ-esque script modules + HP Bar on some bosses
Completed (hopefully, now!) implementation of automated modules for PQ scripting. Added HP bar for some bosses that wouldn't display it before (like King Slime, Alishar and CRog).
This commit is contained in:
@@ -6,32 +6,56 @@ var exitMap = 970030000;
|
||||
var recruitMap = 970030000;
|
||||
var clearMap = 970030000;
|
||||
|
||||
var minMapId = 970030001;
|
||||
var maxMapId = 970042711;
|
||||
|
||||
var lobbyRange = [0, 7];
|
||||
|
||||
function init() {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function setLobbyRange() {
|
||||
return lobbyRange;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
var itemSet, itemQty, evLevel;
|
||||
|
||||
evLevel = 6; //Rewards at event completion
|
||||
itemSet = [1122018, 1122005, 1022088, 1402013, 1032048, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022179, 2022180, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||
itemSet = [1122018, 1122005, 1022088, 1402013, 1032048, 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, 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 = [1122018, 1122005, 1022088, 1402013, 1032048, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022179, 2022180, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||
itemQty = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 8, 8, 8, 8, 8, 12];
|
||||
itemSet = [1122018, 1122005, 1022088, 1402013, 1032048, 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, 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, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8];
|
||||
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, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5];
|
||||
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
|
||||
@@ -50,36 +74,35 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
||||
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() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
var partyList = party.toArray();
|
||||
|
||||
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 eligible;
|
||||
}
|
||||
|
||||
function setup(level, leaderid) {
|
||||
em.setProperty("state", "1");
|
||||
em.setProperty("leader", "true");
|
||||
|
||||
var eim = em.newInstance("BossRush" + leaderid);
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("BossRush" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
eim.setProperty("lobby", lobbyid);
|
||||
|
||||
eim.startEventTimer(45 * 60000); //45 mins
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
var map = eim.getMapInstance(entryMap);
|
||||
var map = eim.getMapInstance(entryMap + eim.getIntProperty("lobby"));
|
||||
player.changeMap(map, map.getPortal(0));
|
||||
}
|
||||
|
||||
@@ -93,7 +116,7 @@ function playerExit(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < 970030001 || mapid > 970042711) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
@@ -103,6 +126,13 @@ function changedMap(eim, player, mapid) {
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
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.
|
||||
@@ -143,26 +173,17 @@ function end(eim) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
|
||||
em.schedule("reopenEvent", 10 * 1000); // leaders have 10 seconds cooldown to reach recruit map and retry for a new PQ.
|
||||
}
|
||||
|
||||
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.
|
||||
|
||||
em.schedule("reopenEvent", 10 * 1000); // leaders have 10 seconds cooldown to reach recruit map and retry for a new PQ.
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
eim.giveEventReward(player);
|
||||
}
|
||||
|
||||
function reopenEvent() {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
@@ -1,42 +1,70 @@
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 6;
|
||||
var minLevel = 1, maxLevel = 200;
|
||||
var minPlayers = 4, maxPlayers = 6;
|
||||
var minLevel = 44, maxLevel = 55;
|
||||
var entryMap = 930000000;
|
||||
var exitMap = 930000800;
|
||||
var recruitMap = 300030100;
|
||||
var clearMap = 930000800;
|
||||
|
||||
var minMapId = 930000000;
|
||||
var maxMapId = 930000800;
|
||||
|
||||
var lobbyRange = [0, 0];
|
||||
|
||||
function init() {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function setLobbyRange() {
|
||||
return lobbyRange;
|
||||
}
|
||||
|
||||
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.";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
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();
|
||||
|
||||
for(var i = 0; i < party.size(); i++) {
|
||||
var ch = partyList[i];
|
||||
|
||||
if(ch.getMapId() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel && ch.getJob().getId() / 1000 == 0) { //only adventurers
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
var partyList = party.toArray();
|
||||
|
||||
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 eligible;
|
||||
}
|
||||
|
||||
function setup(level, leaderid) {
|
||||
em.setProperty("state", "1");
|
||||
em.setProperty("leader", "true");
|
||||
|
||||
var eim = em.newInstance("Ellin" + leaderid);
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Ellin" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
eim.setInstanceMap(930000000).resetPQ(level);
|
||||
@@ -51,7 +79,10 @@ function setup(level, leaderid) {
|
||||
eim.setInstanceMap(930000700).resetPQ(level);
|
||||
|
||||
respawnStg2(eim);
|
||||
|
||||
eim.startEventTimer(30 * 60000); //30 mins
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
@@ -61,7 +92,7 @@ function respawnStg2(eim) {
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < 930000000 || mapid > 930000800) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
@@ -71,6 +102,13 @@ function changedMap(eim, player, mapid) {
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
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));
|
||||
@@ -125,21 +163,13 @@ function end(eim) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
|
||||
em.schedule("reopenEvent", 10 * 1000); // leaders have 10 seconds cooldown to reach recruit map and retry for a new PQ.
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.warpEventTeam(toMap);
|
||||
|
||||
em.schedule("reopenEvent", 10 * 1000); // leaders have 10 seconds cooldown to reach recruit map and retry for a new PQ.
|
||||
}
|
||||
|
||||
function reopenEvent() {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
eim.warpEventTeam(930000800);
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -1,14 +1,41 @@
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 6;
|
||||
var minLevel = 1, maxLevel = 200;
|
||||
var minPlayers = 4, maxPlayers = 6;
|
||||
var minLevel = 21, maxLevel = 30;
|
||||
var entryMap = 103000800;
|
||||
var exitMap = 103000890;
|
||||
var recruitMap = 103000000;
|
||||
var clearMap = 103000805;
|
||||
|
||||
var minMapId = 103000800;
|
||||
var maxMapId = 103000805;
|
||||
|
||||
var lobbyRange = [0, 0];
|
||||
|
||||
function init() {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function setLobbyRange() {
|
||||
return lobbyRange;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001007, 4001008];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
@@ -28,38 +55,37 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
||||
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() == recruitMap && ch.getLevel() >= minLevel && ch.getLevel() <= maxLevel) {
|
||||
if(ch.isLeader()) hasLeader = true;
|
||||
eligible.push(ch);
|
||||
var partyList = party.toArray();
|
||||
|
||||
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 eligible;
|
||||
}
|
||||
|
||||
function setup(level, leaderid) {
|
||||
em.setProperty("state", "1");
|
||||
em.setProperty("leader", "true");
|
||||
|
||||
var eim = em.newInstance("Kerning" + leaderid);
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Kerning" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
respawnStg1(eim);
|
||||
respawnStages(eim);
|
||||
eim.startEventTimer(30 * 60000); //30 mins
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function respawnStg1(eim) {
|
||||
function respawnStages(eim) {
|
||||
eim.getMapInstance(103000800).instanceMapRespawn();
|
||||
eim.schedule("respawnStg1", 10 * 1000);
|
||||
eim.getMapInstance(103000805).instanceMapRespawn();
|
||||
eim.schedule("respawnStages", 10 * 1000);
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
@@ -77,7 +103,7 @@ function playerExit(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < 103000800 || mapid > 103000805) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
@@ -87,6 +113,13 @@ function changedMap(eim, player, mapid) {
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
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.
|
||||
@@ -130,8 +163,6 @@ function end(eim) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
|
||||
em.schedule("reopenEvent", 10 * 1000); // leaders have 10 seconds cooldown to reach recruit map and retry for a new PQ.
|
||||
}
|
||||
|
||||
function giveRandomEventReward(eim, player) {
|
||||
@@ -141,13 +172,6 @@ function giveRandomEventReward(eim, player) {
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
|
||||
em.schedule("reopenEvent", 10 * 1000); // leaders have 10 seconds cooldown to reach recruit map and retry for a new PQ.
|
||||
}
|
||||
|
||||
function reopenEvent() {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
@@ -1,53 +1,79 @@
|
||||
var isPq = true;
|
||||
var minPlayers = 1, maxPlayers = 6;
|
||||
var minLevel = 1, maxLevel = 200;
|
||||
var minPlayers = 3, maxPlayers = 6;
|
||||
var minLevel = 55, maxLevel = 100;
|
||||
var entryMap = 925100000;
|
||||
var exitMap = 925100700;
|
||||
var recruitMap = 251010404;
|
||||
var clearMap = 925100600;
|
||||
|
||||
var minMapId = 925100000;
|
||||
var maxMapId = 925100500;
|
||||
|
||||
var lobbyRange = [0, 0];
|
||||
|
||||
function init() {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
setEventRequirements();
|
||||
}
|
||||
|
||||
function setLobbyRange() {
|
||||
return lobbyRange;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
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();
|
||||
|
||||
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);
|
||||
var partyList = party.toArray();
|
||||
|
||||
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 eligible;
|
||||
}
|
||||
|
||||
function setup(level, leaderid) {
|
||||
em.setProperty("state", "1");
|
||||
em.setProperty("leader", "true");
|
||||
|
||||
var eim = em.newInstance("Pirate" + leaderid);
|
||||
function setup(level, lobbyid) {
|
||||
var eim = em.newInstance("Pirate" + lobbyid);
|
||||
eim.setProperty("level", level);
|
||||
|
||||
em.setProperty("stage2", "0");
|
||||
em.setProperty("stage2a", "0");
|
||||
em.setProperty("stage3a", "0");
|
||||
em.setProperty("stage2b", "0");
|
||||
em.setProperty("stage3b", "0");
|
||||
em.setProperty("stage4", "0");
|
||||
em.setProperty("stage5", "0");
|
||||
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");
|
||||
|
||||
em.setProperty("openedChests", "0");
|
||||
eim.setProperty("openedChests", "0");
|
||||
eim.setInstanceMap(925100000).resetPQ(level);
|
||||
eim.setInstanceMap(925100000).shuffleReactors();
|
||||
|
||||
@@ -124,11 +150,14 @@ function setup(level, leaderid) {
|
||||
eim.setInstanceMap(925100500).resetPQ(level);
|
||||
|
||||
respawnStg4(eim);
|
||||
|
||||
eim.startEventTimer(20 * 60000); //20 mins
|
||||
setEventRewards(eim);
|
||||
setEventExclusives(eim);
|
||||
return eim;
|
||||
}
|
||||
|
||||
function respawnStg4(eim) {
|
||||
function respawnStg4(eim) {
|
||||
eim.getMapInstance(925100400).instanceMapRespawn();
|
||||
eim.schedule("respawnStg4", 10 * 1000);
|
||||
}
|
||||
@@ -148,7 +177,7 @@ function playerExit(eim, player) {
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < 925100000 || mapid > 925100500) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
@@ -158,6 +187,13 @@ function changedMap(eim, player, mapid) {
|
||||
}
|
||||
}
|
||||
|
||||
function changedLeader(eim, leader) {
|
||||
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.
|
||||
@@ -198,25 +234,22 @@ function end(eim) {
|
||||
playerExit(eim, party.get(i));
|
||||
}
|
||||
eim.dispose();
|
||||
|
||||
em.schedule("reopenEvent", 10 * 1000); // leaders have 10 seconds cooldown to reach recruit map and retry for a new PQ.
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
eim.warpEventTeam(toMap);
|
||||
|
||||
em.schedule("reopenEvent", 10 * 1000); // leaders have 10 seconds cooldown to reach recruit map and retry for a new PQ.
|
||||
eim.warpEventTeam(925100600);
|
||||
}
|
||||
|
||||
function reopenEvent() {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
function monsterKilled(mob, eim) {
|
||||
if(mob.isBoss()) { // lord pirate defeated, spawn the little fella!
|
||||
mob.getMap().broadcastStringMessage(5, "As Lord Pirate dies, Wu Yang is released!");
|
||||
eim.spawnNpc(2094001, new java.awt.Point(777, 140), mob.getMap());
|
||||
}
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
function cancelSchedule() {}
|
||||
|
||||
@@ -6,10 +6,7 @@
|
||||
*/
|
||||
|
||||
var status = 0;
|
||||
var minLevel = 1;
|
||||
var maxLevel = 200;
|
||||
var minPartySize = 1;
|
||||
var maxPartySize = 6;
|
||||
var em = null;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
@@ -28,9 +25,16 @@ function action(mode, type, selection) {
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
|
||||
if (status == 0) {
|
||||
cm.sendSimple("#b<Party Quest: Pirate PQ>#k\r\n\r\nHelp! My son has been kidnapped and is bound on the hands of the fearful #rLord Pirate#k. I need your help... Would you please assemble or join a team to save him? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.");
|
||||
em = cm.getEventManager("PiratePQ");
|
||||
if(em == null) {
|
||||
cm.sendOk("The Pirate PQ has encountered an error.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
cm.sendSimple("#b<Party Quest: Pirate Ship>\r\n#k" + em.getProperty("party") + "\r\n\r\nHelp! My son has been kidnapped and is bound on the hands of the fearful #rLord Pirate#k. I need your help... Would you please assemble or join a team to save him? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.");
|
||||
} else if (status == 1) {
|
||||
if (selection == 0) {
|
||||
if (cm.getParty() == null) {
|
||||
@@ -40,37 +44,23 @@ function action(mode, type, selection) {
|
||||
cm.sendOk("Your party leader must talk to me to start this party quest.");
|
||||
cm.dispose();
|
||||
} else {
|
||||
var em = cm.getEventManager("PiratePQ");
|
||||
if(em == null) {
|
||||
cm.sendOk("The Pirate PQ has encountered an error.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
var eli = em.getEligibleParty(cm.getParty());
|
||||
if(eli.size() > 0) {
|
||||
var prop = em.getProperty("state");
|
||||
if (prop != null && prop.equals("0")) {
|
||||
if(!em.startInstance(cm.getParty(), cm.getPlayer().getMap(), 1)) {
|
||||
cm.sendOk("A party in your name is already registered in this event.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.sendOk("Another party has already entered the #rParty Quest#k in this channel. Please try another channel, or wait for the current party to finish.");
|
||||
cm.dispose();
|
||||
if(!em.startInstance(0, cm.getParty(), cm.getPlayer().getMap(), 1)) {
|
||||
cm.sendOk("Another party has already entered the #rParty Quest#k in this channel. Please try another channel, or wait for the current party to finish.");
|
||||
}
|
||||
}
|
||||
else {
|
||||
cm.sendOk("You cannot start this party quest yet, because either your party is not in the range size, some of your party members are not eligible to attempt it or they are not in this map. If you're having trouble finding party members, try Party Search.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
} else if (selection == 1) {
|
||||
cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!");
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.sendOk("#b<Party Quest: Pirate PQ>#k\r\nIn this PQ, your mission is to progressively make your way through the ship, taking on all pirates and baddies in your path. Reaching the #rLord Pirate#k, depending on how many great chests you opened on the stages before, the boss will reveal himself even more powerful, so stay alert. Said chests, if opened, gives many extra rewards to your crew, it's worth a shot! Good luck.");
|
||||
cm.sendOk("#b<Party Quest: Pirate Ship>#k\r\nIn this PQ, your mission is to progressively make your way through the ship, taking on all pirates and baddies in your path. Reaching the #rLord Pirate#k, depending on how many great chests you opened on the stages before, the boss will reveal himself even more powerful, so stay alert. Said chests, if opened, gives many extra rewards to your crew, it's worth a shot! Good luck.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,66 +40,81 @@ function action(mode, type, selection) {
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
if (status == 0) {
|
||||
cm.removeAll(4001117);
|
||||
cm.removeAll(4001120);
|
||||
cm.removeAll(4001121);
|
||||
cm.removeAll(4001122);
|
||||
cm.sendSimple("Thank you for saving me! How can I help you?\r\n#b#L0#Get me out of here.\r\n#L1#Give me Pirate Hat.");
|
||||
} else if (status == 1) {
|
||||
if (selection == 0) {
|
||||
if (!cm.canHold(4001129, 1)) {
|
||||
cm.sendOk("Please make room in ETC.");
|
||||
cm.dispose();
|
||||
return;
|
||||
|
||||
if(cm.getMapId() == 925100500) {
|
||||
if (status == 0) {
|
||||
if(cm.isLeader()) {
|
||||
cm.sendOk("I have been saved thanks to your efforts! Thank you, guys!");
|
||||
}
|
||||
cm.gainItem(4001129, 1);
|
||||
cm.warp(251010404,0);
|
||||
} else {
|
||||
if (cm.haveItem(1003267, 1)) {
|
||||
cm.sendOk("You have the best hat.");
|
||||
} else if (cm.haveItem(1002573, 1)) {
|
||||
if (cm.haveItem(4001129, 20)) {
|
||||
if (cm.canHold(1003267,1)) {
|
||||
cm.gainItem(1002573, -1);
|
||||
cm.gainItem(4001129, -20);
|
||||
cm.gainItem(1003267,1);
|
||||
cm.sendOk("I have given you the hat.");
|
||||
} else {
|
||||
cm.sendOk("Please make room in your EQUIP inventory before receiving the hat.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("You need 20 #t4001129# to get the next hat.");
|
||||
}
|
||||
} else if (cm.haveItem(1002572, 1)) {
|
||||
if (cm.haveItem(4001129, 20)) {
|
||||
if (cm.canHold(1002573,1)) {
|
||||
cm.gainItem(1002572, -1);
|
||||
cm.gainItem(4001129, -20);
|
||||
cm.gainItem(1002573,1);
|
||||
cm.sendOk("I have given you the hat.");
|
||||
} else {
|
||||
cm.sendOk("Please make room in your EQUIP inventory before receiving the hat.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("You need 20 #t4001129# to get the next hat.");
|
||||
}
|
||||
} else {
|
||||
if (cm.haveItem(4001129, 20)) {
|
||||
if (cm.canHold(1002572,1)) {
|
||||
cm.gainItem(4001129, -20);
|
||||
cm.gainItem(1002572,1);
|
||||
cm.sendOk("I have given you the hat.");
|
||||
} else {
|
||||
cm.sendOk("Please make room in your EQUIP inventory before receiving the hat.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("You need 20 #t4001129# to get the next hat.");
|
||||
}
|
||||
else {
|
||||
cm.sendOk("I have been saved thanks to your efforts! Thank you, guys! Let your party leader talk to me first before I give you your rewards...");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
else {
|
||||
cm.getEventInstance().clearPQ();
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (status == 0) {
|
||||
cm.sendSimple("Thank you for saving me! How can I help you?\r\n#b#L0#Get me out of here.\r\n#L1#Give me Pirate Hat.");
|
||||
} else if (status == 1) {
|
||||
if (selection == 0) {
|
||||
if (!cm.canHold(4001129, 1)) {
|
||||
cm.sendOk("Please make room in ETC.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
cm.gainItem(4001129, 1);
|
||||
cm.warp(251010404,0);
|
||||
} else {
|
||||
if (cm.haveItem(1003267, 1)) {
|
||||
cm.sendOk("You have the best hat.");
|
||||
} else if (cm.haveItem(1002573, 1)) {
|
||||
if (cm.haveItem(4001129, 20)) {
|
||||
if (cm.canHold(1003267,1)) {
|
||||
cm.gainItem(1002573, -1);
|
||||
cm.gainItem(4001129, -20);
|
||||
cm.gainItem(1003267,1);
|
||||
cm.sendOk("I have given you the hat.");
|
||||
} else {
|
||||
cm.sendOk("Please make room in your EQUIP inventory before receiving the hat.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("You need 20 #t4001129# to get the next hat.");
|
||||
}
|
||||
} else if (cm.haveItem(1002572, 1)) {
|
||||
if (cm.haveItem(4001129, 20)) {
|
||||
if (cm.canHold(1002573,1)) {
|
||||
cm.gainItem(1002572, -1);
|
||||
cm.gainItem(4001129, -20);
|
||||
cm.gainItem(1002573,1);
|
||||
cm.sendOk("I have given you the hat.");
|
||||
} else {
|
||||
cm.sendOk("Please make room in your EQUIP inventory before receiving the hat.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("You need 20 #t4001129# to get the next hat.");
|
||||
}
|
||||
} else {
|
||||
if (cm.haveItem(4001129, 20)) {
|
||||
if (cm.canHold(1002572,1)) {
|
||||
cm.gainItem(4001129, -20);
|
||||
cm.gainItem(1002572,1);
|
||||
cm.sendOk("I have given you the hat.");
|
||||
} else {
|
||||
cm.sendOk("Please make room in your EQUIP inventory before receiving the hat.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("You need 20 #t4001129# to get the next hat.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,123 +12,124 @@ function action(mode, type, selection) {
|
||||
status--;
|
||||
}
|
||||
if (cm.getPlayer().getMapId() == 925100700) {
|
||||
cm.removeAll(4001117);
|
||||
cm.removeAll(4001120);
|
||||
cm.removeAll(4001121);
|
||||
cm.removeAll(4001122);
|
||||
cm.warp(251010404,0);
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!cm.isLeader()) {
|
||||
cm.sendNext("I wish for your leader to talk to me.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
var eim = cm.getEventInstance();
|
||||
if (eim == null) {
|
||||
if(status == 1) { // leaders cant withdraw
|
||||
cm.warp(251010404,0);
|
||||
cm.sendNext("How are you even here without being registered on an event?");
|
||||
cm.dispose();
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
level = eim.getProperty("level");
|
||||
|
||||
switch(cm.getPlayer().getMapId()) {
|
||||
case 925100000:
|
||||
cm.sendNext("We are heading into the Pirate Ship now! To get in, we must destroy all the monsters guarding it.");
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100100:
|
||||
var emp = eim.getProperty("stage2");
|
||||
if (emp == null) {
|
||||
eim.setProperty("stage2", "0");
|
||||
emp = "0";
|
||||
}
|
||||
if (emp.equals("0")) {
|
||||
if (cm.haveItem(4001120,20)) {
|
||||
cm.sendNext("Excellent! Now hunt me 20 Rising Medals.");
|
||||
cm.gainItem(4001120,-20);
|
||||
cm.getMap().killAllMonsters();
|
||||
eim.setProperty("stage2", "1");
|
||||
} else {
|
||||
cm.sendNext("We are heading into the Pirate Ship now! To get in, we must qualify ourselves as noble pirates. Hunt me 20 Rookie Medals.");
|
||||
if(cm.countMonster() < 1) cm.getPlayer().getMap().spawnAllMonsterIdFromMapSpawnList(9300114, level, true);
|
||||
}
|
||||
} else if (emp.equals("1")) {
|
||||
if (cm.haveItem(4001121,20)) {
|
||||
cm.sendNext("Excellent! Now hunt me 20 Veteran Medals.");
|
||||
cm.gainItem(4001121,-20);
|
||||
cm.getMap().killAllMonsters();
|
||||
eim.setProperty("stage2", "2");
|
||||
} else {
|
||||
cm.sendNext("We are heading into the Pirate Ship now! To get in, we must qualify ourselves as noble pirates. Hunt me 20 Rising Medals.");
|
||||
if(cm.countMonster() < 1) cm.getPlayer().getMap().spawnAllMonsterIdFromMapSpawnList(9300115, level, true);
|
||||
}
|
||||
} else if (emp.equals("2")) {
|
||||
if (cm.haveItem(4001122,20)) {
|
||||
cm.sendNext("Excellent! Now let us go.");
|
||||
cm.gainItem(4001122,-20);
|
||||
cm.getMap().killAllMonsters();
|
||||
eim.setProperty("stage2", "3");
|
||||
} else {
|
||||
cm.sendNext("We are heading into the Pirate Ship now! To get in, we must qualify ourselves as noble pirates. Hunt me 20 Veteran Medals.");
|
||||
if(cm.countMonster() < 1) cm.getPlayer().getMap().spawnAllMonsterIdFromMapSpawnList(9300116, level, true);
|
||||
}
|
||||
} else {
|
||||
cm.sendNext("The next stage has opened. GO!");
|
||||
}
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100200:
|
||||
case 925100300:
|
||||
cm.sendNext("To assault the pirate ship, we must destroy the guards first.");
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100201:
|
||||
if (cm.getMap().getMonsters().size() == 0) {
|
||||
cm.sendNext("Excellent.");
|
||||
if (eim.getProperty("stage2a") == "0") {
|
||||
cm.getMap().setReactorState();
|
||||
eim.setProperty("stage2a", "1");
|
||||
}
|
||||
} else {
|
||||
cm.sendNext("These bellflowers are in hiding. We must liberate them.");
|
||||
}
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100301:
|
||||
if (cm.getMap().getMonsters().size() == 0) {
|
||||
cm.sendNext("Excellent.");
|
||||
if (eim.getProperty("stage3a").equals("0")) {
|
||||
cm.getMap().setReactorState();
|
||||
eim.setProperty("stage3a", "1");
|
||||
}
|
||||
} else {
|
||||
cm.sendNext("These bellflowers are in hiding. We must liberate them.");
|
||||
}
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100202:
|
||||
case 925100302:
|
||||
cm.sendNext("These are the Captains and Krus which devote their whole life to Lord Pirate. Kill them as you see fit.");
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100400:
|
||||
cm.sendNext("These are the sources of the ship's power. We must seal it by using the Old Metal Keys on the doors!");
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100500:
|
||||
if (cm.getMap().getMonsters().size() == 0) {
|
||||
cm.getEventInstance().clearPQ();
|
||||
cm.getEventInstance().warpEventTeam(925100600);
|
||||
} else {
|
||||
cm.sendNext("Defeat all monsters! Even Lord Pirate's minions!");
|
||||
}
|
||||
cm.dispose();
|
||||
break;
|
||||
if (!cm.isLeader()) {
|
||||
cm.sendYesNo("I wish for your leader to talk to me. Alternatively, you may be wanting to quit. Are you going to abandon this campaign?");
|
||||
}
|
||||
else {
|
||||
var eim = cm.getEventInstance();
|
||||
if (eim == null) {
|
||||
cm.warp(251010404,0);
|
||||
cm.sendNext("How are you even here without being registered on an event?");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
level = eim.getProperty("level");
|
||||
|
||||
switch(cm.getPlayer().getMapId()) {
|
||||
case 925100000:
|
||||
cm.sendNext("We are heading into the Pirate Ship now! To get in, we must destroy all the monsters guarding it.");
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100100:
|
||||
var emp = eim.getProperty("stage2");
|
||||
if (emp == null) {
|
||||
eim.setProperty("stage2", "0");
|
||||
emp = "0";
|
||||
}
|
||||
if (emp.equals("0")) {
|
||||
if (cm.haveItem(4001120,20)) {
|
||||
cm.sendNext("Excellent! Now hunt me 20 Rising Medals.");
|
||||
cm.gainItem(4001120,-20);
|
||||
cm.getMap().killAllMonsters();
|
||||
eim.setProperty("stage2", "1");
|
||||
} else {
|
||||
cm.sendNext("We are heading into the Pirate Ship now! To get in, we must qualify ourselves as noble pirates. Hunt me 20 Rookie Medals.");
|
||||
if(cm.countMonster() < 1) cm.getPlayer().getMap().spawnAllMonsterIdFromMapSpawnList(9300114, level, true);
|
||||
}
|
||||
} else if (emp.equals("1")) {
|
||||
if (cm.haveItem(4001121,20)) {
|
||||
cm.sendNext("Excellent! Now hunt me 20 Veteran Medals.");
|
||||
cm.gainItem(4001121,-20);
|
||||
cm.getMap().killAllMonsters();
|
||||
eim.setProperty("stage2", "2");
|
||||
} else {
|
||||
cm.sendNext("We are heading into the Pirate Ship now! To get in, we must qualify ourselves as noble pirates. Hunt me 20 Rising Medals.");
|
||||
if(cm.countMonster() < 1) cm.getPlayer().getMap().spawnAllMonsterIdFromMapSpawnList(9300115, level, true);
|
||||
}
|
||||
} else if (emp.equals("2")) {
|
||||
if (cm.haveItem(4001122,20)) {
|
||||
cm.sendNext("Excellent! Now let us go.");
|
||||
cm.gainItem(4001122,-20);
|
||||
cm.getMap().killAllMonsters();
|
||||
eim.setProperty("stage2", "3");
|
||||
} else {
|
||||
cm.sendNext("We are heading into the Pirate Ship now! To get in, we must qualify ourselves as noble pirates. Hunt me 20 Veteran Medals.");
|
||||
if(cm.countMonster() < 1) cm.getPlayer().getMap().spawnAllMonsterIdFromMapSpawnList(9300116, level, true);
|
||||
}
|
||||
} else {
|
||||
cm.sendNext("The next stage has opened. GO!");
|
||||
}
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100200:
|
||||
case 925100300:
|
||||
cm.sendNext("To assault the pirate ship, we must destroy the guards first.");
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100201:
|
||||
if (cm.getMap().getMonsters().size() == 0) {
|
||||
cm.sendNext("The Lord Pirate's chest has appeared! If you happen to have a key, drop it by the chest to reveal it's treasures. That will certainly make him upset.");
|
||||
if (eim.getProperty("stage2a") == "0") {
|
||||
cm.getMap().setReactorState();
|
||||
eim.setProperty("stage2a", "1");
|
||||
}
|
||||
} else {
|
||||
cm.sendNext("These bellflowers are in hiding. We must liberate them.");
|
||||
}
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100301:
|
||||
if (cm.getMap().getMonsters().size() == 0) {
|
||||
cm.sendNext("The Lord Pirate's chest has appeared! If you happen to have a key, drop it by the chest to reveal it's treasures. That will certainly make him upset.");
|
||||
if (eim.getProperty("stage3a").equals("0")) {
|
||||
cm.getMap().setReactorState();
|
||||
eim.setProperty("stage3a", "1");
|
||||
}
|
||||
} else {
|
||||
cm.sendNext("These bellflowers are in hiding. We must liberate them.");
|
||||
}
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100202:
|
||||
case 925100302:
|
||||
cm.sendNext("These are the Captains and Krus which devote their whole life to Lord Pirate. Kill them as you see fit.");
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100400:
|
||||
cm.sendNext("These are the sources of the ship's power. We must seal it by using the Old Metal Keys on the doors!");
|
||||
cm.dispose();
|
||||
break;
|
||||
case 925100500:
|
||||
if (cm.getMap().getMonsters().size() == 0) {
|
||||
cm.sendNext("Thanks for saving our leader! We are in your debt.");
|
||||
} else {
|
||||
cm.sendNext("Defeat all monsters! Even Lord Pirate's minions!");
|
||||
}
|
||||
cm.dispose();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -6,10 +6,7 @@
|
||||
*/
|
||||
|
||||
var status = 0;
|
||||
var minLevel = 1;
|
||||
var maxLevel = 200;
|
||||
var minPartySize = 1;
|
||||
var maxPartySize = 6;
|
||||
var em = null;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
@@ -30,7 +27,14 @@ function action(mode, type, selection) {
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
cm.sendSimple("#b<Party Quest: Ellin PQ>#k\r\n\r\nWould you like to assemble or join a team to solve the puzzles of the #bForest of Poison Haze#k? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.\r\n#L3#I would like to reclaim a prize.");
|
||||
em = cm.getEventManager("Ellin");
|
||||
if(em == null) {
|
||||
cm.sendOk("The Ellin PQ has encountered an error.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
cm.sendSimple("#b<Party Quest: Forest of Poison Haze>\r\n#k" + em.getProperty("party") + "\r\n\r\nWould you like to assemble or join a team to solve the puzzles of the #bForest of Poison Haze#k? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.\r\n#L3#I would like to reclaim a prize.");
|
||||
} else if (status == 1) {
|
||||
if (selection == 0) {
|
||||
if (cm.getParty() == null) {
|
||||
@@ -40,37 +44,23 @@ function action(mode, type, selection) {
|
||||
cm.sendOk("Your party leader must talk to me to start this party quest.");
|
||||
cm.dispose();
|
||||
} else {
|
||||
var em = cm.getEventManager("Ellin");
|
||||
if(em == null) {
|
||||
cm.sendOk("The Ellin PQ has encountered an error.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
var eli = em.getEligibleParty(cm.getParty());
|
||||
if(eli.size() > 0) {
|
||||
var prop = em.getProperty("state");
|
||||
if (prop != null && prop.equals("0")) {
|
||||
if(!em.startInstance(cm.getParty(), cm.getPlayer().getMap(), 1)) {
|
||||
cm.sendOk("A party in your name is already registered in this event.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
cm.dispose();
|
||||
} else {
|
||||
if(!em.startInstance(0, cm.getParty(), cm.getPlayer().getMap(), 1)) {
|
||||
cm.sendOk("Another party has already entered the #rParty Quest#k in this channel. Please try another channel, or wait for the current party to finish.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
else {
|
||||
cm.sendOk("You cannot start this party quest yet, because either your party is not in the range size, some of your party members are not eligible to attempt it or they are not in this map. If you're having trouble finding party members, try Party Search.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
} else if (selection == 1) {
|
||||
cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!");
|
||||
cm.dispose();
|
||||
} else if (selection == 2) {
|
||||
cm.sendOk("#b<Party Quest: Ellin PQ>#k\r\nIn this PQ, your mission is to progressively make your way through the woods, taking on all baddies in your path, solving many puzzles you encounter and rallying yourselves to take the best of teamwork to overcome time limits and powerful creatures. Clearing the final boss, your team have a chance to obtain a marble that, #bwhen dropped by the fountain at the exit map#k, will guarantee the team extra prizes. Good luck.");
|
||||
cm.sendOk("#b<Party Quest: Forest of Poison Haze>#k\r\nIn this PQ, your mission is to progressively make your way through the woods, taking on all baddies in your path, solving many puzzles you encounter and rallying yourselves to take the best of teamwork to overcome time limits and powerful creatures. Clearing the final boss, your team have a chance to obtain a marble that, #bwhen dropped by the fountain at the exit map#k, will guarantee the team extra prizes. Good luck.");
|
||||
cm.dispose();
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -43,9 +43,6 @@ function action(mode, type, selection) {
|
||||
cm.sendNext("This is it! Place the Magic Stone on the Altar!");
|
||||
break;
|
||||
case 930000700:
|
||||
cm.removeAll(4001163);
|
||||
cm.removeAll(4001169);
|
||||
cm.removeAll(2270004);
|
||||
cm.warp(930000800,0);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@ function action(mode, type, selection) {
|
||||
} else if(status == 3) {
|
||||
cm.sendOk("Very well. Remember, there you can assemble a team or take on the fightings on your own, it's up to you. Good luck!");
|
||||
} else if(status == 4) {
|
||||
cm.getPlayer().saveLocation("BOSSPQ");
|
||||
cm.warp(970030000);
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
@@ -6,11 +6,8 @@
|
||||
*/
|
||||
|
||||
var status = 0;
|
||||
var minLevel = 1;
|
||||
var maxLevel = 200;
|
||||
var minPartySize = 1;
|
||||
var maxPartySize = 6;
|
||||
var state;
|
||||
var em = null;
|
||||
|
||||
function onRestingSpot() {
|
||||
return cm.getMapId() >= 970030001 && cm.getMapId() <= 970030010;
|
||||
@@ -73,7 +70,14 @@ function action(mode, type, selection) {
|
||||
cm.sendYesNo("Do you wish to abandon this event?");
|
||||
}
|
||||
else {
|
||||
cm.sendSimple("#b<Party Quest: Boss Rush>#k\r\n\r\nWould you like to collaborate with party members to complete the expedition, or are you brave enough to take it on all by yourself? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.");
|
||||
em = cm.getEventManager("BossRushPQ");
|
||||
if(em == null) {
|
||||
cm.sendOk("The Boss Rush PQ has encountered an error.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
cm.sendSimple("#b<Party Quest: Boss Rush>\r\n#k" + em.getProperty("party") + "\r\n\r\nWould you like to collaborate with party members to complete the expedition, or are you brave enough to take it on all by yourself? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.");
|
||||
}
|
||||
} else if (status == 1) {
|
||||
if(state == 3) {
|
||||
@@ -87,7 +91,7 @@ function action(mode, type, selection) {
|
||||
cm.dispose();
|
||||
} else if(state == 2) {
|
||||
var restSpot = ((cm.getMapId() - 1) % 5) + 1;
|
||||
cm.getPlayer().getEventInstance().warpEventTeam(970030100 + (500 * restSpot)); //oh well, other maps won't be used anyway
|
||||
cm.getPlayer().getEventInstance().warpEventTeam(970030100 + cm.getEventInstance().getIntProperty("lobby") + (500 * restSpot));
|
||||
cm.dispose();
|
||||
} else if(state == 1) {
|
||||
cm.warp(970030000);
|
||||
@@ -102,37 +106,23 @@ function action(mode, type, selection) {
|
||||
cm.sendOk("Your party leader must talk to me to start this party quest.");
|
||||
cm.dispose();
|
||||
} else {
|
||||
var em = cm.getEventManager("BossRushPQ");
|
||||
if(em == null) {
|
||||
cm.sendOk("The Boss Rush PQ has encountered an error.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
var eli = em.getEligibleParty(cm.getParty());
|
||||
if(eli.size() > 0) {
|
||||
var prop = em.getProperty("state");
|
||||
if (prop != null && prop.equals("0")) {
|
||||
if(!em.startInstance(cm.getParty(), cm.getPlayer().getMap(), 1)) {
|
||||
cm.sendOk("A party in your name is already registered in this event.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
cm.dispose();
|
||||
} else {
|
||||
if(!em.startInstance(0, cm.getParty(), cm.getPlayer().getMap(), 1)) {
|
||||
cm.sendOk("Another party has already entered the #rParty Quest#k in this channel. Please try another channel, or wait for the current party to finish.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
else {
|
||||
cm.sendOk("You cannot start this party quest yet, because either your party is not in the range size, some of your party members are not eligible to attempt it or they are not in this map. If you're having trouble finding party members, try Party Search.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
} else if (selection == 1) {
|
||||
cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!");
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.sendOk("#b<Party Quest: Boss Rush PQ>#k\r\nBrave adventurers from all over the places travels here to test their skills and abilities in combat, as they face even more powerful bosses from MapleStory. Join forces with fellow adventurers or face all the burden by yourself and receive all the glory, it is up to you. REWARDS are given accordingly to how far the adventurers reach and extra prizes may are given to a random member of the party, all attributed at the end of an expedition.");
|
||||
cm.sendOk("#b<Party Quest: Boss Rush>#k\r\nBrave adventurers from all over the places travels here to test their skills and abilities in combat, as they face even more powerful bosses from MapleStory. Join forces with fellow adventurers or face all the burden by yourself and receive all the glory, it is up to you. REWARDS are given accordingly to how far the adventurers reach and extra prizes may are given to a random member of the party, all attributed at the end of an expedition.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@ var itemSet_lv6 = [1122018, 1122005, 1022088, 1402013, 1032048, 1032070, 1102046
|
||||
var itemQty_lv6 = [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];
|
||||
|
||||
var itemSet_lv5 = [1122018, 1122005, 1022088, 1402013, 1032048, 1032070, 1102046, 2330004, 2041013, 2041016, 2041019, 2041022, 2049100, 2049003, 2020012, 2020013, 2020014, 2020015, 2022029, 2022045, 2022068, 2022069, 2022179, 2022180, 4004000, 4004001, 4004002, 4004003, 4004004, 4003000];
|
||||
var itemQty_lv5 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 8, 8, 8, 8, 8, 12];
|
||||
var itemQty_lv5 = [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];
|
||||
|
||||
var itemSet_lv4 = [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];
|
||||
var itemQty_lv4 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8];
|
||||
var itemQty_lv4 = [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];
|
||||
|
||||
var itemSet_lv3 = [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];
|
||||
var itemQty_lv3 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5];
|
||||
var itemQty_lv3 = [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];
|
||||
|
||||
var itemSet_lv2 = [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];
|
||||
var itemQty_lv2 = [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];
|
||||
@@ -46,7 +46,7 @@ function action(mode, type, selection) {
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
var sendStr = "The #bBoss Rush Party Quest#k rewards players accordingly to how far the team went on the boss huntings. Take note that each player #bcan only claim a reward if they leave through a portal inside a Resting Spot#k. Challenging stronger bosses will require the team to commit to more fightings until the next Resting Spot is reached, or until the final boss is defeated.\r\n\r\nThe possible rewards for those leaving in the selected Resting Point are depicted here:\r\n\r\n#b";
|
||||
var sendStr = "The #bBoss Rush Party Quest#k rewards players accordingly to how far the team went on the boss huntings. Take note that each player #bcan only claim a reward if they leave through a portal inside a Resting Spot#k. Challenging stronger bosses will require the team to commit to more fightings until the next Resting Spot is reached, or until the final boss is defeated.\r\n\r\nThe possible rewards for those leaving in the selected Resting Spot are depicted here:\r\n\r\n#b";
|
||||
for(var i = 0; i < 6; i++) {
|
||||
sendStr += "#L" + i + "#" + levels[i] + "#l\r\n";
|
||||
}
|
||||
|
||||
@@ -6,11 +6,8 @@
|
||||
*/
|
||||
|
||||
var status = 0;
|
||||
var minLevel = 1;
|
||||
var maxLevel = 200;
|
||||
var minPartySize = 1;
|
||||
var maxPartySize = 6;
|
||||
var state;
|
||||
var em = null;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
@@ -36,7 +33,13 @@ function action(mode, type, selection) {
|
||||
cm.sendYesNo("Do you wish to abandon this area?");
|
||||
}
|
||||
else {
|
||||
cm.sendSimple("#b<Party Quest: 1st Accompaniment>#k\r\n\r\nHow about you and your party members collectively beating a quest? Here you'll find obstacles and problems where you won't be able to beat it without great teamwork. If you want to try it, please tell the #bleader of your party#k to talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.");
|
||||
em = cm.getEventManager("KerningPQ");
|
||||
if(em == null) {
|
||||
cm.sendOk("The Kerning PQ has encountered an error.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
cm.sendSimple("#b<Party Quest: 1st Accompaniment>\r\n#k" + em.getProperty("party") + "\r\n\r\nHow about you and your party members collectively beating a quest? Here you'll find obstacles and problems where you won't be able to beat it without great teamwork. If you want to try it, please tell the #bleader of your party#k to talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.");
|
||||
}
|
||||
} else if (status == 1) {
|
||||
if(state == 1) {
|
||||
@@ -52,31 +55,17 @@ function action(mode, type, selection) {
|
||||
cm.sendOk("Your party leader must talk to me to start this party quest.");
|
||||
cm.dispose();
|
||||
} else {
|
||||
var em = cm.getEventManager("KerningPQ");
|
||||
if(em == null) {
|
||||
cm.sendOk("The Kerning PQ has encountered an error.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
var eli = em.getEligibleParty(cm.getParty());
|
||||
if(eli.size() > 0) {
|
||||
var prop = em.getProperty("state");
|
||||
if (prop != null && prop.equals("0")) {
|
||||
if(!em.startInstance(cm.getParty(), cm.getPlayer().getMap(), 1)) {
|
||||
cm.sendOk("A party in your name is already registered in this event.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
cm.dispose();
|
||||
} else {
|
||||
if(!em.startInstance(0, cm.getParty(), cm.getPlayer().getMap(), 1)) {
|
||||
cm.sendOk("Another party has already entered the #rParty Quest#k in this channel. Please try another channel, or wait for the current party to finish.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
else {
|
||||
cm.sendOk("You cannot start this party quest yet, because either your party is not in the range size, some of your party members are not eligible to attempt it or they are not in this map. If you're having trouble finding party members, try Party Search.");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
} else if (selection == 1) {
|
||||
cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!");
|
||||
|
||||
@@ -49,8 +49,6 @@ function action(mode, type, selection){
|
||||
cm.sendNext("To return back to the city, follow this way.");
|
||||
} else {
|
||||
cm.getPlayer().changeMap(103000000, cm.getClient().getChannelServer().getMapFactory().getMap(103000000).getRandomSpawnpoint());
|
||||
cm.removeAll(4001007);
|
||||
cm.removeAll(4001008);
|
||||
cm.dispose();
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
var windowTime = 10 * 1000;
|
||||
|
||||
function enter(pi) {
|
||||
var em = pi.getEventManager("PiratePQ");
|
||||
var level = em.getProperty("level");
|
||||
if(em.getProperty("stage2b") == "0") {
|
||||
var eim = pi.getEventInstance();
|
||||
var level = eim.getProperty("level");
|
||||
if(eim.getProperty("stage2b") == "0") {
|
||||
pi.getMap(925100202).spawnAllMonstersFromMapSpawnList(level, true);
|
||||
em.setProperty("stage2b", "1");
|
||||
eim.setProperty("stage2b", "1");
|
||||
}
|
||||
|
||||
pi.warp(925100202,0);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
var windowTime = 10 * 1000;
|
||||
|
||||
function enter(pi) {
|
||||
var em = pi.getEventManager("PiratePQ");
|
||||
var level = em.getProperty("level");
|
||||
if(em.getProperty("stage3b") == "0") {
|
||||
var eim = pi.getEventInstance();
|
||||
var level = eim.getProperty("level");
|
||||
if(eim.getProperty("stage3b") == "0") {
|
||||
pi.getMap(925100302).spawnAllMonstersFromMapSpawnList(level, true);
|
||||
em.setProperty("stage3b", "1");
|
||||
eim.setProperty("stage3b", "1");
|
||||
}
|
||||
|
||||
pi.warp(925100302,0);
|
||||
|
||||
@@ -1,49 +1,9 @@
|
||||
/*
|
||||
This file is part of the OdinMS Maple Story Server
|
||||
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
|
||||
Matthias Butz <matze@odinms.de>
|
||||
Jan Christian Meyer <vimes@odinms.de>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation version 3 as published by
|
||||
the Free Software Foundation. You may not use, modify or distribute
|
||||
this program under any other version of the GNU Affero General Public
|
||||
License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/***********
|
||||
@Author Jvlaple
|
||||
***********/
|
||||
|
||||
function enter(pi) {
|
||||
var nextMap = 925100100;
|
||||
var eim = pi.getPlayer().getEventInstance();
|
||||
var party = eim.getPlayers();
|
||||
var target = eim.getMapInstance(nextMap);
|
||||
var targetPortal = target.getPortal("sp");
|
||||
var mobCount = pi.countMonster();
|
||||
var playerS = pi.isLeader();
|
||||
// only let people through if the eim is ready
|
||||
if (playerS == false) {
|
||||
// do nothing; send message to player
|
||||
pi.getPlayer().dropMessage(6, "Only the party leader may enter this portal.");
|
||||
return false;
|
||||
}else if (mobCount < 1) {
|
||||
eim.setProperty("entryTimeStamp", 1000 * 60 * 6);
|
||||
for(var g=0; g<party.size(); g++) {
|
||||
party.get(g).changeMap(target, targetPortal);
|
||||
}
|
||||
return true;
|
||||
}else {
|
||||
pi.getPlayer().dropMessage(6, "You need to kill all monsters before proceeding.");
|
||||
return false;
|
||||
}
|
||||
if (pi.getMap().getMonsters().size() == 0) {
|
||||
pi.warp(925100100,0); //next
|
||||
return(true);
|
||||
} else {
|
||||
pi.playerMessage(5, "The portal is not opened yet.");
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
function enter(pi) {
|
||||
try {
|
||||
var em = pi.getEventManager("PiratePQ");
|
||||
if (em != null && em.getProperty("stage2").equals("3")) {
|
||||
var eim = pi.getEventInstance();
|
||||
if (eim != null && eim.getProperty("stage2").equals("3")) {
|
||||
pi.warp(925100200,0); //next
|
||||
return(true);
|
||||
} else {
|
||||
|
||||
@@ -1,27 +1,26 @@
|
||||
importPackage(Packages.server.life);
|
||||
|
||||
function enter(pi) {
|
||||
if (pi.getMap().getReactorByName("sMob1").getState() >= 1 && pi.getMap().getReactorByName("sMob2").getState() >= 1 && pi.getMap().getReactorByName("sMob3").getState() >= 1 && pi.getMap().getReactorByName("sMob4").getState() >= 1) {
|
||||
if (pi.isLeader()) {
|
||||
var em = pi.getEventManager("PiratePQ");
|
||||
|
||||
var level = parseInt(em.getProperty("level"));
|
||||
var chests = parseInt(em.getProperty("openedChests"));
|
||||
if (pi.getMap().getReactorByName("sMob1").getState() >= 1 && pi.getMap().getReactorByName("sMob2").getState() >= 1 && pi.getMap().getReactorByName("sMob3").getState() >= 1 && pi.getMap().getReactorByName("sMob4").getState() >= 1 && pi.getMap().getMonsters().size() == 0) {
|
||||
var eim = pi.getEventInstance();
|
||||
|
||||
if(eim.getProperty("spawnedBoss") == null) {
|
||||
var level = parseInt(eim.getProperty("level"));
|
||||
var chests = parseInt(eim.getProperty("openedChests"));
|
||||
var boss;
|
||||
|
||||
|
||||
if(chests == 0) boss = MapleLifeFactory.getMonster(9300119); //lord pirate
|
||||
else if(chests == 1) boss = MapleLifeFactory.getMonster(9300105); //angry lord pirate
|
||||
else boss = MapleLifeFactory.getMonster(9300106); //enraged lord pirate
|
||||
|
||||
|
||||
boss.changeDifficulty(level, true);
|
||||
|
||||
|
||||
pi.getMap(925100500).spawnMonsterOnGroundBelow(boss, new java.awt.Point(777, 140));
|
||||
pi.warpParty(925100500); //next
|
||||
return(true);
|
||||
} else {
|
||||
pi.playerMessage(5, "The leader must be here.");
|
||||
return(false);
|
||||
}
|
||||
eim.setProperty("spawnedBoss", "true");
|
||||
}
|
||||
|
||||
pi.warp(925100500, 0);
|
||||
return(true);
|
||||
} else {
|
||||
pi.playerMessage(5, "The portal is not opened yet.");
|
||||
return(false);
|
||||
|
||||
@@ -2,7 +2,6 @@ function enter(pi) {
|
||||
if ((pi.getMap().getMonsters().size() == 0 || pi.getMap().getMonsterById(9300183) != null) && (pi.getMap().getReactorByName("") == null || pi.getMap().getReactorByName("").getState() == 1)) {
|
||||
if(pi.isLeader()) {
|
||||
pi.getEventInstance().clearPQ();
|
||||
pi.getEventInstance().warpEventTeam(930000800);
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -28,7 +28,7 @@ function enter(pi) {
|
||||
var evLevel = ((pi.getMapId() - 1) % 5) + 1;
|
||||
|
||||
if(pi.getPlayer().getEventInstance().isLeader(pi.getPlayer()) && pi.getPlayer().getEventInstance().getPlayerCount() > 1) {
|
||||
pi.message("Being the party leader, you cannot leave before your teammates leave first.");
|
||||
pi.message("Being the party leader, you cannot leave before your teammates leave first or you pass leadership.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ function enter(pi) {
|
||||
if(pi.getMap().getMonsters().isEmpty()) {
|
||||
var nextStage;
|
||||
|
||||
if(pi.getMapId() % 500 != 0) nextStage = pi.getMapId() + 100;
|
||||
else nextStage = 970030001 + ((pi.getMapId() - 970030100) / 500);
|
||||
if(pi.getMapId() % 500 >= 100) nextStage = pi.getMapId() + 100;
|
||||
else nextStage = 970030001 + (Math.floor((pi.getMapId() - 970030100) / 500));
|
||||
|
||||
pi.warp(nextStage);
|
||||
return true;
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
function enter(pi) {
|
||||
pi.warp(100000000,0);
|
||||
var map = pi.getPlayer().getSavedLocation("BOSSPQ");
|
||||
if (map == -1)
|
||||
map = 100000000;
|
||||
|
||||
pi.warp(map,0);
|
||||
return true;
|
||||
}
|
||||
@@ -25,9 +25,9 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
var em = rm.getPlayer().getEventInstance().getEm();
|
||||
var now = parseInt(em.getProperty("openedChests"));
|
||||
var eim = rm.getPlayer().getEventInstance();
|
||||
var now = parseInt(eim.getProperty("openedChests"));
|
||||
var nextNum = now + 1;
|
||||
em.setProperty("openedChests", nextNum.toString());
|
||||
eim.setProperty("openedChests", nextNum.toString());
|
||||
rm.dropItems(true, 1, 50, 100, 15);
|
||||
}
|
||||
Reference in New Issue
Block a user