Reactor spray-drop + Quest with equipped items + MapleMapInfoRetriever
Implemented GMS-like "item spraying" from reactors. All boxes holding more than 5 drops have been changed to use this behavior. Added information for players trying to start/complete quests having the required item equipped. It is expected to have all required items unequipped before handling a quest operation. New check-purpose tool: MapleMapInfoRetriever. It's sole function is to detect and report map XMLs that has no "info" node in between the server files.
This commit is contained in:
File diff suppressed because one or more lines are too long
47
scripts/quest/21600.js
Normal file
47
scripts/quest/21600.js
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
This file is part of the MapleSolaxiaV2 Maple Story Server
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
var status = -1;
|
||||
|
||||
function start(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
qm.dispose();
|
||||
} else {
|
||||
if(mode == 0 && type > 0) {
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
qm.sendNext("Hey, Aran. You seem pretty strong, since that time from when you got freed from the glacier. Suitable enough to #bride a wolf#k, if you ask me.");
|
||||
} else if (status == 1) {
|
||||
qm.sendAcceptDecline("Picked your interest, huh? Very well, first you must make your way to #bAqua#k, there is a person there who makes #rfood for wolf cubs#k. Bring one portion to me, and I shall deem you able to tame and take care of one. What do you say, will you try for it?");
|
||||
} else if (status == 2) {
|
||||
qm.sendNext("Alright. The one you must meet is #bNanuke#k, she is on top of a #rsnowy whale#k, somewhere in the ocean. Good luck!");
|
||||
qm.forceStartQuest();
|
||||
|
||||
qm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,10 +20,10 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*@author Ronan
|
||||
*Reactor : OrbisPQ Bonus Reactor - 2202004.js
|
||||
*Reactor : OrbisPQ Bonus Reactor - 2002017.js
|
||||
* Drops all the Bonus Items
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems(true, 1, 100, 400, 15);
|
||||
rm.sprayItems(true, 1, 100, 400, 15);
|
||||
}
|
||||
29
scripts/reactor/2002018.js
Normal file
29
scripts/reactor/2002018.js
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
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 Ronan
|
||||
*Reactor : OrbisPQ Bonus Reactor - 2002018.js
|
||||
* Drops all the Bonus Items
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.sprayItems(true, 1, 100, 400, 15);
|
||||
}
|
||||
@@ -25,5 +25,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
@@ -29,5 +29,5 @@ function act() {
|
||||
var now = eim.getIntProperty("openedChests");
|
||||
var nextNum = now + 1;
|
||||
eim.setIntProperty("openedChests", nextNum);
|
||||
rm.dropItems(true, 1, 50, 100, 15);
|
||||
rm.sprayItems(true, 1, 50, 100, 15);
|
||||
}
|
||||
@@ -24,5 +24,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems();
|
||||
rm.sprayItems();
|
||||
}
|
||||
@@ -24,5 +24,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems();
|
||||
rm.sprayItems();
|
||||
}
|
||||
@@ -24,5 +24,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems();
|
||||
rm.sprayItems();
|
||||
}
|
||||
@@ -24,5 +24,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems();
|
||||
rm.sprayItems();
|
||||
}
|
||||
@@ -24,5 +24,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems();
|
||||
rm.sprayItems();
|
||||
}
|
||||
@@ -25,5 +25,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems(true, 1, 90, 360, 15);
|
||||
rm.sprayItems(true, 1, 90, 360, 15);
|
||||
}
|
||||
@@ -25,5 +25,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems(true, 1, 90, 360, 15);
|
||||
rm.sprayItems(true, 1, 90, 360, 15);
|
||||
}
|
||||
@@ -25,5 +25,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems(true, 1, 90, 360, 15);
|
||||
rm.sprayItems(true, 1, 90, 360, 15);
|
||||
}
|
||||
@@ -25,5 +25,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems(true, 1, 90, 360, 15);
|
||||
rm.sprayItems(true, 1, 90, 360, 15);
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,6 @@ function act() {
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.dropItems(true, 1, 30, 60, 15);
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
34
scripts/reactor/6702012.js
Normal file
34
scripts/reactor/6702012.js
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
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/>.
|
||||
*/
|
||||
/**
|
||||
*AmoriaPQ Bonus Reactor
|
||||
*6702012.js
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rand = Math.floor(Math.random() * 4);
|
||||
if (rand < 1) rand = 1;
|
||||
//We'll make it drop a lot of crap :D
|
||||
for (var i = 0; i<rand; i++) {
|
||||
rm.sprayItems(true, 1, 30, 60, 15);
|
||||
}
|
||||
}
|
||||
@@ -26,5 +26,5 @@
|
||||
*/
|
||||
|
||||
function act() {
|
||||
rm.dropItems(true, 1, 30, 60, 10);
|
||||
rm.sprayItems(true, 1, 30, 60, 10);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user