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:
ronancpl
2017-11-03 17:06:48 -02:00
parent 64af2cfa00
commit 1fead59c57
145 changed files with 3139 additions and 2726 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -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
View 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();
}