diff --git a/src/client/PlayerStats.java b/src/client/PlayerStats.java index 5f9d136..d8ae396 100644 --- a/src/client/PlayerStats.java +++ b/src/client/PlayerStats.java @@ -639,7 +639,7 @@ public class PlayerStats implements Serializable { dsbbh++; if (!first_login) { for (AotuNpc npc : Start.aotuNpcs) { - if (npc.getMapId() == chra.getMapId() && (npc.getItemId() == 0 || chra.haveItem(npc.getItemId())) && (npc.getEquId() == 0 || chra.hasEquipped(npc.getEquId()))) { + if ((npc.getMapId() == chra.getMapId()||npc.getMapId()==0) && (npc.getItemId() == 0 || chra.getItemNum(npc.getItemId())>=npc.getItemNum()) && (npc.getEquId() == 0 || chra.hasEquipped(npc.getEquId()))) { Start.executor.schedule(() -> dsnpcfw(chra, npc,dsbbh), npc.getTime(), TimeUnit.MILLISECONDS); } } @@ -985,7 +985,7 @@ public class PlayerStats implements Serializable { private void dsnpcfw(MapleCharacter chra, AotuNpc aotuNpc,int dsbbh2) { if (dsbbh2!=this.dsbbh)return; - if (aotuNpc.getMapId() == chra.getMapId() &&( aotuNpc.getItemId()==0 || chra.haveItem(aotuNpc.getItemId())) && (aotuNpc.getEquId()==0|| chra.hasEquipped(aotuNpc.getEquId()))) { + if ((aotuNpc.getMapId() == chra.getMapId()||aotuNpc.getMapId()==0) && (aotuNpc.getItemId() == 0 || chra.getItemNum(aotuNpc.getItemId())>=aotuNpc.getItemNum()) && (aotuNpc.getEquId() == 0 || chra.hasEquipped(aotuNpc.getEquId()))) { final NPCConversationManager cm = NPCScriptManager.getInstance().getCM(chra.getClient()); if (cm == null || chra.getConversation() == 0 || cm.getLastMsg() != 4) { NPCScriptManager.getInstance().startds(chra.getClient(), aotuNpc.getNpcId(),0,aotuNpc.getScriptsName()); diff --git a/src/gui/tw/AotuNpc.java b/src/gui/tw/AotuNpc.java index fb89e93..340ae2d 100644 --- a/src/gui/tw/AotuNpc.java +++ b/src/gui/tw/AotuNpc.java @@ -9,9 +9,18 @@ public class AotuNpc { String scriptsName; int itemId; + int itemNum; int equId; + public int getItemNum() { + return itemNum; + } + + public void setItemNum(int itemNum) { + this.itemNum = itemNum; + } + int time; public int getMapId() { diff --git a/src/gui/tw/diaoyu/DiaoyuConfig.java b/src/gui/tw/diaoyu/DiaoyuConfig.java index e28234c..83ac31e 100644 --- a/src/gui/tw/diaoyu/DiaoyuConfig.java +++ b/src/gui/tw/diaoyu/DiaoyuConfig.java @@ -42,8 +42,8 @@ public class DiaoyuConfig { diaoYuMap.setId(id); diaoYuMap.setMapId(mapId); - diaoYuMap.setName(getMapStringName(mapId)); - MapleDataTool.getString("mapName", MapleMapFactory.nameData.getChildByPath(getMapStringName(910000000)), ""); + diaoYuMap.setName(MapleDataTool.getString("mapName", MapleMapFactory.nameData.getChildByPath(getMapStringName(910000000)), "")); + mapIds.add(diaoYuMap); } public void removemap(int id) {