Implemented CWKPQ
Made CWKPQ fully-functional, using the Expedition system (won't work with the lobby system).
This commit is contained in:
@@ -6,7 +6,7 @@ Credits are to be given too to Nexon(Duh!), the original MapleSolaxia staff and
|
||||
|
||||
Regarding distributability and usage of the code presented here: like it was before, this MapleStory server is open-source. By that, it is meant that anyone is free to install, use, modify and redistribute the contents, as long as there is no kind of commercial trading involved and the credits to the original creators are maintained within the codes.
|
||||
|
||||
This is a NetBeans 8.0.2 Project. This means that it's easier to install the project via opening the server project folder inside NetBeans' IDE. Once installed, build this project on your machine and run the server using the "launch.bat" application.
|
||||
This is a NetBeans 8.0.2 Project, that must be built and run under JDK/JRE 7 in order to run properly. This means that it's easier to install the project via opening the server project folder inside NetBeans' IDE. Once installed, build this project on your machine and run the server using the "launch.bat" application.
|
||||
|
||||
In this project, many gameplay-wise issues generated from either the original WZ files and the server sources have been partially or completely solved. Considering the use of the provided edited WZ's and server-side wz.xml files should be of the greatest importance when dealing with this instance of private server, in order to perceive it at it's full potential. My opinion, though! Refer to "README_wzchanges.txt" for more information on what have been changed from Nexon's v83 WZ files.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Mon, 26 Jun 2017 01:21:39 -0300
|
||||
#Fri, 30 Jun 2017 01:05:52 -0300
|
||||
|
||||
|
||||
C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2=
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
dist/MapleSolaxia.jar
vendored
BIN
dist/MapleSolaxia.jar
vendored
Binary file not shown.
@@ -9,6 +9,7 @@ Feature list:
|
||||
|
||||
PQs/Quests:
|
||||
* HPQ/KPQ/LPQ/LMPQ/OPQ/EllinPQ/PiratePQ 100%
|
||||
* CWKPQ as Expedition-based event 100%
|
||||
* GuildPQ 100% + Guild queue and multi-lobby systems available.
|
||||
* Brand-new PQ: Boss Rush PQ 100%
|
||||
* BalrogPQ semi-functional
|
||||
|
||||
@@ -340,4 +340,11 @@ Corrigido "player logged in" aparecendo sempre que jogador troca de canal.
|
||||
MGC do jogador agora está sincronizado com o MGC da guild, não o contrário.
|
||||
|
||||
23 - 26 Junho 2017,
|
||||
Diversas reimplementações de mecânicas da CWKPQ, ainda trabalho em progresso.
|
||||
Diversas reimplementações de mecânicas da CWKPQ, ainda trabalho em progresso.
|
||||
|
||||
27 Junho 2017,
|
||||
Reestruturação parcial do esquema de footholds do stage 4 da CWKPQ.
|
||||
|
||||
28 - 29 Junho 2017,
|
||||
Acabamento final da CWKPQ.
|
||||
Corrigido bug no esquema de recuperação de diretórios dos mapas, referenciados em String.wz.
|
||||
@@ -3,31 +3,19 @@
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="1"/>
|
||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||
<group>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/1092014.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/reactor/6109000.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/portal/glpqPortal6.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/9201112.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/PortalFactory.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/AbstractPlayerInteraction.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/PlayerInteractionHandler.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/portal/PortalPlayerInteraction.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/reactor/6102001.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/MapleGenericPortal.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/9201107.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/MapleMapFactory.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/expeditions/MapleExpeditionType.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/CWKPQ.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/ChangeMapHandler.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/portal/glpqPortal7.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/expeditions/MapleExpedition.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/command/Commands.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/9201112.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventInstanceManager.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/AbstractPlayerInteraction.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/9201110.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/portal/glpqPortal3.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleJob.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/portal/PortalScriptManager.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/InnerPortalHandler.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/9201115.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/MaplePortal.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/9201108.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/9201109.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/portal/party3_r6pt.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/9201113.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/provider/MapleDataTool.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleCharacter.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventManager.java</file>
|
||||
</group>
|
||||
</open-files>
|
||||
</project-private>
|
||||
|
||||
@@ -1,26 +1,66 @@
|
||||
var minPlayers = 1;
|
||||
|
||||
var mapz = Array(100, 200, 300, 400, 500, 510, 520, 521, 522, 530, 540, 550, 600, 700, 800);
|
||||
var a = Array("a", "b", "c", "d", "e", "f", "g", "h", "i");
|
||||
/*
|
||||
a1,3,6
|
||||
b1-7
|
||||
c1,3,6
|
||||
d1-7
|
||||
e1-7
|
||||
f1,3,6
|
||||
g1-7
|
||||
h1,3,6
|
||||
i1-7
|
||||
/**
|
||||
* @author: Ronan
|
||||
* @event: Crimsonwood Keep PQ
|
||||
*/
|
||||
|
||||
var pos_x = Array(944,401,28,-332,-855);
|
||||
var pos_y = Array(-204,-384,-504,-384,-204);
|
||||
var pos_y2 = Array(-144, -444, -744, -1044, -1344, -1644);
|
||||
var isPq = true;
|
||||
var minPlayers = 6, maxPlayers = 30;
|
||||
var minLevel = 100, maxLevel = 255;
|
||||
var entryMap = 610030100;
|
||||
var exitMap = 610030020;
|
||||
var recruitMap = 610030020;
|
||||
var clearMap = 610030020;
|
||||
|
||||
var minMapId = 610030100;
|
||||
var maxMapId = 610030800;
|
||||
|
||||
var eventTime = 2; // 2 minutes for first stg
|
||||
|
||||
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 Time limit: ";
|
||||
reqStr += eventTime + " minutes";
|
||||
|
||||
em.setProperty("party", reqStr);
|
||||
}
|
||||
|
||||
function setEventExclusives(eim) {
|
||||
var itemSet = [4001256, 4001257, 4001258, 4001259, 4001260];
|
||||
eim.setExclusiveItems(itemSet);
|
||||
}
|
||||
|
||||
function setEventRewards(eim) {
|
||||
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);
|
||||
}
|
||||
|
||||
function afterSetup(eim) {}
|
||||
@@ -84,8 +124,6 @@ function generateMapReactors(map) {
|
||||
function setup(channel) {
|
||||
var eim = em.newInstance("CWKPQ" + channel);
|
||||
|
||||
eim.setProperty("state", "1");
|
||||
eim.setProperty("leader", "true");
|
||||
eim.setProperty("current_instance", "0");
|
||||
eim.setProperty("glpq1", "0");
|
||||
eim.setProperty("glpq2", "0");
|
||||
@@ -95,45 +133,65 @@ 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");
|
||||
eim.setProperty("glpq_f3", "0");
|
||||
eim.setProperty("glpq_f4", "0");
|
||||
eim.setProperty("glpq_f5", "0");
|
||||
eim.setProperty("glpq_f6", "0");
|
||||
eim.setProperty("glpq_f7", "0");
|
||||
eim.setProperty("glpq_s", "0");
|
||||
|
||||
for (var i = 0; i < mapz.length; i++) {
|
||||
var map = eim.getInstanceMap(610030000 + mapz[i]);
|
||||
if (map != null) {
|
||||
map.resetFully();
|
||||
if (map.getId() == 610030400) {
|
||||
generateMapReactors(map);
|
||||
|
||||
//add environments
|
||||
for (var x = 0; x < a.length; x++) {
|
||||
for (var y = 1; y <= 7; y++) {
|
||||
if (x == 1 || x == 3 || x == 4 || x == 6 || x == 8) {
|
||||
if (y != 2 && y != 4 && y != 5 && y != 7) {
|
||||
map.moveEnvironment(a[x] + "" + y, 1);
|
||||
}
|
||||
} else {
|
||||
map.moveEnvironment(a[x] + "" + y, 1);
|
||||
}
|
||||
}
|
||||
var level = 1;
|
||||
eim.getInstanceMap(610030100).resetPQ(level);
|
||||
eim.getInstanceMap(610030200).resetPQ(level);
|
||||
eim.getInstanceMap(610030300).resetPQ(level);
|
||||
eim.getInstanceMap(610030400).resetPQ(level);
|
||||
eim.getInstanceMap(610030500).resetPQ(level);
|
||||
eim.getInstanceMap(610030510).resetPQ(level);
|
||||
eim.getInstanceMap(610030520).resetPQ(level);
|
||||
eim.getInstanceMap(610030521).resetPQ(level);
|
||||
eim.getInstanceMap(610030522).resetPQ(level);
|
||||
eim.getInstanceMap(610030530).resetPQ(level);
|
||||
eim.getInstanceMap(610030540).resetPQ(level);
|
||||
eim.getInstanceMap(610030550).resetPQ(level);
|
||||
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);
|
||||
for (var x = 0; x < a.length; x++) {
|
||||
for (var y = 1; y <= 7; y++) {
|
||||
if (x == 1 || x == 3 || x == 4 || x == 6 || x == 8) {
|
||||
if (y != 2 && y != 4 && y != 5 && y != 7) {
|
||||
map.moveEnvironment(a[x] + "" + y, 1);
|
||||
}
|
||||
} else if (map.getId() == 610030510) { //warrior room, crimson guardians
|
||||
for (var z = 0; z < pos_y2.length; z++) {
|
||||
var mob = em.getMonster(9400582);
|
||||
eim.registerMonster(mob);
|
||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(0, pos_y2[z]));
|
||||
}
|
||||
//skipping mage room, ehh
|
||||
} else if (map.getId() == 610030540) { //bowman room, spawn master guardians
|
||||
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]));
|
||||
}
|
||||
} else if (map.getId() == 610030550) {
|
||||
map.shuffleReactors(); //pirate room
|
||||
} else {
|
||||
map.moveEnvironment(a[x] + "" + y, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
eim.startEventTimer(120000); //2 MIN for first stg
|
||||
|
||||
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;
|
||||
}
|
||||
@@ -157,15 +215,21 @@ function spawnGuardians(eim) {
|
||||
}
|
||||
}
|
||||
|
||||
function playerRevive(eim, player) {}
|
||||
|
||||
function scheduledTimeout(eim) {
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < 610030100 || mapid > 610030800) {
|
||||
playerExit(eim,player);
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quitted the event or there is no longer the minimum number of members required to continue this event.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the event.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
} else {
|
||||
switch(mapid) {
|
||||
case 610030200:
|
||||
@@ -208,10 +272,38 @@ function changedMap(eim, player, mapid) {
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
return 0;
|
||||
function changedLeader(eim, leader) {}
|
||||
|
||||
function playerDead(eim, player) {}
|
||||
|
||||
function playerRevive(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.unregisterPlayer(player);
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quitted the event or there is no longer the minimum number of members required to continue this event.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the event.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quitted the event or there is no longer the minimum number of members required to continue this event.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the event.");
|
||||
eim.unregisterPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
function leftParty (eim, player) {}
|
||||
|
||||
function disbandParty (eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
}
|
||||
@@ -219,30 +311,31 @@ function monsterValue(eim, mobId) {
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
eim.dropMessage(5, "[Expedition] " + player.getName() + " has left the event.");
|
||||
eim.unregisterPlayer(player);
|
||||
|
||||
if (eim.disposeIfPlayerBelow(minPlayers, 610030010)) {
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
}
|
||||
player.changeMap(exitMap, 0);
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
eim.disposeIfPlayerBelow(100, 610030010);
|
||||
em.setProperty("state", "0");
|
||||
em.setProperty("leader", "true");
|
||||
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);
|
||||
}
|
||||
|
||||
function clearPQ(eim) {
|
||||
eim.stopEventTimer();
|
||||
eim.setEventCleared();
|
||||
}
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
function leftParty (eim, player) {}
|
||||
function disbandParty (eim) {}
|
||||
function playerDead(eim, player) {}
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(eim) {}
|
||||
@@ -269,9 +269,7 @@ function playerDisconnected(eim, player) {
|
||||
|
||||
function leftParty(eim, player) {}
|
||||
|
||||
function disbandParty(eim) {
|
||||
end(eim);
|
||||
}
|
||||
function disbandParty(eim) {}
|
||||
|
||||
function monsterValue(eim, mobId) {
|
||||
return 1;
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
var status = -1;
|
||||
|
||||
function start() {
|
||||
if (cm.getPlayer().getLevel() < 120) {
|
||||
cm.sendOk("There is a level requirement of 120 to attempt Pink Bean.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (cm.getPlayer().getClient().getChannel() != 5) {
|
||||
cm.sendOk("Pink Bean may only be attempted on channel 5.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (cm.getPlayer().getLevel() < 120) {
|
||||
cm.sendOk("There is a level requirement of 120 to attempt Pink Bean.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (cm.getPlayer().getClient().getChannel() != 5) {
|
||||
cm.sendOk("Pink Bean may only be attempted on channel 5.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
var em = cm.getEventManager("PinkBeanBattle");
|
||||
|
||||
if (em == null) {
|
||||
|
||||
@@ -24,6 +24,8 @@ function start() {
|
||||
} else {
|
||||
cm.sendOk("Make room on your ETC inventory first.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("The weapon inside this room has already been retrieved.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("Eliminate all Crimson Guardians.");
|
||||
|
||||
@@ -24,6 +24,8 @@ function start() {
|
||||
} else {
|
||||
cm.sendOk("Make room on your ETC inventory first.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("The weapon inside this room has already been retrieved.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("Eliminate all Master Guardians.");
|
||||
|
||||
@@ -9,13 +9,6 @@ function start() {
|
||||
cm.sendOk("A name forever remembered, Rafael was an exceptionally skilled sorcerer, and the foremost master of mental magic powers, telekinesis and telepathy. In addition to that, he was one of the 'Elite Mages' who mastered all the elements. He was last seen looking for the 'Temple of the Elementals' to turn the tide against the invading Krakian Army...");
|
||||
cm.dispose();
|
||||
} else if (cm.getPlayer().getMapId() == 610030521) {
|
||||
if (cm.getPlayer().getMap().countMonsters() == 0) {
|
||||
cm.warp(610030522,0);
|
||||
} else {
|
||||
cm.sendOk("Eliminate all monsters.");
|
||||
}
|
||||
cm.dispose();
|
||||
} else if (cm.getPlayer().getMapId() == 610030522) {
|
||||
if (cm.getPlayer().getMap().countMonsters() == 0) {
|
||||
var eim = cm.getEventInstance();
|
||||
var stgStatus = eim.getIntProperty("glpq5_room");
|
||||
@@ -31,10 +24,20 @@ function start() {
|
||||
} else {
|
||||
cm.sendOk("Make room on your ETC inventory first.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("The weapon inside this room has already been retrieved.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("Eliminate all monsters.");
|
||||
}
|
||||
cm.dispose();
|
||||
} /* else if (cm.getPlayer().getMapId() == 610030522) {
|
||||
if (cm.getPlayer().getMap().countMonsters() == 0) {
|
||||
cm.warp(610030522,0);
|
||||
} else {
|
||||
cm.sendOk("Eliminate all monsters.");
|
||||
}
|
||||
cm.dispose();
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -7,10 +7,10 @@ function start() {
|
||||
cm.sendOk("As every Thief knows, the best attack is the one you never see coming. So, to best illustrate this, you'll be in a chamber with platforms and ledges that you can only get to with Haste, as well as All-Seeing Eyes that your dagger or claw must close--permanently. After all the All-Seeing Eyes have been eliminated, get ti the Thief Statue and lay claim to the Primal Claw! Good luck!");
|
||||
break;
|
||||
case 610030000:
|
||||
cm.sendOk("Once known as the 'Prince of Shadows', Grandmaster Ryo possessed supreme speed and power with short-ranged daggers and longer chain-like Claw. A part-time memeber of the Bosshunters, he was reowned for unparalleled ability to blend into the very nigth itself. His legend grew during a battle with Crimson Balrog, where he moved so swiftly that Balrog's attacks only caught air. Ryo also performed occasional 'retrievals' for those less fortunate than himself.");
|
||||
cm.sendOk("Once known as the 'Prince of Shadows', Grandmaster Ryo possessed supreme speed and power with short-ranged daggers and longer chain-like Claw. A part-time member of the Bosshunters, he was reowned for unparalleled ability to blend into the very nigth itself. His legend grew during a battle with Crimson Balrog, where he moved so swiftly that Balrog's attacks only caught air. Ryo also performed occasional 'retrievals' for those less fortunate than himself.");
|
||||
break;
|
||||
case 610030530:
|
||||
if (cm.isAllReactorState(6108004, 1) && !cm.haveItem(4001256, 1)) {
|
||||
if (cm.isAllReactorState(6108004, 1)) {
|
||||
var eim = cm.getEventInstance();
|
||||
var stgStatus = eim.getIntProperty("glpq5_room");
|
||||
var jobNiche = cm.getPlayer().getJob().getJobNiche();
|
||||
@@ -25,6 +25,8 @@ function start() {
|
||||
} else {
|
||||
cm.sendOk("Make room on your ETC inventory first.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("The weapon inside this room has already been retrieved.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("Go now, destroy all of the watchful eyes with your mobility skills, fellow Thief. Report back to me when you are done.");
|
||||
|
||||
@@ -24,11 +24,6 @@ function action(mode, type, selection) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (!cm.isEventLeader()) {
|
||||
cm.sendNext("I wish for your leader to talk to me.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
switch(cm.getPlayer().getMapId()) {
|
||||
case 610030100:
|
||||
if (status == 0) {
|
||||
@@ -38,7 +33,6 @@ function action(mode, type, selection) {
|
||||
} else if (status == 2) {
|
||||
cm.sendNext("You can find the portal somewhere around here... you'd better find it, quick. I'll catch up.");
|
||||
cm.dispose();
|
||||
eim.setProperty("glpq1", "1");
|
||||
}
|
||||
break;
|
||||
case 610030200:
|
||||
@@ -51,9 +45,9 @@ function action(mode, type, selection) {
|
||||
break;
|
||||
case 610030300:
|
||||
if (status == 0) {
|
||||
cm.sendNext("Now what we have here are more Sigils. All five Adventurers have to climb to the very top and go through the portal.");
|
||||
cm.sendNext("Now what we have here are more Sigils. At least five Adventurers have to climb to the very top and go through the portal. Stay aware though: not every wall or ground on this map is what it seems to be, so tread lightly!");
|
||||
} else if (status == 1) {
|
||||
cm.sendNext("Beware of these death traps: Menhirs. They really pack a punch.");
|
||||
cm.sendNext("Oh, and beware of these death traps: Menhirs. They really pack a punch. Good luck.");
|
||||
cm.dispose();
|
||||
}
|
||||
break;
|
||||
@@ -61,7 +55,7 @@ function action(mode, type, selection) {
|
||||
if (status == 0) {
|
||||
cm.sendNext("Now what we have here are more Sigils. However, some of them don't work. Here all jobs must fill their roles, as at least one of these Sigils are activated by their job skills, however there can be more than one per job, so be sure to test them all.");
|
||||
} else if (status == 1) {
|
||||
cm.sendNext("These Stirges will get in your way, but they're merely a distraction. Try every one of these Sigils until they work.");
|
||||
cm.sendNext("These Stirges will get in your way, but they're merely a distraction. To get rid of them, get five adventurers to stand on the middle-left platform simultaneously. To pass, try every one of these Sigils until they work.");
|
||||
cm.dispose();
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
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/>.
|
||||
*/
|
||||
/*Adobis
|
||||
/*Jack
|
||||
*
|
||||
*@author SharpAceX (Alan)
|
||||
*/
|
||||
@@ -43,107 +43,124 @@ function action(mode, type, selection) {
|
||||
expedition = cm.getExpedition(cwkpq);
|
||||
em = cm.getEventManager("CWKPQ");
|
||||
|
||||
if (mode < 1) {
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (status == 0) {
|
||||
if (player.getLevel() < cwkpq.getMinLevel() && player.getLevel() > cwkpq.getMaxLevel()) { //Don't fit requirement
|
||||
cm.sendOk("You do not meet the criteria to take attempt Crimsonwood Keep Party Quest!");
|
||||
} else {
|
||||
if (mode == 0) {
|
||||
cm.dispose();
|
||||
} else if (expedition == null) { //Start an expedition
|
||||
cm.sendSimple("Would you like to assemble a team to attempt a #rCrimsonwood Keep Party Quest#k?\r\n#b#L1#Lets get this going!#l\r\n\#L2#No, I think I'll wait a bit...#l");
|
||||
status = 1;
|
||||
} else if (expedition.isLeader(player)) { //If you're the leader, manage the exped
|
||||
cm.sendSimple(list);
|
||||
status = 2;
|
||||
} else if (expedition.isRegistering()) { //If the expedition is registering
|
||||
if (expedition.contains(player)) { //If you're in it but it hasn't started, be patient
|
||||
cm.sendOk("You have already registered for the expedition. Please wait for " + expedition.getLeader().getName() + " to begin the expedition.");
|
||||
cm.dispose();
|
||||
} else { //If you aren't in it, you're going to get added
|
||||
cm.sendOk(expedition.addMember(cm.getPlayer()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (status == 0) {
|
||||
if (player.getLevel() < cwkpq.getMinLevel() && player.getLevel() > cwkpq.getMaxLevel()) { //Don't fit requirement
|
||||
cm.sendOk("You do not meet the criteria to take attempt Crimsonwood Keep Party Quest!");
|
||||
cm.dispose();
|
||||
} else if (expedition == null) { //Start an expedition
|
||||
cm.sendSimple("#e#b<Party Quest: Crimsonwood Keep>\r\n#k#n" + em.getProperty("party") + "\r\n\r\nWould you like to assemble a team to attempt a #rCrimsonwood Keep Party Quest#k?\r\n#b#L1#Lets get this going!#l\r\n\#L2#No, I think I'll wait a bit...#l");
|
||||
status = 1;
|
||||
} else if (expedition.isLeader(player)) { //If you're the leader, manage the exped
|
||||
cm.sendSimple(list);
|
||||
status = 2;
|
||||
} else if (expedition.isRegistering()) { //If the expedition is registering
|
||||
if (expedition.contains(player)) { //If you're in it but it hasn't started, be patient
|
||||
cm.sendOk("You have already registered for the expedition. Please wait for #r" + expedition.getLeader().getName() + "#k to begin the expedition.");
|
||||
cm.dispose();
|
||||
} else { //If you aren't in it, you're going to get added
|
||||
cm.sendOk(expedition.addMember(cm.getPlayer()));
|
||||
cm.dispose();
|
||||
}
|
||||
} else if (expedition.isInProgress()) { //Only if the expedition is in progress
|
||||
if (expedition.contains(player)) { //If you're registered, warp you in
|
||||
em.getInstance("CWKPQ" + player.getClient().getChannel()).registerPlayer(player);
|
||||
cm.dispose();
|
||||
} else { //If you're not in by now, tough luck
|
||||
cm.sendOk("Another expedition has taken the initiative to complete the Crimsonwood Keep Party Quest, lets pray for those brave souls.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
} else if (expedition.isInProgress()) { //Only if the expedition is in progress
|
||||
if (expedition.contains(player)) { //If you're registered, warp you in
|
||||
em.getInstance("CWKPQ_" + player.getClient().getChannel()).registerPlayer(player);
|
||||
} else if (status == 1) {
|
||||
if (selection == 1) {
|
||||
expedition = cm.getExpedition(cwkpq);
|
||||
if(expedition != null) {
|
||||
cm.sendOk("Someone already taken the initiative to be the leader of the expedition. Try joining them!");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
cm.createExpedition(cwkpq);
|
||||
cm.sendOk("The #rCrimsonwood Keep Party Quest Expedition#k has been created.\r\n\r\nTalk to me again to view the current team, or start the fight!");
|
||||
cm.dispose();
|
||||
} else { //If you're not in by now, tough luck
|
||||
return;
|
||||
} else if (selection == 2) {
|
||||
cm.sendOk("Sure, not everyone's up to attempting Crimsonwood Keep Party Quest.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
} else if (status == 2) {
|
||||
if (selection == 1) {
|
||||
if (expedition == null) {
|
||||
cm.sendOk("The expedition could not be loaded.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
var size = expedition.getMembers().size();
|
||||
if (size == 1) {
|
||||
cm.sendOk("You are the only member of the expedition.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
var text = "The following members make up your expedition (Click on them to expel them):\r\n";
|
||||
text += "\r\n\t\t1." + expedition.getLeader().getName();
|
||||
for (var i = 1; i < size; i++) {
|
||||
text += "\r\n#b#L" + (i + 1) + "#" + (i + 1) + ". " + expedition.getMembers().get(i).getName() + "#l\n";
|
||||
}
|
||||
cm.sendSimple(text);
|
||||
status = 6;
|
||||
} else if (selection == 2) {
|
||||
var min = cwkpq.getMinSize();
|
||||
var size = expedition.getMembers().size();
|
||||
if (size < min) {
|
||||
cm.sendOk("You need at least " + min + " players registered in your expedition.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
cm.sendOk("The expedition will begin and you will now be escorted to the #bEntrance to CWKPQ Altar#k.");
|
||||
status = 4;
|
||||
} else if (selection == 3) {
|
||||
player.getMap().broadcastMessage(MaplePacketCreator.serverNotice(6, expedition.getLeader().getName() + " has ended the expedition."));
|
||||
cm.endExpedition(expedition);
|
||||
cm.sendOk("The expedition has now ended. Sometimes the best strategy is to run away.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
} else if (status == 4) {
|
||||
if (em == null) {
|
||||
cm.sendOk("The event could not be initialized, please report this on the forum.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
em.setProperty("leader", player.getName());
|
||||
em.setProperty("channel", player.getClient().getChannel());
|
||||
if(!em.startInstance(expedition)) {
|
||||
cm.sendOk("Another expedition has taken the initiative to complete the Crimsonwood Keep Party Quest, lets pray for those brave souls.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
} else if (status == 1) {
|
||||
if (selection == 1) {
|
||||
cm.createExpedition(cwkpq);
|
||||
cm.sendOk("The #rCrimsonwood Keep Party Quest Expedition#k has been created.\r\n\r\nTalk to me again to view the current team, or start the fight!");
|
||||
cm.dispose();
|
||||
return;
|
||||
} else if (selection == 2) {
|
||||
cm.sendOk("Sure, not everyone's up to attempting Crimsonwood Keep Party Quest.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
} else if (status == 2) {
|
||||
if (selection == 1) {
|
||||
if (expedition == null) {
|
||||
cm.sendOk("The expedition could not be loaded.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
var size = expedition.getMembers().size();
|
||||
if (size == 1) {
|
||||
cm.sendOk("You are the only member of the expedition.");
|
||||
|
||||
cm.dispose();
|
||||
return;
|
||||
} else if (status == 6) {
|
||||
if (selection > 0) {
|
||||
var banned = expedition.getMembers().get(selection - 1);
|
||||
expedition.ban(banned);
|
||||
cm.sendOk("You have banned " + banned.getName() + " from the expedition.");
|
||||
cm.dispose();
|
||||
return;
|
||||
} else {
|
||||
cm.sendSimple(list);
|
||||
status = 2;
|
||||
}
|
||||
var text = "The following members make up your expedition (Click on them to expel them):\r\n";
|
||||
text += "\r\n\t\t1." + expedition.getLeader().getName();
|
||||
for (var i = 1; i < size; i++) {
|
||||
text += "\r\n#b#L" + (i + 1) + "#" + (i + 1) + ". " + expedition.getMembers().get(i).getName() + "#l\n";
|
||||
}
|
||||
cm.sendSimple(text);
|
||||
status = 6;
|
||||
} else if (selection == 2) {
|
||||
cm.sendOk("The expedition will begin and you will now be escorted to the #bEntrance to CWKPQ Altar#k.");
|
||||
status = 4;
|
||||
} else if (selection == 3) {
|
||||
player.getMap().broadcastMessage(MaplePacketCreator.removeClock());
|
||||
player.getMap().broadcastMessage(MaplePacketCreator.serverNotice(6, expedition.getLeader().getName() + " has ended the expedition."));
|
||||
cm.endExpedition(expedition);
|
||||
cm.sendOk("The expedition has now ended. Sometimes the best strategy is to run away.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
} else if (status == 4) {
|
||||
var min = 1; //cwkpq.getMinSize();
|
||||
var size = expedition.getMembers().size();
|
||||
if (size < min) {
|
||||
cm.sendOk("You need at least " + min + " players registered in your expedition.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (em == null) {
|
||||
cm.sendOk("The event could not be found, please report this on the forum.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
em.setProperty("leader", player.getName());
|
||||
em.setProperty("channel", player.getClient().getChannel());
|
||||
em.startInstance(expedition);
|
||||
cm.dispose();
|
||||
return;
|
||||
} else if (status == 6) {
|
||||
if (selection > 0) {
|
||||
var banned = expedition.getMembers().get(selection - 1);
|
||||
expedition.ban(banned);
|
||||
cm.sendOk("You have banned " + banned.getName() + " from the expedition.");
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.sendSimple(list);
|
||||
status = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,18 +5,25 @@ function start() {
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == 1) {
|
||||
status++;
|
||||
} else {
|
||||
status--;
|
||||
var eim = cm.getEventInstance();
|
||||
if (eim != null && eim.getIntProperty("glpq6") == 3) {
|
||||
cm.sendOk("... Well played. You overtook the Twisted Masters. Pass through that gate to receive your prizes.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!cm.isEventLeader()) {
|
||||
cm.sendNext("I wish for your leader to talk to me.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mode == 1) {
|
||||
status++;
|
||||
} else {
|
||||
status--;
|
||||
}
|
||||
|
||||
var eim = cm.getEventInstance();
|
||||
if (eim != null) {
|
||||
if (eim.getIntProperty("glpq6") == 0) {
|
||||
if (status == 0) {
|
||||
@@ -45,10 +52,6 @@ function action(mode, type, selection) {
|
||||
cm.sendNext("Well, no matter! The Twisted Masters will be glad to welcome you.");
|
||||
cm.mapMessage(6, "Twisted Masters approach!");
|
||||
|
||||
//MV or Heron
|
||||
var mob = eim.getMonster(9400589);
|
||||
cm.getMap().spawnMonsterOnGroundBelow(mob, new java.awt.Point(-1000, 276));
|
||||
|
||||
//Margana
|
||||
var mob = eim.getMonster(9400590);
|
||||
cm.getMap().spawnMonsterOnGroundBelow(mob, new java.awt.Point(-22, 1));
|
||||
@@ -79,6 +82,8 @@ function action(mode, type, selection) {
|
||||
eim.setIntProperty("glpq6", 3);
|
||||
|
||||
eim.showClearEffect(true);
|
||||
eim.giveEventPlayersStageReward(6);
|
||||
|
||||
eim.clearPQ();
|
||||
cm.dispose();
|
||||
} else {
|
||||
@@ -86,6 +91,7 @@ function action(mode, type, selection) {
|
||||
cm.dispose();
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("... Well played. You overtook the Twisted Masters. Pass through that gate to receive your prizes.");
|
||||
cm.dispose();
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -9,9 +9,11 @@ function enter(pi) {
|
||||
} else {
|
||||
eim.setIntProperty("glpq3_p", eim.getIntProperty("glpq3_p") + 1);
|
||||
|
||||
if(eim.getIntProperty("glpq3_p") == 5) {
|
||||
if(eim.getIntProperty("glpq3") == 5 && eim.getIntProperty("glpq3_p") == 5) {
|
||||
pi.mapMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030300, "3pt", 2);
|
||||
eim.giveEventPlayersStageReward(3);
|
||||
} else {
|
||||
pi.mapMessage(6, "An adventurer has passed through! " + (5 - eim.getIntProperty("glpq3_p")) + " to go.");
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
function enter(pi) {
|
||||
var eim = pi.getEventInstance();
|
||||
if (eim != null) {
|
||||
if (eim.getIntProperty("glpq3") != 5 || eim.getIntProperty("glpq3_p") != 5) {
|
||||
if (eim.getIntProperty("glpq3") < 5 || eim.getIntProperty("glpq3_p") < 5) {
|
||||
pi.playerMessage(5, "The portal is not opened yet.");
|
||||
return false;
|
||||
} else {
|
||||
|
||||
@@ -5,12 +5,7 @@ function enter(pi) {
|
||||
pi.playerMessage(5, "The portal is not opened yet.");
|
||||
return false;
|
||||
} else {
|
||||
pi.removeAll(4001256);
|
||||
pi.removeAll(4001257);
|
||||
pi.removeAll(4001258);
|
||||
pi.removeAll(4001259);
|
||||
pi.removeAll(4001260);
|
||||
pi.warp(610030600, 0);
|
||||
pi.warp(610030600, 0);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,11 +3,15 @@ function enter(pi) {
|
||||
|
||||
if (react.getState() < 1) {
|
||||
react.forceHitReactor(1);
|
||||
pi.getEventInstance().setIntProperty("glpq1", 1);
|
||||
|
||||
var eim = pi.getEventInstance();
|
||||
eim.setIntProperty("glpq1", 1);
|
||||
|
||||
pi.getEventInstance().dropMessage(5, "A strange force starts being emitted from the portal apparatus, showing a hidden path once blocked now open.");
|
||||
pi.warp(610030100, 0);
|
||||
|
||||
pi.getEventInstance().showClearEffect();
|
||||
eim.giveEventPlayersStageReward(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
function act() {
|
||||
|
||||
var eim = rm.getEventInstance();
|
||||
if (eim != null) {
|
||||
var mapId = rm.getMap().getId();
|
||||
@@ -9,7 +8,9 @@ function act() {
|
||||
eim.setIntProperty("glpq2", eim.getIntProperty("glpq2") + 1);
|
||||
if (eim.getIntProperty("glpq2") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "2pt", 2);
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
}
|
||||
} else if (mapId == 610030300) {
|
||||
eim.dropMessage(6, "The Warrior Sigil has been activated! You hear gears turning! The Menhir Defense System is active! Run!");
|
||||
@@ -17,11 +18,10 @@ function act() {
|
||||
rm.getMap().moveEnvironment("menhir0", 1);
|
||||
if (eim.getIntProperty("glpq3") == 5 && eim.getIntProperty("glpq3_p") == 5) {
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "3pt", 2);
|
||||
eim.giveEventPlayersStageReward(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//rm.getMap().moveEnvironment("menhir0", 1);
|
||||
}
|
||||
@@ -8,7 +8,9 @@ function act() {
|
||||
eim.setIntProperty("glpq2", eim.getIntProperty("glpq2") + 1);
|
||||
if (eim.getIntProperty("glpq2") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "2pt", 2);
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
}
|
||||
} else if (mapId == 610030300) {
|
||||
eim.dropMessage(6, "The Archer Sigil has been activated! You hear gears turning! The Menhir Defense System is active! Run!");
|
||||
@@ -17,7 +19,9 @@ function act() {
|
||||
rm.getMap().moveEnvironment("menhir2", 1);
|
||||
if (eim.getIntProperty("glpq3") == 5 && eim.getIntProperty("glpq3_p") == 5) {
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
eim.showClearEffect(mapId, "3pt", 2);
|
||||
|
||||
eim.showClearEffect(mapId, "3pt", 2);
|
||||
eim.giveEventPlayersStageReward(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,9 @@ function act() {
|
||||
eim.setIntProperty("glpq2", eim.getIntProperty("glpq2") + 1);
|
||||
if (eim.getIntProperty("glpq2") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "2pt", 2);
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
}
|
||||
} else if (mapId == 610030300) {
|
||||
eim.dropMessage(6, "The Mage Sigil has been activated! You hear gears turning! The Menhir Defense System is active! Run!");
|
||||
@@ -16,7 +18,9 @@ function act() {
|
||||
rm.getMap().moveEnvironment("menhir3", 1);
|
||||
if (eim.getIntProperty("glpq3") == 5 && eim.getIntProperty("glpq3_p") == 5) {
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "3pt", 2);
|
||||
eim.giveEventPlayersStageReward(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,9 @@ function act() {
|
||||
eim.setIntProperty("glpq2", eim.getIntProperty("glpq2") + 1);
|
||||
if (eim.getIntProperty("glpq2") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "2pt", 2);
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
}
|
||||
} else if (mapId == 610030300) {
|
||||
eim.dropMessage(6, "The Thief Sigil has been activated! You hear gears turning! The Menhir Defense System is active! Run!");
|
||||
@@ -16,7 +18,9 @@ function act() {
|
||||
rm.getMap().moveEnvironment("menhir4", 1);
|
||||
if (eim.getIntProperty("glpq3") == 5 && eim.getIntProperty("glpq3_p") == 5) {
|
||||
rm.mapMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "3pt", 2);
|
||||
eim.giveEventPlayersStageReward(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,9 @@ function act() {
|
||||
eim.setIntProperty("glpq2", eim.getIntProperty("glpq2") + 1);
|
||||
if (eim.getIntProperty("glpq2") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "2pt", 2);
|
||||
eim.giveEventPlayersStageReward(2);
|
||||
}
|
||||
} else if (mapId == 610030300) {
|
||||
eim.dropMessage(6, "The Pirate Sigil has been activated! You hear gears turning! The Menhir Defense System is active! Run!");
|
||||
@@ -16,7 +18,9 @@ function act() {
|
||||
rm.getMap().moveEnvironment("menhir5", 1);
|
||||
if (eim.getIntProperty("glpq3") == 5 && eim.getIntProperty("glpq3_p") == 5) {
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(mapId, "3pt", 2);
|
||||
eim.giveEventPlayersStageReward(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq5", eim.getIntProperty("glpq5") + 1);
|
||||
if (eim.getIntProperty("glpq5") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030500, "5pt", 2);
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq5", eim.getIntProperty("glpq5") + 1);
|
||||
if (eim.getIntProperty("glpq5") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030500, "5pt", 2);
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq5", eim.getIntProperty("glpq5") + 1);
|
||||
if (eim.getIntProperty("glpq5") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030500, "5pt", 2);
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq5", eim.getIntProperty("glpq5") + 1);
|
||||
if (eim.getIntProperty("glpq5") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030500, "5pt", 2);
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq5", eim.getIntProperty("glpq5") + 1);
|
||||
if (eim.getIntProperty("glpq5") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030500, "5pt", 2);
|
||||
eim.giveEventPlayersStageReward(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
21
scripts/reactor/6109013.js
Normal file
21
scripts/reactor/6109013.js
Normal file
@@ -0,0 +1,21 @@
|
||||
var fid = "glpq_s";
|
||||
|
||||
function action() {
|
||||
rm.mapMessage(6, "All stirges have disappeared.");
|
||||
rm.getMap().killAllMonsters(true);
|
||||
eim.setIntProperty(fid, 777);
|
||||
}
|
||||
|
||||
function touch() {
|
||||
var eim = rm.getEventInstance();
|
||||
|
||||
if(eim.getIntProperty(fid) == 5) action();
|
||||
eim.setIntProperty(fid, eim.getIntProperty(fid) + 1);
|
||||
}
|
||||
|
||||
function untouch() {
|
||||
var eim = rm.getEventInstance();
|
||||
|
||||
if(eim.getIntProperty(fid) == 5) action();
|
||||
eim.setIntProperty(fid, eim.getIntProperty(fid) - 1);
|
||||
}
|
||||
22
scripts/reactor/6109014.js
Normal file
22
scripts/reactor/6109014.js
Normal file
@@ -0,0 +1,22 @@
|
||||
function action() { //flame0, im assuming this is topleft
|
||||
var flames = Array("a1", "a2", "b1", "b2", "c1", "c2");
|
||||
for (var i = 0; i < flames.length; i++) {
|
||||
rm.getMap().toggleEnvironment(flames[i]);
|
||||
}
|
||||
}
|
||||
|
||||
var fid = "glpq_f0";
|
||||
|
||||
function touch() {
|
||||
var eim = rm.getEventInstance();
|
||||
|
||||
if(eim.getIntProperty(fid) == 0) action();
|
||||
eim.setIntProperty(fid, eim.getIntProperty(fid) + 1);
|
||||
}
|
||||
|
||||
function untouch() {
|
||||
var eim = rm.getEventInstance();
|
||||
|
||||
if(eim.getIntProperty(fid) == 1) action();
|
||||
eim.setIntProperty(fid, eim.getIntProperty(fid) - 1);
|
||||
}
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq4", eim.getIntProperty("glpq4") + 1);
|
||||
if (eim.getIntProperty("glpq4") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030400, "4pt", 2);
|
||||
eim.giveEventPlayersStageReward(4);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq4", eim.getIntProperty("glpq4") + 1);
|
||||
if (eim.getIntProperty("glpq4") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030400, "4pt", 2);
|
||||
eim.giveEventPlayersStageReward(4);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq4", eim.getIntProperty("glpq4") + 1);
|
||||
if (eim.getIntProperty("glpq4") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030400, "4pt", 2);
|
||||
eim.giveEventPlayersStageReward(4);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,9 @@ function act() {
|
||||
eim.setIntProperty("glpq4", eim.getIntProperty("glpq4") + 1);
|
||||
if (eim.getIntProperty("glpq4") == 5) { //all 5 done
|
||||
eim.dropMessage(6, "The Antellion grants you access to the next portal! Proceed!");
|
||||
|
||||
eim.showClearEffect(610030400, "4pt", 2);
|
||||
eim.giveEventPlayersStageReward(4);
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user