diff --git a/mychanges_ptbr.txt b/mychanges_ptbr.txt
index dd3c97f02b..d6efc59b57 100644
--- a/mychanges_ptbr.txt
+++ b/mychanges_ptbr.txt
@@ -239,4 +239,7 @@ Corre
21 Maio 2017,
Refatoração de código referente ao métodos de coleta de item pelos jogadores.
Retiradas inconsistências entre infos de mobbook e "cartão-de-visitas" do jogador.
-Foi retirado o gargalo no sistema sempre que jogador incorpora um novo card ao mobbook.
\ No newline at end of file
+Foi retirado o gargalo no sistema sempre que jogador incorpora um novo card ao mobbook.
+Consertado bug em potencial ao tentar completar quest que requer item equipado.
+Adição de scrolls: Scroll for cold protection, Scroll for spike for shoes.
+Consertado quest-evento Dollhouse.
\ No newline at end of file
diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml
index 607873874c..fa073e16d3 100644
--- a/nbproject/private/private.xml
+++ b/nbproject/private/private.xml
@@ -3,8 +3,37 @@
- file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/ItemPickupHandler.java
- file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/tools/MaplePacketCreator.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/command/Commands.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/HiredMerchant.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/MapleStatEffect.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/AbstractPlayerInteraction.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/2040020.js
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/2040002.js
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/PlayerInteractionHandler.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/MapleItemInformationProvider.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/StorageHandler.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/UseCashItemHandler.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/inventory/Equip.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/event/EventInstanceManager.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleBuffStat.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/MapleMap.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleCharacter.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/2040028.js
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/PlayerLoggedinHandler.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/EllinPQ.js
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/constants/ItemConstants.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/MapleReactor.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/MapleDragon.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/npc/world0/2133000.js
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/inventory/MapleInventory.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/DollHouse.js
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/net/server/channel/handlers/ScrollHandler.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/AbstractMapleMapObject.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/quest/MapleQuestRequirementType.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/scripting/npc/NPCConversationManager.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/MapleInventoryManipulator.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/quest/actions/PetSkillAction.java
+ file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/quest/MapleQuest.java
diff --git a/scripts/event/DollHouse.js b/scripts/event/DollHouse.js
index 625d0013e9..7df693d36a 100644
--- a/scripts/event/DollHouse.js
+++ b/scripts/event/DollHouse.js
@@ -24,8 +24,9 @@
**/
importPackage(Packages.tools);
-var returnMap;
-var map;
+var entryMap = 922000010;
+var exitMap = 221024400;
+var eventTime = 10; //10 minutes
var eim;
function init() {
@@ -33,59 +34,45 @@ function init() {
}
function playerEntry(eim, player) {
- returnMap = em.getChannelServer().getMapFactory().getMap(221024400);
- eim = em.getInstance("DollHouse");
- map = eim.getMapFactory().getMap(922000010);
- player.changeMap(map, map.getPortal(0));
- map.shuffleReactors();
+ eim.getInstanceMap(entryMap).shuffleReactors();
+ eim.setExclusiveItems([4031094]);
+
+ player.changeMap(entryMap, 0);
em.setProperty("noEntry","true");
- em.schedule("timeOut", 600000);
- player.getClient().getSession().write(MaplePacketCreator.getClock(600));
+
+ player.getClient().getSession().write(MaplePacketCreator.getClock(eventTime * 60));
+ eim.startEventTimer(eventTime * 60000);
}
-
-
function playerExit(eim, player) {
- em.setProperty("noEntry","false");
- player.changeMap(returnMap, returnMap.getPortal(4));
- //eim.unregisterPlayer(player); needed no more
- em.cancel();
- em.disposeInstance("DollHouse");
+ eim.unregisterPlayer(player);
eim.dispose();
+ em.setProperty("noEntry","false");
}
-function timeOut() {
- em.setProperty("noEntry","false");
+function scheduledTimeout(eim) {
var player = eim.getPlayers().get(0);
- player.changeMap(returnMap, returnMap.getPortal(4));
- //eim.unregisterPlayer(player);
- em.cancel();
- em.disposeInstance("DollHouse");
- eim.dispose();
+ playerExit(eim, eim.getPlayers().get(0));
+ player.changeMap(exitMap, 4);
}
function playerDisconnected(eim, player) {
- em.setProperty("noEntry","false");
- player.getMap().removePlayer(player);
- player.setMap(returnMap);
- //eim.unregisterPlayer(player);
- em.cancel();
- em.disposeInstance("DollHouse");
- eim.dispose();
+ playerExit(eim, player);
}
function clear(eim) {
- em.setProperty("noEntry","false");
var player = eim.getPlayers().get(0);
- player.changeMap(returnMap, returnMap.getPortal(4));
- //eim.unregisterPlayer(player);
- em.cancel();
- em.disposeInstance("DollHouse");
+ eim.unregisterPlayer(player);
+ player.changeMap(exitMap, 4);
+
eim.dispose();
+ em.setProperty("noEntry","false");
}
-function cancelSchedule() {
+function changedMap(eim, chr, mapid) {
+ if(mapid != entryMap) playerExit(eim, chr);
}
-function dispose() {
-}
+function cancelSchedule() {}
+
+function dispose() {}
diff --git a/scripts/npc/world0/2040028.js b/scripts/npc/world0/2040028.js
index 36a4c50129..fe92011bf5 100644
--- a/scripts/npc/world0/2040028.js
+++ b/scripts/npc/world0/2040028.js
@@ -24,24 +24,39 @@
*/
var greeting;
+var status;
function start() {
- var greeting = "Thank you for finding the pendulum. Are you ready to return to Eos Tower?";
- if (cm.isQuestStarted(3230)) {
- if (cm.haveItem(4031094)) {
- cm.completeQuest(3230);
- cm.gainItem(4031094, -1);
- } else
- greeting = "You haven't found the pendulum yet. Do you want to go back to Eos Tower?";
- }
- cm.sendYesNo(greeting);
+ status = -1;
+ action(1, 0, 0);
}
function action(mode, type, selection) {
- if (mode > 0) {
- var em = cm.getEventManager("DollHouse");
- var eim = em.getInstance("DollHouse");
- eim.exitPlayer(cm.getPlayer());
+ if (mode == -1) {
+ cm.dispose();
+ } else {
+ if (mode == 0 && status == 0) {
+ cm.dispose();
+ return;
+ }
+ if (mode == 1)
+ status++;
+ else
+ status--;
+
+ if(status == 0) {
+ var greeting = "Thank you for finding the pendulum. Are you ready to return to Eos Tower?";
+ if (cm.isQuestStarted(3230)) {
+ if (cm.haveItem(4031094)) {
+ cm.completeQuest(3230);
+ cm.gainItem(4031094, -1);
+ } else
+ greeting = "You haven't found the pendulum yet. Do you want to go back to Eos Tower?";
+ }
+ cm.sendYesNo(greeting);
+ } else if(status == 1) {
+ cm.warp(221024400, 4);
+ cm.dispose();
+ }
}
- cm.dispose();
}
\ No newline at end of file
diff --git a/sql/db_shopupdate.sql b/sql/db_shopupdate.sql
index 7b02358529..aa77d42c0a 100644
--- a/sql/db_shopupdate.sql
+++ b/sql/db_shopupdate.sql
@@ -35,49 +35,50 @@ INSERT IGNORE INTO `shopitems` (`shopitemid`, `shopid`, `itemid`, `price`, `pitc
(995055, 9201082, 2043001, 520000, 0, 24),
(995056, 9201082, 2043801, 520000, 0, 25),
(995057, 9201082, 2044601, 520000, 0, 26),
-(995058, 9201082, 2040727, 10000, 0, 27),
-(995059, 9201082, 2040807, 1000000, 0, 28),
-(995060, 9201082, 2040026, 15000, 0, 29),
-(995061, 9201082, 2040031, 15000, 0, 30),
-(995062, 9201082, 2040302, 25000, 0, 31),
-(995063, 9201082, 2040318, 25000, 0, 32),
-(995064, 9201082, 2040323, 25000, 0, 33),
-(995065, 9201082, 2040412, 20000, 0, 34),
-(995066, 9201082, 2040419, 20000, 0, 35),
-(995067, 9201082, 2040502, 25000, 0, 36),
-(995068, 9201082, 2040514, 25000, 0, 37),
-(995069, 9201082, 2040517, 25000, 0, 38),
-(995070, 9201082, 2040534, 25000, 0, 39),
-(995071, 9201082, 2040612, 20000, 0, 40),
-(995072, 9201082, 2040702, 20000, 0, 41),
-(995073, 9201082, 2040705, 25000, 0, 42),
-(995074, 9201082, 2040805, 100000, 0, 43),
-(995075, 9201082, 2040915, 55000, 0, 44),
-(995076, 9201082, 2040920, 55000, 0, 45),
-(995077, 9201082, 2041014, 30000, 0, 46),
-(995078, 9201082, 2041017, 30000, 0, 47),
-(995079, 9201082, 2041020, 30000, 0, 48),
-(995080, 9201082, 2041023, 30000, 0, 49),
-(995081, 9201082, 2044902, 50000, 0, 50),
-(995082, 9201082, 2044702, 50000, 0, 51),
-(995083, 9201082, 2043002, 50000, 0, 52),
-(995084, 9201082, 2043802, 50000, 0, 53),
-(995085, 9201082, 2044602, 50000, 0, 54),
-(996000, 9201082, 2049200, 170000, 0, 55),
-(996001, 9201082, 2049201, 220000, 0, 56),
-(996002, 9201082, 2049202, 170000, 0, 57),
-(996003, 9201082, 2049203, 220000, 0, 58),
-(996004, 9201082, 2049204, 170000, 0, 59),
-(996005, 9201082, 2049205, 220000, 0, 60),
-(996006, 9201082, 2049206, 170000, 0, 61),
-(996007, 9201082, 2049207, 220000, 0, 62),
-(996008, 9201082, 2049208, 140000, 0, 63),
-(996009, 9201082, 2049209, 170000, 0, 64),
-(996010, 9201082, 2049210, 140000, 0, 65),
-(996011, 9201082, 2049211, 170000, 0, 66),
-(996196, 9201082, 2070016, 120000000, 0, 67),
-(996197, 9201082, 2070018, 190000000, 0, 68),
-(994782, 9201082, 2030007, 1800000, 0, 69),
-(994783, 9201082, 4001017, 60000000, 0, 70);
+(995058, 9201082, 2040727, 50000, 0, 27),
+(995059, 9201082, 2041058, 50000, 0, 28),
+(995060, 9201082, 2040807, 1000000, 0, 29),
+(995061, 9201082, 2040026, 15000, 0, 30),
+(995062, 9201082, 2040031, 15000, 0, 31),
+(995063, 9201082, 2040302, 25000, 0, 32),
+(995064, 9201082, 2040318, 25000, 0, 33),
+(995065, 9201082, 2040323, 25000, 0, 34),
+(995066, 9201082, 2040412, 20000, 0, 35),
+(995067, 9201082, 2040419, 20000, 0, 36),
+(995068, 9201082, 2040502, 25000, 0, 37),
+(995069, 9201082, 2040514, 25000, 0, 38),
+(995070, 9201082, 2040517, 25000, 0, 39),
+(995071, 9201082, 2040534, 25000, 0, 40),
+(995072, 9201082, 2040612, 20000, 0, 41),
+(995073, 9201082, 2040702, 20000, 0, 42),
+(995074, 9201082, 2040705, 25000, 0, 43),
+(995075, 9201082, 2040805, 100000, 0, 44),
+(995076, 9201082, 2040915, 55000, 0, 45),
+(995077, 9201082, 2040920, 55000, 0, 46),
+(995078, 9201082, 2041014, 30000, 0, 47),
+(995079, 9201082, 2041017, 30000, 0, 48),
+(995080, 9201082, 2041020, 30000, 0, 49),
+(995081, 9201082, 2041023, 30000, 0, 50),
+(995082, 9201082, 2044902, 50000, 0, 51),
+(995083, 9201082, 2044702, 50000, 0, 52),
+(995084, 9201082, 2043002, 50000, 0, 53),
+(995085, 9201082, 2043802, 50000, 0, 54),
+(995086, 9201082, 2044602, 50000, 0, 55),
+(996000, 9201082, 2049200, 170000, 0, 56),
+(996001, 9201082, 2049201, 220000, 0, 57),
+(996002, 9201082, 2049202, 170000, 0, 58),
+(996003, 9201082, 2049203, 220000, 0, 59),
+(996004, 9201082, 2049204, 170000, 0, 60),
+(996005, 9201082, 2049205, 220000, 0, 61),
+(996006, 9201082, 2049206, 170000, 0, 62),
+(996007, 9201082, 2049207, 220000, 0, 63),
+(996008, 9201082, 2049208, 140000, 0, 64),
+(996009, 9201082, 2049209, 170000, 0, 65),
+(996010, 9201082, 2049210, 140000, 0, 66),
+(996011, 9201082, 2049211, 170000, 0, 67),
+(996196, 9201082, 2070016, 120000000, 0, 68),
+(996197, 9201082, 2070018, 190000000, 0, 69),
+(994782, 9201082, 2030007, 1800000, 0, 70),
+(994783, 9201082, 4001017, 60000000, 0, 71);
-UPDATE shopitems SET price = 11*price WHERE (`position` >= 27 and `position` <= 66 and `shopid` = 9201082);
\ No newline at end of file
+UPDATE shopitems SET price = 11*price WHERE (`position` >= 27 and `position` <= 67 and `shopid` = 9201082);
\ No newline at end of file
diff --git a/src/client/MapleBuffStat.java b/src/client/MapleBuffStat.java
index e890f19abe..a7467e5552 100644
--- a/src/client/MapleBuffStat.java
+++ b/src/client/MapleBuffStat.java
@@ -111,7 +111,7 @@ public enum MapleBuffStat {
SMART_KNOCKBACK(0x10000000000L, true),
PYRAMID_PQ(0x20000000000L, true),
ENERGY_CHARGE(0x4000000000000L, true),
- DASH2(0x8000000000000L, true), // correct (speed)
+ DASH2(0x8000000000000L, true), // correct (speed)
DASH(0x10000000000000L, true), // correct (jump)
MONSTER_RIDING(0x20000000000000L, true),
SPEED_INFUSION(0x40000000000000L, true),
diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java
index ccf4d0919e..e5bb21b0cb 100644
--- a/src/client/MapleCharacter.java
+++ b/src/client/MapleCharacter.java
@@ -1197,6 +1197,10 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
}
}
+ for(Item it: this.getInventory(MapleInventoryType.EQUIPPED).list()) {
+ if((it.getFlag() & ItemConstants.COLD) == ItemConstants.COLD && map.getReturnMapId() == 211000000) return(true); //protection from cold
+ }
+
return false;
}
diff --git a/src/net/server/channel/handlers/PlayerInteractionHandler.java b/src/net/server/channel/handlers/PlayerInteractionHandler.java
index cfb7b52547..f280905046 100644
--- a/src/net/server/channel/handlers/PlayerInteractionHandler.java
+++ b/src/net/server/channel/handlers/PlayerInteractionHandler.java
@@ -415,7 +415,7 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler {
if (chr.getTrade() != null) {
if ((quantity <= item.getQuantity() && quantity >= 0) || ItemConstants.isRechargable(item.getItemId())) {
if (ii.isDropRestricted(item.getItemId())) { // ensure that undroppable items do not make it to the trade window
- if (!((item.getFlag() & ItemConstants.KARMA) == ItemConstants.KARMA || (item.getFlag() & ItemConstants.SPIKES) == ItemConstants.SPIKES)) {
+ if (!((item.getFlag() & ItemConstants.KARMA) == ItemConstants.KARMA)) {
c.announce(MaplePacketCreator.enableActions());
return;
}
diff --git a/src/net/server/channel/handlers/ScrollHandler.java b/src/net/server/channel/handlers/ScrollHandler.java
index ea33cd9733..8549b33440 100644
--- a/src/net/server/channel/handlers/ScrollHandler.java
+++ b/src/net/server/channel/handlers/ScrollHandler.java
@@ -30,6 +30,7 @@ import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.ModifyInventory;
+import constants.ItemConstants;
import java.util.ArrayList;
import java.util.List;
import net.AbstractMaplePacketHandler;
@@ -97,7 +98,7 @@ public final class ScrollHandler extends AbstractMaplePacketHandler {
ScrollResult scrollSuccess = Equip.ScrollResult.FAIL; // fail
if (scrolled == null) {
scrollSuccess = Equip.ScrollResult.CURSE;
- } else if (scrolled.getLevel() > oldLevel || (isCleanSlate(scroll.getItemId()) && scrolled.getUpgradeSlots() == oldSlots + 1)) {
+ } else if (scrolled.getLevel() > oldLevel || (isCleanSlate(scroll.getItemId()) && scrolled.getUpgradeSlots() == oldSlots + 1) || isFlagModifier(scroll.getItemId(), scrolled.getFlag())) {
scrollSuccess = Equip.ScrollResult.SUCCESS;
}
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, scroll.getPosition(), (short) 1, false);
@@ -123,6 +124,12 @@ public final class ScrollHandler extends AbstractMaplePacketHandler {
}
}
+ private boolean isFlagModifier(int scrollId, byte flag) {
+ if(scrollId == 2041058 && ((flag & ItemConstants.COLD) == ItemConstants.COLD)) return true;
+ if(scrollId == 2040727 && ((flag & ItemConstants.SPIKES) == ItemConstants.SPIKES)) return true;
+ return false;
+ }
+
private boolean isCleanSlate(int scrollId) {
return scrollId > 2048999 && scrollId < 2049004;
}
diff --git a/src/net/server/channel/handlers/StorageHandler.java b/src/net/server/channel/handlers/StorageHandler.java
index 412450ccb6..2f4134bcdb 100644
--- a/src/net/server/channel/handlers/StorageHandler.java
+++ b/src/net/server/channel/handlers/StorageHandler.java
@@ -82,8 +82,6 @@ public final class StorageHandler extends AbstractMaplePacketHandler {
FilePrinter.printError(FilePrinter.STORAGE + c.getAccountName() + ".txt", c.getPlayer().getName() + " took out " + item.getQuantity() + " " + itemName + " (" + item.getItemId() + ")\r\n");
if ((item.getFlag() & ItemConstants.KARMA) == ItemConstants.KARMA) {
item.setFlag((byte) (item.getFlag() ^ ItemConstants.KARMA)); //items with scissors of karma used on them are reset once traded
- } else if (item.getType() == 2 && (item.getFlag() & ItemConstants.SPIKES) == ItemConstants.SPIKES){
- item.setFlag((byte) (item.getFlag() ^ ItemConstants.SPIKES));
}
MapleInventoryManipulator.addFromDrop(c, item, false);
storage.sendTakenOut(c, ii.getInventoryType(item.getItemId()));
diff --git a/src/net/server/channel/handlers/UseCashItemHandler.java b/src/net/server/channel/handlers/UseCashItemHandler.java
index f0312fda52..87b2ce556a 100644
--- a/src/net/server/channel/handlers/UseCashItemHandler.java
+++ b/src/net/server/channel/handlers/UseCashItemHandler.java
@@ -490,9 +490,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
c.announce(MaplePacketCreator.enableActions());
return;
}
- if (type.equals(MapleInventoryType.USE)) {
- item.setFlag((byte) ItemConstants.SPIKES);
- } else {
+ if (!type.equals(MapleInventoryType.USE)) {
item.setFlag((byte) ItemConstants.KARMA);
}
diff --git a/src/server/MapleTrade.java b/src/server/MapleTrade.java
index fcb9c8e6b4..b1e52e6b9b 100644
--- a/src/server/MapleTrade.java
+++ b/src/server/MapleTrade.java
@@ -88,10 +88,8 @@ public class MapleTrade {
for (Item item : exchangeItems) {
if ((item.getFlag() & ItemConstants.KARMA) == ItemConstants.KARMA)
item.setFlag((byte) (item.getFlag() ^ ItemConstants.KARMA)); //items with scissors of karma used on them are reset once traded
- else if (item.getType() == 2 && (item.getFlag() & ItemConstants.SPIKES) == ItemConstants.SPIKES)
- item.setFlag((byte) (item.getFlag() ^ ItemConstants.SPIKES));
- MapleInventoryManipulator.addFromDrop(chr.getClient(), item, true);
+ MapleInventoryManipulator.addFromDrop(chr.getClient(), item, true);
}
if (exchangeMeso > 0) {
chr.gainMeso(exchangeMeso - getFee(exchangeMeso), true, true, true);
diff --git a/src/server/maps/HiredMerchant.java b/src/server/maps/HiredMerchant.java
index 8b030353b5..0849fc5830 100644
--- a/src/server/maps/HiredMerchant.java
+++ b/src/server/maps/HiredMerchant.java
@@ -143,9 +143,6 @@ public class HiredMerchant extends AbstractMapleMapObject {
if ((newItem.getFlag() & ItemConstants.KARMA) == ItemConstants.KARMA) {
newItem.setFlag((byte) (newItem.getFlag() ^ ItemConstants.KARMA));
}
- if (newItem.getType() == 2 && (newItem.getFlag() & ItemConstants.SPIKES) == ItemConstants.SPIKES) {
- newItem.setFlag((byte) (newItem.getFlag() ^ ItemConstants.SPIKES));
- }
if (quantity < 1 || pItem.getBundles() < 1 || !pItem.isExist() || pItem.getBundles() < quantity) {
c.announce(MaplePacketCreator.enableActions());
return;
diff --git a/src/server/quest/requirements/ItemRequirement.java b/src/server/quest/requirements/ItemRequirement.java
index e4f7fc4a4c..1e9351b404 100644
--- a/src/server/quest/requirements/ItemRequirement.java
+++ b/src/server/quest/requirements/ItemRequirement.java
@@ -73,7 +73,7 @@ public class ItemRequirement extends MapleQuestRequirement {
count += item.getQuantity();
}
//Weird stuff, nexon made some quests only available when wearing gm clothes. This enables us to accept it ><
- if (iType.equals(MapleInventoryType.EQUIP)) {
+ if (iType.equals(MapleInventoryType.EQUIP) && chr.isGM()) {
for (Item item : chr.getInventory(MapleInventoryType.EQUIPPED).listById(itemId)) {
count += item.getQuantity();
}