Autopot & Steal patch + Friendly mob drops + Portal update fix
Adjusted pet autopot to use temporary variables instead of the current player's HP, MP. This seems to have solved a race condition issue where the pet would instantly use up all the pots of the assigned itemid the player had on the inventory. Steal now uses the effective chance it is supposed to use. Reworked Steal so that it determines which item to drop accordingly with the drop rates of each available item. It won't drop Quest nor Party Quest items. Reworked friendly mob drops to act on the same way common mobs drops items. Fixed issues with scripted portals introduced on the Portal Soundeffect update patch. There is expected to have no more syntax errors on the portal scripts. Improved quality of the strings used on the Expedition scripts. New command: reach. Warps the caller to the area where the targeted player is.
This commit is contained in:
@@ -40,7 +40,7 @@ function cancelSchedule() {
|
||||
}
|
||||
|
||||
function start() {
|
||||
var mapObj = em.getChannelServer().getMapFactory().getMap(800020120);
|
||||
var mapObj = em.getChannelServer().getMapFactory().getMap(800020120); // original mapid was 251010101
|
||||
var mobObj = Packages.server.life.MapleLifeFactory.getMonster(6090002);
|
||||
|
||||
if(mapObj.getMonsterById(6090002) != null) {
|
||||
|
||||
@@ -222,7 +222,7 @@ function scheduledTimeout(eim) {
|
||||
function changedMap(eim, player, mapid) {
|
||||
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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
@@ -279,7 +279,7 @@ 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.");
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
@@ -290,7 +290,7 @@ function playerRevive(eim, 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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ function scheduledTimeout(eim) {
|
||||
function changedMap(eim, player, mapid) {
|
||||
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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
@@ -125,7 +125,7 @@ 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.");
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
@@ -136,7 +136,7 @@ function playerRevive(eim, 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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ function scheduledTimeout(eim) {
|
||||
function changedMap(eim, player, mapid) {
|
||||
if (mapid < minMapId || mapid > maxMapId) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue this expedition.");
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
@@ -144,7 +144,7 @@ function playerRevive(eim, player) {
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
if (eim.isEventTeamLackingNow(true, minPlayers, player)) {
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue this expedition.");
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ function scheduledTimeout(eim) {
|
||||
function changedMap(eim, player, mapid) {
|
||||
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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
@@ -111,7 +111,7 @@ 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.");
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
@@ -122,7 +122,7 @@ function playerRevive(eim, 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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ function scheduledTimeout(eim) {
|
||||
function changedMap(eim, player, mapid) {
|
||||
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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
@@ -117,7 +117,7 @@ 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.");
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
@@ -128,7 +128,7 @@ function playerRevive(eim, 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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ function scheduledTimeout(eim) {
|
||||
function changedMap(eim, player, mapid) {
|
||||
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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
@@ -113,7 +113,7 @@ 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.");
|
||||
eim.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
end(eim);
|
||||
}
|
||||
else {
|
||||
@@ -124,7 +124,7 @@ function playerRevive(eim, 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.dropMessage(5, "[Expedition] Either the leader has quit the expedition or there is no longer the minimum number of members required to continue it.");
|
||||
eim.unregisterPlayer(player);
|
||||
end(eim);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ importPackage(Packages.server.events);
|
||||
var status = 0;
|
||||
var dispose = false;
|
||||
function start(){
|
||||
status == 0;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
47
scripts/npc/1092015.js
Normal file
47
scripts/npc/1092015.js
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
This file is part of the HeavenMS (MapleSolaxiaV2) MapleStory Server
|
||||
Copyleft (L) 2017 RonanLana
|
||||
|
||||
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/>.
|
||||
*/
|
||||
/* Water Filter */
|
||||
|
||||
var status;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
} else {
|
||||
if (mode == 0 && type > 0) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if(status == 0) {
|
||||
cm.sendOk("I'm bored! Someone come play with me!");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37,8 +37,9 @@ function action(mode, type, selection) {
|
||||
status++;
|
||||
if (status == 0) {
|
||||
if(!hasCoupon) {
|
||||
var display = "";
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
var display = "\r\n#L"+i+"##b Victoria Island (1000 mesos)#k";
|
||||
display += "\r\n#L"+i+"##b Victoria Island (1000 mesos)#k";
|
||||
}
|
||||
cm.sendSimple("Eh, Hello...again. Do you want to leave Ereve and go somewhere else? If so, you've come to the right place. I operate a ferry that goes from #bEreve#k to #bVictoria Island#k, I can take you to #bVictoria Island#k if you want... You'll have to pay a fee of #b1000#k Mesos.\r\n"+display);
|
||||
} else {
|
||||
|
||||
@@ -31,8 +31,9 @@ function action(mode, type, selection) {
|
||||
}
|
||||
status++;
|
||||
if (status == 0) {
|
||||
var display = "";
|
||||
for (var i = 0; i < menu.length; i++) {
|
||||
var display = "\r\n#L" + i + "##b Orbis (1000 mesos)#k";
|
||||
display += "\r\n#L" + i + "##b Orbis (1000 mesos)#k";
|
||||
}
|
||||
cm.sendSimple("Hmm... The winds are favorable. Are you thinking of leaving ereve and going somwhere else? This ferry sails to Orbis on the Ossyria Continent, Have you taking care of everything you needed to in Ereve? If you happen to be headed toward #bOrbis#k i can take you there. What do you day? Are you going to go to Orbis?\r\n" + display);
|
||||
|
||||
|
||||
@@ -32,10 +32,11 @@ function action(mode, type, selection) {
|
||||
}
|
||||
status++;
|
||||
if (status == 0) {
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
var display = "\r\n#L"+i+"##b Ereve (1000 mesos)#k";
|
||||
}
|
||||
cm.sendSimple("Eh... So... Um... Are you trying to leave Victoria to go to a different region? You can take this boat to #bEreve#k. There, you will see bright sunlight shinning on the leaves and feel a gentle breeze on your skin. It's where Shinsoo and Empress Cygnus are. Would you like to go to Ereve? It will take about #b2 Minutes#k, and it will cost you #b1000#k mesos.\r\n"+display);
|
||||
var display = "";
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
display += "\r\n#L"+i+"##b Ereve (1000 mesos)#k";
|
||||
}
|
||||
cm.sendSimple("Eh... So... Um... Are you trying to leave Victoria to go to a different region? You can take this boat to #bEreve#k. There, you will see bright sunlight shinning on the leaves and feel a gentle breeze on your skin. It's where Shinsoo and Empress Cygnus are. Would you like to go to Ereve? It will take about #b2 Minutes#k, and it will cost you #b1000#k mesos.\r\n"+display);
|
||||
|
||||
} else if(status == 1) {
|
||||
if(cm.getMeso() < 1000) {
|
||||
|
||||
@@ -32,8 +32,9 @@ function action(mode, type, selection) {
|
||||
}
|
||||
status++;
|
||||
if (status == 0) {
|
||||
var display = "";
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
var display = "\r\n#L"+i+"##b Ereve (1000 mesos)#k";
|
||||
display += "\r\n#L"+i+"##b Ereve (1000 mesos)#k";
|
||||
}
|
||||
cm.sendSimple("This ship will head towards #bEreve#k, an island where you'll find crimson leaves soaking up the sun, the gentle breeze that glides past the stream, and the Empress of Maple Cygnus. If you're interested in joining the Cygnus Knights, Then you should definitly pay a visit here. Are you interested in visiting Ereve?, The Trip will cost you #b1000#k Mesos\r\n"+display);
|
||||
|
||||
|
||||
@@ -32,8 +32,9 @@ function action(mode, type, selection) {
|
||||
}
|
||||
status++;
|
||||
if (status == 0) {
|
||||
var display = "";
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
var display = "\r\n#L"+i+"##b Lith Harbor (800 mesos)#k";
|
||||
display += "\r\n#L"+i+"##b Lith Harbor (800 mesos)#k";
|
||||
}
|
||||
cm.sendSimple("Are you trying to leave Rien? Board this ship and I'll take you from #bRien#k to #bLith Harbor#k and back. for a #bfee of 800#k Mesos. Would you like to head over to Lith Harbor now? It'll take about a minute to get there.\r\n"+display);
|
||||
|
||||
|
||||
@@ -32,8 +32,9 @@ function action(mode, type, selection) {
|
||||
}
|
||||
status++;
|
||||
if (status == 0) {
|
||||
var display = "";
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
var display = "\r\n#L"+i+"##b Rien (800 mesos)#k";
|
||||
display += "\r\n#L"+i+"##b Rien (800 mesos)#k";
|
||||
}
|
||||
cm.sendSimple("Are you thinking about leaving Victoria Island and heading to our town? If you board this ship, I can take you from #bLith Harbor#k to #bRien#k and back. But you must pay a #bfee of 800#k Mesos. Would you like to go to Rien? It'll take about a minute to get there.\r\n"+display);
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ function action(mode, type, selection) {
|
||||
} else {
|
||||
if(cm.haveItem(4031061) && cm.haveItem(4031062)) {
|
||||
if(!cm.haveItem(4000082, 30)) {
|
||||
cm.sendOk("You have completed the trials, however there still the need of #b30 #t4000082##k to forge the #t4001017#.");
|
||||
cm.sendOk("You have completed the trials, however there's still the need of #b30 #t4000082##k to forge the #t4001017#.");
|
||||
} else {
|
||||
cm.completeQuest(100201);
|
||||
cm.gainItem(4031061, -1);
|
||||
@@ -109,7 +109,7 @@ function action(mode, type, selection) {
|
||||
cm.gainItem(4000082, -30);
|
||||
|
||||
cm.gainItem(4001017, 1);
|
||||
cm.sendNext("You have completed the trials, from now on having my approval to challenge Zakum.");
|
||||
cm.sendNext("You #rhave completed the trials#k, from now on having my approval to challenge Zakum.");
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
|
||||
@@ -79,9 +79,9 @@ function action(mode, type, selection) {
|
||||
else {
|
||||
gotAllDocs = cm.haveItem(4001015, 30);
|
||||
if (!gotAllDocs) { //documents
|
||||
cm.sendYesNo("So, you brought the fire ore with you? In that case, I can give you and your party a piece of it that should be more than enough to make the core of Zakum. Make sure your whole party has room in their inventory before proceeding.");
|
||||
cm.sendYesNo("So, you brought the fire ore with you? In that case, I can give to you and to each member of your party a piece of it, that should be more than enough to make the core of Zakum. Make sure your whole party has room in their inventory before proceeding.");
|
||||
} else {
|
||||
cm.sendYesNo("So, you brought the fire ore and the documents with you? In that case, I can give you and your party a piece of it that should be more than enough to make the core of Zakum. As well, since you brought the documents with you, I can also give you a special item which will #bbring you to the mine's entrance at any time#k. Make sure your whole party has room in their inventory before proceeding.");
|
||||
cm.sendYesNo("So, you brought the fire ore and the documents with you? In that case, I can give to you and to each member of your party a piece of it, that should be more than enough to make the core of Zakum. As well, since you #rbrought the documents#k with you, I can also provide you a special item which will #bbring you to the mine's entrance at any time#k. Make sure your whole party has room in their inventory before proceeding.");
|
||||
}
|
||||
}
|
||||
} else if (selection == 2)
|
||||
|
||||
@@ -38,7 +38,7 @@ function action(mode, type, selection) {
|
||||
status++;
|
||||
|
||||
if (status == 0) {
|
||||
cm.sendNext("Congratulations on getting this far! Well, I suppose I'd better give you your #bBreath of Fire#k. You've certainly earned it!");
|
||||
cm.sendNext("Congratulations on getting this far! Well, I suppose I'd better give you the #bBreath of Fire#k. You've certainly earned it!");
|
||||
} else if (status == 1) {
|
||||
if(!cm.canHold(4031062)) {
|
||||
cm.sendOk("Try freeing a slot to receive the #b#t4031062##k.");
|
||||
|
||||
@@ -143,7 +143,7 @@ function action(mode, type, selection) {
|
||||
cost = costSet[selectedItem];
|
||||
}
|
||||
//Ludi fee is -10%, array not changed unlike 2040016 and 2040020
|
||||
cost *= .9;
|
||||
cost *= 0.9;
|
||||
var prompt = "You want me to make a #t" + item + "#? In that case, I'm going to need specific items from you in order to make it. Make sure you have room in your inventory, though!#b";
|
||||
if(stimulator)
|
||||
prompt += "\r\n#i"+stimID+"# 1 #t" + stimID + "#";
|
||||
|
||||
47
scripts/npc/9000007.js
Normal file
47
scripts/npc/9000007.js
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
This file is part of the HeavenMS (MapleSolaxiaV2) MapleStory Server
|
||||
Copyleft (L) 2017 RonanLana
|
||||
|
||||
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/>.
|
||||
*/
|
||||
/* Chun Ji */
|
||||
|
||||
var status;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
} else {
|
||||
if (mode == 0 && type > 0) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if(status == 0) {
|
||||
cm.sendOk("Just a kid... Don't talk to me...");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,14 @@
|
||||
/**
|
||||
*9201083 - T-1337
|
||||
*9201101 - T-1337
|
||||
*@author Ronan
|
||||
*/
|
||||
|
||||
function start() {
|
||||
cm.sendOk("The patrol in New Leaf City is always ready. No creatures are able to break through to the city.");
|
||||
if(Packages.server.MapleShopFactory.getInstance().getShop(9201101) != null) {
|
||||
cm.openShopNPC(9201101);
|
||||
} else {
|
||||
cm.sendOk("The patrol in New Leaf City is always ready. No creatures are able to break through to the city.");
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
@@ -30,13 +30,20 @@ function action(mode, type, selection) {
|
||||
|
||||
if (status == 0) {
|
||||
var greeting = "Hello, I'm #p9209000#, the Skill & Mastery Book announcer! ";
|
||||
|
||||
var jobrank = cm.getJob().getId() % 10;
|
||||
if(jobrank < 2) {
|
||||
cm.sendOk(greeting + "Keep training yourself until you reach the #r4th job#k of your class. New opportunities for improvement will arrive when you reach that feat!");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
skillbook = cm.getAvailableSkillBooks();
|
||||
masterybook = cm.getAvailableMasteryBooks();
|
||||
|
||||
if(skillbook.length == 0 && masterybook.length == 0) {
|
||||
cm.sendOk(greeting + "There are no more books available to further improve your job skills for now. Either you #bmaxed out everything#k or #byou didn't reach the minimum requisites to use some skill books#k yet.");
|
||||
cm.sendOk(greeting + "There are no books available to further improve your job skills for now. Either you #bmaxed out everything#k or #byou didn't reach the minimum requisites to use some skill books#k yet.");
|
||||
cm.dispose();
|
||||
|
||||
} else if(skillbook.length > 0 && masterybook.length > 0) {
|
||||
var sendStr = greeting + "New opportunities for skill improvement have been located for you to improve your skills! Pick a type to take a look onto.\r\n\r\n#b";
|
||||
|
||||
@@ -51,7 +58,7 @@ function action(mode, type, selection) {
|
||||
selected = 2;
|
||||
cm.sendNext(greeting + "New opportunities for skill improvement have been located for you to improve your skills! Only skill upgrades available.");
|
||||
}
|
||||
|
||||
|
||||
} else if(status == 1) {
|
||||
var sendStr = "The following books are currently available:\r\n\r\n";
|
||||
if(selected == 0) selected = selection;
|
||||
|
||||
@@ -166,6 +166,7 @@ function writeSolaxiaCommandsLv2() { //JrGM
|
||||
addCommand("warp", "");
|
||||
addCommand("warpto", "");
|
||||
addCommand("warphere", "");
|
||||
addCommand("reach", "");
|
||||
addCommand("gmshop", "");
|
||||
addCommand("heal", "");
|
||||
addCommand("item", "");
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
F/*
|
||||
/*
|
||||
This file is part of the OdinMS Maple Story Server
|
||||
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
|
||||
Matthias Butz <matze@odinms.de>
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
function enter(pi) {
|
||||
if (pi.isQuestStarted(2300) || pi.isQuestCompleted(2300)
|
||||
|| pi.isQuestStarted(2301) || pi.isQuestCompleted(2301)
|
||||
|| pi.isQuestStarted(2302) || pi.isQuestCompleted(2302)
|
||||
|| pi.isQuestStarted(2303) || pi.isQuestCompleted(2303)
|
||||
|| pi.isQuestStarted(2304) || pi.isQuestCompleted(2304)
|
||||
|| pi.isQuestStarted(2305) || pi.isQuestCompleted(2305)
|
||||
|| pi.isQuestStarted(2306) || pi.isQuestCompleted(2306)
|
||||
|| pi.isQuestStarted(2307) || pi.isQuestCompleted(2307)
|
||||
|| pi.isQuestStarted(2308) || pi.isQuestCompleted(2308)
|
||||
|| pi.isQuestStarted(2309) || pi.isQuestCompleted(2309)
|
||||
|| pi.isQuestStarted(2310) || pi.isQuestCompleted(2310)) {
|
||||
if (pi.isQuestStarted(2300) || pi.isQuestCompleted(2300) ||
|
||||
pi.isQuestStarted(2301) || pi.isQuestCompleted(2301) ||
|
||||
pi.isQuestStarted(2302) || pi.isQuestCompleted(2302) ||
|
||||
pi.isQuestStarted(2303) || pi.isQuestCompleted(2303) ||
|
||||
pi.isQuestStarted(2304) || pi.isQuestCompleted(2304) ||
|
||||
pi.isQuestStarted(2305) || pi.isQuestCompleted(2305) ||
|
||||
pi.isQuestStarted(2306) || pi.isQuestCompleted(2306) ||
|
||||
pi.isQuestStarted(2307) || pi.isQuestCompleted(2307) ||
|
||||
pi.isQuestStarted(2308) || pi.isQuestCompleted(2308) ||
|
||||
pi.isQuestStarted(2309) || pi.isQuestCompleted(2309) ||
|
||||
pi.isQuestStarted(2310) || pi.isQuestCompleted(2310)) {
|
||||
pi.playPortalSound();
|
||||
pi.warp(106020000, 0);
|
||||
return true;
|
||||
|
||||
@@ -30,7 +30,7 @@ function enter(pi) {
|
||||
}
|
||||
|
||||
if (!pi.isQuestCompleted(100201)) {
|
||||
pi.getPlayer().dropMessage(5,"You do not have completed all the trials yet. You may not attempt the boss right now.");
|
||||
pi.getPlayer().dropMessage(5,"You haven't completed all the trials yet. You may not attempt the boss right now.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
function enter(pi) {
|
||||
if (pi.isQuestStarted(1041))
|
||||
pi.warp(1010100, 4);
|
||||
else if (pi.isQuestStarted(1042))
|
||||
pi.warp(1010200, 4);
|
||||
else if (pi.isQuestStarted(1043))
|
||||
pi.warp(1010300, 4);
|
||||
else if (pi.isQuestStarted(1044))
|
||||
if (pi.isQuestStarted(1041)) {
|
||||
pi.playPortalSound(); pi.warp(1010100, 4);
|
||||
} else if (pi.isQuestStarted(1042)) {
|
||||
pi.playPortalSound(); pi.warp(1010200, 4);
|
||||
} else if (pi.isQuestStarted(1043)) {
|
||||
pi.playPortalSound(); pi.warp(1010300, 4);
|
||||
} else if (pi.isQuestStarted(1044)) {
|
||||
pi.playPortalSound(); pi.warp(1010400, 4);
|
||||
else {
|
||||
} else {
|
||||
pi.message("Only the adventurers that have been trained by Mai may enter.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -23,13 +23,19 @@
|
||||
* @author Jvlaple
|
||||
*/
|
||||
function enter(pi) {
|
||||
var nextMap;
|
||||
var eim;
|
||||
var target;
|
||||
var targetPortal;
|
||||
var avail;
|
||||
|
||||
if (pi.getPlayer().getMapId() == 240050101) {
|
||||
var nextMap = 240050102;
|
||||
var eim = pi.getPlayer().getEventInstance()
|
||||
var target = eim.getMapInstance(nextMap);
|
||||
var targetPortal = target.getPortal("sp");
|
||||
nextMap = 240050102;
|
||||
eim = pi.getPlayer().getEventInstance();
|
||||
target = eim.getMapInstance(nextMap);
|
||||
targetPortal = target.getPortal("sp");
|
||||
// only let people through if the eim is ready
|
||||
var avail = eim.getProperty("1stageclear");
|
||||
avail = eim.getProperty("1stageclear");
|
||||
if (avail == null) {
|
||||
// do nothing; send message to player
|
||||
pi.getPlayer().dropMessage(6, "Horntail\'s Seal is Blocking this Door.");
|
||||
@@ -40,12 +46,12 @@ function enter(pi) {
|
||||
}
|
||||
}
|
||||
else if (pi.getPlayer().getMapId() == 240050102) {
|
||||
var nextMap = 240050103;
|
||||
var eim = pi.getPlayer().getEventInstance()
|
||||
var target = eim.getMapInstance(nextMap);
|
||||
var targetPortal = target.getPortal("sp");
|
||||
nextMap = 240050103;
|
||||
eim = pi.getPlayer().getEventInstance();
|
||||
target = eim.getMapInstance(nextMap);
|
||||
targetPortal = target.getPortal("sp");
|
||||
// only let people through if the eim is ready
|
||||
var avail = eim.getProperty("2stageclear");
|
||||
avail = eim.getProperty("2stageclear");
|
||||
if (avail == null) {
|
||||
// do nothing; send message to player
|
||||
pi.getPlayer().dropMessage(6, "Horntail\'s Seal is Blocking this Door.");
|
||||
@@ -56,12 +62,12 @@ function enter(pi) {
|
||||
}
|
||||
}
|
||||
else if (pi.getPlayer().getMapId() == 240050103) {
|
||||
var nextMap = 240050104;
|
||||
var eim = pi.getPlayer().getEventInstance()
|
||||
var target = eim.getMapInstance(nextMap);
|
||||
var targetPortal = target.getPortal("sp");
|
||||
nextMap = 240050104;
|
||||
eim = pi.getPlayer().getEventInstance();
|
||||
target = eim.getMapInstance(nextMap);
|
||||
targetPortal = target.getPortal("sp");
|
||||
// only let people through if the eim is ready
|
||||
var avail = eim.getProperty("3stageclear");
|
||||
avail = eim.getProperty("3stageclear");
|
||||
if (avail == null) {
|
||||
// do nothing; send message to player
|
||||
pi.getPlayer().dropMessage(6, "Horntail\'s Seal is Blocking this Door.");
|
||||
@@ -72,12 +78,12 @@ function enter(pi) {
|
||||
}
|
||||
}
|
||||
else if (pi.getPlayer().getMapId() == 240050104) {
|
||||
var nextMap = 240050105;
|
||||
var eim = pi.getPlayer().getEventInstance()
|
||||
var target = eim.getMapInstance(nextMap);
|
||||
var targetPortal = target.getPortal("sp");
|
||||
nextMap = 240050105;
|
||||
eim = pi.getPlayer().getEventInstance();
|
||||
target = eim.getMapInstance(nextMap);
|
||||
targetPortal = target.getPortal("sp");
|
||||
// only let people through if the eim is ready
|
||||
var avail = eim.getProperty("4stageclear");
|
||||
avail = eim.getProperty("4stageclear");
|
||||
if (avail == null) {
|
||||
// do nothing; send message to player
|
||||
pi.getPlayer().dropMessage(6, "Horntail\'s Seal is Blocking this Door.");
|
||||
@@ -88,15 +94,15 @@ function enter(pi) {
|
||||
}
|
||||
}
|
||||
else if (pi.getPlayer().getMapId() == 240050105) {
|
||||
var nextMap = 240050100;
|
||||
var eim = pi.getPlayer().getEventInstance()
|
||||
var target = eim.getMapInstance(nextMap);
|
||||
var targetPortal = target.getPortal("st00");
|
||||
nextMap = 240050100;
|
||||
eim = pi.getPlayer().getEventInstance();
|
||||
target = eim.getMapInstance(nextMap);
|
||||
targetPortal = target.getPortal("st00");
|
||||
|
||||
var avail = eim.getProperty("5stageclear");
|
||||
avail = eim.getProperty("5stageclear");
|
||||
if (avail == null) {
|
||||
if (pi.haveItem(4001092) && pi.isEventLeader()) {
|
||||
pi.getEventInstance().showClearEffect();
|
||||
eim.showClearEffect();
|
||||
pi.getPlayer().dropMessage(6, "The leader's key break the seal for a flash...");
|
||||
pi.getPlayer().changeMap(target, targetPortal);
|
||||
eim.setIntProperty("5stageclear", 1);
|
||||
|
||||
@@ -26,7 +26,7 @@ LudiPQ - 1 - 2 Portal
|
||||
|
||||
function enter(pi) {
|
||||
var nextMap = 922010700;
|
||||
var eim = pi.getPlayer().getEventInstance()
|
||||
var eim = pi.getPlayer().getEventInstance();
|
||||
var target = eim.getMapInstance(nextMap);
|
||||
var targetPortal = target.getPortal("st00");
|
||||
// only let people through if the eim is ready
|
||||
|
||||
@@ -8,7 +8,7 @@ function enter(pi) {
|
||||
var questProgress = pi.getQuestProgress(2330, 3300005) + pi.getQuestProgress(2330, 3300006) + pi.getQuestProgress(2330, 3300007); //3 Yetis
|
||||
if(questProgress == 3 && !pi.hasItem(4032388)) {
|
||||
if(pi.canHold(4032388)){
|
||||
pi.getPlayer().message("You have aquired a key to the Wedding Hall. King Pepe must have dropped it.")
|
||||
pi.getPlayer().message("You have aquired a key to the Wedding Hall. King Pepe must have dropped it.");
|
||||
pi.gainItem(4032388, 1);
|
||||
|
||||
pi.playPortalSound();
|
||||
|
||||
@@ -26,6 +26,6 @@
|
||||
*/
|
||||
|
||||
function act(){
|
||||
rm.playerMessage(5, "An unknown force has returned you to the starting point.");
|
||||
rm.playerMessage(5, "An unknown force has moved you to the starting point.");
|
||||
rm.warp(280010000, 0);
|
||||
}
|
||||
28
scripts/reactor/2602000.js
Normal file
28
scripts/reactor/2602000.js
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
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/>.
|
||||
*/
|
||||
/*2612004.js - Queen's treasure room
|
||||
*@author Ronan
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems();
|
||||
}
|
||||
Reference in New Issue
Block a user