diff --git a/.gitignore b/.gitignore index 4b64dd716f..c477dc6a51 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,10 @@ /tools/MapleArrowFetcher/dist/ /tools/MapleArrowFetcher/nbproject/private/ +/tools/MapleBossHpBarFetcher/nbproject/private/ +/tools/MapleBossHpBarFetcher/build/ +/tools/MapleBossHpBarFetcher/dist/ + /tools/MapleCouponInstaller/build/ /tools/MapleCouponInstaller/dist/ /tools/MapleCouponInstaller/nbproject/private/ @@ -39,6 +43,10 @@ /tools/MapleMobBookUpdate/dist/ /tools/MapleMobBookUpdate/nbproject/private/ +/tools/MapleQuestItemCountFetcher/nbproject/private/ +/tools/MapleQuestItemCountFetcher/build/ +/tools/MapleQuestItemCountFetcher/dist/ + /tools/MapleQuestItemFetcher/build/ /tools/MapleQuestItemFetcher/dist/ /tools/MapleQuestItemFetcher/nbproject/private/ @@ -56,12 +64,3 @@ /tools/MapleSkillMakerReagentIndexer/nbproject/private/ /out -/tools/MapleQuestItemQuantityFetcher/nbproject/private/ -/tools/MapleQuestItemQuantityFetcher/build/ -/tools/MapleQuestItemQuantityFetcher/dist/ -/tools/MapleQuestItemCountFetcher/nbproject/private/ -/tools/MapleQuestItemCountFetcher/build/ -/tools/MapleQuestItemCountFetcher/dist/ -/tools/MapleBossHpBarFetcher/nbproject/private/ -/tools/MapleBossHpBarFetcher/build/ -/tools/MapleBossHpBarFetcher/dist/ \ No newline at end of file diff --git a/docs/mychanges_ptbr.txt b/docs/mychanges_ptbr.txt index 47aa8d5567..bf98f38b6f 100644 --- a/docs/mychanges_ptbr.txt +++ b/docs/mychanges_ptbr.txt @@ -848,4 +848,9 @@ Adicionado drop data para Flaming Racoon e Big Cloud Fox. Adicionado ganho de EXP em várias quests da região de Zipangu. Adicionado sistema de bonus para expedição de Showa, atingível se nenhum jogador morrer no evento. Nova ferramenta: MapleBossHpBarFetcher. Localiza no Mob.wz ids de mobs que possuem um boss hp bar mas não são labelados como "boss". -Incrementado quiz de 3rd job, agora utilizando um pool de 40 perguntas com escolha arbitrária. \ No newline at end of file +Incrementado quiz de 3rd job, agora utilizando um pool de 40 perguntas com escolha arbitrária. + +05 - 10 Março 2018, +Corrigido diseases não sendo removidas corretamente no cliente quando tentando trocar de canal/entrar Cash Shop, permitindo-as ficar no jogador infinitamente. +Corrigido Holy Symbol atuando de forma inesperada no cenário com somente um jogador. +Corrigido Summon Sack lv. 9 lançando mob com id inexistente. \ No newline at end of file diff --git a/scripts/npc/2030006.js b/scripts/npc/2030006.js index 6b9e1792e4..7912e09d86 100644 --- a/scripts/npc/2030006.js +++ b/scripts/npc/2030006.js @@ -77,8 +77,8 @@ var questionTree = [ var status; var question; -var unusedQuestions; -var unusedQuestionsCursor; +var questionPool; +var questionPoolCursor; function start() { status = -1; @@ -105,8 +105,6 @@ function action(mode, type, selection) { cm.sendNext("Have a free ETC slot available before accepting this trial."); cm.dispose(); } else { - instantiateUnusedQuestions(); - cm.sendNext("Alright... I'll be testing out your wisdom here. Answer all the questions correctly, and you will pass the test BUT, if you even lie to me once, then you'll have to start over again ok, here we go."); } } else { @@ -118,6 +116,7 @@ function action(mode, type, selection) { } } else if(status == 1) { cm.gainItem(4005004, -1); + instantiateQuestionPool(); question = fetchNextQuestion(); var questionHead = generateQuestionHeading(); @@ -172,25 +171,25 @@ function shuffleArray(array) { } } -function instantiateUnusedQuestions() { - unusedQuestions = []; +function instantiateQuestionPool() { + questionPool = []; for(var i = 0; i < questionTree.length; i++) { - unusedQuestions.push(i); + questionPool.push(i); } - shuffleArray(unusedQuestions); - unusedQuestionsCursor = 0; + shuffleArray(questionPool); + questionPoolCursor = 0; } function fetchNextQuestion() { - var next = unusedQuestions[unusedQuestionsCursor]; - unusedQuestionsCursor++; + var next = questionPool[questionPoolCursor]; + questionPoolCursor++; return next; } -function generateSelectionMenu(array) { // nice tool for generating a string for the sendSimple functionality +function generateSelectionMenu(array) { var menu = ""; for (var i = 0; i < array.length; i++) { menu += "#L" + i + "#" + array[i] + "#l\r\n"; diff --git a/scripts/npc/9201043.js b/scripts/npc/9201043.js index a2731e4415..a1de5f9201 100644 --- a/scripts/npc/9201043.js +++ b/scripts/npc/9201043.js @@ -45,11 +45,11 @@ function action(mode, type, selection) { else status--; if (status == 1 && selection == 0) { - if (cm.haveItem(4031592, 1)/* && cm.isMarried()==1*/) { + if (cm.haveItem(4031592, 1)) { cm.sendYesNo("So you would like to enter the #bEntrance#k?"); MySelection = selection; } else { - cm.sendOk("You must have an Entrance Ticket to enter, and you have to be married."); + cm.sendOk("You must have an Entrance Ticket to enter."); cm.dispose(); } } else if (status == 1 && selection == 1) { diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index a1a611005a..732d22a946 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -2019,6 +2019,40 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } } + public Map getAllDiseases() { + chrLock.lock(); + try { + long curtime = System.currentTimeMillis(); + Map ret = new LinkedHashMap<>(); + + for(Entry de : diseaseExpires.entrySet()) { + MapleDiseaseValueHolder mdvh = diseases.get(de.getKey()); + + ret.put(de.getKey(), mdvh.length - (curtime - mdvh.startTime)); + } + + return ret; + } finally { + chrLock.unlock(); + } + } + + public void silentApplyDiseases(Map diseaseMap) { + chrLock.lock(); + try { + long curTime = System.currentTimeMillis(); + + for(Entry di : diseaseMap.entrySet()) { + long expTime = curTime + di.getValue(); + + diseaseExpires.put(di.getKey(), expTime); + diseases.put(di.getKey(), new MapleDiseaseValueHolder(curTime, expTime)); + } + } finally { + chrLock.unlock(); + } + } + public void giveDebuff(final MapleDisease disease, MobSkill skill) { if (!hasDisease(disease) && getDiseasesSize() < 2) { if (!(disease == MapleDisease.SEDUCE || disease == MapleDisease.STUN)) { @@ -2071,6 +2105,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { chrLock.lock(); try { diseases.clear(); + diseaseExpires.clear(); } finally { chrLock.unlock(); } @@ -3834,6 +3869,10 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { (checkEquipped && inventory[MapleInventoryType.EQUIPPED.ordinal()].findById(itemid) != null); } + public boolean haveItemEquipped(int itemid) { + return (inventory[MapleInventoryType.EQUIPPED.ordinal()].findById(itemid) != null); + } + public int getItemQuantity(int itemid, boolean checkEquipped) { int possesed = inventory[ItemConstants.getInventoryType(itemid).ordinal()].countById(itemid); if (checkEquipped) { @@ -4744,8 +4783,12 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { dropMessage(1, "You don't have enough mesos."); return; } - Server.getInstance().increaseGuildCapacity(guildid); - gainMeso(-MapleGuild.getIncreaseGuildCost(getGuild().getCapacity()), true, false, false); + + if(Server.getInstance().increaseGuildCapacity(guildid)) { + gainMeso(-MapleGuild.getIncreaseGuildCost(getGuild().getCapacity()), true, false, false); + } else { + dropMessage(1, "You guild already reached the maximum capacity of players."); + } } public boolean isActiveBuffedValue(int skillid) { @@ -5367,7 +5410,9 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } continue; } - if (item.getRight().equals(MapleInventoryType.EQUIP) || item.getRight().equals(MapleInventoryType.EQUIPPED)) { + + MapleInventoryType mit = item.getRight(); + if (mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) { Equip equip = (Equip) item.getLeft(); if (equip.getRingId() > -1) { MapleRing ring = MapleRing.loadFromDb(equip.getRingId()); @@ -5426,7 +5471,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } ret.setPosition(portal.getPosition()); int partyid = rs.getInt("party"); - MapleParty party = Server.getInstance().getWorld(ret.world).getParty(partyid); + World wserv = Server.getInstance().getWorld(ret.world); + MapleParty party = wserv.getParty(partyid); if (party != null) { ret.mpc = party.getMemberById(ret.id); if (ret.mpc != null) { @@ -5437,7 +5483,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { int messengerid = rs.getInt("messengerid"); int position = rs.getInt("messengerposition"); if (messengerid > 0 && position < 4 && position > -1) { - MapleMessenger messenger = Server.getInstance().getWorld(ret.world).getMessenger(messengerid); + MapleMessenger messenger = wserv.getMessenger(messengerid); if (messenger != null) { ret.messenger = messenger; ret.messengerposition = position; @@ -5501,7 +5547,6 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { ps.close(); ret.cashshop = new CashShop(ret.accountid, ret.id, ret.getJobType()); ret.autoban = new AutobanManager(ret); - ret.marriageRing = null; //for now ps = con.prepareStatement("SELECT name, level FROM characters WHERE accountid = ? AND id != ? ORDER BY level DESC limit 1"); ps.setInt(1, ret.accountid); ps.setInt(2, charid); @@ -7161,10 +7206,11 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { if (quantity <= iQuant && iQuant > 0) { MapleInventoryManipulator.removeFromSlot(c, type, (byte) slot, quantity, false); double price; - if (ItemConstants.isRechargable(item.getItemId())) { - price = ii.getWholePrice(item.getItemId()) / (double) ii.getSlotMax(c, item.getItemId()); + int itemid = item.getItemId(); + if (ItemConstants.isRechargable(itemid)) { + price = ii.getWholePrice(itemid) / (double) ii.getSlotMax(c, itemid); } else { - price = ii.getPrice(item.getItemId()); + price = ii.getPrice(itemid); } int recvMesos = (int) Math.max(Math.ceil(price * quantity), 0); diff --git a/src/client/MapleClient.java b/src/client/MapleClient.java index 9082436d3c..dfa40da1dd 100644 --- a/src/client/MapleClient.java +++ b/src/client/MapleClient.java @@ -746,6 +746,7 @@ public class MapleClient { } int state = rs.getInt("loggedin"); if (state == LOGIN_SERVER_TRANSITION) { + // Arnah's note: lastlogin is a date-type, in case of login and game servers being of different timezones this becomes broken if (rs.getTimestamp("lastlogin").getTime() + 30000 < System.currentTimeMillis()) { state = LOGIN_NOTLOGGEDIN; updateLoginState(LOGIN_NOTLOGGEDIN); @@ -1293,8 +1294,10 @@ public class MapleClient { } player.unregisterChairBuff(); server.getPlayerBuffStorage().addBuffsToStorage(player.getId(), player.getAllBuffs()); + server.getPlayerBuffStorage().addDiseasesToStorage(player.getId(), player.getAllDiseases()); player.setAwayFromWorld(true); player.cancelAllBuffs(true); + player.cancelAllDebuffs(); player.cancelBuffExpireTask(); player.cancelDiseaseExpireTask(); player.cancelSkillCooldownTask(); diff --git a/src/client/MapleDisease.java b/src/client/MapleDisease.java index 7e5c375c33..e6cd16a7ce 100644 --- a/src/client/MapleDisease.java +++ b/src/client/MapleDisease.java @@ -52,8 +52,8 @@ public enum MapleDisease { return i; } - public boolean isFirst() { - return first; - } + public boolean isFirst() { + return first; + } } diff --git a/src/net/MapleServerHandler.java b/src/net/MapleServerHandler.java index 17d57310c3..5c95182284 100644 --- a/src/net/MapleServerHandler.java +++ b/src/net/MapleServerHandler.java @@ -23,6 +23,8 @@ package net; import java.io.IOException; import java.text.SimpleDateFormat; +import java.util.Set; +import java.util.HashSet; import java.util.Calendar; import java.util.concurrent.atomic.AtomicLong; @@ -41,6 +43,7 @@ import tools.data.input.GenericSeekableLittleEndianAccessor; import tools.data.input.SeekableLittleEndianAccessor; import client.MapleClient; import constants.ServerConstants; +import java.util.Arrays; import java.util.concurrent.locks.Lock; import tools.locks.MonitoredReentrantLock; @@ -53,7 +56,8 @@ import server.TimerManager; import tools.locks.MonitoredLockType; public class MapleServerHandler extends IoHandlerAdapter { - + private final static Set ignoredDebugRecvPackets = new HashSet<>(Arrays.asList((short) 167, (short) 197, (short) 89, (short) 91, (short) 41)); + private PacketProcessor processor; private int world = -1, channel = -1; private static final SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm"); @@ -151,7 +155,7 @@ public class MapleServerHandler extends IoHandlerAdapter { short packetId = slea.readShort(); MapleClient client = (MapleClient) session.getAttribute(MapleClient.CLIENT_KEY); - if(ServerConstants.USE_DEBUG_SHOW_RCVD_PACKET) System.out.println("Received packet id " + packetId); + if(ServerConstants.USE_DEBUG_SHOW_RCVD_PACKET && !ignoredDebugRecvPackets.contains(packetId)) System.out.println("Received packet id " + packetId); final MaplePacketHandler packetHandler = processor.getHandler(packetId); if (packetHandler != null && packetHandler.validateState(client)) { try { diff --git a/src/net/server/PlayerBuffStorage.java b/src/net/server/PlayerBuffStorage.java index b33a38cea9..40dbdc85a4 100644 --- a/src/net/server/PlayerBuffStorage.java +++ b/src/net/server/PlayerBuffStorage.java @@ -21,6 +21,7 @@ */ package net.server; +import client.MapleDisease; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -31,11 +32,13 @@ import tools.locks.MonitoredReentrantLock; /** * * @author Danny//changed to map :3 + * @author Ronan//debuffs to storage as well */ public class PlayerBuffStorage { private int id = (int) (Math.random() * 100); private final Lock lock = new MonitoredReentrantLock(MonitoredLockType.BUFF_STORAGE, true); private Map> buffs = new HashMap<>(); + private Map> diseases = new HashMap<>(); public void addBuffsToStorage(int chrid, List toStore) { lock.lock(); @@ -52,7 +55,25 @@ public class PlayerBuffStorage { return buffs.remove(chrid); } finally { lock.unlock(); - } + } + } + + public void addDiseasesToStorage(int chrid, Map toStore) { + lock.lock(); + try { + diseases.put(chrid, toStore); + } finally { + lock.unlock(); + } + } + + public Map getDiseasesFromStorage(int chrid) { + lock.lock(); + try { + return diseases.remove(chrid); + } finally { + lock.unlock(); + } } @Override diff --git a/src/net/server/channel/handlers/DueyHandler.java b/src/net/server/channel/handlers/DueyHandler.java index c089c5f5cb..620cfdd946 100644 --- a/src/net/server/channel/handlers/DueyHandler.java +++ b/src/net/server/channel/handlers/DueyHandler.java @@ -252,11 +252,11 @@ public final class DueyHandler extends AbstractMaplePacketHandler { } } - private void addMesoToDB(int mesos, String sName, int recipientID) { + private static void addMesoToDB(int mesos, String sName, int recipientID) { addItemToDB(null, 1, mesos, sName, recipientID); } - private void addItemToDB(Item item, int quantity, int mesos, String sName, int recipientID) { + public static void addItemToDB(Item item, int quantity, int mesos, String sName, int recipientID) { Connection con = null; try { con = DatabaseConnection.getConnection(); @@ -344,7 +344,7 @@ public final class DueyHandler extends AbstractMaplePacketHandler { } } - private String getCurrentDate() { + private static String getCurrentDate() { String date = ""; Calendar cal = Calendar.getInstance(); int day = cal.get(Calendar.DATE) - 1; // instant duey ? @@ -373,7 +373,7 @@ public final class DueyHandler extends AbstractMaplePacketHandler { return fee; } - private void removeItemFromDB(int packageid) { + private static void removeItemFromDB(int packageid) { Connection con = null; try { con = DatabaseConnection.getConnection(); diff --git a/src/net/server/channel/handlers/EnterCashShopHandler.java b/src/net/server/channel/handlers/EnterCashShopHandler.java index 268034ccbe..c1008e5838 100644 --- a/src/net/server/channel/handlers/EnterCashShopHandler.java +++ b/src/net/server/channel/handlers/EnterCashShopHandler.java @@ -59,8 +59,10 @@ public class EnterCashShopHandler extends AbstractMaplePacketHandler { mc.unregisterChairBuff(); Server.getInstance().getPlayerBuffStorage().addBuffsToStorage(mc.getId(), mc.getAllBuffs()); + Server.getInstance().getPlayerBuffStorage().addDiseasesToStorage(mc.getId(), mc.getAllDiseases()); mc.setAwayFromWorld(true); mc.cancelAllBuffs(true); + mc.cancelAllDebuffs(); mc.cancelBuffExpireTask(); mc.cancelDiseaseExpireTask(); mc.cancelSkillCooldownTask(); diff --git a/src/net/server/channel/handlers/EnterMTSHandler.java b/src/net/server/channel/handlers/EnterMTSHandler.java index c40bf00ca7..8fac19a214 100644 --- a/src/net/server/channel/handlers/EnterMTSHandler.java +++ b/src/net/server/channel/handlers/EnterMTSHandler.java @@ -68,8 +68,10 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { chr.unregisterChairBuff(); Server.getInstance().getPlayerBuffStorage().addBuffsToStorage(chr.getId(), chr.getAllBuffs()); + Server.getInstance().getPlayerBuffStorage().addDiseasesToStorage(chr.getId(), chr.getAllDiseases()); chr.setAwayFromWorld(true); chr.cancelAllBuffs(true); + chr.cancelAllDebuffs(); chr.cancelBuffExpireTask(); chr.cancelDiseaseExpireTask(); chr.cancelSkillCooldownTask(); diff --git a/src/net/server/channel/handlers/PlayerLoggedinHandler.java b/src/net/server/channel/handlers/PlayerLoggedinHandler.java index b2f6238a53..11dd88b902 100644 --- a/src/net/server/channel/handlers/PlayerLoggedinHandler.java +++ b/src/net/server/channel/handlers/PlayerLoggedinHandler.java @@ -46,6 +46,7 @@ import client.BuddylistEntry; import client.CharacterNameAndId; import client.MapleCharacter; import client.MapleClient; +import client.MapleDisease; import client.MapleFamily; import client.SkillFactory; import client.inventory.MapleInventoryType; @@ -54,6 +55,7 @@ import constants.GameConstants; import constants.ServerConstants; import java.util.Collections; import java.util.Comparator; +import java.util.Map; public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler { @@ -115,6 +117,11 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler { player.silentGiveBuffs(timedBuffs); } + Map diseases = server.getPlayerBuffStorage().getDiseasesFromStorage(cid); + if (diseases != null) { + player.silentApplyDiseases(diseases); + } + c.announce(MaplePacketCreator.getCharInfo(player)); if (!player.isHidden()) { player.toggleHide(true); diff --git a/src/net/server/channel/handlers/ReactorHitHandler.java b/src/net/server/channel/handlers/ReactorHitHandler.java index 629d9c7cb3..ccf97e8f4a 100644 --- a/src/net/server/channel/handlers/ReactorHitHandler.java +++ b/src/net/server/channel/handlers/ReactorHitHandler.java @@ -30,6 +30,7 @@ import tools.data.input.SeekableLittleEndianAccessor; * @author Lerk */ public final class ReactorHitHandler extends AbstractMaplePacketHandler { + @Override public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { //System.out.println(slea); //To see if there are any differences with packets //CD 00 6B 00 00 00 01 00 00 00 03 00 00 00 20 03 F7 03 00 00 diff --git a/src/scripting/AbstractPlayerInteraction.java b/src/scripting/AbstractPlayerInteraction.java index cda2088ec9..970adb8b45 100644 --- a/src/scripting/AbstractPlayerInteraction.java +++ b/src/scripting/AbstractPlayerInteraction.java @@ -177,6 +177,10 @@ public class AbstractPlayerInteraction { return getPlayer().getEventInstance(); } + public MapleInventory getInventory(int type) { + return getPlayer().getInventory(MapleInventoryType.getByType((byte) type)); + } + public MapleInventory getInventory(MapleInventoryType type) { return getPlayer().getInventory(type); } diff --git a/src/scripting/event/EventInstanceManager.java b/src/scripting/event/EventInstanceManager.java index 53eca1fc6e..6d89b96067 100644 --- a/src/scripting/event/EventInstanceManager.java +++ b/src/scripting/event/EventInstanceManager.java @@ -425,6 +425,16 @@ public class EventInstanceManager { rL.unlock(); } } + + public MapleCharacter getPlayerById(int id) { + rL.lock(); + try { + return chars.get(id); + } + finally { + rL.unlock(); + } + } public List getPlayers() { rL.lock(); @@ -1331,6 +1341,15 @@ public class EventInstanceManager { } } + public final int gridSize() { + rL.lock(); + try { + return playerGrid.size(); + } finally { + rL.unlock(); + } + } + public final void gridClear() { wL.lock(); try { diff --git a/src/server/life/MapleMonster.java b/src/server/life/MapleMonster.java index 62af843063..f8ae171659 100644 --- a/src/server/life/MapleMonster.java +++ b/src/server/life/MapleMonster.java @@ -436,13 +436,8 @@ public class MapleMonster extends AbstractLoadedMapleLife { partyExp = (int) (personalExp * partyModifier * ServerConstants.PARTY_BONUS_EXP_RATE); } Integer holySymbol = attacker.getBuffedValue(MapleBuffStat.HOLY_SYMBOL); - boolean GMHolySymbol = attacker.getBuffSource(MapleBuffStat.HOLY_SYMBOL) == SuperGM.HOLY_SYMBOL; if (holySymbol != null) { - if (numExpSharers == 1 && !GMHolySymbol) { - personalExp *= 1.0 + (holySymbol.doubleValue() / 500.0); - } else { - personalExp *= 1.0 + (holySymbol.doubleValue() / 100.0); - } + personalExp *= 1.0 + (holySymbol.doubleValue() / 100.0); } statiLock.lock(); diff --git a/wz/Item.wz/Consume/0210.img.xml b/wz/Item.wz/Consume/0210.img.xml index bd98116ae3..1cf9d01c9b 100644 --- a/wz/Item.wz/Consume/0210.img.xml +++ b/wz/Item.wz/Consume/0210.img.xml @@ -1509,7 +1509,7 @@ - + diff --git a/wz/Item.wz/Etc/0400.img.xml b/wz/Item.wz/Etc/0400.img.xml index f0f30a2fa5..7951de70e4 100644 --- a/wz/Item.wz/Etc/0400.img.xml +++ b/wz/Item.wz/Etc/0400.img.xml @@ -4157,6 +4157,7 @@ + diff --git a/wz/Item.wz/Etc/0403.img.xml b/wz/Item.wz/Etc/0403.img.xml index 12e942053d..8de57c044b 100644 --- a/wz/Item.wz/Etc/0403.img.xml +++ b/wz/Item.wz/Etc/0403.img.xml @@ -2865,7 +2865,7 @@ - + diff --git a/wz/Map.wz/Map/Map6/680000110.img.xml b/wz/Map.wz/Map/Map6/680000110.img.xml index 1f63e90cca..5425edcbfe 100644 --- a/wz/Map.wz/Map/Map6/680000110.img.xml +++ b/wz/Map.wz/Map/Map6/680000110.img.xml @@ -1,311 +1,312 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + + + - - - - + + - - + + + + - - - - - - - - - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + - - + + - - + + + + - - - - + + + + - - - - + + + + - - - - + + - - + + + + - - - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -324,129 +325,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -454,64 +335,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + - - - - - - + + + + + + + + + + - - - - - - + + + + + + + + + + diff --git a/wz/Map.wz/Map/Map6/680000210.img.xml b/wz/Map.wz/Map/Map6/680000210.img.xml index a4f85f6e96..3a743cd167 100644 --- a/wz/Map.wz/Map/Map6/680000210.img.xml +++ b/wz/Map.wz/Map/Map6/680000210.img.xml @@ -1,431 +1,415 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - + + - - + + - - + + - - - - - - - - - + + + - - - + + + - + + + + + + + - - + + + + - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + - - + + + + - - - - + + + + - - - - + + - - + + - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -444,87 +428,91 @@ - + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + + + + + + + + + - + + + - + - - - - - - - - - + + + @@ -559,62 +547,62 @@ - - - - - - + + + + + + - - - - - - + + + + + + + + - - - - - - - - - - - - + - - - - - - + + + + + + + + + + - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + + diff --git a/wz/Map.wz/Map/Map6/680000401.img.xml b/wz/Map.wz/Map/Map6/680000401.img.xml index 2944b9af19..5e078597a5 100644 --- a/wz/Map.wz/Map/Map6/680000401.img.xml +++ b/wz/Map.wz/Map/Map6/680000401.img.xml @@ -54,7 +54,6 @@ - @@ -62,7 +61,6 @@ - @@ -70,7 +68,6 @@ - @@ -78,7 +75,6 @@ - @@ -86,7 +82,6 @@ - @@ -94,7 +89,6 @@ - @@ -102,7 +96,6 @@ - @@ -110,7 +103,6 @@ - @@ -118,7 +110,6 @@ - @@ -126,7 +117,6 @@ - @@ -134,7 +124,6 @@ - @@ -142,7 +131,6 @@ - @@ -150,7 +138,6 @@ - @@ -158,7 +145,6 @@ - @@ -166,7 +152,6 @@ -