Slot Max & Wind Walk fix + reviewed scripted portals
Fixed slotMax function caching up dirtied player data. Fixed many portals not supposed to warp players to "random spawnpoints". Fixed Wind Walk not being cancellable by attacking.
This commit is contained in:
@@ -45,14 +45,11 @@ function start() {
|
||||
var thicketAroundTheBeach3 = em.getChannelServer().getMapFactory().getMap(104000400);
|
||||
var mano = Packages.server.life.MapleLifeFactory.getMonster(2220000);
|
||||
if(thicketAroundTheBeach3.getMonsterById(2220000) != null) {
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
return;
|
||||
}
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 455;
|
||||
posX = Math.floor((Math.random() * 605) + 110);
|
||||
thicketAroundTheBeach3.spawnMonsterOnGroundBelow(mano, new Packages.java.awt.Point(posX, posY));
|
||||
thicketAroundTheBeach3.spawnMonsterOnGroundBelow(mano, new Packages.java.awt.Point(279, -496));
|
||||
thicketAroundTheBeach3.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "A cool breeze was felt when Mano appeared."));
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
em.schedule("start", 3 * 60 *60 * 1000);
|
||||
}
|
||||
@@ -46,15 +46,15 @@ function start() {
|
||||
var eastRockyMountain5 = em.getChannelServer().getMapFactory().getMap(101030404);
|
||||
var stumpy = Packages.server.life.MapleLifeFactory.getMonster(3220000);
|
||||
|
||||
if(eastRockyMountain5.getMonsterById(3220000) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
if(eastRockyMountain5.getMonsterById(3220000) != null) {
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
var posX;
|
||||
var posY = 1280;
|
||||
posX = Math.floor((Math.random() * 800) + 400);
|
||||
posX = Math.floor((Math.random() * 800) + 400);
|
||||
eastRockyMountain5.spawnMonsterOnGroundBelow(stumpy, new Packages.java.awt.Point(posX, posY));
|
||||
eastRockyMountain5.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Stumpy has appeared with a stumping sound that rings the Stone Mountain."));
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||
}
|
||||
25
scripts/npc/1002006.js
Normal file
25
scripts/npc/1002006.js
Normal file
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
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/>.
|
||||
*/
|
||||
function start() {
|
||||
cm.sendNext("Hi, I'm #b#p1002006##k. Nice to meet you.")
|
||||
cm.dispose();
|
||||
}
|
||||
@@ -18,7 +18,7 @@ function action(mode, type, selection) {
|
||||
} else if (status == 1) {
|
||||
cm.sendNextPrev("Go and fulfill your duties as the Dragon Master...", 1);
|
||||
} else if (status == 2) {
|
||||
cm.warp(900090101);
|
||||
cm.warp(900090101, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
function start() {
|
||||
cm.forceCompleteQuest(22011);
|
||||
cm.playerMessage(5, "You have acquired a Dragon Egg.");//actually getInfoMessage
|
||||
cm.warp(900090103);
|
||||
cm.warp(900090103, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
@@ -35,7 +35,7 @@ function action(mode, type, selection){
|
||||
cm.sendOk("The Order of the Altair is a group of elite mercenaries that oversee the world's economy and battle operations. It was founded 40 years ago right after Black Mage was defeated in hopes of forseeing the next possible attack.");
|
||||
cm.dispose();
|
||||
} else if(status == 3){
|
||||
cm.warp(105100300);
|
||||
cm.warp(105100300, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
} else {
|
||||
@@ -44,7 +44,7 @@ function action(mode, type, selection){
|
||||
status++;
|
||||
} else if(status == 2){
|
||||
if(cm.getPlayer().getLevel() > 60 && cm.getPlayer().getClient().getChannel() == BalrogPQ.channel){
|
||||
cm.warp(105100300);
|
||||
cm.warp(105100300, 0);
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.sendOk("You may not battle the balrog when you are below Lv60! \r\n\r\n Or maybe you are not on the right channel.. Try CH" + BalrogPQ.channel + ".");
|
||||
|
||||
@@ -46,7 +46,7 @@ function action(mode, type, selection){
|
||||
else if (status == 2){
|
||||
if (cm.canHold(4031847)){
|
||||
cm.gainItem(4031847, 1);
|
||||
cm.warp(912000100);
|
||||
cm.warp(912000100, 0);
|
||||
}
|
||||
else{
|
||||
cm.sendOk("I can't give you the empty bottle because your inventory is full. Please make some room in your Etc window.");
|
||||
|
||||
@@ -44,7 +44,7 @@ function action(mode, type, selection){
|
||||
}
|
||||
}
|
||||
else if (status == 1){
|
||||
cm.warp(100000006);
|
||||
cm.warp(100000006, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ function action(mode, type, selection) {
|
||||
cm.sendDirectionInfo("Effect/Direction4.img/effect/cannonshooter/flying1/0", 7000, 0, 0, -1, -1);
|
||||
cm.sendDirectionInfo(1, 800);
|
||||
} else if (status == 2) {
|
||||
cm.warp(912060300);
|
||||
cm.warp(912060300, 0);
|
||||
} else if (status == 3) {
|
||||
cm.sendDirectionInfo("Effect/Direction4.img/effect/cannonshooter/balloon/1", 9000, 0, 0, 0, -1);
|
||||
cm.sendDirectionInfo(1, 1500);
|
||||
|
||||
@@ -12,8 +12,12 @@
|
||||
var menu = new Array("Victoria Island");
|
||||
var method;
|
||||
|
||||
var hasCoupon = false;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
if(cm.haveItem(4032288)) hasCoupon = true;
|
||||
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
@@ -32,20 +36,28 @@ function action(mode, type, selection) {
|
||||
}
|
||||
status++;
|
||||
if (status == 0) {
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
if(!hasCoupon) {
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
var 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 {
|
||||
cm.sendYesNo("Hmm, hi there. I see you have been recommended by Neinheart to go to Victoria Island to improve your knightly skills. Well, just this time the ride will be free of charges. Will you embark?");
|
||||
}
|
||||
|
||||
} else if(status == 1) {
|
||||
if(cm.getMeso() < 1000) {
|
||||
if(hasCoupon) {
|
||||
cm.gainItem(4032288, -1);
|
||||
cm.warp(200090031);
|
||||
cm.dispose();
|
||||
} else if(cm.getMeso() < 1000) {
|
||||
cm.sendNext("Hmm... Are you sure you have #b1000#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.gainMeso(-1000);
|
||||
cm.warp(200090031);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,21 +32,20 @@ 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("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);
|
||||
|
||||
} else if(status == 1) {
|
||||
{ if(cm.getMeso() < 1000) {
|
||||
cm.sendNext("Hmm... Are you sure you have #b1000#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.gainMeso(-1000);
|
||||
cm.warp(200090020);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for(var i=0; i < menu.length; i++) {
|
||||
var 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);
|
||||
|
||||
} else if(status == 1) {
|
||||
if(cm.getMeso() < 1000) {
|
||||
cm.sendNext("Hmm... Are you sure you have #b1000#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.gainMeso(-1000);
|
||||
cm.warp(200090020);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -40,7 +40,7 @@ function action(mode, type, selection) {
|
||||
if (status == 0 && mode == 1) {
|
||||
cm.sendYesNo("Would you like to exit the drill hall?");
|
||||
} else if(status == 1) {
|
||||
cm.warp(130020000);
|
||||
cm.warp(130020000, 0);
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.dispose();
|
||||
|
||||
@@ -69,7 +69,7 @@ function action(mode, type, selection) {
|
||||
cm.sendNextPrev("I've said too much. It's okay if you don't really understand everything I just told you. You'll get it eventually. For now, #byou should head to town#k. I'll stay by your side and help you until you get there.", 8);
|
||||
} else if (status == 7) {
|
||||
cm.spawnGuide();
|
||||
cm.warp(140090100);
|
||||
cm.warp(140090100, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ function action(mode, type, selection) {
|
||||
status--;
|
||||
if (status == 0)
|
||||
cm.sendYesNo("Would you like to skip the tutorials and head straight to Lith Harbor?");
|
||||
else if (status == 1){
|
||||
cm.warp(104000000);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
else if (status == 1) {
|
||||
cm.warp(104000000, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ function start() {
|
||||
cm.sendOk("There is someone currently in this map, come back later.");
|
||||
else {
|
||||
cm.resetMapObjects(921100300);
|
||||
cm.warp(921100300);
|
||||
cm.warp(921100300, 0);
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
|
||||
@@ -120,7 +120,7 @@ function action(mode, type, selection) {
|
||||
}
|
||||
}
|
||||
else if (status == 2) {
|
||||
cm.warp(280020000);
|
||||
cm.warp(280020000, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
function start(){
|
||||
if(cm.isQuestStarted(6301)) {
|
||||
if (cm.haveItem(4000175))
|
||||
cm.warp(923000000)
|
||||
cm.warp(923000000, 0);
|
||||
else
|
||||
cm.sendOk("In order to open the crack of dimension you will have to posess one piece of Miniature Pianus. Those could be gained by defeating a Pianus.");
|
||||
} else
|
||||
|
||||
@@ -47,7 +47,7 @@ function action(mode, type, selection) {
|
||||
}
|
||||
|
||||
else if(status == 1) {
|
||||
cm.warp(924000001);
|
||||
cm.warp(924000001, 0);
|
||||
cm.sendOk("Have your shield equipped until the end of the quest, or else you will need to start all over again!");
|
||||
|
||||
cm.resetQuestProgress(6180,9300096);
|
||||
|
||||
@@ -55,10 +55,10 @@ function action(mode, type, selection) {
|
||||
}else if(status == 1 && type == 1){
|
||||
cm.sendNext("It seems like you want to start your journey without taking the training program. Then, I will let you move on to the training ground. Be careful~");
|
||||
}else if(status == 1){
|
||||
cm.warp(1);
|
||||
cm.warp(1, 0);
|
||||
dispose();
|
||||
}else{
|
||||
cm.warp(40000);
|
||||
cm.warp(40000, 0);
|
||||
dispose();
|
||||
}
|
||||
}else
|
||||
|
||||
@@ -36,7 +36,7 @@ function action(mode, type, selection) {
|
||||
if (status == 0)
|
||||
cm.sendNext("Then, I will send you out from here. Good job.");
|
||||
else{
|
||||
cm.warp(40000);
|
||||
cm.warp(40000, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
@@ -35,22 +35,23 @@ function action(mode, type, selection) {
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
if (status == 0) {
|
||||
cm.sendNext("Bam bam bam bam!! You have won the game from the \r\n#bEVENT#k. Congratulations on making it this far!");
|
||||
} else if (status == 1) {
|
||||
cm.sendNext("You'll be awarded the #bScroll of Secrets#k as the winning prize. On the scroll, it has secret information written in ancient characters.");
|
||||
} else if (status == 2) {
|
||||
cm.sendNext("The Scroll of Secrets can be deciphered by #rChun Ji#k or \r\n#rGeanie#k at Ludibrium. Bring it with you and something good's bound to happen.");
|
||||
} else if (status == 3) {
|
||||
if (cm.canHold(4031019)) {
|
||||
cm.gainItem(4031019);
|
||||
cm.warp(cm.getPlayer().getSavedLocation("EVENT"));
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.sendNext("I think your Etc window is full. Please make room, then talk to me.");
|
||||
|
||||
if (status == 0) {
|
||||
cm.sendNext("Bam bam bam bam!! You have won the game from the \r\n#bEVENT#k. Congratulations on making it this far!");
|
||||
} else if (status == 1) {
|
||||
cm.sendNext("You'll be awarded the #bScroll of Secrets#k as the winning prize. On the scroll, it has secret information written in ancient characters.");
|
||||
} else if (status == 2) {
|
||||
cm.sendNext("The Scroll of Secrets can be deciphered by #rChun Ji#k or \r\n#rGeanie#k at Ludibrium. Bring it with you and something good's bound to happen.");
|
||||
} else if (status == 3) {
|
||||
if (cm.canHold(4031019)) {
|
||||
cm.gainItem(4031019);
|
||||
cm.warp(cm.getPlayer().getSavedLocation("EVENT"));
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.sendNext("I think your Etc window is full. Please make room, then talk to me.");
|
||||
}
|
||||
} else if (status == 4) {
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
} else if (status == 4) {
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ function action(mode, type, selection) {
|
||||
if (cm.getEvent() != null) {
|
||||
cm.getEvent().addLimit();
|
||||
}
|
||||
cm.warp(109050001);
|
||||
cm.warp(109050001, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ function action(m,t,s) {
|
||||
} else if (status == 2)
|
||||
cm.sendNext("Thank you so much. Please rescue Gaga! Grandpa from the moon will help you.");
|
||||
else if (status == 3) {
|
||||
cm.warp(922240200);
|
||||
cm.warp(922240200, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
} else if (cm.getPlayer().getMapId() == 922240200) {
|
||||
@@ -94,7 +94,7 @@ function action(m,t,s) {
|
||||
cm.dispose();
|
||||
}
|
||||
} else if ((cm.getPlayer().getMapId() >= 922240000 && cm.getPlayer().getMapId() <= 922240019) || (cm.getPlayer().getMapId() >= 922240100 && cm.getPlayer().getMapId() <= 922240119)) {
|
||||
cm.warp(922240200);
|
||||
cm.warp(922240200, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
} else if (m < 1) {
|
||||
|
||||
@@ -90,11 +90,11 @@ function action(mode, type, selection) {
|
||||
break;
|
||||
case 3:
|
||||
if (cm.haveItem(4000313)) {
|
||||
cm.warp(680000210);
|
||||
cm.warp(680000210, 0);
|
||||
cm.sendOk("Enjoy the wedding. Don't drop your Gold Maple Leaf or you won't be able to finish the whole wedding.");
|
||||
cm.dispose();
|
||||
} else {
|
||||
cm.sendOk("You do not have a Gold Maple Leaf");
|
||||
cm.sendOk("You do not have a Gold Maple Leaf.");
|
||||
cm.dispose();
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -79,7 +79,7 @@ function action(mode, type, selection) {
|
||||
} else if (status == 1) {
|
||||
switch(selection) {
|
||||
case 0:
|
||||
cm.warp(680000300);
|
||||
cm.warp(680000300, 0);
|
||||
cm.sendOk("Enjoy! Cherish your Photos Forever!");
|
||||
cm.dispose();
|
||||
break;
|
||||
|
||||
@@ -27,7 +27,7 @@ function start() {
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode < 1) {
|
||||
cm.sendOk("Goodbye then");
|
||||
cm.sendOk("Goodbye then.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
@@ -37,14 +37,14 @@ function action(mode, type, selection) {
|
||||
status--;
|
||||
if (status == 1) {
|
||||
if (selection < 1)
|
||||
cm.warp(680000400);
|
||||
cm.warp(680000400, 0);
|
||||
else if (selection < 2) {
|
||||
if (cm.haveItem(4031217,7))
|
||||
cm.gainItem(4031217, -7);
|
||||
else
|
||||
cm.sendOk("It seems like you don't have 7 Keys. Kill the cakes and candles in the Untamed Heart Hunting Ground to get keys. ");
|
||||
} else if (selection > 1) {
|
||||
cm.warp(680000500);
|
||||
cm.warp(680000500, 0);
|
||||
cm.sendOk("Goodbye. I hope you enjoyed the wedding!");
|
||||
}
|
||||
cm.dispose();
|
||||
|
||||
@@ -54,7 +54,7 @@ function start() {
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode < 1) {
|
||||
cm.sendOk("Goodbye then");
|
||||
cm.sendOk("Goodbye then.");
|
||||
cm.dispose();
|
||||
} else {
|
||||
status++;
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
function enter(pi) {
|
||||
if (pi.getPlayer().getEvents().getGagaRescue().fallAndGet() > 3) {
|
||||
pi.warp(922240200);
|
||||
pi.warp(922240200, 0);
|
||||
pi.getPlayer().cancelEffect(2360002);
|
||||
} else
|
||||
pi.warp(pi.getPlayer().getMapId());
|
||||
pi.warp(pi.getPlayer().getMapId(), 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
function enter(pi) {
|
||||
if (pi.getPlayer().getEvents().getGagaRescue().fallAndGet() > 3) {
|
||||
pi.warp(922240200);
|
||||
pi.warp(922240200, 0);
|
||||
pi.getPlayer().cancelEffect(2360002);
|
||||
} else
|
||||
pi.warp(pi.getPlayer().getMapId());
|
||||
pi.warp(pi.getPlayer().getMapId(), 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
function enter(pi) {
|
||||
if (pi.getPlayer().getEvents().getGagaRescue().fallAndGet() > 3) {
|
||||
pi.warp(922240200);
|
||||
pi.warp(922240200, 0);
|
||||
pi.getPlayer().cancelEffect(2360002);
|
||||
} else
|
||||
pi.warp(pi.getPlayer().getMapId());
|
||||
pi.warp(pi.getPlayer().getMapId(), 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
function enter(pi) {
|
||||
if (pi.getPlayer().getEvents().getGagaRescue().fallAndGet() > 3) {
|
||||
pi.warp(922240200);
|
||||
pi.warp(922240200, 0);
|
||||
pi.getPlayer().cancelEffect(2360002);
|
||||
} else
|
||||
pi.warp(pi.getPlayer().getMapId());
|
||||
pi.warp(pi.getPlayer().getMapId(), 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -25,12 +25,12 @@
|
||||
|
||||
function enter(pi) {
|
||||
if (!pi.getEventInstance().isEventCleared()) {
|
||||
pi.getPlayer().dropMessage(5,"Your team has not yet completed the trials. Fetch the Fire Ore and give it to Aura first.");
|
||||
pi.getPlayer().dropMessage(5, "Your team has not yet completed the trials. Fetch the Fire Ore and give it to Aura first.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pi.getEventInstance().gridCheck(pi.getPlayer()) == -1) {
|
||||
pi.getPlayer().dropMessage(5,"Your have yet to claim your prize. Talk to Aura.");
|
||||
pi.getPlayer().dropMessage(5, "Your have yet to claim your prize. Talk to Aura.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,6 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
function enter(pi) {
|
||||
pi.warp(980010020);
|
||||
pi.warp(980010020, 0);
|
||||
return true;
|
||||
}
|
||||
@@ -20,6 +20,6 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
function enter(pi) {
|
||||
pi.warp(980010000);
|
||||
pi.warp(980010000, 0);
|
||||
return true;
|
||||
}
|
||||
@@ -32,7 +32,7 @@
|
||||
function enter(pi) {
|
||||
if (pi.getPlayer().haveItem(4031582) == true) {
|
||||
pi.playPortalSound();
|
||||
pi.warp(260000301);
|
||||
pi.warp(260000301, 0);
|
||||
return true;
|
||||
} else {
|
||||
pi.playerMessage(5, "You can enter only if you have a Entry Pass to the Palace.");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
function enter(pi) {
|
||||
if (pi.isQuestStarted(2570)) {
|
||||
pi.warp(120000101);
|
||||
pi.warp(120000101, 0);
|
||||
return true;
|
||||
}
|
||||
pi.earnTitle("You still got some stuff to take care of. I can see it in your eyes. Wait...no, those are eye boogers.");
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
function enter(pi) {
|
||||
pi.playPortalSound();
|
||||
pi.warp(900090100);
|
||||
pi.warp(900090100, 0);
|
||||
return true;
|
||||
}
|
||||
@@ -20,6 +20,6 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
function enter(pi){
|
||||
pi.warp(920020000);
|
||||
pi.warp(920020000, 0);
|
||||
return true;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
function enter(pi) {
|
||||
pi.playPortalSound();
|
||||
pi.warp(100030100);
|
||||
pi.playPortalSound();
|
||||
pi.warp(100030100, 0);
|
||||
return true;
|
||||
}
|
||||
@@ -13,11 +13,16 @@ function enter(pi) {
|
||||
var mapp = pi.getMap(map);
|
||||
mapp.resetFully();
|
||||
mapp.respawn(true);
|
||||
|
||||
pi.playPortalSound();
|
||||
pi.warp(map, 0);
|
||||
return true;
|
||||
} else {
|
||||
pi.playerMessage(5, "Someone is already in this map.");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
pi.playerMessage(5, "Hall #1 can only be entered if you're engaged in Kiku's Acclimation Training.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,24 @@
|
||||
function enter(pi) {
|
||||
if (pi.hasItem(4032125) || pi.hasItem(4032126) || pi.hasItem(4032127) || pi.hasItem(4032128) || pi.hasItem(4032129)) {
|
||||
pi.playerMessage(5, "You already have the proof of ability.");
|
||||
return false;
|
||||
}
|
||||
if (pi.hasItem(4032125) || pi.hasItem(4032126) || pi.hasItem(4032127) || pi.hasItem(4032128) || pi.hasItem(4032129)) {
|
||||
pi.playerMessage(5, "You already have the proof of ability.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pi.isQuestStarted(20611) || pi.isQuestStarted(20612) || pi.isQuestStarted(20613) || pi.isQuestStarted(20614) || pi.isQuestStarted(20615)) {
|
||||
if (pi.getPlayerCount(913020300) == 0) {
|
||||
var map = pi.getMap(913020300);
|
||||
map.killAllMonsters();
|
||||
pi.warp(913020300, 0);
|
||||
pi.spawnMonster(9300294, 87,88);
|
||||
} else {
|
||||
pi.playerMessage(5, "Someone is already attempting to defeat the boss. Better come back later.");
|
||||
}
|
||||
} else {
|
||||
pi.playerMessage(5, "You cannot access this hall.");
|
||||
if (pi.getPlayerCount(913020300) == 0) {
|
||||
var map = pi.getMap(913020300);
|
||||
map.killAllMonsters();
|
||||
|
||||
pi.playPortalSound();
|
||||
pi.warp(913020300, 0);
|
||||
pi.spawnMonster(9300294, 87,88);
|
||||
return true;
|
||||
} else {
|
||||
pi.playerMessage(5, "Someone is already attempting to defeat the boss. Better come back later.");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
pi.playerMessage(5, "You cannot access this hall.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
function enter(pi) {
|
||||
pi.playPortalSound();
|
||||
pi.warp(900090102);
|
||||
pi.warp(900090102, 0);
|
||||
return true;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
function enter(pi) {
|
||||
if(pi.isQuestStarted(22010) || pi.getPlayer().getJob().getId() != 2001) {
|
||||
pi.warp(100030310);
|
||||
pi.warp(100030310, 0);
|
||||
} else {
|
||||
pi.playerMessage(5, "Cannot enter the Lush Forest without a reason.");
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ Sharen III's Grave Exit - Guild Quest
|
||||
|
||||
function enter(pi) {
|
||||
if (pi.getPlayer().getMap().getReactorByName("ghostgate").getState() == 1) {
|
||||
pi.warp(990000800);
|
||||
pi.warp(990000800, 0);
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -32,7 +32,7 @@ function enter(pi) {
|
||||
var timeLeft = Math.ceil((entryTime - timeNow) / 1000);
|
||||
|
||||
if(timeLeft <= 0) {
|
||||
pi.warp(990000100);
|
||||
pi.warp(990000100, 0);
|
||||
return true;
|
||||
}
|
||||
else { //cannot proceed while allies can still enter
|
||||
|
||||
@@ -32,7 +32,7 @@ function enter(pi) {
|
||||
pi.getPlayer().dropMessage(6, "You cannot pass to the next map holding the 1st Crystal Key in your inventory.");
|
||||
return false;
|
||||
}
|
||||
pi.warp(240050101);
|
||||
pi.warp(240050101, 0);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
function enter(pi) {
|
||||
pi.playPortalSound();
|
||||
if(pi.isQuestStarted(22005)){
|
||||
pi.warp(900020100);
|
||||
pi.warp(900020100, 0);
|
||||
} else{
|
||||
pi.warp(100030301);
|
||||
pi.warp(100030301, 0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -20,6 +20,6 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
function enter(pi) {
|
||||
pi.warp(101000400, 0);
|
||||
pi.warp(101000400, 2);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ function enter(pi) {
|
||||
var toMap = pi.getPlayer().getSavedLocation("FREE_MARKET");
|
||||
pi.warp(toMap, pi.getMarketPortalId(toMap));
|
||||
} catch(err) {
|
||||
pi.warp(100000000);
|
||||
pi.warp(100000000, 0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -27,7 +27,7 @@ Stage 2: Door guarded by Dark Muscle Golems - Guild Quest
|
||||
|
||||
function enter(pi) {
|
||||
if (pi.getPlayer().getMap().getReactorByName("metalgate").getState() == 1) {
|
||||
pi.warp(990000431);
|
||||
pi.warp(990000431, 0);
|
||||
return true;
|
||||
}
|
||||
pi.playerMessage(5, "This way forward is not open yet.");
|
||||
|
||||
@@ -20,6 +20,6 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
function enter(pi) {
|
||||
pi.warp(140000000);
|
||||
pi.warp(140000000, 0);
|
||||
return true;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
function enter(pi) {
|
||||
pi.warp(105100000);
|
||||
pi.warp(105100000, 0);
|
||||
return(true);
|
||||
}
|
||||
@@ -21,6 +21,6 @@
|
||||
*/
|
||||
function enter(pi) {
|
||||
pi.useItem(2210016);
|
||||
pi.warp(200090510);
|
||||
pi.warp(200090510, 0);
|
||||
return true;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
function enter(pi) {
|
||||
if (pi.getMap().getReactorByName("rnj6_out").getState() == 1) {
|
||||
pi.warp(926100300);
|
||||
pi.warp(926100300, 0);
|
||||
return(true);
|
||||
} else {
|
||||
pi.playerMessage(5, "The portal is not opened yet.");
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
*/
|
||||
function enter(pi) {
|
||||
if (pi.getPlayer().getMap().getReactorByName("stonegate").getState() == 1) {
|
||||
pi.warp(990000430);
|
||||
pi.warp(990000430, 0);
|
||||
return true;
|
||||
} else {
|
||||
pi.getPlayer().dropMessage(5, "The door is still blocked.");
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
function enter(pi) {
|
||||
if(pi.getPlayer().getMapId() == 130030001){
|
||||
if(pi.isQuestStarted(20010)){
|
||||
pi.warp(130030002);
|
||||
pi.warp(130030002, 0);
|
||||
} else {
|
||||
pi.message("Please click on the NPC first to receive a quest");
|
||||
pi.message("Please click on the NPC first to receive a quest.");
|
||||
}
|
||||
} else if(pi.getPlayer().getMapId() == 130030002){
|
||||
pi.warp(130030003);
|
||||
pi.warp(130030003, 0);
|
||||
} else if(pi.getPlayer().getMapId() == 130030003){
|
||||
pi.warp(130030004);
|
||||
pi.warp(130030004, 0);
|
||||
} else if(pi.getPlayer().getMapId() == 130030004){
|
||||
pi.warp(130030005);
|
||||
pi.warp(130030005, 0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -20,7 +20,7 @@ function end(mode, type, selection) {
|
||||
if (status == 0) {
|
||||
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Soul Master?");
|
||||
} else if (status == 1) {
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you arn't sure what to raise, just click on #bAuto#k.");
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
|
||||
if (qm.getPlayer().getJob().getId() != 1100) {
|
||||
qm.gainItem(1302077, 1);
|
||||
qm.gainItem(1142066, 1);
|
||||
|
||||
@@ -20,7 +20,7 @@ function end(mode, type, selection) {
|
||||
if (status == 0) {
|
||||
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Flame Wizard?");
|
||||
} else if (status == 1) {
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you arn't sure what to raise, just click on #bAuto#k.");
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
|
||||
if (qm.getPlayer().getJob().getId() != 1200) {
|
||||
qm.gainItem(1372043, 1);
|
||||
qm.gainItem(1142066, 1);
|
||||
|
||||
@@ -19,7 +19,7 @@ function end(mode, type, selection) {
|
||||
if (status == 0) {
|
||||
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Wind Breaker?");
|
||||
} else if (status == 1) {
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you arn't sure what to raise, just click on #bAuto#k.");
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
|
||||
if (qm.getPlayer().getJob().getId() != 1300) {
|
||||
qm.gainItem(2060000, 2000);
|
||||
qm.gainItem(1452051, 1);
|
||||
|
||||
@@ -19,7 +19,7 @@ function end(mode, type, selection) {
|
||||
if (status == 0) {
|
||||
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Night Walker?");
|
||||
} else if (status == 1) {
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you arn't sure what to raise, just click on #bAuto#k.");
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
|
||||
if (qm.getPlayer().getJob().getId() != 1400) {
|
||||
qm.gainItem(1472061, 1);
|
||||
qm.gainItem(2070015, 800);
|
||||
|
||||
@@ -20,7 +20,7 @@ function end(mode, type, selection) {
|
||||
if (status == 0) {
|
||||
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Striker?");
|
||||
} else if (status == 1) {
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you arn't sure what to raise, just click on #bAuto#k.");
|
||||
qm.sendNext("I have just molded your body to make it perfect for a Soul Master. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
|
||||
if (qm.getplayer().getJob().getId() != 1500) {
|
||||
qm.gainItem(1482014, 1);
|
||||
qm.gainItem(1142066, 1);
|
||||
|
||||
@@ -42,7 +42,7 @@ function start(mode, type, selection) {
|
||||
} else if (status == 1) {
|
||||
qm.gainItem(4001271, 1);
|
||||
qm.forceStartQuest();
|
||||
qm.warp(914000300);
|
||||
qm.warp(914000300, 0);
|
||||
qm.dispose();
|
||||
}
|
||||
}
|
||||
@@ -79,7 +79,7 @@ function end(mode, type, selection) {
|
||||
qm.removeEquipFromSlot(-11);
|
||||
qm.forceCompleteQuest();
|
||||
|
||||
qm.warp(914090010); // Initialize Aran Tutorial Scenes
|
||||
qm.warp(914090010, 0); // Initialize Aran Tutorial Scenes
|
||||
qm.dispose();
|
||||
}
|
||||
}
|
||||
@@ -58,7 +58,7 @@ function start(mode, type, selection) {
|
||||
qm.sendNextPrev("#b(You might be starting to remember something...)#k", 3);
|
||||
}
|
||||
} else if (status == 2) {
|
||||
//qm.warp(914090100);
|
||||
//qm.warp(914090100, 0);
|
||||
qm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ function start(mode, type, selection) {
|
||||
|
||||
var map = qm.getClient().getChannelServer().getMapFactory().getMap(914020000);
|
||||
spawnMob(-365, 86, 9001014, map);
|
||||
qm.warp(914020000);
|
||||
qm.warp(914020000, 0);
|
||||
qm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ function start(mode, type, selection) {
|
||||
if (mode != 1) {
|
||||
if(type == 1 && mode == 0)
|
||||
status -= 2;
|
||||
else{
|
||||
else {
|
||||
//if(status == 0){
|
||||
qm.sendOk("Really? It's an urgent matter, so if you have some time, please see me.");
|
||||
qm.dispose();
|
||||
@@ -23,8 +23,8 @@ function start(mode, type, selection) {
|
||||
//qm.sendNext("Okay. In that case, I'll just give you the routes to the Kingdom of Mushroom. #bNear the west entrance of Henesys,#k you'll find an #bempty house#k. Enter the house, and turn left to enter#b<Themed Dungeon : Mushroom Castle>#k. That's the entrance to the Kingdom of Mushroom. There's not much time!");
|
||||
//qm.forceStartQuest();
|
||||
//return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//}
|
||||
if(status == 0)
|
||||
qm.sendAcceptDecline("Now that you have made the job advancement, you look like you're ready for this. I have something I'd like to ask you for help. Are you willing to listen?");
|
||||
@@ -47,7 +47,7 @@ function end(mode, type, selection) {
|
||||
if(type == 1 && mode == 0)
|
||||
status -= 2;
|
||||
else{
|
||||
qm.dispose();
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ function start(mode, type, selection) {
|
||||
qm.sendNext("Hey, take it easy! Sometimes you just gotta wait.");
|
||||
} else {
|
||||
qm.sendNext("Looks like we're all set! I think this is going to be a great voyage. Let's get underway.");
|
||||
qm.warp(3000000);
|
||||
qm.warp(3000000, 0);
|
||||
qm.forceCompleteQuest();
|
||||
}
|
||||
qm.dispose();
|
||||
|
||||
72
scripts/quest/3382.js
Normal file
72
scripts/quest/3382.js
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
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
|
||||
NPC Name: Yulete
|
||||
Map(s): Magatia
|
||||
Description: Quest - Yulete's Reward
|
||||
Quest ID: 3382
|
||||
*/
|
||||
|
||||
function end(mode, type, selection) {
|
||||
var itemid;
|
||||
if(qm.getQuestStatus(3302) == 2) {
|
||||
itemid = 4001159;
|
||||
} else if(qm.getQuestStatus(3304) == 2) {
|
||||
itemid = 4001160;
|
||||
} else {
|
||||
qm.sendNext("You must join one of the Magatia's factions before claiming a prize.");
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if(qm.haveItem(itemid, 25) && qm.getPlayer().getItemQuantity(1122010, true) == 0) {
|
||||
if(qm.canHold(1122010)) {
|
||||
qm.gainItem(itemid, -25);
|
||||
qm.gainItem(1122010, 1);
|
||||
|
||||
qm.sendOk("Thank you for retrieving the marbles. Accept this pendant as a token of my appreciation.");
|
||||
} else {
|
||||
qm.sendNext("Free a slot on your EQUIP tab before claiming a prize.");
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
} else if(qm.haveItem(itemid, 10)) {
|
||||
if(qm.canHold(2041212)) {
|
||||
qm.gainItem(itemid, -10);
|
||||
qm.gainItem(2041212, 1);
|
||||
|
||||
qm.sendOk("Thank you for retrieving the marbles. This rock, that I am giving to you, can be used to improve the stats on the #b#t1122010##k. Take it as a token of my appreciation and use it wisely.");
|
||||
} else {
|
||||
qm.sendNext("Free a slot on your USE tab before claiming a prize.");
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
qm.sendNext("I need at least #b10 #t" + itemid + "##k to reward you appropriately. If you happen to come with #b25 of these#k instead, I can reward you with a valuable gear. Fare well.");
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
qm.forceCompleteQuest();
|
||||
qm.dispose();
|
||||
}
|
||||
@@ -28,5 +28,5 @@ function act() {
|
||||
if (Math.random() > 0.7)
|
||||
rm.dropItems();
|
||||
else
|
||||
rm.warp(105090200);
|
||||
rm.warp(105090200, 0);
|
||||
}
|
||||
@@ -27,5 +27,5 @@
|
||||
|
||||
function act(){
|
||||
rm.playerMessage(5, "An unknown force has returned you to the starting point.");
|
||||
rm.warp(280010000);
|
||||
rm.warp(280010000, 0);
|
||||
}
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
/* @Author Lerk
|
||||
*
|
||||
* 2200000.js: Fake Dollhouse: Returns player to Eos Tower 100th Floor [221023200]
|
||||
* 2200000.js: Fake Dollhouse: Returns player to Eos Tower 74th Floor [221023200]
|
||||
*/
|
||||
|
||||
function act(){
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
function act(){
|
||||
if(rm.isQuestActive(3238)) {
|
||||
rm.warp(922000020);
|
||||
rm.warp(922000020, 0);
|
||||
}
|
||||
else rm.warp(922000009);
|
||||
else rm.warp(922000009, 0);
|
||||
}
|
||||
Reference in New Issue
Block a user