Improved item & drop-point checking + Dojo fixes + Duey revamp
Fixed some issues with items being dropped sometimes out-of-reach and in a weird way. Improved item checking function, now looking up one-of-a-kind items properly. Fixed some issues with dojo skills and possible exploits in dojo progression. Improved Duey, now displaying better info to players.
This commit is contained in:
@@ -31,6 +31,8 @@ function start(ms) {
|
||||
if(ms.getPlayer().getMap().findClosestPlayerSpawnpoint(ms.getPlayer().getPosition()).getId() == 0) {
|
||||
ms.getPlayer().startMapEffect(messages[(Math.random() * messages.length) | 0], 5120024);
|
||||
}
|
||||
|
||||
ms.resetDojoEnergy();
|
||||
} else {
|
||||
ms.getPlayer().resetEnteredScript(); //in case the person dcs in here we set it at dojang_tuto portal
|
||||
ms.getPlayer().startMapEffect("Ha! Let's see what you got! I won't let you leave unless you defeat me first!", 5120024);
|
||||
|
||||
@@ -22,7 +22,7 @@ function action(mode, type, selection) {
|
||||
} else if (status == 2) {
|
||||
if (!cm.canHold(itemids[selection], 1)) {
|
||||
cm.sendOk("Please make room");
|
||||
} else if (cm.getItemQuantity(4001261) < 1) {
|
||||
} else if (!cm.haveItemWithId(4001261)) {
|
||||
cm.sendOk("You don't have enough leathers.");
|
||||
} else {
|
||||
cm.gainItem(4001261, -1);
|
||||
|
||||
@@ -6,7 +6,7 @@ function start() {
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if(cm.getPlayer().getItemQuantity(1902016, true) > 0) {
|
||||
if(cm.haveItemWithId(1902016, true)) {
|
||||
cm.warp(140010210, 0);
|
||||
} else {
|
||||
cm.sendOk("What is it? If you you're here to waste my time, get lost!");
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
var status = -1;
|
||||
var sel;
|
||||
|
||||
var destinations = new Array("Ellinia", "Ludibrium", "Leafre", "Mu Lung", "Ariant");
|
||||
var boatType = new Array("the ship", "the ship", "Hak", "Hak", "Genie");
|
||||
var destinations = new Array("Ellinia", "Ludibrium", "Leafre", "Mu Lung", "Ariant", "Ereve");
|
||||
var boatType = new Array("the ship", "the train", "the bird", "Hak", "Genie", "the ship");
|
||||
|
||||
function start() {
|
||||
var message = "Orbis Station has lots of platforms available to choose from. You need to choose the one that'll take you to the destination of your choice. Which platform will you take?\r\n";
|
||||
@@ -20,8 +20,8 @@ function action(mode, type, selection) {
|
||||
status++;
|
||||
if (status == 0){
|
||||
sel = selection;
|
||||
cm.sendNext("Ok #h #, I will send you to the platform for #m" + (200000110 + (sel * 10)) + "#");
|
||||
}else if (status == 1) {
|
||||
cm.sendNext("Ok #h #, I will send you to the platform for #b#m" + (200000110 + (sel * 10)) + "##k.");
|
||||
}else if (status == 1) {
|
||||
cm.warp(200000110 + (sel * 10), "west00");
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
/*
|
||||
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 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
|
||||
@@ -30,6 +28,7 @@ importPackage(Packages.server.maps);
|
||||
var disabled = false;
|
||||
var belts = Array(1132000, 1132001, 1132002, 1132003, 1132004);
|
||||
var belt_level = Array(25, 35, 45, 60, 75);
|
||||
var belt_on_inventory;
|
||||
|
||||
/* var belt_points = Array(200, 1800, 4000, 9200, 17000); */
|
||||
var belt_points = Array(10, 90, 200, 460, 850); /* Watered down version */
|
||||
@@ -45,6 +44,11 @@ function start() {
|
||||
return;
|
||||
}
|
||||
|
||||
belt_on_inventory = new Array();
|
||||
for (var i = 0; i < belts.length; i++) {
|
||||
belt_on_inventory.push(cm.haveItemWithId(belts[i], true));
|
||||
}
|
||||
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
@@ -112,42 +116,24 @@ function action(mode, type, selection) {
|
||||
}
|
||||
}
|
||||
} else if (cm.getPlayer().getDojoStage() > 0) {
|
||||
if (status == 1) {
|
||||
dojoWarp = cm.getPlayer().getDojoStage();
|
||||
cm.getPlayer().setDojoStage(0);
|
||||
cm.sendYesNo("The last time you took the challenge by yourself, you went up to level " + dojoWarp + ". I can take you there right now. Do you want to go there?");
|
||||
} else {
|
||||
var avDojo = cm.getClient().getChannelServer().getAvailableDojo(false);
|
||||
|
||||
if(avDojo < 0) {
|
||||
if(avDojo == -1) cm.sendOk("All Dojo's are being used already. Wait for awhile before trying again.");
|
||||
else cm.sendOk("Either your party is already using the Dojo or your party's allotted time on the Dojo has not expired yet. Wait for them to finish to enter.");
|
||||
cm.getPlayer().setDojoStage(dojoWarp);
|
||||
}
|
||||
else {
|
||||
var warpDojoMap = ((mode == 1) ? 925020000 + (dojoWarp + 1) * 100 + avDojo : 925020100 + avDojo);
|
||||
cm.getClient().getChannelServer().resetDojoMap(warpDojoMap);
|
||||
cm.getClient().getChannelServer().resetDojo(warpDojoMap);
|
||||
|
||||
cm.resetDojoEnergy();
|
||||
cm.warp(warpDojoMap, 0);
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
}
|
||||
dojoWarp = cm.getPlayer().getDojoStage();
|
||||
cm.getPlayer().setDojoStage(0);
|
||||
cm.sendYesNo("The last time you took the challenge by yourself, you went up to level #b" + dojoWarp + "#k. I can take you there right now. Do you want to go there? (Select #rNo#k to erase this record.)");
|
||||
} else {
|
||||
var avDojo = cm.getClient().getChannelServer().getAvailableDojo(false);
|
||||
|
||||
if(avDojo < 0) {
|
||||
if(avDojo == -1) cm.sendOk("All Dojo's are being used already. Wait for awhile before trying again.");
|
||||
else cm.sendOk("Either your party is already using the Dojo or your party's allotted time on the Dojo has not expired yet. Wait for them to finish to enter.");
|
||||
}
|
||||
else {
|
||||
cm.getClient().getChannelServer().resetDojoMap(925020100 + avDojo);
|
||||
cm.getClient().getChannelServer().resetDojo(925020100 + avDojo);
|
||||
|
||||
cm.getPlayer().setDojoStage(dojoWarp);
|
||||
} else {
|
||||
var warpDojoMap = 925020000 + (dojoWarp + 1) * 100 + avDojo;
|
||||
cm.getClient().getChannelServer().resetDojoMap(warpDojoMap);
|
||||
cm.getClient().getChannelServer().resetDojo(warpDojoMap);
|
||||
|
||||
cm.resetDojoEnergy();
|
||||
cm.warp(925020100 + avDojo, 0);
|
||||
cm.warp(warpDojoMap, 0);
|
||||
}
|
||||
|
||||
cm.dispose();
|
||||
@@ -181,8 +167,7 @@ function action(mode, type, selection) {
|
||||
if(avDojo < 0) {
|
||||
if(avDojo == -1) cm.sendOk("All Dojo's are being used already. Wait for awhile before trying again.");
|
||||
else cm.sendOk("Either your party is already using the Dojo or your party's allotted time on the Dojo has not expired yet. Wait for them to finish to enter.");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
cm.getClient().getChannelServer().resetDojoMap(925030100 + avDojo);
|
||||
cm.getClient().getChannelServer().resetDojo(925030100 + avDojo);
|
||||
|
||||
@@ -207,7 +192,7 @@ function action(mode, type, selection) {
|
||||
if (status == 1) {
|
||||
var selStr = "You have #b" + cm.getPlayer().getDojoPoints() + "#k training points. Master prefers those with great talent. If you obtain more points than the average, you can receive a belt depending on your score.\r\n";
|
||||
for (var i = 0; i < belts.length; i++) {
|
||||
if (cm.getPlayer().getItemQuantity(belts[i], true) > 0) {
|
||||
if (belt_on_inventory[i]) {
|
||||
selStr += "\r\n#L" + i + "##i" + belts[i] + "# #t" + belts[i] + "# (Already on inventory)";
|
||||
} else
|
||||
selStr += "\r\n#L" + i + "##i" + belts[i] + "# #t" + belts[i] + "#";
|
||||
@@ -217,16 +202,24 @@ function action(mode, type, selection) {
|
||||
var belt = belts[selection];
|
||||
var level = belt_level[selection];
|
||||
var points = belt_points[selection];
|
||||
if (cm.getPlayer().getDojoPoints() >= points) {
|
||||
if (cm.getPlayer().getLevel() > level) {
|
||||
|
||||
var oldbelt = (selection > 0) ? belts[selection - 1] : -1;
|
||||
var haveOldbelt = (oldbelt == -1 || cm.haveItemWithId(oldbelt, false));
|
||||
|
||||
if (selection > 0 && !belt_on_inventory[selection - 1]) {
|
||||
sendBeltRequirements(belt, oldbelt, haveOldbelt, level, points);
|
||||
} else if (cm.getPlayer().getDojoPoints() >= points) {
|
||||
if (selection > 0 && !haveOldbelt) {
|
||||
sendBeltRequirements(belt, oldbelt, haveOldbelt, level, points);
|
||||
} else if (cm.getPlayer().getLevel() > level) {
|
||||
if(selection > 0) cm.gainItem(oldbelt, -1);
|
||||
cm.gainItem(belt, 1);
|
||||
cm.getPlayer().setDojoPoints(cm.getPlayer().getDojoPoints() - points);
|
||||
cm.sendNext("There is the #i" + belt + "# #b#t" + belt + "##k. You have proven your valor to ascend on the Dojo ranks. Well done!");
|
||||
}
|
||||
else
|
||||
cm.sendNext("In order to receive #i" + belt + "# #b#t" + belt + "##k, you have to be at least over level #b" + level + "#k and you need to have earned at least #b" + points + " training points#k.\r\n\r\nIf you want to obtain this belt, you need #r" + (points - cm.getPlayer().getDojoPoints()) + "#k more training points.");
|
||||
} else
|
||||
sendBeltRequirements(belt, oldbelt, haveOldbelt, level, points);
|
||||
} else
|
||||
cm.sendNext("In order to receive #i" + belt + "# #b#t" + belt + "##k, you have to be at least over level #b" + level + "#k and you need to have earned at least #b" + points + " training points#k.\r\n\r\nIf you want to obtain this belt, you need #r" + (points - cm.getPlayer().getDojoPoints()) + "#k more training points.");
|
||||
sendBeltRequirements(belt, oldbelt, haveOldbelt, level, points);
|
||||
|
||||
cm.dispose();
|
||||
return;
|
||||
@@ -267,8 +260,7 @@ function action(mode, type, selection) {
|
||||
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
@@ -312,8 +304,7 @@ function action(mode, type, selection) {
|
||||
if(avDojo < 0) {
|
||||
if(avDojo == -1) cm.sendOk("All Dojo's are being used already. Wait for awhile before trying again.");
|
||||
else cm.sendOk("Your party already registered for the dojo. Wait for the end of the registration time to enter again.");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
var baseStg = hasParty ? 925030000 : 925020000;
|
||||
var nextStg = Math.floor((cm.getPlayer().getMap().getId() + 100) / 100) % 100;
|
||||
|
||||
@@ -323,6 +314,9 @@ function action(mode, type, selection) {
|
||||
cm.getClient().getChannelServer().resetDojo(dojoWarpMap, nextStg - 1);
|
||||
}
|
||||
|
||||
//non-leader party members can progress whilst having the record saved if they don't command to enter the next stage
|
||||
cm.getPlayer().setDojoStage(0);
|
||||
|
||||
if(!hasParty || !cm.isLeader()) cm.warp(dojoWarpMap, 0);
|
||||
else cm.warpParty(dojoWarpMap, 0);
|
||||
}
|
||||
@@ -348,7 +342,7 @@ function action(mode, type, selection) {
|
||||
} else if (cm.getPlayer().getDojoStage() == Math.floor(cm.getMapId() / 100) % 100) {
|
||||
cm.sendOk("Looks like you came all the way up here without recording your score. Sorry, but you can't record now.");
|
||||
} else {
|
||||
cm.sendNext("I recorded your score. If you tell me the next time you go up, you'll be able to start where you left off.");
|
||||
cm.sendNext("I recorded your score. If you tell me the next time you go up, you'll be able to start where you left off. Note that you will have your #rrecord erased#k if you choose to #bcontinue challenging the Dojo#k, so choose carefully.");
|
||||
cm.getPlayer().setDojoStage(Math.floor(cm.getMapId() / 100) % 100);
|
||||
}
|
||||
cm.dispose();
|
||||
@@ -372,6 +366,16 @@ function action(mode, type, selection) {
|
||||
}
|
||||
}
|
||||
|
||||
function sendBeltRequirements(belt, oldbelt, haveOldbelt, level, points) {
|
||||
var beltReqStr = (oldbelt != -1) ? " you must have the #i" + oldbelt + "# belt in your inventory," : "";
|
||||
|
||||
var pointsLeftStr = (points - cm.getPlayer().getDojoPoints() > 0) ? " you need #r" + (points - cm.getPlayer().getDojoPoints()) + "#k more training points" : "";
|
||||
var beltLeftStr = (!haveOldbelt) ? " you must have the needed belt unequipped and available in your EQP inventory" : "";
|
||||
var conjStr = (pointsLeftStr.length > 0 && beltLeftStr.length > 0) ? " and" : "";
|
||||
|
||||
cm.sendNext("In order to receive #i" + belt + "# #b#t" + belt + "##k," + beltReqStr + " you have to be at least over level #b" + level + "#k and you need to have earned at least #b" + points + " training points#k.\r\n\r\nIf you want to obtain this belt," + beltLeftStr + conjStr + pointsLeftStr + ".");
|
||||
}
|
||||
|
||||
function isRestingSpot(id) {
|
||||
return (Math.floor(id / 100) % 100) % 6 == 0 && id != 925020001;
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ function action(mode, type, selection) {
|
||||
if (status == 0) {
|
||||
var selStr = "You have #b" + cm.getPlayer().getDojoPoints() + "#k training points. Master prefers those with great talent. If you obtain more points than the average, you can receive a belt depending on your score.\r\n";
|
||||
for (var i = 0; i < belts.length; i++) {
|
||||
if (cm.getPlayer().getItemQuantity(belts[i], true) > 0) {
|
||||
if (cm.haveItemWithId(belts[i], true)) {
|
||||
selStr += "\r\n #i" + belts[i] + "# #t" + belts[i] + "#(Obtain)";
|
||||
} else
|
||||
selStr += "\r\n#L" + i + "##i" + belts[i] + "# #t" + belts[i] + "#l";
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
function start() {
|
||||
cm.askAcceptDecline("If only I had the Mirror of Goodness then I can re-summon the Black Wizard! \r\nWait! something's not right! Why is the Black Wizard not summoned? Wait, what's this force? I feel something... totally different from the Black Wizard Ahhhhh!!!!! \r\n\r\n #b(Places a hand on the shoulder of Kryston.)");
|
||||
cm.sendAcceptDecline("If only I had the Mirror of Goodness then I can re-summon the Black Wizard! \r\nWait! something's not right! Why is the Black Wizard not summoned? Wait, what's this force? I feel something... totally different from the Black Wizard Ahhhhh!!!!! \r\n\r\n #b(Places a hand on the shoulder of Kryston.)");
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
|
||||
46
scripts/npc/9201106.js
Normal file
46
scripts/npc/9201106.js
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
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/>.
|
||||
*/
|
||||
|
||||
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 came from far-away places looking for people powerful enough to join my expedition against the evil that lays waste on this land. Are you, by any chance, one of those people?");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,15 +32,31 @@ function enter(pi) {
|
||||
if(gate != null) {
|
||||
if (gate.getState() == 1 || pi.getMap().countMonsters() == 0) {
|
||||
if (Math.floor(pi.getPlayer().getMapId() / 100) % 100 < 38) {
|
||||
pi.getPlayer().message("You received " + pi.getPlayer().addDojoPointsByMap() + " training points. Your total training points score is now " + pi.getPlayer().getDojoPoints() + ".");
|
||||
|
||||
if(((Math.floor((pi.getPlayer().getMap().getId() + 100) / 100)) % 100) % 6 == 0) {
|
||||
if(Math.floor(pi.getPlayer().getMapId() / 10000) == 92503) {
|
||||
pi.warpParty(pi.getPlayer().getMap().getId() + 100, 925030100, 925033804);
|
||||
var restMapId = pi.getPlayer().getMap().getId() + 100;
|
||||
var mapId = pi.getPlayer().getMap().getId();
|
||||
|
||||
for(var i = 0; i < 5; i++) {
|
||||
var chrlist = pi.getMap(mapId - 100 * i).getAllPlayers();
|
||||
|
||||
var pIter = chrlist.iterator();
|
||||
while (pIter.hasNext()) {
|
||||
var chr = pIter.next();
|
||||
|
||||
for(var j = i; j >= 0; j--) {
|
||||
chr.message("You received " + chr.addDojoPointsByMap(mapId - 100 * j) + " training points. Your total training points score is now " + chr.getDojoPoints() + ".");
|
||||
}
|
||||
|
||||
chr.changeMap(restMapId, 0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
pi.getPlayer().message("You received " + pi.getPlayer().addDojoPointsByMap(pi.getMapId()) + " training points. Your total training points score is now " + pi.getPlayer().getDojoPoints() + ".");
|
||||
pi.warp(pi.getPlayer().getMap().getId() + 100, 0);
|
||||
}
|
||||
} else {
|
||||
pi.getPlayer().message("You received " + pi.getPlayer().addDojoPointsByMap(pi.getMapId()) + " training points. Your total training points score is now " + pi.getPlayer().getDojoPoints() + ".");
|
||||
pi.warp(pi.getPlayer().getMap().getId() + 100, 0);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -26,6 +26,12 @@
|
||||
function enter(pi) {
|
||||
var maps = [108000600, 108000601, 108000602];
|
||||
if(pi.isQuestStarted(20201) || pi.isQuestStarted(20202) || pi.isQuestStarted(20203) || pi.isQuestStarted(20204) || pi.isQuestStarted(20205)) {
|
||||
pi.removeAll(4032096);
|
||||
pi.removeAll(4032097);
|
||||
pi.removeAll(4032098);
|
||||
pi.removeAll(4032099);
|
||||
pi.removeAll(4032100);
|
||||
|
||||
var rand = Math.floor(Math.random() * maps.length);
|
||||
pi.warp(maps[rand], 0);
|
||||
return true;
|
||||
|
||||
@@ -2,15 +2,32 @@ function enter(pi) {
|
||||
if(pi.getPlayer().getMapId() == 130030001){
|
||||
if(pi.isQuestStarted(20010)){
|
||||
pi.warp(130030002, 0);
|
||||
return true;
|
||||
} else {
|
||||
pi.message("Please click on the NPC first to receive a quest.");
|
||||
}
|
||||
} else if(pi.getPlayer().getMapId() == 130030002){
|
||||
pi.warp(130030003, 0);
|
||||
if(pi.isQuestCompleted(20011)){
|
||||
pi.warp(130030003, 0);
|
||||
return true;
|
||||
} else {
|
||||
pi.message("Please complete the required quest before proceeding.");
|
||||
}
|
||||
} else if(pi.getPlayer().getMapId() == 130030003){
|
||||
pi.warp(130030004, 0);
|
||||
if(pi.isQuestCompleted(20012)){
|
||||
pi.warp(130030004, 0);
|
||||
return true;
|
||||
} else {
|
||||
pi.message("Please complete the required quest before proceeding.");
|
||||
}
|
||||
} else if(pi.getPlayer().getMapId() == 130030004){
|
||||
pi.warp(130030005, 0);
|
||||
if(pi.isQuestCompleted(20013)){
|
||||
pi.warp(130030005, 0);
|
||||
return true;
|
||||
} else {
|
||||
pi.message("Please complete the required quest before proceeding.");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -24,7 +24,7 @@ function start(mode, type, selection) {
|
||||
if (status == 0) {
|
||||
qm.sendNext("You have finally become a Knight-in-Training. I'd like to give you a mission right away, but you still look miles away from even being able to handle a task on your own. Are you sure you can even go to Victoria Island like this?");
|
||||
} else if (status == 1) {
|
||||
qm.askAcceptDecline("It's up to you to head over to Victoria Island, but a Knight-in-Training that can't take care of one's self in battles is likely to cause harm to the Empress's impeccable reputation. As the Head Tactician of this island, I can't let that happen, period. I want you to keep training until the right time comes.");
|
||||
qm.sendAcceptDecline("It's up to you to head over to Victoria Island, but a Knight-in-Training that can't take care of one's self in battles is likely to cause harm to the Empress's impeccable reputation. As the Head Tactician of this island, I can't let that happen, period. I want you to keep training until the right time comes.");
|
||||
} else if (status == 2) {
|
||||
qm.forceCompleteQuest();
|
||||
qm.sendNext("#p1102000#, the Training Instructor, will help you train into a serviceable knight. Once you reach Level 13, I'll assign you a mission or two. So until then, keep training.");
|
||||
|
||||
@@ -64,7 +64,7 @@ function end(mode, type, selection) {
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
if(qm.getPlayer().getItemQuantity(1902017, false) == 0) {
|
||||
if(!qm.haveItemWithId(1902017, false)) {
|
||||
qm.sendNext("You will have to unequip the wolf first before going for the evolution.");
|
||||
qm.dispose();
|
||||
return;
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
*/
|
||||
|
||||
function end(mode, type, selection) {
|
||||
if(qm.haveItem(4001159, 25) && qm.haveItem(4001160, 25) && qm.getPlayer().getItemQuantity(1122010, true) == 0) {
|
||||
if(qm.haveItem(4001159, 25) && qm.haveItem(4001160, 25) && !qm.haveItemWithId(1122010, true)) {
|
||||
if(qm.canHold(1122010)) {
|
||||
qm.gainItem(4001159, -25);
|
||||
qm.gainItem(4001160, -25);
|
||||
|
||||
Reference in New Issue
Block a user