diff --git a/build/built-jar.properties b/build/built-jar.properties index 5ea7e1c439..556323e7c3 100644 --- a/build/built-jar.properties +++ b/build/built-jar.properties @@ -1,4 +1,4 @@ -#Wed, 16 Aug 2017 14:03:06 -0300 +#Fri, 18 Aug 2017 19:17:13 -0300 C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2= diff --git a/build/classes/client/MapleCharacter$10.class b/build/classes/client/MapleCharacter$10.class index cee02c826f..ff12f236e0 100644 Binary files a/build/classes/client/MapleCharacter$10.class and b/build/classes/client/MapleCharacter$10.class differ diff --git a/build/classes/client/MapleCharacter$11.class b/build/classes/client/MapleCharacter$11.class index 1a58dcba63..e70e908961 100644 Binary files a/build/classes/client/MapleCharacter$11.class and b/build/classes/client/MapleCharacter$11.class differ diff --git a/build/classes/client/MapleCharacter$12.class b/build/classes/client/MapleCharacter$12.class index 6e26f9a30b..b8078e1fd5 100644 Binary files a/build/classes/client/MapleCharacter$12.class and b/build/classes/client/MapleCharacter$12.class differ diff --git a/build/classes/client/MapleCharacter$13.class b/build/classes/client/MapleCharacter$13.class index 9b4b1b71f1..0138105380 100644 Binary files a/build/classes/client/MapleCharacter$13.class and b/build/classes/client/MapleCharacter$13.class differ diff --git a/build/classes/client/MapleCharacter$14.class b/build/classes/client/MapleCharacter$14.class index d9e66b9308..b30e3e60b9 100644 Binary files a/build/classes/client/MapleCharacter$14.class and b/build/classes/client/MapleCharacter$14.class differ diff --git a/build/classes/client/MapleCharacter$15.class b/build/classes/client/MapleCharacter$15.class index 3caa0e3237..672e38c1fc 100644 Binary files a/build/classes/client/MapleCharacter$15.class and b/build/classes/client/MapleCharacter$15.class differ diff --git a/build/classes/client/MapleCharacter$16.class b/build/classes/client/MapleCharacter$16.class index a749b2ffdb..62a990f13e 100644 Binary files a/build/classes/client/MapleCharacter$16.class and b/build/classes/client/MapleCharacter$16.class differ diff --git a/build/classes/client/MapleCharacter$17.class b/build/classes/client/MapleCharacter$17.class index 81358aab12..2cc91d2568 100644 Binary files a/build/classes/client/MapleCharacter$17.class and b/build/classes/client/MapleCharacter$17.class differ diff --git a/build/classes/client/MapleCharacter$18.class b/build/classes/client/MapleCharacter$18.class index 388ca80bac..2757543d29 100644 Binary files a/build/classes/client/MapleCharacter$18.class and b/build/classes/client/MapleCharacter$18.class differ diff --git a/build/classes/client/MapleCharacter$19.class b/build/classes/client/MapleCharacter$19.class index 09c784a034..c4d3dd6c84 100644 Binary files a/build/classes/client/MapleCharacter$19.class and b/build/classes/client/MapleCharacter$19.class differ diff --git a/build/classes/client/MapleCharacter$20.class b/build/classes/client/MapleCharacter$20.class index e28de2b650..f1da2dae69 100644 Binary files a/build/classes/client/MapleCharacter$20.class and b/build/classes/client/MapleCharacter$20.class differ diff --git a/build/classes/client/MapleCharacter$3.class b/build/classes/client/MapleCharacter$3.class index 099c1c0e30..6b5a4fa949 100644 Binary files a/build/classes/client/MapleCharacter$3.class and b/build/classes/client/MapleCharacter$3.class differ diff --git a/build/classes/client/MapleCharacter$4.class b/build/classes/client/MapleCharacter$4.class index b90a570914..5179a83628 100644 Binary files a/build/classes/client/MapleCharacter$4.class and b/build/classes/client/MapleCharacter$4.class differ diff --git a/build/classes/client/MapleCharacter$5.class b/build/classes/client/MapleCharacter$5.class index 1fb0f7f8b0..5d9fc699d3 100644 Binary files a/build/classes/client/MapleCharacter$5.class and b/build/classes/client/MapleCharacter$5.class differ diff --git a/build/classes/client/MapleCharacter$6.class b/build/classes/client/MapleCharacter$6.class index 145f1b5334..d2ec9bd2a4 100644 Binary files a/build/classes/client/MapleCharacter$6.class and b/build/classes/client/MapleCharacter$6.class differ diff --git a/build/classes/client/MapleCharacter$7.class b/build/classes/client/MapleCharacter$7.class index 4ff6a6c8d1..74c6f9cafc 100644 Binary files a/build/classes/client/MapleCharacter$7.class and b/build/classes/client/MapleCharacter$7.class differ diff --git a/build/classes/client/MapleCharacter$8.class b/build/classes/client/MapleCharacter$8.class index ba7192089d..785579fa2c 100644 Binary files a/build/classes/client/MapleCharacter$8.class and b/build/classes/client/MapleCharacter$8.class differ diff --git a/build/classes/client/MapleCharacter$9.class b/build/classes/client/MapleCharacter$9.class index cc4636d63e..7b4784c828 100644 Binary files a/build/classes/client/MapleCharacter$9.class and b/build/classes/client/MapleCharacter$9.class differ diff --git a/build/classes/client/MapleCharacter$FameStatus.class b/build/classes/client/MapleCharacter$FameStatus.class index 4e7b2b52df..7d32e89a60 100644 Binary files a/build/classes/client/MapleCharacter$FameStatus.class and b/build/classes/client/MapleCharacter$FameStatus.class differ diff --git a/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class b/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class index 8c1f27df90..9462a8b857 100644 Binary files a/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class and b/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class differ diff --git a/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class b/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class index 67feccb01c..38543e04c1 100644 Binary files a/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class and b/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class differ diff --git a/build/classes/client/MapleCharacter$SkillEntry.class b/build/classes/client/MapleCharacter$SkillEntry.class index 9545bfb4d3..57c7768913 100644 Binary files a/build/classes/client/MapleCharacter$SkillEntry.class and b/build/classes/client/MapleCharacter$SkillEntry.class differ diff --git a/build/classes/client/MapleCharacter.class b/build/classes/client/MapleCharacter.class index 8fab864028..6d402e5c06 100644 Binary files a/build/classes/client/MapleCharacter.class and b/build/classes/client/MapleCharacter.class differ diff --git a/build/classes/client/command/Commands$1.class b/build/classes/client/command/Commands$1.class index 0fa85b3271..cc084ffe4f 100644 Binary files a/build/classes/client/command/Commands$1.class and b/build/classes/client/command/Commands$1.class differ diff --git a/build/classes/client/command/Commands.class b/build/classes/client/command/Commands.class index 6ef0c37868..323adb5970 100644 Binary files a/build/classes/client/command/Commands.class and b/build/classes/client/command/Commands.class differ diff --git a/build/classes/client/inventory/Equip.class b/build/classes/client/inventory/Equip.class index 084b16dedd..605095da37 100644 Binary files a/build/classes/client/inventory/Equip.class and b/build/classes/client/inventory/Equip.class differ diff --git a/build/classes/constants/ServerConstants.class b/build/classes/constants/ServerConstants.class index 26baa4a7d4..834a1922ca 100644 Binary files a/build/classes/constants/ServerConstants.class and b/build/classes/constants/ServerConstants.class differ diff --git a/build/classes/net/server/Server.class b/build/classes/net/server/Server.class index 0acbebce41..96c52eee12 100644 Binary files a/build/classes/net/server/Server.class and b/build/classes/net/server/Server.class differ diff --git a/build/classes/net/server/channel/handlers/KeymapChangeHandler.class b/build/classes/net/server/channel/handlers/KeymapChangeHandler.class index 237c464934..43e5aa916a 100644 Binary files a/build/classes/net/server/channel/handlers/KeymapChangeHandler.class and b/build/classes/net/server/channel/handlers/KeymapChangeHandler.class differ diff --git a/build/classes/net/server/channel/handlers/NPCTalkHandler.class b/build/classes/net/server/channel/handlers/NPCTalkHandler.class index a83baa5686..2e33ddc669 100644 Binary files a/build/classes/net/server/channel/handlers/NPCTalkHandler.class and b/build/classes/net/server/channel/handlers/NPCTalkHandler.class differ diff --git a/build/classes/net/server/channel/handlers/SpecialMoveHandler.class b/build/classes/net/server/channel/handlers/SpecialMoveHandler.class index d7818b89cf..a1139c38b1 100644 Binary files a/build/classes/net/server/channel/handlers/SpecialMoveHandler.class and b/build/classes/net/server/channel/handlers/SpecialMoveHandler.class differ diff --git a/build/classes/server/MapleStatEffect.class b/build/classes/server/MapleStatEffect.class index 056337374a..be38693637 100644 Binary files a/build/classes/server/MapleStatEffect.class and b/build/classes/server/MapleStatEffect.class differ diff --git a/build/classes/server/MapleTrade.class b/build/classes/server/MapleTrade.class index f1ca3fb5a1..87c6ef45f8 100644 Binary files a/build/classes/server/MapleTrade.class and b/build/classes/server/MapleTrade.class differ diff --git a/build/classes/server/life/MapleMonster.class b/build/classes/server/life/MapleMonster.class index d6326eaf44..0ce0088246 100644 Binary files a/build/classes/server/life/MapleMonster.class and b/build/classes/server/life/MapleMonster.class differ diff --git a/build/classes/server/maps/MapleMap$29$1.class b/build/classes/server/maps/MapleMap$29$1.class index 2bfa533a11..e766e2cbb3 100644 Binary files a/build/classes/server/maps/MapleMap$29$1.class and b/build/classes/server/maps/MapleMap$29$1.class differ diff --git a/build/classes/server/maps/MapleMap$29.class b/build/classes/server/maps/MapleMap$29.class index 6ada0fa16b..dbdf8425c7 100644 Binary files a/build/classes/server/maps/MapleMap$29.class and b/build/classes/server/maps/MapleMap$29.class differ diff --git a/build/classes/server/maps/MapleMap.class b/build/classes/server/maps/MapleMap.class index 77cad7ac6c..e732fbe89f 100644 Binary files a/build/classes/server/maps/MapleMap.class and b/build/classes/server/maps/MapleMap.class differ diff --git a/build/classes/server/maps/MapleReactor.class b/build/classes/server/maps/MapleReactor.class index 6e595bd703..c2e3597c5c 100644 Binary files a/build/classes/server/maps/MapleReactor.class and b/build/classes/server/maps/MapleReactor.class differ diff --git a/build/classes/server/quest/actions/SkillAction$SkillData.class b/build/classes/server/quest/actions/SkillAction$SkillData.class index 12725f2d35..600d1c1643 100644 Binary files a/build/classes/server/quest/actions/SkillAction$SkillData.class and b/build/classes/server/quest/actions/SkillAction$SkillData.class differ diff --git a/build/classes/server/quest/actions/SkillAction.class b/build/classes/server/quest/actions/SkillAction.class index 9281ee15d3..032629e6f5 100644 Binary files a/build/classes/server/quest/actions/SkillAction.class and b/build/classes/server/quest/actions/SkillAction.class differ diff --git a/dist/MapleSolaxia.jar b/dist/MapleSolaxia.jar index e21bb3d05e..6c535bc3f5 100644 Binary files a/dist/MapleSolaxia.jar and b/dist/MapleSolaxia.jar differ diff --git a/docs/mychanges_ptbr.txt b/docs/mychanges_ptbr.txt index daf1fd7960..0c004cf755 100644 --- a/docs/mychanges_ptbr.txt +++ b/docs/mychanges_ptbr.txt @@ -451,4 +451,17 @@ Reactors agora dropam itens de quest somente se o player possui a mesma ativada. 16 Agosto 2017, Consertado corrente de quests da Temple of Time. Agora Pink Bean é alcancável. -Adicionadas algumas chairs ao SQL. \ No newline at end of file +Adicionadas algumas chairs ao SQL. + +17 Agosto 2017, +Consertado Orbis Tower ainda aplicando DOT ao player, mesmo com bolha ativada. +Adicionado Boss HPBar em Rombot. +Consertado problema de keybinding para USEs com id batendo com id de skills fora da arvore de habilidades do jogador. +Consertado bug em scripts de alguns forjadores de itens que não verificava corretamente a quantidade de itens a tirar do jogador antes de fazer o item. +Adidionado loots para mobs de Kerning Square. +Consertado comandos de hair e face. + +18 Agosto 2017, +Consertado skill Dispel não aparecendo efeito aos outros jogadores. +Atualizados alguns scripts de viagens transferindo jogadores a pontos aleatorios nas chegadas. +Atualizado relatorio de drop data no monster book. \ No newline at end of file diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 928890d149..17bc047d72 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -3,11 +3,11 @@ - file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/inventory/Equip.java - file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/command/Commands.java - file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/sql/db_database.sql - file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/constants/ServerConstants.java - file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/sql/db_shopupdate.sql + file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/scripts/event/PinkBeanBattle.js + file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/maps/MapleMap.java + file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/client/MapleCharacter.java + file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/life/MapleLifeFactory.java + file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/life/MapleMonster.java diff --git a/scripts/event/AirPlane.js b/scripts/event/AirPlane.js index 4d9286cb13..d8f3176433 100644 --- a/scripts/event/AirPlane.js +++ b/scripts/event/AirPlane.js @@ -40,8 +40,8 @@ function takeoff() { } function arrived() { - Plane_to_CBD.warpEveryone(CBD_docked.getId()); - Plane_to_KC.warpEveryone(KC_docked.getId()); + Plane_to_CBD.warpEveryone(CBD_docked.getId(), 0); + Plane_to_KC.warpEveryone(KC_docked.getId(), 7); scheduleNew(); } diff --git a/scripts/event/Boats.js b/scripts/event/Boats.js index 89da243556..e6d5507640 100644 --- a/scripts/event/Boats.js +++ b/scripts/event/Boats.js @@ -61,10 +61,10 @@ function takeoff() { } function arrived() { - Boat_to_Orbis.warpEveryone(Orbis_Station.getId()); - Orbis_Boat_Cabin.warpEveryone(Orbis_Station.getId()); - Boat_to_Ellinia.warpEveryone(Ellinia_docked.getId()); - Ellinia_Boat_Cabin.warpEveryone(Ellinia_docked.getId()); + Boat_to_Orbis.warpEveryone(Orbis_Station.getId(), 0); + Orbis_Boat_Cabin.warpEveryone(Orbis_Station.getId(), 0); + Boat_to_Ellinia.warpEveryone(Ellinia_docked.getId(), 1); + Ellinia_Boat_Cabin.warpEveryone(Ellinia_docked.getId(), 1); Orbis_docked.broadcastShip(true); Ellinia_docked.broadcastShip(true); Boat_to_Orbis.broadcastEnemyShip(false); diff --git a/scripts/event/Cabin.js b/scripts/event/Cabin.js index b5009c0488..d7898e73d7 100644 --- a/scripts/event/Cabin.js +++ b/scripts/event/Cabin.js @@ -94,8 +94,8 @@ function takeoff() { } function arrived() { - Cabin_to_Orbis.warpEveryone(Orbis_Station.getId()); - Cabin_to_Leafre.warpEveryone(Leafre_Station.getId()); + Cabin_to_Orbis.warpEveryone(Orbis_Station.getId(), 0); + Cabin_to_Leafre.warpEveryone(Leafre_Station.getId(), 0); Orbis_docked.broadcastShip(true); Leafre_docked.broadcastShip(true); diff --git a/scripts/event/Genie.js b/scripts/event/Genie.js index c1dd41b9e1..659c6b6305 100644 --- a/scripts/event/Genie.js +++ b/scripts/event/Genie.js @@ -72,8 +72,8 @@ function takeoff() { } function arrived() { - Genie_to_Orbis.warpEveryone(Orbis_Station.getId()); - Genie_to_Ariant.warpEveryone(Ariant_docked.getId()); + Genie_to_Orbis.warpEveryone(Orbis_Station.getId(), 0); + Genie_to_Ariant.warpEveryone(Ariant_docked.getId(), 1); Orbis_docked.broadcastShip(true); Ariant_docked.broadcastShip(true); diff --git a/scripts/event/Hak.js b/scripts/event/Hak.js index 8ef63fda16..fbf566413c 100644 --- a/scripts/event/Hak.js +++ b/scripts/event/Hak.js @@ -58,4 +58,4 @@ function playerDisconnected(eim, player) { function cancelSchedule() {} -function dispose(eim) {} \ No newline at end of file +function dispose(eim) {} diff --git a/scripts/event/KerningTrain.js b/scripts/event/KerningTrain.js index 267d13f62a..cf336182df 100644 --- a/scripts/event/KerningTrain.js +++ b/scripts/event/KerningTrain.js @@ -5,13 +5,12 @@ var rideTo = new Array(103000310, 103000100); var trainRide = new Array(103000301, 103000302); var myRide; var returnMap; +var exitMap; var map; -var docked; var timeOnRide = 10; //Seconds var onRide; -function init() { -} +function init() {} function setup() { var eim = em.newInstance("KerningTrain_" + em.getProperty("player")); @@ -26,26 +25,38 @@ function playerEntry(eim, player) { } else { myRide = 1; } - docked = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]); - returnMap = eim.getMapFactory().getMap(returnTo[myRide]); - onRide = eim.getMapFactory().getMap(trainRide[myRide]); - player.changeMap(onRide, onRide.getPortal(0)); - player.getClient().getSession().write(MaplePacketCreator.getClock(timeOnRide)); - eim.schedule("timeOut", timeOnRide * 1000); + + exitMap = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]); + returnMap = eim.getMapFactory().getMap(returnTo[myRide]); + onRide = eim.getMapFactory().getMap(trainRide[myRide]); + player.changeMap(onRide, onRide.getPortal(0)); + player.getClient().getSession().write(MaplePacketCreator.getClock(timeOnRide)); + eim.schedule("timeOut", timeOnRide * 1000); } -function timeOut() { - onRide.warpEveryone(docked.getId()); +function timeOut(eim) { + end(eim); } +function playerUnregistered(eim, player) {} +function playerExit(eim, player, success) { + eim.unregisterPlayer(player); + player.changeMap(success ? exitMap.getId() : returnMap.getId(), 0); +} + +function end(eim) { + var party = eim.getPlayers(); + for (var i = 0; i < party.size(); i++) { + playerExit(eim, party.get(i), true); + } + eim.dispose(); +} function playerDisconnected(eim, player) { - return 0; + playerExit(eim, player, false); } function cancelSchedule() {} -function dispose(eim) { - eim.cancelSchedule(); -} \ No newline at end of file +function dispose(eim) {} diff --git a/scripts/event/PinkBeanBattle.js b/scripts/event/PinkBeanBattle.js index 0ae7906cce..e31652f8f4 100644 --- a/scripts/event/PinkBeanBattle.js +++ b/scripts/event/PinkBeanBattle.js @@ -86,6 +86,7 @@ function setup(channel) { eim.getInstanceMap(270050300).resetPQ(level); var mob = MapleLifeFactory.getMonster(8820000); + mob.disableDrops(); eim.getInstanceMap(270050100).spawnMonsterOnGroundBelow(mob, new java.awt.Point(0, -42)); eim.startEventTimer(eventTime * 60000); diff --git a/scripts/event/RockSpirit.js b/scripts/event/RockSpirit.js index 9b78e72b39..61966a2031 100644 --- a/scripts/event/RockSpirit.js +++ b/scripts/event/RockSpirit.js @@ -18,6 +18,9 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ + +importPackage(Packages.tools); + var exitMap; var startMap; var otherMap; diff --git a/scripts/event/Subway.js b/scripts/event/Subway.js index 729e0cca42..c11673816e 100644 --- a/scripts/event/Subway.js +++ b/scripts/event/Subway.js @@ -38,8 +38,8 @@ function takeoff() { } function arrived() { - Subway_to_KC.warpEveryone(KC_docked.getId()); - Subway_to_NLC.warpEveryone(NLC_docked.getId()); + Subway_to_KC.warpEveryone(KC_docked.getId(), 0); + Subway_to_NLC.warpEveryone(NLC_docked.getId(), 0); scheduleNew(); } diff --git a/scripts/event/Trains.js b/scripts/event/Trains.js index 385e6ca178..3206e79f5f 100644 --- a/scripts/event/Trains.js +++ b/scripts/event/Trains.js @@ -55,8 +55,8 @@ function takeoff() { } function arrived() { - Train_to_Orbis.warpEveryone(Orbis_Station.getId()); - Train_to_Ludibrium.warpEveryone(Ludibrium_Station.getId()); + Train_to_Orbis.warpEveryone(Orbis_Station.getId(), 0); + Train_to_Ludibrium.warpEveryone(Ludibrium_Station.getId(), 0); Orbis_docked.broadcastShip(true); Ludibrium_docked.broadcastShip(true); scheduleNew(); diff --git a/scripts/event/VIPRockSpirit.js b/scripts/event/VIPRockSpirit.js index 0256bee2bc..057acf1d40 100644 --- a/scripts/event/VIPRockSpirit.js +++ b/scripts/event/VIPRockSpirit.js @@ -18,6 +18,9 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ + +importPackage(Packages.tools); + var exitMap; var startMap; var otherMap; diff --git a/scripts/event/elevator.js b/scripts/event/elevator.js index 6be6035ccb..d37d765e30 100644 --- a/scripts/event/elevator.js +++ b/scripts/event/elevator.js @@ -62,7 +62,7 @@ function goingDownNow() { function isUpNow() { em.setProperty("goingDown", "false"); // clear em.getChannelServer().getMapFactory().getMap(222020200).resetReactors(); - em.getChannelServer().getMapFactory().getMap(222020111).warpEveryone(222020200); + em.getChannelServer().getMapFactory().getMap(222020111).warpEveryone(222020200, 0); goDown(); } @@ -70,7 +70,7 @@ function isUpNow() { function isDownNow() { em.setProperty("goingUp", "false"); // clear em.getChannelServer().getMapFactory().getMap(222020100).resetReactors(); - em.getChannelServer().getMapFactory().getMap(222020211).warpEveryone(222020100); + em.getChannelServer().getMapFactory().getMap(222020211).warpEveryone(222020100, 4); goUp(); } diff --git a/scripts/map/onUserEnter/922000000.js b/scripts/map/onUserEnter/922000000.js index bb0df498b1..8286c4f002 100644 --- a/scripts/map/onUserEnter/922000000.js +++ b/scripts/map/onUserEnter/922000000.js @@ -1,5 +1,6 @@ function start(pi) { var map = pi.getClient().getChannelServer().getMapFactory().getMap(922000000); + map.clearDrops(); map.resetReactors(); map.shuffleReactors(); diff --git a/scripts/npc/1012002.js b/scripts/npc/1012002.js index fd2dc30358..f1442956cf 100644 --- a/scripts/npc/1012002.js +++ b/scripts/npc/1012002.js @@ -159,9 +159,9 @@ function action(mode, type, selection) { else{ if (mats instanceof Array) { for(var i = 0; complete && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) + if (!cm.haveItem(mats[i], matQty[i] * qty)) complete = false; - }else if (!cm.haveItem(mats, matQty)) + }else if (!cm.haveItem(mats, matQty * qty)) complete = false; } if (!complete) diff --git a/scripts/npc/1022003.js b/scripts/npc/1022003.js index 90f0cb61c5..4be7e6998b 100644 --- a/scripts/npc/1022003.js +++ b/scripts/npc/1022003.js @@ -195,10 +195,10 @@ function action(mode, type, selection) { { if (mats instanceof Array) { for(var i = 0; complete && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) + if (!cm.haveItem(mats[i], matQty[i] * qty)) complete = false; } - else if (!cm.haveItem(mats, matQty)) + else if (!cm.haveItem(mats, matQty * qty)) complete = false; } if (!complete) diff --git a/scripts/npc/1022004.js b/scripts/npc/1022004.js index 5017dc450a..408cd17ca7 100644 --- a/scripts/npc/1022004.js +++ b/scripts/npc/1022004.js @@ -187,10 +187,10 @@ function action(mode, type, selection) { { if (mats instanceof Array) { for(var i = 0; complete && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) + if (!cm.haveItem(mats[i], matQty[i] * qty)) complete = false; } - else if (!cm.haveItem(mats, matQty)) + else if (!cm.haveItem(mats, matQty * qty)) complete = false; } diff --git a/scripts/npc/1052002.js b/scripts/npc/1052002.js index 8f4377a871..55ae429e7c 100644 --- a/scripts/npc/1052002.js +++ b/scripts/npc/1052002.js @@ -227,10 +227,10 @@ function action(mode, type, selection) { { if (mats instanceof Array) { for(var i = 0; complete && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) + if (!cm.haveItem(mats[i], matQty[i] * qty)) complete = false; } - else if (!cm.haveItem(mats, matQty)) + else if (!cm.haveItem(mats, matQty * qty)) complete = false; } diff --git a/scripts/npc/1052003.js b/scripts/npc/1052003.js index c69bc259fd..c2fcf9004e 100644 --- a/scripts/npc/1052003.js +++ b/scripts/npc/1052003.js @@ -26,174 +26,183 @@ function start() { } function action(mode, type, selection) { - if (mode == 1) - status++; - else + if (mode == -1) { cm.dispose(); - if (status == 0) { - var selStr = "Yes, I do own this forge. If you're willing to pay, I can offer you some of my services.#b" - var options = new Array("Refine a mineral ore","Refine a jewel ore","I have Iron Hog's Metal Hoof...","Upgrade a claw"); - for (var i = 0; i < options.length; i++){ - selStr += "\r\n#L" + i + "# " + options[i] + "#l"; + } else { + if (mode == 0 && type > 0) { // hope types 2 & 3 works as well, as 1 and 4 END CHAT + cm.dispose(); + return; } - - cm.sendSimple(selStr); - } - else if (status == 1) { - selectedType = selection; - if (selectedType == 0){ //mineral refine - var selStr = "So, what kind of mineral ore would you like to refine?#b"; - var minerals = new Array ("Bronze","Steel","Mithril","Adamantium","Silver","Orihalcon","Gold"); - for (var i = 0; i < minerals.length; i++){ - selStr += "\r\n#L" + i + "# " + minerals[i] + "#l"; - } - equip = false; - cm.sendSimple(selStr); - } - else if (selectedType == 1){ //jewel refine - var selStr = "So, what kind of jewel ore would you like to refine?#b"; - var jewels = new Array ("Garnet","Amethyst","Aquamarine","Emerald","Opal","Sapphire","Topaz","Diamond","Black Crystal"); - for (var i = 0; i < jewels.length; i++){ - selStr += "\r\n#L" + i + "# " + jewels[i] + "#l"; - } - equip = false; - cm.sendSimple(selStr); - } - else if (selectedType == 2){ //foot refine - var selStr = "You know about that? Not many people realize the potential in the Iron Hog's Metal Hoof... I can make this into something special, if you want me to."; - equip = false; - cm.sendYesNo(selStr); - } - else if (selectedType == 3){ //claw refine - var selStr = "Ah, you wish to upgrade a claw? Then tell me, which one?#b"; - var claws = new Array ("Blood Gigantic#k - Thief Lv. 60#b","Sapphire Gigantic#k - Thief Lv. 60#b","Dark Gigantic#k - Thief Lv. 60#b"); - for (var i = 0; i < claws.length; i++){ - selStr += "\r\n#L" + i + "# " + claws[i] + "#l"; - } - equip = true; - cm.sendSimple(selStr); - } - if (equip) + if (mode == 1) status++; - } - else if (status == 2 && mode == 1) { - selectedItem = selection; - if (selectedType == 0){ //mineral refine - var itemSet = new Array(4011000,4011001,4011002,4011003,4011004,4011005,4011006); - var matSet = new Array(4010000,4010001,4010002,4010003,4010004,4010005,4010006); - var matQtySet = new Array(10,10,10,10,10,10,10); - var costSet = new Array(300,300,300,500,500,500,800); - item = itemSet[selectedItem]; - mats = matSet[selectedItem]; - matQty = matQtySet[selectedItem]; - cost = costSet[selectedItem]; + else + status--; + + if (status == 0) { + var selStr = "Yes, I do own this forge. If you're willing to pay, I can offer you some of my services.#b" + var options = new Array("Refine a mineral ore","Refine a jewel ore","I have Iron Hog's Metal Hoof...","Upgrade a claw"); + for (var i = 0; i < options.length; i++){ + selStr += "\r\n#L" + i + "# " + options[i] + "#l"; + } + + cm.sendSimple(selStr); } - else if (selectedType == 1){ //jewel refine - var itemSet = new Array(4021000,4021001,4021002,4021003,4021004,4021005,4021006,4021007,4021008); - var matSet = new Array(4020000,4020001,4020002,4020003,4020004,4020005,4020006,4020007,4020008); - var matQtySet = new Array(10,10,10,10,10,10,10,10,10); - var costSet = new Array (500,500,500,500,500,500,500,1000,3000); - item = itemSet[selectedItem]; - mats = matSet[selectedItem]; - matQty = matQtySet[selectedItem]; - cost = costSet[selectedItem]; + else if (status == 1) { + selectedType = selection; + if (selectedType == 0){ //mineral refine + var selStr = "So, what kind of mineral ore would you like to refine?#b"; + var minerals = new Array ("Bronze","Steel","Mithril","Adamantium","Silver","Orihalcon","Gold"); + for (var i = 0; i < minerals.length; i++){ + selStr += "\r\n#L" + i + "# " + minerals[i] + "#l"; + } + equip = false; + cm.sendSimple(selStr); + } + else if (selectedType == 1){ //jewel refine + var selStr = "So, what kind of jewel ore would you like to refine?#b"; + var jewels = new Array ("Garnet","Amethyst","Aquamarine","Emerald","Opal","Sapphire","Topaz","Diamond","Black Crystal"); + for (var i = 0; i < jewels.length; i++){ + selStr += "\r\n#L" + i + "# " + jewels[i] + "#l"; + } + equip = false; + cm.sendSimple(selStr); + } + else if (selectedType == 2){ //foot refine + var selStr = "You know about that? Not many people realize the potential in the Iron Hog's Metal Hoof... I can make this into something special, if you want me to."; + equip = false; + cm.sendYesNo(selStr); + } + else if (selectedType == 3){ //claw refine + var selStr = "Ah, you wish to upgrade a claw? Then tell me, which one?#b"; + var claws = new Array ("Blood Gigantic#k - Thief Lv. 60#b","Sapphire Gigantic#k - Thief Lv. 60#b","Dark Gigantic#k - Thief Lv. 60#b"); + for (var i = 0; i < claws.length; i++){ + selStr += "\r\n#L" + i + "# " + claws[i] + "#l"; + } + equip = true; + cm.sendSimple(selStr); + } + if (equip) + status++; } - else if (selectedType == 2){ //special refine - var itemSet = new Array(4011001,1); - var matSet = new Array(4000039,1); - var matQtySet = new Array (100,1); - var costSet = new Array (1000,1) - item = itemSet[0]; - mats = matSet[0]; - matQty = matQtySet[0]; - cost = costSet[0]; - } - - var prompt = "So, you want me to make some #t" + item + "#s? In that case, how many do you want me to make?"; - - cm.sendGetNumber(prompt,1,1,100) - } - - else if (status == 3) { - if (equip) - { + else if (status == 2 && mode == 1) { selectedItem = selection; - qty = 1; - } - else - qty = selection; - - last_use = false; - - if (selectedType == 3){ //claw refine - var itemSet = new Array (1472023,1472024,1472025); - var matSet = new Array(new Array (1472022,4011007,4021000,2012000),new Array (1472022,4011007,4021005,2012002),new Array (1472022,4011007,4021008,4000046)); - var matQtySet = new Array (new Array (1,1,8,10),new Array (1,1,8,10),new Array (1,1,3,5)); - var costSet = new Array (80000,80000,100000) - item = itemSet[selectedItem]; - mats = matSet[selectedItem]; - matQty = matQtySet[selectedItem]; - cost = costSet[selectedItem]; - if (selectedItem != 2) - last_use = true; - } - - var prompt = "You want me to make "; - if (qty == 1) - prompt += "a #t" + item + "#?"; - else - prompt += qty + " #t" + item + "#?"; - - prompt += " In that case, I'm going to need specific items from you in order to make it. Make sure you have room in your inventory, though!#b"; - - if (mats instanceof Array){ - for (var i = 0; i < mats.length; i++) { - prompt += "\r\n#i"+mats[i]+"# " + matQty[i] * qty + " #t" + mats[i] + "#"; + if (selectedType == 0){ //mineral refine + var itemSet = new Array(4011000,4011001,4011002,4011003,4011004,4011005,4011006); + var matSet = new Array(4010000,4010001,4010002,4010003,4010004,4010005,4010006); + var matQtySet = new Array(10,10,10,10,10,10,10); + var costSet = new Array(300,300,300,500,500,500,800); + item = itemSet[selectedItem]; + mats = matSet[selectedItem]; + matQty = matQtySet[selectedItem]; + cost = costSet[selectedItem]; } - } else { - prompt += "\r\n#i"+mats+"# " + matQty * qty + " #t" + mats + "#"; - } - - if (cost > 0) { - prompt += "\r\n#i4031138# " + cost * qty + " meso"; - } - cm.sendYesNo(prompt); - } else if (status == 4) { - var complete = true; - - if(!cm.canHold(item, qty)) { - cm.sendOk("Check your inventory for a free slot first."); - cm.dispose(); - return; - } - else if (cm.getMeso() < cost * qty) { - cm.sendOk("Cash only, no credit."); - cm.dispose(); - return; - } else { - if (mats instanceof Array) { - for(var i = 0; complete && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) - complete = false; + else if (selectedType == 1){ //jewel refine + var itemSet = new Array(4021000,4021001,4021002,4021003,4021004,4021005,4021006,4021007,4021008); + var matSet = new Array(4020000,4020001,4020002,4020003,4020004,4020005,4020006,4020007,4020008); + var matQtySet = new Array(10,10,10,10,10,10,10,10,10); + var costSet = new Array (500,500,500,500,500,500,500,1000,3000); + item = itemSet[selectedItem]; + mats = matSet[selectedItem]; + matQty = matQtySet[selectedItem]; + cost = costSet[selectedItem]; } - else if (!cm.haveItem(mats, matQty)) - complete = false; + else if (selectedType == 2){ //special refine + var itemSet = new Array(4011001,1); + var matSet = new Array(4000039,1); + var matQtySet = new Array (100,1); + var costSet = new Array (1000,1) + item = itemSet[0]; + mats = matSet[0]; + matQty = matQtySet[0]; + cost = costSet[0]; + } + + var prompt = "So, you want me to make some #t" + item + "#s? In that case, how many do you want me to make?"; + + cm.sendGetNumber(prompt,1,1,100) } - - if (!complete) - cm.sendOk("I cannot accept substitutes. If you don't have what I need, then I won't be able to help you."); - else { - if (mats instanceof Array) { - for (var i = 0; i < mats.length; i++){ - cm.gainItem(mats[i], -matQty[i] * qty); + + else if (status == 3) { + if (equip) + { + selectedItem = selection; + qty = 1; + } + else + qty = selection; + + last_use = false; + + if (selectedType == 3){ //claw refine + var itemSet = new Array (1472023,1472024,1472025); + var matSet = new Array(new Array (1472022,4011007,4021000,2012000),new Array (1472022,4011007,4021005,2012002),new Array (1472022,4011007,4021008,4000046)); + var matQtySet = new Array (new Array (1,1,8,10),new Array (1,1,8,10),new Array (1,1,3,5)); + var costSet = new Array (80000,80000,100000) + item = itemSet[selectedItem]; + mats = matSet[selectedItem]; + matQty = matQtySet[selectedItem]; + cost = costSet[selectedItem]; + if (selectedItem != 2) + last_use = true; + } + + var prompt = "You want me to make "; + if (qty == 1) + prompt += "a #t" + item + "#?"; + else + prompt += qty + " #t" + item + "#?"; + + prompt += " In that case, I'm going to need specific items from you in order to make it. Make sure you have room in your inventory, though!#b"; + + if (mats instanceof Array){ + for (var i = 0; i < mats.length; i++) { + prompt += "\r\n#i"+mats[i]+"# " + matQty[i] * qty + " #t" + mats[i] + "#"; } } else { - cm.gainItem(mats, -matQty * qty); + prompt += "\r\n#i"+mats+"# " + matQty * qty + " #t" + mats + "#"; } - cm.gainMeso(-cost * qty); - cm.gainItem(item, qty); - cm.sendNext("Phew... I almost didn't think that would work for a second... Well, I hope you enjoy it, anyway."); + + if (cost > 0) { + prompt += "\r\n#i4031138# " + cost * qty + " meso"; + } + cm.sendYesNo(prompt); + } else if (status == 4) { + var complete = true; + + if(!cm.canHold(item, qty)) { + cm.sendOk("Check your inventory for a free slot first."); + cm.dispose(); + return; + } + else if (cm.getMeso() < cost * qty) { + cm.sendOk("Cash only, no credit."); + cm.dispose(); + return; + } else { + if (mats instanceof Array) { + for(var i = 0; complete && i < mats.length; i++) + if (!cm.haveItem(mats[i], matQty[i] * qty)) + complete = false; + } + else if (!cm.haveItem(mats, matQty * qty)) + complete = false; + } + + if (!complete) + cm.sendOk("I cannot accept substitutes. If you don't have what I need, then I won't be able to help you."); + else { + if (mats instanceof Array) { + for (var i = 0; i < mats.length; i++){ + cm.gainItem(mats[i], -matQty[i] * qty); + } + } else { + cm.gainItem(mats, -matQty * qty); + } + cm.gainMeso(-cost * qty); + cm.gainItem(item, qty); + cm.sendNext("Phew... I almost didn't think that would work for a second... Well, I hope you enjoy it, anyway."); + } + cm.dispose(); } - cm.dispose(); } } \ No newline at end of file diff --git a/scripts/npc/1052007.js b/scripts/npc/1052007.js index 62936fa9ef..ae31e7b5a8 100644 --- a/scripts/npc/1052007.js +++ b/scripts/npc/1052007.js @@ -8,7 +8,7 @@ var NLC = false; var em; function start() { - cm.sendSimple("Pick your destination.\n\r\n#L0##bKerning City Subway#l\r\n#L1##bKerning square Shopping Center (Get on the subway)#l\n\n\r\n#L2#Enter Contruction Site#l\r\n#L3#New Leaf City#l"); + cm.sendSimple("Pick your destination.\n\r\n#L0##bKerning Square Shopping Center#l\n\n\r\n#L1#Enter Contruction Site#l\r\n#L2#New Leaf City#l"); } function action(mode, type, selection) { @@ -25,17 +25,13 @@ function action(mode, type, selection) { } if (status == 1) { if (selection == 0) { - cm.warp(103000101); - cm.dispose(); - return; - } else if (selection == 1) { var train = cm.getEventManager("KerningTrain"); train.newInstance("KerningTrain"); train.setProperty("player", cm.getPlayer().getName()); train.startInstance(cm.getPlayer()); cm.dispose(); return; - } else if (selection == 2) { + } else if (selection == 1) { if (cm.haveItem(4031036) || cm.haveItem(4031037) || cm.haveItem(4031038)) { text += " You will be brought in immediately. Which ticket you would like to use?#b"; for (var i = 0; i < 3; i++) { @@ -50,7 +46,7 @@ function action(mode, type, selection) { cm.dispose(); return; } - } else if (selection == 3) { + } else if (selection == 2) { if (!cm.haveItem(4031711) && cm.getPlayer().getMapId() == 103000100) { cm.sendOk("It seems you don't have a ticket! You can buy one from Bell."); cm.dispose(); diff --git a/scripts/npc/1052109.js b/scripts/npc/1052109.js new file mode 100644 index 0000000000..29f5c64340 --- /dev/null +++ b/scripts/npc/1052109.js @@ -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 . +*/ +/* Trash Can + + */ + +var status; + +function start() { + status = -1; + action(1, 0, 0); +} + +function action(mode, type, selection) { + if (mode == -1) { + cm.dispose(); + } else { + if (mode == 0 && type > 0) { + cm.dispose(); + return; + } + if (mode == 1) + status++; + else + status--; + + if(status == 0) { + cm.sendOk("Just a trash can sitting there."); + cm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/npc/1052125.js b/scripts/npc/1052125.js index db25f4585c..28a7b3b397 100644 --- a/scripts/npc/1052125.js +++ b/scripts/npc/1052125.js @@ -64,9 +64,9 @@ function action(mode, type, selection) { rock.startInstance(cm.getPlayer()); cm.dispose(); return; - } else { - cm.sendOk("#rVIP#k? Yeah that is funny #rMr. VIP#k, now get lost before I call security."); - } + } else { + cm.sendOk("#rVIP#k? Yeah that is funny #rMr. VIP#k, now get lost before I call security."); + } } cm.dispose(); } diff --git a/scripts/npc/1091003.js b/scripts/npc/1091003.js index 1388997eff..af3900d4bf 100644 --- a/scripts/npc/1091003.js +++ b/scripts/npc/1091003.js @@ -139,10 +139,10 @@ function action(mode, type, selection) { { if (mats instanceof Array) { for(var i = 0; pass && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) + if (!cm.haveItem(mats[i], matQty[i] * qty)) pass = false; } - else if (!cm.haveItem(mats, matQty)) + else if (!cm.haveItem(mats, matQty * qty)) pass = false; /*if (mats instanceof Array) { for(var i = 0; pass && i < mats.length; i++) diff --git a/scripts/npc/2023000.js b/scripts/npc/2023000.js index 6bda2ff57e..2d516f6ab5 100644 --- a/scripts/npc/2023000.js +++ b/scripts/npc/2023000.js @@ -19,39 +19,50 @@ along with this program. If not, see . */ -var toMap = new Array(211040200, 220050300, 220000000,240030000); +var toMap = new Array(211040200, 220050300, 220000000, 240030000); var inMap = new Array(211000000, 220000000, 221000000, 240000000); var cost = new Array(10000, 25000, 25000, 65000); var location; -var status = 0; - +var status; + function start() { - - for (var i = 0; i < toMap.length; i ++) { - if (inMap[i] == cm.getPlayer().getMap().getId()) { - location = i; - break; - } - } - cm.sendNext("Hello there! This taxi will take you to dangerous places in Ossyria faster than an arrow! We go from #m" + inMap[location] + "# to #b#m"+toMap[location]+"##k on this Ossyria Continent! It'll cost you #b"+ cost[location] +" meso#k. I know it's a bit expensive, but it's well worth passing all the dangerous areas!"); + status = -1; + action(1, 0, 0); } function action(mode, type, selection) { - if (mode == -1) + if (mode == -1) { cm.dispose(); - else if (mode == 0) - cm.sendNext("Hmm, please think this over. It's not cheapr, but you will NOT be disappointed with our premier service!"); - else - status++; - if (status == 1) - cm.sendYesNo("Would you like to pay meso#k to travel to the #b#m"+toMap[location]+"##k?"); - else if (status == 2) { - if (cm.getMeso() < cost[location]) { - cm.sendNext("You don't seem to have enough mesos. I am terribly sorry, but I cannot help you unless you pay up. Bring in the mesos by hunting more and come back when you have enough."); - } else { - cm.warp(toMap[location]); - cm.gainMeso(-cost[location]); + } else { + if (mode == 0 && type > 0) { + cm.sendNext("Hmm, please think this over. It's not cheap, but you will NOT be disappointed with our premier service!"); + cm.dispose(); + return; + } + if (mode == 1) + status++; + else + status--; + + if(status == 0) { + for (var i = 0; i < toMap.length; i ++) { + if (inMap[i] == cm.getPlayer().getMap().getId()) { + location = i; + break; + } + } + cm.sendNext("Hello there! This taxi will take you to dangerous places in Ossyria faster than an arrow! We go from #m" + inMap[location] + "# to #b#m"+toMap[location]+"##k on this Ossyria Continent! It'll cost you #b"+ cost[location] +" meso#k. I know it's a bit expensive, but it's well worth passing all the dangerous areas!"); + } + else if (status == 1) + cm.sendYesNo("Would you like to pay #b"+ cost[location] +" mesos#k to travel to the #b#m"+toMap[location]+"##k?"); + else if (status == 2) { + if (cm.getMeso() < cost[location]) { + cm.sendNext("You don't seem to have enough mesos. I am terribly sorry, but I cannot help you unless you pay up. Bring in the mesos by hunting more and come back when you have enough."); + } else { + cm.warp(toMap[location]); + cm.gainMeso(-cost[location]); + } + cm.dispose(); } - cm.dispose(); } } diff --git a/scripts/npc/2040003.js b/scripts/npc/2040003.js index aac55069eb..86b188626d 100644 --- a/scripts/npc/2040003.js +++ b/scripts/npc/2040003.js @@ -26,7 +26,7 @@ function action(mode, type, selection) { return; } - cm.warp(922000009); + cm.warp(922000009, 0); if(!(cm.isQuestStarted(3239) && cm.haveItem(4031092, 10))) cm.removeAll(4031092); cm.dispose(); } @@ -36,9 +36,14 @@ function action(mode, type, selection) { cm.dispose(); return; } + + if(cm.getWarpMap(922000000).countPlayers() == 0) { + cm.warp(922000000, 0); + if(!(cm.isQuestStarted(3239) && cm.haveItem(4031092, 10))) cm.removeAll(4031092); + } else { + cm.sendOk("Someone else is already attempting the parts. Wait for them to finish before you enter."); + } - cm.warp(922000000); - if(!(cm.isQuestStarted(3239) && cm.haveItem(4031092, 10))) cm.removeAll(4031092); cm.dispose(); } } diff --git a/scripts/npc/2040014.js b/scripts/npc/2040014.js index 37487013bb..461faa2ac4 100644 --- a/scripts/npc/2040014.js +++ b/scripts/npc/2040014.js @@ -92,9 +92,9 @@ function action(mode, type, selection) { else { if (mats instanceof Array) { for(var i = 0; complete && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) + if (!cm.haveItem(mats[i], matQty[i] * qty)) complete = false; - }else if (!cm.haveItem(mats, matQty)) + }else if (!cm.haveItem(mats, matQty * qty)) complete = false; } if (!complete) diff --git a/scripts/npc/2040016.js b/scripts/npc/2040016.js index 536b6ae27f..86eabcb20b 100644 --- a/scripts/npc/2040016.js +++ b/scripts/npc/2040016.js @@ -246,13 +246,13 @@ function action(mode, type, selection) { for(var i = 0; complete && i < mats.length; i++) { if (matQty[i] * qty == 1) { - if (!cm.haveItem(mats[i])) + if (!cm.haveItem(mats[i] * qty)) { complete = false; } } else { - if (!cm.haveItem(mats[i],matQty[i]*qty)) complete=false; + if (!cm.haveItem(mats[i],matQty[i] * qty)) complete=false; } } } diff --git a/scripts/npc/2040022.js b/scripts/npc/2040022.js index edba4b857b..0ff25dfbf9 100644 --- a/scripts/npc/2040022.js +++ b/scripts/npc/2040022.js @@ -210,7 +210,7 @@ function action(mode, type, selection) { if (mats instanceof Array) { for(var i = 0; complete && i < mats.length; i++) { - if (matQty[i] == 1) { + if (matQty[i] * selection == 1) { if (!cm.haveItem(mats[i])) { complete = false; diff --git a/scripts/npc/2040031.js b/scripts/npc/2040031.js new file mode 100644 index 0000000000..2dc345a995 --- /dev/null +++ b/scripts/npc/2040031.js @@ -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 . +*/ +/* Document Roll + * Chloe's House (220000304) + */ + +var status; + +function start() { + status = -1; + action(1, 0, 0); +} + +function action(mode, type, selection) { + if (mode == -1) { + cm.dispose(); + } else { + if (mode == 0 && type > 0) { + cm.dispose(); + return; + } + if (mode == 1) + status++; + else + status--; + + if(status == 0) { + cm.sendOk("A document roll on the ground."); + cm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/npc/2080000.js b/scripts/npc/2080000.js index 6f15111272..acf57e6cbc 100644 --- a/scripts/npc/2080000.js +++ b/scripts/npc/2080000.js @@ -261,10 +261,10 @@ function getStimID(equipID){ return 4130012; case 146: //xbow return 4130013; - case 148: // Knuckle - return 4130016; - case 149: - return 4130017; + case 148: // Knuckle + return 4130016; + case 149: + return 4130017; case 133: //dagger return 4130014; case 147: //claw diff --git a/scripts/npc/22000.js b/scripts/npc/22000.js index d5571633fa..c91c68f46f 100644 --- a/scripts/npc/22000.js +++ b/scripts/npc/22000.js @@ -67,7 +67,7 @@ function action(mode, type, selection) { } else { cm.gainMeso(-150); } - cm.warp(104000000); + cm.warp(104000000, 0); cm.dispose(); } } \ No newline at end of file diff --git a/scripts/npc/9000013.js b/scripts/npc/9000013.js new file mode 100644 index 0000000000..545c9de5f1 --- /dev/null +++ b/scripts/npc/9000013.js @@ -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 . +*/ +/* Author: Xterminator, Moogra + NPC Name: Tony + Map(s): Maple Road: Southperry (60000) + Description: Event Assistant +*/ +var status = 0; + +function start() { + cm.sendNext("Hey, I'm #bTony#k, if you're not busy and all ... then can I hang out with you? I heard there are people gathering up around here for an #revent#k but I don't want to go there by myself ... Well, do you want to go check it out with me?"); +} + +function action(mode, type, selection) { + if (mode < 1) { + cm.dispose(); + } else { + status++; + if (status == 1) { + cm.sendSimple("Huh? What kind of an event? Well, that's...\r\n#L0##e1.#n#b What kind of an event is it?#k#l\r\n#L1##e2.#n#b Explain the event game to me.#k#l\r\n#L2##e3.#n#b Alright, let's go!#k#l"); + } else if (status == 2) { + if (selection == 0) { + cm.sendNext("All this month, MapleStory Global is celebrating its 3rd anniversary! The GM's will be holding surprise GM Events throughout the event, so stay on your toes and make sure to participate in at least one of the events for great prizes!"); + cm.dispose(); + } else if (selection == 1) { + cm.sendSimple("There are many games for this event. It will help you a lot to know how to play the game before you play it. Choose the one you want to know more of! #b\r\n#L0# Ola Ola#l\r\n#L1# MapleStory Maple Physical Fitness Test#l\r\n#L2# Snow Ball#l\r\n#L3# Coconut Harvest#l\r\n#L4# OX Quiz#l\r\n#L5# Treasure Hunt#l#k"); + } else if (selection == 2) { + cm.sendNext("Either the event has not been started, you already have the #bScroll of Secrets#k, or you have already participated in this event within the last 24 hours. Please try again later!"); + cm.dispose(); + } + } else if (status == 3) { + if (selection == 0) { + cm.sendNext("#b[Ola Ola]#k is a game where participants climb ladders to reach the top. Climb your way up and move to the next level by choosing the correct portal out of the numerous portals available. \r\n\r\nThe game consists of three levels, and the time limit is #b6 MINUTES#k. During [Ola Ola], you #bwon't be able to jump, teleport, haste, or boost your speed using potions or items#k. There are also trick portals that'll lead you to a strange place, so please be aware of those."); + cm.dispose(); + } else if (selection == 1) { + cm.sendNext("#b[MapleStory Physical Fitness Test] is a race through an obstacle course#k much like the Forest of Patience. You can win it by overcoming various obstacles and reach the final destination within the time limit. \r\n\r\nThe game consists of four levels, and the time limit is #b15 MINUTES#k. During [MapleStory Physical Fitness Test], you won't be able to use teleport or haste."); + cm.dispose(); + } else if (selection == 2) { + cm.sendNext("#b[Snowball]#k consists of two teams, Maple Team and Story Team, and the two teams duke it out to see #bwhich team rolled the snowball farther and bigger in a limited time#k. If the game cannot be decided within the time period, then the team that rolled the snowball farther wins. \r\n\r\nTo roll up the snow, attack it by pressing #bCtrl#k. All long-ranged attacks and skill-based attacks will not work here, #bonly the close-range attacks will work#k. \r\n\r\nIf a character touches the snowball, he/she'll be sent back to the starting point. Attack the snowman in front of the starting point to prevent the opposing team from rolling the snow forward. This is where a well-planned strategy works, as the team will decide whether to attack the snowball or the snowman."); + cm.dispose(); + } else if (selection == 3) { + cm.sendNext("#b[Coconut Harvest]#k consists of two teams, Maple Team and Story Team, and the two teams duke it out to see #bwhich team gathers up the most coconuts#k. The time limit is #b5 MINUTES#k. If the game ends in a tie, an additional 2 minutes will be awarded to determine the winner. If, for some reason, the score stays tied, then the game will end in a draw. \r\n\r\nAll long-range attacks and skill-based attacks will not work here, #bonly the close-range attacks will work#k. If you don't have a weapon for the close-range attacks, you can purchase them through an NPC within the event map. No matter the level of character, the weapon, or skills, all damages applied will be the same.\r\n\r\nBeware of the obstacles and traps within the map. If the character dies during the game, the character will be eliminated from the game. The player who strikes last before the coconut drops wins. Only the coconuts that hit the ground counts, which means the ones that do not fall off the tree, or the occasional explosion of the coconuts WILL NOT COUNT. There's also a hidden portal at one of the shells at the bottom of the map, so use that wisely!"); + cm.dispose(); + } else if (selection == 4) { + cm.sendNext("#b[OX Quiz]#k is a game of MapleStory smarts through X's and O's. Once you join the game, turn on the minimap by pressing #bM#k to see where the X and O are. A total of #r10 questions#k will be given, and the character that answers them all correctly wins the game. \r\n\r\nOnce the question is given, use the ladder to enter the area where the correct answer may be, be it X or O. If the character does not choose an answer or is hanging on the ladder past the time limit, the character will be eliminated. Please hold your position until [CORRECT] is off the screen before moving on. To prevent cheating of any kind, all types of chatting will be turned off during the OX Quiz."); + cm.dispose(); + } else if (selection == 5) { + cm.sendNext("#b[Treasure Hunt]#k is a game in which your goal is to find the #btreasure scrolls#k that are hidden all over the map #rin 10 minutes#k. There will be a number of mysterious treasure chests hidden away, and once you break them apart, many items will surface from the chest. Your job is to pick out the treasure scroll from those items. \r\nTreasure chests can be destroyed using #bregular attacks#k, and once you have the treasure scroll in possession, you can trade it for the Scroll of Secrets through an NPC that's in charge of trading items. The trading NPC can be found on the Treasure Hunt map, but you can also trade your scroll through #bVikin#k of Lith Harbor.\r\n\r\nThis game has its share of hidden portals and hidden teleporting spots. To use them, press the #bup arrow#k at a certain spot, and you'll be teleported to a different place. Try jumping around, for you may also run into hidden stairs or ropes. There will also be a treasure chest that'll take you to a hidden spot, and a hidden chest that can only be found through the hidden portal, so try looking around.\r\n\r\nDuring the game of Treasure Hunt, all attack skills will be #rdisabled#k, so please break the treasure chest with the regular attack."); + cm.dispose(); + } + } + } +} \ No newline at end of file diff --git a/scripts/npc/9000036.js b/scripts/npc/9000036.js index 87cf7cc846..7fdca6a219 100644 --- a/scripts/npc/9000036.js +++ b/scripts/npc/9000036.js @@ -169,9 +169,9 @@ function action(mode, type, selection) { else{ if (mats instanceof Array) { for(var i = 0; complete && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) + if (!cm.haveItem(mats[i], matQty[i] * qty)) complete = false; - }else if (!cm.haveItem(mats, matQty)) + }else if (!cm.haveItem(mats, matQty * qty)) complete = false; } if (!complete) diff --git a/scripts/npc/9201095.js b/scripts/npc/9201095.js index e0b56b29e2..9673da0c9d 100644 --- a/scripts/npc/9201095.js +++ b/scripts/npc/9201095.js @@ -150,10 +150,10 @@ function action(mode, type, selection) { { if (mats instanceof Array) { for(var i = 0; complete && i < mats.length; i++) - if (!cm.haveItem(mats[i], matQty[i])) + if (!cm.haveItem(mats[i], matQty[i] * qty)) complete = false; } - else if (!cm.haveItem(mats, matQty)) + else if (!cm.haveItem(mats, matQty * qty)) complete = false; } diff --git a/scripts/npc/9250045.js b/scripts/npc/9250045.js index 93c9c172ec..4a3e59167b 100644 --- a/scripts/npc/9250045.js +++ b/scripts/npc/9250045.js @@ -1,4 +1,9 @@ //Perion Maple TV + +function start() { + action(1, 0, 0); +} + function action(mode, type, selection) { cm.dispose(); //What the fuck } \ No newline at end of file diff --git a/scripts/npc/commands.js b/scripts/npc/commands.js index 669ec493a5..6873c95743 100644 --- a/scripts/npc/commands.js +++ b/scripts/npc/commands.js @@ -6,10 +6,6 @@ Script: commands.js */ -/* -Please, keep the commands organized! -*/ - var status; var comm_lv6 = []; @@ -73,7 +69,7 @@ function writeSolaxiaCommandsLv5() { //Developer addCommand("debugreactors", ""); addCommand("debugcoupons", ""); addCommand("debugplayercoupons", ""); - addCommand("debugtimer", ""); + addCommand("debugtimer", ""); } function writeSolaxiaCommandsLv4() { //SuperGM @@ -92,7 +88,7 @@ function writeSolaxiaCommandsLv4() { //SuperGM addCommand("zakum", ""); addCommand("horntail", ""); addCommand("pinkbean", ""); - addCommand("pap", ""); + addCommand("pap", ""); addCommand("pianus", ""); addCommand("playernpc", ""); addCommand("face", ""); @@ -115,19 +111,20 @@ function writeSolaxiaCommandsLv3() { //GM addCommand("music", ""); addCommand("monitor", ""); addCommand("monitors", ""); - addCommand("ignore", ""); + addCommand("ignore", ""); addCommand("ignored", ""); addCommand("pos", ""); addCommand("togglecoupon", ""); addCommand("chat", ""); addCommand("fame", ""); - addCommand("giftnx", ""); //Ronan, muda esse comando para "givenx", faz mais sentido. XD - addCommand("vp", ""); //Ronan, muda esse comando para "givevp", faz mais sentido. XD + addCommand("givenx", ""); + addCommand("givevp", ""); + addCommand("givems", ""); addCommand("id", ""); addCommand("expeds", ""); addCommand("kill", ""); addCommand("seed", ""); - addCommand("killall", ""); + addCommand("killall", ""); addCommand("notice", ""); addCommand("rip", ""); addCommand("openportal", ""); @@ -139,12 +136,12 @@ function writeSolaxiaCommandsLv3() { //GM addCommand("warpsnowball", ""); addCommand("ban", ""); addCommand("unban", ""); - addCommand("healmap", ""); + addCommand("healmap", ""); addCommand("healperson", ""); addCommand("hurt", ""); addCommand("killmap", ""); addCommand("night", ""); - addCommand("npc", ""); + addCommand("npc", ""); } function writeSolaxiaCommandsLv2() { //JrGM @@ -177,7 +174,7 @@ function writeSolaxiaCommandsLv2() { //JrGM addCommand("search", ""); addCommand("jail", ""); addCommand("unjail", ""); - addCommand("job", ""); + addCommand("job", ""); addCommand("unbug", ""); } @@ -208,7 +205,7 @@ function writeSolaxiaCommandsLv0() { //Common addCommand("online", ""); addCommand("gm", ""); addCommand("bug", ""); - // addCommand("points", ""); //Caso for usar o comando @points, a linha ja foi adicionada, basta remover os // + //addCommand("points", ""); addCommand("joinevent", ""); addCommand("leaveevent", ""); addCommand("bosshp", ""); @@ -246,7 +243,7 @@ function action(mode, type, selection) { if (status == 0) { var sendStr = "There are all available commands for you:\r\n\r\n#b"; - for(var i = 0; i < cm.getPlayer().gmLevel(); i++) { + for(var i = 0; i <= cm.getPlayer().gmLevel(); i++) { sendStr += "#L" + i + "#" + levels[i] + "#l\r\n"; } @@ -255,18 +252,21 @@ function action(mode, type, selection) { var lvComm, lvDesc; if(selection == 0) { + lvComm = comm_lv0; + lvDesc = desc_lv0; + } else if(selection == 1) { lvComm = comm_lv1; lvDesc = desc_lv1; - } else if(selection == 1) { + } else if(selection == 2) { lvComm = comm_lv2; lvDesc = desc_lv2; - } else if(selection == 2) { + } else if(selection == 3) { lvComm = comm_lv3; lvDesc = desc_lv3; - } else if(selection == 3) { + } else if(selection == 4) { lvComm = comm_lv4; lvDesc = desc_lv4; - } else if(selection == 4) { + } else if(selection == 5) { lvComm = comm_lv5; lvDesc = desc_lv5; } else { diff --git a/scripts/portal/Depart_TopFloor.js b/scripts/portal/Depart_TopFloor.js index b89a8f1862..21c8b75ff1 100644 --- a/scripts/portal/Depart_TopFloor.js +++ b/scripts/portal/Depart_TopFloor.js @@ -1,3 +1,4 @@ function enter(pi) { pi.openNpc(1052125); //It is actually suppose to open the npc, because it leads to a boss map + return true; } \ No newline at end of file diff --git a/scripts/portal/Depart_topOut.js b/scripts/portal/Depart_topOut.js index 6c0da2e7f9..f4fccaeb19 100644 --- a/scripts/portal/Depart_topOut.js +++ b/scripts/portal/Depart_topOut.js @@ -1,5 +1,5 @@ function enter(pi) { pi.playPortalSound(); - pi.warp(103040300,0); - return true; + pi.warp(103040300,1); + return true; } \ No newline at end of file diff --git a/scripts/portal/met_in.js b/scripts/portal/met_in.js index 152c33bcf0..ccb2962cfd 100644 --- a/scripts/portal/met_in.js +++ b/scripts/portal/met_in.js @@ -1,4 +1,6 @@ function enter(pi) { - pi.warp(910320000, 2); + //pi.warp(910320000, 2); event not implemented + + pi.warp(103000103, 1); return true; } \ No newline at end of file diff --git a/scripts/portal/subway_in2.js b/scripts/portal/subway_in2.js index a6d091fedd..ffa7a2fd56 100644 --- a/scripts/portal/subway_in2.js +++ b/scripts/portal/subway_in2.js @@ -1,4 +1,4 @@ function enter(pi) { - pi.openNpc(1052007); + pi.warp(103000101, 3); return true; } \ No newline at end of file diff --git a/scripts/quest/3239.js b/scripts/quest/3239.js index 3ddb3f7084..ccccf5fdec 100644 --- a/scripts/quest/3239.js +++ b/scripts/quest/3239.js @@ -8,7 +8,7 @@ function end(mode, type, selection) { } else { if(qm.haveItem(4031092, 10)) { if(qm.canHold(4031092)) { - qm.sendOk("Well done! You brought back all the #t4031092# the were missing. Here, get this scroll as a token of my gratitude..."); + qm.sendOk("Well done! You brought back all the #t4031092# that were missing. Here, get this scroll as a token of my gratitude..."); qm.gainItem(4031092, -10); rnd = Math.floor(Math.random() * 4); diff --git a/sql/db_database.sql b/sql/db_database.sql index c6532a8622..f86d9ae452 100644 --- a/sql/db_database.sql +++ b/sql/db_database.sql @@ -8,9 +8,9 @@ SET time_zone = "+00:00"; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -DROP DATABASE IF EXISTS `maplesolaxia`; -CREATE DATABASE `maplesolaxia` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; -USE `maplesolaxia`; +DROP DATABASE IF EXISTS `maplesolaxia2`; +CREATE DATABASE `maplesolaxia2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; +USE `maplesolaxia2`; CREATE TABLE IF NOT EXISTS `accounts` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -16220,7 +16220,7 @@ INSERT INTO `monstercarddata` (`id`, `cardid`, `mobid`) VALUES (287, 2388040, 8220004), (288, 2388041, 8220005), (289, 2388042, 8220006), -(290, 2388043, 8820001), +(290, 2388043, 8820000), (291, 2380013, 9300274), (292, 2388055, 8830000), (293, 2380014, 1110130), @@ -16460,7 +16460,7 @@ INSERT INTO `reactordrops` (`reactordropid`, `reactorid`, `itemid`, `chance`, `q (15, 1102002, 4000136, 1, -1), (16, 2002000, 2000002, 4, -1), (17, 2002000, 2000001, 2, -1), -(18, 2002000, 4031198, 2, -1), +(18, 2002000, 4031198, 2, 3043), (19, 2112000, 2000004, 1, -1), (20, 2112001, 2020001, 1, -1), (21, 2112004, 4001016, 1, -1), diff --git a/sql/db_drops.sql b/sql/db_drops.sql index 3dca457790..88428bc7fd 100644 --- a/sql/db_drops.sql +++ b/sql/db_drops.sql @@ -1,7 +1,7 @@ #THIS SQL MUST BE USED AFTER 'db_database.sql' #NEXT SQL 'db_shopupdate.sql' IS OPTIONAL -USE `maplesolaxia`; +USE `maplesolaxia2`; INSERT IGNORE INTO temp_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) VALUES #-- copy+paste inside here as many drop data as possible from the spider (drop generator) files -- @@ -18715,6 +18715,512 @@ USE `maplesolaxia`; #-------------------------------------------------------------------------------------------- + #reinsert Kerning Square loot + DELETE FROM temp_data WHERE dropperid>=4300006 AND dropperid<=4300013; + + INSERT IGNORE INTO temp_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) VALUES +(3400000,1002098,1,1,0,1500), +(3400000,1002154,1,1,0,1500), +(3400000,1002170,1,1,0,1500), +(3400000,1002185,1,1,0,1500), +(3400000,1002628,1,1,0,1500), +(3400000,1072107,1,1,0,800), +(3400000,1072117,1,1,0,800), +(3400000,1072118,1,1,0,800), +(3400000,1072126,1,1,0,800), +(3400000,1072300,1,1,0,800), +(3400000,2000001,1,1,0,100000), +(3400000,2000003,1,1,0,100000), +(3400000,2000004,1,1,0,20000), +(3400000,2000006,1,1,0,100000), +(3400000,2022003,1,1,0,20000), +(3400000,2040004,1,1,0,300), +(3400000,2040504,1,1,0,300), +(3400000,2049208,1,1,0,300), +(3400000,2049210,1,1,0,300), +(3400000,4000539,1,1,0,600000), +(3400000,4004000,1,1,0,10000), +(3400000,4020007,1,1,0,9000), +(3400001,1002098,1,1,0,1500), +(3400001,1002154,1,1,0,1500), +(3400001,1002170,1,1,0,1500), +(3400001,1002185,1,1,0,1500), +(3400001,1002628,1,1,0,1500), +(3400001,1072107,1,1,0,800), +(3400001,1072117,1,1,0,800), +(3400001,1072118,1,1,0,800), +(3400001,1072126,1,1,0,800), +(3400001,1072300,1,1,0,800), +(3400001,2000001,1,1,0,100000), +(3400001,2000003,1,1,0,100000), +(3400001,2000004,1,1,0,20000), +(3400001,2000006,1,1,0,100000), +(3400001,2022003,1,1,0,20000), +(3400001,2040004,1,1,0,300), +(3400001,2040504,1,1,0,300), +(3400001,2049208,1,1,0,300), +(3400001,2049210,1,1,0,300), +(3400001,4000541,1,1,0,600000), +(3400001,4004000,1,1,0,10000), +(3400001,4020007,1,1,0,9000), +(3400002,1002098,1,1,0,1500), +(3400002,1002154,1,1,0,1500), +(3400002,1002170,1,1,0,1500), +(3400002,1002185,1,1,0,1500), +(3400002,1002628,1,1,0,1500), +(3400002,1072107,1,1,0,800), +(3400002,1072117,1,1,0,800), +(3400002,1072118,1,1,0,800), +(3400002,1072126,1,1,0,800), +(3400002,1072300,1,1,0,800), +(3400002,2000001,1,1,0,100000), +(3400002,2000003,1,1,0,100000), +(3400002,2000004,1,1,0,20000), +(3400002,2000006,1,1,0,100000), +(3400002,2022003,1,1,0,20000), +(3400002,2040004,1,1,0,300), +(3400002,2040504,1,1,0,300), +(3400002,2049208,1,1,0,300), +(3400002,2049210,1,1,0,300), +(3400002,4000540,1,1,0,600000), +(3400002,4004000,1,1,0,10000), +(3400002,4020007,1,1,0,9000), +(3400003,4032508,1,1,2273,999999), +(3400004,4000542,1,1,0,400000), +(3400005,4032508,1,1,2273,999999), +(3400006,4000543,1,1,0,400000), +(3400007,4032508,1,1,2273,999999), +(3400008,4000544,1,1,0,400000), +(4300001,1302009,1,1,0,700), +(4300001,1312007,1,1,0,700), +(4300001,1322016,1,1,0,700), +(4300001,1332011,1,1,0,500), +(4300001,1332031,1,1,0,500), +(4300001,1382019,1,1,0,700), +(4300001,1402007,1,1,0,700), +(4300001,1412005,1,1,0,700), +(4300001,1422007,1,1,0,700), +(4300001,1432005,1,1,0,500), +(4300001,1442009,1,1,0,700), +(4300001,1452007,1,1,0,500), +(4300001,1472014,1,1,0,500), +(4300001,1472015,1,1,0,500), +(4300001,1472016,1,1,0,500), +(4300001,1472017,1,1,0,500), +(4300001,1482006,1,1,0,500), +(4300001,1492006,1,1,0,500), +(4300001,2000001,1,1,0,100000), +(4300001,2000003,1,1,0,100000), +(4300001,2000004,1,1,0,20000), +(4300001,2000006,1,1,0,100000), +(4300001,2022003,1,1,0,20000), +(4300001,2040004,1,1,0,300), +(4300001,2040501,1,1,0,300), +(4300001,2040504,1,1,0,300), +(4300001,2040801,1,1,0,300), +(4300001,2041004,1,1,0,300), +(4300001,2041007,1,1,0,300), +(4300001,2049200,1,1,0,300), +(4300001,2049202,1,1,0,300), +(4300001,2049204,1,1,0,300), +(4300001,2049206,1,1,0,300), +(4300001,4000530,1,1,0,600000), +(4300001,4004000,1,1,0,10000), +(4300001,4020008,1,1,0,9000), +(4300003,1302009,1,1,0,700), +(4300003,1312007,1,1,0,700), +(4300003,1322016,1,1,0,700), +(4300003,1332011,1,1,0,500), +(4300003,1332031,1,1,0,500), +(4300003,1382019,1,1,0,700), +(4300003,1402007,1,1,0,700), +(4300003,1412005,1,1,0,700), +(4300003,1422007,1,1,0,700), +(4300003,1432005,1,1,0,500), +(4300003,1442009,1,1,0,700), +(4300003,1452007,1,1,0,500), +(4300003,1472014,1,1,0,500), +(4300003,1472015,1,1,0,500), +(4300003,1472016,1,1,0,500), +(4300003,1472017,1,1,0,500), +(4300003,1482006,1,1,0,500), +(4300003,1492006,1,1,0,500), +(4300003,2000001,1,1,0,100000), +(4300003,2000003,1,1,0,100000), +(4300003,2000004,1,1,0,20000), +(4300003,2000006,1,1,0,100000), +(4300003,2022003,1,1,0,20000), +(4300003,2040004,1,1,0,300), +(4300003,2040501,1,1,0,300), +(4300003,2040504,1,1,0,300), +(4300003,2040801,1,1,0,300), +(4300003,2041004,1,1,0,300), +(4300003,2041007,1,1,0,300), +(4300003,2049200,1,1,0,300), +(4300003,2049202,1,1,0,300), +(4300003,2049204,1,1,0,300), +(4300003,2049206,1,1,0,300), +(4300003,4000532,1,1,0,600000), +(4300003,4004000,1,1,0,10000), +(4300003,4020008,1,1,0,9000), +(4300005,1302009,1,1,0,700), +(4300005,1312007,1,1,0,700), +(4300005,1322016,1,1,0,700), +(4300005,1332011,1,1,0,500), +(4300005,1332031,1,1,0,500), +(4300005,1382019,1,1,0,700), +(4300005,1402007,1,1,0,700), +(4300005,1412005,1,1,0,700), +(4300005,1422007,1,1,0,700), +(4300005,1432005,1,1,0,500), +(4300005,1442009,1,1,0,700), +(4300005,1452007,1,1,0,500), +(4300005,1472014,1,1,0,500), +(4300005,1472015,1,1,0,500), +(4300005,1472016,1,1,0,500), +(4300005,1472017,1,1,0,500), +(4300005,1482006,1,1,0,500), +(4300005,1492006,1,1,0,500), +(4300005,2000001,1,1,0,100000), +(4300005,2000003,1,1,0,100000), +(4300005,2000004,1,1,0,20000), +(4300005,2000006,1,1,0,100000), +(4300005,2022003,1,1,0,20000), +(4300005,2040004,1,1,0,300), +(4300005,2040501,1,1,0,300), +(4300005,2040504,1,1,0,300), +(4300005,2040801,1,1,0,300), +(4300005,2041004,1,1,0,300), +(4300005,2041007,1,1,0,300), +(4300005,2049200,1,1,0,300), +(4300005,2049202,1,1,0,300), +(4300005,2049204,1,1,0,300), +(4300005,2049206,1,1,0,300), +(4300005,4000534,1,1,0,600000), +(4300005,4004000,1,1,0,10000), +(4300005,4020008,1,1,0,9000), +(4300006,1302009,1,1,0,700), +(4300006,1312007,1,1,0,700), +(4300006,1322016,1,1,0,700), +(4300006,1332011,1,1,0,500), +(4300006,1332031,1,1,0,500), +(4300006,1382019,1,1,0,700), +(4300006,1402007,1,1,0,700), +(4300006,1412005,1,1,0,700), +(4300006,1422007,1,1,0,700), +(4300006,1432005,1,1,0,500), +(4300006,1442009,1,1,0,700), +(4300006,1452007,1,1,0,500), +(4300006,1472014,1,1,0,500), +(4300006,1472015,1,1,0,500), +(4300006,1472016,1,1,0,500), +(4300006,1472017,1,1,0,500), +(4300006,1482006,1,1,0,500), +(4300006,1492006,1,1,0,500), +(4300006,2000001,1,1,0,100000), +(4300006,2000003,1,1,0,100000), +(4300006,2000004,1,1,0,20000), +(4300006,2000006,1,1,0,100000), +(4300006,2022003,1,1,0,20000), +(4300006,2040004,1,1,0,300), +(4300006,2040501,1,1,0,300), +(4300006,2040504,1,1,0,300), +(4300006,2040801,1,1,0,300), +(4300006,2041004,1,1,0,300), +(4300006,2041007,1,1,0,300), +(4300006,2049200,1,1,0,300), +(4300006,2049202,1,1,0,300), +(4300006,2049204,1,1,0,300), +(4300006,2049206,1,1,0,300), +(4300006,4000525,1,1,0,600000), +(4300006,4004000,1,1,0,10000), +(4300006,4020008,1,1,0,9000), +(4300006,4032506,1,1,2277,999999), +(4300007,1302009,1,1,0,700), +(4300007,1312007,1,1,0,700), +(4300007,1322016,1,1,0,700), +(4300007,1332011,1,1,0,500), +(4300007,1332031,1,1,0,500), +(4300007,1382019,1,1,0,700), +(4300007,1402007,1,1,0,700), +(4300007,1412005,1,1,0,700), +(4300007,1422007,1,1,0,700), +(4300007,1432005,1,1,0,500), +(4300007,1442009,1,1,0,700), +(4300007,1452007,1,1,0,500), +(4300007,1472014,1,1,0,500), +(4300007,1472015,1,1,0,500), +(4300007,1472016,1,1,0,500), +(4300007,1472017,1,1,0,500), +(4300007,1482006,1,1,0,500), +(4300007,1492006,1,1,0,500), +(4300007,2000001,1,1,0,100000), +(4300007,2000003,1,1,0,100000), +(4300007,2000004,1,1,0,20000), +(4300007,2000006,1,1,0,100000), +(4300007,2022003,1,1,0,20000), +(4300007,2040004,1,1,0,300), +(4300007,2040501,1,1,0,300), +(4300007,2040504,1,1,0,300), +(4300007,2040801,1,1,0,300), +(4300007,2041004,1,1,0,300), +(4300007,2041007,1,1,0,300), +(4300007,2049200,1,1,0,300), +(4300007,2049202,1,1,0,300), +(4300007,2049204,1,1,0,300), +(4300007,2049206,1,1,0,300), +(4300007,4000526,1,1,0,600000), +(4300007,4004000,1,1,0,10000), +(4300007,4020008,1,1,0,9000), +(4300007,4032506,1,1,2277,999999), +(4300008,1302009,1,1,0,700), +(4300008,1312007,1,1,0,700), +(4300008,1322016,1,1,0,700), +(4300008,1332011,1,1,0,500), +(4300008,1332031,1,1,0,500), +(4300008,1382019,1,1,0,700), +(4300008,1402007,1,1,0,700), +(4300008,1412005,1,1,0,700), +(4300008,1422007,1,1,0,700), +(4300008,1432005,1,1,0,500), +(4300008,1442009,1,1,0,700), +(4300008,1452007,1,1,0,500), +(4300008,1472014,1,1,0,500), +(4300008,1472015,1,1,0,500), +(4300008,1472016,1,1,0,500), +(4300008,1472017,1,1,0,500), +(4300008,1482006,1,1,0,500), +(4300008,1492006,1,1,0,500), +(4300008,2000001,1,1,0,100000), +(4300008,2000003,1,1,0,100000), +(4300008,2000004,1,1,0,20000), +(4300008,2000006,1,1,0,100000), +(4300008,2022003,1,1,0,20000), +(4300008,2040004,1,1,0,300), +(4300008,2040501,1,1,0,300), +(4300008,2040504,1,1,0,300), +(4300008,2040801,1,1,0,300), +(4300008,2041004,1,1,0,300), +(4300008,2041007,1,1,0,300), +(4300008,2049200,1,1,0,300), +(4300008,2049202,1,1,0,300), +(4300008,2049204,1,1,0,300), +(4300008,2049206,1,1,0,300), +(4300008,4000527,1,1,0,400000), +(4300008,4004000,1,1,0,10000), +(4300008,4020008,1,1,0,9000), +(4300008,4032506,1,1,2277,999999), +(4300009,1302009,1,1,0,700), +(4300009,1312007,1,1,0,700), +(4300009,1322016,1,1,0,700), +(4300009,1332011,1,1,0,500), +(4300009,1332031,1,1,0,500), +(4300009,1382019,1,1,0,700), +(4300009,1402007,1,1,0,700), +(4300009,1412005,1,1,0,700), +(4300009,1422007,1,1,0,700), +(4300009,1432005,1,1,0,500), +(4300009,1442009,1,1,0,700), +(4300009,1452007,1,1,0,500), +(4300009,1472014,1,1,0,500), +(4300009,1472015,1,1,0,500), +(4300009,1472016,1,1,0,500), +(4300009,1472017,1,1,0,500), +(4300009,1482006,1,1,0,500), +(4300009,1492006,1,1,0,500), +(4300009,2000001,1,1,0,100000), +(4300009,2000003,1,1,0,100000), +(4300009,2000004,1,1,0,20000), +(4300009,2000006,1,1,0,100000), +(4300009,2022003,1,1,0,20000), +(4300009,2040004,1,1,0,300), +(4300009,2040501,1,1,0,300), +(4300009,2040504,1,1,0,300), +(4300009,2040801,1,1,0,300), +(4300009,2041004,1,1,0,300), +(4300009,2041007,1,1,0,300), +(4300009,2049200,1,1,0,300), +(4300009,2049202,1,1,0,300), +(4300009,2049204,1,1,0,300), +(4300009,2049206,1,1,0,300), +(4300009,4000528,1,1,0,600000), +(4300009,4004000,1,1,0,10000), +(4300009,4020008,1,1,0,9000), +(4300010,1302009,1,1,0,700), +(4300010,1312007,1,1,0,700), +(4300010,1322016,1,1,0,700), +(4300010,1332011,1,1,0,500), +(4300010,1332031,1,1,0,500), +(4300010,1382019,1,1,0,700), +(4300010,1402007,1,1,0,700), +(4300010,1412005,1,1,0,700), +(4300010,1422007,1,1,0,700), +(4300010,1432005,1,1,0,500), +(4300010,1442009,1,1,0,700), +(4300010,1452007,1,1,0,500), +(4300010,1472014,1,1,0,500), +(4300010,1472015,1,1,0,500), +(4300010,1472016,1,1,0,500), +(4300010,1472017,1,1,0,500), +(4300010,1482006,1,1,0,500), +(4300010,1492006,1,1,0,500), +(4300010,2000001,1,1,0,100000), +(4300010,2000003,1,1,0,100000), +(4300010,2000004,1,1,0,20000), +(4300010,2000006,1,1,0,100000), +(4300010,2022003,1,1,0,20000), +(4300010,2040004,1,1,0,300), +(4300010,2040501,1,1,0,300), +(4300010,2040504,1,1,0,300), +(4300010,2040801,1,1,0,300), +(4300010,2041004,1,1,0,300), +(4300010,2041007,1,1,0,300), +(4300010,2049200,1,1,0,300), +(4300010,2049202,1,1,0,300), +(4300010,2049204,1,1,0,300), +(4300010,2049206,1,1,0,300), +(4300010,4000529,1,1,0,600000), +(4300010,4004000,1,1,0,10000), +(4300010,4020008,1,1,0,9000), +(4300011,1302009,1,1,0,700), +(4300011,1312007,1,1,0,700), +(4300011,1322016,1,1,0,700), +(4300011,1332011,1,1,0,500), +(4300011,1332031,1,1,0,500), +(4300011,1382019,1,1,0,700), +(4300011,1402007,1,1,0,700), +(4300011,1412005,1,1,0,700), +(4300011,1422007,1,1,0,700), +(4300011,1432005,1,1,0,500), +(4300011,1442009,1,1,0,700), +(4300011,1452007,1,1,0,500), +(4300011,1472014,1,1,0,500), +(4300011,1472015,1,1,0,500), +(4300011,1472016,1,1,0,500), +(4300011,1472017,1,1,0,500), +(4300011,1482006,1,1,0,500), +(4300011,1492006,1,1,0,500), +(4300011,2000001,1,1,0,100000), +(4300011,2000003,1,1,0,100000), +(4300011,2000004,1,1,0,20000), +(4300011,2000006,1,1,0,100000), +(4300011,2022003,1,1,0,20000), +(4300011,2040004,1,1,0,300), +(4300011,2040501,1,1,0,300), +(4300011,2040504,1,1,0,300), +(4300011,2040801,1,1,0,300), +(4300011,2041004,1,1,0,300), +(4300011,2041007,1,1,0,300), +(4300011,2049200,1,1,0,300), +(4300011,2049202,1,1,0,300), +(4300011,2049204,1,1,0,300), +(4300011,2049206,1,1,0,300), +(4300011,4000536,1,1,0,600000), +(4300011,4004000,1,1,0,10000), +(4300011,4020008,1,1,0,9000), +(4300011,4032509,1,1,2286,999999), +(4300012,1302009,1,1,0,700), +(4300012,1312007,1,1,0,700), +(4300012,1322016,1,1,0,700), +(4300012,1332011,1,1,0,500), +(4300012,1332031,1,1,0,500), +(4300012,1382019,1,1,0,700), +(4300012,1402007,1,1,0,700), +(4300012,1412005,1,1,0,700), +(4300012,1422007,1,1,0,700), +(4300012,1432005,1,1,0,500), +(4300012,1442009,1,1,0,700), +(4300012,1452007,1,1,0,500), +(4300012,1472014,1,1,0,500), +(4300012,1472015,1,1,0,500), +(4300012,1472016,1,1,0,500), +(4300012,1472017,1,1,0,500), +(4300012,1482006,1,1,0,500), +(4300012,1492006,1,1,0,500), +(4300012,2000001,1,1,0,100000), +(4300012,2000003,1,1,0,100000), +(4300012,2000004,1,1,0,20000), +(4300012,2000006,1,1,0,100000), +(4300012,2022003,1,1,0,20000), +(4300012,2040004,1,1,0,300), +(4300012,2040501,1,1,0,300), +(4300012,2040504,1,1,0,300), +(4300012,2040801,1,1,0,300), +(4300012,2041004,1,1,0,300), +(4300012,2041007,1,1,0,300), +(4300012,2049200,1,1,0,300), +(4300012,2049202,1,1,0,300), +(4300012,2049204,1,1,0,300), +(4300012,2049206,1,1,0,300), +(4300012,4000537,1,1,0,600000), +(4300012,4004000,1,1,0,10000), +(4300012,4020008,1,1,0,9000), +(4300013,1302009,1,1,0,7000), +(4300013,1312007,1,1,0,7000), +(4300013,1322016,1,1,0,7000), +(4300013,1332011,1,1,0,5000), +(4300013,1332031,1,1,0,5000), +(4300013,1382019,1,1,0,7000), +(4300013,1402007,1,1,0,7000), +(4300013,1412005,1,1,0,7000), +(4300013,1422007,1,1,0,7000), +(4300013,1432005,1,1,0,5000), +(4300013,1442009,1,1,0,7000), +(4300013,1452007,1,1,0,5000), +(4300013,1472014,1,1,0,5000), +(4300013,1472015,1,1,0,5000), +(4300013,1472016,1,1,0,5000), +(4300013,1472017,1,1,0,5000), +(4300013,1482006,1,1,0,5000), +(4300013,1492006,1,1,0,5000), +(4300013,2000001,1,1,0,1000000), +(4300013,2000003,1,1,0,1000000), +(4300013,2000004,1,1,0,999999), +(4300013,2000006,1,1,0,4999995), +(4300013,2022003,1,1,0,200000), +(4300013,2040004,1,1,0,3000), +(4300013,2040501,1,1,0,3000), +(4300013,2040504,1,1,0,3000), +(4300013,2040801,1,1,0,3000), +(4300013,2041004,1,1,0,3000), +(4300013,2041007,1,1,0,3000), +(4300013,2049200,1,1,0,3000), +(4300013,2049201,1,1,0,3000), +(4300013,2049202,1,1,0,3000), +(4300013,2049203,1,1,0,3000), +(4300013,2049204,1,1,0,3000), +(4300013,2049205,1,1,0,3000), +(4300013,2049206,1,1,0,3000), +(4300013,2049207,1,1,0,3000), +(4300013,4004000,1,1,0,100000), +(4300013,4020008,1,1,0,90000), +(4300015,4032509,1,1,2286,999999), +(4300016,4000537,1,1,0,400000), +(3400000,0,50,90,0,400000), +(3400001,0,60,90,0,400000), +(3400002,0,70,100,0,400000), +(3400003,0,60,70,0,400000), +(3400004,0,60,80,0,400000), +(3400005,0,80,85,0,400000), +(3400006,0,80,90,0,400000), +(3400007,0,90,100,0,400000), +(3400008,0,100,110,0,400000), +(4300001,0,100,120,0,400000), +(4300003,0,100,120,0,400000), +(4300005,0,100,120,0,400000), +(4300006,0,110,120,0,400000), +(4300007,0,110,140,0,400000), +(4300008,0,110,140,0,400000), +(4300009,0,100,120,0,400000), +(4300010,0,100,110,0,400000), +(4300011,0,110,115,0,400000), +(4300012,0,120,140,0,400000), +(4300013,0,500,700,0,400000), +(4300014,0,100,110,0,400000), +(4300015,0,110,115,0,400000), +(4300016,0,120,140,0,400000), +(4300017,0,540,800,0,400000); + #insert things that should be present by now, but aren't yet. INSERT IGNORE INTO temp_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) VALUES @@ -18731,12 +19237,12 @@ USE `maplesolaxia`; (4240000, 2383011, 1, 1, 0, 10000), (1210102, 4001354, 1, 1, 28209, 10000), (2110200, 4001368, 1, 1, 28258, 10000), -(1110101, 4031773, 1, 1, 2145, 10000), -(1130100, 4031773, 1, 1, 2145, 10000), -(1140100, 4031773, 1, 1, 2145, 10000), -(130100, 4031773, 1, 1, 2145, 10000), -(2130100, 4031773, 1, 1, 2145, 10000), -(1140130, 4031773, 1, 1, 2145, 10000), +(1110101, 4031773, 1, 1, 2145, 80000), +(1130100, 4031773, 1, 1, 2145, 80000), +(1140100, 4031773, 1, 1, 2145, 80000), +(130100, 4031773, 1, 1, 2145, 80000), +(2130100, 4031773, 1, 1, 2145, 200000), +(1140130, 4031773, 1, 1, 2145, 80000), (4230114, 4031203, 1, 1, 0, 70000), (4230115, 4031203, 1, 1, 0, 70000), (3000001, 2381033, 1, 1, 0, 10000), @@ -19207,10 +19713,20 @@ USE `maplesolaxia`; DELETE FROM temp_data WHERE dropperid=9300090; DELETE FROM temp_data WHERE dropperid=9420501; - # delete item drops from clones of Pink Bean + # delete/normalize item drops from clones of Pink Bean DELETE FROM temp_data WHERE dropperid=8820000; DELETE FROM temp_data WHERE dropperid>=8820010 AND dropperid<=8820014; + INSERT INTO temp_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) + SELECT 8820000, temp_data.itemid, temp_data.minimum_quantity, temp_data.maximum_quantity, temp_data.questid, temp_data.chance + FROM temp_data + WHERE temp_data.dropperid = 8820001; + + INSERT INTO temp_data (dropperid, itemid, minqty, maxqty, questid, chance) + SELECT dropperid, itemid, minqty, maxqty, questid, chance + FROM table1 + WHERE condition; + # reinsert other Freezer's data INSERT IGNORE INTO temp_data (`dropperid`, `itemid`, `minimum_quantity`, `maximum_quantity`, `questid`, `chance`) VALUES (9420501, 0, 92, 138, 0, 400000), @@ -19299,6 +19815,7 @@ USE `maplesolaxia`; #update card rates UPDATE drop_data SET chance=8000 WHERE (itemid >= 2380000 AND itemid < 2388000); UPDATE drop_data SET chance=24000 WHERE (itemid >= 2388000 AND itemid < 2390000); + UPDATE drop_data SET chance=24000 WHERE itemid = 2388046; #update quest mob items UPDATE drop_data SET questid=3232 WHERE itemid=4031098; @@ -19865,7 +20382,43 @@ USE `maplesolaxia`; (9300270, 2022433, 1, 1, 0, 200000), (6090002, 4000414, 1, 1, 0, 400000), (9300147, 4001132, 1, 1, 0, 400000), -(9300148, 4001133, 1, 1, 0, 100000); +(9300148, 4001133, 1, 1, 0, 100000), +(4300012, 4000537, 1, 1, 0, 200000), +(4300012, 2000001, 1, 1, 0, 80000), +(4300012, 2000003, 1, 1, 0, 80000), +(4300012, 2000006, 1, 1, 0, 80000), +(4300012, 2022003, 1, 1, 0, 80000), +(4300012, 2000004, 1, 1, 0, 80000), +(4300012, 4020008, 1, 1, 0, 40000), +(4300012, 4004000, 1, 1, 0, 40000), +(4300012, 1302009, 1, 1, 0, 7000), +(4300012, 1312007, 1, 1, 0, 7000), +(4300012, 1322016, 1, 1, 0, 7000), +(4300012, 1332011, 1, 1, 0, 7000), +(4300012, 1332031, 1, 1, 0, 7000), +(4300012, 1382019, 1, 1, 0, 7000), +(4300012, 1402007, 1, 1, 0, 7000), +(4300012, 1412005, 1, 1, 0, 7000), +(4300012, 1422007, 1, 1, 0, 7000), +(4300012, 1432005, 1, 1, 0, 7000), +(4300012, 1442009, 1, 1, 0, 7000), +(4300012, 1452007, 1, 1, 0, 7000), +(4300012, 1472014, 1, 1, 0, 7000), +(4300012, 1472015, 1, 1, 0, 7000), +(4300012, 1472016, 1, 1, 0, 7000), +(4300012, 1472017, 1, 1, 0, 7000), +(4300012, 1482006, 1, 1, 0, 7000), +(4300012, 1492006, 1, 1, 0, 7000), +(4300012, 2040004, 1, 1, 0, 12000), +(4300012, 2040501, 1, 1, 0, 12000), +(4300012, 2040504, 1, 1, 0, 12000), +(4300012, 2040801, 1, 1, 0, 12000), +(4300012, 2041007, 1, 1, 0, 12000), +(4300012, 2041004, 1, 1, 0, 12000), +(4300012, 2049200, 1, 1, 0, 8000), +(4300012, 2049202, 1, 1, 0, 8000), +(4300012, 2049204, 1, 1, 0, 8000), +(4300012, 2049206, 1, 1, 0, 8000); # update quest reactor items UPDATE reactordrops SET questid=2086 WHERE itemid=4031165; diff --git a/sql/db_shopupdate.sql b/sql/db_shopupdate.sql index 4ec4b74f93..014652ed79 100644 --- a/sql/db_shopupdate.sql +++ b/sql/db_shopupdate.sql @@ -1,7 +1,7 @@ #THIS SQL IS OPTIONAL, TO BE USED AFTER 'db_drops.sql' #THIS REQUIRES PROVIDED WZ FILES -USE `maplesolaxia`; +USE `maplesolaxia2`; UPDATE shopitems SET itemid=1812005, price=1000 WHERE shopitemid=18; UPDATE shopitems SET itemid=1812004, price=1000 WHERE shopitemid=19; diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index bbc48ca691..8c22fb54a1 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -1315,7 +1315,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { byte value = (byte)mbs.getValue().value; if(value == 1 && thisMap.getReturnMapId() == 211000000) return true; //protection from cold - else if(value == 2 && thisMap.getReturnMapId() == 230000000) return true; //breathing underwater + else if(value == 2 && (thisMap.getReturnMapId() == 211000000 || thisMap.getReturnMapId() == 230000000)) return true; //breathing underwater else return false; } } @@ -2035,6 +2035,11 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { extraRecoveryTask = TimerManager.getInstance().register(new Runnable() { @Override public void run() { + if (getBuffSource(MapleBuffStat.HPREC) == -1 && getBuffSource(MapleBuffStat.MPREC) == -1) { + stopExtraTask(); + return; + } + if(hp < localmaxhp) { if(healHP > 0) { client.announce(MaplePacketCreator.showOwnRecovery(healHP)); @@ -3457,7 +3462,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { public Map getSkills() { return Collections.unmodifiableMap(skills); } - + public int getSkillLevel(int skill) { SkillEntry ret = skills.get(SkillFactory.getSkill(skill)); if (ret == null) { @@ -4979,16 +4984,35 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } } else if (effect.isRecovery()) { int healInterval = (ServerConstants.USE_ULTRA_RECOVERY) ? 2500 : 5000; - final byte heal = (byte) effect.getX(); - recoveryTask = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - addHP(heal); - client.announce(MaplePacketCreator.showOwnRecovery(heal)); - getMap().broadcastMessage(MapleCharacter.this, MaplePacketCreator.showRecovery(id, heal), false); - } - }, healInterval, healInterval); + + chrLock.lock(); + try { + recoveryTask = TimerManager.getInstance().register(new Runnable() { + @Override + public void run() { + if (getBuffSource(MapleBuffStat.RECOVERY) == -1) { + chrLock.lock(); + try { + if (recoveryTask != null) { + recoveryTask.cancel(false); + recoveryTask = null; + } + } finally { + chrLock.unlock(); + } + + return; + } + + addHP(heal); + client.announce(MaplePacketCreator.showOwnRecovery(heal)); + getMap().broadcastMessage(MapleCharacter.this, MaplePacketCreator.showRecovery(id, heal), false); + } + }, healInterval, healInterval); + } finally { + chrLock.unlock(); + } } else if (effect.isDojoBuff() || effect.getSourceId() == 2022337) { boolean isRecoveryBuff = false; if(effect.getHpRRate() > 0) { diff --git a/src/client/command/Commands.java b/src/client/command/Commands.java index b3e20df509..861f9b9644 100644 --- a/src/client/command/Commands.java +++ b/src/client/command/Commands.java @@ -1548,21 +1548,31 @@ public class Commands { victim.updateSingleStat(MapleStat.FAME, victim.getFame()); break; - case "giftnx": + case "givenx": if (sub.length < 3){ - player.yellowMessage("Syntax: !giftnx "); + player.yellowMessage("Syntax: !givenx "); break; } cserv.getPlayerStorage().getCharacterByName(sub[1]).getCashShop().gainCash(1, Integer.parseInt(sub[2])); player.message("NX given."); break; - case "vp": - if (sub.length < 2){ - player.yellowMessage("Syntax: !vp "); + case "givevp": + if (sub.length < 3){ + player.yellowMessage("Syntax: !givevp "); break; } - c.addVotePoints(Integer.parseInt(sub[1])); + cserv.getPlayerStorage().getCharacterByName(sub[1]).getClient().addVotePoints(Integer.parseInt(sub[2])); + player.message("VP given."); + break; + + case "givems": + if (sub.length < 3){ + player.yellowMessage("Syntax: !givemx "); + break; + } + cserv.getPlayerStorage().getCharacterByName(sub[1]).gainMeso(Integer.parseInt(sub[2]), true); + player.message("MESO given."); break; case "id": @@ -1871,6 +1881,79 @@ public class Commands { } break; + case "face": + if (sub.length < 2){ + player.yellowMessage("Syntax: !face [] "); + break; + } + + try { + if (sub.length == 2) { + int itemId = Integer.parseInt(sub[1]); + if(!(itemId >= 20000 && itemId < 22000) || MapleItemInformationProvider.getInstance().getName(itemId) == null) { + player.yellowMessage("Face id '" + sub[1] + "' does not exist."); + break; + } + + player.setFace(itemId); + player.updateSingleStat(MapleStat.FACE, itemId); + player.equipChanged(); + } else { + int itemId = Integer.parseInt(sub[2]); + if(!(itemId >= 20000 && itemId < 22000) || MapleItemInformationProvider.getInstance().getName(itemId) == null) { + player.yellowMessage("Face id '" + sub[2] + "' does not exist."); + break; + } + + victim = c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]); + if(victim == null) { + player.yellowMessage("Player '" + sub[1] + "' has not been found on this channel."); + break; + } + victim.setFace(itemId); + victim.updateSingleStat(MapleStat.FACE, itemId); + victim.equipChanged(); + } + } catch(Exception e) {} + + break; + + case "hair": + if (sub.length < 2){ + player.yellowMessage("Syntax: !hair [] "); + break; + } + + try { + if (sub.length == 2) { + int itemId = Integer.parseInt(sub[1]); + if(!(itemId >= 30000 && itemId < 32000) || MapleItemInformationProvider.getInstance().getName(itemId) == null) { + player.yellowMessage("Hair id '" + sub[1] + "' does not exist."); + break; + } + + player.setHair(itemId); + player.updateSingleStat(MapleStat.HAIR, itemId); + player.equipChanged(); + } else { + int itemId = Integer.parseInt(sub[2]); + if(!(itemId >= 30000 && itemId < 32000) || MapleItemInformationProvider.getInstance().getName(itemId) == null) { + player.yellowMessage("Hair id '" + sub[2] + "' does not exist."); + break; + } + + victim = c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]); + if(victim == null) { + player.yellowMessage("Player '" + sub[1] + "' has not been found on this channel."); + break; + } + victim.setHair(itemId); + victim.updateSingleStat(MapleStat.HAIR, itemId); + victim.equipChanged(); + } + } catch(Exception e) {} + break; + default: return false; } @@ -2053,57 +2136,6 @@ public class Commands { player.playerNPC(c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]), Integer.parseInt(sub[2])); break; - case "face": - if (sub.length < 2){ - player.yellowMessage("Syntax: !face [] "); - break; - } - - try { - if (sub.length == 2) { - player.setFace(Integer.parseInt(sub[1])); - player.equipChanged(); - } else { - victim = c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]); - if(victim == null) { - player.yellowMessage("Player '" + sub[1] + "' has not been found on this channel."); - break; - } - victim.setFace(Integer.parseInt(sub[2])); - victim.equipChanged(); - } - } catch(Exception e) {} - - break; - - case "hair": - if (sub.length < 2){ - player.yellowMessage("Syntax: !hair [] "); - break; - } - - try { - if (sub.length == 2) { - player.setHair(Integer.parseInt(sub[1])); - player.equipChanged(); - - player.getMap().removePlayer(player); - player.getMap().addPlayer(player); - } else { - victim = c.getChannelServer().getPlayerStorage().getCharacterByName(sub[1]); - if(victim == null) { - player.yellowMessage("Player '" + sub[1] + "' has not been found on this channel."); - break; - } - victim.setHair(Integer.parseInt(sub[2])); - victim.equipChanged(); - - victim.getMap().removePlayer(victim); - victim.getMap().addPlayer(victim); - } - } catch(Exception e) {} - break; - default: return false; } diff --git a/src/constants/ServerConstants.java b/src/constants/ServerConstants.java index 1604b7d65a..b91159e8d9 100644 --- a/src/constants/ServerConstants.java +++ b/src/constants/ServerConstants.java @@ -34,9 +34,9 @@ public class ServerConstants { public static final boolean USE_CUSTOM_KEYSET = true; //Enables auto-setup of the MapleSolaxiaV2's custom keybindings when creating characters. public static final boolean USE_MAXRANGE_ECHO_OF_HERO = true; public static final boolean USE_MAXRANGE = true; //Will send and receive packets from all events of a map, rather than those of only view range. - public static final boolean USE_DEBUG = true; //Will enable some text prints on the client, oriented for debugging purposes. + public static final boolean USE_DEBUG = false; //Will enable some text prints on the client, oriented for debugging purposes. public static final boolean USE_DEBUG_SHOW_RCVD_PACKET = false; //Prints on the cmd all received packet ids. - public static final boolean USE_DEBUG_SHOW_INFO_EQPEXP = true; //Prints on the cmd all equip exp gain info. + public static final boolean USE_DEBUG_SHOW_INFO_EQPEXP = false; //Prints on the cmd all equip exp gain info. public static final boolean USE_MTS = false; public static final boolean USE_FAMILY_SYSTEM = false; public static final boolean USE_DUEY = true; @@ -44,12 +44,12 @@ public class ServerConstants { 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_AUTOBAN = false; //Commands the server to detect infractors automatically. - public static final boolean USE_ANOTHER_AUTOASSIGN = true; //Based on distributing AP accordingly with higher secondary stat on equipments. + public static final boolean USE_ANOTHER_AUTOASSIGN = true; //Based on distributing AP accordingly to required secondary stat on equipments. public static final boolean USE_REFRESH_RANK_MOVE = true; public static final boolean USE_PERFECT_PITCH = true; //For lvl 30 or above, each lvlup player gains 1 perfect pitch. public static final boolean USE_PERMISSIVE_BUFFS = false; //WARNING: Allows players that does not have increased certain buff-type skills to use it's effect. Used mainly on buff-cast commands, however making this active may generate a source for possible client-edited exploits. public static final boolean USE_ENFORCE_MDOOR_POSITION = true; //Forces mystic door to be spawned near spawnpoints. (since things bugs out other way, and this helps players locate the door faster) - public static final boolean USE_ERASE_UNTRADEABLE_DROP = true; //Forces flagged untradeable items to disappear when dropped. + public static final boolean USE_ERASE_UNTRADEABLE_DROP = true; //Forces flagged untradeable items to disappear when dropped. public static final int MAX_AP = 20000; //Max AP allotted on the auto-assigner. public static final int MAX_EVENT_LEVELS = 8; //Event has different levels of rewarding system. @@ -74,14 +74,14 @@ public class ServerConstants { public static final boolean USE_EQUIPMNT_LVLUP_SLOTS = true;//Equips can upgrade slots at level up. public static final boolean USE_EQUIPMNT_LVLUP_POWER = true;//Enable more powerful stats upgrades at equip level up. public static final boolean USE_SPIKES_AVOID_BANISH = true; //Shoes equipped with spikes blocks mobs from banishing wearer. - public static final boolean USE_CHAIR_EXTRAHEAL = true; //Enable map chairs to futher recover player`s HP and MP. + public static final boolean USE_CHAIR_EXTRAHEAL = true; //Enable map chairs to further recover player`s HP and MP. public static final int MAX_EQUIPMNT_LVLUP_STAT_GAIN = 10000; //Max stat upgrade an equipment can have on a levelup. public static final int MAX_EQUIPMNT_STAT = 32767; //Max stat on an equipment by leveling up. public static final int USE_EQUIPMNT_LVLUP = 7; //All equips lvlup at max level of N, set 1 to disable. - public static final byte CHAIR_EXTRA_HEAL_HP = 70; //Each extra heal proc increasing HP. - public static final byte CHAIR_EXTRA_HEAL_MP = 42; //Each extra heal proc increasing MP. + public static final byte CHAIR_EXTRA_HEAL_HP = 70; //Each chair extra heal proc increasing HP. + public static final byte CHAIR_EXTRA_HEAL_MP = 42; //Each chair extra heal proc increasing MP. public static final int FAME_GAIN_BY_QUEST = 4; //Fame gain each N quest completes, set 0 to disable. - public static final int SCROLL_CHANCE_RATE = 10; //Number of tries for success on a scroll, set 0 for default. + public static final int SCROLL_CHANCE_RATE = 10; //Number of rolls for success on a scroll, set 0 for default. //Pet Auto-Pot Recovery Rates public static final double PET_AUTOHP_RATIO = 0.99; //Will automatically consume potions until given ratio of the MaxHP/MaxMP is reached. diff --git a/src/net/server/Server.java b/src/net/server/Server.java index edded76abf..64c6769b3a 100644 --- a/src/net/server/Server.java +++ b/src/net/server/Server.java @@ -328,7 +328,7 @@ public class Server implements Runnable { System.out.println("Listening on port 8484\r\n\r\n"); - System.out.println("Solaxia is now online."); + System.out.println("Solaxia is now online.\r\n"); online = true; } diff --git a/src/net/server/channel/handlers/KeymapChangeHandler.java b/src/net/server/channel/handlers/KeymapChangeHandler.java index 6a36491e02..f7762d40df 100644 --- a/src/net/server/channel/handlers/KeymapChangeHandler.java +++ b/src/net/server/channel/handlers/KeymapChangeHandler.java @@ -44,22 +44,24 @@ public final class KeymapChangeHandler extends AbstractMaplePacketHandler { int type = slea.readByte(); int action = slea.readInt(); - Skill skill = SkillFactory.getSkill(action); - boolean isBanndedSkill; - if (skill != null) { - isBanndedSkill = GameConstants.bannedBindSkills(skill.getId()); - if (isBanndedSkill || (!c.getPlayer().isGM() && GameConstants.isGMSkills(skill.getId())) || (!GameConstants.isInJobTree(skill.getId(), c.getPlayer().getJob().getId()) && !c.getPlayer().isGM())) { //for those skills are are "technically" in the beginner tab, like bamboo rain in Dojo or skills you find in PYPQ - //AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit keymapping."); - //FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to use skill " + skill.getId() + "\r\n"); - //c.disconnect(true, false); - //return; - - continue; // fk that - } - /* if (c.getPlayer().getSkillLevel(skill) < 1) { HOW WOULD A SKILL EVEN BE AVAILABLE TO KEYBINDING - continue; IF THERE IS NOT EVEN A SINGLE POINT USED INTO IT?? - } */ //Nice to know some skills have the same ids as items, heh. - } + if(type == 1) { + Skill skill = SkillFactory.getSkill(action); + boolean isBanndedSkill; + if (skill != null) { + isBanndedSkill = GameConstants.bannedBindSkills(skill.getId()); + if (isBanndedSkill || (!c.getPlayer().isGM() && GameConstants.isGMSkills(skill.getId())) || (!GameConstants.isInJobTree(skill.getId(), c.getPlayer().getJob().getId()) && !c.getPlayer().isGM())) { //for those skills are are "technically" in the beginner tab, like bamboo rain in Dojo or skills you find in PYPQ + //AutobanFactory.PACKET_EDIT.alert(c.getPlayer(), c.getPlayer().getName() + " tried to packet edit keymapping."); + //FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to use skill " + skill.getId() + "\r\n"); + //c.disconnect(true, false); + //return; + + continue; // fk that + } + /* if (c.getPlayer().getSkillLevel(skill) < 1) { HOW WOULD A SKILL EVEN BE AVAILABLE TO KEYBINDING + continue; IF THERE IS NOT EVEN A SINGLE POINT USED INTO IT?? + } */ + } + } c.getPlayer().changeKeybinding(key, new MapleKeyBinding(type, action)); } diff --git a/src/net/server/channel/handlers/SpecialMoveHandler.java b/src/net/server/channel/handlers/SpecialMoveHandler.java index 74ef072d67..0c121c5717 100644 --- a/src/net/server/channel/handlers/SpecialMoveHandler.java +++ b/src/net/server/channel/handlers/SpecialMoveHandler.java @@ -45,6 +45,8 @@ import constants.skills.DarkKnight; import constants.skills.Hero; import constants.skills.Paladin; import constants.skills.Priest; +import constants.skills.Hermit; +import constants.skills.SuperGM; public final class SpecialMoveHandler extends AbstractMaplePacketHandler { @@ -111,6 +113,12 @@ public final class SpecialMoveHandler extends AbstractMaplePacketHandler { int gain = lose * (ef.getY() / 100); chr.setMp(chr.getMp() + gain); chr.updateSingleStat(MapleStat.MP, chr.getMp()); + } else if (skillid == Hermit.FLASH_JUMP) { + slea.skip(2); // always 0? Also 3rd party FJ effect doesn't seem to work, agh! + //chr.getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.showBuffeffect(chr.getId(), skillid, chr.getSkillLevel(skillid), (byte)0), false); + } else if (skillid == Priest.DISPEL || skillid == SuperGM.HEAL_PLUS_DISPEL) { + slea.skip((skillid == Priest.DISPEL) ? 10 : 11); + chr.getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.showBuffeffect(chr.getId(), skillid, chr.getSkillLevel(skillid)), false); } else if (skillid % 10000000 == 1004) { slea.readShort(); } diff --git a/src/server/MapleStatEffect.java b/src/server/MapleStatEffect.java index a68afe1db0..299bdd32a4 100644 --- a/src/server/MapleStatEffect.java +++ b/src/server/MapleStatEffect.java @@ -929,7 +929,7 @@ public class MapleStatEffect { for (MapleMapObject affectedmo : affecteds) { MapleCharacter affected = (MapleCharacter) affectedmo; if (affected != applyfrom && (isGmBuff() || applyfrom.getParty().equals(affected.getParty()))) { - if ((isResurrection() && !affected.isAlive()) || (!isResurrection() && affected.isAlive())) { + if ((!isResurrection() && affected.isAlive()) || (isResurrection() && !affected.isAlive())) { affectedp.add(affected); } } diff --git a/src/server/maps/MapleMap.java b/src/server/maps/MapleMap.java index e9bed0a50a..41e9a888bf 100644 --- a/src/server/maps/MapleMap.java +++ b/src/server/maps/MapleMap.java @@ -2956,6 +2956,14 @@ public class MapleMap { chr.changeMap(to); } } + + public void warpEveryone(int to, int pto) { + List players = new ArrayList<>(getCharacters()); + + for (MapleCharacter chr : players) { + chr.changeMap(to, pto); + } + } // BEGIN EVENTS public void setSnowball(int team, MapleSnowball ball) { diff --git a/src/server/quest/actions/SkillAction.java b/src/server/quest/actions/SkillAction.java index 1cf430fab8..2f29d96b0a 100644 --- a/src/server/quest/actions/SkillAction.java +++ b/src/server/quest/actions/SkillAction.java @@ -74,7 +74,9 @@ public class SkillAction extends MapleQuestAction { public void run(MapleCharacter chr, Integer extSelection) { for(SkillData skill : skillData.values()) { Skill skillObject = SkillFactory.getSkill(skill.getId()); - boolean shouldLearn = false; + if(skillObject == null) continue; + + boolean shouldLearn = false; if(skill.jobsContains(chr.getJob()) || skillObject.isBeginnerSkill()) shouldLearn = true; diff --git a/tools/MobBookIndexer/build.xml b/tools/MobBookIndexer/build.xml new file mode 100644 index 0000000000..38001ff39c --- /dev/null +++ b/tools/MobBookIndexer/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project MobBookIndexer. + + + diff --git a/tools/MobBookIndexer/build/built-jar.properties b/tools/MobBookIndexer/build/built-jar.properties new file mode 100644 index 0000000000..cbebcb3f2b --- /dev/null +++ b/tools/MobBookIndexer/build/built-jar.properties @@ -0,0 +1,4 @@ +#Fri, 18 Aug 2017 17:20:37 -0300 + + +C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2\\tools\\MobBookIndexer= diff --git a/tools/MobBookIndexer/build/classes/.netbeans_automatic_build b/tools/MobBookIndexer/build/classes/.netbeans_automatic_build new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/MobBookIndexer/build/classes/.netbeans_update_resources b/tools/MobBookIndexer/build/classes/.netbeans_update_resources new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/MobBookIndexer/build/classes/mobbookindexer/MobBookIndexer.class b/tools/MobBookIndexer/build/classes/mobbookindexer/MobBookIndexer.class new file mode 100644 index 0000000000..21b29d2422 Binary files /dev/null and b/tools/MobBookIndexer/build/classes/mobbookindexer/MobBookIndexer.class differ diff --git a/tools/MobBookIndexer/dist/MobBookIndexer.jar b/tools/MobBookIndexer/dist/MobBookIndexer.jar new file mode 100644 index 0000000000..a95b6eb49b Binary files /dev/null and b/tools/MobBookIndexer/dist/MobBookIndexer.jar differ diff --git a/tools/MobBookIndexer/dist/README.TXT b/tools/MobBookIndexer/dist/README.TXT new file mode 100644 index 0000000000..70c102bb76 --- /dev/null +++ b/tools/MobBookIndexer/dist/README.TXT @@ -0,0 +1,32 @@ +======================== +BUILD OUTPUT DESCRIPTION +======================== + +When you build an Java application project that has a main class, the IDE +automatically copies all of the JAR +files on the projects classpath to your projects dist/lib folder. The IDE +also adds each of the JAR files to the Class-Path element in the application +JAR files manifest file (MANIFEST.MF). + +To run the project from the command line, go to the dist folder and +type the following: + +java -jar "MobBookIndexer.jar" + +To distribute this project, zip up the dist folder (including the lib folder) +and distribute the ZIP file. + +Notes: + +* If two JAR files on the project classpath have the same name, only the first +JAR file is copied to the lib folder. +* Only JAR files are copied to the lib folder. +If the classpath contains other types of files or folders, these files (folders) +are not copied. +* If a library on the projects classpath also has a Class-Path element +specified in the manifest,the content of the Class-Path element has to be on +the projects runtime path. +* To set a main class in a standard Java project, right-click the project node +in the Projects window and choose Properties. Then click Run and enter the +class name in the Main Class field. Alternatively, you can manually type the +class name in the manifest Main-Class element. diff --git a/tools/MobBookIndexer/dist/lib/mysql-connector-java-bin.jar b/tools/MobBookIndexer/dist/lib/mysql-connector-java-bin.jar new file mode 100644 index 0000000000..0539039f71 Binary files /dev/null and b/tools/MobBookIndexer/dist/lib/mysql-connector-java-bin.jar differ diff --git a/tools/MobBookIndexer/lib/MonsterBook.img.xml b/tools/MobBookIndexer/lib/MonsterBook.img.xml new file mode 100644 index 0000000000..4275039b99 --- /dev/null +++ b/tools/MobBookIndexer/lib/MonsterBook.img.xml @@ -0,0 +1,14866 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/MobBookIndexer/lib/mysql-connector-java-bin.jar b/tools/MobBookIndexer/lib/mysql-connector-java-bin.jar new file mode 100644 index 0000000000..0539039f71 Binary files /dev/null and b/tools/MobBookIndexer/lib/mysql-connector-java-bin.jar differ diff --git a/tools/MobBookIndexer/manifest.mf b/tools/MobBookIndexer/manifest.mf new file mode 100644 index 0000000000..328e8e5bc3 --- /dev/null +++ b/tools/MobBookIndexer/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/tools/MobBookIndexer/nbproject/build-impl.xml b/tools/MobBookIndexer/nbproject/build-impl.xml new file mode 100644 index 0000000000..1eff4f1f6c --- /dev/null +++ b/tools/MobBookIndexer/nbproject/build-impl.xml @@ -0,0 +1,1413 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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: + + 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/MobBookIndexer/nbproject/genfiles.properties b/tools/MobBookIndexer/nbproject/genfiles.properties new file mode 100644 index 0000000000..caccd23ff6 --- /dev/null +++ b/tools/MobBookIndexer/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=b29cea41 +build.xml.script.CRC32=5a4536de +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=b29cea41 +nbproject/build-impl.xml.script.CRC32=44e6dbc7 +nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48 diff --git a/tools/MobBookIndexer/nbproject/private/config.properties b/tools/MobBookIndexer/nbproject/private/config.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/MobBookIndexer/nbproject/private/private.properties b/tools/MobBookIndexer/nbproject/private/private.properties new file mode 100644 index 0000000000..67c9c27960 --- /dev/null +++ b/tools/MobBookIndexer/nbproject/private/private.properties @@ -0,0 +1,6 @@ +compile.on.save=true +do.depend=false +do.jar=true +javac.debug=true +javadoc.preview=true +user.properties.file=C:\\Users\\RonanLana\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties diff --git a/tools/MobBookIndexer/nbproject/private/private.xml b/tools/MobBookIndexer/nbproject/private/private.xml new file mode 100644 index 0000000000..6807a2ba19 --- /dev/null +++ b/tools/MobBookIndexer/nbproject/private/private.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tools/MobBookIndexer/nbproject/project.properties b/tools/MobBookIndexer/nbproject/project.properties new file mode 100644 index 0000000000..1f8dd8dad8 --- /dev/null +++ b/tools/MobBookIndexer/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=MobBookIndexer +application.vendor=RonanLana +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} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/MobBookIndexer.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=mobbookindexer.MobBookIndexer +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +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/MobBookIndexer/nbproject/project.xml b/tools/MobBookIndexer/nbproject/project.xml new file mode 100644 index 0000000000..35dc1a71ed --- /dev/null +++ b/tools/MobBookIndexer/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2seproject + + + MobBookIndexer + + + + + + + + + diff --git a/tools/MobBookIndexer/src/mobbookindexer/MobBookIndexer.java b/tools/MobBookIndexer/src/mobbookindexer/MobBookIndexer.java new file mode 100644 index 0000000000..55452fcbb4 --- /dev/null +++ b/tools/MobBookIndexer/src/mobbookindexer/MobBookIndexer.java @@ -0,0 +1,208 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package mobbookindexer; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +import java.io.*; + + +/** + * @author RonanLana + * + * This application simply gets from the MonsterBook.img.xml all mobid's and + * puts the on a SQL table with the correspondent mob cardid. + * + */ +public class MobBookIndexer { + static String host = "jdbc:mysql://localhost:3306/maplesolaxia"; + static String driver = "com.mysql.jdbc.Driver"; + static String username = "root"; + static String password = ""; + + static String fileName = "lib/MonsterBook.img.xml"; + + static Connection con = null; + static InputStreamReader fileReader = null; + static BufferedReader bufferedReader = null; + static byte status = 0; + static int mobId = -1; + + private static String getName(String token) { + int i, j; + char[] dest; + String d; + + i = token.lastIndexOf("name"); + i = token.indexOf("\"", i) + 1; //lower bound of the string + j = token.indexOf("\"", i); //upper bound + + if(j - i < 7) dest = new char[6]; + else dest = new char[7]; + token.getChars(i, j, dest, 0); + + d = new String(dest); + return(d); + } + + private static void forwardCursor(int st) { + String line = null; + + try { + while(status >= st && (line = bufferedReader.readLine()) != null) { + simpleToken(line); + } + } + catch(Exception e) { + e.printStackTrace(); + } + } + + private static void simpleToken(String token) { + if(token.contains("/imgdir")) { + status -= 1; + } + else if(token.contains("imgdir")) { + status += 1; + } + } + + private static boolean isCard(int itemId) { + return itemId / 10000 == 238; + } + + private static void loadPairFromMob() { + System.out.println("Loading mob id " + mobId); + + try { + int itemId, rid = 1; + + PreparedStatement ps, ps2; + ResultSet rs; + + ps = con.prepareStatement("SELECT itemid FROM drop_data WHERE (dropperid = ? AND itemid > 0) GROUP BY itemid;"); + ps.setInt(1, mobId); + rs = ps.executeQuery(); + + while(rs.next()) { + itemId = rs.getInt("itemid"); + if(isCard(itemId)) { + ps2 = con.prepareStatement("INSERT INTO `monstercardwz` (`cardid`, `mobid`) VALUES (?, ?)", rid); + rid++; + ps2.setInt(1, itemId); + ps2.setInt(2, mobId); + + ps2.executeUpdate(); + } + } + + rs.close(); + ps.close(); + } + catch(SQLException e) { + e.printStackTrace(); + } + } + + private static void translateToken(String token) { + String d; + int temp; + + if(token.contains("/imgdir")) { + status -= 1; + } + else if(token.contains("imgdir")) { + if(status == 1) { //getting MobId + d = getName(token); + mobId = Integer.parseInt(d); + } + else if(status == 2) { + d = getName(token); + + if(d.contains("reward")) { + temp = status; + + loadPairFromMob(); + forwardCursor(temp); + } + } + + status += 1; + } + + } + + private static void IndexFromDropData() { + // This will reference one line at a time + String line = null; + + try { + Class.forName(driver).newInstance(); + con = DriverManager.getConnection(host, username, password); + + fileReader = new InputStreamReader(new FileInputStream(fileName), "UTF-8"); + bufferedReader = new BufferedReader(fileReader); + + PreparedStatement ps = con.prepareStatement("DROP TABLE IF EXISTS monstercardwz;"); + ps.execute(); + + ps = con.prepareStatement("CREATE TABLE `monstercardwz` (" + + "`id` int(10) unsigned NOT NULL AUTO_INCREMENT," + + "`cardid` int(10) NOT NULL DEFAULT '-1'," + + "`mobid` int(10) NOT NULL DEFAULT '-1'," + + "PRIMARY KEY (`id`)" + + ") ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;"); + ps.execute(); + + while((line = bufferedReader.readLine()) != null) { + translateToken(line); + } + + bufferedReader.close(); + fileReader.close(); + + con.close(); + } + + catch(FileNotFoundException ex) { + System.out.println("Unable to open file '" + fileName + "'"); + } + catch(IOException ex) { + System.out.println("Error reading file '" + fileName + "'"); + } + + catch(SQLException e) { + System.out.println("Warning: Could not establish connection to database to change card chance rate."); + System.out.println(e.getMessage()); + } + + catch(ClassNotFoundException e) { + System.out.println("Error: could not find class"); + System.out.println(e.getMessage()); + } + + catch(InstantiationException e) { + System.out.println("Error: instantiation failure"); + System.out.println(e.getMessage()); + } + + catch(Exception e) { + e.printStackTrace(); + } + } + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + IndexFromDropData(); + } + +} diff --git a/tools/MobBookUpdate/build/built-jar.properties b/tools/MobBookUpdate/build/built-jar.properties index e01249438c..02a051abac 100644 --- a/tools/MobBookUpdate/build/built-jar.properties +++ b/tools/MobBookUpdate/build/built-jar.properties @@ -1,4 +1,4 @@ -#Thu, 03 Aug 2017 21:56:53 -0300 +#Fri, 18 Aug 2017 18:00:41 -0300 C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2\\tools\\MobBookUpdate= diff --git a/tools/MobBookUpdate/dist/MobBookUpdate.jar b/tools/MobBookUpdate/dist/MobBookUpdate.jar index a0feeb293f..5fa2280b66 100644 Binary files a/tools/MobBookUpdate/dist/MobBookUpdate.jar and b/tools/MobBookUpdate/dist/MobBookUpdate.jar differ diff --git a/tools/MobBookUpdate/lib/MonsterBook.img.xml b/tools/MobBookUpdate/lib/MonsterBook.img.xml index 60a79cafaa..4275039b99 100644 --- a/tools/MobBookUpdate/lib/MonsterBook.img.xml +++ b/tools/MobBookUpdate/lib/MonsterBook.img.xml @@ -16,16 +16,22 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -52,19 +58,25 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -84,36 +96,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -136,27 +164,35 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -169,22 +205,28 @@ - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -201,28 +243,35 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -235,31 +284,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -275,19 +334,21 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -310,24 +371,32 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -344,25 +413,31 @@ - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -388,22 +463,29 @@ - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + @@ -417,31 +499,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -465,21 +554,29 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -510,23 +607,30 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + + + + + + + + @@ -536,27 +640,29 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -566,26 +672,27 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -595,29 +702,30 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -628,28 +736,30 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + @@ -659,28 +769,32 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -690,30 +804,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -724,27 +839,28 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -754,25 +870,27 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -782,30 +900,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -833,24 +951,35 @@ - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -878,33 +1007,47 @@ - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -916,26 +1059,27 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + + @@ -946,28 +1090,29 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + + @@ -993,32 +1138,35 @@ - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1038,24 +1186,27 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + + + + @@ -1064,64 +1215,64 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1137,35 +1288,41 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -1183,35 +1340,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1235,37 +1399,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1280,37 +1453,56 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1327,30 +1519,38 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -1360,29 +1560,32 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1393,29 +1596,33 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1425,29 +1632,36 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1457,28 +1671,33 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1488,27 +1707,30 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -1518,29 +1740,39 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1551,32 +1783,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1586,28 +1823,31 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1618,27 +1858,32 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - + + + + + + + + + @@ -1651,31 +1896,35 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + @@ -1687,30 +1936,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1722,16 +1975,17 @@ - - - - - - - - - - + + + + + + + + + + + @@ -1748,26 +2002,32 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + @@ -1777,30 +2037,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1811,27 +2075,28 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -1842,25 +2107,26 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + + @@ -1872,29 +2138,40 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1912,32 +2189,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1951,33 +2232,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1987,31 +2275,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2021,26 +2314,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -2053,32 +2346,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2088,40 +2384,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2133,35 +2436,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2171,34 +2481,51 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2208,32 +2535,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2243,36 +2576,40 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -2289,33 +2626,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2327,33 +2668,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2371,34 +2714,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2412,36 +2762,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2450,36 +2802,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2490,33 +2846,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2527,33 +2890,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2570,39 +2940,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2611,60 +2986,67 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2673,33 +3055,37 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -2710,34 +3096,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + @@ -2749,28 +3146,36 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2783,37 +3188,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + @@ -2823,35 +3240,39 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -2861,34 +3282,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2900,38 +3327,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2946,15 +3381,15 @@ - - - - - - - - - + + + + + + + + + @@ -2970,31 +3405,37 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -3005,40 +3446,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3050,37 +3493,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3093,34 +3543,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3130,34 +3585,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3168,34 +3638,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3206,38 +3680,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3256,36 +3734,54 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3295,34 +3791,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3332,34 +3832,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3368,22 +3874,28 @@ - - - - - - - + + + + + + + - - - - + + + + - - + + + + + + + + @@ -3393,21 +3905,23 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -3416,34 +3930,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3453,32 +3972,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3487,33 +4014,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3522,36 +4052,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3560,44 +4097,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3613,36 +4156,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3658,35 +4207,50 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3698,32 +4262,42 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + @@ -3733,29 +4307,36 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - + + + + + + + + + @@ -3766,31 +4347,37 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + @@ -3799,31 +4386,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3836,39 +4428,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3882,33 +4482,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3920,34 +4525,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3961,33 +4569,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3998,41 +4613,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + @@ -4047,34 +4666,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4086,33 +4711,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4122,33 +4751,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4158,33 +4796,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4194,39 +4842,54 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4238,33 +4901,43 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -4275,33 +4948,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4312,35 +4991,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4353,35 +5041,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4397,35 +5096,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4439,35 +5144,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4477,29 +5188,37 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4509,34 +5228,44 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4547,33 +5276,34 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + @@ -4584,36 +5314,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4623,35 +5356,42 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -4662,35 +5402,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4701,32 +5445,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4735,28 +5487,30 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -4766,30 +5520,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4800,26 +5556,29 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -4830,28 +5589,36 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4861,26 +5628,28 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - + + + + + + @@ -4890,26 +5659,27 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - + + + + + + @@ -4919,24 +5689,29 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -4948,30 +5723,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4981,32 +5760,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5018,37 +5801,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5059,20 +5850,23 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -5083,18 +5877,19 @@ - - - - - - - - - - - - + + + + + + + + + + + + + @@ -5104,7 +5899,8 @@ - + + @@ -5113,7 +5909,8 @@ - + + @@ -5126,34 +5923,42 @@ - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -5164,32 +5969,37 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -5203,30 +6013,35 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -5237,32 +6052,38 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -5275,30 +6096,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5307,25 +6132,25 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + @@ -5339,28 +6164,31 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -5370,27 +6198,38 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5400,38 +6239,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5441,36 +6286,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5480,35 +6331,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + @@ -5518,38 +6374,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5558,34 +6425,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5596,33 +6467,41 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + @@ -5634,25 +6513,26 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -5662,28 +6542,35 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5694,28 +6581,33 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5726,28 +6618,31 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5759,31 +6654,33 @@ - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + + + @@ -5794,32 +6691,42 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + @@ -5831,38 +6738,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + @@ -5876,34 +6794,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5915,39 +6842,45 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -5957,32 +6890,37 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + @@ -5997,38 +6935,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6039,37 +6985,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6081,37 +7030,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6123,38 +7080,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6172,44 +7134,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6219,34 +7187,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6259,33 +7234,38 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + @@ -6300,25 +7280,32 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6330,25 +7317,29 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -6360,27 +7351,29 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -6389,56 +7382,59 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6448,54 +7444,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6506,58 +7508,69 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6566,55 +7579,56 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6624,20 +7638,25 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -6648,20 +7667,22 @@ - - - - - - - - - - - + + + + + + + + + + + - - + + + + @@ -6670,20 +7691,25 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -6695,33 +7721,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6733,29 +7766,33 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6765,34 +7802,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6803,36 +7848,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6844,7 +7897,8 @@ - + + @@ -6855,7 +7909,8 @@ - + + @@ -6864,7 +7919,8 @@ - + + @@ -6875,7 +7931,8 @@ - + + @@ -6884,36 +7941,47 @@ - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6924,31 +7992,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6958,41 +8033,54 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - + + + + + + + + + + + + + + + + + @@ -7001,32 +8089,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7035,34 +8129,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7071,40 +8169,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7114,30 +8221,33 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7148,30 +8258,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7182,35 +8297,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7221,27 +8342,31 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + @@ -7253,30 +8378,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7287,27 +8417,37 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + @@ -7317,52 +8457,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7371,35 +8517,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7409,44 +8563,56 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + @@ -7455,36 +8621,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7493,37 +8662,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7532,44 +8714,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7578,11 +8778,16 @@ - - - - - + + + + + + + + + + @@ -7591,35 +8796,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7630,40 +8843,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7673,37 +8894,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + @@ -7716,39 +8949,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + @@ -7759,32 +9000,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7793,32 +9044,40 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + @@ -7828,39 +9087,47 @@ - - - - - - - - - - + + + + + + + + + + - - - + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -7871,36 +9138,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7909,42 +9182,50 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7953,7 +9234,8 @@ - + + @@ -7962,42 +9244,45 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8007,41 +9292,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + @@ -8052,43 +9346,47 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8099,38 +9397,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8140,30 +9442,33 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8173,29 +9478,33 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8205,26 +9514,29 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -8233,48 +9545,54 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8285,38 +9603,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8328,37 +9652,47 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8368,37 +9702,45 @@ - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + @@ -8408,66 +9750,68 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -8477,36 +9821,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8517,31 +9866,39 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -8551,41 +9908,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8594,39 +9959,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8635,28 +10008,31 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8665,31 +10041,35 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + @@ -8698,32 +10078,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8734,33 +10120,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8771,32 +10161,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8806,26 +10199,28 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - + + + + + + + @@ -8835,28 +10230,32 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8865,37 +10264,46 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -8904,45 +10312,55 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8951,60 +10369,69 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + @@ -9013,64 +10440,70 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + @@ -9080,54 +10513,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9136,7 +10573,8 @@ - + + @@ -9145,30 +10583,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9177,46 +10620,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9227,40 +10676,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9271,34 +10726,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9308,36 +10767,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9346,64 +10807,64 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9416,32 +10877,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9454,37 +10920,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9497,36 +10969,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9537,29 +11014,35 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9569,35 +11052,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9606,42 +11094,50 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9650,44 +11146,48 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9697,39 +11197,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9738,39 +11245,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9780,33 +11294,37 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -9817,29 +11335,32 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9848,32 +11369,36 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + @@ -9882,30 +11407,35 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + @@ -9914,44 +11444,54 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9960,38 +11500,48 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10001,41 +11551,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10044,39 +11599,45 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -10085,39 +11646,47 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10126,39 +11695,51 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10169,39 +11750,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10210,36 +11797,47 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -10248,39 +11846,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10294,32 +11903,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10332,46 +11950,55 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10384,32 +12011,47 @@ - - - - - - - - - - + + + + + + + + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10422,31 +12064,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10459,39 +12112,53 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10500,41 +12167,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10543,43 +12220,53 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10588,64 +12275,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + @@ -10654,64 +12352,81 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10722,41 +12437,47 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -10767,40 +12488,44 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -10811,44 +12536,53 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -10860,43 +12594,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10918,24 +12661,28 @@ - - + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -10944,27 +12691,35 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10973,30 +12728,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11006,29 +12765,38 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -11038,30 +12806,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11070,26 +12845,31 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11098,27 +12878,33 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11128,27 +12914,32 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11158,26 +12949,30 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -11186,26 +12981,30 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -11214,25 +13013,28 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -11242,26 +13044,32 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11271,26 +13079,33 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11299,61 +13114,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11362,59 +13177,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11423,48 +13241,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11473,40 +13291,49 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11515,33 +13342,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11550,30 +13389,40 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + @@ -11582,33 +13431,44 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + @@ -11617,17 +13477,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -11638,6 +13498,7 @@ + @@ -11646,37 +13507,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11685,65 +13547,98 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11752,57 +13647,71 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11811,58 +13720,92 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11871,78 +13814,87 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + @@ -12077,7 +14029,38 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12119,7 +14102,8 @@ - + + @@ -12879,4 +14863,4 @@ - \ No newline at end of file + diff --git a/tools/MobBookUpdate/lib/MonsterBook_updated.img.xml b/tools/MobBookUpdate/lib/MonsterBook_updated.img.xml index f6a625f006..173d4e6180 100644 --- a/tools/MobBookUpdate/lib/MonsterBook_updated.img.xml +++ b/tools/MobBookUpdate/lib/MonsterBook_updated.img.xml @@ -13654,8 +13654,107 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13664,6 +13763,8 @@ + + @@ -13672,7 +13773,8 @@ - + + @@ -13681,7 +13783,8 @@ - + + @@ -13690,7 +13793,8 @@ - + + @@ -13705,18 +13809,22 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -13731,18 +13839,19 @@ - - - - - - - - - - - - + + + + + + + + + + + + + @@ -13751,27 +13860,28 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -13789,8 +13899,38 @@ + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13798,23 +13938,27 @@ - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + @@ -13823,8 +13967,62 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13832,7 +14030,9 @@ - + + + @@ -13840,80 +14040,81 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13922,20 +14123,21 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -13944,23 +14146,25 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -13969,23 +14173,24 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -13994,19 +14199,21 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -14015,16 +14222,17 @@ - - - - - - - - - - + + + + + + + + + + + @@ -14033,36 +14241,40 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -14071,31 +14283,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14107,37 +14323,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14148,29 +14367,29 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -14183,35 +14402,35 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -14221,29 +14440,29 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -14256,31 +14475,31 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -14291,36 +14510,36 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + @@ -14329,45 +14548,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + @@ -14376,72 +14597,76 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + + + + + @@ -14450,80 +14675,86 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14532,63 +14763,69 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wz/Mob.wz/4130103.img.xml b/wz/Mob.wz/4130103.img.xml index 9eae03d336..d34ac51391 100644 --- a/wz/Mob.wz/4130103.img.xml +++ b/wz/Mob.wz/4130103.img.xml @@ -19,6 +19,9 @@ + + + diff --git a/wz/String.wz/MonsterBook.img.xml b/wz/String.wz/MonsterBook.img.xml index f6a625f006..173d4e6180 100644 --- a/wz/String.wz/MonsterBook.img.xml +++ b/wz/String.wz/MonsterBook.img.xml @@ -13654,8 +13654,107 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13664,6 +13763,8 @@ + + @@ -13672,7 +13773,8 @@ - + + @@ -13681,7 +13783,8 @@ - + + @@ -13690,7 +13793,8 @@ - + + @@ -13705,18 +13809,22 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -13731,18 +13839,19 @@ - - - - - - - - - - - - + + + + + + + + + + + + + @@ -13751,27 +13860,28 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -13789,8 +13899,38 @@ + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13798,23 +13938,27 @@ - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + @@ -13823,8 +13967,62 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13832,7 +14030,9 @@ - + + + @@ -13840,80 +14040,81 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13922,20 +14123,21 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -13944,23 +14146,25 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -13969,23 +14173,24 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -13994,19 +14199,21 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -14015,16 +14222,17 @@ - - - - - - - - - - + + + + + + + + + + + @@ -14033,36 +14241,40 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -14071,31 +14283,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14107,37 +14323,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14148,29 +14367,29 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -14183,35 +14402,35 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -14221,29 +14440,29 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -14256,31 +14475,31 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -14291,36 +14510,36 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + @@ -14329,45 +14548,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + @@ -14376,72 +14597,76 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + + + + + @@ -14450,80 +14675,86 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14532,63 +14763,69 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wz/UI.wz/UIWindow.img.xml b/wz/UI.wz/UIWindow.img.xml index 66abd4f8eb..476ef69dfc 100644 --- a/wz/UI.wz/UIWindow.img.xml +++ b/wz/UI.wz/UIWindow.img.xml @@ -10150,7 +10150,7 @@ - + @@ -10178,6 +10178,10 @@ + + + +