From bb80441af07f0eb3869b8dac4b5f58165f79b90a Mon Sep 17 00:00:00 2001 From: ronancpl Date: Thu, 16 May 2019 02:14:54 -0300 Subject: [PATCH] Party Search + Conditional Buffs Revised skillbook drops. New drop chances are related to the holder's level and boss flag. Adjusted party bonus EXP gains. The level difference calculation now only takes into account party members that participated in the action. Implemented Party Search in the source. Refactored command classes initialization to take place when booting up the server. Implemented support for conditional buffs (e.g. card buffs that takes place only in certain areas). Implemented topological sorting when updating buffs to the player, this allows a better vision of buff streaks to the player (buff-applying the original way assumes stat override client-side, to circumvent that this algorithm makes up for the best-fit scenario). Fixed Arans not taking Dojo's attack speed buff properly. Fixed pets being improperly removed from the DB after performing certain inventory actions. --- .gitignore | 4 + Dockerfile | 9 + docker-launch.sh | 8 + docs/mychanges_ptbr.txt | 21 +- scripts/npc/1012112.js | 5 +- scripts/npc/1052013.js | 5 +- scripts/npc/2013000.js | 5 +- scripts/npc/2040034.js | 5 +- scripts/npc/2041023.js | 5 +- scripts/npc/2083001.js | 5 +- scripts/npc/2094000.js | 5 +- scripts/npc/2095000.js | 5 +- scripts/npc/2112003.js | 5 +- scripts/npc/2112004.js | 5 +- scripts/npc/2133000.js | 5 +- scripts/npc/9000037.js | 5 +- scripts/npc/9020000.js | 5 +- scripts/npc/9103001.js | 5 +- scripts/npc/9105004.js | 5 +- scripts/npc/9201048.js | 5 +- scripts/npc/9220018.js | 5 +- scripts/npc/9977777.js | 2 + sql/db_database.sql | 4 +- sql/db_drops.sql | 622 +- src/client/MapleBuffStat.java | 37 +- src/client/MapleCharacter.java | 405 +- src/client/MapleClient.java | 2 + src/client/MapleJob.java | 5 - .../command/commands/gm2/IdCommand.java | 22 +- .../command/commands/gm5/DebugCommand.java | 8 +- src/client/inventory/MaplePet.java | 59 + .../MapleInventoryManipulator.java | 2 +- src/constants/ServerConstants.java | 7 +- src/constants/skills/Legend.java | 2 +- src/net/PacketProcessor.java | 2 +- src/net/opcodes/RecvOpcode.java | 2 +- src/net/server/Server.java | 32 +- .../server/audit/locks/MonitoredLockType.java | 1 + .../handlers/DenyPartyRequestHandler.java | 11 +- .../handlers/EnterCashShopHandler.java | 1 + .../channel/handlers/EnterMTSHandler.java | 1 + .../handlers/GuildOperationHandler.java | 3 +- .../handlers/PartyOperationHandler.java | 1 + .../handlers/PartySearchRegisterHandler.java | 12 +- .../handlers/PartySearchStartHandler.java | 116 +- ...ler.java => PartySearchUpdateHandler.java} | 6 +- .../handlers/PlayerInteractionHandler.java | 2 + .../channel/handlers/TakeDamageHandler.java | 2 +- .../MaplePartySearchCoordinator.java | 366 + .../partysearch/PartySearchCharacter.java | 79 + .../partysearch/PartySearchEchelon.java | 86 + .../partysearch/PartySearchStorage.java | 258 + src/net/server/worker/PartySearchWorker.java | 38 + src/net/server/world/MapleParty.java | 10 +- src/net/server/world/World.java | 19 + src/server/MapleStatEffect.java | 122 +- src/server/life/MapleMonster.java | 19 +- src/server/maps/MapleHiredMerchant.java | 1 + src/server/maps/MapleMap.java | 10 +- src/server/partyquest/MonsterCarnival.java | 3 - src/tools/MaplePacketCreator.java | 75 +- .../dist/MapleMesoFetcher.jar | Bin 118727 -> 118723 bytes tools/MapleSkillbookChanceFetcher/build.xml | 73 + .../lib/meso_drop_data.sql | 447 + .../lib/mysql-connector-java-bin.jar | Bin 0 -> 703265 bytes .../lib/skillbook_drop_data.sql | 619 + tools/MapleSkillbookChanceFetcher/manifest.mf | 3 + .../nbproject/build-impl.xml | 1448 + .../nbproject/genfiles.properties | 8 + .../nbproject/project.properties | 77 + .../nbproject/project.xml | 16 + .../src/life/Element.java | 46 + .../src/life/ElementalEffectiveness.java | 41 + .../src/life/MapleLifeFactory.java | 240 + .../src/life/MapleMonsterStats.java | 336 + .../MapleSkillbookChanceFetcher.java | 159 + .../src/provider/MapleCanvas.java | 30 + .../src/provider/MapleData.java | 34 + .../src/provider/MapleDataDirectoryEntry.java | 34 + .../src/provider/MapleDataEntity.java | 31 + .../src/provider/MapleDataEntry.java | 33 + .../src/provider/MapleDataFileEntry.java | 30 + .../src/provider/MapleDataProvider.java | 27 + .../provider/MapleDataProviderFactory.java | 55 + .../src/provider/MapleDataTool.java | 145 + .../provider/wz/FileStoredPngMapleCanvas.java | 70 + .../src/provider/wz/ImgMapleSound.java | 39 + .../src/provider/wz/ListWZFile.java | 86 + .../src/provider/wz/MapleDataType.java | 26 + .../src/provider/wz/PNGMapleCanvas.java | 151 + .../src/provider/wz/WZDirectoryEntry.java | 68 + .../src/provider/wz/WZEntry.java | 61 + .../src/provider/wz/WZFile.java | 154 + .../src/provider/wz/WZFileEntry.java | 42 + .../src/provider/wz/WZIMGEntry.java | 118 + .../src/provider/wz/WZIMGFile.java | 227 + .../src/provider/wz/WZTool.java | 187 + .../src/provider/wz/XMLDomMapleData.java | 219 + .../src/provider/wz/XMLWZFile.java | 85 + .../src/tools/DatabaseConnection.java | 51 + .../src/tools/HexTool.java | 79 + .../src/tools/Pair.java | 121 + .../tools/data/input/ByteArrayByteStream.java | 72 + .../src/tools/data/input/ByteInputStream.java | 35 + .../input/GenericLittleEndianAccessor.java | 239 + .../GenericSeekableLittleEndianAccessor.java | 91 + .../data/input/InputStreamByteStream.java | 93 + .../data/input/LittleEndianAccessor.java | 45 + .../data/input/RandomAccessByteStream.java | 84 + .../input/SeekableInputStreamBytestream.java | 51 + .../input/SeekableLittleEndianAccessor.java | 27 + .../data/output/BAOSByteOutputStream.java | 56 + .../tools/data/output/ByteOutputStream.java | 38 + .../output/GenericLittleEndianWriter.java | 183 + .../tools/data/output/LittleEndianWriter.java | 114 + .../output/MaplePacketLittleEndianWriter.java | 73 + wz/Etc.wz/MapNeighbors.img.xml | 59793 ++++++++++++++++ wz/Quest.wz/QuestInfo.img.xml | 2 +- wz/Quest.wz/Say.img.xml | 2 +- wz/String.wz/Consume.img.xml | 4 - 120 files changed, 68917 insertions(+), 383 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-launch.sh rename src/net/server/channel/handlers/{PlayerUpdateHandler.java => PartySearchUpdateHandler.java} (85%) create mode 100644 src/net/server/coordinator/MaplePartySearchCoordinator.java create mode 100644 src/net/server/coordinator/partysearch/PartySearchCharacter.java create mode 100644 src/net/server/coordinator/partysearch/PartySearchEchelon.java create mode 100644 src/net/server/coordinator/partysearch/PartySearchStorage.java create mode 100644 src/net/server/worker/PartySearchWorker.java create mode 100644 tools/MapleSkillbookChanceFetcher/build.xml create mode 100644 tools/MapleSkillbookChanceFetcher/lib/meso_drop_data.sql create mode 100644 tools/MapleSkillbookChanceFetcher/lib/mysql-connector-java-bin.jar create mode 100644 tools/MapleSkillbookChanceFetcher/lib/skillbook_drop_data.sql create mode 100644 tools/MapleSkillbookChanceFetcher/manifest.mf create mode 100644 tools/MapleSkillbookChanceFetcher/nbproject/build-impl.xml create mode 100644 tools/MapleSkillbookChanceFetcher/nbproject/genfiles.properties create mode 100644 tools/MapleSkillbookChanceFetcher/nbproject/project.properties create mode 100644 tools/MapleSkillbookChanceFetcher/nbproject/project.xml create mode 100644 tools/MapleSkillbookChanceFetcher/src/life/Element.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/life/ElementalEffectiveness.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/life/MapleLifeFactory.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/life/MapleMonsterStats.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/mapleskillbookchancefetcher/MapleSkillbookChanceFetcher.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleCanvas.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleData.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleDataDirectoryEntry.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleDataEntity.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleDataEntry.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleDataFileEntry.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleDataProvider.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleDataProviderFactory.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/MapleDataTool.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/FileStoredPngMapleCanvas.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/ImgMapleSound.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/ListWZFile.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/MapleDataType.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/PNGMapleCanvas.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/WZDirectoryEntry.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/WZEntry.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/WZFile.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/WZFileEntry.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/WZIMGEntry.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/WZIMGFile.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/WZTool.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/XMLDomMapleData.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/provider/wz/XMLWZFile.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/DatabaseConnection.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/HexTool.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/Pair.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/ByteArrayByteStream.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/ByteInputStream.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/GenericLittleEndianAccessor.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/GenericSeekableLittleEndianAccessor.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/InputStreamByteStream.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/LittleEndianAccessor.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/RandomAccessByteStream.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/SeekableInputStreamBytestream.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/input/SeekableLittleEndianAccessor.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/output/BAOSByteOutputStream.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/output/ByteOutputStream.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/output/GenericLittleEndianWriter.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/output/LittleEndianWriter.java create mode 100644 tools/MapleSkillbookChanceFetcher/src/tools/data/output/MaplePacketLittleEndianWriter.java create mode 100644 wz/Etc.wz/MapNeighbors.img.xml diff --git a/.gitignore b/.gitignore index db23594d4c..b810f781b8 100644 --- a/.gitignore +++ b/.gitignore @@ -103,6 +103,10 @@ /tools/MapleReactorDropFetcher/dist/ /tools/MapleReactorDropFetcher/nbproject/ +/tools/MapleSkillbookChanceFetcher/build/ +/tools/MapleSkillbookChanceFetcher/dist/ +/tools/MapleSkillbookChanceFetcher/nbproject/ + /tools/MapleSkillbookStackUpdate/build/ /tools/MapleSkillbookStackUpdate/dist/ /tools/MapleSkillbookStackUpdate/nbproject/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..70178f3236 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +# Docker support, thanks to xinyifly + +FROM openjdk:7-alpine +RUN apk -U add tini +WORKDIR /mnt +COPY ./ ./ +RUN sh ./posix-compile.sh +EXPOSE 8484 7575 7576 7577 +CMD exec tini -- sh ./docker-launch.sh \ No newline at end of file diff --git a/docker-launch.sh b/docker-launch.sh new file mode 100644 index 0000000000..654a2c088c --- /dev/null +++ b/docker-launch.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +sed -i "s/HOST=.*/HOST=${HOST}/" configuration.ini +sed -i "s|URL=.*|URL=${URL}|" configuration.ini +sed -i "s/DB_USER=.*/DB_USER=${DB_USER}/" configuration.ini +sed -i "s/DB_PASS=.*/DB_PASS=${DB_PASS}/" configuration.ini + +exec sh ./posix-launch.sh \ No newline at end of file diff --git a/docs/mychanges_ptbr.txt b/docs/mychanges_ptbr.txt index 7166a46c81..5a1d1fa2ce 100644 --- a/docs/mychanges_ptbr.txt +++ b/docs/mychanges_ptbr.txt @@ -1840,6 +1840,7 @@ Revisado refatoração recente em acesso a valores de stats de jogadores levando 24 - 26 Abril 2019, Ajustado levemente taxa de respawn de mobs quando não se está usando a flag de respawn completo. Ajustado ganhos de stats de ataque ao passar de nível weapons, ganha-se menos do stat que não é a afinidade (watk/matk). +Implementado sistema de Party Search no fonte. Líderes de party são servidos em FIFO, buscando melhores jogadores na faixa escolhida sempre que possível. Thread separada lida com organização e convites automatizados para jogadores. Corrigido drops de mesos sendo bloqueados para drops rápidos de mesos, indevidamente dificultando jogabilidade para certas classes. Corrigido caso de XML parser em MapleSkillBookInformationParser não lidando com terminadores "/>" corretamente. @@ -1851,5 +1852,23 @@ Adicionado server flag para checagem de IP's ao logar jogadores. Corrigido mobskills não sendo devidamente aplicados devido a um deslize anterior que tentaria aplicar indevidamente 2x "uso de skill" (uma das vezes deveria ser somente checagem de rotina). Corrigido puppets de arqueiros interrompendo mob statuses para o dono ao serem lançados em campo. +03 Maio 2019, +Revisado chance de drops de skillbooks. Chance de drops agora está relacionado ao nível do mob em conjunto com disponibilidade do mesmo (em bosses chances são melhores de sair o item). +Ajustado ganhos de party bonus EXP. Penalidade por diferença de nível agora somente leva em conta membros de equipe que efetivamente participaram da ação. +Ajustado as mecânicas da Party Search recentemente implementadas, de forma que se comporte bem em jogo. +Ajustado inicialização do sistema de comandos, agora atuando na inicialização do server, evitando bottleneck de primeira instanciação. + 04 Maio 2019, -Corrigido visão de mob statuses sendo interrompido para o novo controlador ao realizar troca de controladores. \ No newline at end of file +Corrigido visão de mob statuses sendo interrompido para o novo controlador ao realizar troca de controladores. + +07 - 08 Maio 2019, +Adicionado ao sistema de buffs suporte para condicionais de atuação (e.g. buff tendo efeito ativo dependendo do mapa de onde o jogador se encontra). +Implementado ordenação topológica na atualização de buffs. Sistema aponta um "melhor caminho" na atualização dos buffs, desta forma mostrando visualmente ao jogador certas combinações de buffs aplicados que anteriormente falhava em mostrar (e.g. Congrats from GM & Chocolate Wafer). +Corrigido Arans não recebendo corretamente buff de velocidade de ataque do Dojo. +Implementado convite de Party Search sensível ao mapa onde os jogadores líder e convidado se encontram. O sistema somente detecta para convites jogadores em mapas "próximos". + +12 Maio 2019, +Corrigido pets sendo indevidamente removido da DB ao realizar operações de retirada do inventário. + +15 Maio 2019, +Revisado, via testes unitários, robustez dos registros/buscas de jogadores e fluidez do sistema de Party Search. \ No newline at end of file diff --git a/scripts/npc/1012112.js b/scripts/npc/1012112.js index ca0f753f7e..a8be1e38be 100644 --- a/scripts/npc/1012112.js +++ b/scripts/npc/1012112.js @@ -58,7 +58,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nI'm Tory. Inside here is a beautiful hill where the primrose blooms. There's a tiger that lives in the hill, Growlie, and he seems to be looking for something to eat. Would you like to head over to the hill of primrose and join forces with your party members to help Growlie out?#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.\r\n#L3#I would like to redeem an instance hat."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nI'm Tory. Inside here is a beautiful hill where the primrose blooms. There's a tiger that lives in the hill, Growlie, and he seems to be looking for something to eat. Would you like to head over to the hill of primrose and join forces with your party members to help Growlie out?#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details.\r\n#L3#I would like to redeem an instance hat."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -81,7 +81,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else if (selection == 2) { cm.sendOk("#e#b#k#n\r\nCollect primrose seeds from the flowers at the bottom part of the map and drop them by the platforms above the stage. Primrose seed color must match to grow the seeds, so test until you find the correct combination. When all the seeds have been planted, that is, starting second part of the mission, scout the Moon Bunny while it prepares Rice Cakes for the hungry Growlie. Once Growlie becomes satisfied, your mission is complete."); diff --git a/scripts/npc/1052013.js b/scripts/npc/1052013.js index c6a83ff96b..e521c4ac44 100644 --- a/scripts/npc/1052013.js +++ b/scripts/npc/1052013.js @@ -102,7 +102,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nThe #p1052014# operates differently than the common ones. They do not use mesos or gachapon tickets, rather #rERASERS#k, that can be obtained by completing the missions held on the Premium Road. To go there, you must find partners and attend to a Party Quest. When teamed up and ready, have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nThe #p1052014# operates differently than the common ones. They do not use mesos or gachapon tickets, rather #rERASERS#k, that can be obtained by completing the missions held on the Premium Road. To go there, you must find partners and attend to a Party Quest. When teamed up and ready, have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 2) { if (selection == 0) { if (cm.getParty() == null) { @@ -125,7 +125,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nOn the maps ahead, you will face many common-leveled mobs to face on. Grind all the required coupons from them and give it to me. All members will then receive a eraser, corresponding with the level faced. Insert on the machine #bmany of the same eraser or multiple different ones#k to have a better chance on greater prizes."); diff --git a/scripts/npc/2013000.js b/scripts/npc/2013000.js index 1d58bd6777..415f0f5137 100644 --- a/scripts/npc/2013000.js +++ b/scripts/npc/2013000.js @@ -58,7 +58,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nWould you like to assemble or join a team to solve the puzzles of the #bTower of Goddess#k? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.\r\n#L3#I would like to reclaim a prize."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nWould you like to assemble or join a team to solve the puzzles of the #bTower of Goddess#k? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details.\r\n#L3#I would like to reclaim a prize."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -81,7 +81,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else if (selection == 2) { cm.sendOk("#e#b#k#n\r\nOur goddess has been missing since some time ago, rumor has it She has been seen last time inside the Tower of Goddess. Furthermore, our sanctuary has been seized by the overwhelming forces of the pixies, those beings that are recently wandering at the outskirts of Orbis. Their leader, Papa Pixie, currently holds the throne and may know Her whereabouts, so we urge to find a composition of brave heroes to charge into and claim back our sanctuary and rescue Her. If your team is able to be a composite of every job niche available (Warrior, Magician, Bowman, Thief and Pirate), you guys will receive my blessings to aid you in battle. Will you aid us?\r\n"); diff --git a/scripts/npc/2040034.js b/scripts/npc/2040034.js index 09e8a01d06..5e7f0b5def 100644 --- a/scripts/npc/2040034.js +++ b/scripts/npc/2040034.js @@ -38,7 +38,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nYou can't go any higher because of the extremely dangerous creatures above. Would you like to collaborate with party members to complete the quest? If so, please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nYou can't go any higher because of the extremely dangerous creatures above. Would you like to collaborate with party members to complete the quest? If so, please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -61,7 +61,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nA Dimensional Schism has appeared in #b#m220000000#!#k We desperately need brave adventurers who can defeat the intruding monsters. Please, party with some dependable allies to save #m220000000#! You must pass through various stages by defeating monsters and solving quizzes, and ultimately defeat #r#o9300012##k."); diff --git a/scripts/npc/2041023.js b/scripts/npc/2041023.js index 3a90542a8c..4c664b85ae 100644 --- a/scripts/npc/2041023.js +++ b/scripts/npc/2041023.js @@ -66,7 +66,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nYou are looking for Elemental Thanatos, right? If you team up with another mage, with the opposite elemental affinity as yours, you guys will be able to overcome them. As a leader, talk to me when you feel ready to go.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nYou are looking for Elemental Thanatos, right? If you team up with another mage, with the opposite elemental affinity as yours, you guys will be able to overcome them. As a leader, talk to me when you feel ready to go.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -89,7 +89,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\n Team up with another mage with #rdifferent elemental affinity#k before entering the stage. This team aspect is crucial to overcome the elementals inside."); diff --git a/scripts/npc/2083001.js b/scripts/npc/2083001.js index f7d3e7e96c..0aa28a81d2 100644 --- a/scripts/npc/2083001.js +++ b/scripts/npc/2083001.js @@ -64,7 +64,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nThis is the path to Horntail's lair. If you want to face him, you and your team shall be tested on the trial grounds ahead.#b\r\n#L0#Let us pass to the trial grounds.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nThis is the path to Horntail's lair. If you want to face him, you and your team shall be tested on the trial grounds ahead.#b\r\n#L0#Let us pass to the trial grounds.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -87,7 +87,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if(selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nAs the gatekeeper of Horntail's lair, I will grant access #bjust to those worthy#k of his presence. Even for those people, the path inside is that of a maze, full of branches and trials. However, those #radept at fighting squad bosses#k have a better chance to stand to our leader, although those #rof our kind#k have a shabby chance as well."); diff --git a/scripts/npc/2094000.js b/scripts/npc/2094000.js index 7dcd4ffaba..0a35405ade 100644 --- a/scripts/npc/2094000.js +++ b/scripts/npc/2094000.js @@ -57,7 +57,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nHelp! My son has been kidnapped and is bound on the hands of the fearful #rLord Pirate#k. I need your help... Would you please assemble or join a team to save him? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nHelp! My son has been kidnapped and is bound on the hands of the fearful #rLord Pirate#k. I need your help... Would you please assemble or join a team to save him? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -80,7 +80,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nIn this PQ, your mission is to progressively make your way through the ship, taking on all pirates and baddies in your path. Reaching the #rLord Pirate#k, depending on how many great chests you opened on the stages before, the boss will reveal himself even more powerful, so stay alert. Said chests, if opened, gives many extra rewards to your crew, it's worth a shot! Good luck."); diff --git a/scripts/npc/2095000.js b/scripts/npc/2095000.js index 8d0366bd4b..faafa64a3c 100644 --- a/scripts/npc/2095000.js +++ b/scripts/npc/2095000.js @@ -54,7 +54,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nAh, #r#p1095000##k sent you here? Is she worried about me? ... I'm terribly sorry to hear that, but I can't really go back just yet, some monsters are under the Black Mage's influence, and it's up to me to liberate them! ... It seems you're not going to accept that either, huh? Would you like to collaborate with party members to help me? If so, please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nAh, #r#p1095000##k sent you here? Is she worried about me? ... I'm terribly sorry to hear that, but I can't really go back just yet, some monsters are under the Black Mage's influence, and it's up to me to liberate them! ... It seems you're not going to accept that either, huh? Would you like to collaborate with party members to help me? If so, please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else { cm.sendYesNo("The mission succeeded, thanks for escorting me! I can lead you to #b#m120000104##k, are you ready?"); } @@ -81,7 +81,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\n A ambush is under way! I must stand on the field for around 6 minutes to complete the liberation, please protect me during that time so that my mission is completed."); diff --git a/scripts/npc/2112003.js b/scripts/npc/2112003.js index 6c2872fc07..bbf907d813 100644 --- a/scripts/npc/2112003.js +++ b/scripts/npc/2112003.js @@ -65,7 +65,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nMy beloved Romeo has been kidnapped! Although he is Zenumist's, I can't stand by and just see him suffer just because of this foolish clash. I need you and your colleagues help to save him! Please, help us!! Please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nMy beloved Romeo has been kidnapped! Although he is Zenumist's, I can't stand by and just see him suffer just because of this foolish clash. I need you and your colleagues help to save him! Please, help us!! Please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -88,7 +88,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nNot long ago, a scientist named Yulete has been banished from this town because of his researches of combined alchemies of Alcadno's and Zenumist's. Because of the immensurable amount of power coming from this combination, it is forbidden by law to study both. Yet, he ignored this law and got hands in both researches. As a result, he has been exiled.\r\nHe is now retaliating, already took my beloved one and his next target is me, as we are big pictures of Magatia, successors of both societies. But I'm not afraid. We must recover him at all costs!\r\n"); diff --git a/scripts/npc/2112004.js b/scripts/npc/2112004.js index ef66127ef4..02b02a895a 100644 --- a/scripts/npc/2112004.js +++ b/scripts/npc/2112004.js @@ -65,7 +65,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nMy beloved Juliet has been kidnapped! Although she is Alcadno's, I can't stand by and just see her suffer just because of this foolish clash. I need you and your colleagues help to save her! Please, help us!! Please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nMy beloved Juliet has been kidnapped! Although she is Alcadno's, I can't stand by and just see her suffer just because of this foolish clash. I need you and your colleagues help to save her! Please, help us!! Please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -88,7 +88,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nNot long ago, a scientist named Yulete has been banished from this town because of his researches of combined alchemies of Alcadno's and Zenumist's. Because of the immensurable amount of power coming from this combination, it is forbidden by law to study both. Yet, he ignored this law and got hands in both researches. As a result, he has been exiled.\r\nHe is now retaliating, already took my beloved one and his next target is me, as we are big pictures of Magatia, successors of both societies. But I'm not afraid. We must recover her at all costs!\r\n"); diff --git a/scripts/npc/2133000.js b/scripts/npc/2133000.js index 918d61cd07..68ec447716 100644 --- a/scripts/npc/2133000.js +++ b/scripts/npc/2133000.js @@ -57,7 +57,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nWould you like to assemble or join a team to solve the puzzles of the #bForest of Poison Haze#k? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details.\r\n#L3#I would like to reclaim a prize."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nWould you like to assemble or join a team to solve the puzzles of the #bForest of Poison Haze#k? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details.\r\n#L3#I would like to reclaim a prize."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -80,7 +80,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else if (selection == 2) { cm.sendOk("#e#b#k#n\r\nIn this PQ, your mission is to progressively make your way through the woods, taking on all baddies in your path, solving many puzzles you encounter and rallying yourselves to take the best of teamwork to overcome time limits and powerful creatures. Clearing the final boss, your team have a chance to obtain a marble that, #bwhen dropped by the fountain at the exit map#k, will guarantee the team extra prizes. Good luck."); diff --git a/scripts/npc/9000037.js b/scripts/npc/9000037.js index 880fef9c34..7fa0cbab9c 100644 --- a/scripts/npc/9000037.js +++ b/scripts/npc/9000037.js @@ -122,7 +122,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nWould you like to collaborate with party members to complete the expedition, or are you brave enough to take it on all by yourself? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nWould you like to collaborate with party members to complete the expedition, or are you brave enough to take it on all by yourself? Have your #bparty leader#k talk to me or make yourself a party.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } } else if (status == 1) { if(state == 3) { @@ -171,7 +171,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nBrave adventurers from all over the places travels here to test their skills and abilities in combat, as they face even more powerful bosses from MapleStory. Join forces with fellow adventurers or face all the burden by yourself and receive all the glory, it is up to you. REWARDS are given accordingly to how far the adventurers reach and extra prizes may are given to a random member of the party, all attributed at the end of an expedition.\r\n\r\nThis instance also supports #bmultiple lobbies for matchmaking several ranges of team levels#k at once: team up with players with lower level if you want better chances to swiftly set up a boss rush for your team."); diff --git a/scripts/npc/9020000.js b/scripts/npc/9020000.js index d29c90da81..a5e8aa3707 100644 --- a/scripts/npc/9020000.js +++ b/scripts/npc/9020000.js @@ -62,7 +62,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nHow about you and your party members collectively beating a quest? Here you'll find obstacles and problems where you won't be able to beat it without great teamwork. If you want to try it, please tell the #bleader of your party#k to talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nHow about you and your party members collectively beating a quest? Here you'll find obstacles and problems where you won't be able to beat it without great teamwork. If you want to try it, please tell the #bleader of your party#k to talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } } else if (status == 1) { if(state == 1) { @@ -91,7 +91,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nYour party must pass through many obstacles and puzzles while traversing the sub-objectives of this Party Quest. Coordinate with your team in order to further advance and defeat the final boss and collect the dropped item in order to access the rewards and bonus stage."); diff --git a/scripts/npc/9103001.js b/scripts/npc/9103001.js index f89c260448..33a156f98b 100644 --- a/scripts/npc/9103001.js +++ b/scripts/npc/9103001.js @@ -61,7 +61,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nThis is the entrance to the Ludibrium Maze. Enjoy!\r\n#b#L0#Enter the Lubidrium Maze#l\r\n#L1#I want to find party members.\r\n#L2#What is the Ludibrium Maze?"); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nThis is the entrance to the Ludibrium Maze. Enjoy!\r\n#b#L0#Enter the Lubidrium Maze#l\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#What is the Ludibrium Maze?"); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -84,7 +84,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nThis maze is available to all parties of 3 or more members, and all participants must be between Level 51~70. You will be given 15 minutes to escape the maze. At the center of the room, there will be a Warp Portal set up to transport you to a different room. These portals will transport you to other rooms where you'll (hopefully) find the exit. Pietri will be waiting at the exit, so all you need to do is talk to him, and he'll let you out. Break all the boxes located in the room, and a monster inside the box will drop a coupon. After escaping the maze, you will be awarded with EXP based on the coupons collected. Additionally, if the leader possesses at least 30 coupons, then a special gift will be presented to the party. If you cannot escape the maze within the allotted 15 minutes, you will receive 0 EXP for your time in the maze. If you decide to log off while you're in the maze, you will be automatically kicked out of the maze. Even if the members of the party leave in the middle of the quest, the remaining members will be able to continue on with the quest, except if they run out of the minimum amount of party members in the maze. If you are in critical condition and unable to hunt down the monsters, you may avoid them to save yourself. Your fighting spirit and wits will be tested! Good luck!"); diff --git a/scripts/npc/9105004.js b/scripts/npc/9105004.js index 8c899cdb06..eb128a35c7 100644 --- a/scripts/npc/9105004.js +++ b/scripts/npc/9105004.js @@ -72,7 +72,7 @@ function recruitPqAction(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nHow about you and your party members collectively beating a quest? Here you'll find obstacles and problems where you won't be able to beat it without great teamwork. If you want to try it, please tell the #bleader of your party#k to talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nHow about you and your party members collectively beating a quest? Here you'll find obstacles and problems where you won't be able to beat it without great teamwork. If you want to try it, please tell the #bleader of your party#k to talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -95,7 +95,8 @@ function recruitPqAction(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\n\r\nJoin in with your team to build up the Snowman that will protect Happyville from the misdoings of Scrooge. While inside, work out with your team to protect it at any means necessary while collecting Snow Vigor that will help on the build up of the Snowman."); diff --git a/scripts/npc/9201048.js b/scripts/npc/9201048.js index d1b674291e..15ba31bb15 100644 --- a/scripts/npc/9201048.js +++ b/scripts/npc/9201048.js @@ -57,7 +57,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nIf you're brave enough to attempt the Amorian Challenge, join with others like you and let your #bparty leader#k talk to me. If a party filled with whole married couples register to the challenge, better prizes awaits there.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nIf you're brave enough to attempt the Amorian Challenge, join with others like you and let your #bparty leader#k talk to me. If a party filled with whole married couples register to the challenge, better prizes awaits there.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -80,7 +80,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nI am Amos, hoster of the well-round famed Amorian Challenge. The instance consist of many team puzzles, where cooperation is the fundamental key for progress. Team up with other players to attempt for the bonus stage, where many goodies can be obtained at the end of the instance. If an all-couple party is formed, they can get even better prizes on the extra bonus stage."); diff --git a/scripts/npc/9220018.js b/scripts/npc/9220018.js index b9fa2c2d3b..fb9b631601 100644 --- a/scripts/npc/9220018.js +++ b/scripts/npc/9220018.js @@ -56,7 +56,7 @@ function action(mode, type, selection) { return; } - cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nYou can't go any further because of the extremely dangerous creatures lying ahead. Would you like to collaborate with party members to complete the quest? If so, please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I want to find party members.\r\n#L2#I would like to hear more details."); + cm.sendSimple("#e#b\r\n#k#n" + em.getProperty("party") + "\r\n\r\nYou can't go any further because of the extremely dangerous creatures lying ahead. Would you like to collaborate with party members to complete the quest? If so, please have your #bparty leader#k talk to me.#b\r\n#L0#I want to participate in the party quest.\r\n#L1#I would like to " + (cm.getPlayer().isRecvPartySearchInviteEnabled() ? "disable" : "enable") + " Party Search.\r\n#L2#I would like to hear more details."); } else if (status == 1) { if (selection == 0) { if (cm.getParty() == null) { @@ -79,7 +79,8 @@ function action(mode, type, selection) { cm.dispose(); } } else if (selection == 1) { - cm.sendOk("Try using a Super Megaphone or asking your buddies or guild to join!"); + var psState = cm.getPlayer().toggleRecvPartySearchInvite(); + cm.sendOk("Your Party Search status is now: #b" + (psState ? "enabled" : "disabled") + "#k. Talk to me whenever you want to change it back."); cm.dispose(); } else { cm.sendOk("#e#b#k#n\r\nMV appeared once more, disrupting the welfare of the people of New Leaf City. Join forces with other maplers to fend off this sudden attack. After defeating MV and his minions, fetch your prizes at MV's treasure room."); diff --git a/scripts/npc/9977777.js b/scripts/npc/9977777.js index ab64b59dad..35cd83b79b 100644 --- a/scripts/npc/9977777.js +++ b/scripts/npc/9977777.js @@ -75,6 +75,7 @@ function writeFeatureTab_Quests() { } function writeFeatureTab_PlayerSocialNetwork() { + addFeature("Party Search fully functional."); addFeature("Guild and Alliance system fully functional."); addFeature("Guild contract system held in Guild Headquarters."); addFeature("Party for novices-only."); @@ -180,6 +181,7 @@ function writeFeatureTab_Playerpotentials() { addFeature("Character slots per world/server-wide."); addFeature("Optional cash shop inventory separated by classes."); addFeature("Players manage 'same-typed' invites exclusively."); + addFeature("Player buffs with conditional active effects."); } function writeFeatureTab_Serverpotentials() { diff --git a/sql/db_database.sql b/sql/db_database.sql index 888edc4d4b..05b2fdae1d 100644 --- a/sql/db_database.sql +++ b/sql/db_database.sql @@ -184,7 +184,7 @@ CREATE TABLE IF NOT EXISTS `characters` ( `dataString` varchar(64) NOT NULL DEFAULT '', `lastLogoutTime` timestamp NOT NULL DEFAULT '2015-01-01 05:00:00', `lastExpGainTime` timestamp NOT NULL DEFAULT '2015-01-01 05:00:00', - `pendantExp` tinyint(1) NOT NULL DEFAULT '0', + `partySearch` tinyint(1) NOT NULL DEFAULT '0', `jailexpire` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `accountid` (`accountid`), @@ -12750,7 +12750,7 @@ INSERT IGNORE INTO `temp_data` (`dropperid`, `itemid`, `minimum_quantity`, `maxi (8150200, 2290135, 1, 1, 0, 1500), (8800002, 2280013, 1, 1, 0, 45000), (8140600, 2290132, 1, 1, 0, 1500), -(851000, 2290132, 1, 1, 0, 15000), +(8510000, 2290132, 1, 1, 0, 15000), (8520000, 2290132, 1, 1, 0, 15000), (8810018, 2290133, 1, 1, 0, 45000), (8200008, 2290133, 1, 1, 0, 1500), diff --git a/sql/db_drops.sql b/sql/db_drops.sql index 910413bf43..67d0abe1b9 100644 --- a/sql/db_drops.sql +++ b/sql/db_drops.sql @@ -17212,7 +17212,7 @@ USE `heavenms`; (9400014, 2040719, 1, 4, 0, 10000), (9400014, 1102030, 1, 1, 0, 40000), (9400014, 1032027, 1, 1, 0, 40000), -(9400014, 1402037, 1, 1, 0, 40000), +(9400014, 1402037, 1, 1, 0, 40000), # thanks Feras & Kitty for noticing issues with Stonetooth Sword layout (9400014, 1372011, 1, 1, 0, 40000), (8200008, 4000453, 1, 1, 0, 200000), (8200008, 4000459, 1, 1, 0, 200000), @@ -23923,4 +23923,622 @@ SET minimum_quantity = CASE ELSE maximum_quantity END ; - UPDATE drop_data SET `chance`=1287 WHERE `chance`=1500; \ No newline at end of file + UPDATE drop_data SET `chance`=1287 WHERE `chance`=1500; + + # MapleSkillbookChanceFetcher! Tuning up some skillbook drop chances in order to fit their dropper's availability (whether's a boss or not) and level. + REPLACE INTO drop_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) VALUES +(851000, 2290132, 1, 1, 0, 3861), +(7090000, 2290087, 1, 1, 0, 40000), +(8090000, 2290045, 1, 1, 0, 40000), +(8140103, 2290044, 1, 1, 0, 2000), +(8140511, 2290009, 1, 1, 0, 2000), +(8140511, 2290050, 1, 1, 0, 2000), +(8140511, 2290083, 1, 1, 0, 2000), +(8140511, 2290134, 1, 1, 0, 6000), +(8140512, 2290013, 1, 1, 0, 2000), +(8140512, 2290067, 1, 1, 0, 2000), +(8140512, 2290082, 1, 1, 0, 2000), +(8140512, 2290097, 1, 1, 0, 2000), +(8140512, 2290116, 1, 1, 0, 2000), +(8140512, 2290131, 1, 1, 0, 6000), +(8140600, 2290132, 1, 1, 0, 6000), +(8140700, 2290106, 1, 1, 0, 2000), +(8140700, 2290126, 1, 1, 0, 6000), +(8140701, 2290122, 1, 1, 0, 2000), +(8140702, 2290112, 1, 1, 0, 2000), +(8140703, 2290088, 1, 1, 0, 2000), +(8140703, 2290099, 1, 1, 0, 2000), +(8141000, 2290082, 1, 1, 0, 2000), +(8141000, 2290097, 1, 1, 0, 2000), +(8141100, 2280005, 1, 1, 0, 2000), +(8141300, 2290098, 1, 1, 0, 2000), +(8142100, 2290032, 1, 1, 0, 2000), +(8142100, 2290082, 1, 1, 0, 2000), +(8142100, 2290114, 1, 1, 0, 2000), +(8143000, 2280004, 1, 1, 0, 2000), +(8150000, 2280013, 1, 1, 0, 120000), +(8150000, 2290070, 1, 1, 0, 40000), +(8150000, 2290091, 1, 1, 0, 40000), +(8150100, 2290042, 1, 1, 0, 2000), +(8150100, 2290053, 1, 1, 0, 2000), +(8150100, 2290073, 1, 1, 0, 2000), +(8150100, 2290102, 1, 1, 0, 2000), +(8150100, 2290118, 1, 1, 0, 2000), +(8150101, 2290017, 1, 1, 0, 2000), +(8150101, 2290021, 1, 1, 0, 2000), +(8150101, 2290035, 1, 1, 0, 2000), +(8150101, 2290042, 1, 1, 0, 2000), +(8150101, 2290052, 1, 1, 0, 2000), +(8150101, 2290102, 1, 1, 0, 2000), +(8150200, 2290024, 1, 1, 0, 2000), +(8150200, 2290100, 1, 1, 0, 2000), +(8150200, 2290135, 1, 1, 0, 6000), +(8150201, 2290004, 1, 1, 0, 2000), +(8150201, 2290006, 1, 1, 0, 2000), +(8150201, 2290024, 1, 1, 0, 2000), +(8150201, 2290036, 1, 1, 0, 2000), +(8150201, 2290056, 1, 1, 0, 2000), +(8150201, 2290072, 1, 1, 0, 2000), +(8150201, 2290078, 1, 1, 0, 2000), +(8150201, 2290117, 1, 1, 0, 2000), +(8150300, 2290003, 1, 1, 0, 2000), +(8150300, 2290033, 1, 1, 0, 2000), +(8150300, 2290111, 1, 1, 0, 2000), +(8150300, 2290120, 1, 1, 0, 2000), +(8150300, 2290127, 1, 1, 0, 6000), +(8150301, 2290023, 1, 1, 0, 2000), +(8150301, 2290029, 1, 1, 0, 2000), +(8150301, 2290101, 1, 1, 0, 2000), +(8150301, 2290107, 1, 1, 0, 2000), +(8150302, 2290010, 1, 1, 0, 2000), +(8150302, 2290019, 1, 1, 0, 2000), +(8150302, 2290026, 1, 1, 0, 2000), +(8150302, 2290076, 1, 1, 0, 2000), +(8150302, 2290085, 1, 1, 0, 2000), +(8150302, 2290096, 1, 1, 0, 2000), +(8150302, 2290113, 1, 1, 0, 2000), +(8150302, 2290119, 1, 1, 0, 2000), +(8150302, 2290128, 1, 1, 0, 6000), +(8160000, 2290017, 1, 1, 0, 2000), +(8160000, 2290045, 1, 1, 0, 2000), +(8160000, 2290065, 1, 1, 0, 2000), +(8160000, 2290067, 1, 1, 0, 2000), +(8160000, 2290081, 1, 1, 0, 2000), +(8170000, 2290012, 1, 1, 0, 2000), +(8170000, 2290086, 1, 1, 0, 2000), +(8170000, 2290087, 1, 1, 0, 2000), +(8170000, 2290134, 1, 1, 0, 6000), +(8180000, 2290002, 1, 1, 0, 40000), +(8180000, 2290003, 1, 1, 0, 40000), +(8180000, 2290014, 1, 1, 0, 40000), +(8180000, 2290015, 1, 1, 0, 40000), +(8180000, 2290030, 1, 1, 0, 40000), +(8180000, 2290035, 1, 1, 0, 40000), +(8180000, 2290036, 1, 1, 0, 40000), +(8180000, 2290063, 1, 1, 0, 40000), +(8180000, 2290080, 1, 1, 0, 40000), +(8180000, 2290098, 1, 1, 0, 40000), +(8180000, 2290101, 1, 1, 0, 40000), +(8180000, 2290117, 1, 1, 0, 40000), +(8180000, 2290130, 1, 1, 0, 120000), +(8180001, 2290018, 1, 1, 0, 40000), +(8180001, 2290019, 1, 1, 0, 40000), +(8180001, 2290032, 1, 1, 0, 40000), +(8180001, 2290042, 1, 1, 0, 40000), +(8180001, 2290058, 1, 1, 0, 40000), +(8180001, 2290059, 1, 1, 0, 40000), +(8180001, 2290068, 1, 1, 0, 40000), +(8180001, 2290069, 1, 1, 0, 40000), +(8180001, 2290072, 1, 1, 0, 40000), +(8180001, 2290092, 1, 1, 0, 40000), +(8180001, 2290099, 1, 1, 0, 40000), +(8180001, 2290100, 1, 1, 0, 40000), +(8180001, 2290102, 1, 1, 0, 40000), +(8180001, 2290119, 1, 1, 0, 40000), +(8180001, 2290128, 1, 1, 0, 120000), +(8190000, 2280016, 1, 1, 0, 6000), +(8190000, 2290030, 1, 1, 0, 2000), +(8190000, 2290044, 1, 1, 0, 2000), +(8190000, 2290054, 1, 1, 0, 2000), +(8190000, 2290066, 1, 1, 0, 2000), +(8190000, 2290075, 1, 1, 0, 2000), +(8190000, 2290092, 1, 1, 0, 2000), +(8190000, 2290103, 1, 1, 0, 2000), +(8190002, 2290000, 1, 1, 0, 2000), +(8190002, 2290008, 1, 1, 0, 2000), +(8190002, 2290018, 1, 1, 0, 2000), +(8190002, 2290038, 1, 1, 0, 2000), +(8190002, 2290060, 1, 1, 0, 2000), +(8190002, 2290080, 1, 1, 0, 2000), +(8190002, 2290124, 1, 1, 0, 2000), +(8190003, 2280013, 1, 1, 0, 6000), +(8190003, 2290007, 1, 1, 0, 2000), +(8190003, 2290012, 1, 1, 0, 2000), +(8190003, 2290014, 1, 1, 0, 2000), +(8190003, 2290033, 1, 1, 0, 2000), +(8190003, 2290045, 1, 1, 0, 2000), +(8190003, 2290050, 1, 1, 0, 2000), +(8190003, 2290055, 1, 1, 0, 2000), +(8190003, 2290062, 1, 1, 0, 2000), +(8190003, 2290063, 1, 1, 0, 2000), +(8190003, 2290070, 1, 1, 0, 2000), +(8190003, 2290086, 1, 1, 0, 2000), +(8190003, 2290108, 1, 1, 0, 2000), +(8190003, 2290133, 1, 1, 0, 6000), +(8190004, 2290002, 1, 1, 0, 2000), +(8190004, 2290009, 1, 1, 0, 2000), +(8190004, 2290021, 1, 1, 0, 2000), +(8190004, 2290034, 1, 1, 0, 2000), +(8190004, 2290041, 1, 1, 0, 2000), +(8190004, 2290052, 1, 1, 0, 2000), +(8190004, 2290053, 1, 1, 0, 2000), +(8190004, 2290058, 1, 1, 0, 2000), +(8190004, 2290068, 1, 1, 0, 2000), +(8190004, 2290071, 1, 1, 0, 2000), +(8190004, 2290073, 1, 1, 0, 2000), +(8190004, 2290090, 1, 1, 0, 2000), +(8190004, 2290112, 1, 1, 0, 2000), +(8190004, 2290121, 1, 1, 0, 2000), +(8190004, 2290130, 1, 1, 0, 6000), +(8190005, 2290000, 1, 1, 0, 2000), +(8190005, 2290008, 1, 1, 0, 2000), +(8190005, 2290018, 1, 1, 0, 2000), +(8190005, 2290038, 1, 1, 0, 2000), +(8190005, 2290060, 1, 1, 0, 2000), +(8190005, 2290080, 1, 1, 0, 2000), +(8190005, 2290124, 1, 1, 0, 2000), +(8200000, 2290005, 1, 1, 0, 2000), +(8200000, 2290011, 1, 1, 0, 2000), +(8200000, 2290114, 1, 1, 0, 2000), +(8200001, 2280015, 1, 1, 0, 6000), +(8200001, 2290050, 1, 1, 0, 2000), +(8200001, 2290059, 1, 1, 0, 2000), +(8200001, 2290065, 1, 1, 0, 2000), +(8200001, 2290129, 1, 1, 0, 6000), +(8200002, 2290062, 1, 1, 0, 2000), +(8200002, 2290066, 1, 1, 0, 2000), +(8200002, 2290070, 1, 1, 0, 2000), +(8200002, 2290131, 1, 1, 0, 6000), +(8200002, 2290139, 1, 1, 0, 6000), +(8200003, 2290012, 1, 1, 0, 2000), +(8200003, 2290056, 1, 1, 0, 2000), +(8200003, 2290071, 1, 1, 0, 2000), +(8200003, 2290101, 1, 1, 0, 2000), +(8200003, 2290136, 1, 1, 0, 6000), +(8200004, 2280016, 1, 1, 0, 6000), +(8200004, 2290069, 1, 1, 0, 2000), +(8200004, 2290072, 1, 1, 0, 2000), +(8200004, 2290073, 1, 1, 0, 2000), +(8200004, 2290127, 1, 1, 0, 6000), +(8200004, 2290134, 1, 1, 0, 6000), +(8200005, 2280014, 1, 1, 0, 6000), +(8200005, 2290078, 1, 1, 0, 2000), +(8200005, 2290079, 1, 1, 0, 2000), +(8200005, 2290095, 1, 1, 0, 2000), +(8200006, 2290003, 1, 1, 0, 2000), +(8200006, 2290064, 1, 1, 0, 2000), +(8200006, 2290076, 1, 1, 0, 2000), +(8200006, 2290077, 1, 1, 0, 2000), +(8200006, 2290129, 1, 1, 0, 6000), +(8200006, 2290138, 1, 1, 0, 6000), +(8200007, 2290006, 1, 1, 0, 2000), +(8200007, 2290007, 1, 1, 0, 2000), +(8200007, 2290011, 1, 1, 0, 2000), +(8200007, 2290016, 1, 1, 0, 2000), +(8200007, 2290125, 1, 1, 0, 2000), +(8200007, 2290136, 1, 1, 0, 6000), +(8200008, 2290006, 1, 1, 0, 2000), +(8200008, 2290051, 1, 1, 0, 2000), +(8200008, 2290121, 1, 1, 0, 2000), +(8200008, 2290122, 1, 1, 0, 2000), +(8200008, 2290133, 1, 1, 0, 6000), +(8200009, 2290013, 1, 1, 0, 2000), +(8200009, 2290016, 1, 1, 0, 2000), +(8200009, 2290031, 1, 1, 0, 2000), +(8200009, 2290039, 1, 1, 0, 2000), +(8200010, 2290026, 1, 1, 0, 2000), +(8200010, 2290059, 1, 1, 0, 2000), +(8200010, 2290088, 1, 1, 0, 2000), +(8200010, 2290089, 1, 1, 0, 2000), +(8200010, 2290127, 1, 1, 0, 6000), +(8200011, 2290001, 1, 1, 0, 3000), +(8200011, 2290040, 1, 1, 0, 3000), +(8200011, 2290046, 1, 1, 0, 3000), +(8200011, 2290048, 1, 1, 0, 3000), +(8200011, 2290049, 1, 1, 0, 3000), +(8200011, 2290114, 1, 1, 0, 3000), +(8200011, 2290137, 1, 1, 0, 9000), +(8200012, 2290041, 1, 1, 0, 3000), +(8200012, 2290092, 1, 1, 0, 3000), +(8200012, 2290093, 1, 1, 0, 3000), +(8200012, 2290115, 1, 1, 0, 3000), +(8200012, 2290137, 1, 1, 0, 9000), +(8200012, 2290139, 1, 1, 0, 9000), +(8220002, 2290020, 1, 1, 0, 40000), +(8220002, 2290081, 1, 1, 0, 40000), +(8220002, 2290085, 1, 1, 0, 40000), +(8220002, 2290133, 1, 1, 0, 120000), +(8220003, 2290006, 1, 1, 0, 40000), +(8220003, 2290030, 1, 1, 0, 40000), +(8220003, 2290031, 1, 1, 0, 40000), +(8220003, 2290032, 1, 1, 0, 40000), +(8220003, 2290033, 1, 1, 0, 40000), +(8220003, 2290060, 1, 1, 0, 40000), +(8220003, 2290061, 1, 1, 0, 40000), +(8220003, 2290076, 1, 1, 0, 40000), +(8220003, 2290077, 1, 1, 0, 40000), +(8220003, 2290104, 1, 1, 0, 40000), +(8220003, 2290105, 1, 1, 0, 40000), +(8220003, 2290117, 1, 1, 0, 40000), +(8220003, 2290118, 1, 1, 0, 40000), +(8220004, 2290018, 1, 1, 0, 40000), +(8220004, 2290019, 1, 1, 0, 40000), +(8220004, 2290024, 1, 1, 0, 40000), +(8220004, 2290025, 1, 1, 0, 40000), +(8220004, 2290058, 1, 1, 0, 40000), +(8220004, 2290059, 1, 1, 0, 40000), +(8220004, 2290076, 1, 1, 0, 40000), +(8220004, 2290077, 1, 1, 0, 40000), +(8220004, 2290106, 1, 1, 0, 40000), +(8220004, 2290127, 1, 1, 0, 120000), +(8220004, 2290134, 1, 1, 0, 120000), +(8220005, 2290002, 1, 1, 0, 60000), +(8220005, 2290003, 1, 1, 0, 60000), +(8220005, 2290036, 1, 1, 0, 60000), +(8220005, 2290037, 1, 1, 0, 60000), +(8220005, 2290055, 1, 1, 0, 60000), +(8220005, 2290080, 1, 1, 0, 60000), +(8220005, 2290099, 1, 1, 0, 60000), +(8220005, 2290131, 1, 1, 0, 180000), +(8220005, 2290136, 1, 1, 0, 180000), +(8220006, 2290012, 1, 1, 0, 80000), +(8220006, 2290013, 1, 1, 0, 80000), +(8220006, 2290042, 1, 1, 0, 80000), +(8220006, 2290043, 1, 1, 0, 80000), +(8220006, 2290060, 1, 1, 0, 80000), +(8220006, 2290061, 1, 1, 0, 80000), +(8220006, 2290090, 1, 1, 0, 80000), +(8220006, 2290119, 1, 1, 0, 80000), +(8220006, 2290120, 1, 1, 0, 80000), +(8220006, 2290135, 1, 1, 0, 240000), +(8220006, 2290138, 1, 1, 0, 240000), +(8220007, 2290035, 1, 1, 0, 40000), +(8220007, 2290091, 1, 1, 0, 40000), +(8220007, 2290108, 1, 1, 0, 40000), +(8220009, 2290031, 1, 1, 0, 40000), +(8220009, 2290129, 1, 1, 0, 120000), +(8220015, 2280004, 1, 1, 0, 40000), +(8220015, 2280005, 1, 1, 0, 40000), +(8220015, 2280006, 1, 1, 0, 40000), +(8500002, 2280007, 1, 1, 0, 60000), +(8500002, 2280008, 1, 1, 0, 60000), +(8500002, 2280009, 1, 1, 0, 60000), +(8500002, 2280010, 1, 1, 0, 60000), +(8500002, 2290006, 1, 1, 0, 60000), +(8500002, 2290010, 1, 1, 0, 60000), +(8500002, 2290011, 1, 1, 0, 60000), +(8500002, 2290013, 1, 1, 0, 60000), +(8500002, 2290028, 1, 1, 0, 60000), +(8500002, 2290037, 1, 1, 0, 60000), +(8500002, 2290043, 1, 1, 0, 60000), +(8500002, 2290051, 1, 1, 0, 60000), +(8500002, 2290056, 1, 1, 0, 60000), +(8500002, 2290061, 1, 1, 0, 60000), +(8500002, 2290066, 1, 1, 0, 60000), +(8500002, 2290071, 1, 1, 0, 60000), +(8500002, 2290078, 1, 1, 0, 60000), +(8500002, 2290089, 1, 1, 0, 60000), +(8500002, 2290091, 1, 1, 0, 60000), +(8500002, 2290104, 1, 1, 0, 60000), +(8500002, 2290107, 1, 1, 0, 60000), +(8500002, 2290121, 1, 1, 0, 60000), +(8500002, 2290123, 1, 1, 0, 60000), +(8500002, 2290126, 1, 1, 0, 180000), +(8500002, 2290129, 1, 1, 0, 180000), +(8510000, 2280007, 1, 1, 0, 40000), +(8510000, 2280008, 1, 1, 0, 40000), +(8510000, 2280009, 1, 1, 0, 40000), +(8510000, 2280010, 1, 1, 0, 40000), +(8510000, 2290000, 1, 1, 0, 40000), +(8510000, 2290001, 1, 1, 0, 40000), +(8510000, 2290004, 1, 1, 0, 40000), +(8510000, 2290005, 1, 1, 0, 40000), +(8510000, 2290024, 1, 1, 0, 40000), +(8510000, 2290025, 1, 1, 0, 40000), +(8510000, 2290026, 1, 1, 0, 40000), +(8510000, 2290027, 1, 1, 0, 40000), +(8510000, 2290052, 1, 1, 0, 40000), +(8510000, 2290053, 1, 1, 0, 40000), +(8510000, 2290054, 1, 1, 0, 40000), +(8510000, 2290055, 1, 1, 0, 40000), +(8510000, 2290076, 1, 1, 0, 40000), +(8510000, 2290077, 1, 1, 0, 40000), +(8510000, 2290082, 1, 1, 0, 40000), +(8510000, 2290083, 1, 1, 0, 40000), +(8510000, 2290097, 1, 1, 0, 40000), +(8510000, 2290099, 1, 1, 0, 40000), +(8510000, 2290106, 1, 1, 0, 40000), +(8510000, 2290108, 1, 1, 0, 40000), +(8510000, 2290112, 1, 1, 0, 40000), +(8510000, 2290114, 1, 1, 0, 40000), +(8510000, 2290122, 1, 1, 0, 40000), +(8510000, 2290124, 1, 1, 0, 40000), +(8510000, 2290132, 1, 1, 0, 120000), +(8520000, 2280007, 1, 1, 0, 40000), +(8520000, 2280008, 1, 1, 0, 40000), +(8520000, 2280009, 1, 1, 0, 40000), +(8520000, 2280010, 1, 1, 0, 40000), +(8520000, 2290000, 1, 1, 0, 40000), +(8520000, 2290001, 1, 1, 0, 40000), +(8520000, 2290004, 1, 1, 0, 40000), +(8520000, 2290005, 1, 1, 0, 40000), +(8520000, 2290024, 1, 1, 0, 40000), +(8520000, 2290025, 1, 1, 0, 40000), +(8520000, 2290026, 1, 1, 0, 40000), +(8520000, 2290027, 1, 1, 0, 40000), +(8520000, 2290052, 1, 1, 0, 40000), +(8520000, 2290053, 1, 1, 0, 40000), +(8520000, 2290054, 1, 1, 0, 40000), +(8520000, 2290055, 1, 1, 0, 40000), +(8520000, 2290076, 1, 1, 0, 40000), +(8520000, 2290077, 1, 1, 0, 40000), +(8520000, 2290082, 1, 1, 0, 40000), +(8520000, 2290083, 1, 1, 0, 40000), +(8520000, 2290097, 1, 1, 0, 40000), +(8520000, 2290099, 1, 1, 0, 40000), +(8520000, 2290106, 1, 1, 0, 40000), +(8520000, 2290108, 1, 1, 0, 40000), +(8520000, 2290112, 1, 1, 0, 40000), +(8520000, 2290114, 1, 1, 0, 40000), +(8520000, 2290122, 1, 1, 0, 40000), +(8520000, 2290124, 1, 1, 0, 40000), +(8520000, 2290132, 1, 1, 0, 120000), +(8800002, 2280007, 1, 1, 0, 80000), +(8800002, 2280008, 1, 1, 0, 80000), +(8800002, 2280009, 1, 1, 0, 80000), +(8800002, 2280010, 1, 1, 0, 80000), +(8800002, 2280013, 1, 1, 0, 240000), +(8800002, 2280014, 1, 1, 0, 240000), +(8800002, 2280015, 1, 1, 0, 240000), +(8800002, 2280016, 1, 1, 0, 240000), +(8800002, 2290006, 1, 1, 0, 80000), +(8800002, 2290007, 1, 1, 0, 80000), +(8800002, 2290016, 1, 1, 0, 80000), +(8800002, 2290020, 1, 1, 0, 80000), +(8800002, 2290022, 1, 1, 0, 80000), +(8800002, 2290024, 1, 1, 0, 80000), +(8800002, 2290028, 1, 1, 0, 80000), +(8800002, 2290029, 1, 1, 0, 80000), +(8800002, 2290040, 1, 1, 0, 80000), +(8800002, 2290046, 1, 1, 0, 80000), +(8800002, 2290048, 1, 1, 0, 80000), +(8800002, 2290056, 1, 1, 0, 80000), +(8800002, 2290057, 1, 1, 0, 80000), +(8800002, 2290058, 1, 1, 0, 80000), +(8800002, 2290064, 1, 1, 0, 80000), +(8800002, 2290067, 1, 1, 0, 80000), +(8800002, 2290074, 1, 1, 0, 80000), +(8800002, 2290079, 1, 1, 0, 80000), +(8800002, 2290084, 1, 1, 0, 80000), +(8800002, 2290094, 1, 1, 0, 80000), +(8800002, 2290110, 1, 1, 0, 80000), +(8800002, 2290115, 1, 1, 0, 80000), +(8810018, 2290017, 1, 1, 0, 100000), +(8810018, 2290021, 1, 1, 0, 100000), +(8810018, 2290023, 1, 1, 0, 100000), +(8810018, 2290041, 1, 1, 0, 100000), +(8810018, 2290047, 1, 1, 0, 100000), +(8810018, 2290049, 1, 1, 0, 100000), +(8810018, 2290065, 1, 1, 0, 100000), +(8810018, 2290075, 1, 1, 0, 100000), +(8810018, 2290085, 1, 1, 0, 100000), +(8810018, 2290095, 1, 1, 0, 100000), +(8810018, 2290096, 1, 1, 0, 100000), +(8810018, 2290111, 1, 1, 0, 100000), +(8810018, 2290116, 1, 1, 0, 100000), +(8810018, 2290125, 1, 1, 0, 100000), +(8810018, 2290133, 1, 1, 0, 300000), +(8810018, 2290137, 1, 1, 0, 300000), +(8810018, 2290139, 1, 1, 0, 300000), +(8820000, 2290010, 1, 1, 0, 120000), +(8820000, 2290022, 1, 1, 0, 120000), +(8820000, 2290040, 1, 1, 0, 120000), +(8820000, 2290046, 1, 1, 0, 120000), +(8820000, 2290048, 1, 1, 0, 120000), +(8820000, 2290052, 1, 1, 0, 120000), +(8820000, 2290084, 1, 1, 0, 120000), +(8820000, 2290090, 1, 1, 0, 120000), +(8820000, 2290106, 1, 1, 0, 120000), +(8820000, 2290119, 1, 1, 0, 120000), +(8820001, 2290010, 1, 1, 0, 120000), +(8820001, 2290022, 1, 1, 0, 120000), +(8820001, 2290040, 1, 1, 0, 120000), +(8820001, 2290046, 1, 1, 0, 120000), +(8820001, 2290048, 1, 1, 0, 120000), +(8820001, 2290052, 1, 1, 0, 120000), +(8820001, 2290084, 1, 1, 0, 120000), +(8820001, 2290090, 1, 1, 0, 120000), +(8820001, 2290106, 1, 1, 0, 120000), +(8820001, 2290119, 1, 1, 0, 120000), +(9300028, 2280015, 1, 1, 0, 120000), +(9300028, 2290026, 1, 1, 0, 40000), +(9300028, 2290064, 1, 1, 0, 40000), +(9300028, 2290075, 1, 1, 0, 40000), +(9300028, 2290093, 1, 1, 0, 40000), +(9300028, 2290111, 1, 1, 0, 40000), +(9300094, 2280004, 1, 1, 0, 40000), +(9300094, 2280005, 1, 1, 0, 40000), +(9300094, 2280006, 1, 1, 0, 40000), +(9300095, 2280004, 1, 1, 0, 2000), +(9300095, 2280005, 1, 1, 0, 2000), +(9300095, 2280006, 1, 1, 0, 2000), +(9303016, 2290006, 1, 1, 0, 2000), +(9303016, 2290030, 1, 1, 0, 2000), +(9303016, 2290032, 1, 1, 0, 2000), +(9303016, 2290060, 1, 1, 0, 2000), +(9303016, 2290076, 1, 1, 0, 2000), +(9303016, 2290104, 1, 1, 0, 2000), +(9303016, 2290117, 1, 1, 0, 2000), +(9400014, 2290053, 1, 1, 0, 40000), +(9400014, 2290087, 1, 1, 0, 40000), +(9400014, 2290112, 1, 1, 0, 40000), +(9400014, 2290122, 1, 1, 0, 40000), +(9400120, 2290045, 1, 1, 0, 40000), +(9400121, 2280014, 1, 1, 0, 180000), +(9400121, 2290081, 1, 1, 0, 60000), +(9400121, 2290087, 1, 1, 0, 60000), +(9400121, 2290101, 1, 1, 0, 60000), +(9400121, 2290103, 1, 1, 0, 60000), +(9400122, 2290007, 1, 1, 0, 40000), +(9400122, 2290062, 1, 1, 0, 40000), +(9400122, 2290116, 1, 1, 0, 40000), +(9400300, 2290045, 1, 1, 0, 120000), +(9400300, 2290055, 1, 1, 0, 120000), +(9400300, 2290063, 1, 1, 0, 120000), +(9400300, 2290079, 1, 1, 0, 120000), +(9400300, 2290081, 1, 1, 0, 120000), +(9400300, 2290096, 1, 1, 0, 120000), +(9400514, 2290023, 1, 1, 0, 40000), +(9400514, 2290057, 1, 1, 0, 40000), +(9400514, 2290088, 1, 1, 0, 40000), +(9400514, 2290095, 1, 1, 0, 40000), +(9400514, 2290115, 1, 1, 0, 40000), +(9400514, 2290139, 1, 1, 0, 120000), +(9400549, 2290001, 1, 1, 0, 40000), +(9400549, 2290020, 1, 1, 0, 40000), +(9400549, 2290045, 1, 1, 0, 40000), +(9400549, 2290057, 1, 1, 0, 40000), +(9400549, 2290086, 1, 1, 0, 40000), +(9400575, 2290009, 1, 1, 0, 40000), +(9400575, 2290051, 1, 1, 0, 40000), +(9400575, 2290081, 1, 1, 0, 40000), +(9400575, 2290087, 1, 1, 0, 40000), +(9400575, 2290107, 1, 1, 0, 40000), +(9400575, 2290123, 1, 1, 0, 40000), +(9400580, 2290004, 1, 1, 0, 2000), +(9400580, 2290024, 1, 1, 0, 2000), +(9400580, 2290083, 1, 1, 0, 2000), +(9400580, 2290087, 1, 1, 0, 2000), +(9400580, 2290103, 1, 1, 0, 2000), +(9400580, 2290121, 1, 1, 0, 2000), +(9400582, 2290005, 1, 1, 0, 2000), +(9400582, 2290010, 1, 1, 0, 2000), +(9400582, 2290029, 1, 1, 0, 2000), +(9400582, 2290047, 1, 1, 0, 2000), +(9400582, 2290049, 1, 1, 0, 2000), +(9400582, 2290074, 1, 1, 0, 2000), +(9400582, 2290079, 1, 1, 0, 2000), +(9400582, 2290081, 1, 1, 0, 2000), +(9400582, 2290135, 1, 1, 0, 6000), +(9400590, 2290088, 1, 1, 0, 60000), +(9400590, 2290125, 1, 1, 0, 60000), +(9400590, 2290135, 1, 1, 0, 180000), +(9400591, 2290039, 1, 1, 0, 60000), +(9400591, 2290074, 1, 1, 0, 60000), +(9400591, 2290113, 1, 1, 0, 60000), +(9400592, 2290047, 1, 1, 0, 60000), +(9400592, 2290123, 1, 1, 0, 60000), +(9400592, 2290131, 1, 1, 0, 180000), +(9400593, 2290069, 1, 1, 0, 60000), +(9400593, 2290093, 1, 1, 0, 60000), +(9400593, 2290138, 1, 1, 0, 180000), +(9420513, 2290039, 1, 1, 0, 40000), +(9420513, 2290100, 1, 1, 0, 40000), +(9420513, 2290108, 1, 1, 0, 40000), +(9420513, 2290118, 1, 1, 0, 40000), +(9420513, 2290138, 1, 1, 0, 120000), +(9420514, 2290099, 1, 1, 0, 1287), +(9420517, 2290000, 1, 1, 0, 1287), +(9420517, 2290008, 1, 1, 0, 1287), +(9420517, 2290018, 1, 1, 0, 1287), +(9420517, 2290038, 1, 1, 0, 1287), +(9420517, 2290060, 1, 1, 0, 1287), +(9420517, 2290080, 1, 1, 0, 1287), +(9420517, 2290103, 1, 1, 0, 1287), +(9420518, 2290123, 1, 1, 0, 1287), +(9420519, 2290113, 1, 1, 0, 1287), +(9420522, 2290000, 1, 1, 0, 1287), +(9420522, 2290001, 1, 1, 0, 1287), +(9420522, 2290011, 1, 1, 0, 1287), +(9420522, 2290025, 1, 1, 0, 1287), +(9420522, 2290028, 1, 1, 0, 1287), +(9420522, 2290037, 1, 1, 0, 1287), +(9420522, 2290043, 1, 1, 0, 1287), +(9420522, 2290066, 1, 1, 0, 1287), +(9420522, 2290082, 1, 1, 0, 1287), +(9420522, 2290083, 1, 1, 0, 1287), +(9420522, 2290089, 1, 1, 0, 1287), +(9420522, 2290091, 1, 1, 0, 1287), +(9420522, 2290107, 1, 1, 0, 1287), +(9420540, 2280006, 1, 1, 0, 2000), +(9420540, 2290119, 1, 1, 0, 2000), +(9420540, 2290120, 1, 1, 0, 2000), +(9420544, 2280007, 1, 1, 0, 80000), +(9420544, 2280008, 1, 1, 0, 80000), +(9420544, 2280009, 1, 1, 0, 80000), +(9420544, 2280010, 1, 1, 0, 80000), +(9420544, 2290002, 1, 1, 0, 80000), +(9420544, 2290015, 1, 1, 0, 80000), +(9420544, 2290022, 1, 1, 0, 80000), +(9420544, 2290027, 1, 1, 0, 80000), +(9420544, 2290034, 1, 1, 0, 80000), +(9420544, 2290052, 1, 1, 0, 80000), +(9420544, 2290054, 1, 1, 0, 80000), +(9420544, 2290089, 1, 1, 0, 80000), +(9420544, 2290094, 1, 1, 0, 80000), +(9420544, 2290098, 1, 1, 0, 80000), +(9420544, 2290105, 1, 1, 0, 80000), +(9420544, 2290110, 1, 1, 0, 80000), +(9420544, 2290119, 1, 1, 0, 80000), +(9420549, 2280007, 1, 1, 0, 80000), +(9420549, 2280008, 1, 1, 0, 80000), +(9420549, 2280009, 1, 1, 0, 80000), +(9420549, 2280010, 1, 1, 0, 80000), +(9420549, 2290002, 1, 1, 0, 80000), +(9420549, 2290015, 1, 1, 0, 80000), +(9420549, 2290022, 1, 1, 0, 80000), +(9420549, 2290027, 1, 1, 0, 80000), +(9420549, 2290034, 1, 1, 0, 80000), +(9420549, 2290052, 1, 1, 0, 80000), +(9420549, 2290054, 1, 1, 0, 80000), +(9420549, 2290089, 1, 1, 0, 80000), +(9420549, 2290094, 1, 1, 0, 80000), +(9420549, 2290098, 1, 1, 0, 80000), +(9420549, 2290105, 1, 1, 0, 80000), +(9420549, 2290110, 1, 1, 0, 80000), +(9420549, 2290119, 1, 1, 0, 80000), +(9500166, 2290044, 1, 1, 0, 2000), +(9500173, 2290018, 1, 1, 0, 40000), +(9500173, 2290019, 1, 1, 0, 40000), +(9500173, 2290032, 1, 1, 0, 40000), +(9500173, 2290042, 1, 1, 0, 40000), +(9500173, 2290058, 1, 1, 0, 40000), +(9500173, 2290068, 1, 1, 0, 40000), +(9500173, 2290072, 1, 1, 0, 40000), +(9500173, 2290092, 1, 1, 0, 40000), +(9500173, 2290099, 1, 1, 0, 40000), +(9500173, 2290102, 1, 1, 0, 40000), +(9500173, 2290119, 1, 1, 0, 40000), +(9500173, 2290128, 1, 1, 0, 120000), +(9500174, 2290002, 1, 1, 0, 40000), +(9500174, 2290014, 1, 1, 0, 40000), +(9500174, 2290030, 1, 1, 0, 40000), +(9500174, 2290080, 1, 1, 0, 40000), +(9500174, 2290130, 1, 1, 0, 120000), +(9500180, 2290010, 1, 1, 0, 40000), +(9500180, 2290028, 1, 1, 0, 40000), +(9500180, 2290126, 1, 1, 0, 120000), +(9500181, 2290010, 1, 1, 0, 40000), +(9500181, 2290028, 1, 1, 0, 40000), +(9500181, 2290126, 1, 1, 0, 120000), +(9500331, 2290010, 1, 1, 0, 40000), +(9500331, 2290028, 1, 1, 0, 40000), +(9500331, 2290126, 1, 1, 0, 120000), +(9500332, 2290132, 1, 1, 0, 120000), +(9500333, 2290006, 1, 1, 0, 40000), +(9500333, 2290030, 1, 1, 0, 40000), +(9500333, 2290032, 1, 1, 0, 40000), +(9500333, 2290060, 1, 1, 0, 40000), +(9500333, 2290076, 1, 1, 0, 40000), +(9500333, 2290104, 1, 1, 0, 40000), +(9500333, 2290117, 1, 1, 0, 40000); \ No newline at end of file diff --git a/src/client/MapleBuffStat.java b/src/client/MapleBuffStat.java index 57d3689910..a70a7e2bfe 100644 --- a/src/client/MapleBuffStat.java +++ b/src/client/MapleBuffStat.java @@ -30,37 +30,35 @@ public enum MapleBuffStat { SHARP_EYES(0x20L), MANA_REFLECTION(0x40L), //ALWAYS_RIGHT(0X80L), - - //------ bgn EDITED SLOT (was unused before) -------- - MAP_PROTECTION(0x100000000000000L), - //------ end EDITED SLOT ---------------------------- - SHADOW_CLAW(0x100L), INFINITY(0x200L), HOLY_SHIELD(0x400L), HAMSTRING(0x800L), BLIND(0x1000L), CONCENTRATE(0x2000L), - HPREC(0x4000L), + PUPPET(0x4000L), ECHO_OF_HERO(0x8000L), - MPREC(0x10000L), + MESO_UP_BY_ITEM(0x10000L), GHOST_MORPH(0x20000L), AURA(0x40000L), CONFUSE(0x80000L), - ARIANT_PQ_SHIELD(0x40000L), // ------ COUPON feature ------ - COUPON_EXP1(0x100000L), COUPON_EXP2(0x200000L), - COUPON_EXP3(0x400000L), - COUPON_EXP4(0x800000L), - COUPON_DRP1(0x1000000L), - COUPON_DRP2(0x2000000L), - COUPON_DRP3(0x4000000L), + COUPON_EXP3(0x400000L), COUPON_EXP4(0x400000L), + COUPON_DRP1(0x800000L), + COUPON_DRP2(0x1000000L), COUPON_DRP3(0x1000000L), - // ---- end COUPON feature ---- + // ------ monster card buffs, thanks to Arnah (Vertisy) ------ + ITEM_UP_BY_ITEM(0x100000L), + RESPECT_PIMMUNE(0x200000L), + RESPECT_MIMMUNE(0x400000L), + DEFENSE_ATT(0x800000L), + DEFENSE_STATE(0x1000000L), + HPREC(0x2000000L), + MPREC(0x4000000L), BERSERK_FURY(0x8000000L), DIVINE_BODY(0x10000000L), SPARK(0x20000000L), @@ -73,7 +71,6 @@ public enum MapleBuffStat { ACC(0x1000000000L), AVOID(0x2000000000L), HANDS(0x4000000000L), - SHOWDASH(0x4000000000L), SPEED(0x8000000000L), JUMP(0x10000000000L), MAGIC_GUARD(0x20000000000L), @@ -96,11 +93,10 @@ public enum MapleBuffStat { MESOUP(0x200000000000000L), SHADOWPARTNER(0x400000000000000L), PICKPOCKET(0x800000000000000L), - PUPPET(0x800000000000000L), MESOGUARD(0x1000000000000000L), EXP_INCREASE(0x2000000000000000L), WEAKEN(0x4000000000000000L), - //THAT GAP + MAP_PROTECTION(0x8000000000000000L), //all incorrect buffstats SLOW(0x200000000L, true), @@ -144,4 +140,9 @@ public enum MapleBuffStat { public boolean isFirst() { return isFirst; } + + @Override + public String toString() { + return name(); + } } diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index 3774409a04..8e134781f5 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -44,6 +44,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.Stack; import java.util.Comparator; import java.util.concurrent.locks.Lock; import java.util.concurrent.ScheduledFuture; @@ -205,7 +206,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject { private transient int localstr, localdex, localluk, localint_, localmagic, localwatk; private transient int equipmaxhp, equipmaxmp, equipstr, equipdex, equipluk, equipint_, equipmagic, equipwatk, localchairhp, localchairmp; private int localchairrate; - private boolean hidden, equipchanged = true, canDoor = true, berserk, hasMerchant, hasSandboxItem = false, whiteChat = false; + private boolean hidden, equipchanged = true, canDoor = true, berserk, hasMerchant, hasSandboxItem = false, whiteChat = false, canRecvPartySearchInvite = true; private boolean equippedMesoMagnet = false, equippedItemPouch = false, equippedPetItemIgnore = false; private int linkedLevel = 0; private String linkedName = null; @@ -286,6 +287,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject { private Lock cpnLock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.CHARACTER_CPN); private Map> excluded = new LinkedHashMap<>(); private Set excludedItems = new LinkedHashSet<>(); + private Set disabledPartySearchInvites = new LinkedHashSet<>(); private static String[] ariantroomleader = new String[3]; private static int[] ariantroomslot = new int[3]; private long portaldelay = 0, lastcombo = 0; @@ -484,6 +486,10 @@ public class MapleCharacter extends AbstractMapleCharacterObject { public void setEnteredChannelWorld() { awayFromWorld.set(false); client.getChannelServer().removePlayerAway(id); + + if (canRecvPartySearchInvite) { + this.getWorldServer().getPartySearchCoordinator().attachPlayer(this); + } } public void setAwayFromChannelWorld() { @@ -504,6 +510,46 @@ public class MapleCharacter extends AbstractMapleCharacterObject { } } + public void updatePartySearchAvailability(boolean psearchAvailable) { + if (psearchAvailable) { + if (canRecvPartySearchInvite && getParty() == null) { + this.getWorldServer().getPartySearchCoordinator().attachPlayer(this); + } + } else { + if (canRecvPartySearchInvite) { + this.getWorldServer().getPartySearchCoordinator().detachPlayer(this); + } + } + } + + public boolean toggleRecvPartySearchInvite() { + canRecvPartySearchInvite = !canRecvPartySearchInvite; + + if (canRecvPartySearchInvite) { + updatePartySearchAvailability(getParty() == null); + } else { + this.getWorldServer().getPartySearchCoordinator().detachPlayer(this); + } + + return canRecvPartySearchInvite; + } + + public boolean isRecvPartySearchInviteEnabled() { + return canRecvPartySearchInvite; + } + + public void resetPartySearchInvite(int fromLeaderid) { + disabledPartySearchInvites.remove(fromLeaderid); + } + + public void disablePartySearchInvite(int fromLeaderid) { + disabledPartySearchInvites.add(fromLeaderid); + } + + public boolean hasDisabledPartySearchInvite(int fromLeaderid) { + return disabledPartySearchInvites.contains(fromLeaderid); + } + public void setSessionTransitionState() { client.getSession().setAttribute(MapleClient.CLIENT_TRANSITION); } @@ -1047,7 +1093,13 @@ public class MapleCharacter extends AbstractMapleCharacterObject { return;//the fuck you doing idiot! } - this.job = newJob; + if (canRecvPartySearchInvite && getParty() == null) { + this.updatePartySearchAvailability(false); + this.job = newJob; + this.updatePartySearchAvailability(true); + } else { + this.job = newJob; + } int spGain = 1; if (GameConstants.hasSPTable(newJob)) { @@ -3448,6 +3500,10 @@ public class MapleCharacter extends AbstractMapleCharacterObject { for(Entry> bpl: buffEffects.entrySet()) { MapleBuffStatValueHolder mbsvhi = bpl.getValue().get(mbs); if(mbsvhi != null) { + if(!mbsvhi.effect.isActive(mapid)) { + continue; + } + if(mbsvhi.value > max.left) { max = new Pair<>(mbsvhi.value, mbsvhi.effect.getStatups().size()); mbsvh = mbsvhi; @@ -3477,6 +3533,11 @@ public class MapleCharacter extends AbstractMapleCharacterObject { effLock.lock(); chrLock.lock(); try { + System.out.println("-------------------"); + System.out.println("CACHED BUFF COUNT: "); + for(Entry bpl : buffEffectsCount.entrySet()) { + System.out.println(bpl.getKey() + ": " + bpl.getValue()); + } System.out.println("-------------------"); System.out.println("CACHED BUFFS: "); for(Entry> bpl : buffEffects.entrySet()) { @@ -3664,46 +3725,33 @@ public class MapleCharacter extends AbstractMapleCharacterObject { } } + public void updateActiveEffects() { + chrLock.lock(); + try { + effects.clear(); + updateEffects(buffEffectsCount.keySet()); + } finally { + chrLock.unlock(); + } + } + private void updateEffects(Set removedStats) { chrLock.lock(); try { - Map> retrievedEffects = new LinkedHashMap<>(); - Map> maxStatups = new LinkedHashMap<>(); - - for(Entry> bel : buffEffects.entrySet()) { - for(Entry belv : bel.getValue().entrySet()) { - if(removedStats.contains(belv.getKey())) { - if(!retrievedEffects.containsKey(bel.getKey())) { - retrievedEffects.put(bel.getKey(), new Pair<>(belv.getValue().effect, belv.getValue().startTime)); - } - - Pair thisStat = maxStatups.get(belv.getKey()); - if(thisStat == null || belv.getValue().value > thisStat.getRight()) { - maxStatups.put(belv.getKey(), new Pair<>(bel.getKey(), belv.getValue().value)); - } - } - } - } - - Map> bestEffects = new LinkedHashMap<>(); Set retrievedStats = new LinkedHashSet<>(); - for(Entry> lmsee: maxStatups.entrySet()) { - if(isSingletonStatup(lmsee.getKey())) { - continue; - } + + for (MapleBuffStat mbs : removedStats) { + fetchBestEffectFromItemEffectHolder(mbs); - Integer srcid = lmsee.getValue().getLeft(); - if(!bestEffects.containsKey(srcid)) { - Pair msel = retrievedEffects.get(srcid); - - bestEffects.put(srcid, msel); - for(Pair mbsi : msel.getLeft().getStatups()) { - retrievedStats.add(mbsi.getLeft()); + MapleBuffStatValueHolder mbsvh = effects.get(mbs); + if (mbsvh != null) { + for (Pair statup : mbsvh.effect.getStatups()) { + retrievedStats.add(statup.getLeft()); } } } - propagateBuffEffectUpdates(bestEffects, retrievedStats); + propagateBuffEffectUpdates(new LinkedHashMap>(), retrievedStats, removedStats); } finally { chrLock.unlock(); } @@ -3771,21 +3819,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject { } if (!overwrite) { - List cancelStats = new LinkedList<>(); - - chrLock.lock(); - try { - for(Entry mbsl : buffstats.entrySet()) { - cancelStats.add(mbsl.getKey()); - } - } finally { - chrLock.unlock(); - } - - for(MapleBuffStat mbs : cancelStats) { - removedStats.add(mbs); - } - cancelPlayerBuffs(cancelStats); + removedStats.addAll(buffstats.keySet()); } return toCancel; @@ -3909,7 +3943,152 @@ public class MapleCharacter extends AbstractMapleCharacterObject { return extractedStatBuffs; } - private void propagateBuffEffectUpdates(Map> retrievedEffects, Set retrievedStats) { + private void cancelInactiveBuffStats(Set retrievedStats, Set removedStats) { + List inactiveStats = new LinkedList<>(); + for (MapleBuffStat mbs : removedStats) { + if (!retrievedStats.contains(mbs)) { + inactiveStats.add(mbs); + } + } + + if (!inactiveStats.isEmpty()) { + client.announce(MaplePacketCreator.cancelBuff(inactiveStats)); + getMap().broadcastMessage(this, MaplePacketCreator.cancelForeignBuff(getId(), inactiveStats), false); + } + } + + private static Map topologicalSortLeafStatCount(Map> buffStack) { + Map leafBuffCount = new LinkedHashMap<>(); + + for (Entry> e : buffStack.entrySet()) { + Stack mseStack = e.getValue(); + if (mseStack.isEmpty()) { + continue; + } + + MapleStatEffect mse = mseStack.peek(); + Integer count = leafBuffCount.get(mse); + if (count == null) { + leafBuffCount.put(mse, 1); + } else { + leafBuffCount.put(mse, count + 1); + } + } + + return leafBuffCount; + } + + private static List topologicalSortRemoveLeafStats(Map> stackedBuffStats, Map> buffStack, Map leafStatCount) { + List clearedStatEffects = new LinkedList<>(); + Set clearedStats = new LinkedHashSet<>(); + + for (Entry e : leafStatCount.entrySet()) { + MapleStatEffect mse = e.getKey(); + + if (stackedBuffStats.get(mse).size() <= e.getValue()) { + clearedStatEffects.add(mse); + + for (MapleBuffStat mbs : stackedBuffStats.get(mse)) { + clearedStats.add(mbs); + } + } + } + + for (MapleBuffStat mbs : clearedStats) { + MapleStatEffect mse = buffStack.get(mbs).pop(); + stackedBuffStats.get(mse).remove(mbs); + } + + return clearedStatEffects; + } + + private static void topologicalSortRebaseLeafStats(Map> stackedBuffStats, Map> buffStack) { + for (Entry> e : buffStack.entrySet()) { + Stack mseStack = e.getValue(); + + if (!mseStack.isEmpty()) { + MapleStatEffect mse = mseStack.pop(); + stackedBuffStats.get(mse).remove(e.getKey()); + } + } + } + + private static List topologicalSortEffects(Map>> buffEffects) { + Map> stackedBuffStats = new LinkedHashMap<>(); + Map> buffStack = new LinkedHashMap<>(); + + for (Entry>> e : buffEffects.entrySet()) { + MapleBuffStat mbs = e.getKey(); + + Stack mbsStack = new Stack<>(); + buffStack.put(mbs, mbsStack); + + for (Pair emse : e.getValue()) { + MapleStatEffect mse = emse.getLeft(); + mbsStack.push(mse); + + Set mbsStats = stackedBuffStats.get(mse); + if (mbsStats == null) { + mbsStats = new LinkedHashSet<>(); + stackedBuffStats.put(mse, mbsStats); + } + + mbsStats.add(mbs); + } + } + + List buffList = new LinkedList<>(); + while (true) { + Map leafStatCount = topologicalSortLeafStatCount(buffStack); + if (leafStatCount.isEmpty()) break; + + List clearedNodes = topologicalSortRemoveLeafStats(stackedBuffStats, buffStack, leafStatCount); + if (clearedNodes.isEmpty()) { + topologicalSortRebaseLeafStats(stackedBuffStats, buffStack); + } else { + buffList.addAll(clearedNodes); + } + } + + return buffList; + } + + private static List sortEffectsList(Map updateEffectsList) { + Map>> buffEffects = new LinkedHashMap<>(); + + for (Entry p : updateEffectsList.entrySet()) { + MapleStatEffect mse = p.getKey(); + + for (Pair statup : mse.getStatups()) { + MapleBuffStat stat = statup.getLeft(); + + List> statBuffs = buffEffects.get(stat); + if (statBuffs == null) { + statBuffs = new ArrayList<>(); + buffEffects.put(stat, statBuffs); + } + + statBuffs.add(new Pair<>(mse, statup.getRight())); + } + } + + Comparator cmp = new Comparator>() { + @Override + public int compare(Pair o1, Pair o2) + { + return o2.getRight().compareTo(o1.getRight()); + } + }; + + for (Entry>> statBuffs : buffEffects.entrySet()) { + Collections.sort(statBuffs.getValue(), cmp); + } + + return topologicalSortEffects(buffEffects); + } + + private void propagateBuffEffectUpdates(Map> retrievedEffects, Set retrievedStats, Set removedStats) { + cancelInactiveBuffStats(retrievedStats, removedStats); if (retrievedStats.isEmpty()) { return; } @@ -3924,7 +4103,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject { maxBuffValue.put(mbs, new Pair<>(Integer.MIN_VALUE, (MapleStatEffect) null)); } - Map> updateEffects = new LinkedHashMap<>(); + Map updateEffects = new LinkedHashMap<>(); List recalcMseList = new LinkedList<>(); for(Entry> re : retrievedEffects.entrySet()) { @@ -3937,7 +4116,6 @@ public class MapleCharacter extends AbstractMapleCharacterObject { recalcMseList = new LinkedList<>(); for(MapleStatEffect mse : mseList) { - int mseAmount = 0; int maxEffectiveStatup = Integer.MIN_VALUE; for(Pair st : mse.getStatups()) { MapleBuffStat mbs = st.getLeft(); @@ -3972,36 +4150,16 @@ public class MapleCharacter extends AbstractMapleCharacterObject { } } } - - if(relevantStatup) { - mseAmount += st.getRight(); - } } - updateEffects.put(mse, new Pair<>(maxEffectiveStatup, mseAmount)); + updateEffects.put(mse, maxEffectiveStatup); } } while(!recalcMseList.isEmpty()); - List>> updateEffectsList = new ArrayList<>(); - for(Entry> ue : updateEffects.entrySet()) { - updateEffectsList.add(new Pair<>(ue.getKey(), ue.getValue())); - } - - Collections.sort(updateEffectsList, new Comparator>>() { - @Override - public int compare(Pair> o1, Pair> o2) - { - if(o1.getRight().getLeft().equals(o2.getRight().getLeft())) { - return o1.getRight().getRight().compareTo(o2.getRight().getRight()); - } else { - return o1.getRight().getLeft().compareTo(o2.getRight().getLeft()); - } - } - }); + List updateEffectsList = sortEffectsList(updateEffects); List>> toUpdateEffects = new LinkedList<>(); - for(Pair> msep : updateEffectsList) { - MapleStatEffect mse = msep.getLeft(); + for(MapleStatEffect mse : updateEffectsList) { toUpdateEffects.add(new Pair<>(mse.getBuffSourceId(), retrievedEffects.get(mse.getBuffSourceId()))); } @@ -4010,9 +4168,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject { Pair msel = lmse.getRight(); for(Pair statup : getActiveStatupsFromSourceid(lmse.getLeft())) { - if(!isSingletonStatup(statup.getLeft())) { - activeStatups.add(statup); - } + activeStatups.add(statup); } msel.getLeft().updateBuffEffect(this, activeStatups, msel.getRight()); @@ -4061,6 +4217,17 @@ public class MapleCharacter extends AbstractMapleCharacterObject { } } + private void addItemEffectHolderCount(MapleBuffStat stat) { + Byte val = buffEffectsCount.get(stat); + if (val != null) { + val = (byte) (val + 1); + } else { + val = (byte) 1; + } + + buffEffectsCount.put(stat, val); + } + public void registerEffect(MapleStatEffect effect, long starttime, long expirationtime, boolean isSilent) { if (effect.isDragonBlood()) { prepareDragonBlood(effect); @@ -4180,6 +4347,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject { appliedStatups.put(ps.getLeft(), new MapleBuffStatValueHolder(effect, starttime, ps.getRight())); } + boolean active = effect.isActive(mapid); if(ServerConstants.USE_BUFF_MOST_SIGNIFICANT) { toDeploy = new LinkedHashMap<>(); Map> retrievedEffects = new LinkedHashMap<>(); @@ -4189,25 +4357,19 @@ public class MapleCharacter extends AbstractMapleCharacterObject { MapleBuffStatValueHolder mbsvh = effects.get(statup.getKey()); MapleBuffStatValueHolder statMbsvh = statup.getValue(); - if(mbsvh == null || mbsvh.value < statMbsvh.value || (mbsvh.value == statMbsvh.value && mbsvh.effect.getStatups().size() <= statMbsvh.effect.getStatups().size())) { - toDeploy.put(statup.getKey(), statMbsvh); - } else { - if(!isSingletonStatup(statup.getKey())) { - retrievedEffects.put(mbsvh.effect.getBuffSourceId(), new Pair<>(mbsvh.effect, mbsvh.startTime)); - for(Pair mbs : mbsvh.effect.getStatups()) { - retrievedStats.add(mbs.getLeft()); + if(active) { + if(mbsvh == null || mbsvh.value < statMbsvh.value || (mbsvh.value == statMbsvh.value && mbsvh.effect.getStatups().size() <= statMbsvh.effect.getStatups().size())) { + toDeploy.put(statup.getKey(), statMbsvh); + } else { + if(!isSingletonStatup(statup.getKey())) { + for(Pair mbs : mbsvh.effect.getStatups()) { + retrievedStats.add(mbs.getLeft()); + } } } } - Byte val = buffEffectsCount.get(statup.getKey()); - if (val != null) { - val = (byte) (val + 1); - } else { - val = (byte) 1; - } - - buffEffectsCount.put(statup.getKey(), val); + addItemEffectHolderCount(statup.getKey()); } if(!isSilent) { @@ -4216,22 +4378,18 @@ public class MapleCharacter extends AbstractMapleCharacterObject { effects.put(statup.getKey(), statup.getValue()); } - retrievedEffects.put(sourceid, new Pair<>(effect, starttime)); - propagateBuffEffectUpdates(retrievedEffects, retrievedStats); + if (active) { + retrievedEffects.put(sourceid, new Pair<>(effect, starttime)); + } + + propagateBuffEffectUpdates(retrievedEffects, retrievedStats, new LinkedHashSet()); } } else { for (Entry statup : appliedStatups.entrySet()) { - Byte val = buffEffectsCount.get(statup.getKey()); - if (val != null) { - val = (byte) (val + 1); - } else { - val = (byte) 1; - } - - buffEffectsCount.put(statup.getKey(), val); + addItemEffectHolderCount(statup.getKey()); } - toDeploy = appliedStatups; + toDeploy = (active ? appliedStatups : new LinkedHashMap()); } addItemEffectHolder(sourceid, expirationtime, appliedStatups); @@ -4607,6 +4765,24 @@ public class MapleCharacter extends AbstractMapleCharacterObject { return w.getMesoRate() * w.getQuestRate(); } + public float getCardRate(int itemid) { + float rate = 100.0f; + + if (itemid == 0) { + MapleStatEffect mseMeso = getBuffEffect(MapleBuffStat.MESO_UP_BY_ITEM); + if (mseMeso != null) { + rate += mseMeso.getCardRate(mapid, itemid); + } + } else { + MapleStatEffect mseItem = getBuffEffect(MapleBuffStat.ITEM_UP_BY_ITEM); + if (mseItem != null) { + rate += mseItem.getCardRate(mapid, itemid); + } + } + + return rate / 100; + } + public int getFace() { return face; } @@ -5169,6 +5345,13 @@ public class MapleCharacter extends AbstractMapleCharacterObject { this.gmLevel = Math.max(level, 0); } + public void closePartySearchInteractions() { + this.getWorldServer().getPartySearchCoordinator().unregisterPartyLeader(this); + if (canRecvPartySearchInvite) { + this.getWorldServer().getPartySearchCoordinator().detachPlayer(this); + } + } + public void closePlayerInteractions() { closeNpcShop(); closeTrade(); @@ -5570,8 +5753,8 @@ public class MapleCharacter extends AbstractMapleCharacterObject { return vanquisherStage; } - public Collection getVisibleMapObjects() { - return Collections.unmodifiableCollection(visibleMapObjects); + public MapleMapObject[] getVisibleMapObjects() { + return visibleMapObjects.toArray(new MapleMapObject[visibleMapObjects.size()]); } public int getWorld() { @@ -6717,6 +6900,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject { int buddyCapacity = rs.getInt("buddyCapacity"); ret.buddylist = new BuddyList(buddyCapacity); ret.lastExpGainTime = rs.getTimestamp("lastExpGainTime").getTime(); + ret.canRecvPartySearchInvite = rs.getBoolean("partySearch"); ret.getInventory(MapleInventoryType.EQUIP).setSlotLimit(rs.getByte("equipslots")); ret.getInventory(MapleInventoryType.USE).setSlotLimit(rs.getByte("useslots")); @@ -7979,12 +8163,8 @@ public class MapleCharacter extends AbstractMapleCharacterObject { con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); con.setAutoCommit(false); PreparedStatement ps; - ps = con.prepareStatement("UPDATE characters SET level = ?, fame = ?, str = ?, dex = ?, luk = ?, `int` = ?, exp = ?, gachaexp = ?, hp = ?, mp = ?, maxhp = ?, maxmp = ?, sp = ?, ap = ?, gm = ?, skincolor = ?, gender = ?, job = ?, hair = ?, face = ?, map = ?, meso = ?, hpMpUsed = ?, spawnpoint = ?, party = ?, buddyCapacity = ?, messengerid = ?, messengerposition = ?, mountlevel = ?, mountexp = ?, mounttiredness= ?, equipslots = ?, useslots = ?, setupslots = ?, etcslots = ?, monsterbookcover = ?, vanquisherStage = ?, dojoPoints = ?, lastDojoStage = ?, finishedDojoTutorial = ?, vanquisherKills = ?, matchcardwins = ?, matchcardlosses = ?, matchcardties = ?, omokwins = ?, omoklosses = ?, omokties = ?, dataString = ?, fquest = ?, jailexpire = ?, partnerId = ?, marriageItemId = ?, lastExpGainTime = ?, ariantPoints = ? WHERE id = ?", Statement.RETURN_GENERATED_KEYS); - if (gmLevel < 1 && level > 199) { - ps.setInt(1, isCygnus() ? 120 : 200); - } else { - ps.setInt(1, level); - } + ps = con.prepareStatement("UPDATE characters SET level = ?, fame = ?, str = ?, dex = ?, luk = ?, `int` = ?, exp = ?, gachaexp = ?, hp = ?, mp = ?, maxhp = ?, maxmp = ?, sp = ?, ap = ?, gm = ?, skincolor = ?, gender = ?, job = ?, hair = ?, face = ?, map = ?, meso = ?, hpMpUsed = ?, spawnpoint = ?, party = ?, buddyCapacity = ?, messengerid = ?, messengerposition = ?, mountlevel = ?, mountexp = ?, mounttiredness= ?, equipslots = ?, useslots = ?, setupslots = ?, etcslots = ?, monsterbookcover = ?, vanquisherStage = ?, dojoPoints = ?, lastDojoStage = ?, finishedDojoTutorial = ?, vanquisherKills = ?, matchcardwins = ?, matchcardlosses = ?, matchcardties = ?, omokwins = ?, omoklosses = ?, omokties = ?, dataString = ?, fquest = ?, jailexpire = ?, partnerId = ?, marriageItemId = ?, lastExpGainTime = ?, ariantPoints = ?, partySearch = ? WHERE id = ?", Statement.RETURN_GENERATED_KEYS); + ps.setInt(1, level); // thanks CanIGetaPR for noticing an unnecessary "level" limitation when persisting DB data ps.setInt(2, fame); effLock.lock(); @@ -8094,7 +8274,8 @@ public class MapleCharacter extends AbstractMapleCharacterObject { ps.setInt(52, marriageItemid); ps.setTimestamp(53, new Timestamp(lastExpGainTime)); ps.setInt(54, ariantPoints); - ps.setInt(55, id); + ps.setBoolean(55, canRecvPartySearchInvite); + ps.setInt(56, id); int updateRows = ps.executeUpdate(); ps.close(); diff --git a/src/client/MapleClient.java b/src/client/MapleClient.java index 4af9f01cb3..3145bc2a45 100644 --- a/src/client/MapleClient.java +++ b/src/client/MapleClient.java @@ -888,6 +888,7 @@ public class MapleClient { player.cancelAllBuffs(true); player.closePlayerInteractions(); + player.closePartySearchInteractions(); if (!serverTransition) { // thanks MedicOP for detecting an issue with party leader change on changing channels removePartyPlayer(wserv); @@ -1463,6 +1464,7 @@ public class MapleClient { } player.closePlayerInteractions(); + player.closePartySearchInteractions(); player.unregisterChairBuff(); server.getPlayerBuffStorage().addBuffsToStorage(player.getId(), player.getAllBuffs()); diff --git a/src/client/MapleJob.java b/src/client/MapleJob.java index 60cc28f578..25511ef139 100644 --- a/src/client/MapleJob.java +++ b/src/client/MapleJob.java @@ -114,11 +114,6 @@ public enum MapleJob { return BEGINNER; } } - - public boolean isBeginner(MapleJob beginners) { - return MAGICIAN == beginners || WARRIOR == beginners || THIEF == beginners || PIRATE == beginners || BOWMAN == beginners || ARAN1 == beginners || THUNDERBREAKER1 == beginners - || DAWNWARRIOR1 == beginners || NIGHTWALKER1 == beginners || BLAZEWIZARD1 == beginners; - } public boolean isA(MapleJob basejob) { // thanks Steve (kaito1410) for pointing out an improvement here int basebranch = basejob.getId() / 10; diff --git a/src/client/command/commands/gm2/IdCommand.java b/src/client/command/commands/gm2/IdCommand.java index 91ecace67a..304f19c62a 100644 --- a/src/client/command/commands/gm2/IdCommand.java +++ b/src/client/command/commands/gm2/IdCommand.java @@ -9,6 +9,7 @@ import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.*; +import server.ThreadManager; public class IdCommand extends Command { { @@ -34,7 +35,7 @@ public class IdCommand extends Command { return; } final String queryItem = joinStringArr(Arrays.copyOfRange(params, 1, params.length), " "); - player.yellowMessage("Querying for entry... May take some time... Please try to refine your search"); + player.yellowMessage("Querying for entry... May take some time... Please try to refine your search."); Runnable queryRunnable = new Runnable() { @Override public void run() { @@ -42,28 +43,31 @@ public class IdCommand extends Command { populateIdMap(params[0].toLowerCase()); Map resultList = fetchResults(itemMap.get(params[0]), queryItem); - + StringBuilder sb = new StringBuilder(); + if (resultList.size() > 0) { int count = 0; for (Map.Entry entry: resultList.entrySet()) { - player.yellowMessage(String.format("Id for %s is: %s", entry.getKey(), entry.getValue())); + sb.append(String.format("Id for %s is: #b%s#k", entry.getKey(), entry.getValue()) + "\r\n"); if (++count > 100) { break; } } - player.yellowMessage(String.format("Results found: %d | Returned: %d/100 | Refine search query to improve time.", resultList.size(), count - 1)); + sb.append(String.format("Results found: #r%d#k | Returned: #b%d#k/100 | Refine search query to improve time.", resultList.size(), count) + "\r\n"); + + player.getClient().getAbstractPlayerInteraction().npcTalk(9010000, sb.toString()); } else { - player.yellowMessage(String.format("Id not found for item: %s, of type: %s", queryItem, params[0])); + player.yellowMessage(String.format("Id not found for item: %s, of type: %s.", queryItem, params[0])); } } catch (IdTypeNotSupportedException e) { - player.yellowMessage("Your query type is not supported"); + player.yellowMessage("Your query type is not supported."); } catch (IOException e) { - player.yellowMessage("Error reading file, please contact your administrator"); + player.yellowMessage("Error reading file, please contact your administrator."); } } }; - Thread thread = new Thread(queryRunnable); - thread.start(); + + ThreadManager.getInstance().newTask(queryRunnable); } private void populateIdMap(String type) throws IdTypeNotSupportedException, IOException { diff --git a/src/client/command/commands/gm5/DebugCommand.java b/src/client/command/commands/gm5/DebugCommand.java index 18700b424b..e2617b73f4 100644 --- a/src/client/command/commands/gm5/DebugCommand.java +++ b/src/client/command/commands/gm5/DebugCommand.java @@ -39,10 +39,9 @@ import tools.MaplePacketCreator; import java.awt.*; import java.util.Arrays; import java.util.List; -import tools.packets.Wedding; public class DebugCommand extends Command { - private final static String debugTypes[] = {"monster", "packet", "portal", "spawnpoint", "pos", "map", "mobsp", "event", "areas", "reactors", "servercoupons", "playercoupons", "timer", "marriage", ""}; + private final static String debugTypes[] = {"monster", "packet", "portal", "spawnpoint", "pos", "map", "mobsp", "event", "areas", "reactors", "servercoupons", "playercoupons", "timer", "marriage", "buff", ""}; { setDescription(""); @@ -158,7 +157,10 @@ public class DebugCommand extends Command { case "marriage": c.getChannelServer().debugMarriageStatus(); break; - + + case "buff": + c.getPlayer().debugListAllBuffs(); + break; } } } diff --git a/src/client/inventory/MaplePet.java b/src/client/inventory/MaplePet.java index 95cc8bb771..acaa12c9bd 100644 --- a/src/client/inventory/MaplePet.java +++ b/src/client/inventory/MaplePet.java @@ -98,6 +98,65 @@ public class MaplePet extends Item { } } + private static void unreferenceMissingPetsFromInventoryDb() { + PreparedStatement ps = null; + Connection con = null; + try { + con = DatabaseConnection.getConnection(); + + ps = con.prepareStatement("UPDATE inventoryitems SET petid = -1, expiration = 0 WHERE petid != -1 AND petid NOT IN (SELECT petid FROM pets)"); + ps.executeUpdate(); + + ps.close(); + con.close(); + } catch(SQLException ex) { + ex.printStackTrace(); + } finally { + try { + if(ps != null && !ps.isClosed()) { + ps.close(); + } + if(con != null && !con.isClosed()) { + con.close(); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + private static void deleteMissingPetsFromDb() { + PreparedStatement ps = null; + Connection con = null; + try { + con = DatabaseConnection.getConnection(); + + ps = con.prepareStatement("DELETE FROM pets WHERE petid NOT IN (SELECT petid FROM inventoryitems WHERE petid != -1)"); + ps.executeUpdate(); + + ps.close(); + con.close(); + } catch(SQLException ex) { + ex.printStackTrace(); + } finally { + try { + if(ps != null && !ps.isClosed()) { + ps.close(); + } + if(con != null && !con.isClosed()) { + con.close(); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + public static void clearMissingPetsFromDb() { + unreferenceMissingPetsFromInventoryDb(); + deleteMissingPetsFromDb(); + } + public static void deleteFromDb(MapleCharacter owner, int petid) { try { Connection con = DatabaseConnection.getConnection(); diff --git a/src/client/inventory/manipulator/MapleInventoryManipulator.java b/src/client/inventory/manipulator/MapleInventoryManipulator.java index af689f2a57..ccc3646161 100644 --- a/src/client/inventory/manipulator/MapleInventoryManipulator.java +++ b/src/client/inventory/manipulator/MapleInventoryManipulator.java @@ -439,7 +439,7 @@ public class MapleInventoryManipulator { announceModifyInventory(c, item, fromDrop, allowZero); } - MaplePet.deleteFromDb(chr, petid); + // thanks Robin Schulz for noticing pet issues when moving pets out of inventory } else { inv.removeItem(slot, quantity, allowZero); if(type != MapleInventoryType.CANHOLD) { diff --git a/src/constants/ServerConstants.java b/src/constants/ServerConstants.java index 317f45679f..1d6cb3ae55 100644 --- a/src/constants/ServerConstants.java +++ b/src/constants/ServerConstants.java @@ -75,11 +75,10 @@ public class ServerConstants { public static final boolean USE_FIXED_RATIO_HPMP_UPDATE = true; //Enables the HeavenMS-builtin HPMP update based on the current pool to max pool ratio. public static final boolean USE_FAMILY_SYSTEM = false; public static final boolean USE_DUEY = true; - public static final boolean USE_RANDOMIZE_HPMP_GAIN = true; //Enables randomizing on MaxHP/MaxMP gains and INT accounting for the MaxMP gain. + public static final boolean USE_RANDOMIZE_HPMP_GAIN = true; //Enables randomizing on MaxHP/MaxMP gains and INT accounting for the MaxMP gain on level up. public static final boolean USE_STORAGE_ITEM_SORT = true; //Enables storage "Arrange Items" feature. public static final boolean USE_ITEM_SORT = true; //Enables inventory "Item Sort/Merge" feature. public static final boolean USE_ITEM_SORT_BY_NAME = false; //Item sorting based on name rather than id. - public static final boolean USE_PARTY_SEARCH = false; public static final boolean USE_PARTY_FOR_STARTERS = true; //Players level 10 or below can create/invite other players on the given level range. public static final boolean USE_AUTOASSIGN_STARTERS_AP = false; //Beginners level 10 or below have their AP autoassigned (they can't choose to levelup a stat). Set true ONLY if the localhost doesn't support AP assigning for beginners level 10 or below. public static final boolean USE_AUTOASSIGN_SECONDARY_CAP = true;//Prevents AP autoassign from spending on secondary stats after the player class' cap (defined on the autoassign handler) has been reached. @@ -95,8 +94,8 @@ public class ServerConstants { public static final boolean USE_ENFORCE_JOB_LEVEL_RANGE = false;//Caps the player level on the minimum required to advance their current jobs. public static final boolean USE_ENFORCE_JOB_SP_RANGE = false; //Caps the player SP level on the total obtainable by their current jobs. After changing jobs, missing SP will be retrieved. public static final boolean USE_ENFORCE_ITEM_SUGGESTION = false;//Forces the Owl of Minerva and the Cash Shop to always display the defined item array instead of those featured by the players. - public static final boolean USE_ENFORCE_UNMERCHABLE_CASH = true;//Forces players to not sell CASH items via merchants. - public static final boolean USE_ENFORCE_UNMERCHABLE_PET = true; //Forces players to not sell pets via merchants. (since non-named pets gets dirty name and other possible DB-related issues) + public static final boolean USE_ENFORCE_UNMERCHABLE_CASH = false;//Forces players to not sell CASH items via merchants. + public static final boolean USE_ENFORCE_UNMERCHABLE_PET = false; //Forces players to not sell pets via merchants. (since non-named pets gets dirty name and other possible DB-related issues) public static final boolean USE_ENFORCE_MERCHANT_SAVE = true; //Forces automatic DB save on merchant owners, at every item movement on shop. public static final boolean USE_ENFORCE_MDOOR_POSITION = false; //Forces mystic door to be spawned near spawnpoints. public static final boolean USE_SPAWN_LOOT_ON_ANIMATION = false;//Makes loot appear some time after the mob has been killed (following the mob death animation, instead of instantly). diff --git a/src/constants/skills/Legend.java b/src/constants/skills/Legend.java index aabdd13d21..e67742ce66 100644 --- a/src/constants/skills/Legend.java +++ b/src/constants/skills/Legend.java @@ -36,7 +36,7 @@ public class Legend { public static final int MAKER = 20001007; public static final int BAMBOO_THRUST = 20001009; public static final int INVICIBLE_BARRIER = 20001010; - public static final int POWER_EXPLOSION = 20011011; + public static final int POWER_EXPLOSION = 20001011; public static final int METEO_SHOWER = 20001011; public static final int BLESSING_OF_THE_FAIRY = 20000012; public static final int TUTORIAL_SKILL1 = 20000014; diff --git a/src/net/PacketProcessor.java b/src/net/PacketProcessor.java index 2b8d264305..bbea92c5a3 100644 --- a/src/net/PacketProcessor.java +++ b/src/net/PacketProcessor.java @@ -241,13 +241,13 @@ public final class PacketProcessor { registerHandler(RecvOpcode.ACCEPT_FAMILY, new AcceptFamilyHandler()); registerHandler(RecvOpcode.DUEY_ACTION, new DueyHandler()); registerHandler(RecvOpcode.USE_DEATHITEM, new UseDeathItemHandler()); - //registerHandler(RecvOpcode.PLAYER_UPDATE, new PlayerUpdateHandler()); unused registerHandler(RecvOpcode.PLAYER_MAP_TRANSFER, new PlayerMapTransitionHandler()); registerHandler(RecvOpcode.USE_MAPLELIFE, new UseMapleLifeHandler()); registerHandler(RecvOpcode.USE_CATCH_ITEM, new UseCatchItemHandler()); registerHandler(RecvOpcode.MOB_DAMAGE_MOB_FRIENDLY, new MobDamageMobFriendlyHandler()); registerHandler(RecvOpcode.PARTY_SEARCH_REGISTER, new PartySearchRegisterHandler()); registerHandler(RecvOpcode.PARTY_SEARCH_START, new PartySearchStartHandler()); + registerHandler(RecvOpcode.PARTY_SEARCH_UPDATE, new PartySearchUpdateHandler()); registerHandler(RecvOpcode.ITEM_SORT2, new InventorySortHandler()); registerHandler(RecvOpcode.LEFT_KNOCKBACK, new LeftKnockbackHandler()); registerHandler(RecvOpcode.SNOWBALL, new SnowballHandler()); diff --git a/src/net/opcodes/RecvOpcode.java b/src/net/opcodes/RecvOpcode.java index 15a2278227..3d1a942f09 100644 --- a/src/net/opcodes/RecvOpcode.java +++ b/src/net/opcodes/RecvOpcode.java @@ -186,7 +186,7 @@ public enum RecvOpcode { MONSTER_CARNIVAL(0xDA), PARTY_SEARCH_REGISTER(0xDC), PARTY_SEARCH_START(0xDE), - PLAYER_UPDATE(0xDF), + PARTY_SEARCH_UPDATE(0xDF), CHECK_CASH(0xE4), CASHSHOP_OPERATION(0xE5), COUPON_CODE(0xE6), diff --git a/src/net/server/Server.java b/src/net/server/Server.java index 8aa00f8810..cd45f00249 100644 --- a/src/net/server/Server.java +++ b/src/net/server/Server.java @@ -80,8 +80,10 @@ import org.apache.mina.transport.socket.nio.NioSocketAcceptor; import client.MapleClient; import client.MapleCharacter; import client.SkillFactory; +import client.command.CommandsExecutor; import client.inventory.Item; import client.inventory.ItemFactory; +import client.inventory.MaplePet; import client.inventory.manipulator.MapleCashidGenerator; import client.newyear.NewYearCardRecord; import constants.ItemConstants; @@ -838,33 +840,6 @@ public class Server { return rankSystem; } - private static void clearUnreferencedPetIds() { - PreparedStatement ps = null; - Connection con = null; - try { - con = DatabaseConnection.getConnection(); - - ps = con.prepareStatement("UPDATE inventoryitems SET petid = -1, expiration = 0 WHERE petid != -1 AND petid NOT IN (SELECT petid FROM pets)"); - ps.executeUpdate(); - - ps.close(); - con.close(); - } catch(SQLException ex) { - ex.printStackTrace(); - } finally { - try { - if(ps != null && !ps.isClosed()) { - ps.close(); - } - if(con != null && !con.isClosed()) { - con.close(); - } - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - public void init() { Properties p = loadWorldINI(); if(p == null) { @@ -897,7 +872,7 @@ public class Server { sqle.printStackTrace(); } - clearUnreferencedPetIds(); + MaplePet.clearMissingPetsFromDb(); MapleCashidGenerator.loadExistentCashIdsFromDb(); IoBuffer.setUseDirectBuffer(false); @@ -971,6 +946,7 @@ public class Server { MapleSkillbookInformationProvider.getInstance(); OpcodeConstants.generateOpcodeNames(); + CommandsExecutor.getInstance(); } public static void main(String args[]) { diff --git a/src/net/server/audit/locks/MonitoredLockType.java b/src/net/server/audit/locks/MonitoredLockType.java index 50d86fcbfc..1632e91022 100644 --- a/src/net/server/audit/locks/MonitoredLockType.java +++ b/src/net/server/audit/locks/MonitoredLockType.java @@ -65,6 +65,7 @@ public enum MonitoredLockType { PARTY, WORLD_PARTY, WORLD_PARTY_SEARCH_ECHELON, + WORLD_PARTY_SEARCH_QUEUE, WORLD_PARTY_SEARCH_STORAGE, WORLD_SRVMESSAGES, WORLD_PETS, diff --git a/src/net/server/channel/handlers/DenyPartyRequestHandler.java b/src/net/server/channel/handlers/DenyPartyRequestHandler.java index 19b18d84a3..b6f12b4b71 100644 --- a/src/net/server/channel/handlers/DenyPartyRequestHandler.java +++ b/src/net/server/channel/handlers/DenyPartyRequestHandler.java @@ -35,10 +35,15 @@ public final class DenyPartyRequestHandler extends AbstractMaplePacketHandler { @Override public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { slea.readByte(); - MapleCharacter cfrom = c.getChannelServer().getPlayerStorage().getCharacterByName(slea.readMapleAsciiString()); + String[] cname = slea.readMapleAsciiString().split("PS: "); + + MapleCharacter cfrom = c.getChannelServer().getPlayerStorage().getCharacterByName(cname[cname.length - 1]); if (cfrom != null) { - if (MapleInviteCoordinator.answerInvite(InviteType.PARTY, c.getPlayer().getId(), cfrom.getPartyId(), false).getLeft() == InviteResult.DENIED) { - cfrom.getClient().announce(MaplePacketCreator.partyStatusMessage(23, c.getPlayer().getName())); + MapleCharacter chr = c.getPlayer(); + + if (MapleInviteCoordinator.answerInvite(InviteType.PARTY, chr.getId(), cfrom.getPartyId(), false).getLeft() == InviteResult.DENIED) { + chr.updatePartySearchAvailability(chr.getParty() == null); + cfrom.getClient().announce(MaplePacketCreator.partyStatusMessage(23, chr.getName())); } } } diff --git a/src/net/server/channel/handlers/EnterCashShopHandler.java b/src/net/server/channel/handlers/EnterCashShopHandler.java index 7d86d574b8..915bf996d2 100644 --- a/src/net/server/channel/handlers/EnterCashShopHandler.java +++ b/src/net/server/channel/handlers/EnterCashShopHandler.java @@ -61,6 +61,7 @@ public class EnterCashShopHandler extends AbstractMaplePacketHandler { } mc.closePlayerInteractions(); + mc.closePartySearchInteractions(); mc.unregisterChairBuff(); Server.getInstance().getPlayerBuffStorage().addBuffsToStorage(mc.getId(), mc.getAllBuffs()); diff --git a/src/net/server/channel/handlers/EnterMTSHandler.java b/src/net/server/channel/handlers/EnterMTSHandler.java index 4bab7b410f..b62781026e 100644 --- a/src/net/server/channel/handlers/EnterMTSHandler.java +++ b/src/net/server/channel/handlers/EnterMTSHandler.java @@ -87,6 +87,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { } chr.closePlayerInteractions(); + chr.closePartySearchInteractions(); chr.unregisterChairBuff(); Server.getInstance().getPlayerBuffStorage().addBuffsToStorage(chr.getId(), chr.getAllBuffs()); diff --git a/src/net/server/channel/handlers/GuildOperationHandler.java b/src/net/server/channel/handlers/GuildOperationHandler.java index 7d36678730..cb1a41e189 100644 --- a/src/net/server/channel/handlers/GuildOperationHandler.java +++ b/src/net/server/channel/handlers/GuildOperationHandler.java @@ -78,7 +78,8 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { Set eligibleMembers = new HashSet<>(MapleGuild.getEligiblePlayersForGuild(mc)); if (eligibleMembers.size() < ServerConstants.CREATE_GUILD_MIN_PARTNERS) { if (mc.getMap().getAllPlayers().size() < ServerConstants.CREATE_GUILD_MIN_PARTNERS) { - mc.dropMessage(1, "The Guild you are trying to create don't meet the minimum criteria of number of founders."); + // thanks NovaStory for noticing message in need of smoother info + mc.dropMessage(1, "Your Guild doesn't have enough cofounders present here and therefore cannot be created at this time."); } else { // players may be unaware of not belonging on a party in order to become eligible, thanks Hair (Legalize) for pointing this out mc.dropMessage(1, "Please make sure everyone you are trying to invite is neither on a guild nor on a party."); diff --git a/src/net/server/channel/handlers/PartyOperationHandler.java b/src/net/server/channel/handlers/PartyOperationHandler.java index 0583e56408..605ee0f173 100644 --- a/src/net/server/channel/handlers/PartyOperationHandler.java +++ b/src/net/server/channel/handlers/PartyOperationHandler.java @@ -56,6 +56,7 @@ public final class PartyOperationHandler extends AbstractMaplePacketHandler { List partymembers = player.getPartyMembers(); MapleParty.leaveParty(party, c); + player.updatePartySearchAvailability(true); player.partyOperationUpdate(party, partymembers); } break; diff --git a/src/net/server/channel/handlers/PartySearchRegisterHandler.java b/src/net/server/channel/handlers/PartySearchRegisterHandler.java index 905d4cbcdb..e0f3f57030 100644 --- a/src/net/server/channel/handlers/PartySearchRegisterHandler.java +++ b/src/net/server/channel/handlers/PartySearchRegisterHandler.java @@ -30,13 +30,7 @@ import client.MapleClient; * @author Quasar */ public class PartySearchRegisterHandler extends AbstractMaplePacketHandler { - public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - return; //Disabling this for now. -/* MapleCharacter chr = c.getPlayer(); - int min = slea.readInt(); - int max = slea.readInt(); - if (chr.getLevel() < min || chr.getLevel() > max || (max - min) > 30 || min > max) { // Client editing - return; - }*/ - } + + @Override + public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {} } \ No newline at end of file diff --git a/src/net/server/channel/handlers/PartySearchStartHandler.java b/src/net/server/channel/handlers/PartySearchStartHandler.java index c75f083c0e..ca7f1c53f1 100644 --- a/src/net/server/channel/handlers/PartySearchStartHandler.java +++ b/src/net/server/channel/handlers/PartySearchStartHandler.java @@ -21,108 +21,52 @@ */ package net.server.channel.handlers; -import java.util.Collection; - import net.AbstractMaplePacketHandler; import net.server.world.MapleParty; -import server.maps.MapleMap; -import server.maps.MapleMapObject; -import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; +import tools.MaplePacketCreator; import client.MapleCharacter; import client.MapleClient; -import client.MapleJob; -import constants.ServerConstants; -import net.server.world.MaplePartyCharacter; -import net.server.world.PartyOperation; import net.server.world.World; /** * * @author XoticStory * @author BubblesDev + * @author Ronan */ public class PartySearchStartHandler extends AbstractMaplePacketHandler { @Override public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - if(!ServerConstants.USE_PARTY_SEARCH){ - return; - } - - int min = slea.readInt(); - int max = slea.readInt(); - slea.readInt(); // members - int jobs = slea.readInt(); - - MapleParty party = c.getPlayer().getParty(); - if(party == null) return; - - MapleCharacter chr = c.getPlayer(); - MapleMap map = chr.getMap(); - World world = c.getWorldServer(); - - Collection mapobjs = map.getPlayers(); - - for (MapleMapObject mapobj : mapobjs) { - if (party.getMembers().size() > 5) { - break; - } - if (mapobj instanceof MapleCharacter) { - MapleCharacter tchar = (MapleCharacter) mapobj; - int charlvl = tchar.getLevel(); - if (charlvl >= min && charlvl <= max && isValidJob(tchar.getJob(), jobs)) { - if (tchar.getParty() == null) { - MaplePartyCharacter partyplayer = new MaplePartyCharacter(tchar); - tchar.getMap().addPartyMember(tchar); + int min = slea.readInt(); + int max = slea.readInt(); - world.updateParty(party.getId(), PartyOperation.JOIN, partyplayer); - tchar.receivePartyMemberHP(); - tchar.updatePartyMemberHP(); - } - } - } - } - } + MapleCharacter chr = c.getPlayer(); + if (min > max) { + chr.dropMessage(1, "The min. value is higher than the max!"); + c.announce(MaplePacketCreator.enableActions()); + return; + } - private static boolean isValidJob(MapleJob thejob, int jobs) { - int jobid = thejob.getId(); - if (jobid == 0) { - return ((jobs & 2) > 0); - } else if (jobid == 100) { - return ((jobs & 4) > 0); - } else if (jobid > 100 && jobid < 113) { - return ((jobs & 8) > 0); - } else if (jobid > 110 && jobid < 123) { - return ((jobs & 16) > 0); - } else if (jobid > 120 && jobid < 133) { - return ((jobs & 32) > 0); - } else if (jobid == 200) { - return ((jobs & 64) > 0); - } else if (jobid > 209 && jobid < 213) { - return ((jobs & 128) > 0); - } else if (jobid > 219 && jobid < 223) { - return ((jobs & 256) > 0); - } else if (jobid > 229 && jobid < 233) { - return ((jobs & 512) > 0); - } else if (jobid == 500) { - return ((jobs & 1024) > 0); - } else if (jobid > 509 && jobid < 513) { - return ((jobs & 2048) > 0); - } else if (jobid > 519 && jobid < 523) { - return ((jobs & 4096) > 0); - } else if (jobid == 400) { - return ((jobs & 8192) > 0); - } else if (jobid > 400 && jobid < 413) { - return ((jobs & 16384) > 0); - } else if (jobid > 419 && jobid < 423) { - return ((jobs & 32768) > 0); - } else if (jobid == 300) { - return ((jobs & 65536) > 0); - } else if (jobid > 300 && jobid < 313) { - return ((jobs & 131072) > 0); - } else if (jobid > 319 && jobid < 323) { - return ((jobs & 262144) > 0); - } - return false; + if (max - min > 30) { + chr.dropMessage(1, "You can only search for party members within a range of 30 levels."); + c.announce(MaplePacketCreator.enableActions()); + return; + } + + if (chr.getLevel() < min || chr.getLevel() > max) { + chr.dropMessage(1, "The range of level for search has to include your own level."); + c.announce(MaplePacketCreator.enableActions()); + return; + } + + slea.readInt(); // members + int jobs = slea.readInt(); + + MapleParty party = c.getPlayer().getParty(); + if (party == null || !c.getPlayer().isPartyLeader()) return; + + World world = c.getWorldServer(); + world.getPartySearchCoordinator().registerPartyLeader(chr, min, max, jobs); } } \ No newline at end of file diff --git a/src/net/server/channel/handlers/PlayerUpdateHandler.java b/src/net/server/channel/handlers/PartySearchUpdateHandler.java similarity index 85% rename from src/net/server/channel/handlers/PlayerUpdateHandler.java rename to src/net/server/channel/handlers/PartySearchUpdateHandler.java index 672c2af3a6..fb448c7f3d 100644 --- a/src/net/server/channel/handlers/PlayerUpdateHandler.java +++ b/src/net/server/channel/handlers/PartySearchUpdateHandler.java @@ -25,8 +25,10 @@ import client.MapleClient; import net.AbstractMaplePacketHandler; import tools.data.input.SeekableLittleEndianAccessor; -public final class PlayerUpdateHandler extends AbstractMaplePacketHandler { +public final class PartySearchUpdateHandler extends AbstractMaplePacketHandler { @Override - public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {} + public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { + c.getWorldServer().getPartySearchCoordinator().unregisterPartyLeader(c.getPlayer()); + } } \ No newline at end of file diff --git a/src/net/server/channel/handlers/PlayerInteractionHandler.java b/src/net/server/channel/handlers/PlayerInteractionHandler.java index 9281dd3f66..cc0d4c9ba3 100644 --- a/src/net/server/channel/handlers/PlayerInteractionHandler.java +++ b/src/net/server/channel/handlers/PlayerInteractionHandler.java @@ -608,6 +608,8 @@ public final class PlayerInteractionHandler extends AbstractMaplePacketHandler { MaplePlayerShop shop = chr.getPlayerShop(); MapleHiredMerchant merchant = chr.getHiredMerchant(); if (shop != null && shop.isOwner(chr)) { + System.out.println(shopItem.getItem().getPet() + " " + shopItem.getItem().getPetId()); + System.out.println(ivItem.getPet() + " " + ivItem.getPetId()); if (shop.isOpen() || !shop.addItem(shopItem)) { // thanks Vcoc for pointing an exploit with unlimited shop slots c.announce(MaplePacketCreator.serverNotice(1, "You can't sell it anymore.")); return; diff --git a/src/net/server/channel/handlers/TakeDamageHandler.java b/src/net/server/channel/handlers/TakeDamageHandler.java index 17d3b65ce2..63bb21195b 100644 --- a/src/net/server/channel/handlers/TakeDamageHandler.java +++ b/src/net/server/channel/handlers/TakeDamageHandler.java @@ -107,7 +107,7 @@ public final class TakeDamageHandler extends AbstractMaplePacketHandler { if (damage > 0) { loseItems = attacker.getStats().loseItem(); if (loseItems != null) { - if (chr.getBuffEffect(MapleBuffStat.ARIANT_PQ_SHIELD) == null) { + if (chr.getBuffEffect(MapleBuffStat.AURA) == null) { MapleInventoryType type; final int playerpos = chr.getPosition().x; byte d = 1; diff --git a/src/net/server/coordinator/MaplePartySearchCoordinator.java b/src/net/server/coordinator/MaplePartySearchCoordinator.java new file mode 100644 index 0000000000..9bb579f314 --- /dev/null +++ b/src/net/server/coordinator/MaplePartySearchCoordinator.java @@ -0,0 +1,366 @@ +/* + This file is part of the HeavenMS MapleStory Server + Copyleft (L) 2016 - 2018 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 . +*/ +package net.server.coordinator; + +import client.MapleCharacter; +import client.MapleJob; +import constants.ServerConstants; +import java.io.File; +import net.server.world.MapleParty; +import net.server.coordinator.MapleInviteCoordinator.InviteType; +import net.server.coordinator.partysearch.PartySearchEchelon; +import net.server.coordinator.partysearch.PartySearchStorage; +import tools.MaplePacketCreator; +import tools.Pair; + +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock; +import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock; +import net.server.audit.locks.MonitoredLockType; +import net.server.audit.locks.MonitoredReentrantReadWriteLock; +import provider.MapleData; +import provider.MapleDataProviderFactory; +import provider.MapleDataTool; + +/** + * + * @author Ronan + */ +public class MaplePartySearchCoordinator { + + private Map storage = new HashMap<>(); + private Map upcomers = new HashMap<>(); + + private List leaderQueue = new LinkedList<>(); + private final ReentrantReadWriteLock leaderQueueLock = new MonitoredReentrantReadWriteLock(MonitoredLockType.WORLD_PARTY_SEARCH_QUEUE, true); + private final ReadLock leaderQueueRLock = leaderQueueLock.readLock(); + private final WriteLock leaderQueueWLock = leaderQueueLock.writeLock(); + + private Map searchLeaders = new HashMap<>(); + private Map searchSettings = new HashMap<>(); + + private static Map> mapNeighbors = fetchNeighbouringMaps(); + private static Map jobTable = instantiateJobTable(); + + private static Map> fetchNeighbouringMaps() { + Map> mapLinks = new HashMap<>(); + + MapleData data = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/" + "Etc.wz")).getData("MapNeighbors.img"); + if (data != null) { + for (MapleData mapdata : data.getChildren()) { + int mapid = Integer.valueOf(mapdata.getName()); + + Set neighborMaps = new HashSet<>(); + mapLinks.put(mapid, neighborMaps); + + for (MapleData neighbordata : mapdata.getChildren()) { + int neighborid = MapleDataTool.getInt(neighbordata, 999999999); + + if (neighborid != 999999999) { + neighborMaps.add(neighborid); + } + } + } + } + + return mapLinks; + } + + public static boolean isInVicinity(int callerMapid, int calleeMapid) { + Set vicinityMapids = mapNeighbors.get(calleeMapid); + + if (vicinityMapids != null) { + return vicinityMapids.contains(calleeMapid); + } else { + int callerRange = callerMapid / 10000000; + if (callerRange >= 90) { + return callerRange == (calleeMapid / 1000000); + } else { + return callerRange == (calleeMapid / 10000000); + } + } + } + + private static Map instantiateJobTable() { + Map table = new HashMap<>(); + + List> jobSearchTypes = new LinkedList>() {{ + add(new Pair<>(MapleJob.MAPLELEAF_BRIGADIER.getId(), 0)); + add(new Pair<>(0, 0)); + add(new Pair<>(MapleJob.ARAN1.getId(), 0)); + add(new Pair<>(100, 3)); + add(new Pair<>(MapleJob.DAWNWARRIOR1.getId(), 0)); + add(new Pair<>(200, 3)); + add(new Pair<>(MapleJob.BLAZEWIZARD1.getId(), 0)); + add(new Pair<>(500, 2)); + add(new Pair<>(MapleJob.THUNDERBREAKER1.getId(), 0)); + add(new Pair<>(400, 2)); + add(new Pair<>(MapleJob.NIGHTWALKER1.getId(), 0)); + add(new Pair<>(300, 2)); + add(new Pair<>(MapleJob.WINDARCHER1.getId(), 0)); + add(new Pair<>(MapleJob.EVAN1.getId(), 0)); + }}; + + int i = 0; + for (Pair p : jobSearchTypes) { + table.put(i, MapleJob.getById(p.getLeft())); + i++; + + for (int j = 1; j <= p.getRight(); j++) { + table.put(i, MapleJob.getById(p.getLeft() + 10 * j)); + i++; + } + } + + return table; + } + + private class LeaderSearchMetadata { + private int minLevel; + private int maxLevel; + private List searchedJobs; + + private int reentryCount; + + private List decodeSearchedJobs(int jobsSelected) { + List searchedJobs = new LinkedList<>(); + + int topByte = (int)((Math.log(jobsSelected) / Math.log(2)) + 1e-5); + + for (int i = 0; i <= topByte; i++) { + if (jobsSelected % 2 == 1) { + MapleJob job = jobTable.get(i); + if (job != null) { + searchedJobs.add(job); + } + } + + jobsSelected = jobsSelected >> 1; + if (jobsSelected == 0) { + break; + } + } + + return searchedJobs; + } + + private LeaderSearchMetadata(int minLevel, int maxLevel, int jobs) { + this.minLevel = minLevel; + this.maxLevel = maxLevel; + this.searchedJobs = decodeSearchedJobs(jobs); + this.reentryCount = 0; + } + + } + + public MaplePartySearchCoordinator() { + for (MapleJob job : jobTable.values()) { + storage.put(job, new PartySearchStorage()); + upcomers.put(job, new PartySearchEchelon()); + } + } + + public void attachPlayer(MapleCharacter chr) { + upcomers.get(getPartySearchJob(chr.getJob())).attachPlayer(chr); + } + + public void detachPlayer(MapleCharacter chr) { + MapleJob psJob = getPartySearchJob(chr.getJob()); + + if (!upcomers.get(psJob).detachPlayer(chr)) { + storage.get(psJob).detachPlayer(chr); + } + } + + public void updatePartySearchStorage() { + for (Entry psUpdate : upcomers.entrySet()) { + storage.get(psUpdate.getKey()).updateStorage(psUpdate.getValue().exportEchelon()); + } + } + + private static MapleJob getPartySearchJob(MapleJob job) { + if (job.getJobNiche() == 0) { + return MapleJob.BEGINNER; + } else if (job.getId() < 600) { // explorers + return MapleJob.getById((job.getId() / 10) * 10); + } else if (job.getId() >= 1000) { + return MapleJob.getById((job.getId() / 100) * 100); + } else { + return MapleJob.MAPLELEAF_BRIGADIER; + } + } + + private MapleCharacter fetchPlayer(int callerCid, int callerMapid, MapleJob job, int minLevel, int maxLevel) { + return storage.get(getPartySearchJob(job)).callPlayer(callerCid, callerMapid, minLevel, maxLevel); + } + + private void addQueueLeader(MapleCharacter leader) { + leaderQueueRLock.lock(); + try { + leaderQueue.add(leader); + } finally { + leaderQueueRLock.unlock(); + } + } + + private void removeQueueLeader(MapleCharacter leader) { + leaderQueueRLock.lock(); + try { + leaderQueue.remove(leader); + } finally { + leaderQueueRLock.unlock(); + } + } + + public void registerPartyLeader(MapleCharacter leader, int minLevel, int maxLevel, int jobs) { + if (searchLeaders.containsKey(leader.getId())) return; + + searchSettings.put(leader.getId(), new LeaderSearchMetadata(minLevel, maxLevel, jobs)); + searchLeaders.put(leader.getId(), leader); + addQueueLeader(leader); + } + + public void unregisterPartyLeader(MapleCharacter leader) { + MapleCharacter toRemove = searchLeaders.remove(leader.getId()); + if (toRemove != null) { + removeQueueLeader(toRemove); + searchSettings.remove(leader.getId()); + } + } + + private MapleCharacter searchPlayer(MapleCharacter leader) { + LeaderSearchMetadata settings = searchSettings.get(leader.getId()); + if (settings != null) { + int minLevel = settings.minLevel, maxLevel = settings.maxLevel; + Collections.shuffle(settings.searchedJobs); + + int leaderCid = leader.getId(); + int leaderMapid = leader.getMapId(); + for (MapleJob searchJob : settings.searchedJobs) { + MapleCharacter chr = fetchPlayer(leaderCid, leaderMapid, searchJob, minLevel, maxLevel); + if (chr != null) { + return chr; + } + } + } + + return null; + } + + private boolean sendPartyInviteFromSearch(MapleCharacter chr, MapleCharacter leader) { + if (chr == null) { + return false; + } + + int partyid = leader.getPartyId(); + if (partyid < 0) { + return false; + } + + if (MapleInviteCoordinator.createInvite(InviteType.PARTY, leader, partyid, chr.getId())) { + chr.disablePartySearchInvite(leader.getId()); + chr.announce(MaplePacketCreator.partySearchInvite(leader)); + return true; + } else { + return false; + } + } + + private Pair, List> fetchQueuedLeaders() { + List queuedLeaders, nextLeaders; + + leaderQueueWLock.lock(); + try { + int splitIdx = Math.min(leaderQueue.size(), 100); + + queuedLeaders = new LinkedList<>(leaderQueue.subList(0, splitIdx)); + nextLeaders = new LinkedList<>(leaderQueue.subList(splitIdx, leaderQueue.size())); + } finally { + leaderQueueWLock.unlock(); + } + + return new Pair<>(queuedLeaders, nextLeaders); + } + + public void runPartySearch() { + Pair, List> queuedLeaders = fetchQueuedLeaders(); + + List searchedLeaders = new LinkedList<>(); + List recalledLeaders = new LinkedList<>(); + List expiredLeaders = new LinkedList<>(); + + for (MapleCharacter leader : queuedLeaders.getLeft()) { + MapleCharacter chr = searchPlayer(leader); + if (sendPartyInviteFromSearch(chr, leader)) { + searchedLeaders.add(leader); + } else { + LeaderSearchMetadata settings = searchSettings.get(leader.getId()); + if (settings != null) { + if (settings.reentryCount < ServerConstants.PARTY_SEARCH_REENTRY_LIMIT) { + settings.reentryCount += 1; + recalledLeaders.add(leader); + } else { + expiredLeaders.add(leader); + } + } + } + } + + leaderQueueRLock.lock(); + try { + leaderQueue.clear(); + leaderQueue.addAll(queuedLeaders.getRight()); + + try { + leaderQueue.addAll(25, recalledLeaders); + } catch (IndexOutOfBoundsException e) { + leaderQueue.addAll(recalledLeaders); + } + } finally { + leaderQueueRLock.unlock(); + } + + for (MapleCharacter leader : searchedLeaders) { + MapleParty party = leader.getParty(); + if (party != null && party.getMembers().size() < 6) { + addQueueLeader(leader); + } else { + if (leader.isLoggedinWorld()) leader.dropMessage(5, "Your Party Search token session has finished as your party reached full capacity."); + searchLeaders.remove(leader.getId()); + searchSettings.remove(leader.getId()); + } + } + + for (MapleCharacter leader : expiredLeaders) { + if (leader.isLoggedinWorld()) leader.dropMessage(5, "Your Party Search token session expired, please stop your Party Search and retry again later."); + searchLeaders.remove(leader.getId()); + searchSettings.remove(leader.getId()); + } + } + +} diff --git a/src/net/server/coordinator/partysearch/PartySearchCharacter.java b/src/net/server/coordinator/partysearch/PartySearchCharacter.java new file mode 100644 index 0000000000..e7cdf50d07 --- /dev/null +++ b/src/net/server/coordinator/partysearch/PartySearchCharacter.java @@ -0,0 +1,79 @@ +/* + This file is part of the HeavenMS MapleStory Server + Copyleft (L) 2016 - 2018 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 . +*/ +package net.server.coordinator.partysearch; + +import client.MapleCharacter; +import net.server.coordinator.MaplePartySearchCoordinator; + +import java.lang.ref.WeakReference; + +/** + * + * @author Ronan + */ +public class PartySearchCharacter { + + private WeakReference player; + private int level; + private boolean queued; + + public PartySearchCharacter(MapleCharacter chr) { + player = new WeakReference(chr); + level = chr.getLevel(); + queued = true; + } + + @Override + public String toString() { + MapleCharacter chr = player.get(); + return chr == null ? "[empty]" : chr.toString(); + } + + public MapleCharacter callPlayer(int leaderid, int callerMapid) { + MapleCharacter chr = player.get(); + if (chr == null || !MaplePartySearchCoordinator.isInVicinity(callerMapid, chr.getMapId())) { + return null; + } + + if (chr.hasDisabledPartySearchInvite(leaderid)) { + return null; + } + + queued = false; + if (chr.isLoggedinWorld() && chr.getParty() == null) { + return chr; + } else { + return null; + } + } + + public MapleCharacter getPlayer() { + return player.get(); + } + + public int getLevel() { + return level; + } + + public boolean isQueued() { + return queued; + } + +} diff --git a/src/net/server/coordinator/partysearch/PartySearchEchelon.java b/src/net/server/coordinator/partysearch/PartySearchEchelon.java new file mode 100644 index 0000000000..ff0b08fd7d --- /dev/null +++ b/src/net/server/coordinator/partysearch/PartySearchEchelon.java @@ -0,0 +1,86 @@ +/* + This file is part of the HeavenMS MapleStory Server + Copyleft (L) 2016 - 2018 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 . +*/ +package net.server.coordinator.partysearch; + +import client.MapleCharacter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock; +import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock; +import net.server.audit.locks.MonitoredLockType; +import net.server.audit.locks.MonitoredReentrantReadWriteLock; + +import java.lang.ref.WeakReference; + +/** + * + * @author Ronan + */ +public class PartySearchEchelon { + + private final ReentrantReadWriteLock psLock = new MonitoredReentrantReadWriteLock(MonitoredLockType.WORLD_PARTY_SEARCH_ECHELON, true); + private final ReadLock psRLock = psLock.readLock(); + private final WriteLock psWLock = psLock.writeLock(); + + private Map> echelon = new HashMap<>(20); + + public List exportEchelon() { + psWLock.lock(); // reversing read/write actually could provide a lax yet sure performance/precision trade-off here + try { + List players = new ArrayList<>(echelon.size()); + + for (WeakReference chrRef : echelon.values()) { + MapleCharacter chr = chrRef.get(); + if (chr != null) { + players.add(chr); + } + } + + echelon.clear(); + return players; + } finally { + psWLock.unlock(); + } + } + + public void attachPlayer(MapleCharacter chr) { + psRLock.lock(); + try { + echelon.put(chr.getId(), new WeakReference<>(chr)); + } finally { + psRLock.unlock(); + } + } + + public boolean detachPlayer(MapleCharacter chr) { + psRLock.lock(); + try { + return echelon.remove(chr.getId()) != null; + } finally { + psRLock.unlock(); + } + } + +} diff --git a/src/net/server/coordinator/partysearch/PartySearchStorage.java b/src/net/server/coordinator/partysearch/PartySearchStorage.java new file mode 100644 index 0000000000..a5cc871548 --- /dev/null +++ b/src/net/server/coordinator/partysearch/PartySearchStorage.java @@ -0,0 +1,258 @@ +/* + This file is part of the HeavenMS MapleStory Server + Copyleft (L) 2016 - 2018 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 . +*/ +package net.server.coordinator.partysearch; + +import client.MapleCharacter; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock; +import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock; +import net.server.audit.locks.MonitoredLockType; +import net.server.audit.locks.MonitoredReentrantReadWriteLock; + +import java.awt.geom.Line2D; + +/** + * + * @author Ronan + */ +public class PartySearchStorage { + + private List storage = new ArrayList<>(20); + private PartySearchEmptyIntervals emptyManager = new PartySearchEmptyIntervals(); + + private class PartySearchEmptyIntervals { + + private List emptyLimits = new ArrayList<>(); + + private void refitEmptyIntervals(int st, int en, int minLevel, int maxLevel) { + List checkLimits = new ArrayList<>(emptyLimits.subList(st, en)); + + float newLimitX1, newLimitX2; + if (!checkLimits.isEmpty()) { + Line2D firstLimit = checkLimits.get(0); + Line2D lastLimit = checkLimits.get(checkLimits.size() - 1); + + newLimitX1 = (float) ((minLevel < firstLimit.getX1()) ? minLevel : firstLimit.getX1()); + newLimitX2 = (float) ((maxLevel > lastLimit.getX2()) ? maxLevel : lastLimit.getX2()); + + for (Line2D limit : checkLimits) { + emptyLimits.remove(st); + } + } else { + newLimitX1 = minLevel; + newLimitX2 = maxLevel; + } + + emptyLimits.add(st, new Line2D.Float((float) newLimitX1, 0, (float) newLimitX2, 0)); + } + + private int bsearchInterval(int level) { + int st = 0, en = emptyLimits.size() - 1; + + int mid, idx; + while (en >= st) { + idx = (st + en) / 2; + mid = (int) emptyLimits.get(idx).getX1(); + + if (mid == level) { + return idx; + } else if (mid < level) { + st = idx + 1; + } else { + en = idx - 1; + } + } + + return en; + } + + public void addEmptyInterval(int fromLevel, int toLevel) { + synchronized (emptyLimits) { // adding intervals occurs on a same-thread process, so this is actually not performance grinding + int st = bsearchInterval(fromLevel); + if (st < 0) { + st = 0; + } else if (emptyLimits.get(st).getX2() < fromLevel) { + st += 1; + } + + int en = bsearchInterval(toLevel); + if (en < st) en = st - 1; + + refitEmptyIntervals(st, en + 1, fromLevel, toLevel); + } + } + + public boolean isInEmptyInterval(int minLevel, int maxLevel) { + synchronized (emptyLimits) { + int idx = bsearchInterval(minLevel); + return idx >= 0 && maxLevel <= emptyLimits.get(idx).getX2(); + } + } + + public void clearEmptyInterval() { + synchronized (emptyLimits) { + emptyLimits.clear(); + } + } + + } + + private final ReentrantReadWriteLock psLock = new MonitoredReentrantReadWriteLock(MonitoredLockType.WORLD_PARTY_SEARCH_STORAGE, true); + private final ReadLock psRLock = psLock.readLock(); + private final WriteLock psWLock = psLock.writeLock(); + + public List getStorageList() { + psRLock.lock(); + try { + return new ArrayList<>(storage); + } finally { + psRLock.unlock(); + } + } + + private Map fetchRemainingPlayers() { + List players = getStorageList(); + Map remainingPlayers = new HashMap<>(players.size()); + + for (PartySearchCharacter psc : players) { + if (psc.isQueued()) { + MapleCharacter chr = psc.getPlayer(); + if (chr != null) { + remainingPlayers.put(chr.getId(), chr); + } + } + } + + return remainingPlayers; + } + + public void updateStorage(Collection echelon) { + Map newcomers = new HashMap<>(); + for (MapleCharacter chr : echelon) { + newcomers.put(chr.getId(), chr); + } + + Map curStorage = fetchRemainingPlayers(); + curStorage.putAll(newcomers); + + List pscList = new ArrayList<>(curStorage.size()); + for (MapleCharacter chr : curStorage.values()) { + pscList.add(new PartySearchCharacter(chr)); + } + + Collections.sort(pscList, new Comparator() { + @Override + public int compare(PartySearchCharacter c1, PartySearchCharacter c2) + { + int levelP1 = c1.getLevel(), levelP2 = c2.getLevel(); + return levelP1 > levelP2 ? 1 : (levelP1 == levelP2 ? 0 : -1); + } + }); + + psWLock.lock(); + try { + storage.clear(); + storage.addAll(pscList); + } finally { + psWLock.unlock(); + } + + emptyManager.clearEmptyInterval(); + } + + private static int bsearchStorage(List storage, int level) { + int st = 0, en = storage.size() - 1; + + int mid, idx; + while (en >= st) { + idx = (st + en) / 2; + mid = storage.get(idx).getLevel(); + + if (mid == level) { + return idx; + } else if (mid < level) { + st = idx + 1; + } else { + en = idx - 1; + } + } + + return en; + } + + public MapleCharacter callPlayer(int callerCid, int callerMapid, int minLevel, int maxLevel) { + if (emptyManager.isInEmptyInterval(minLevel, maxLevel)) { + return null; + } + + List pscList = getStorageList(); + + int idx = bsearchStorage(pscList, maxLevel); + for (int i = idx; i >= 0; i--) { + PartySearchCharacter psc = pscList.get(i); + if (!psc.isQueued()) { + continue; + } + + if (psc.getLevel() < minLevel) { + break; + } + + MapleCharacter chr = psc.callPlayer(callerCid, callerMapid); + if (chr != null) { + return chr; + } + } + + emptyManager.addEmptyInterval(minLevel, maxLevel); + return null; + } + + public void detachPlayer(MapleCharacter chr) { + PartySearchCharacter toRemove = null; + for (PartySearchCharacter psc : getStorageList()) { + MapleCharacter player = psc.getPlayer(); + + if (player != null && player.getId() == chr.getId()) { + toRemove = psc; + break; + } + } + + if (toRemove != null) { + psWLock.lock(); + try { + storage.remove(toRemove); + } finally { + psWLock.unlock(); + } + } + } + +} diff --git a/src/net/server/worker/PartySearchWorker.java b/src/net/server/worker/PartySearchWorker.java new file mode 100644 index 0000000000..aefa89325d --- /dev/null +++ b/src/net/server/worker/PartySearchWorker.java @@ -0,0 +1,38 @@ +/* + This file is part of the HeavenMS MapleStory Server + Copyleft (L) 2016 - 2018 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 . +*/ +package net.server.worker; + +import net.server.world.World; + +/** + * + * @author Ronan + */ +public class PartySearchWorker extends BaseWorker implements Runnable { + + @Override + public void run() { + wserv.runPartySearchUpdateSchedule(); + } + + public PartySearchWorker(World world) { + super(world); + } +} diff --git a/src/net/server/world/MapleParty.java b/src/net/server/world/MapleParty.java index 2dec908d1c..728cfbe4a4 100644 --- a/src/net/server/world/MapleParty.java +++ b/src/net/server/world/MapleParty.java @@ -341,7 +341,8 @@ public class MapleParty { player.setMPC(partyplayer); player.getMap().addPartyMember(player); player.silentPartyUpdate(); - + + player.updatePartySearchAvailability(false); player.partyOperationUpdate(party, null); player.announce(MaplePacketCreator.partyCreated(party, partyplayer.getId())); @@ -370,7 +371,9 @@ public class MapleParty { world.updateParty(party.getId(), PartyOperation.JOIN, partyplayer); player.receivePartyMemberHP(); player.updatePartyMemberHP(); - + + player.resetPartySearchInvite(party.getLeaderId()); + player.updatePartySearchAvailability(false); player.partyOperationUpdate(party, null); return true; } else { @@ -466,7 +469,8 @@ public class MapleParty { emc.setParty(null); world.updateParty(party.getId(), PartyOperation.EXPEL, expelled); - + + emc.updatePartySearchAvailability(true); emc.partyOperationUpdate(party, partyMembers); } else { world.updateParty(party.getId(), PartyOperation.EXPEL, expelled); diff --git a/src/net/server/world/World.java b/src/net/server/world/World.java index b4fef1e337..db516bca89 100644 --- a/src/net/server/world/World.java +++ b/src/net/server/world/World.java @@ -70,6 +70,7 @@ import net.server.worker.FishingWorker; import net.server.worker.HiredMerchantWorker; import net.server.worker.MapOwnershipWorker; import net.server.worker.MountTirednessWorker; +import net.server.worker.PartySearchWorker; import net.server.worker.PetFullnessWorker; import net.server.worker.ServerMessageWorker; import net.server.worker.TimedMapObjectWorker; @@ -94,6 +95,7 @@ import net.server.coordinator.MapleInviteCoordinator; import net.server.coordinator.MapleInviteCoordinator.InviteResult; import net.server.coordinator.MapleInviteCoordinator.InviteType; import net.server.coordinator.MapleMatchCheckerCoordinator; +import net.server.coordinator.MaplePartySearchCoordinator; /** * @@ -115,6 +117,7 @@ public class World { private Map gsStore = new HashMap<>(); private PlayerStorage players = new PlayerStorage(); private MapleMatchCheckerCoordinator matchChecker = new MapleMatchCheckerCoordinator(); + private MaplePartySearchCoordinator partySearch = new MaplePartySearchCoordinator(); private final ReentrantReadWriteLock chnLock = new MonitoredReentrantReadWriteLock(MonitoredLockType.WORLD_CHANNELS, true); private ReadLock chnRLock = chnLock.readLock(); @@ -170,6 +173,7 @@ public class World { private ScheduledFuture marriagesSchedule; private ScheduledFuture mapOwnershipSchedule; private ScheduledFuture fishingSchedule; + private ScheduledFuture partySearchSchedule; public World(int world, int flag, String eventmsg, int exprate, int droprate, int bossdroprate, int mesorate, int questrate, int travelrate, int fishingrate) { this.id = world; @@ -202,6 +206,7 @@ public class World { marriagesSchedule = tman.register(new WeddingReservationWorker(this), ServerConstants.WEDDING_RESERVATION_INTERVAL * 60 * 1000, ServerConstants.WEDDING_RESERVATION_INTERVAL * 60 * 1000); mapOwnershipSchedule = tman.register(new MapOwnershipWorker(this), 20 * 1000, 20 * 1000); fishingSchedule = tman.register(new FishingWorker(this), 10 * 1000, 10 * 1000); + partySearchSchedule = tman.register(new PartySearchWorker(this), 10 * 1000, 10 * 1000); } @@ -494,6 +499,10 @@ public class World { public MapleMatchCheckerCoordinator getMatchCheckerCoordinator() { return matchChecker; } + + public MaplePartySearchCoordinator getPartySearchCoordinator() { + return partySearch; + } public void addPlayer(MapleCharacter chr) { players.addPlayer(chr); @@ -1975,6 +1984,11 @@ public class World { } } + public void runPartySearchUpdateSchedule() { + partySearch.updatePartySearchStorage(); + partySearch.runPartySearch(); + } + private void clearWorldData() { List pList; partyLock.lock(); @@ -2061,6 +2075,11 @@ public class World { fishingSchedule = null; } + if(partySearchSchedule != null) { + partySearchSchedule.cancel(false); + partySearchSchedule = null; + } + players.disconnectAll(); players = null; diff --git a/src/server/MapleStatEffect.java b/src/server/MapleStatEffect.java index 62fcb526e4..2e8ac01bc8 100644 --- a/src/server/MapleStatEffect.java +++ b/src/server/MapleStatEffect.java @@ -146,7 +146,55 @@ public class MapleStatEffect { private Point lt, rb; private byte bulletCount, bulletConsume; private byte mapProtection; - + private CardItemupStats cardStats; + + private static class CardItemupStats { + protected int itemCode, prob; + private List> areas; + + private CardItemupStats(int code, int prob, List> areas) { + this.itemCode = code; + this.prob = prob; + this.areas = areas; + } + + private boolean isInArea(int mapid) { + if (this.areas == null) { + return true; + } + + for (Pair a : this.areas) { + if (mapid >= a.left && mapid <= a.right) { + return true; + } + } + + return false; + } + } + + public boolean isActive(int mapid) { + return cardStats == null || cardStats.isInArea(mapid); + } + + public int getCardRate(int mapid, int itemid) { + if (cardStats != null) { + if (cardStats.itemCode == Integer.MAX_VALUE) { + return cardStats.prob; + } else if (cardStats.itemCode < 1000) { + if (itemid / 10000 == cardStats.itemCode) { + return cardStats.prob; + } + } else { + if (itemid == cardStats.itemCode) { + return cardStats.prob; + } + } + } + + return 0; + } + public static MapleStatEffect loadSkillEffectFromData(MapleData source, int skillid, boolean overtime) { return loadFromData(source, skillid, true, overtime); } @@ -248,7 +296,7 @@ public class MapleStatEffect { ret.jump = (short) MapleDataTool.getInt("jump", source, 0); ret.barrier = MapleDataTool.getInt("barrier", source, 0); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.ARIANT_PQ_SHIELD, ret.barrier); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.AURA, ret.barrier); ret.mapProtection = mapProtection(sourceid); addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MAP_PROTECTION, Integer.valueOf(ret.mapProtection)); @@ -303,6 +351,65 @@ public class MapleStatEffect { addBuffStatPairToListIfNotZero(statups, MapleBuffStat.COUPON_DRP3, 1); break; } + } else if (isMonsterCard(sourceid)) { + int prob = 0, itemupCode = Integer.MAX_VALUE; + List> areas = null; + + MapleData con = source.getChildByPath("con"); + if (con != null) { + areas = new ArrayList<>(3); + + for (MapleData conData : con.getChildren()) { + int startMap = MapleDataTool.getInt("sMap", conData, 0); + int endMap = MapleDataTool.getInt("eMap", conData, 0); + + areas.add(new Pair<>(startMap, endMap)); + } + } + + if (MapleDataTool.getInt("mesoupbyitem", source, 0) != 0) { + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MESO_UP_BY_ITEM, 4); + prob = MapleDataTool.getInt("prob", source, 1); + } + + int itemupType = MapleDataTool.getInt("itemupbyitem", source, 0); + if (itemupType != 0) { + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.ITEM_UP_BY_ITEM, 4); + prob = MapleDataTool.getInt("prob", source, 1); + + switch (itemupType) { + case 2: + itemupCode = MapleDataTool.getInt("itemCode", source, 1); + break; + + case 3: + itemupCode = MapleDataTool.getInt("itemRange", source, 1); // 3 digits + break; + } + } + + if (MapleDataTool.getInt("respectPimmune", source, 0) != 0) { + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.RESPECT_PIMMUNE, 4); + } + + if (MapleDataTool.getInt("respectMimmune", source, 0) != 0) { + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.RESPECT_MIMMUNE, 4); + } + + if (MapleDataTool.getString("defenseAtt", source, null) != null) { + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.DEFENSE_ATT, 4); + } + + if (MapleDataTool.getString("defenseState", source, null) != null) { + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.DEFENSE_STATE, 4); + } + + int thaw = MapleDataTool.getInt("thaw", source, 0); + if (thaw != 0) { + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MAP_PROTECTION, thaw > 0 ? 1 : 2); + } + + ret.cardStats = new CardItemupStats(itemupCode, prob, areas); } else if (isExpIncrease(sourceid)) { addBuffStatPairToListIfNotZero(statups, MapleBuffStat.EXP_INCREASE, MapleDataTool.getInt("expinc", source, 0)); } @@ -1139,7 +1246,7 @@ public class MapleStatEffect { target.announce(MaplePacketCreator.giveBuff((skill ? sourceid : -sourceid), (int) leftDuration, activeStats)); } } - + private void applyBuffEffect(MapleCharacter applyfrom, MapleCharacter applyto, boolean primary) { if (!isMonsterRiding() && !isCouponBuff() && !isMysticDoor() && !isHyperBody() && !isCombo()) { // last mystic door already dispelled if it has been used before. applyto.cancelEffect(this, true, -1); @@ -1208,7 +1315,7 @@ public class MapleStatEffect { if (localstatups.size() > 0) { byte[] buff = null; byte[] mbuff = null; - if (getSummonMovementType() == null) { + if (getSummonMovementType() == null && this.isActive(applyto.getMapId())) { buff = MaplePacketCreator.giveBuff((skill ? sourceid : -sourceid), localDuration, localstatups); } if (isDash()) { @@ -1253,7 +1360,7 @@ public class MapleStatEffect { List> stat = Collections.singletonList(new Pair<>(MapleBuffStat.MORPH, Integer.valueOf(getMorph(applyto)))); mbuff = MaplePacketCreator.giveForeignBuff(applyto.getId(), stat); } else if (isAriantShield()) { - List> stat = Collections.singletonList(new Pair<>(MapleBuffStat.ARIANT_PQ_SHIELD, 1)); + List> stat = Collections.singletonList(new Pair<>(MapleBuffStat.AURA, 1)); mbuff = MaplePacketCreator.giveForeignBuff(applyto.getId(), stat); } @@ -1495,6 +1602,11 @@ public class MapleStatEffect { public static boolean isAriantShield(int sourceid) { return sourceid == 2022269; } + + public static boolean isMonsterCard(int sourceid) { + int itemType = sourceid / 10000; + return itemType == 238; + } private boolean isDs() { return skill && (sourceid == Rogue.DARK_SIGHT || sourceid == NightWalker.DARK_SIGHT); diff --git a/src/server/life/MapleMonster.java b/src/server/life/MapleMonster.java index db3e2ae569..e1492fa3b7 100644 --- a/src/server/life/MapleMonster.java +++ b/src/server/life/MapleMonster.java @@ -475,7 +475,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { return takenDamage.containsKey(chr.getId()); } - private void distributeExperienceToParty(int pid, float exp, int mostDamageCid, int minThresholdLevel, int killerLevel, Set underleveled, Map partyExpReward) { + private void distributeExperienceToParty(int pid, float exp, int mostDamageCid, int minThresholdLevel, int killerLevel, Set underleveled, Map partyExpReward, Set participants) { MapleCharacter pchar = getMap().getAnyCharacterFromParty(pid); // thanks G h o s t, Alfred, Vcoc, BHB for poiting out a bug in detecting party members after membership transactions in a party took place List members; @@ -486,7 +486,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { } List expSharers = new LinkedList<>(); - int expSharersMaxLevel = 1; + int expParticipantsMaxLevel = 1; boolean hasMostDamageCid = false; for (MapleCharacter mc : members) { if (mc.getId() == mostDamageCid) { @@ -497,8 +497,8 @@ public class MapleMonster extends AbstractLoadedMapleLife { if (Math.abs(killerLevel - mc.getLevel()) < ServerConstants.MIN_RANGELEVEL_TO_EXP_LEECH) { // thanks Thora for pointing out leech level limitation - if (expSharersMaxLevel < mc.getLevel()) { - expSharersMaxLevel = mc.getLevel(); + if (expParticipantsMaxLevel < mc.getLevel() && participants.contains(mc)) { + expParticipantsMaxLevel = mc.getLevel(); } expSharers.add(mc); } @@ -509,14 +509,16 @@ public class MapleMonster extends AbstractLoadedMapleLife { int numExpSharers = expSharers.size(); - // PARTY BONUS: 2p -> +2% , 3p -> +4% , 4p -> +6% , 5p -> +8% , 6p -> +10% + // PARTY BONUS: 2p -> +5% , 3p -> +6.25% , 4p -> +7.5% , 5p -> +8.75% , 6p -> +10% // MOST DAMAGE BONUS: 1.5x bonus - final float partyModifier = numExpSharers <= 1 ? 0.0f : 0.02f * (numExpSharers - 1); + + // thanks Crypter for reporting an insufficiency on party exp bonuses + final float partyModifier = numExpSharers <= 1 ? 0.0f : 0.05f + (0.0125f * (numExpSharers - 1)); final float mostDamageModifier = hasMostDamageCid ? 1.5f : 1.0f; final float partyExp = exp * partyModifier * mostDamageModifier; for (MapleCharacter mc : expSharers) { - float levelPenaltyModifier = (float) Math.sqrt(((float) mc.getLevel()) / expSharersMaxLevel); + float levelPenaltyModifier = (float) Math.min(1.0, Math.sqrt(((float) mc.getLevel()) / expParticipantsMaxLevel)); partyExpReward.put(mc, partyExp * levelPenaltyModifier); } } @@ -640,9 +642,10 @@ public class MapleMonster extends AbstractLoadedMapleLife { } } + Set participants = personalExpReward.keySet(); int mostDamageCid = this.getHighestDamagerId(); for (Entry party : partyExp.entrySet()) { - distributeExperienceToParty(party.getKey(), party.getValue(), mostDamageCid, minThresholdLevel, killerLevel, underleveled, partyExpReward); + distributeExperienceToParty(party.getKey(), party.getValue(), mostDamageCid, minThresholdLevel, killerLevel, underleveled, partyExpReward, participants); } for(MapleCharacter mc : underleveled) { diff --git a/src/server/maps/MapleHiredMerchant.java b/src/server/maps/MapleHiredMerchant.java index c7c909cad1..f8e5a89f2c 100644 --- a/src/server/maps/MapleHiredMerchant.java +++ b/src/server/maps/MapleHiredMerchant.java @@ -239,6 +239,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject { } private static boolean canBuy(MapleClient c, Item newItem) { + System.out.println(newItem.getPet().getName()); return MapleInventoryManipulator.checkSpace(c, newItem.getItemId(), newItem.getQuantity(), newItem.getOwner()) && MapleInventoryManipulator.addFromDrop(c, newItem, false); } diff --git a/src/server/maps/MapleMap.java b/src/server/maps/MapleMap.java index 990e306413..50675f9d51 100644 --- a/src/server/maps/MapleMap.java +++ b/src/server/maps/MapleMap.java @@ -652,7 +652,8 @@ public class MapleMap { MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); for (final MonsterDropEntry de : dropEntry) { - int dropChance = (int) Math.min((float) de.chance * chRate, Integer.MAX_VALUE); + float cardRate = chr.getCardRate(de.itemId); + int dropChance = (int) Math.min((float) de.chance * chRate * cardRate, Integer.MAX_VALUE); if (Randomizer.nextInt(999999) < dropChance) { if (droptype == 3) { @@ -2481,7 +2482,9 @@ public class MapleMap { } finally { chrWLock.unlock(); } + chr.setMapId(mapid); + chr.updateActiveEffects(); if (chrSize == 1) { if(!hasItemMonitor()) { @@ -3305,11 +3308,10 @@ public class MapleMap { player.setPosition(newPosition); try { - Collection visibleObjects = player.getVisibleMapObjects(); - MapleMapObject[] visibleObjectsNow = visibleObjects.toArray(new MapleMapObject[visibleObjects.size()]); + MapleMapObject[] visibleObjects = player.getVisibleMapObjects(); Map mapObjects = getCopyMapObjects(); - for (MapleMapObject mo : visibleObjectsNow) { + for (MapleMapObject mo : visibleObjects) { if (mo != null) { if (mapObjects.get(mo.getObjectId()) == mo) { updateMapObjectVisibility(player, mo); diff --git a/src/server/partyquest/MonsterCarnival.java b/src/server/partyquest/MonsterCarnival.java index aed6f96219..19ecefd217 100644 --- a/src/server/partyquest/MonsterCarnival.java +++ b/src/server/partyquest/MonsterCarnival.java @@ -1,6 +1,5 @@ package server.partyquest; -import java.util.List; import java.util.concurrent.ScheduledFuture; import client.MapleCharacter; import constants.LanguageConstants; @@ -10,9 +9,7 @@ import net.server.channel.Channel; import net.server.world.MapleParty; import net.server.world.MaplePartyCharacter; import server.TimerManager; -import server.life.MapleMonster; import server.maps.MapleMap; -import server.maps.MapleMapObject; import server.maps.MapleReactor; import tools.MaplePacketCreator; diff --git a/src/tools/MaplePacketCreator.java b/src/tools/MaplePacketCreator.java index a445e713ff..a04f087288 100644 --- a/src/tools/MaplePacketCreator.java +++ b/src/tools/MaplePacketCreator.java @@ -1853,36 +1853,7 @@ public class MaplePacketCreator { return mplew.getPacket(); } - /** - * Gets a packet spawning a player as a mapobject to other clients. - * - * @param target The client receiving this packet. - * @param chr The character to spawn to other clients. - * @param enteringField Whether the character to spawn is not yet present in the map or already is. - * @return The spawn player packet. - */ - public static byte[] spawnPlayerMapObject(MapleClient target, MapleCharacter chr, boolean enteringField) { - final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); - mplew.writeShort(SendOpcode.SPAWN_PLAYER.getValue()); - mplew.writeInt(chr.getId()); - mplew.write(chr.getLevel()); //v83 - mplew.writeMapleAsciiString(chr.getName()); - if (chr.getGuildId() < 1) { - mplew.writeMapleAsciiString(""); - mplew.write(new byte[6]); - } else { - MapleGuildSummary gs = chr.getClient().getWorldServer().getGuildSummary(chr.getGuildId(), chr.getWorld()); - if (gs != null) { - mplew.writeMapleAsciiString(gs.getName()); - mplew.writeShort(gs.getLogoBG()); - mplew.write(gs.getLogoBGColor()); - mplew.writeShort(gs.getLogo()); - mplew.write(gs.getLogoColor()); - } else { - mplew.writeMapleAsciiString(""); - mplew.write(new byte[6]); - } - } + private static void writeForeignBuffs(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) { mplew.writeInt(0); mplew.writeShort(0); //v83 mplew.write(0xFC); @@ -1962,6 +1933,40 @@ public class MaplePacketCreator { mplew.writeInt(CHAR_MAGIC_SPAWN); mplew.writeShort(0); mplew.write(0); + } + + /** + * Gets a packet spawning a player as a mapobject to other clients. + * + * @param target The client receiving this packet. + * @param chr The character to spawn to other clients. + * @param enteringField Whether the character to spawn is not yet present in the map or already is. + * @return The spawn player packet. + */ + public static byte[] spawnPlayerMapObject(MapleClient target, MapleCharacter chr, boolean enteringField) { + final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); + mplew.writeShort(SendOpcode.SPAWN_PLAYER.getValue()); + mplew.writeInt(chr.getId()); + mplew.write(chr.getLevel()); //v83 + mplew.writeMapleAsciiString(chr.getName()); + if (chr.getGuildId() < 1) { + mplew.writeMapleAsciiString(""); + mplew.write(new byte[6]); + } else { + MapleGuildSummary gs = chr.getClient().getWorldServer().getGuildSummary(chr.getGuildId(), chr.getWorld()); + if (gs != null) { + mplew.writeMapleAsciiString(gs.getName()); + mplew.writeShort(gs.getLogoBG()); + mplew.write(gs.getLogoBGColor()); + mplew.writeShort(gs.getLogo()); + mplew.write(gs.getLogoColor()); + } else { + mplew.writeMapleAsciiString(""); + mplew.write(new byte[6]); + } + } + + writeForeignBuffs(mplew, chr); mplew.writeShort(chr.getJob().getId()); @@ -3807,6 +3812,16 @@ public class MaplePacketCreator { mplew.write(0); return mplew.getPacket(); } + + public static byte[] partySearchInvite(MapleCharacter from) { + final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); + mplew.writeShort(SendOpcode.PARTY_OPERATION.getValue()); + mplew.write(4); + mplew.writeInt(from.getParty().getId()); + mplew.writeMapleAsciiString("PS: " + from.getName()); + mplew.write(0); + return mplew.getPacket(); + } /** * 10: A beginner can't create a party. 1/5/6/11/14/19: Your request for a diff --git a/tools/MapleMesoFetcher/dist/MapleMesoFetcher.jar b/tools/MapleMesoFetcher/dist/MapleMesoFetcher.jar index 91ffd8421577ee8e4ee7bf0cf2f887fc66593b65..11bf1501b7329176bbbf90c9352844a45d42fb12 100644 GIT binary patch delta 2102 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 diff --git a/tools/MapleSkillbookChanceFetcher/build.xml b/tools/MapleSkillbookChanceFetcher/build.xml new file mode 100644 index 0000000000..d8592441fc --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project MapleSkillbookChanceFetcher. + + + diff --git a/tools/MapleSkillbookChanceFetcher/lib/meso_drop_data.sql b/tools/MapleSkillbookChanceFetcher/lib/meso_drop_data.sql new file mode 100644 index 0000000000..41b45f9522 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/lib/meso_drop_data.sql @@ -0,0 +1,447 @@ + # SQL File autogenerated from the MapleMesoFetcher feature by Ronan Lana. + # Generated data takes into account mob stats such as level and boss for the meso ranges. + # Only mobs with 4 or more items with no meso entry on the DB it was compiled are presented here. + + INSERT IGNORE INTO drop_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) VALUES +(100122, 0, 35, 52, 0, 400000), +(100123, 0, 38, 55, 0, 400000), +(100124, 0, 40, 59, 0, 400000), +(100130, 0, 31, 45, 0, 400000), +(100131, 0, 33, 49, 0, 400000), +(100132, 0, 35, 52, 0, 400000), +(100133, 0, 38, 55, 0, 400000), +(100134, 0, 40, 59, 0, 400000), +(1110130, 0, 49, 72, 0, 400000), +(1140130, 0, 56, 83, 0, 400000), +(2100100, 0, 58, 85, 0, 400000), +(2100101, 0, 60, 88, 0, 400000), +(2100106, 0, 66, 97, 0, 400000), +(2100107, 0, 73, 108, 0, 400000), +(2100108, 0, 78, 115, 0, 400000), +(2110300, 0, 66, 97, 0, 400000), +(2110301, 0, 78, 115, 0, 400000), +(2230105, 0, 64, 94, 0, 400000), +(2230107, 0, 66, 97, 0, 400000), +(2230110, 0, 64, 94, 0, 400000), +(2230111, 0, 66, 97, 0, 400000), +(2230131, 0, 66, 97, 0, 400000), +(3000005, 0, 81, 119, 0, 400000), +(3100101, 0, 86, 127, 0, 400000), +(3100102, 0, 81, 119, 0, 400000), +(3110301, 0, 86, 127, 0, 400000), +(3110302, 0, 95, 140, 0, 400000), +(3110303, 0, 105, 155, 0, 400000), +(3220000, 0, 285, 1400, 0, 400000), +(3220001, 0, 315, 1550, 0, 400000), +(3300000, 0, 81, 119, 0, 400000), +(3300001, 0, 81, 119, 0, 400000), +(3300002, 0, 83, 123, 0, 400000), +(3300003, 0, 86, 127, 0, 400000), +(3300004, 0, 89, 131, 0, 400000), +(3300005, 0, 95, 140, 0, 400000), +(3300006, 0, 95, 140, 0, 400000), +(3300007, 0, 95, 140, 0, 400000), +(3300008, 0, 315, 1550, 0, 400000), +(4110300, 0, 120, 177, 0, 400000), +(4110301, 0, 132, 195, 0, 400000), +(4130103, 0, 423, 2080, 0, 400000), +(4220000, 0, 396, 1950, 0, 400000), +(4230122, 0, 120, 177, 0, 400000), +(4230125, 0, 128, 189, 0, 400000), +(4230400, 0, 132, 195, 0, 400000), +(4230502, 0, 124, 182, 0, 400000), +(4230503, 0, 132, 195, 0, 400000), +(4230504, 0, 132, 195, 0, 400000), +(4230600, 0, 112, 165, 0, 400000), +(4240000, 0, 151, 222, 0, 400000), +(4250000, 0, 120, 177, 0, 400000), +(4250001, 0, 137, 201, 0, 400000), +(5110300, 0, 156, 230, 0, 400000), +(5120500, 0, 190, 280, 0, 400000), +(5120501, 0, 172, 254, 0, 400000), +(5120502, 0, 178, 262, 0, 400000), +(5120505, 0, 203, 299, 0, 400000), +(5120506, 0, 184, 271, 0, 400000), +(5130105, 0, 190, 280, 0, 400000), +(5130108, 0, 196, 289, 0, 400000), +(5220000, 0, 552, 2710, 0, 400000), +(5220002, 0, 468, 2300, 0, 400000), +(5220003, 0, 630, 3090, 0, 400000), +(5220004, 0, 468, 2300, 0, 400000), +(5250000, 0, 184, 271, 0, 400000), +(5250001, 0, 161, 237, 0, 400000), +(5250002, 0, 196, 289, 0, 400000), +(6110300, 0, 255, 377, 0, 400000), +(6130102, 0, 217, 320, 0, 400000), +(6130103, 0, 217, 320, 0, 400000), +(6130203, 0, 217, 320, 0, 400000), +(6130207, 0, 231, 341, 0, 400000), +(6130209, 0, 264, 389, 0, 400000), +(6220000, 0, 765, 3770, 0, 400000), +(6220001, 0, 765, 3770, 0, 400000), +(6230100, 0, 231, 341, 0, 400000), +(6230401, 0, 239, 353, 0, 400000), +(6300005, 0, 765, 3770, 0, 400000), +(6400006, 0, 384, 1890, 0, 400000), +(6400008, 0, 552, 2710, 0, 400000), +(6400009, 0, 552, 2710, 0, 400000), +(7110300, 0, 355, 524, 0, 400000), +(7110301, 0, 332, 490, 0, 400000), +(7120103, 0, 301, 444, 0, 400000), +(7120104, 0, 311, 459, 0, 400000), +(7120106, 0, 355, 524, 0, 400000), +(7120107, 0, 355, 524, 0, 400000), +(7120108, 0, 379, 559, 0, 400000), +(7120109, 0, 405, 597, 0, 400000), +(7130000, 0, 332, 490, 0, 400000), +(7130002, 0, 321, 474, 0, 400000), +(7130003, 0, 367, 541, 0, 400000), +(7130004, 0, 391, 578, 0, 400000), +(7130102, 0, 391, 578, 0, 400000), +(7130103, 0, 332, 490, 0, 400000), +(7130400, 0, 903, 4440, 0, 400000), +(7130401, 0, 903, 4440, 0, 400000), +(7130402, 0, 903, 4440, 0, 400000), +(7130601, 0, 367, 541, 0, 400000), +(7220000, 0, 933, 4590, 0, 400000), +(7220001, 0, 903, 4440, 0, 400000), +(7220002, 0, 1137, 5590, 0, 400000), +(8110300, 0, 418, 617, 0, 400000), +(8120102, 0, 446, 659, 0, 400000), +(8120103, 0, 477, 704, 0, 400000), +(8120104, 0, 509, 752, 0, 400000), +(8120105, 0, 544, 803, 0, 400000), +(8120106, 0, 562, 830, 0, 400000), +(8120107, 0, 562, 830, 0, 400000), +(8140000, 0, 418, 617, 0, 400000), +(8140100, 0, 446, 659, 0, 400000), +(8140511, 0, 581, 871, 0, 400000), +(8140512, 0, 608, 908, 0, 400000), +(8140600, 0, 594, 889, 0, 400000), +(8140702, 0, 637, 946, 0, 400000), +(8140703, 0, 666, 986, 0, 400000), +(8141300, 0, 622, 927, 0, 400000), +(8150000, 0, 2142, 10490, 0, 400000), +(8150100, 0, 714, 1049, 0, 400000), +(8150101, 0, 747, 1093, 0, 400000), +(8150200, 0, 714, 1049, 0, 400000), +(8150201, 0, 800, 1162, 0, 400000), +(8150300, 0, 666, 986, 0, 400000), +(8150301, 0, 730, 1070, 0, 400000), +(8150302, 0, 764, 1115, 0, 400000), +(8190001, 0, 800, 1162, 0, 400000), +(8220003, 0, 3381, 15830, 0, 400000), +(8220005, 0, 4350, 19860, 0, 400000), +(8220006, 0, 5466, 24400, 0, 400000), +(8220007, 0, 1704, 8530, 0, 400000), +(8220009, 0, 1479, 7280, 0, 400000), +(8830000, 0, 2400, 11620, 0, 400000), +(9001009, 0, 1254, 6170, 0, 400000), +(9001011, 0, 95, 140, 0, 400000), +(9200016, 0, 81, 119, 0, 400000), +(9200019, 0, 203, 299, 0, 400000), +(9300011, 0, 109, 160, 0, 400000), +(9300058, 0, 38, 55, 0, 400000), +(9300059, 0, 42, 61, 0, 400000), +(9300060, 0, 120, 177, 0, 400000), +(9300078, 0, 800, 1162, 0, 400000), +(9300080, 0, 282, 416, 0, 400000), +(9300096, 0, 544, 803, 0, 400000), +(9300105, 0, 717, 3530, 0, 400000), +(9300106, 0, 846, 4160, 0, 400000), +(9300127, 0, 81, 119, 0, 400000), +(9300129, 0, 81, 119, 0, 400000), +(9300131, 0, 109, 160, 0, 400000), +(9300132, 0, 81, 119, 0, 400000), +(9300133, 0, 81, 119, 0, 400000), +(9300134, 0, 81, 119, 0, 400000), +(9300136, 0, 243, 1190, 0, 400000), +(9300139, 0, 1296, 6380, 0, 400000), +(9300155, 0, 38, 55, 0, 400000), +(9300160, 0, 396, 1950, 0, 400000), +(9300161, 0, 396, 1950, 0, 400000), +(9300163, 0, 1127, 1583, 0, 400000), +(9300164, 0, 1127, 1583, 0, 400000), +(9300165, 0, 1127, 1583, 0, 400000), +(9300182, 0, 1479, 7280, 0, 400000), +(9300184, 0, 174, 850, 0, 400000), +(9300185, 0, 285, 1400, 0, 400000), +(9300186, 0, 315, 1550, 0, 400000), +(9300187, 0, 336, 1650, 0, 400000), +(9300188, 0, 468, 2300, 0, 400000), +(9300189, 0, 468, 2300, 0, 400000), +(9300190, 0, 552, 2710, 0, 400000), +(9300191, 0, 651, 3200, 0, 400000), +(9300192, 0, 570, 2800, 0, 400000), +(9300193, 0, 630, 3090, 0, 400000), +(9300194, 0, 765, 3770, 0, 400000), +(9300195, 0, 765, 3770, 0, 400000), +(9300196, 0, 765, 3770, 0, 400000), +(9300197, 0, 765, 3770, 0, 400000), +(9300198, 0, 651, 3200, 0, 400000), +(9300199, 0, 903, 4440, 0, 400000), +(9300200, 0, 933, 4590, 0, 400000), +(9300201, 0, 1479, 7280, 0, 400000), +(9300202, 0, 1137, 5590, 0, 400000), +(9300203, 0, 1254, 6170, 0, 400000), +(9300204, 0, 1383, 6810, 0, 400000), +(9300205, 0, 1296, 6380, 0, 400000), +(9300206, 0, 1479, 7280, 0, 400000), +(9300207, 0, 1479, 7280, 0, 400000), +(9300208, 0, 1704, 8530, 0, 400000), +(9300209, 0, 1704, 8530, 0, 400000), +(9300210, 0, 2142, 10490, 0, 400000), +(9300211, 0, 2400, 11620, 0, 400000), +(9300212, 0, 2400, 11620, 0, 400000), +(9300213, 0, 3381, 15830, 0, 400000), +(9300214, 0, 3792, 17550, 0, 400000), +(9300215, 0, 6714, 29370, 0, 400000), +(9300217, 0, 32, 47, 0, 400000), +(9300218, 0, 34, 50, 0, 400000), +(9300219, 0, 34, 50, 0, 400000), +(9300220, 0, 52, 77, 0, 400000), +(9300221, 0, 68, 101, 0, 400000), +(9300222, 0, 75, 111, 0, 400000), +(9300223, 0, 36, 54, 0, 400000), +(9300224, 0, 102, 150, 0, 400000), +(9300225, 0, 102, 150, 0, 400000), +(9300226, 0, 112, 165, 0, 400000), +(9300227, 0, 102, 150, 0, 400000), +(9300228, 0, 146, 215, 0, 400000), +(9300229, 0, 39, 57, 0, 400000), +(9300230, 0, 116, 171, 0, 400000), +(9300231, 0, 137, 201, 0, 400000), +(9300232, 0, 92, 136, 0, 400000), +(9300233, 0, 112, 165, 0, 400000), +(9300234, 0, 86, 127, 0, 400000), +(9300235, 0, 167, 245, 0, 400000), +(9300236, 0, 190, 280, 0, 400000), +(9300237, 0, 210, 309, 0, 400000), +(9300238, 0, 66, 97, 0, 400000), +(9300239, 0, 120, 177, 0, 400000), +(9300240, 0, 132, 195, 0, 400000), +(9300241, 0, 282, 416, 0, 400000), +(9300242, 0, 301, 444, 0, 400000), +(9300243, 0, 190, 280, 0, 400000), +(9300244, 0, 190, 280, 0, 400000), +(9300245, 0, 217, 320, 0, 400000), +(9300246, 0, 231, 341, 0, 400000), +(9300247, 0, 255, 377, 0, 400000), +(9300248, 0, 264, 389, 0, 400000), +(9300249, 0, 301, 444, 0, 400000), +(9300250, 0, 355, 524, 0, 400000), +(9300251, 0, 332, 490, 0, 400000), +(9300252, 0, 132, 195, 0, 400000), +(9300253, 0, 156, 230, 0, 400000), +(9300254, 0, 332, 490, 0, 400000), +(9300255, 0, 141, 208, 0, 400000), +(9300256, 0, 217, 320, 0, 400000), +(9300257, 0, 217, 320, 0, 400000), +(9300258, 0, 255, 377, 0, 400000), +(9300259, 0, 58, 85, 0, 400000), +(9300260, 0, 418, 617, 0, 400000), +(9300261, 0, 544, 803, 0, 400000), +(9300262, 0, 544, 803, 0, 400000), +(9300263, 0, 544, 803, 0, 400000), +(9300264, 0, 764, 1115, 0, 400000), +(9300265, 0, 730, 1070, 0, 400000), +(9300266, 0, 933, 4590, 0, 400000), +(9300267, 0, 1254, 6170, 0, 400000), +(9300268, 0, 933, 4590, 0, 400000), +(9300269, 0, 174, 850, 0, 400000), +(9300270, 0, 418, 617, 0, 400000), +(9300274, 0, 39, 57, 0, 400000), +(9300289, 0, 1704, 8530, 0, 400000), +(9300294, 0, 2142, 10490, 0, 400000), +(9300315, 0, 483, 2370, 0, 400000), +(9300316, 0, 516, 2540, 0, 400000), +(9300317, 0, 552, 2710, 0, 400000), +(9300318, 0, 588, 2890, 0, 400000), +(9300319, 0, 630, 3090, 0, 400000), +(9300320, 0, 672, 3300, 0, 400000), +(9300321, 0, 717, 3530, 0, 400000), +(9300322, 0, 765, 3770, 0, 400000), +(9300332, 0, 112, 165, 0, 400000), +(9300334, 0, 151, 222, 0, 400000), +(9300335, 0, 116, 171, 0, 400000), +(9300336, 0, 137, 201, 0, 400000), +(9300337, 0, 137, 201, 0, 400000), +(9300367, 0, 126, 610, 0, 400000), +(9300368, 0, 174, 850, 0, 400000), +(9300369, 0, 243, 1190, 0, 400000), +(9300370, 0, 336, 1650, 0, 400000), +(9300371, 0, 468, 2300, 0, 400000), +(9300372, 0, 651, 3200, 0, 400000), +(9300373, 0, 903, 4440, 0, 400000), +(9300374, 0, 1254, 6170, 0, 400000), +(9300375, 0, 1704, 8530, 0, 400000), +(9300376, 0, 1704, 8530, 0, 400000), +(9300377, 0, 2691, 12890, 0, 400000), +(9303000, 0, 42, 61, 0, 400000), +(9303001, 0, 42, 61, 0, 400000), +(9303003, 0, 42, 61, 0, 400000), +(9303004, 0, 42, 61, 0, 400000), +(9303005, 0, 71, 104, 0, 400000), +(9303006, 0, 71, 104, 0, 400000), +(9303007, 0, 71, 104, 0, 400000), +(9303008, 0, 71, 104, 0, 400000), +(9303009, 0, 161, 237, 0, 400000), +(9303010, 0, 161, 237, 0, 400000), +(9303011, 0, 161, 237, 0, 400000), +(9303013, 0, 432, 638, 0, 400000), +(9303014, 0, 432, 638, 0, 400000), +(9303016, 0, 432, 638, 0, 400000), +(9400009, 0, 7014, 8225, 0, 400000), +(9400012, 0, 217, 320, 0, 400000), +(9400120, 0, 1911, 9460, 0, 400000), +(9400122, 0, 1911, 9460, 0, 400000), +(9400200, 0, 184, 271, 0, 400000), +(9400203, 0, 112, 165, 0, 400000), +(9400205, 0, 1704, 8530, 0, 400000), +(9400238, 0, 81, 119, 0, 400000), +(9400239, 0, 66, 97, 0, 400000), +(9400241, 0, 38, 55, 0, 400000), +(9400242, 0, 42, 61, 0, 400000), +(9400243, 0, 184, 271, 0, 400000), +(9400244, 0, 210, 309, 0, 400000), +(9400245, 0, 66, 97, 0, 400000), +(9400246, 0, 62, 91, 0, 400000), +(9400247, 0, 81, 119, 0, 400000), +(9400248, 0, 66, 97, 0, 400000), +(9400500, 0, 93, 450, 0, 400000), +(9400501, 0, 35, 52, 0, 400000), +(9400502, 0, 105, 520, 0, 400000), +(9400503, 0, 105, 520, 0, 400000), +(9400504, 0, 31, 45, 0, 400000), +(9400538, 0, 56, 83, 0, 400000), +(9400539, 0, 60, 88, 0, 400000), +(9400540, 0, 68, 101, 0, 400000), +(9400541, 0, 68, 101, 0, 400000), +(9400542, 0, 98, 145, 0, 400000), +(9400543, 0, 116, 171, 0, 400000), +(9400544, 0, 156, 230, 0, 400000), +(9400546, 0, 128, 189, 0, 400000), +(9400547, 0, 73, 108, 0, 400000), +(9400548, 0, 81, 119, 0, 400000), +(9400550, 0, 73, 108, 0, 400000), +(9400556, 0, 60, 88, 0, 400000), +(9400558, 0, 81, 119, 0, 400000), +(9400560, 0, 156, 230, 0, 400000), +(9400561, 0, 217, 320, 0, 400000), +(9400562, 0, 217, 320, 0, 400000), +(9400563, 0, 112, 165, 0, 400000), +(9400565, 0, 60, 88, 0, 400000), +(9400570, 0, 49, 72, 0, 400000), +(9400571, 0, 468, 2300, 0, 400000), +(9400573, 0, 112, 165, 0, 400000), +(9400574, 0, 714, 1049, 0, 400000), +(9400576, 0, 301, 444, 0, 400000), +(9400578, 0, 568, 853, 0, 400000), +(9400579, 0, 714, 1049, 0, 400000), +(9400580, 0, 637, 946, 0, 400000), +(9400581, 0, 418, 617, 0, 400000), +(9400582, 0, 1127, 1583, 0, 400000), +(9400609, 0, 204, 1010, 0, 400000), +(9400612, 0, 204, 1010, 0, 400000), +(9400633, 0, 258, 1270, 0, 400000), +(9400644, 0, 42, 61, 0, 400000), +(9410014, 0, 493, 728, 0, 400000), +(9410015, 0, 1479, 7280, 0, 400000), +(9420507, 0, 146, 215, 0, 400000), +(9420527, 0, 132, 195, 0, 400000), +(9420528, 0, 141, 208, 0, 400000), +(9420529, 0, 167, 245, 0, 400000), +(9420530, 0, 190, 280, 0, 400000), +(9420531, 0, 210, 309, 0, 400000), +(9420532, 0, 210, 309, 0, 400000), +(9420533, 0, 224, 330, 0, 400000), +(9420534, 0, 255, 377, 0, 400000), +(9420535, 0, 282, 416, 0, 400000), +(9420536, 0, 321, 474, 0, 400000), +(9420537, 0, 355, 524, 0, 400000), +(9420538, 0, 446, 659, 0, 400000), +(9420539, 0, 526, 777, 0, 400000), +(9420545, 0, 210, 309, 0, 400000), +(9420550, 0, 210, 309, 0, 400000), +(9500101, 0, 38, 55, 0, 400000), +(9500102, 0, 39, 57, 0, 400000), +(9500103, 0, 49, 72, 0, 400000), +(9500104, 0, 44, 65, 0, 400000), +(9500105, 0, 49, 72, 0, 400000), +(9500106, 0, 62, 91, 0, 400000), +(9500107, 0, 81, 119, 0, 400000), +(9500108, 0, 86, 127, 0, 400000), +(9500109, 0, 86, 127, 0, 400000), +(9500110, 0, 95, 140, 0, 400000), +(9500111, 0, 95, 140, 0, 400000), +(9500112, 0, 95, 140, 0, 400000), +(9500113, 0, 98, 145, 0, 400000), +(9500115, 0, 102, 150, 0, 400000), +(9500116, 0, 112, 165, 0, 400000), +(9500117, 0, 98, 145, 0, 400000), +(9500118, 0, 109, 160, 0, 400000), +(9500119, 0, 109, 160, 0, 400000), +(9500120, 0, 132, 195, 0, 400000), +(9500121, 0, 146, 215, 0, 400000), +(9500122, 0, 151, 222, 0, 400000), +(9500123, 0, 210, 309, 0, 400000), +(9500124, 0, 651, 3200, 0, 400000), +(9500125, 0, 217, 320, 0, 400000), +(9500126, 0, 247, 365, 0, 400000), +(9500127, 0, 273, 402, 0, 400000), +(9500128, 0, 282, 416, 0, 400000), +(9500129, 0, 301, 444, 0, 400000), +(9500130, 0, 903, 4440, 0, 400000), +(9500131, 0, 332, 490, 0, 400000), +(9500132, 0, 355, 524, 0, 400000), +(9500134, 0, 418, 617, 0, 400000), +(9500135, 0, 493, 728, 0, 400000), +(9500136, 0, 682, 1006, 0, 400000), +(9500137, 0, 637, 946, 0, 400000), +(9500138, 0, 568, 853, 0, 400000), +(9500139, 0, 1254, 6170, 0, 400000), +(9500140, 0, 2142, 10490, 0, 400000), +(9500156, 0, 146, 215, 0, 400000), +(9500157, 0, 95, 140, 0, 400000), +(9500158, 0, 903, 4440, 0, 400000), +(9500159, 0, 903, 4440, 0, 400000), +(9500160, 0, 903, 4440, 0, 400000), +(9500161, 0, 418, 617, 0, 400000), +(9500162, 0, 418, 617, 0, 400000), +(9500163, 0, 461, 681, 0, 400000), +(9500164, 0, 544, 803, 0, 400000), +(9500165, 0, 544, 803, 0, 400000), +(9500166, 0, 544, 803, 0, 400000), +(9500178, 0, 112, 165, 0, 400000), +(9500180, 0, 1704, 8530, 0, 400000), +(9500181, 0, 1704, 8530, 0, 400000), +(9500306, 0, 174, 850, 0, 400000), +(9500307, 0, 285, 1400, 0, 400000), +(9500308, 0, 468, 2300, 0, 400000), +(9500309, 0, 552, 2710, 0, 400000), +(9500310, 0, 630, 3090, 0, 400000), +(9500311, 0, 765, 3770, 0, 400000), +(9500312, 0, 903, 4440, 0, 400000), +(9500313, 0, 933, 4590, 0, 400000), +(9500314, 0, 1137, 5590, 0, 400000), +(9500317, 0, 126, 610, 0, 400000), +(9500318, 0, 336, 1650, 0, 400000), +(9500319, 0, 903, 4440, 0, 400000), +(9500321, 0, 42, 61, 0, 400000), +(9500326, 0, 396, 1950, 0, 400000), +(9500327, 0, 243, 1190, 0, 400000), +(9500328, 0, 285, 1400, 0, 400000), +(9500331, 0, 552, 2710, 0, 400000), +(9500332, 0, 396, 1950, 0, 400000), +(9500333, 0, 468, 2300, 0, 400000), +(9500334, 0, 552, 2710, 0, 400000), +(9500335, 0, 468, 2300, 0, 400000), +(9500366, 0, 49, 72, 0, 400000), +(9500367, 0, 49, 72, 0, 400000), +(9500368, 0, 49, 72, 0, 400000), +(9500369, 0, 49, 72, 0, 400000), +(9500370, 0, 49, 72, 0, 400000), +(9500371, 0, 49, 72, 0, 400000), +(9500372, 0, 49, 72, 0, 400000); + + DELETE FROM drop_data WHERE dropperid >= 9300184 AND dropperid <= 9300215 AND itemid = 0; diff --git a/tools/MapleSkillbookChanceFetcher/lib/mysql-connector-java-bin.jar b/tools/MapleSkillbookChanceFetcher/lib/mysql-connector-java-bin.jar new file mode 100644 index 0000000000000000000000000000000000000000..0539039f716034c4896c8eaa81c075c7fa3bc997 GIT binary patch literal 703265 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 z

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 z

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 #ET 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≶W1GFaK+frmumo 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

Wukv-W)w_$u7j`{O-B`b;E#lv?z71q=L(-7gW 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%0DI)ATkE?@=am{aF9j6X))jbz3fl>_C^; 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

!ux)YI~4M(scusBfXtFg9Ar7{j&m{~wms#;V_ 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 literal 0 HcmV?d00001 diff --git a/tools/MapleSkillbookChanceFetcher/lib/skillbook_drop_data.sql b/tools/MapleSkillbookChanceFetcher/lib/skillbook_drop_data.sql new file mode 100644 index 0000000000..8dc97ded65 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/lib/skillbook_drop_data.sql @@ -0,0 +1,619 @@ + # SQL File autogenerated from the MapleSkillbookChanceFetcher feature by Ronan Lana. + # Generated data takes into account mob stats such as level and boss for the chance rates. + + REPLACE INTO drop_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) VALUES +(851000, 2290132, 1, 1, 0, 3861), +(7090000, 2290087, 1, 1, 0, 40000), +(8090000, 2290045, 1, 1, 0, 40000), +(8140103, 2290044, 1, 1, 0, 2000), +(8140511, 2290009, 1, 1, 0, 2000), +(8140511, 2290050, 1, 1, 0, 2000), +(8140511, 2290083, 1, 1, 0, 2000), +(8140511, 2290134, 1, 1, 0, 6000), +(8140512, 2290013, 1, 1, 0, 2000), +(8140512, 2290067, 1, 1, 0, 2000), +(8140512, 2290082, 1, 1, 0, 2000), +(8140512, 2290097, 1, 1, 0, 2000), +(8140512, 2290116, 1, 1, 0, 2000), +(8140512, 2290131, 1, 1, 0, 6000), +(8140600, 2290132, 1, 1, 0, 6000), +(8140700, 2290106, 1, 1, 0, 2000), +(8140700, 2290126, 1, 1, 0, 6000), +(8140701, 2290122, 1, 1, 0, 2000), +(8140702, 2290112, 1, 1, 0, 2000), +(8140703, 2290088, 1, 1, 0, 2000), +(8140703, 2290099, 1, 1, 0, 2000), +(8141000, 2290082, 1, 1, 0, 2000), +(8141000, 2290097, 1, 1, 0, 2000), +(8141100, 2280005, 1, 1, 0, 2000), +(8141300, 2290098, 1, 1, 0, 2000), +(8142100, 2290032, 1, 1, 0, 2000), +(8142100, 2290082, 1, 1, 0, 2000), +(8142100, 2290114, 1, 1, 0, 2000), +(8143000, 2280004, 1, 1, 0, 2000), +(8150000, 2280013, 1, 1, 0, 120000), +(8150000, 2290070, 1, 1, 0, 40000), +(8150000, 2290091, 1, 1, 0, 40000), +(8150100, 2290042, 1, 1, 0, 2000), +(8150100, 2290053, 1, 1, 0, 2000), +(8150100, 2290073, 1, 1, 0, 2000), +(8150100, 2290102, 1, 1, 0, 2000), +(8150100, 2290118, 1, 1, 0, 2000), +(8150101, 2290017, 1, 1, 0, 2000), +(8150101, 2290021, 1, 1, 0, 2000), +(8150101, 2290035, 1, 1, 0, 2000), +(8150101, 2290042, 1, 1, 0, 2000), +(8150101, 2290052, 1, 1, 0, 2000), +(8150101, 2290102, 1, 1, 0, 2000), +(8150200, 2290024, 1, 1, 0, 2000), +(8150200, 2290100, 1, 1, 0, 2000), +(8150200, 2290135, 1, 1, 0, 6000), +(8150201, 2290004, 1, 1, 0, 2000), +(8150201, 2290006, 1, 1, 0, 2000), +(8150201, 2290024, 1, 1, 0, 2000), +(8150201, 2290036, 1, 1, 0, 2000), +(8150201, 2290056, 1, 1, 0, 2000), +(8150201, 2290072, 1, 1, 0, 2000), +(8150201, 2290078, 1, 1, 0, 2000), +(8150201, 2290117, 1, 1, 0, 2000), +(8150300, 2290003, 1, 1, 0, 2000), +(8150300, 2290033, 1, 1, 0, 2000), +(8150300, 2290111, 1, 1, 0, 2000), +(8150300, 2290120, 1, 1, 0, 2000), +(8150300, 2290127, 1, 1, 0, 6000), +(8150301, 2290023, 1, 1, 0, 2000), +(8150301, 2290029, 1, 1, 0, 2000), +(8150301, 2290101, 1, 1, 0, 2000), +(8150301, 2290107, 1, 1, 0, 2000), +(8150302, 2290010, 1, 1, 0, 2000), +(8150302, 2290019, 1, 1, 0, 2000), +(8150302, 2290026, 1, 1, 0, 2000), +(8150302, 2290076, 1, 1, 0, 2000), +(8150302, 2290085, 1, 1, 0, 2000), +(8150302, 2290096, 1, 1, 0, 2000), +(8150302, 2290113, 1, 1, 0, 2000), +(8150302, 2290119, 1, 1, 0, 2000), +(8150302, 2290128, 1, 1, 0, 6000), +(8160000, 2290017, 1, 1, 0, 2000), +(8160000, 2290045, 1, 1, 0, 2000), +(8160000, 2290065, 1, 1, 0, 2000), +(8160000, 2290067, 1, 1, 0, 2000), +(8160000, 2290081, 1, 1, 0, 2000), +(8170000, 2290012, 1, 1, 0, 2000), +(8170000, 2290086, 1, 1, 0, 2000), +(8170000, 2290087, 1, 1, 0, 2000), +(8170000, 2290134, 1, 1, 0, 6000), +(8180000, 2290002, 1, 1, 0, 40000), +(8180000, 2290003, 1, 1, 0, 40000), +(8180000, 2290014, 1, 1, 0, 40000), +(8180000, 2290015, 1, 1, 0, 40000), +(8180000, 2290030, 1, 1, 0, 40000), +(8180000, 2290035, 1, 1, 0, 40000), +(8180000, 2290036, 1, 1, 0, 40000), +(8180000, 2290063, 1, 1, 0, 40000), +(8180000, 2290080, 1, 1, 0, 40000), +(8180000, 2290098, 1, 1, 0, 40000), +(8180000, 2290101, 1, 1, 0, 40000), +(8180000, 2290117, 1, 1, 0, 40000), +(8180000, 2290130, 1, 1, 0, 120000), +(8180001, 2290018, 1, 1, 0, 40000), +(8180001, 2290019, 1, 1, 0, 40000), +(8180001, 2290032, 1, 1, 0, 40000), +(8180001, 2290042, 1, 1, 0, 40000), +(8180001, 2290058, 1, 1, 0, 40000), +(8180001, 2290059, 1, 1, 0, 40000), +(8180001, 2290068, 1, 1, 0, 40000), +(8180001, 2290069, 1, 1, 0, 40000), +(8180001, 2290072, 1, 1, 0, 40000), +(8180001, 2290092, 1, 1, 0, 40000), +(8180001, 2290099, 1, 1, 0, 40000), +(8180001, 2290100, 1, 1, 0, 40000), +(8180001, 2290102, 1, 1, 0, 40000), +(8180001, 2290119, 1, 1, 0, 40000), +(8180001, 2290128, 1, 1, 0, 120000), +(8190000, 2280016, 1, 1, 0, 6000), +(8190000, 2290030, 1, 1, 0, 2000), +(8190000, 2290044, 1, 1, 0, 2000), +(8190000, 2290054, 1, 1, 0, 2000), +(8190000, 2290066, 1, 1, 0, 2000), +(8190000, 2290075, 1, 1, 0, 2000), +(8190000, 2290092, 1, 1, 0, 2000), +(8190000, 2290103, 1, 1, 0, 2000), +(8190002, 2290000, 1, 1, 0, 2000), +(8190002, 2290008, 1, 1, 0, 2000), +(8190002, 2290018, 1, 1, 0, 2000), +(8190002, 2290038, 1, 1, 0, 2000), +(8190002, 2290060, 1, 1, 0, 2000), +(8190002, 2290080, 1, 1, 0, 2000), +(8190002, 2290124, 1, 1, 0, 2000), +(8190003, 2280013, 1, 1, 0, 6000), +(8190003, 2290007, 1, 1, 0, 2000), +(8190003, 2290012, 1, 1, 0, 2000), +(8190003, 2290014, 1, 1, 0, 2000), +(8190003, 2290033, 1, 1, 0, 2000), +(8190003, 2290045, 1, 1, 0, 2000), +(8190003, 2290050, 1, 1, 0, 2000), +(8190003, 2290055, 1, 1, 0, 2000), +(8190003, 2290062, 1, 1, 0, 2000), +(8190003, 2290063, 1, 1, 0, 2000), +(8190003, 2290070, 1, 1, 0, 2000), +(8190003, 2290086, 1, 1, 0, 2000), +(8190003, 2290108, 1, 1, 0, 2000), +(8190003, 2290133, 1, 1, 0, 6000), +(8190004, 2290002, 1, 1, 0, 2000), +(8190004, 2290009, 1, 1, 0, 2000), +(8190004, 2290021, 1, 1, 0, 2000), +(8190004, 2290034, 1, 1, 0, 2000), +(8190004, 2290041, 1, 1, 0, 2000), +(8190004, 2290052, 1, 1, 0, 2000), +(8190004, 2290053, 1, 1, 0, 2000), +(8190004, 2290058, 1, 1, 0, 2000), +(8190004, 2290068, 1, 1, 0, 2000), +(8190004, 2290071, 1, 1, 0, 2000), +(8190004, 2290073, 1, 1, 0, 2000), +(8190004, 2290090, 1, 1, 0, 2000), +(8190004, 2290112, 1, 1, 0, 2000), +(8190004, 2290121, 1, 1, 0, 2000), +(8190004, 2290130, 1, 1, 0, 6000), +(8190005, 2290000, 1, 1, 0, 2000), +(8190005, 2290008, 1, 1, 0, 2000), +(8190005, 2290018, 1, 1, 0, 2000), +(8190005, 2290038, 1, 1, 0, 2000), +(8190005, 2290060, 1, 1, 0, 2000), +(8190005, 2290080, 1, 1, 0, 2000), +(8190005, 2290124, 1, 1, 0, 2000), +(8200000, 2290005, 1, 1, 0, 2000), +(8200000, 2290011, 1, 1, 0, 2000), +(8200000, 2290114, 1, 1, 0, 2000), +(8200001, 2280015, 1, 1, 0, 6000), +(8200001, 2290050, 1, 1, 0, 2000), +(8200001, 2290059, 1, 1, 0, 2000), +(8200001, 2290065, 1, 1, 0, 2000), +(8200001, 2290129, 1, 1, 0, 6000), +(8200002, 2290062, 1, 1, 0, 2000), +(8200002, 2290066, 1, 1, 0, 2000), +(8200002, 2290070, 1, 1, 0, 2000), +(8200002, 2290131, 1, 1, 0, 6000), +(8200002, 2290139, 1, 1, 0, 6000), +(8200003, 2290012, 1, 1, 0, 2000), +(8200003, 2290056, 1, 1, 0, 2000), +(8200003, 2290071, 1, 1, 0, 2000), +(8200003, 2290101, 1, 1, 0, 2000), +(8200003, 2290136, 1, 1, 0, 6000), +(8200004, 2280016, 1, 1, 0, 6000), +(8200004, 2290069, 1, 1, 0, 2000), +(8200004, 2290072, 1, 1, 0, 2000), +(8200004, 2290073, 1, 1, 0, 2000), +(8200004, 2290127, 1, 1, 0, 6000), +(8200004, 2290134, 1, 1, 0, 6000), +(8200005, 2280014, 1, 1, 0, 6000), +(8200005, 2290078, 1, 1, 0, 2000), +(8200005, 2290079, 1, 1, 0, 2000), +(8200005, 2290095, 1, 1, 0, 2000), +(8200006, 2290003, 1, 1, 0, 2000), +(8200006, 2290064, 1, 1, 0, 2000), +(8200006, 2290076, 1, 1, 0, 2000), +(8200006, 2290077, 1, 1, 0, 2000), +(8200006, 2290129, 1, 1, 0, 6000), +(8200006, 2290138, 1, 1, 0, 6000), +(8200007, 2290006, 1, 1, 0, 2000), +(8200007, 2290007, 1, 1, 0, 2000), +(8200007, 2290011, 1, 1, 0, 2000), +(8200007, 2290016, 1, 1, 0, 2000), +(8200007, 2290125, 1, 1, 0, 2000), +(8200007, 2290136, 1, 1, 0, 6000), +(8200008, 2290006, 1, 1, 0, 2000), +(8200008, 2290051, 1, 1, 0, 2000), +(8200008, 2290121, 1, 1, 0, 2000), +(8200008, 2290122, 1, 1, 0, 2000), +(8200008, 2290133, 1, 1, 0, 6000), +(8200009, 2290013, 1, 1, 0, 2000), +(8200009, 2290016, 1, 1, 0, 2000), +(8200009, 2290031, 1, 1, 0, 2000), +(8200009, 2290039, 1, 1, 0, 2000), +(8200010, 2290026, 1, 1, 0, 2000), +(8200010, 2290059, 1, 1, 0, 2000), +(8200010, 2290088, 1, 1, 0, 2000), +(8200010, 2290089, 1, 1, 0, 2000), +(8200010, 2290127, 1, 1, 0, 6000), +(8200011, 2290001, 1, 1, 0, 3000), +(8200011, 2290040, 1, 1, 0, 3000), +(8200011, 2290046, 1, 1, 0, 3000), +(8200011, 2290048, 1, 1, 0, 3000), +(8200011, 2290049, 1, 1, 0, 3000), +(8200011, 2290114, 1, 1, 0, 3000), +(8200011, 2290137, 1, 1, 0, 9000), +(8200012, 2290041, 1, 1, 0, 3000), +(8200012, 2290092, 1, 1, 0, 3000), +(8200012, 2290093, 1, 1, 0, 3000), +(8200012, 2290115, 1, 1, 0, 3000), +(8200012, 2290137, 1, 1, 0, 9000), +(8200012, 2290139, 1, 1, 0, 9000), +(8220002, 2290020, 1, 1, 0, 40000), +(8220002, 2290081, 1, 1, 0, 40000), +(8220002, 2290085, 1, 1, 0, 40000), +(8220002, 2290133, 1, 1, 0, 120000), +(8220003, 2290006, 1, 1, 0, 40000), +(8220003, 2290030, 1, 1, 0, 40000), +(8220003, 2290031, 1, 1, 0, 40000), +(8220003, 2290032, 1, 1, 0, 40000), +(8220003, 2290033, 1, 1, 0, 40000), +(8220003, 2290060, 1, 1, 0, 40000), +(8220003, 2290061, 1, 1, 0, 40000), +(8220003, 2290076, 1, 1, 0, 40000), +(8220003, 2290077, 1, 1, 0, 40000), +(8220003, 2290104, 1, 1, 0, 40000), +(8220003, 2290105, 1, 1, 0, 40000), +(8220003, 2290117, 1, 1, 0, 40000), +(8220003, 2290118, 1, 1, 0, 40000), +(8220004, 2290018, 1, 1, 0, 40000), +(8220004, 2290019, 1, 1, 0, 40000), +(8220004, 2290024, 1, 1, 0, 40000), +(8220004, 2290025, 1, 1, 0, 40000), +(8220004, 2290058, 1, 1, 0, 40000), +(8220004, 2290059, 1, 1, 0, 40000), +(8220004, 2290076, 1, 1, 0, 40000), +(8220004, 2290077, 1, 1, 0, 40000), +(8220004, 2290106, 1, 1, 0, 40000), +(8220004, 2290127, 1, 1, 0, 120000), +(8220004, 2290134, 1, 1, 0, 120000), +(8220005, 2290002, 1, 1, 0, 60000), +(8220005, 2290003, 1, 1, 0, 60000), +(8220005, 2290036, 1, 1, 0, 60000), +(8220005, 2290037, 1, 1, 0, 60000), +(8220005, 2290055, 1, 1, 0, 60000), +(8220005, 2290080, 1, 1, 0, 60000), +(8220005, 2290099, 1, 1, 0, 60000), +(8220005, 2290131, 1, 1, 0, 180000), +(8220005, 2290136, 1, 1, 0, 180000), +(8220006, 2290012, 1, 1, 0, 80000), +(8220006, 2290013, 1, 1, 0, 80000), +(8220006, 2290042, 1, 1, 0, 80000), +(8220006, 2290043, 1, 1, 0, 80000), +(8220006, 2290060, 1, 1, 0, 80000), +(8220006, 2290061, 1, 1, 0, 80000), +(8220006, 2290090, 1, 1, 0, 80000), +(8220006, 2290119, 1, 1, 0, 80000), +(8220006, 2290120, 1, 1, 0, 80000), +(8220006, 2290135, 1, 1, 0, 240000), +(8220006, 2290138, 1, 1, 0, 240000), +(8220007, 2290035, 1, 1, 0, 40000), +(8220007, 2290091, 1, 1, 0, 40000), +(8220007, 2290108, 1, 1, 0, 40000), +(8220009, 2290031, 1, 1, 0, 40000), +(8220009, 2290129, 1, 1, 0, 120000), +(8220015, 2280004, 1, 1, 0, 40000), +(8220015, 2280005, 1, 1, 0, 40000), +(8220015, 2280006, 1, 1, 0, 40000), +(8500002, 2280007, 1, 1, 0, 60000), +(8500002, 2280008, 1, 1, 0, 60000), +(8500002, 2280009, 1, 1, 0, 60000), +(8500002, 2280010, 1, 1, 0, 60000), +(8500002, 2290006, 1, 1, 0, 60000), +(8500002, 2290010, 1, 1, 0, 60000), +(8500002, 2290011, 1, 1, 0, 60000), +(8500002, 2290013, 1, 1, 0, 60000), +(8500002, 2290028, 1, 1, 0, 60000), +(8500002, 2290037, 1, 1, 0, 60000), +(8500002, 2290043, 1, 1, 0, 60000), +(8500002, 2290051, 1, 1, 0, 60000), +(8500002, 2290056, 1, 1, 0, 60000), +(8500002, 2290061, 1, 1, 0, 60000), +(8500002, 2290066, 1, 1, 0, 60000), +(8500002, 2290071, 1, 1, 0, 60000), +(8500002, 2290078, 1, 1, 0, 60000), +(8500002, 2290089, 1, 1, 0, 60000), +(8500002, 2290091, 1, 1, 0, 60000), +(8500002, 2290104, 1, 1, 0, 60000), +(8500002, 2290107, 1, 1, 0, 60000), +(8500002, 2290121, 1, 1, 0, 60000), +(8500002, 2290123, 1, 1, 0, 60000), +(8500002, 2290126, 1, 1, 0, 180000), +(8500002, 2290129, 1, 1, 0, 180000), +(8510000, 2280007, 1, 1, 0, 40000), +(8510000, 2280008, 1, 1, 0, 40000), +(8510000, 2280009, 1, 1, 0, 40000), +(8510000, 2280010, 1, 1, 0, 40000), +(8510000, 2290000, 1, 1, 0, 40000), +(8510000, 2290001, 1, 1, 0, 40000), +(8510000, 2290004, 1, 1, 0, 40000), +(8510000, 2290005, 1, 1, 0, 40000), +(8510000, 2290024, 1, 1, 0, 40000), +(8510000, 2290025, 1, 1, 0, 40000), +(8510000, 2290026, 1, 1, 0, 40000), +(8510000, 2290027, 1, 1, 0, 40000), +(8510000, 2290052, 1, 1, 0, 40000), +(8510000, 2290053, 1, 1, 0, 40000), +(8510000, 2290054, 1, 1, 0, 40000), +(8510000, 2290055, 1, 1, 0, 40000), +(8510000, 2290076, 1, 1, 0, 40000), +(8510000, 2290077, 1, 1, 0, 40000), +(8510000, 2290082, 1, 1, 0, 40000), +(8510000, 2290083, 1, 1, 0, 40000), +(8510000, 2290097, 1, 1, 0, 40000), +(8510000, 2290099, 1, 1, 0, 40000), +(8510000, 2290106, 1, 1, 0, 40000), +(8510000, 2290108, 1, 1, 0, 40000), +(8510000, 2290112, 1, 1, 0, 40000), +(8510000, 2290114, 1, 1, 0, 40000), +(8510000, 2290122, 1, 1, 0, 40000), +(8510000, 2290124, 1, 1, 0, 40000), +(8510000, 2290132, 1, 1, 0, 120000), +(8520000, 2280007, 1, 1, 0, 40000), +(8520000, 2280008, 1, 1, 0, 40000), +(8520000, 2280009, 1, 1, 0, 40000), +(8520000, 2280010, 1, 1, 0, 40000), +(8520000, 2290000, 1, 1, 0, 40000), +(8520000, 2290001, 1, 1, 0, 40000), +(8520000, 2290004, 1, 1, 0, 40000), +(8520000, 2290005, 1, 1, 0, 40000), +(8520000, 2290024, 1, 1, 0, 40000), +(8520000, 2290025, 1, 1, 0, 40000), +(8520000, 2290026, 1, 1, 0, 40000), +(8520000, 2290027, 1, 1, 0, 40000), +(8520000, 2290052, 1, 1, 0, 40000), +(8520000, 2290053, 1, 1, 0, 40000), +(8520000, 2290054, 1, 1, 0, 40000), +(8520000, 2290055, 1, 1, 0, 40000), +(8520000, 2290076, 1, 1, 0, 40000), +(8520000, 2290077, 1, 1, 0, 40000), +(8520000, 2290082, 1, 1, 0, 40000), +(8520000, 2290083, 1, 1, 0, 40000), +(8520000, 2290097, 1, 1, 0, 40000), +(8520000, 2290099, 1, 1, 0, 40000), +(8520000, 2290106, 1, 1, 0, 40000), +(8520000, 2290108, 1, 1, 0, 40000), +(8520000, 2290112, 1, 1, 0, 40000), +(8520000, 2290114, 1, 1, 0, 40000), +(8520000, 2290122, 1, 1, 0, 40000), +(8520000, 2290124, 1, 1, 0, 40000), +(8520000, 2290132, 1, 1, 0, 120000), +(8800002, 2280007, 1, 1, 0, 80000), +(8800002, 2280008, 1, 1, 0, 80000), +(8800002, 2280009, 1, 1, 0, 80000), +(8800002, 2280010, 1, 1, 0, 80000), +(8800002, 2280013, 1, 1, 0, 240000), +(8800002, 2280014, 1, 1, 0, 240000), +(8800002, 2280015, 1, 1, 0, 240000), +(8800002, 2280016, 1, 1, 0, 240000), +(8800002, 2290006, 1, 1, 0, 80000), +(8800002, 2290007, 1, 1, 0, 80000), +(8800002, 2290016, 1, 1, 0, 80000), +(8800002, 2290020, 1, 1, 0, 80000), +(8800002, 2290022, 1, 1, 0, 80000), +(8800002, 2290024, 1, 1, 0, 80000), +(8800002, 2290028, 1, 1, 0, 80000), +(8800002, 2290029, 1, 1, 0, 80000), +(8800002, 2290040, 1, 1, 0, 80000), +(8800002, 2290046, 1, 1, 0, 80000), +(8800002, 2290048, 1, 1, 0, 80000), +(8800002, 2290056, 1, 1, 0, 80000), +(8800002, 2290057, 1, 1, 0, 80000), +(8800002, 2290058, 1, 1, 0, 80000), +(8800002, 2290064, 1, 1, 0, 80000), +(8800002, 2290067, 1, 1, 0, 80000), +(8800002, 2290074, 1, 1, 0, 80000), +(8800002, 2290079, 1, 1, 0, 80000), +(8800002, 2290084, 1, 1, 0, 80000), +(8800002, 2290094, 1, 1, 0, 80000), +(8800002, 2290110, 1, 1, 0, 80000), +(8800002, 2290115, 1, 1, 0, 80000), +(8810018, 2290017, 1, 1, 0, 100000), +(8810018, 2290021, 1, 1, 0, 100000), +(8810018, 2290023, 1, 1, 0, 100000), +(8810018, 2290041, 1, 1, 0, 100000), +(8810018, 2290047, 1, 1, 0, 100000), +(8810018, 2290049, 1, 1, 0, 100000), +(8810018, 2290065, 1, 1, 0, 100000), +(8810018, 2290075, 1, 1, 0, 100000), +(8810018, 2290085, 1, 1, 0, 100000), +(8810018, 2290095, 1, 1, 0, 100000), +(8810018, 2290096, 1, 1, 0, 100000), +(8810018, 2290111, 1, 1, 0, 100000), +(8810018, 2290116, 1, 1, 0, 100000), +(8810018, 2290125, 1, 1, 0, 100000), +(8810018, 2290133, 1, 1, 0, 300000), +(8810018, 2290137, 1, 1, 0, 300000), +(8810018, 2290139, 1, 1, 0, 300000), +(8820000, 2290010, 1, 1, 0, 120000), +(8820000, 2290022, 1, 1, 0, 120000), +(8820000, 2290040, 1, 1, 0, 120000), +(8820000, 2290046, 1, 1, 0, 120000), +(8820000, 2290048, 1, 1, 0, 120000), +(8820000, 2290052, 1, 1, 0, 120000), +(8820000, 2290084, 1, 1, 0, 120000), +(8820000, 2290090, 1, 1, 0, 120000), +(8820000, 2290106, 1, 1, 0, 120000), +(8820000, 2290119, 1, 1, 0, 120000), +(8820001, 2290010, 1, 1, 0, 120000), +(8820001, 2290022, 1, 1, 0, 120000), +(8820001, 2290040, 1, 1, 0, 120000), +(8820001, 2290046, 1, 1, 0, 120000), +(8820001, 2290048, 1, 1, 0, 120000), +(8820001, 2290052, 1, 1, 0, 120000), +(8820001, 2290084, 1, 1, 0, 120000), +(8820001, 2290090, 1, 1, 0, 120000), +(8820001, 2290106, 1, 1, 0, 120000), +(8820001, 2290119, 1, 1, 0, 120000), +(9300028, 2280015, 1, 1, 0, 120000), +(9300028, 2290026, 1, 1, 0, 40000), +(9300028, 2290064, 1, 1, 0, 40000), +(9300028, 2290075, 1, 1, 0, 40000), +(9300028, 2290093, 1, 1, 0, 40000), +(9300028, 2290111, 1, 1, 0, 40000), +(9300094, 2280004, 1, 1, 0, 40000), +(9300094, 2280005, 1, 1, 0, 40000), +(9300094, 2280006, 1, 1, 0, 40000), +(9300095, 2280004, 1, 1, 0, 2000), +(9300095, 2280005, 1, 1, 0, 2000), +(9300095, 2280006, 1, 1, 0, 2000), +(9303016, 2290006, 1, 1, 0, 2000), +(9303016, 2290030, 1, 1, 0, 2000), +(9303016, 2290032, 1, 1, 0, 2000), +(9303016, 2290060, 1, 1, 0, 2000), +(9303016, 2290076, 1, 1, 0, 2000), +(9303016, 2290104, 1, 1, 0, 2000), +(9303016, 2290117, 1, 1, 0, 2000), +(9400014, 2290053, 1, 1, 0, 40000), +(9400014, 2290087, 1, 1, 0, 40000), +(9400014, 2290112, 1, 1, 0, 40000), +(9400014, 2290122, 1, 1, 0, 40000), +(9400120, 2290045, 1, 1, 0, 40000), +(9400121, 2280014, 1, 1, 0, 180000), +(9400121, 2290081, 1, 1, 0, 60000), +(9400121, 2290087, 1, 1, 0, 60000), +(9400121, 2290101, 1, 1, 0, 60000), +(9400121, 2290103, 1, 1, 0, 60000), +(9400122, 2290007, 1, 1, 0, 40000), +(9400122, 2290062, 1, 1, 0, 40000), +(9400122, 2290116, 1, 1, 0, 40000), +(9400300, 2290045, 1, 1, 0, 120000), +(9400300, 2290055, 1, 1, 0, 120000), +(9400300, 2290063, 1, 1, 0, 120000), +(9400300, 2290079, 1, 1, 0, 120000), +(9400300, 2290081, 1, 1, 0, 120000), +(9400300, 2290096, 1, 1, 0, 120000), +(9400514, 2290023, 1, 1, 0, 40000), +(9400514, 2290057, 1, 1, 0, 40000), +(9400514, 2290088, 1, 1, 0, 40000), +(9400514, 2290095, 1, 1, 0, 40000), +(9400514, 2290115, 1, 1, 0, 40000), +(9400514, 2290139, 1, 1, 0, 120000), +(9400549, 2290001, 1, 1, 0, 40000), +(9400549, 2290020, 1, 1, 0, 40000), +(9400549, 2290045, 1, 1, 0, 40000), +(9400549, 2290057, 1, 1, 0, 40000), +(9400549, 2290086, 1, 1, 0, 40000), +(9400575, 2290009, 1, 1, 0, 40000), +(9400575, 2290051, 1, 1, 0, 40000), +(9400575, 2290081, 1, 1, 0, 40000), +(9400575, 2290087, 1, 1, 0, 40000), +(9400575, 2290107, 1, 1, 0, 40000), +(9400575, 2290123, 1, 1, 0, 40000), +(9400580, 2290004, 1, 1, 0, 2000), +(9400580, 2290024, 1, 1, 0, 2000), +(9400580, 2290083, 1, 1, 0, 2000), +(9400580, 2290087, 1, 1, 0, 2000), +(9400580, 2290103, 1, 1, 0, 2000), +(9400580, 2290121, 1, 1, 0, 2000), +(9400582, 2290005, 1, 1, 0, 2000), +(9400582, 2290010, 1, 1, 0, 2000), +(9400582, 2290029, 1, 1, 0, 2000), +(9400582, 2290047, 1, 1, 0, 2000), +(9400582, 2290049, 1, 1, 0, 2000), +(9400582, 2290074, 1, 1, 0, 2000), +(9400582, 2290079, 1, 1, 0, 2000), +(9400582, 2290081, 1, 1, 0, 2000), +(9400582, 2290135, 1, 1, 0, 6000), +(9400590, 2290088, 1, 1, 0, 60000), +(9400590, 2290125, 1, 1, 0, 60000), +(9400590, 2290135, 1, 1, 0, 180000), +(9400591, 2290039, 1, 1, 0, 60000), +(9400591, 2290074, 1, 1, 0, 60000), +(9400591, 2290113, 1, 1, 0, 60000), +(9400592, 2290047, 1, 1, 0, 60000), +(9400592, 2290123, 1, 1, 0, 60000), +(9400592, 2290131, 1, 1, 0, 180000), +(9400593, 2290069, 1, 1, 0, 60000), +(9400593, 2290093, 1, 1, 0, 60000), +(9400593, 2290138, 1, 1, 0, 180000), +(9420513, 2290039, 1, 1, 0, 40000), +(9420513, 2290100, 1, 1, 0, 40000), +(9420513, 2290108, 1, 1, 0, 40000), +(9420513, 2290118, 1, 1, 0, 40000), +(9420513, 2290138, 1, 1, 0, 120000), +(9420514, 2290099, 1, 1, 0, 1287), +(9420517, 2290000, 1, 1, 0, 1287), +(9420517, 2290008, 1, 1, 0, 1287), +(9420517, 2290018, 1, 1, 0, 1287), +(9420517, 2290038, 1, 1, 0, 1287), +(9420517, 2290060, 1, 1, 0, 1287), +(9420517, 2290080, 1, 1, 0, 1287), +(9420517, 2290103, 1, 1, 0, 1287), +(9420518, 2290123, 1, 1, 0, 1287), +(9420519, 2290113, 1, 1, 0, 1287), +(9420522, 2290000, 1, 1, 0, 1287), +(9420522, 2290001, 1, 1, 0, 1287), +(9420522, 2290011, 1, 1, 0, 1287), +(9420522, 2290025, 1, 1, 0, 1287), +(9420522, 2290028, 1, 1, 0, 1287), +(9420522, 2290037, 1, 1, 0, 1287), +(9420522, 2290043, 1, 1, 0, 1287), +(9420522, 2290066, 1, 1, 0, 1287), +(9420522, 2290082, 1, 1, 0, 1287), +(9420522, 2290083, 1, 1, 0, 1287), +(9420522, 2290089, 1, 1, 0, 1287), +(9420522, 2290091, 1, 1, 0, 1287), +(9420522, 2290107, 1, 1, 0, 1287), +(9420540, 2280006, 1, 1, 0, 2000), +(9420540, 2290119, 1, 1, 0, 2000), +(9420540, 2290120, 1, 1, 0, 2000), +(9420544, 2280007, 1, 1, 0, 80000), +(9420544, 2280008, 1, 1, 0, 80000), +(9420544, 2280009, 1, 1, 0, 80000), +(9420544, 2280010, 1, 1, 0, 80000), +(9420544, 2290002, 1, 1, 0, 80000), +(9420544, 2290015, 1, 1, 0, 80000), +(9420544, 2290022, 1, 1, 0, 80000), +(9420544, 2290027, 1, 1, 0, 80000), +(9420544, 2290034, 1, 1, 0, 80000), +(9420544, 2290052, 1, 1, 0, 80000), +(9420544, 2290054, 1, 1, 0, 80000), +(9420544, 2290089, 1, 1, 0, 80000), +(9420544, 2290094, 1, 1, 0, 80000), +(9420544, 2290098, 1, 1, 0, 80000), +(9420544, 2290105, 1, 1, 0, 80000), +(9420544, 2290110, 1, 1, 0, 80000), +(9420544, 2290119, 1, 1, 0, 80000), +(9420549, 2280007, 1, 1, 0, 80000), +(9420549, 2280008, 1, 1, 0, 80000), +(9420549, 2280009, 1, 1, 0, 80000), +(9420549, 2280010, 1, 1, 0, 80000), +(9420549, 2290002, 1, 1, 0, 80000), +(9420549, 2290015, 1, 1, 0, 80000), +(9420549, 2290022, 1, 1, 0, 80000), +(9420549, 2290027, 1, 1, 0, 80000), +(9420549, 2290034, 1, 1, 0, 80000), +(9420549, 2290052, 1, 1, 0, 80000), +(9420549, 2290054, 1, 1, 0, 80000), +(9420549, 2290089, 1, 1, 0, 80000), +(9420549, 2290094, 1, 1, 0, 80000), +(9420549, 2290098, 1, 1, 0, 80000), +(9420549, 2290105, 1, 1, 0, 80000), +(9420549, 2290110, 1, 1, 0, 80000), +(9420549, 2290119, 1, 1, 0, 80000), +(9500166, 2290044, 1, 1, 0, 2000), +(9500173, 2290018, 1, 1, 0, 40000), +(9500173, 2290019, 1, 1, 0, 40000), +(9500173, 2290032, 1, 1, 0, 40000), +(9500173, 2290042, 1, 1, 0, 40000), +(9500173, 2290058, 1, 1, 0, 40000), +(9500173, 2290068, 1, 1, 0, 40000), +(9500173, 2290072, 1, 1, 0, 40000), +(9500173, 2290092, 1, 1, 0, 40000), +(9500173, 2290099, 1, 1, 0, 40000), +(9500173, 2290102, 1, 1, 0, 40000), +(9500173, 2290119, 1, 1, 0, 40000), +(9500173, 2290128, 1, 1, 0, 120000), +(9500174, 2290002, 1, 1, 0, 40000), +(9500174, 2290014, 1, 1, 0, 40000), +(9500174, 2290030, 1, 1, 0, 40000), +(9500174, 2290080, 1, 1, 0, 40000), +(9500174, 2290130, 1, 1, 0, 120000), +(9500180, 2290010, 1, 1, 0, 40000), +(9500180, 2290028, 1, 1, 0, 40000), +(9500180, 2290126, 1, 1, 0, 120000), +(9500181, 2290010, 1, 1, 0, 40000), +(9500181, 2290028, 1, 1, 0, 40000), +(9500181, 2290126, 1, 1, 0, 120000), +(9500331, 2290010, 1, 1, 0, 40000), +(9500331, 2290028, 1, 1, 0, 40000), +(9500331, 2290126, 1, 1, 0, 120000), +(9500332, 2290132, 1, 1, 0, 120000), +(9500333, 2290006, 1, 1, 0, 40000), +(9500333, 2290030, 1, 1, 0, 40000), +(9500333, 2290032, 1, 1, 0, 40000), +(9500333, 2290060, 1, 1, 0, 40000), +(9500333, 2290076, 1, 1, 0, 40000), +(9500333, 2290104, 1, 1, 0, 40000), +(9500333, 2290117, 1, 1, 0, 40000), diff --git a/tools/MapleSkillbookChanceFetcher/manifest.mf b/tools/MapleSkillbookChanceFetcher/manifest.mf new file mode 100644 index 0000000000..328e8e5bc3 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/tools/MapleSkillbookChanceFetcher/nbproject/build-impl.xml b/tools/MapleSkillbookChanceFetcher/nbproject/build-impl.xml new file mode 100644 index 0000000000..7b66374940 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/nbproject/build-impl.xml @@ -0,0 +1,1448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set platform.home + Must set platform.bootcp + Must set platform.java + Must set platform.javac + + The J2SE Platform is not correctly set up. + Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files. + Either open the project in the IDE and setup the Platform with the same name or add it manually. + For example like this: + ant -Duser.properties.file=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file) + or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> jar (where no properties file is used) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + ${platform.java} -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/MapleSkillbookChanceFetcher/nbproject/genfiles.properties b/tools/MapleSkillbookChanceFetcher/nbproject/genfiles.properties new file mode 100644 index 0000000000..54707bdeab --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=661885c2 +build.xml.script.CRC32=5e98558c +build.xml.stylesheet.CRC32=8064a381@1.75.2.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=661885c2 +nbproject/build-impl.xml.script.CRC32=73de760b +nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48 diff --git a/tools/MapleSkillbookChanceFetcher/nbproject/project.properties b/tools/MapleSkillbookChanceFetcher/nbproject/project.properties new file mode 100644 index 0000000000..9c0ca12f7e --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/nbproject/project.properties @@ -0,0 +1,77 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=MapleSkillbookChanceFetcher +application.vendor=USER +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# Os arquivos em build.classes.dir que devem ser exclu\u00eddos do jar de distribui\u00e7\u00e3o +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/MapleSkillbookChanceFetcher.jar +dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= +excludes= +file.reference.mysql-connector-java-bin.jar=lib/mysql-connector-java-bin.jar +includes=** +jar.compress=false +javac.classpath=\ + ${file.reference.mysql-connector-java-bin.jar} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.processorpath=\ + ${javac.classpath} +javac.source=1.7 +javac.target=1.7 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class=mapleskillbookchancefetcher.MapleSkillbookChanceFetcher +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=JDK_1.7 +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/tools/MapleSkillbookChanceFetcher/nbproject/project.xml b/tools/MapleSkillbookChanceFetcher/nbproject/project.xml new file mode 100644 index 0000000000..51d885e745 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/nbproject/project.xml @@ -0,0 +1,16 @@ + + + org.netbeans.modules.java.j2seproject + + + MapleSkillbookChanceFetcher + + + + + + + + + + diff --git a/tools/MapleSkillbookChanceFetcher/src/life/Element.java b/tools/MapleSkillbookChanceFetcher/src/life/Element.java new file mode 100644 index 0000000000..5520ba3501 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/life/Element.java @@ -0,0 +1,46 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package life; + +public enum Element { + NEUTRAL, FIRE, ICE, LIGHTING, POISON, HOLY, DARK; + + public static Element getFromChar(char c) { + switch (Character.toUpperCase(c)) { + case 'F': + return FIRE; + case 'I': + return ICE; + case 'L': + return LIGHTING; + case 'S': + return POISON; + case 'H': + return HOLY; + case 'D': + return DARK; + case 'P': + return NEUTRAL; + } + throw new IllegalArgumentException("unknown elemnt char " + c); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/life/ElementalEffectiveness.java b/tools/MapleSkillbookChanceFetcher/src/life/ElementalEffectiveness.java new file mode 100644 index 0000000000..f8d23ef5c7 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/life/ElementalEffectiveness.java @@ -0,0 +1,41 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package life; + +public enum ElementalEffectiveness { + NORMAL, IMMUNE, STRONG, WEAK, NEUTRAL; + + public static ElementalEffectiveness getByNumber(int num) { + switch (num) { + case 1: + return IMMUNE; + case 2: + return STRONG; + case 3: + return WEAK; + case 4: + return NEUTRAL; + default: + throw new IllegalArgumentException("Unkown effectiveness: " + num); + } + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/life/MapleLifeFactory.java b/tools/MapleSkillbookChanceFetcher/src/life/MapleLifeFactory.java new file mode 100644 index 0000000000..23ccd67e43 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/life/MapleLifeFactory.java @@ -0,0 +1,240 @@ +/* +This file is part of the OdinMS Maple Story Server +Copyright (C) 2008 Patrick Huy +Matthias Butz +Jan Christian Meyer + +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 . + */ +package life; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import provider.MapleData; +import provider.MapleDataDirectoryEntry; +import provider.MapleDataFileEntry; +import provider.MapleDataProvider; +import provider.MapleDataProviderFactory; +import provider.MapleDataTool; +import provider.wz.MapleDataType; +import tools.Pair; + +public class MapleLifeFactory { + private static String wzPath = "../../wz"; + private static MapleDataProvider data = MapleDataProviderFactory.getDataProvider(new File(wzPath + "/Mob.wz")); + private final static MapleDataProvider stringDataWZ = MapleDataProviderFactory.getDataProvider(new File(wzPath + "/String.wz")); + private static MapleData mobStringData = stringDataWZ.getData("Mob.img"); + private static MapleData npcStringData = stringDataWZ.getData("Npc.img"); + private static Map monsterStats = new HashMap<>(); + + private static int getMonsterId(String fileName) { + return Integer.parseInt(fileName.substring(0, 7)); + } + + public static Map getAllMonsterStats() { + MapleDataDirectoryEntry root = data.getRoot(); + + System.out.print("Parsing mob stats... "); + for (MapleDataFileEntry mFile : root.getFiles()) { + try { + String fileName = mFile.getName(); + + //System.out.println("Parsing '" + fileName + "'"); + MapleData monsterData = data.getData(fileName); + if (monsterData == null) { + continue; + } + + Integer mid = getMonsterId(fileName); + + MapleData monsterInfoData = monsterData.getChildByPath("info"); + MapleMonsterStats stats = new MapleMonsterStats(); + stats.setHp(MapleDataTool.getIntConvert("maxHP", monsterInfoData)); + stats.setFriendly(MapleDataTool.getIntConvert("damagedByMob", monsterInfoData, 0) == 1); + stats.setPADamage(MapleDataTool.getIntConvert("PADamage", monsterInfoData)); + stats.setPDDamage(MapleDataTool.getIntConvert("PDDamage", monsterInfoData)); + stats.setMADamage(MapleDataTool.getIntConvert("MADamage", monsterInfoData)); + stats.setMDDamage(MapleDataTool.getIntConvert("MDDamage", monsterInfoData)); + stats.setMp(MapleDataTool.getIntConvert("maxMP", monsterInfoData, 0)); + stats.setExp(MapleDataTool.getIntConvert("exp", monsterInfoData, 0)); + stats.setLevel(MapleDataTool.getIntConvert("level", monsterInfoData)); + stats.setRemoveAfter(MapleDataTool.getIntConvert("removeAfter", monsterInfoData, 0)); + stats.setBoss(MapleDataTool.getIntConvert("boss", monsterInfoData, 0) > 0); + stats.setExplosiveReward(MapleDataTool.getIntConvert("explosiveReward", monsterInfoData, 0) > 0); + stats.setFfaLoot(MapleDataTool.getIntConvert("publicReward", monsterInfoData, 0) > 0); + stats.setUndead(MapleDataTool.getIntConvert("undead", monsterInfoData, 0) > 0); + stats.setName(MapleDataTool.getString(mid + "/name", mobStringData, "MISSINGNO")); + stats.setBuffToGive(MapleDataTool.getIntConvert("buff", monsterInfoData, -1)); + stats.setCP(MapleDataTool.getIntConvert("getCP", monsterInfoData, 0)); + stats.setRemoveOnMiss(MapleDataTool.getIntConvert("removeOnMiss", monsterInfoData, 0) > 0); + + MapleData special = monsterInfoData.getChildByPath("coolDamage"); + if (special != null) { + int coolDmg = MapleDataTool.getIntConvert("coolDamage", monsterInfoData); + int coolProb = MapleDataTool.getIntConvert("coolDamageProb", monsterInfoData, 0); + stats.setCool(new Pair<>(coolDmg, coolProb)); + } + special = monsterInfoData.getChildByPath("loseItem"); + if (special != null) { + for (MapleData liData : special.getChildren()) { + stats.addLoseItem(new loseItem(MapleDataTool.getInt(liData.getChildByPath("id")), (byte) MapleDataTool.getInt(liData.getChildByPath("prop")), (byte) MapleDataTool.getInt(liData.getChildByPath("x")))); + } + } + special = monsterInfoData.getChildByPath("selfDestruction"); + if (special != null) { + stats.setSelfDestruction(new selfDestruction((byte) MapleDataTool.getInt(special.getChildByPath("action")), MapleDataTool.getIntConvert("removeAfter", special, -1), MapleDataTool.getIntConvert("hp", special, -1))); + } + MapleData firstAttackData = monsterInfoData.getChildByPath("firstAttack"); + int firstAttack = 0; + if (firstAttackData != null) { + if (firstAttackData.getType() == MapleDataType.FLOAT) { + firstAttack = Math.round(MapleDataTool.getFloat(firstAttackData)); + } else { + firstAttack = MapleDataTool.getInt(firstAttackData); + } + } + stats.setFirstAttack(firstAttack > 0); + stats.setDropPeriod(MapleDataTool.getIntConvert("dropItemPeriod", monsterInfoData, 0) * 10000); + + stats.setTagColor(MapleDataTool.getIntConvert("hpTagColor", monsterInfoData, 0)); + stats.setTagBgColor(MapleDataTool.getIntConvert("hpTagBgcolor", monsterInfoData, 0)); + + for (MapleData idata : monsterData) { + if (!idata.getName().equals("info")) { + int delay = 0; + for (MapleData pic : idata.getChildren()) { + delay += MapleDataTool.getIntConvert("delay", pic, 0); + } + stats.setAnimationTime(idata.getName(), delay); + } + } + MapleData reviveInfo = monsterInfoData.getChildByPath("revive"); + if (reviveInfo != null) { + List revives = new LinkedList<>(); + for (MapleData data_ : reviveInfo) { + revives.add(MapleDataTool.getInt(data_)); + } + stats.setRevives(revives); + } + decodeElementalString(stats, MapleDataTool.getString("elemAttr", monsterInfoData, "")); + MapleData monsterSkillData = monsterInfoData.getChildByPath("skill"); + if (monsterSkillData != null) { + int i = 0; + List> skills = new ArrayList<>(); + while (monsterSkillData.getChildByPath(Integer.toString(i)) != null) { + skills.add(new Pair<>(Integer.valueOf(MapleDataTool.getInt(i + "/skill", monsterSkillData, 0)), Integer.valueOf(MapleDataTool.getInt(i + "/level", monsterSkillData, 0)))); + i++; + } + stats.setSkills(skills); + } + MapleData banishData = monsterInfoData.getChildByPath("ban"); + if (banishData != null) { + stats.setBanishInfo(new BanishInfo(MapleDataTool.getString("banMsg", banishData), MapleDataTool.getInt("banMap/0/field", banishData, -1), MapleDataTool.getString("banMap/0/portal", banishData, "sp"))); + } + + monsterStats.put(mid, stats); + } catch(NullPointerException npe) { + //System.out.println("[SEVERE] " + mFile.getName() + " failed to load. Issue: " + npe.getMessage() + "\n\n"); + } + } + + System.out.println("done!"); + return monsterStats; + } + + private static void decodeElementalString(MapleMonsterStats stats, String elemAttr) { + for (int i = 0; i < elemAttr.length(); i += 2) { + stats.setEffectiveness(Element.getFromChar(elemAttr.charAt(i)), ElementalEffectiveness.getByNumber(Integer.valueOf(String.valueOf(elemAttr.charAt(i + 1))))); + } + } + + public static class BanishInfo { + + private int map; + private String portal, msg; + + public BanishInfo(String msg, int map, String portal) { + this.msg = msg; + this.map = map; + this.portal = portal; + } + + public int getMap() { + return map; + } + + public String getPortal() { + return portal; + } + + public String getMsg() { + return msg; + } + } + + public static class loseItem { + + private int id; + private byte chance, x; + + private loseItem(int id, byte chance, byte x) { + this.id = id; + this.chance = chance; + this.x = x; + } + + public int getId() { + return id; + } + + public byte getChance() { + return chance; + } + + public byte getX() { + return x; + } + } + + public static class selfDestruction { + + private byte action; + private int removeAfter; + private int hp; + + private selfDestruction(byte action, int removeAfter, int hp) { + this.action = action; + this.removeAfter = removeAfter; + this.hp = hp; + } + + public int getHp() { + return hp; + } + + public byte getAction() { + return action; + } + + public int removeAfter() { + return removeAfter; + } + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/life/MapleMonsterStats.java b/tools/MapleSkillbookChanceFetcher/src/life/MapleMonsterStats.java new file mode 100644 index 0000000000..42b091545d --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/life/MapleMonsterStats.java @@ -0,0 +1,336 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package life; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import life.MapleLifeFactory.BanishInfo; +import life.MapleLifeFactory.loseItem; +import life.MapleLifeFactory.selfDestruction; +import tools.Pair; + +/** + * @author Frz + */ +public class MapleMonsterStats { + private boolean changeable; + private int exp, hp, mp, level, PADamage, PDDamage, MADamage, MDDamage, dropPeriod, cp, buffToGive, removeAfter; + private boolean boss, undead, ffaLoot, isExplosiveReward, firstAttack, removeOnMiss; + private String name; + private Map animationTimes = new HashMap(); + private Map resistance = new HashMap(); + private List revives = Collections.emptyList(); + private byte tagColor, tagBgColor; + private List> skills = new ArrayList>(); + private Pair cool = null; + private BanishInfo banish = null; + private List loseItem = null; + private selfDestruction selfDestruction = null; + private boolean friendly; + + public void setChange(boolean change) { + this.changeable = change; + } + + public boolean isChangeable() { + return changeable; + } + + public int getExp() { + return exp; + } + + public void setExp(int exp) { + this.exp = exp; + } + + public int getHp() { + return hp; + } + + public void setHp(int hp) { + this.hp = hp; + } + + public int getMp() { + return mp; + } + + public void setMp(int mp) { + this.mp = mp; + } + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } + + public int removeAfter() { + return removeAfter; + } + + public void setRemoveAfter(int removeAfter) { + this.removeAfter = removeAfter; + } + + public int getDropPeriod() { + return dropPeriod; + } + + public void setDropPeriod(int dropPeriod) { + this.dropPeriod = dropPeriod; + } + + public void setBoss(boolean boss) { + this.boss = boss; + } + + public boolean isBoss() { + return boss; + } + + public void setFfaLoot(boolean ffaLoot) { + this.ffaLoot = ffaLoot; + } + + public boolean isFfaLoot() { + return ffaLoot; + } + + public void setAnimationTime(String name, int delay) { + animationTimes.put(name, delay); + } + + public int getAnimationTime(String name) { + Integer ret = animationTimes.get(name); + if (ret == null) { + return 500; + } + return ret.intValue(); + } + + public boolean isMobile() { + return animationTimes.containsKey("move") || animationTimes.containsKey("fly"); + } + + public List getRevives() { + return revives; + } + + public void setRevives(List revives) { + this.revives = revives; + } + + public void setUndead(boolean undead) { + this.undead = undead; + } + + public boolean getUndead() { + return undead; + } + + public void setEffectiveness(Element e, ElementalEffectiveness ee) { + resistance.put(e, ee); + } + + public ElementalEffectiveness getEffectiveness(Element e) { + ElementalEffectiveness elementalEffectiveness = resistance.get(e); + if (elementalEffectiveness == null) { + return ElementalEffectiveness.NORMAL; + } else { + return elementalEffectiveness; + } + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public byte getTagColor() { + return tagColor; + } + + public void setTagColor(int tagColor) { + this.tagColor = (byte) tagColor; + } + + public byte getTagBgColor() { + return tagBgColor; + } + + public void setTagBgColor(int tagBgColor) { + this.tagBgColor = (byte) tagBgColor; + } + + public void setSkills(List> skills) { + for (Pair skill : skills) { + this.skills.add(skill); + } + } + + public List> getSkills() { + return Collections.unmodifiableList(this.skills); + } + + public int getNoSkills() { + return this.skills.size(); + } + + public boolean hasSkill(int skillId, int level) { + for (Pair skill : skills) { + if (skill.getLeft() == skillId && skill.getRight() == level) { + return true; + } + } + return false; + } + + public void setFirstAttack(boolean firstAttack) { + this.firstAttack = firstAttack; + } + + public boolean isFirstAttack() { + return firstAttack; + } + + public void setBuffToGive(int buff) { + this.buffToGive = buff; + } + + public int getBuffToGive() { + return buffToGive; + } + + void removeEffectiveness(Element e) { + resistance.remove(e); + } + + public BanishInfo getBanishInfo() { + return banish; + } + + public void setBanishInfo(BanishInfo banish) { + this.banish = banish; + } + + public int getPADamage() { + return PADamage; + } + + public void setPADamage(int PADamage) { + this.PADamage = PADamage; + } + + public int getCP() { + return cp; + } + + public void setCP(int cp) { + this.cp = cp; + } + + public List loseItem() { + return loseItem; + } + + public void addLoseItem(loseItem li) { + if (loseItem == null) { + loseItem = new LinkedList(); + } + loseItem.add(li); + } + + public selfDestruction selfDestruction() { + return selfDestruction; + } + + public void setSelfDestruction(selfDestruction sd) { + this.selfDestruction = sd; + } + + public void setExplosiveReward(boolean isExplosiveReward) { + this.isExplosiveReward = isExplosiveReward; + } + + public boolean isExplosiveReward() { + return isExplosiveReward; + } + + public void setRemoveOnMiss(boolean removeOnMiss) { + this.removeOnMiss = removeOnMiss; + } + + public boolean removeOnMiss() { + return removeOnMiss; + } + + public void setCool(Pair cool) { + this.cool = cool; + } + + public Pair getCool() { + return cool; + } + + public int getPDDamage() { + return PDDamage; + } + + public int getMADamage() { + return MADamage; + } + + public int getMDDamage() { + return MDDamage; + } + + public boolean isFriendly() { + return friendly; + } + + public void setFriendly(boolean value) { + this.friendly = value; + } + + public void setPDDamage(int PDDamage) { + this.PDDamage = PDDamage; + } + + public void setMADamage(int MADamage) { + this.MADamage = MADamage; + } + + public void setMDDamage(int MDDamage) { + this.MDDamage = MDDamage; + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/mapleskillbookchancefetcher/MapleSkillbookChanceFetcher.java b/tools/MapleSkillbookChanceFetcher/src/mapleskillbookchancefetcher/MapleSkillbookChanceFetcher.java new file mode 100644 index 0000000000..b28c4b499e --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/mapleskillbookchancefetcher/MapleSkillbookChanceFetcher.java @@ -0,0 +1,159 @@ +/* + This file is part of the HeavenMS MapleStory Server + Copyleft (L) 2016 - 2018 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 . +*/ +package mapleskillbookchancefetcher; + +import life.MapleLifeFactory; +import life.MapleMonsterStats; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +import java.io.*; +import java.util.Collections; +import java.util.Comparator; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import tools.DatabaseConnection; +import tools.Pair; + +/** + * + * @author RonanLana + * + * This application traces missing meso drop data on the underlying DB (that must be + * defined on the DatabaseConnection file of this project) and generates a + * SQL file that proposes missing drop entries for the drop_data table. + * + * The meso range is calculated accordingly with the target mob stats, such as level + * and if it's a boss or not, similarly as how it has been done for the actual meso + * drops. + * + */ +public class MapleSkillbookChanceFetcher { + + private static PrintWriter printWriter; + private static String newFile = "lib/skillbook_drop_data.sql"; + + private static Map mobStats; + private static Map, Integer> skillbookChances = new HashMap<>(); + + private static List, Integer>> sortedSkillbookChances() { + List, Integer>> skillbookChancesList = new ArrayList<>(skillbookChances.entrySet()); + + Collections.sort(skillbookChancesList, new Comparator, Integer>>() { + @Override + public int compare(Entry, Integer> o1, Entry, Integer> o2) { + if (o1.getKey().getLeft().equals(o2.getKey().getLeft())) { + return o1.getKey().getRight() < o2.getKey().getRight() ? -1 : (o1.getKey().getRight().equals(o2.getKey().getRight()) ? 0 : 1); + } + + return (o1.getKey().getLeft() < o2.getKey().getLeft()) ? -1 : 1; + } + }); + + return skillbookChancesList; + } + + private static boolean isLegendSkillUpgradeBook(int itemid) { + int itemidBranch = itemid / 10000; + return (itemidBranch == 228 && itemid >= 2280013 || itemidBranch == 229 && itemid >= 2290126); // drop rate of Legends are higher + } + + private static void fetchSkillbookDropChances() { + Connection con = DatabaseConnection.getConnection(); + + try { + PreparedStatement ps = con.prepareStatement("SELECT dropperid, itemid FROM drop_data WHERE itemid >= 2280000 AND itemid < 2300000"); + ResultSet rs = ps.executeQuery(); + + while(rs.next()) { + int mobid = rs.getInt("dropperid"); + int itemid = rs.getInt("itemid"); + + int expectedChance = 1000; + + if (mobStats.get(mobid) != null) { + int level = mobStats.get(mobid).getLevel(); + expectedChance *= Math.max(2, (level - 80) / 15); + + if (mobStats.get(mobid).isBoss()) { + expectedChance *= 20; + } else { + expectedChance *= 1; + } + } else { + expectedChance = 1287; + } + + if (isLegendSkillUpgradeBook(itemid)) { // drop rate of Legends seems to be higher than explorers, in retrospect from values in DB + expectedChance *= 3; + } + + skillbookChances.put(new Pair<>(mobid, itemid), expectedChance); + } + + rs.close(); + ps.close(); + con.close(); + } catch(Exception e) { + e.printStackTrace(); + } + } + + private static void printSkillbookChanceUpdateSqlHeader() { + printWriter.println(" # SQL File autogenerated from the MapleSkillbookChanceFetcher feature by Ronan Lana."); + printWriter.println(" # Generated data takes into account mob stats such as level and boss for the chance rates."); + printWriter.println(); + + printWriter.println(" REPLACE INTO drop_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) VALUES"); + } + + private static void generateSkillbookChanceUpdateFile() { + try { + printWriter = new PrintWriter(newFile, "UTF-8"); + + printSkillbookChanceUpdateSqlHeader(); + + List, Integer>> skillbookChancesList = sortedSkillbookChances(); + for (Entry, Integer> e : skillbookChancesList) { + printWriter.println("(" + e.getKey().getLeft() + ", " + e.getKey().getRight() + ", 1, 1, 0, " + e.getValue() + "),"); + } + + printWriter.close(); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + public static void main(String[] args) { + // load mob stats from WZ + mobStats = MapleLifeFactory.getAllMonsterStats(); + + fetchSkillbookDropChances(); + generateSkillbookChanceUpdateFile(); + } + +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleCanvas.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleCanvas.java new file mode 100644 index 0000000000..10ab682196 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleCanvas.java @@ -0,0 +1,30 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +import java.awt.image.BufferedImage; + +public interface MapleCanvas { + int getHeight(); + int getWidth(); + BufferedImage getImage(); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleData.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleData.java new file mode 100644 index 0000000000..4d90a93804 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleData.java @@ -0,0 +1,34 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +import java.util.List; +import provider.wz.MapleDataType; + +public interface MapleData extends MapleDataEntity, Iterable { + @Override + public String getName(); + public MapleDataType getType(); + public List getChildren(); + public MapleData getChildByPath(String path); + public Object getData(); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataDirectoryEntry.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataDirectoryEntry.java new file mode 100644 index 0000000000..cb043e0c94 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataDirectoryEntry.java @@ -0,0 +1,34 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +import java.util.List; + +/** + * + * @author Matze + */ +public interface MapleDataDirectoryEntry extends MapleDataEntry { + public List getSubdirectories(); + public List getFiles(); + public MapleDataEntry getEntry(String name); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataEntity.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataEntity.java new file mode 100644 index 0000000000..03ff77649c --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataEntity.java @@ -0,0 +1,31 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +/** + * + * @author Matze + */ +public interface MapleDataEntity { + public String getName(); + public MapleDataEntity getParent(); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataEntry.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataEntry.java new file mode 100644 index 0000000000..62db6d0abe --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataEntry.java @@ -0,0 +1,33 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +/** + * + * @author Matze + */ +public interface MapleDataEntry extends MapleDataEntity { + public String getName(); + public int getSize(); + public int getChecksum(); + public int getOffset(); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataFileEntry.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataFileEntry.java new file mode 100644 index 0000000000..902130a612 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataFileEntry.java @@ -0,0 +1,30 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +/** + * + * @author Matze + */ +public interface MapleDataFileEntry extends MapleDataEntry { + public void setOffset(int offset); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataProvider.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataProvider.java new file mode 100644 index 0000000000..5237b7ac37 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataProvider.java @@ -0,0 +1,27 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +public interface MapleDataProvider { + MapleData getData(String path); + MapleDataDirectoryEntry getRoot(); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataProviderFactory.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataProviderFactory.java new file mode 100644 index 0000000000..14753d4406 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataProviderFactory.java @@ -0,0 +1,55 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +import java.io.File; +import java.io.IOException; +import provider.wz.WZFile; +import provider.wz.XMLWZFile; + +public class MapleDataProviderFactory { + private final static String wzPath = System.getProperty("wzpath"); + + private static MapleDataProvider getWZ(File in, boolean provideImages) { + if (in.getName().toLowerCase().endsWith("wz") && !in.isDirectory()) { + try { + return new WZFile(in, provideImages); + } catch (IOException e) { + throw new RuntimeException("Loading WZ File failed", e); + } + } else { + return new XMLWZFile(in); + } + } + + public static MapleDataProvider getDataProvider(File in) { + return getWZ(in, false); + } + + public static MapleDataProvider getImageProvidingDataProvider(File in) { + return getWZ(in, true); + } + + public static File fileInWZPath(String filename) { + return new File(wzPath, filename); + } +} \ No newline at end of file diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataTool.java b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataTool.java new file mode 100644 index 0000000000..25f4c7f817 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/MapleDataTool.java @@ -0,0 +1,145 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider; + +import java.awt.Point; +import java.awt.image.BufferedImage; +import provider.wz.MapleDataType; + +public class MapleDataTool { + public static String getString(MapleData data) { + return ((String) data.getData()); + } + + public static String getString(MapleData data, String def) { + if (data == null || data.getData() == null) { + return def; + } else { + return ((String) data.getData()); + } + } + + public static String getString(String path, MapleData data) { + return getString(data.getChildByPath(path)); + } + + public static String getString(String path, MapleData data, String def) { + return getString(data.getChildByPath(path), def); + } + + public static double getDouble(MapleData data) { + return ((Double) data.getData()).doubleValue(); + } + + public static float getFloat(MapleData data) { + return ((Float) data.getData()).floatValue(); + } + + public static int getInt(MapleData data) { + if (data == null || data.getData() == null) { + return 0;// DEF? + } + return ((Integer) data.getData()).intValue(); + } + + public static int getInt(String path, MapleData data) { + return getInt(data.getChildByPath(path)); + } + + public static int getIntConvert(MapleData data) { + if (data.getType() == MapleDataType.STRING) { + return Integer.parseInt(getString(data)); + } else { + return getInt(data); + } + } + + public static int getIntConvert(String path, MapleData data) { + MapleData d = data.getChildByPath(path); + if (d.getType() == MapleDataType.STRING) { + return Integer.parseInt(getString(d)); + } else { + return getInt(d); + } + } + + public static int getInt(MapleData data, int def) { + if (data == null || data.getData() == null) { + return def; + } else if (data.getType() == MapleDataType.STRING) { + return Integer.parseInt(getString(data)); + } else { + return ((Integer) data.getData()).intValue(); + } + } + + public static int getInt(String path, MapleData data, int def) { + return getInt(data.getChildByPath(path), def); + } + + public static int getIntConvert(String path, MapleData data, int def) { + MapleData d = data.getChildByPath(path); + if (d == null) { + return def; + } + if (d.getType() == MapleDataType.STRING) { + try { + return Integer.parseInt(getString(d)); + } catch (NumberFormatException nfe) { + nfe.printStackTrace(); + return def; + } + } else { + return getInt(d, def); + } + } + + public static BufferedImage getImage(MapleData data) { + return ((MapleCanvas) data.getData()).getImage(); + } + + public static Point getPoint(MapleData data) { + return ((Point) data.getData()); + } + + public static Point getPoint(String path, MapleData data) { + return getPoint(data.getChildByPath(path)); + } + + public static Point getPoint(String path, MapleData data, Point def) { + final MapleData pointData = data.getChildByPath(path); + if (pointData == null) { + return def; + } + return getPoint(pointData); + } + + public static String getFullDataPath(MapleData data) { + String path = ""; + MapleDataEntity myData = data; + while (myData != null) { + path = myData.getName() + "/" + path; + myData = myData.getParent(); + } + return path.substring(0, path.length() - 1); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/FileStoredPngMapleCanvas.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/FileStoredPngMapleCanvas.java new file mode 100644 index 0000000000..21736c2c16 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/FileStoredPngMapleCanvas.java @@ -0,0 +1,70 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import javax.imageio.ImageIO; +import provider.MapleCanvas; + +public class FileStoredPngMapleCanvas implements MapleCanvas { + private File file; + private int width; + private int height; + private BufferedImage image; + + public FileStoredPngMapleCanvas(int width, int height, File fileIn) { + this.width = width; + this.height = height; + this.file = fileIn; + } + + @Override + public int getHeight() { + return height; + } + + @Override + public int getWidth() { + return width; + } + + @Override + public BufferedImage getImage() { + loadImageIfNecessary(); + return image; + } + + private void loadImageIfNecessary() { + if (image == null) { + try { + image = ImageIO.read(file); + // replace the dimensions loaded from the wz by the REAL dimensions from the image - should be equal tho + width = image.getWidth(); + height = image.getHeight(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/ImgMapleSound.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/ImgMapleSound.java new file mode 100644 index 0000000000..8add2ccb36 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/ImgMapleSound.java @@ -0,0 +1,39 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +public class ImgMapleSound { + private int dataLength, offset; + + public ImgMapleSound(int dataLength, int offset) { + this.dataLength = dataLength; + this.offset = offset; + } + + public int getDataLength() { + return dataLength; + } + + public int getOffset() { + return offset; + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/ListWZFile.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/ListWZFile.java new file mode 100644 index 0000000000..1672a08c59 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/ListWZFile.java @@ -0,0 +1,86 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import provider.MapleDataProviderFactory; +import tools.data.input.GenericLittleEndianAccessor; +import tools.data.input.InputStreamByteStream; +import tools.data.input.LittleEndianAccessor; + +public class ListWZFile { + private LittleEndianAccessor lea; + private List entries = new ArrayList(); + private static Collection modernImgs = new HashSet(); + + public static byte[] xorBytes(byte[] a, byte[] b) { + byte[] wusched = new byte[a.length]; + for (int i = 0; i < a.length; i++) { + wusched[i] = (byte) (a[i] ^ b[i]); + } + return wusched; + } + + public ListWZFile(File listwz) throws FileNotFoundException { + lea = new GenericLittleEndianAccessor(new InputStreamByteStream(new BufferedInputStream(new FileInputStream(listwz)))); + while (lea.available() > 0) { + int l = lea.readInt() * 2; + byte[] chunk = new byte[l]; + for (int i = 0; i < chunk.length; i++) { + chunk[i] = lea.readByte(); + } + lea.readChar(); + final String value = String.valueOf(WZTool.readListString(chunk)); + entries.add(value); + } + entries = Collections.unmodifiableList(entries); + } + + public List getEntries() { + return entries; + } + + public static void init() { + final String listWz = System.getProperty("listwz"); + if (listWz != null) { + ListWZFile listwz; + try { + listwz = new ListWZFile(MapleDataProviderFactory.fileInWZPath("List.wz")); + modernImgs = new HashSet(listwz.getEntries()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + } + + public static boolean isModernImgFile(String path) { + return modernImgs.contains(path); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/MapleDataType.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/MapleDataType.java new file mode 100644 index 0000000000..e074d57d14 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/MapleDataType.java @@ -0,0 +1,26 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +public enum MapleDataType { + NONE, IMG_0x00, SHORT, INT, FLOAT, DOUBLE, STRING, EXTENDED, PROPERTY, CANVAS, VECTOR, CONVEX, SOUND, UOL, UNKNOWN_TYPE, UNKNOWN_EXTENDED_TYPE; +} \ No newline at end of file diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/PNGMapleCanvas.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/PNGMapleCanvas.java new file mode 100644 index 0000000000..97c2303804 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/PNGMapleCanvas.java @@ -0,0 +1,151 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.awt.Point; +import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; +import java.awt.image.DataBufferByte; +import java.awt.image.PixelInterleavedSampleModel; +import java.awt.image.Raster; +import java.awt.image.SampleModel; +import java.awt.image.WritableRaster; +import java.util.zip.DataFormatException; +import java.util.zip.Inflater; +import provider.MapleCanvas; + +public class PNGMapleCanvas implements MapleCanvas { + private static final int[] ZAHLEN = new int[]{2, 1, 0, 3}; + private int height; + private int width; + private int dataLength; + private int format; + private byte[] data; + + public PNGMapleCanvas(int width, int height, int dataLength, int format, byte[] data) { + super(); + this.height = height; + this.width = width; + this.dataLength = dataLength; + this.format = format; + this.data = data; + } + + public int getHeight() { + return height; + } + + public int getWidth() { + return width; + } + + public int getFormat() { + return format; + } + + private byte[] getData() { + return data; + } + + @Override + public BufferedImage getImage() { + int sizeUncompressed = 0; + int size8888 = 0; + int maxWriteBuf = 2; + int maxHeight = 3; + byte[] writeBuf = new byte[maxWriteBuf]; + @SuppressWarnings ("unused") + byte[] rowPointers = new byte[maxHeight]; + switch (getFormat()) { + case 1: + case 513: + sizeUncompressed = getHeight() * getWidth() * 4; + break; + case 2: + sizeUncompressed = getHeight() * getWidth() * 8; + break; + case 517: + sizeUncompressed = getHeight() * getWidth() / 128; + break; + } + size8888 = getHeight() * getWidth() * 8; + if (size8888 > maxWriteBuf) { + maxWriteBuf = size8888; + writeBuf = new byte[maxWriteBuf]; + } + if (getHeight() > maxHeight) { + maxHeight = getHeight(); + rowPointers = new byte[maxHeight]; + } + Inflater dec = new Inflater(); + dec.setInput(getData(), 0, dataLength); + int declen = 0; + byte[] uc = new byte[sizeUncompressed]; + try { + declen = dec.inflate(uc); + } catch (DataFormatException ex) { + throw new RuntimeException("zlib fucks", ex); + } + dec.end(); + if (getFormat() == 1) { + for (int i = 0; i < sizeUncompressed; i++) { + byte low = (byte) (uc[i] & 0x0F); + byte high = (byte) (uc[i] & 0xF0); + writeBuf[(i << 1)] = (byte) (((low << 4) | low) & 0xFF); + writeBuf[(i << 1) + 1] = (byte) (high | ((high >>> 4) & 0xF)); + } + } else if (getFormat() == 2) { + writeBuf = uc; + } else if (getFormat() == 513) { + for (int i = 0; i < declen; i += 2) { + byte bBits = (byte) ((uc[i] & 0x1F) << 3); + byte gBits = (byte) (((uc[i + 1] & 0x07) << 5) | ((uc[i] & 0xE0) >> 3)); + byte rBits = (byte) (uc[i + 1] & 0xF8); + writeBuf[(i << 1)] = (byte) (bBits | (bBits >> 5)); + writeBuf[(i << 1) + 1] = (byte) (gBits | (gBits >> 6)); + writeBuf[(i << 1) + 2] = (byte) (rBits | (rBits >> 5)); + writeBuf[(i << 1) + 3] = (byte) 0xFF; + } + } else if (getFormat() == 517) { + byte b = 0x00; + int pixelIndex = 0; + for (int i = 0; i < declen; i++) { + for (int j = 0; j < 8; j++) { + b = (byte) (((uc[i] & (0x01 << (7 - j))) >> (7 - j)) * 255); + for (int k = 0; k < 16; k++) { + pixelIndex = (i << 9) + (j << 6) + k * 2; + writeBuf[pixelIndex] = b; + writeBuf[pixelIndex + 1] = b; + writeBuf[pixelIndex + 2] = b; + writeBuf[pixelIndex + 3] = (byte) 0xFF; + } + } + } + } + DataBufferByte imgData = new DataBufferByte(writeBuf, sizeUncompressed); + SampleModel sm = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, getWidth(), getHeight(), 4, getWidth() * 4, ZAHLEN); + WritableRaster imgRaster = Raster.createWritableRaster(sm, imgData, new Point(0, 0)); + BufferedImage aa = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB); + aa.setData(imgRaster); + return aa; + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZDirectoryEntry.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZDirectoryEntry.java new file mode 100644 index 0000000000..d24b8cb2b9 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZDirectoryEntry.java @@ -0,0 +1,68 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import provider.MapleDataDirectoryEntry; +import provider.MapleDataEntity; +import provider.MapleDataEntry; +import provider.MapleDataFileEntry; + +public class WZDirectoryEntry extends WZEntry implements MapleDataDirectoryEntry { + private List subdirs = new ArrayList(); + private List files = new ArrayList(); + private Map entries = new HashMap(); + + public WZDirectoryEntry(String name, int size, int checksum, MapleDataEntity parent) { + super(name, size, checksum, parent); + } + + public WZDirectoryEntry() { + super(null, 0, 0, null); + } + + public void addDirectory(MapleDataDirectoryEntry dir) { + subdirs.add(dir); + entries.put(dir.getName(), dir); + } + + public void addFile(MapleDataFileEntry fileEntry) { + files.add(fileEntry); + entries.put(fileEntry.getName(), fileEntry); + } + + public List getSubdirectories() { + return Collections.unmodifiableList(subdirs); + } + + public List getFiles() { + return Collections.unmodifiableList(files); + } + + public MapleDataEntry getEntry(String name) { + return entries.get(name); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZEntry.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZEntry.java new file mode 100644 index 0000000000..1e921b2082 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZEntry.java @@ -0,0 +1,61 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import provider.MapleDataEntity; +import provider.MapleDataEntry; + +public class WZEntry implements MapleDataEntry { + private String name; + private int size; + private int checksum; + private int offset; + private MapleDataEntity parent; + + public WZEntry(String name, int size, int checksum, MapleDataEntity parent) { + super(); + this.name = name; + this.size = size; + this.checksum = checksum; + this.parent = parent; + } + + public String getName() { + return name; + } + + public int getSize() { + return size; + } + + public int getChecksum() { + return checksum; + } + + public int getOffset() { + return offset; + } + + public MapleDataEntity getParent() { + return parent; + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZFile.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZFile.java new file mode 100644 index 0000000000..c6c0abf537 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZFile.java @@ -0,0 +1,154 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.RandomAccessFile; +import provider.MapleData; +import provider.MapleDataDirectoryEntry; +import provider.MapleDataFileEntry; +import provider.MapleDataProvider; +import tools.data.input.GenericLittleEndianAccessor; +import tools.data.input.GenericSeekableLittleEndianAccessor; +import tools.data.input.InputStreamByteStream; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.RandomAccessByteStream; +import tools.data.input.SeekableLittleEndianAccessor; + +public class WZFile implements MapleDataProvider { + static { + ListWZFile.init(); + } + private File wzfile; + private LittleEndianAccessor lea; + private SeekableLittleEndianAccessor slea; + private int headerSize; + private WZDirectoryEntry root; + private boolean provideImages; + private int cOffset; + + public WZFile(File wzfile, boolean provideImages) throws IOException { + this.wzfile = wzfile; + lea = new GenericLittleEndianAccessor(new InputStreamByteStream(new BufferedInputStream(new FileInputStream(wzfile)))); + RandomAccessFile raf = new RandomAccessFile(wzfile, "r"); + slea = new GenericSeekableLittleEndianAccessor(new RandomAccessByteStream(raf)); + root = new WZDirectoryEntry(wzfile.getName(), 0, 0, null); + this.provideImages = provideImages; + load(); + } + + private void load() throws IOException { + lea.readAsciiString(4); + lea.readInt(); + lea.readInt(); + headerSize = lea.readInt(); + lea.readNullTerminatedAsciiString(); + lea.readShort(); + parseDirectory(root); + cOffset = (int) lea.getBytesRead(); + getOffsets(root); + } + + private void getOffsets(MapleDataDirectoryEntry dir) { + for (MapleDataFileEntry file : dir.getFiles()) { + file.setOffset(cOffset); + cOffset += file.getSize(); + } + for (MapleDataDirectoryEntry sdir : dir.getSubdirectories()) { + getOffsets(sdir); + } + } + + private void parseDirectory(WZDirectoryEntry dir) { + int entries = WZTool.readValue(lea); + for (int i = 0; i < entries; i++) { + byte marker = lea.readByte(); + String name = null; + int size, checksum; + switch (marker) { + case 0x02: + name = WZTool.readDecodedStringAtOffsetAndReset(slea, lea.readInt() + this.headerSize + 1); + size = WZTool.readValue(lea); + checksum = WZTool.readValue(lea); + lea.readInt(); //dummy int + dir.addFile(new WZFileEntry(name, size, checksum, dir)); + break; + case 0x03: + case 0x04: + name = WZTool.readDecodedString(lea); + size = WZTool.readValue(lea); + checksum = WZTool.readValue(lea); + lea.readInt(); //dummy int + if (marker == 3) { + dir.addDirectory(new WZDirectoryEntry(name, size, checksum, dir)); + } else { + dir.addFile(new WZFileEntry(name, size, checksum, dir)); + } + break; + default: + } + } + for (MapleDataDirectoryEntry idir : dir.getSubdirectories()) { + parseDirectory((WZDirectoryEntry) idir); + } + } + + public WZIMGFile getImgFile(String path) throws IOException { + String segments[] = path.split("/"); + WZDirectoryEntry dir = root; + for (int x = 0; x < segments.length - 1; x++) { + dir = (WZDirectoryEntry) dir.getEntry(segments[x]); + if (dir == null) { + return null; + } + } + WZFileEntry entry = (WZFileEntry) dir.getEntry(segments[segments.length - 1]); + if (entry == null) { + return null; + } + String fullPath = wzfile.getName().substring(0, wzfile.getName().length() - 3).toLowerCase() + "/" + path; + return new WZIMGFile(this.wzfile, entry, provideImages, ListWZFile.isModernImgFile(fullPath)); + } + + @Override + public synchronized MapleData getData(String path) { + try { + WZIMGFile imgFile = getImgFile(path); + if (imgFile == null) { + return null; + } + MapleData ret = imgFile.getRoot(); + return ret; + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + @Override + public MapleDataDirectoryEntry getRoot() { + return root; + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZFileEntry.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZFileEntry.java new file mode 100644 index 0000000000..792371d9cf --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZFileEntry.java @@ -0,0 +1,42 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import provider.MapleDataEntity; +import provider.MapleDataFileEntry; + +public class WZFileEntry extends WZEntry implements MapleDataFileEntry { + private int offset; + + public WZFileEntry(String name, int size, int checksum, MapleDataEntity parent) { + super(name, size, checksum, parent); + } + + @Override + public int getOffset() { + return offset; + } + + public void setOffset(int offset) { + this.offset = offset; + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZIMGEntry.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZIMGEntry.java new file mode 100644 index 0000000000..385d785183 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZIMGEntry.java @@ -0,0 +1,118 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import provider.MapleData; +import provider.MapleDataEntity; + +public class WZIMGEntry implements MapleData { + private String name; + private MapleDataType type; + private List children = new ArrayList(10); + private Object data; + private MapleDataEntity parent; + + public WZIMGEntry(MapleDataEntity parent) { + this.parent = parent; + } + + @Override + public String getName() { + return name; + } + + @Override + public MapleDataType getType() { + return type; + } + + @Override + public List getChildren() { + return Collections.unmodifiableList(children); + } + + @Override + public MapleData getChildByPath(String path) { + String segments[] = path.split("/"); + if (segments[0].equals("..")) { + return ((MapleData) getParent()).getChildByPath(path.substring(path.indexOf("/") + 1)); + } + MapleData ret = this; + for (int x = 0; x < segments.length; x++) { + boolean foundChild = false; + for (MapleData child : ret.getChildren()) { + if (child.getName().equals(segments[x])) { + ret = child; + foundChild = true; + break; + } + } + if (!foundChild) { + return null; + } + } + return ret; + } + + @Override + public Object getData() { + return data; + } + + public void setName(String name) { + this.name = name; + } + + public void setType(MapleDataType type) { + this.type = type; + } + + public void setData(Object data) { + this.data = data; + } + + public void addChild(WZIMGEntry entry) { + children.add(entry); + } + + @Override + public Iterator iterator() { + return getChildren().iterator(); + } + + @Override + public String toString() { + return getName() + ":" + getData(); + } + + public MapleDataEntity getParent() { + return parent; + } + + public void finish() { + ((ArrayList) children).trimToSize(); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZIMGFile.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZIMGFile.java new file mode 100644 index 0000000000..bec06c78bd --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZIMGFile.java @@ -0,0 +1,227 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.awt.Point; +import java.io.DataOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.io.RandomAccessFile; +import tools.data.input.GenericSeekableLittleEndianAccessor; +import tools.data.input.RandomAccessByteStream; +import tools.data.input.SeekableLittleEndianAccessor; + +public class WZIMGFile { + private WZFileEntry file; + private WZIMGEntry root; + private boolean provideImages; + @SuppressWarnings ("unused") + private boolean modernImg; + + public WZIMGFile(File wzfile, WZFileEntry file, boolean provideImages, boolean modernImg) throws IOException { + RandomAccessFile raf = new RandomAccessFile(wzfile, "r"); + SeekableLittleEndianAccessor slea = new GenericSeekableLittleEndianAccessor(new RandomAccessByteStream(raf)); + slea.seek(file.getOffset()); + this.file = file; + this.provideImages = provideImages; + root = new WZIMGEntry(file.getParent()); + root.setName(file.getName()); + root.setType(MapleDataType.EXTENDED); + this.modernImg = modernImg; + parseExtended(root, slea, 0); + root.finish(); + raf.close(); + } + + protected void dumpImg(OutputStream out, SeekableLittleEndianAccessor slea) throws IOException { + DataOutputStream os = new DataOutputStream(out); + long oldPos = slea.getPosition(); + slea.seek(file.getOffset()); + for (int x = 0; x < file.getSize(); x++) { + os.write(slea.readByte()); + } + slea.seek(oldPos); + } + + public WZIMGEntry getRoot() { + return root; + } + + private void parse(WZIMGEntry entry, SeekableLittleEndianAccessor slea) { + byte marker = slea.readByte(); + switch (marker) { + case 0: { + String name = WZTool.readDecodedString(slea); + entry.setName(name); + break; + } + case 1: { + String name = WZTool.readDecodedStringAtOffsetAndReset(slea, file.getOffset() + slea.readInt()); + entry.setName(name); + break; + } + default: + System.out.println("Unknown Image identifier: " + marker + " at offset " + (slea.getPosition() - file.getOffset())); + } + marker = slea.readByte(); + switch (marker) { + case 0: + entry.setType(MapleDataType.IMG_0x00); + break; + case 2: + case 11: //??? no idea, since 0.49 + entry.setType(MapleDataType.SHORT); + entry.setData(Short.valueOf(slea.readShort())); + break; + case 3: + entry.setType(MapleDataType.INT); + entry.setData(Integer.valueOf(WZTool.readValue(slea))); + break; + case 4: + entry.setType(MapleDataType.FLOAT); + entry.setData(Float.valueOf(WZTool.readFloatValue(slea))); + break; + case 5: + entry.setType(MapleDataType.DOUBLE); + entry.setData(Double.valueOf(slea.readDouble())); + break; + case 8: + entry.setType(MapleDataType.STRING); + byte iMarker = slea.readByte(); + if (iMarker == 0) { + entry.setData(WZTool.readDecodedString(slea)); + } else if (iMarker == 1) { + entry.setData(WZTool.readDecodedStringAtOffsetAndReset(slea, slea.readInt() + file.getOffset())); + } else { + System.out.println("Unknown String type " + iMarker); + } + break; + case 9: + entry.setType(MapleDataType.EXTENDED); + long endOfExtendedBlock = slea.readInt(); + endOfExtendedBlock += slea.getPosition(); + parseExtended(entry, slea, endOfExtendedBlock); + break; + default: + System.out.println("Unknown Image type " + marker); + } + } + + private void parseExtended(WZIMGEntry entry, SeekableLittleEndianAccessor slea, long endOfExtendedBlock) { + byte marker = slea.readByte(); + String type; + switch (marker) { + case 0x73: + type = WZTool.readDecodedString(slea); + break; + case 0x1B: + type = WZTool.readDecodedStringAtOffsetAndReset(slea, file.getOffset() + slea.readInt()); + break; + default: + throw new RuntimeException("Unknown extended image identifier: " + marker + " at offset " + + (slea.getPosition() - file.getOffset())); + } + if (type.equals("Property")) { + entry.setType(MapleDataType.PROPERTY); + slea.readByte(); + slea.readByte(); + int children = WZTool.readValue(slea); + for (int i = 0; i < children; i++) { + WZIMGEntry cEntry = new WZIMGEntry(entry); + parse(cEntry, slea); + cEntry.finish(); + entry.addChild(cEntry); + } + } else if (type.equals("Canvas")) { + entry.setType(MapleDataType.CANVAS); + slea.readByte(); + marker = slea.readByte(); + if (marker == 0) { + // do nothing + } else if (marker == 1) { + slea.readByte(); + slea.readByte(); + int children = WZTool.readValue(slea); + for (int i = 0; i < children; i++) { + WZIMGEntry child = new WZIMGEntry(entry); + parse(child, slea); + child.finish(); + entry.addChild(child); + } + } else { + System.out.println("Canvas marker != 1 (" + marker + ")"); + } + int width = WZTool.readValue(slea); + int height = WZTool.readValue(slea); + int format = WZTool.readValue(slea); + int format2 = slea.readByte(); + slea.readInt(); + int dataLength = slea.readInt() - 1; + slea.readByte(); + if (provideImages) { + byte[] pngdata = slea.read(dataLength); + entry.setData(new PNGMapleCanvas(width, height, dataLength, format + format2, pngdata)); + } else { + entry.setData(new PNGMapleCanvas(width, height, dataLength, format + format2, null)); + slea.skip(dataLength); + } + } else if (type.equals("Shape2D#Vector2D")) { + entry.setType(MapleDataType.VECTOR); + int x = WZTool.readValue(slea); + int y = WZTool.readValue(slea); + entry.setData(new Point(x, y)); + } else if (type.equals("Shape2D#Convex2D")) { + int children = WZTool.readValue(slea); + for (int i = 0; i < children; i++) { + WZIMGEntry cEntry = new WZIMGEntry(entry); + parseExtended(cEntry, slea, 0); + cEntry.finish(); + entry.addChild(cEntry); + } + } else if (type.equals("Sound_DX8")) { + entry.setType(MapleDataType.SOUND); + slea.readByte(); + int dataLength = WZTool.readValue(slea); + WZTool.readValue(slea); // no clue what this is + int offset = (int) slea.getPosition(); + entry.setData(new ImgMapleSound(dataLength, offset - file.getOffset())); + slea.seek(endOfExtendedBlock); + } else if (type.equals("UOL")) { + entry.setType(MapleDataType.UOL); + slea.readByte(); + byte uolmarker = slea.readByte(); + switch (uolmarker) { + case 0: + entry.setData(WZTool.readDecodedString(slea)); + break; + case 1: + entry.setData(WZTool.readDecodedStringAtOffsetAndReset(slea, file.getOffset() + slea.readInt())); + break; + default: + System.out.println("Unknown UOL marker: " + uolmarker + " " + entry.getName()); + } + } else { + throw new RuntimeException("Unhandled extended type: " + type); + } + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZTool.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZTool.java new file mode 100644 index 0000000000..85e1c8d90b --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZTool.java @@ -0,0 +1,187 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.SecretKeySpec; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + +/* + * Ported Code, see WZFile.java for more info + */ +public class WZTool { + private static byte[] encKey; + + static { + byte[] iv = new byte[]{(byte) 0x4d, (byte) 0x23, (byte) 0xc7, (byte) 0x2b, + (byte) 0x4d, (byte) 0x23, (byte) 0xc7, (byte) 0x2b, + (byte) 0x4d, (byte) 0x23, (byte) 0xc7, (byte) 0x2b, + (byte) 0x4d, (byte) 0x23, (byte) 0xc7, (byte) 0x2b,}; + byte[] key = new byte[]{(byte) 0x13, 0x00, 0x00, 0x00, + (byte) 0x08, 0x00, 0x00, 0x00, + (byte) 0x06, 0x00, 0x00, 0x00, + (byte) 0xB4, 0x00, 0x00, 0x00, + (byte) 0x1B, 0x00, 0x00, 0x00, + (byte) 0x0F, 0x00, 0x00, 0x00, + (byte) 0x33, 0x00, 0x00, 0x00, + (byte) 0x52, 0x00, 0x00, 0x00 + }; + Cipher cipher = null; + SecretKeySpec skeySpec = new SecretKeySpec(key, "AES"); + try { + cipher = Cipher.getInstance("AES"); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } + try { + cipher.init(Cipher.ENCRYPT_MODE, skeySpec); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } + encKey = new byte[0xFFFF]; + for (int i = 0; i < (0xFFFF / 16); i++) { + try { + iv = cipher.doFinal(iv); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + System.arraycopy(iv, 0, encKey, (i * 16), 16); + } + try { + iv = cipher.doFinal(iv); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + System.arraycopy(iv, 0, encKey, 65520, 15); + } + + public static byte[] readListString(byte[] str) { + for (int i = 0; i < str.length; i++) { + str[i] = (byte) (str[i] ^ encKey[i]); + } + return str; + } + + public static String readDecodedString(LittleEndianAccessor llea) { + int strLength; + byte b = llea.readByte(); + if (b == 0x00) { + return ""; + } + if (b >= 0) { + if (b == 0x7F) { + strLength = llea.readInt(); + } else { + strLength = (int) b; + } + if (strLength < 0) { + return ""; + } + byte str[] = new byte[strLength * 2]; + for (int i = 0; i < strLength * 2; i++) { + str[i] = llea.readByte(); + } + return DecryptUnicodeStr(str); + } else { + if (b == -128) { + strLength = llea.readInt(); + } else { + strLength = -b; + } + if (strLength < 0) { + return ""; + } + byte str[] = new byte[strLength]; + for (int i = 0; i < strLength; i++) { + str[i] = llea.readByte(); + } + return DecryptAsciiStr(str); + } + } + + public static String DecryptAsciiStr(byte[] str) { + byte xorByte = (byte) 0xAA; + for (int i = 0; i < str.length; i++) { + str[i] = (byte) (str[i] ^ xorByte ^ encKey[i]); + xorByte++; + } + return new String(str); + } + + public static String DecryptUnicodeStr(byte[] str) { + int xorByte = 0xAAAA; + char[] charRet = new char[str.length / 2]; + for (int i = 0; i < str.length; i++) { + str[i] = (byte) (str[i] ^ encKey[i]); + } + for (int i = 0; i < (str.length / 2); i++) { + char toXor = (char) ((str[i] << 8) | str[i + 1]); + charRet[i] = (char) (toXor ^ xorByte); + xorByte++; + } + return String.valueOf(charRet); + } + + public static String readDecodedStringAtOffset(SeekableLittleEndianAccessor slea, int offset) { + slea.seek(offset); + return readDecodedString(slea); + } + + public static String readDecodedStringAtOffsetAndReset(SeekableLittleEndianAccessor slea, int offset) { + long pos = 0; + pos = slea.getPosition(); + slea.seek(offset); + String ret = readDecodedString(slea); + slea.seek(pos); + return ret; + } + + public static int readValue(LittleEndianAccessor lea) { + byte b = lea.readByte(); + if (b == -128) { + return lea.readInt(); + } else { + return ((int) b); + } + } + + public static float readFloatValue(LittleEndianAccessor lea) { + byte b = lea.readByte(); + if (b == -128) { + return lea.readFloat(); + } else { + return 0; + } + } +} \ No newline at end of file diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/XMLDomMapleData.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/XMLDomMapleData.java new file mode 100644 index 0000000000..151a04c2fd --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/XMLDomMapleData.java @@ -0,0 +1,219 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . + */ +package provider.wz; + +import java.awt.Point; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.text.NumberFormat; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import provider.MapleData; +import provider.MapleDataEntity; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +public class XMLDomMapleData implements MapleData { + private Node node; + private File imageDataDir; + private NumberFormat nf; + + public XMLDomMapleData(FileInputStream fis, File imageDataDir) { + try { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document document = documentBuilder.parse(fis); + this.node = document.getFirstChild(); + } catch (ParserConfigurationException e) { + throw new RuntimeException(e); + } catch (SAXException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + this.imageDataDir = imageDataDir; + this.nf = NumberFormat.getInstance(Locale.FRANCE); + } + + private XMLDomMapleData(Node node) { + this.node = node; + this.nf = NumberFormat.getInstance(Locale.FRANCE); + } + + @Override + public MapleData getChildByPath(String path) { + String segments[] = path.split("/"); + if (segments[0].equals("..")) { + return ((MapleData) getParent()).getChildByPath(path.substring(path.indexOf("/") + 1)); + } + + Node myNode = node; + for (int x = 0; x < segments.length; x++) { + NodeList childNodes = myNode.getChildNodes(); + boolean foundChild = false; + for (int i = 0; i < childNodes.getLength(); i++) { + Node childNode = childNodes.item(i); + if (childNode.getNodeType() == Node.ELEMENT_NODE && childNode.getAttributes().getNamedItem("name").getNodeValue().equals(segments[x])) { + myNode = childNode; + foundChild = true; + break; + } + } + if (!foundChild) { + return null; + } + } + XMLDomMapleData ret = new XMLDomMapleData(myNode); + ret.imageDataDir = new File(imageDataDir, getName() + "/" + path).getParentFile(); + return ret; + } + + @Override + public List getChildren() { + List ret = new ArrayList(); + NodeList childNodes = node.getChildNodes(); + for (int i = 0; i < childNodes.getLength(); i++) { + Node childNode = childNodes.item(i); + if (childNode.getNodeType() == Node.ELEMENT_NODE) { + XMLDomMapleData child = new XMLDomMapleData(childNode); + child.imageDataDir = new File(imageDataDir, getName()); + ret.add(child); + } + } + return ret; + } + + @Override + public Object getData() { + NamedNodeMap attributes = node.getAttributes(); + MapleDataType type = getType(); + switch (type) { + case DOUBLE: + case FLOAT: + case INT: + case SHORT: { + String value = attributes.getNamedItem("value").getNodeValue(); + Number nval; + + try { + nval = nf.parse(value); + } + catch(java.text.ParseException pe) { + pe.printStackTrace(); + nval = 0.0f; + } + + switch (type) { + case DOUBLE: + return nval.doubleValue(); + case FLOAT: + return nval.floatValue(); + case INT: + return nval.intValue(); + case SHORT: + return nval.shortValue(); + default: + return null; + } + } + case STRING: + case UOL: { + String value = attributes.getNamedItem("value").getNodeValue(); + return value; + } + case VECTOR: { + String x = attributes.getNamedItem("x").getNodeValue(); + String y = attributes.getNamedItem("y").getNodeValue(); + return new Point(Integer.parseInt(x), Integer.parseInt(y)); + } + case CANVAS: { + String width = attributes.getNamedItem("width").getNodeValue(); + String height = attributes.getNamedItem("height").getNodeValue(); + return new FileStoredPngMapleCanvas(Integer.parseInt(width), Integer.parseInt(height), new File( + imageDataDir, getName() + ".png")); + } + default: + return null; + } + } + + @Override + public MapleDataType getType() { + String nodeName = node.getNodeName(); + if (nodeName.equals("imgdir")) { + return MapleDataType.PROPERTY; + } else if (nodeName.equals("canvas")) { + return MapleDataType.CANVAS; + } else if (nodeName.equals("convex")) { + return MapleDataType.CONVEX; + } else if (nodeName.equals("sound")) { + return MapleDataType.SOUND; + } else if (nodeName.equals("uol")) { + return MapleDataType.UOL; + } else if (nodeName.equals("double")) { + return MapleDataType.DOUBLE; + } else if (nodeName.equals("float")) { + return MapleDataType.FLOAT; + } else if (nodeName.equals("int")) { + return MapleDataType.INT; + } else if (nodeName.equals("short")) { + return MapleDataType.SHORT; + } else if (nodeName.equals("string")) { + return MapleDataType.STRING; + } else if (nodeName.equals("vector")) { + return MapleDataType.VECTOR; + } else if (nodeName.equals("null")) { + return MapleDataType.IMG_0x00; + } + return null; + } + + @Override + public MapleDataEntity getParent() { + Node parentNode = node.getParentNode(); + if (parentNode.getNodeType() == Node.DOCUMENT_NODE) { + return null; + } + XMLDomMapleData parentData = new XMLDomMapleData(parentNode); + parentData.imageDataDir = imageDataDir.getParentFile(); + return parentData; + } + + @Override + public String getName() { + return node.getAttributes().getNamedItem("name").getNodeValue(); + } + + @Override + public Iterator iterator() { + return getChildren().iterator(); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/XMLWZFile.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/XMLWZFile.java new file mode 100644 index 0000000000..2a7694fdc9 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/XMLWZFile.java @@ -0,0 +1,85 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package provider.wz; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import provider.MapleData; +import provider.MapleDataDirectoryEntry; +import provider.MapleDataProvider; + +public class XMLWZFile implements MapleDataProvider { + private File root; + private WZDirectoryEntry rootForNavigation; + + public XMLWZFile(File fileIn) { + root = fileIn; + rootForNavigation = new WZDirectoryEntry(fileIn.getName(), 0, 0, null); + fillMapleDataEntitys(root, rootForNavigation); + } + + private void fillMapleDataEntitys(File lroot, WZDirectoryEntry wzdir) { + for (File file : lroot.listFiles()) { + String fileName = file.getName(); + if (file.isDirectory() && !fileName.endsWith(".img")) { + WZDirectoryEntry newDir = new WZDirectoryEntry(fileName, 0, 0, wzdir); + wzdir.addDirectory(newDir); + fillMapleDataEntitys(file, newDir); + } else if (fileName.endsWith(".xml")) { + wzdir.addFile(new WZFileEntry(fileName.substring(0, fileName.length() - 4), 0, 0, wzdir)); + } + } + } + + @Override + public MapleData getData(String path) { + File dataFile = new File(root, path + ".xml"); + File imageDataDir = new File(root, path); + if (!dataFile.exists()) { + return null;//bitches + } + FileInputStream fis; + try { + fis = new FileInputStream(dataFile); + } catch (FileNotFoundException e) { + throw new RuntimeException("Datafile " + path + " does not exist in " + root.getAbsolutePath()); + } + final XMLDomMapleData domMapleData; + try { + domMapleData = new XMLDomMapleData(fis, imageDataDir.getParentFile()); + } finally { + try { + fis.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + return domMapleData; + } + + @Override + public MapleDataDirectoryEntry getRoot() { + return rootForNavigation; + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/DatabaseConnection.java b/tools/MapleSkillbookChanceFetcher/src/tools/DatabaseConnection.java new file mode 100644 index 0000000000..9dcd4e6545 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/DatabaseConnection.java @@ -0,0 +1,51 @@ +package tools; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +/** + * @author Frz (Big Daddy) + * @author The Real Spookster (some modifications to this beautiful code) + */ +public class DatabaseConnection { + private static String DB_URL = "jdbc:mysql://localhost:3306/heavenms"; + private static String DB_USER = "root"; + private static String DB_PASS = ""; + + public static final int RETURN_GENERATED_KEYS = 1; + + private static ThreadLocal con = new ThreadLocalConnection(); + + public static Connection getConnection() { + Connection c = con.get(); + try { + c.getMetaData(); + } catch (SQLException e) { // connection is dead, therefore discard old object 5ever + con.remove(); + c = con.get(); + } + return c; + } + + private static class ThreadLocalConnection extends ThreadLocal { + + @Override + protected Connection initialValue() { + try { + Class.forName("com.mysql.jdbc.Driver"); // touch the mysql driver + } catch (ClassNotFoundException e) { + System.out.println("[SEVERE] SQL Driver Not Found. Consider death by clams."); + e.printStackTrace(); + return null; + } + try { + return DriverManager.getConnection(DB_URL, DB_USER, DB_PASS); + } catch (SQLException e) { + System.out.println("[SEVERE] Unable to make database connection."); + e.printStackTrace(); + return null; + } + } + } +} \ No newline at end of file diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/HexTool.java b/tools/MapleSkillbookChanceFetcher/src/tools/HexTool.java new file mode 100644 index 0000000000..8cc0c8aa84 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/HexTool.java @@ -0,0 +1,79 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools; + +import java.io.ByteArrayOutputStream; + +public class HexTool { + private static final char[] HEX = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + + private static String toString(byte byteValue) { + int tmp = byteValue << 8; + char[] retstr = new char[]{HEX[(tmp >> 12) & 0x0F], HEX[(tmp >> 8) & 0x0F]}; + return String.valueOf(retstr); + } + + public static String toString(byte[] bytes) { + StringBuilder hexed = new StringBuilder(); + for (int i = 0; i < bytes.length; i++) { + hexed.append(toString(bytes[i])); + hexed.append(' '); + } + return hexed.substring(0, hexed.length() - 1); + } + + public static byte[] getByteArrayFromHexString(String hex) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int nexti = 0; + int nextb = 0; + boolean highoc = true; + outer: + for (;;) { + int number = -1; + while (number == -1) { + if (nexti == hex.length()) { + break outer; + } + char chr = hex.charAt(nexti); + if (chr >= '0' && chr <= '9') { + number = chr - '0'; + } else if (chr >= 'a' && chr <= 'f') { + number = chr - 'a' + 10; + } else if (chr >= 'A' && chr <= 'F') { + number = chr - 'A' + 10; + } else { + number = -1; + } + nexti++; + } + if (highoc) { + nextb = number << 4; + highoc = false; + } else { + nextb |= number; + highoc = true; + baos.write(nextb); + } + } + return baos.toByteArray(); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/Pair.java b/tools/MapleSkillbookChanceFetcher/src/tools/Pair.java new file mode 100644 index 0000000000..f88718cbe3 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/Pair.java @@ -0,0 +1,121 @@ +/* +This file is part of the OdinMS Maple Story Server +Copyright (C) 2008 ~ 2010 Patrick Huy +Matthias Butz +Jan Christian Meyer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License 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 . + */ +package tools; + +/** + * Represents a pair of values. + * + * @author Frz + * @since Revision 333 + * @version 1.0 + * + * @param The type of the left value. + * @param The type of the right value. + */ +public class Pair { + + public E left; + public F right; + + /** + * Class constructor - pairs two objects together. + * + * @param left The left object. + * @param right The right object. + */ + public Pair(E left, F right) { + this.left = left; + this.right = right; + } + + /** + * Gets the left value. + * + * @return The left value. + */ + public E getLeft() { + return left; + } + + /** + * Gets the right value. + * + * @return The right value. + */ + public F getRight() { + return right; + } + + /** + * Turns the pair into a string. + * + * @return Each value of the pair as a string joined by a colon. + */ + @Override + public String toString() { + return left.toString() + ":" + right.toString(); + } + + /** + * Gets the hash code of this pair. + */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((left == null) ? 0 : left.hashCode()); + result = prime * result + ((right == null) ? 0 : right.hashCode()); + return result; + } + + /** + * Checks to see if two pairs are equal. + */ + @SuppressWarnings("unchecked") + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final Pair other = (Pair) obj; + if (left == null) { + if (other.left != null) { + return false; + } + } else if (!left.equals(other.left)) { + return false; + } + if (right == null) { + if (other.right != null) { + return false; + } + } else if (!right.equals(other.right)) { + return false; + } + return true; + } +} \ No newline at end of file diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/ByteArrayByteStream.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/ByteArrayByteStream.java new file mode 100644 index 0000000000..eac7de21ea --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/ByteArrayByteStream.java @@ -0,0 +1,72 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +import java.io.IOException; +import tools.HexTool; + +public class ByteArrayByteStream implements SeekableInputStreamBytestream { + private int pos = 0; + private long bytesRead = 0; + private byte[] arr; + + public ByteArrayByteStream(byte[] arr) { + this.arr = arr; + } + + @Override + public long getPosition() { + return pos; + } + + @Override + public void seek(long offset) throws IOException { + pos = (int) offset; + } + + @Override + public long getBytesRead() { + return bytesRead; + } + + @Override + public int readByte() { + bytesRead++; + return ((int) arr[pos++]) & 0xFF; + } + + @Override + public String toString() { + String nows = "kevintjuh93 pwns";//I lol'd + if (arr.length - pos > 0) { + byte[] now = new byte[arr.length - pos]; + System.arraycopy(arr, pos, now, 0, arr.length - pos); + nows = HexTool.toString(now); + } + return "All: " + HexTool.toString(arr) + "\nNow: " + nows; + } + + @Override + public long available() { + return arr.length - pos; + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/ByteInputStream.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/ByteInputStream.java new file mode 100644 index 0000000000..107f71843e --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/ByteInputStream.java @@ -0,0 +1,35 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +/** + * Represents an abstract stream of bytes. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + */ +public interface ByteInputStream { + int readByte(); + long getBytesRead(); + long available(); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/GenericLittleEndianAccessor.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/GenericLittleEndianAccessor.java new file mode 100644 index 0000000000..d08a9b8374 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/GenericLittleEndianAccessor.java @@ -0,0 +1,239 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +import java.awt.Point; +import java.io.ByteArrayOutputStream; + +/** + * Provides a generic interface to a Little Endian stream of bytes. + * + * @version 1.0 + * @author Frz + * @since Revision 323 + */ +public class GenericLittleEndianAccessor implements LittleEndianAccessor { + private ByteInputStream bs; + + /** + * Class constructor - Wraps the accessor around a stream of bytes. + * + * @param bs The byte stream to wrap the accessor around. + */ + public GenericLittleEndianAccessor(ByteInputStream bs) { + this.bs = bs; + } + + /** + * Read a single byte from the stream. + * + * @return The byte read. + * @see tools.data.input.ByteInputStream#readByte + */ + @Override + public byte readByte() { + return (byte) bs.readByte(); + } + + /** + * Reads an integer from the stream. + * + * @return The integer read. + */ + @Override + public int readInt() { + return bs.readByte() + (bs.readByte() << 8) + (bs.readByte() << 16) + (bs.readByte() << 24); + } + + /** + * Reads a short integer from the stream. + * + * @return The short read. + */ + @Override + public short readShort() { + return (short) (bs.readByte() + (bs.readByte() << 8)); + } + + /** + * Reads a single character from the stream. + * + * @return The character read. + */ + @Override + public char readChar() { + return (char) readShort(); + } + + /** + * Reads a long integer from the stream. + * + * @return The long integer read. + */ + @Override + public long readLong() { + long byte1 = bs.readByte(); + long byte2 = bs.readByte(); + long byte3 = bs.readByte(); + long byte4 = bs.readByte(); + long byte5 = bs.readByte(); + long byte6 = bs.readByte(); + long byte7 = bs.readByte(); + long byte8 = bs.readByte(); + return (byte8 << 56) + (byte7 << 48) + (byte6 << 40) + (byte5 << 32) + (byte4 << 24) + (byte3 << 16) + (byte2 << 8) + byte1; + } + + /** + * Reads a floating point integer from the stream. + * + * @return The float-type integer read. + */ + @Override + public float readFloat() { + return Float.intBitsToFloat(readInt()); + } + + /** + * Reads a double-precision integer from the stream. + * + * @return The double-type integer read. + */ + @Override + public double readDouble() { + return Double.longBitsToDouble(readLong()); + } + + /** + * Reads an ASCII string from the stream with length n. + * + * @param n Number of characters to read. + * @return The string read. + */ + public final String readAsciiString(int n) { + char ret[] = new char[n]; + for (int x = 0; x < n; x++) { + ret[x] = (char) readByte(); + } + return String.valueOf(ret); + } + + /** + * Reads a null-terminated string from the stream. + * + * @return The string read. + */ + public final String readNullTerminatedAsciiString() { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte b; + while (true) { + b = readByte(); + if (b == 0) { + break; + } + baos.write(b); + } + byte[] buf = baos.toByteArray(); + char[] chrBuf = new char[buf.length]; + for (int x = 0; x < buf.length; x++) { + chrBuf[x] = (char) buf[x]; + } + return String.valueOf(chrBuf); + } + + /** + * Gets the number of bytes read from the stream so far. + * + * @return A long integer representing the number of bytes read. + * @see tools.data.input.ByteInputStream#getBytesRead() + */ + public long getBytesRead() { + return bs.getBytesRead(); + } + + /** + * Reads a MapleStory convention lengthed ASCII string. + * This consists of a short integer telling the length of the string, + * then the string itself. + * + * @return The string read. + */ + @Override + public String readMapleAsciiString() { + return readAsciiString(readShort()); + } + + /** + * Reads num bytes off the stream. + * + * @param num The number of bytes to read. + * @return An array of bytes with the length of num + */ + @Override + public byte[] read(int num) { + byte[] ret = new byte[num]; + for (int x = 0; x < num; x++) { + ret[x] = readByte(); + } + return ret; + } + + /** + * Reads a MapleStory Position information. + * This consists of 2 short integer. + * + * @return The Position read. + */ + @Override + public final Point readPos() { + final int x = readShort(); + final int y = readShort(); + return new Point(x, y); + } + + /** + * Skips the current position of the stream num bytes ahead. + * + * @param num Number of bytes to skip. + */ + @Override + public void skip(int num) { + for (int x = 0; x < num; x++) { + readByte(); + } + } + + /** + * @see tools.data.input.ByteInputStream#available + */ + @Override + public long available() { + return bs.available(); + } + + /** + * @see java.lang.Object#toString + */ + @Override + public String toString() { + return bs.toString(); + } +} \ No newline at end of file diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/GenericSeekableLittleEndianAccessor.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/GenericSeekableLittleEndianAccessor.java new file mode 100644 index 0000000000..fdd147d796 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/GenericSeekableLittleEndianAccessor.java @@ -0,0 +1,91 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +import java.io.IOException; + +/** + * Provides an abstract accessor to a generic Little Endian byte stream. This + * accessor is seekable. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + * @see tools.data.input.GenericLittleEndianAccessor + */ +public class GenericSeekableLittleEndianAccessor extends GenericLittleEndianAccessor implements SeekableLittleEndianAccessor { + private SeekableInputStreamBytestream bs; + + /** + * Class constructor + * Provide a seekable input stream to wrap this object around. + * + * @param bs The byte stream to wrap this around. + */ + public GenericSeekableLittleEndianAccessor(SeekableInputStreamBytestream bs) { + super(bs); + this.bs = bs; + } + + /** + * Seek the pointer to offset + * + * @param offset The offset to seek to. + * @see tools.data.input.SeekableInputStreamBytestream#seek + */ + @Override + public void seek(long offset) { + try { + bs.seek(offset); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("Seek failed " + e); + } + } + + /** + * Get the current position of the pointer. + * + * @return The current position of the pointer as a long integer. + * @see tools.data.input.SeekableInputStreamBytestream#getPosition + */ + @Override + public long getPosition() { + try { + return bs.getPosition(); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("getPosition failed" + e); + return -1; + } + } + + /** + * Skip num number of bytes in the stream. + * + * @param num The number of bytes to skip. + */ + @Override + public void skip(int num) { + seek(getPosition() + num); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/InputStreamByteStream.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/InputStreamByteStream.java new file mode 100644 index 0000000000..70aef3489f --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/InputStreamByteStream.java @@ -0,0 +1,93 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Provides an abstract wrapper to a stream of bytes. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + */ +public class InputStreamByteStream implements ByteInputStream { + private InputStream is; + private long read = 0; + + /** + * Class constructor. + * Provide an input stream to wrap this around. + * + * @param is The input stream to wrap this object around. + */ + public InputStreamByteStream(InputStream is) { + this.is = is; + } + + /** + * Reads the next byte from the stream. + * + * @return Then next byte in the stream. + */ + @Override + public int readByte() { + int temp; + try { + temp = is.read(); + if (temp == -1) { + throw new RuntimeException("EOF"); + } + read++; + return temp; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * Gets the number of bytes read from the stream. + * + * @return The number of bytes read as a long integer. + */ + @Override + public long getBytesRead() { + return read; + } + + /** + * Returns the number of bytes left in the stream. + * + * @return The number of bytes available for reading as a long integer. + */ + @Override + public long available() { + try { + return is.available(); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("ERROR" + e); + return 0; + } + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/LittleEndianAccessor.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/LittleEndianAccessor.java new file mode 100644 index 0000000000..f991dbf537 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/LittleEndianAccessor.java @@ -0,0 +1,45 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +import java.awt.Point; + +/** + * @author Frz + */ +public interface LittleEndianAccessor { + byte readByte(); + char readChar(); + short readShort(); + int readInt(); + Point readPos(); + long readLong(); + void skip(int num); + byte[] read(int num); + float readFloat(); + double readDouble(); + String readAsciiString(int n); + String readNullTerminatedAsciiString(); + String readMapleAsciiString(); + long getBytesRead(); + long available(); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/RandomAccessByteStream.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/RandomAccessByteStream.java new file mode 100644 index 0000000000..c0004be17f --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/RandomAccessByteStream.java @@ -0,0 +1,84 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +import java.io.IOException; +import java.io.RandomAccessFile; + +/** + * Provides an abstract layer to a byte stream. This layer can be accessed + * randomly. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + */ +public class RandomAccessByteStream implements SeekableInputStreamBytestream { + private RandomAccessFile raf; + private long read = 0; + + public RandomAccessByteStream(RandomAccessFile raf) { + super(); + this.raf = raf; + } + + @Override + public int readByte() { + int temp; + try { + temp = raf.read(); + if (temp == -1) { + throw new RuntimeException("EOF"); + } + read++; + return temp; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public void seek(long offset) throws IOException { + raf.seek(offset); + } + + @Override + public long getPosition() throws IOException { + return raf.getFilePointer(); + } + + @Override + public long getBytesRead() { + return read; + } + + @Override + public long available() { + try { + return raf.length() - raf.getFilePointer(); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("ERROR " + e); + return 0; + } + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/SeekableInputStreamBytestream.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/SeekableInputStreamBytestream.java new file mode 100644 index 0000000000..f4922dc876 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/SeekableInputStreamBytestream.java @@ -0,0 +1,51 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +import java.io.IOException; + +/** + * Provides an abstract interface to a stream of bytes. This stream can be + * seeked. + * + * @author Frz + * @version 1.0 + * @since 299 + */ +public interface SeekableInputStreamBytestream extends ByteInputStream { + /** + * Seeks the stream by the specified offset. + * + * @param offset + * Number of bytes to seek. + * @throws IOException + */ + void seek(long offset) throws IOException; + + /** + * Gets the current position of the stream. + * + * @return The stream position as a long integer. + * @throws IOException + */ + long getPosition() throws IOException; +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/input/SeekableLittleEndianAccessor.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/SeekableLittleEndianAccessor.java new file mode 100644 index 0000000000..16b2317f7a --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/input/SeekableLittleEndianAccessor.java @@ -0,0 +1,27 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.input; + +public interface SeekableLittleEndianAccessor extends LittleEndianAccessor { + void seek(long offset); + long getPosition(); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/output/BAOSByteOutputStream.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/BAOSByteOutputStream.java new file mode 100644 index 0000000000..80cbc9301e --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/BAOSByteOutputStream.java @@ -0,0 +1,56 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.output; + +import java.io.ByteArrayOutputStream; + +/** + * Uses a byte array to output a stream of bytes. + * + * @author Frz + * @version 1.0 + * @since Revision 352 + */ +class BAOSByteOutputStream implements ByteOutputStream { + private ByteArrayOutputStream baos; + + /** + * Class constructor - Wraps the stream around a Java BAOS. + * + * @param baos The ByteArrayOutputStream to wrap this around. + */ + BAOSByteOutputStream(ByteArrayOutputStream baos) { + super(); + this.baos = baos; + } + + /** + * Writes a byte to the stream. + * + * @param b The byte to write to the stream. + * @see tools.data.output.ByteOutputStream#writeByte(byte) + */ + @Override + public void writeByte(byte b) { + baos.write(b); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/output/ByteOutputStream.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/ByteOutputStream.java new file mode 100644 index 0000000000..0df7ca7753 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/ByteOutputStream.java @@ -0,0 +1,38 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.output; + +/** + * Provides an interface to an output stream of bytes. + * + * @author Frz + * @since Revision 323 + * @version 1.0 + */ +interface ByteOutputStream { + /** + * Writes a byte to the stream. + * + * @param b The byte to write. + */ + void writeByte(byte b); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/output/GenericLittleEndianWriter.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/GenericLittleEndianWriter.java new file mode 100644 index 0000000000..e804fd8000 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/GenericLittleEndianWriter.java @@ -0,0 +1,183 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.output; + +import java.awt.Point; +import java.nio.charset.Charset; + +/** + * Provides a generic writer of a little-endian sequence of bytes. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + */ +public class GenericLittleEndianWriter implements LittleEndianWriter { + private static Charset ASCII = Charset.forName("US-ASCII"); + private ByteOutputStream bos; + + /** + * Class constructor - Protected to prevent instantiation with no arguments. + */ + protected GenericLittleEndianWriter() { + // Blah! + } + + /** + * Sets the byte-output stream for this instance of the object. + * + * @param bos The new output stream to set. + */ + void setByteOutputStream(ByteOutputStream bos) { + this.bos = bos; + } + + /** + * Write an array of bytes to the stream. + * + * @param b The bytes to write. + */ + @Override + public void write(byte[] b) { + for (int x = 0; x < b.length; x++) { + bos.writeByte(b[x]); + } + } + + /** + * Write a byte to the stream. + * + * @param b The byte to write. + */ + @Override + public void write(byte b) { + bos.writeByte(b); + } + + /** + * Write a byte in integer form to the stream. + * + * @param b The byte as an Integer to write. + */ + @Override + public void write(int b) { + bos.writeByte((byte) b); + } + + @Override + public void skip(int b) { + write(new byte[b]); + } + + /** + * Write a short integer to the stream. + * + * @param i The short integer to write. + */ + @Override + public void writeShort(int i) { + bos.writeByte((byte) (i & 0xFF)); + bos.writeByte((byte) ((i >>> 8) & 0xFF)); + } + + /** + * Writes an integer to the stream. + * + * @param i The integer to write. + */ + @Override + public void writeInt(int i) { + bos.writeByte((byte) (i & 0xFF)); + bos.writeByte((byte) ((i >>> 8) & 0xFF)); + bos.writeByte((byte) ((i >>> 16) & 0xFF)); + bos.writeByte((byte) ((i >>> 24) & 0xFF)); + } + + /** + * Writes an ASCII string the the stream. + * + * @param s The ASCII string to write. + */ + @Override + public void writeAsciiString(String s) { + write(s.getBytes(ASCII)); + } + + /** + * Writes a maple-convention ASCII string to the stream. + * + * @param s The ASCII string to use maple-convention to write. + */ + @Override + public void writeMapleAsciiString(String s) { + writeShort((short) s.length()); + writeAsciiString(s); + } + + /** + * Writes a null-terminated ASCII string to the stream. + * + * @param s The ASCII string to write. + */ + @Override + public void writeNullTerminatedAsciiString(String s) { + writeAsciiString(s); + write(0); + } + + /** + * Write a long integer to the stream. + * @param l The long integer to write. + */ + @Override + public void writeLong(long l) { + bos.writeByte((byte) (l & 0xFF)); + bos.writeByte((byte) ((l >>> 8) & 0xFF)); + bos.writeByte((byte) ((l >>> 16) & 0xFF)); + bos.writeByte((byte) ((l >>> 24) & 0xFF)); + bos.writeByte((byte) ((l >>> 32) & 0xFF)); + bos.writeByte((byte) ((l >>> 40) & 0xFF)); + bos.writeByte((byte) ((l >>> 48) & 0xFF)); + bos.writeByte((byte) ((l >>> 56) & 0xFF)); + } + + /** + * Writes a 2D 4 byte position information + * + * @param s The Point position to write. + */ + @Override + public void writePos(Point s) { + writeShort(s.x); + writeShort(s.y); + } + + /** + * Writes a boolean true ? 1 : 0 + * + * @param b The boolean to write. + */ + @Override + public void writeBool(final boolean b) { + write(b ? 1 : 0); + } +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/output/LittleEndianWriter.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/LittleEndianWriter.java new file mode 100644 index 0000000000..f17bd7c72e --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/LittleEndianWriter.java @@ -0,0 +1,114 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . + */ +package tools.data.output; + +import java.awt.Point; + +/** + * Provides an interface to a writer class that writes a little-endian sequence + * of bytes. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + */ +public interface LittleEndianWriter { + + /** + * Write an array of bytes to the sequence. + * + * @param b The bytes to write. + */ + public void write(byte b[]); + + /** + * Write a byte to the sequence. + * + * @param b The byte to write. + */ + public void write(byte b); + + /** + * Write a byte in integer form to the sequence. + * + * @param b The byte as an Integer to write. + */ + public void write(int b); + + public void skip(int b); + + /** + * Writes an integer to the sequence. + * + * @param i The integer to write. + */ + public void writeInt(int i); + + /** + * Write a short integer to the sequence. + * + * @param s The short integer to write. + */ + public void writeShort(int s); + + /** + * Write a long integer to the sequence. + * + * @param l The long integer to write. + */ + public void writeLong(long l); + + /** + * Writes an ASCII string the the sequence. + * + * @param s The ASCII string to write. + */ + void writeAsciiString(String s); + + /** + * Writes a null-terminated ASCII string to the sequence. + * + * @param s The ASCII string to write. + */ + void writeNullTerminatedAsciiString(String s); + + /** + * Writes a maple-convention ASCII string to the sequence. + * + * @param s The ASCII string to use maple-convention to write. + */ + void writeMapleAsciiString(String s); + + /** + * Writes a 2D 4 byte position information + * + * @param s The Point position to write. + */ + void writePos(Point s); + + /** + * Writes a boolean true ? 1 : 0 + * + * @param b The boolean to write. + */ + void writeBool(final boolean b); +} diff --git a/tools/MapleSkillbookChanceFetcher/src/tools/data/output/MaplePacketLittleEndianWriter.java b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/MaplePacketLittleEndianWriter.java new file mode 100644 index 0000000000..b02365ec62 --- /dev/null +++ b/tools/MapleSkillbookChanceFetcher/src/tools/data/output/MaplePacketLittleEndianWriter.java @@ -0,0 +1,73 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + 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 . +*/ +package tools.data.output; + +import java.io.ByteArrayOutputStream; +import tools.HexTool; + +/** + * Writes a maplestory-packet little-endian stream of bytes. + * + * @author Frz + * @version 1.0 + * @since Revision 352 + */ +public class MaplePacketLittleEndianWriter extends GenericLittleEndianWriter { + private ByteArrayOutputStream baos; + + /** + * Constructor - initializes this stream with a default size. + */ + public MaplePacketLittleEndianWriter() { + this(32); + } + + /** + * Constructor - initializes this stream with size size. + * + * @param size The size of the underlying stream. + */ + public MaplePacketLittleEndianWriter(int size) { + this.baos = new ByteArrayOutputStream(size); + setByteOutputStream(new BAOSByteOutputStream(baos)); + } + + /** + * Gets a MaplePacket instance representing this + * sequence of bytes. + * + * @return A MaplePacket with the bytes in this stream. + */ + public byte[] getPacket() { + return baos.toByteArray(); + } + + /** + * Changes this packet into a human-readable hexadecimal stream of bytes. + * + * @return This packet as hex digits. + */ + @Override + public String toString() { + return HexTool.toString(baos.toByteArray()); + } +} diff --git a/wz/Etc.wz/MapNeighbors.img.xml b/wz/Etc.wz/MapNeighbors.img.xml new file mode 100644 index 0000000000..a37628bca5 --- /dev/null +++ b/wz/Etc.wz/MapNeighbors.img.xml @@ -0,0 +1,59793 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wz/Quest.wz/QuestInfo.img.xml b/wz/Quest.wz/QuestInfo.img.xml index 4bf2cd8705..296d0a4c72 100644 --- a/wz/Quest.wz/QuestInfo.img.xml +++ b/wz/Quest.wz/QuestInfo.img.xml @@ -2541,7 +2541,7 @@ - + diff --git a/wz/Quest.wz/Say.img.xml b/wz/Quest.wz/Say.img.xml index 93d550fc3d..63ab21999a 100644 --- a/wz/Quest.wz/Say.img.xml +++ b/wz/Quest.wz/Say.img.xml @@ -4503,7 +4503,7 @@ - + diff --git a/wz/String.wz/Consume.img.xml b/wz/String.wz/Consume.img.xml index 7a2dae9b20..a1782e3a6c 100644 --- a/wz/String.wz/Consume.img.xml +++ b/wz/String.wz/Consume.img.xml @@ -5978,10 +5978,6 @@ - - - -