From 8e6f33bc41869ae7d4ec27dc2be5beb63863fdbb Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 10 Oct 2019 09:57:48 +0000 Subject: [PATCH] Sync with L2jOrg and various adjustments. --- .../DimensionalMerchant.java | 2 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../DimensionalMerchant.java | 2 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../dist/game/data/stats/npcs/23700-23799.xml | 4 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../DimensionalMerchant.java | 2 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../dist/game/data/stats/npcs/23700-23799.xml | 4 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../DimensionalMerchant.java | 2 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../dist/game/data/stats/npcs/23700-23799.xml | 4 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../DimensionalMerchant.java | 2 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../dist/game/data/stats/npcs/23700-23799.xml | 4 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../DimensionalMerchant.java | 2 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../dist/game/data/stats/npcs/23700-23799.xml | 4 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../DimensionalMerchant.java | 2 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../ai/others/DimensionalMerchant/32478.html | 4 +- .../DimensionalMerchant.java | 64 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../dist/game/data/stats/npcs/13500-13599.xml | 18 +- .../dist/game/data/stats/npcs/13600-13699.xml | 6 +- .../dist/game/data/stats/npcs/15200-15299.xml | 16 +- .../dist/game/data/stats/npcs/19700-19799.xml | 10 +- .../dist/game/data/stats/npcs/24300-24399.xml | 140 +- .../dist/game/data/stats/npcs/24400-24499.xml | 144 +- .../dist/game/data/stats/npcs/26400-26499.xml | 22 +- .../dist/game/data/stats/npcs/29300-29399.xml | 2 +- .../dist/game/data/stats/npcs/34400-34499.xml | 10 +- .../dist/game/data/stats/npcs/34500-34599.xml | 82 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/enums/HtmlActionScope.java | 3 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 62 +- .../gameserver/model/base/ClassId.java | 76 +- .../gameserver/network/ExIncomingPackets.java | 15 +- .../gameserver/network/OutgoingPackets.java | 8 +- .../clientpackets/ExAutoPlaySetting.java | 70 + .../clientpackets/ExOpenDimensionalHtml.java | 52 + .../network/clientpackets/ExPvpBookList.java | 39 + .../clientpackets/ranking/ExRankCharInfo.java | 40 + .../ranking/ExRankingCharRankers.java | 47 + .../sessionzones/ExTimedHuntingZoneList.java | 44 + .../serverpackets/ExAutoPlayDoMacro.java | 40 + .../serverpackets/ExAutoPlaySettingSend.java | 59 + .../ExPremiumManagerShowHtml.java | 49 + .../network/serverpackets/PvpBookList.java | 52 + .../serverpackets/ranking/ExRankList.java | 99 + .../ranking/ExRankingCharInfo.java | 44 + .../timedhunting/TimedHuntingZoneList.java | 111 + .../datatables/sql/HennaTreeTable.java | 2 +- .../gameserver/datatables/sql/NpcTable.java | 9 +- .../datatables/sql/SkillTreeTable.java | 4 +- .../actor/instance/CustomNpcInstance.java | 2 +- .../model/actor/instance/FolkInstance.java | 4 +- .../model/actor/instance/PlayerInstance.java | 4 +- .../actor/instance/VillageMasterInstance.java | 2 +- .../model/actor/templates/PlayerTemplate.java | 2 +- .../gameserver/model/base/ClassId.java | 59 +- .../dist/game/data/stats/chars/classList.xml | 7 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../actor/instance/VillageMasterInstance.java | 4 +- .../gameserver/model/base/ClassId.java | 66 +- .../Q00255_Tutorial/Q00255_Tutorial.java | 6 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../Q00255_Tutorial/Q00255_Tutorial.java | 6 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../Q00255_Tutorial/Q00255_Tutorial.java | 6 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/model/WorldRegion.java | 11 + .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../dist/game/data/ElementalSpiritData.xml | 397 +- .../Q00255_Tutorial/Q00255_Tutorial.java | 6 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../game/data/xsd/ElementalSpiritData.xsd | 2 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/enums/ElementalType.java | 17 +- .../gameserver/model/WorldRegion.java | 11 + .../gameserver/model/actor/Attackable.java | 2 +- .../gameserver/model/actor/Creature.java | 2 +- .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../gameserver/model/stats/Formulas.java | 51 +- .../dist/game/data/ElementalSpiritData.xml | 397 +- .../Q00255_Tutorial/Q00255_Tutorial.java | 6 +- .../dist/game/data/stats/chars/classList.xml | 13 +- .../game/data/stats/items/91000-91099.xml | 4 + .../game/data/xsd/ElementalSpiritData.xsd | 2 +- .../data/xml/impl/SkillTreesData.java | 4 +- .../gameserver/enums/ElementalType.java | 17 +- .../gameserver/model/WorldRegion.java | 11 + .../gameserver/model/actor/Attackable.java | 2 +- .../gameserver/model/actor/Creature.java | 2 +- .../model/actor/instance/PlayerInstance.java | 2 +- .../gameserver/model/base/ClassId.java | 76 +- .../gameserver/model/stats/Formulas.java | 51 +- .../dist/game/data/CategoryData.xml | 5206 +---------------- .../dist/game/data/ElementalSpiritData.xml | 397 +- .../dist/game/data/html/common/runes_01.htm | 6 +- .../dist/game/data/html/teleporter/34112.htm | 5 + .../dist/game/data/html/warehouse/32478.htm | 6 - .../dist/game/data/mapregion/kamael_town.xml | 2 +- .../dist/game/data/mapregion/miscs.xml | 4 +- .../dist/game/data/multisell/3247801.xml | 2 +- .../ai/others/ClassMaster/ClassMaster.java | 89 +- .../ai/others/DimensionalMerchant/32478.html | 6 + .../DimensionalMerchant.java | 121 + .../data/scripts/ai/others/FleeMonsters.java | 1 - .../admincommandhandlers/AdminEditChar.java | 12 - .../quests/Q00255_Tutorial/34108-1.html | 5 + .../quests/Q00255_Tutorial/34108-2.html | 6 + .../quests/Q00255_Tutorial/34108-3.html | 6 + .../quests/Q00255_Tutorial/34108-4.html | 5 + .../quests/Q00255_Tutorial/34108-5.html | 4 + .../quests/Q00255_Tutorial/34109-1.html | 7 + .../quests/Q00255_Tutorial/34109-2.html | 8 + .../quests/Q00255_Tutorial/34109-3.html | 6 + .../quests/Q00255_Tutorial/34109-4.html | 7 + .../Q00255_Tutorial/Q00255_Tutorial.java | 88 +- .../data/skillTrees/1stClass/Assassin.xml | 294 +- .../game/data/skillTrees/1stClass/Cleric.xml | 296 +- .../data/skillTrees/1stClass/DarkWizard.xml | 281 +- .../data/skillTrees/1stClass/ElvenOracle.xml | 304 +- .../data/skillTrees/1stClass/HumanKnight.xml | 226 +- .../data/skillTrees/1stClass/HumanWizard.xml | 284 +- .../data/skillTrees/1stClass/OrcShaman.xml | 274 +- .../data/skillTrees/1stClass/PalusKnight.xml | 224 +- .../skillTrees/1stClass/ShillienOracle.xml | 304 +- .../data/skillTrees/1stClass/SoulFinder.xml | 26 + .../game/data/skillTrees/1stClass/Trooper.xml | 29 + .../game/data/skillTrees/1stClass/Warden.xml | 27 + .../data/skillTrees/2ndClass/AbyssWalker.xml | 854 +-- .../data/skillTrees/2ndClass/Arbalester.xml | 80 + .../data/skillTrees/2ndClass/Berserker.xml | 97 + .../game/data/skillTrees/2ndClass/Bishop.xml | 940 +-- .../data/skillTrees/2ndClass/BladeDancer.xml | 672 +-- .../data/skillTrees/2ndClass/BountyHunter.xml | 669 +-- .../data/skillTrees/2ndClass/DarkAvenger.xml | 847 +-- .../data/skillTrees/2ndClass/Destroyer.xml | 844 +-- .../skillTrees/2ndClass/ElementalSummoner.xml | 738 +-- .../data/skillTrees/2ndClass/Gladiator.xml | 1055 ++-- .../data/skillTrees/2ndClass/Necromancer.xml | 968 +-- .../data/skillTrees/2ndClass/Overlord.xml | 1096 ++-- .../game/data/skillTrees/2ndClass/Paladin.xml | 875 +-- .../skillTrees/2ndClass/PhantomRanger.xml | 782 +-- .../data/skillTrees/2ndClass/PlainsWalker.xml | 764 +-- .../game/data/skillTrees/2ndClass/Prophet.xml | 724 +-- .../skillTrees/2ndClass/ShillienElder.xml | 776 +-- .../skillTrees/2ndClass/ShillienKnight.xml | 963 +-- .../data/skillTrees/2ndClass/Sorcerer.xml | 763 ++- .../data/skillTrees/2ndClass/SoulBreaker.xml | 122 + .../data/skillTrees/2ndClass/Swordsinger.xml | 582 +- .../data/skillTrees/2ndClass/TempleKnight.xml | 873 +-- .../skillTrees/2ndClass/TreasureHunter.xml | 612 +- .../game/data/skillTrees/2ndClass/Tyrant.xml | 755 +-- .../data/skillTrees/2ndClass/Warcryer.xml | 834 +-- .../game/data/skillTrees/2ndClass/Warlord.xml | 665 +-- .../data/skillTrees/2ndClass/Warsmith.xml | 681 +-- .../data/skillTrees/3rdClass/Adventurer.xml | 198 +- .../data/skillTrees/3rdClass/ArcanaLord.xml | 260 +- .../data/skillTrees/3rdClass/Archmage.xml | 286 +- .../data/skillTrees/3rdClass/Cardinal.xml | 256 +- .../data/skillTrees/3rdClass/Dominator.xml | 360 +- .../data/skillTrees/3rdClass/DoomBringer.xml | 107 + .../data/skillTrees/3rdClass/Doomcryer.xml | 244 +- .../data/skillTrees/3rdClass/Dreadnought.xml | 179 +- .../game/data/skillTrees/3rdClass/Duelist.xml | 240 +- .../skillTrees/3rdClass/ElementalMaster.xml | 262 +- .../data/skillTrees/3rdClass/EvaSaint.xml | 226 +- .../data/skillTrees/3rdClass/EvaTemplar.xml | 310 +- .../skillTrees/3rdClass/FortuneSeeker.xml | 244 +- .../data/skillTrees/3rdClass/GhostHunter.xml | 222 +- .../skillTrees/3rdClass/GhostSentinel.xml | 192 +- .../skillTrees/3rdClass/GrandKhavatari.xml | 216 +- .../data/skillTrees/3rdClass/HellKnight.xml | 306 +- .../data/skillTrees/3rdClass/Hierophant.xml | 226 +- .../game/data/skillTrees/3rdClass/Maestro.xml | 222 +- .../skillTrees/3rdClass/MoonlightSentinel.xml | 188 +- .../data/skillTrees/3rdClass/MysticMuse.xml | 306 +- .../skillTrees/3rdClass/PhoenixKnight.xml | 302 +- .../data/skillTrees/3rdClass/Sagittarius.xml | 184 +- .../skillTrees/3rdClass/ShillienSaint.xml | 256 +- .../skillTrees/3rdClass/ShillienTemplar.xml | 302 +- .../data/skillTrees/3rdClass/SoulHound.xml | 128 + .../data/skillTrees/3rdClass/Soultaker.xml | 336 +- .../skillTrees/3rdClass/SpectralDancer.xml | 184 +- .../skillTrees/3rdClass/SpectralMaster.xml | 260 +- .../skillTrees/3rdClass/StormScreamer.xml | 290 +- .../data/skillTrees/3rdClass/Swordmuse.xml | 168 +- .../game/data/skillTrees/3rdClass/Titan.xml | 276 +- .../data/skillTrees/3rdClass/Trickster.xml | 95 + .../data/skillTrees/3rdClass/WindRider.xml | 206 +- .../skillTrees/StartingClass/DarkFighter.xml | 125 +- .../skillTrees/StartingClass/DarkMystic.xml | 123 +- .../StartingClass/DwarvenFighter.xml | 58 +- .../skillTrees/StartingClass/ElvenFighter.xml | 121 +- .../skillTrees/StartingClass/ElvenMystic.xml | 117 +- .../skillTrees/StartingClass/HumanFighter.xml | 113 +- .../skillTrees/StartingClass/HumanMystic.xml | 121 +- .../StartingClass/KamaelSoldier.xml | 28 +- .../skillTrees/StartingClass/OrcFighter.xml | 99 +- .../skillTrees/StartingClass/OrcMystic.xml | 98 +- .../game/data/spawns/Kamael/CaveOfSouls.xml | 27 + .../game/data/spawns/Kamael/GoldenHills.xml | 329 ++ .../game/data/spawns/Kamael/HillOfHope.xml | 283 + .../game/data/spawns/Kamael/KamaelVillage.xml | 14 + .../data/stats/chars/baseStats/Arbalester.xml | 928 +++ .../data/stats/chars/baseStats/Berserker.xml | 928 +++ .../stats/chars/baseStats/Doombringer.xml | 928 +++ .../stats/chars/baseStats/SoulBreaker.xml | 928 +++ .../data/stats/chars/baseStats/SoulFinder.xml | 928 +++ .../data/stats/chars/baseStats/SoulHound.xml | 928 +++ .../data/stats/chars/baseStats/Trickster.xml | 928 +++ .../data/stats/chars/baseStats/Trooper.xml | 928 +++ .../data/stats/chars/baseStats/Warden.xml | 928 +++ .../dist/game/data/stats/chars/classList.xml | 90 +- .../dist/game/data/stats/initialEquipment.xml | 65 +- .../game/data/stats/initialEquipmentEvent.xml | 95 +- .../dist/game/data/stats/initialShortcuts.xml | 7 + .../game/data/stats/items/91000-91099.xml | 4 + .../game/data/stats/items/91100-91199.xml | 2 + .../game/data/stats/items/91800-91899.xml | 32 +- .../game/data/stats/items/91900-91999.xml | 6 +- .../dist/game/data/stats/npcs/08500-08599.xml | 2 +- .../dist/game/data/stats/npcs/09000-09099.xml | 26 +- .../dist/game/data/stats/npcs/13500-13599.xml | 18 +- .../dist/game/data/stats/npcs/13600-13699.xml | 44 +- .../dist/game/data/stats/npcs/15900-15999.xml | 16 +- .../dist/game/data/stats/npcs/18300-18399.xml | 84 +- .../dist/game/data/stats/npcs/20000-20099.xml | 2 +- .../dist/game/data/stats/npcs/21900-21999.xml | 488 +- .../dist/game/data/stats/npcs/22000-22099.xml | 128 +- .../dist/game/data/stats/npcs/25900-25999.xml | 38 +- .../dist/game/data/stats/npcs/29000-29099.xml | 304 +- .../dist/game/data/stats/npcs/29100-29199.xml | 532 +- .../dist/game/data/stats/npcs/32000-32099.xml | 2 +- .../dist/game/data/stats/npcs/34000-34099.xml | 742 +-- .../dist/game/data/stats/npcs/34100-34199.xml | 36 +- .../dist/game/data/stats/npcs/36700-36799.xml | 38 +- .../game/data/stats/skills/00000-00099.xml | 2 +- .../game/data/stats/skills/00100-00199.xml | 35 +- .../game/data/stats/skills/00200-00299.xml | 7 +- .../game/data/stats/skills/00300-00399.xml | 120 +- .../game/data/stats/skills/00400-00499.xml | 205 +- .../game/data/stats/skills/00500-00599.xml | 51 +- .../game/data/stats/skills/00600-00699.xml | 191 +- .../game/data/stats/skills/00700-00799.xml | 122 +- .../game/data/stats/skills/00900-00999.xml | 24 +- .../game/data/stats/skills/01000-01099.xml | 94 +- .../game/data/stats/skills/01200-01299.xml | 38 +- .../game/data/stats/skills/01300-01399.xml | 28 +- .../game/data/stats/skills/01400-01499.xml | 121 +- .../game/data/stats/skills/01500-01599.xml | 23 +- .../game/data/stats/skills/01600-01699.xml | 121 +- .../game/data/stats/skills/01800-01899.xml | 362 +- .../game/data/stats/skills/04100-04199.xml | 2 +- .../game/data/stats/skills/04300-04399.xml | 2 +- .../game/data/stats/skills/04600-04699.xml | 20 +- .../game/data/stats/skills/05300-05399.xml | 4 +- .../game/data/stats/skills/15400-15499.xml | 30 +- .../game/data/stats/skills/50000-50099.xml | 81 +- .../game/data/stats/skills/50100-50199.xml | 29 + .../game/data/stats/skills/50900-50999.xml | 78 + .../game/data/stats/skills/54100-54199.xml | 56 +- .../game/data/stats/skills/55800-55899.xml | 8 +- .../game/data/xsd/ElementalSpiritData.xsd | 2 +- .../dist/game/data/xsd/initialShortcuts.xsd | 4 +- .../dist/game/data/zones/respawn.xml | 14 +- .../data/xml/impl/ClassListData.java | 4 + .../data/xml/impl/SkillTreesData.java | 36 +- .../gameserver/enums/CategoryType.java | 252 +- .../gameserver/enums/ElementalType.java | 17 +- .../gameserver/enums/HtmlActionScope.java | 3 +- .../CeremonyOfChaosManager.java | 11 +- .../gameserver/model/WorldRegion.java | 11 + .../gameserver/model/actor/Attackable.java | 2 +- .../gameserver/model/actor/Creature.java | 2 +- .../model/actor/instance/PlayerInstance.java | 66 +- .../actor/instance/VillageMasterInstance.java | 4 +- .../gameserver/model/base/ClassId.java | 162 +- .../model/olympiad/OlympiadManager.java | 41 +- .../gameserver/model/stats/Formulas.java | 51 +- .../model/zone/type/SayuneZone.java | 3 +- .../gameserver/network/ExIncomingPackets.java | 15 +- .../gameserver/network/OutgoingPackets.java | 8 +- .../clientpackets/ExAutoPlaySetting.java | 70 + .../clientpackets/ExOpenDimensionalHtml.java | 52 + .../network/clientpackets/ExPvpBookList.java | 39 + .../network/clientpackets/NewCharacter.java | 5 +- .../clientpackets/RequestAcquireSkill.java | 137 +- .../RequestAcquireSkillInfo.java | 21 +- .../clientpackets/RequestExEnchantSkill.java | 9 +- .../RequestExEnchantSkillInfo.java | 9 +- .../mentoring/ConfirmMenteeAdd.java | 73 +- .../clientpackets/ranking/ExRankCharInfo.java | 40 + .../ranking/ExRankingCharRankers.java | 47 + .../sayune/RequestFlyMoveStart.java | 3 +- .../sessionzones/ExTimedHuntingZoneList.java | 44 + .../serverpackets/ExAutoPlayDoMacro.java | 40 + .../serverpackets/ExAutoPlaySettingSend.java | 59 + .../ExPremiumManagerShowHtml.java | 49 + .../network/serverpackets/PvpBookList.java | 52 + .../serverpackets/mentoring/ExMentorList.java | 11 +- .../mentoring/ListMenteeWaiting.java | 16 +- .../serverpackets/ranking/ExRankList.java | 99 + .../ranking/ExRankingCharInfo.java | 44 + .../sessionzones/TimedHuntingZoneList.java | 111 + 349 files changed, 31442 insertions(+), 25115 deletions(-) create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExAutoPlaySetting.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenDimensionalHtml.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExPvpBookList.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankCharInfo.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankingCharRankers.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/sessionzones/ExTimedHuntingZoneList.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlayDoMacro.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlaySettingSend.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExPremiumManagerShowHtml.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/PvpBookList.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankList.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankingCharInfo.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/timedhunting/TimedHuntingZoneList.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/teleporter/34112.htm delete mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/warehouse/32478.htm create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/DimensionalMerchant/32478.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-1.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-2.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-3.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-4.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-5.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-1.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-2.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-3.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-4.html create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/SoulFinder.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Trooper.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Warden.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Arbalester.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Berserker.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/SoulBreaker.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/DoomBringer.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SoulHound.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Trickster.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/CaveOfSouls.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/GoldenHills.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/HillOfHope.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/KamaelVillage.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Arbalester.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Berserker.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Doombringer.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulBreaker.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulFinder.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulHound.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Trickster.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Trooper.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Warden.xml create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExAutoPlaySetting.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenDimensionalHtml.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExPvpBookList.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankCharInfo.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankingCharRankers.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/sessionzones/ExTimedHuntingZoneList.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlayDoMacro.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlaySettingSend.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExPremiumManagerShowHtml.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/PvpBookList.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankList.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankingCharInfo.java create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/sessionzones/TimedHuntingZoneList.java diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java index f9b35e2b66..38ae88da19 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -45,7 +45,7 @@ public class DimensionalMerchant extends AbstractNpcAI private static final int ENH_MINION_COUPON_EV = 22240; // Enhanced Rose Spirit Coupon (5-hour) - Event // Misc private static final HashMap MINION_EXCHANGE = new HashMap<>(); - + static { // Normal MINION_EXCHANGE.put("whiteWeasel", 13017); // White Weasel Minion Necklace diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 835e9a44bd..98bcb40cda 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 315e48e56c..b9504dd0e0 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1244,7 +1244,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java index f9b35e2b66..38ae88da19 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -45,7 +45,7 @@ public class DimensionalMerchant extends AbstractNpcAI private static final int ENH_MINION_COUPON_EV = 22240; // Enhanced Rose Spirit Coupon (5-hour) - Event // Misc private static final HashMap MINION_EXCHANGE = new HashMap<>(); - + static { // Normal MINION_EXCHANGE.put("whiteWeasel", 13017); // White Weasel Minion Necklace diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/23700-23799.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/23700-23799.xml index 3d103c9335..d7169e5b33 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/23700-23799.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/23700-23799.xml @@ -38,7 +38,7 @@ - + HUMAN MALE @@ -130,7 +130,7 @@ - + DEMONIC MALE diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 835e9a44bd..98bcb40cda 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 84a4459e6c..1f22ab8d16 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1250,7 +1250,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java index f9b35e2b66..38ae88da19 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -45,7 +45,7 @@ public class DimensionalMerchant extends AbstractNpcAI private static final int ENH_MINION_COUPON_EV = 22240; // Enhanced Rose Spirit Coupon (5-hour) - Event // Misc private static final HashMap MINION_EXCHANGE = new HashMap<>(); - + static { // Normal MINION_EXCHANGE.put("whiteWeasel", 13017); // White Weasel Minion Necklace diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/23700-23799.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/23700-23799.xml index 26b3ce80e9..6cabecf1e4 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/23700-23799.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/23700-23799.xml @@ -38,7 +38,7 @@ - + HUMAN MALE @@ -130,7 +130,7 @@ - + DEMONIC MALE diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 835e9a44bd..98bcb40cda 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 9f522ab7d3..42da79dee4 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1252,7 +1252,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java index f9b35e2b66..38ae88da19 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -45,7 +45,7 @@ public class DimensionalMerchant extends AbstractNpcAI private static final int ENH_MINION_COUPON_EV = 22240; // Enhanced Rose Spirit Coupon (5-hour) - Event // Misc private static final HashMap MINION_EXCHANGE = new HashMap<>(); - + static { // Normal MINION_EXCHANGE.put("whiteWeasel", 13017); // White Weasel Minion Necklace diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/23700-23799.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/23700-23799.xml index 8aacec4a97..1ba9bab541 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/23700-23799.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/23700-23799.xml @@ -38,7 +38,7 @@ - + HUMAN MALE @@ -140,7 +140,7 @@ - + DEMONIC MALE diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 835e9a44bd..98bcb40cda 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 12aabae80c..0610743112 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1262,7 +1262,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java index f9b35e2b66..38ae88da19 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -45,7 +45,7 @@ public class DimensionalMerchant extends AbstractNpcAI private static final int ENH_MINION_COUPON_EV = 22240; // Enhanced Rose Spirit Coupon (5-hour) - Event // Misc private static final HashMap MINION_EXCHANGE = new HashMap<>(); - + static { // Normal MINION_EXCHANGE.put("whiteWeasel", 13017); // White Weasel Minion Necklace diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/23700-23799.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/23700-23799.xml index 4c3447ac71..488eb81797 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/23700-23799.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/23700-23799.xml @@ -38,7 +38,7 @@ - + HUMAN MALE @@ -140,7 +140,7 @@ - + DEMONIC MALE diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 835e9a44bd..98bcb40cda 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ac6007cdde..8023fb09db 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1257,7 +1257,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java index f9b35e2b66..38ae88da19 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -45,7 +45,7 @@ public class DimensionalMerchant extends AbstractNpcAI private static final int ENH_MINION_COUPON_EV = 22240; // Enhanced Rose Spirit Coupon (5-hour) - Event // Misc private static final HashMap MINION_EXCHANGE = new HashMap<>(); - + static { // Normal MINION_EXCHANGE.put("whiteWeasel", 13017); // White Weasel Minion Necklace diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/23700-23799.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/23700-23799.xml index c099562126..c4bd8efb34 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/23700-23799.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/23700-23799.xml @@ -38,7 +38,7 @@ - + HUMAN MALE @@ -140,7 +140,7 @@ - + DEMONIC MALE diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 835e9a44bd..98bcb40cda 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 9cd55495d9..d1e8b2d100 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1257,7 +1257,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java index f9b35e2b66..38ae88da19 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -45,7 +45,7 @@ public class DimensionalMerchant extends AbstractNpcAI private static final int ENH_MINION_COUPON_EV = 22240; // Enhanced Rose Spirit Coupon (5-hour) - Event // Misc private static final HashMap MINION_EXCHANGE = new HashMap<>(); - + static { // Normal MINION_EXCHANGE.put("whiteWeasel", 13017); // White Weasel Minion Necklace diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 1c5e89d212..6865e9a64b 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 51fa3334a9..2356a375a0 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1257,7 +1257,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DimensionalMerchant/32478.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DimensionalMerchant/32478.html index 83d8c714a8..a0e63af297 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DimensionalMerchant/32478.html +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DimensionalMerchant/32478.html @@ -3,8 +3,8 @@ We are the Dimensional Merchants. Get your Dimensiona Oh, we are also upgrading products from the past L2Store, so exchange them as well.
- - + + diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java index f9b35e2b66..46a2fa78aa 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -22,15 +22,23 @@ import org.l2jmobius.gameserver.handler.IItemHandler; import org.l2jmobius.gameserver.handler.ItemHandler; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.ListenerRegisterType; +import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent; +import org.l2jmobius.gameserver.model.events.annotations.RegisterType; +import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerBypass; +import org.l2jmobius.gameserver.model.itemcontainer.PlayerFreight; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExGetPremiumItemList; +import org.l2jmobius.gameserver.network.serverpackets.PackageToList; +import org.l2jmobius.gameserver.network.serverpackets.WareHouseWithdrawalList; import ai.AbstractNpcAI; /** * Dimensional Merchant AI. - * @author St3eT + * @author St3eT, Mobius */ public class DimensionalMerchant extends AbstractNpcAI { @@ -43,9 +51,10 @@ public class DimensionalMerchant extends AbstractNpcAI private static final int SUP_MINION_COUPON_EV = 14074; // Superior Minion Coupon (Event) - 5-hour private static final int ENH_MINION_COUPON = 20914; // Enhanced Rose Spirit Coupon (5-hour) private static final int ENH_MINION_COUPON_EV = 22240; // Enhanced Rose Spirit Coupon (5-hour) - Event - // Misc + // Others + private static final String COMMAND_BYPASS = "Quest DimensionalMerchant "; private static final HashMap MINION_EXCHANGE = new HashMap<>(); - + static { // Normal MINION_EXCHANGE.put("whiteWeasel", 13017); // White Weasel Minion Necklace @@ -76,7 +85,6 @@ public class DimensionalMerchant extends AbstractNpcAI public String onAdvEvent(String event, Npc npc, PlayerInstance player) { String htmltext = null; - switch (event) { case "32478.html": @@ -144,6 +152,43 @@ public class DimensionalMerchant extends AbstractNpcAI htmltext = giveMinion(player, event, ENH_MINION_COUPON, ENH_MINION_COUPON_EV); break; } + case "package_deposit": + { + if (player.getAccountChars().size() < 1) + { + player.sendPacket(SystemMessageId.THAT_CHARACTER_DOES_NOT_EXIST); + } + else + { + player.sendPacket(new PackageToList(player.getAccountChars())); + } + break; + } + case "package_withdraw": + { + final PlayerFreight freight = player.getFreight(); + if (freight != null) + { + if (freight.getSize() > 0) + { + player.setActiveWarehouse(freight); + for (ItemInstance i : player.getActiveWarehouse().getItems()) + { + if (i.isTimeLimitedItem() && (i.getRemainingTime() <= 0)) + { + player.getActiveWarehouse().destroyItem("ItemInstance", i, player, null); + } + } + player.sendPacket(new WareHouseWithdrawalList(1, player, WareHouseWithdrawalList.FREIGHT)); + player.sendPacket(new WareHouseWithdrawalList(2, player, WareHouseWithdrawalList.FREIGHT)); + } + else + { + player.sendPacket(SystemMessageId.YOU_HAVE_NOT_DEPOSITED_ANY_ITEMS_IN_YOUR_WAREHOUSE); + } + } + break; + } } return htmltext; } @@ -166,6 +211,17 @@ public class DimensionalMerchant extends AbstractNpcAI return "32478-07.html"; } + @RegisterEvent(EventType.ON_PLAYER_BYPASS) + @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS) + public void OnPlayerBypass(OnPlayerBypass event) + { + final PlayerInstance player = event.getPlayer(); + if (event.getCommand().startsWith(COMMAND_BYPASS)) + { + notifyEvent(event.getCommand().replace(COMMAND_BYPASS, ""), null, player); + } + } + public static void main(String[] args) { new DimensionalMerchant(); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/13500-13599.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/13500-13599.xml index c5ca94a57a..471d3a88e0 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/13500-13599.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/13500-13599.xml @@ -1497,7 +1497,7 @@
- + ETC FEMALE @@ -1516,7 +1516,7 @@ - + ETC FEMALE @@ -1535,7 +1535,7 @@ - + ETC FEMALE @@ -1554,7 +1554,7 @@ - + ETC FEMALE @@ -1573,7 +1573,7 @@ - + ETC FEMALE @@ -1592,7 +1592,7 @@ - + ETC FEMALE @@ -1611,7 +1611,7 @@ - + ETC FEMALE @@ -1630,7 +1630,7 @@ - + ETC FEMALE @@ -1649,7 +1649,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/13600-13699.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/13600-13699.xml index b8a5137495..cb6dda321a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/13600-13699.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/13600-13699.xml @@ -1,6 +1,6 @@ - + ETC FEMALE @@ -19,7 +19,7 @@ - + ETC FEMALE @@ -38,7 +38,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/15200-15299.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/15200-15299.xml index f588c8a20d..0469eaafa8 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/15200-15299.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/15200-15299.xml @@ -1538,7 +1538,7 @@ - + ETC FEMALE @@ -1557,7 +1557,7 @@ - + ETC FEMALE @@ -1576,7 +1576,7 @@ - + ETC FEMALE @@ -1596,7 +1596,7 @@ - + ETC FEMALE @@ -1616,7 +1616,7 @@ - + ETC FEMALE @@ -1636,7 +1636,7 @@ - + ETC FEMALE @@ -1656,7 +1656,7 @@ - + ETC FEMALE @@ -1676,7 +1676,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/19700-19799.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/19700-19799.xml index a206683d09..58bd15866d 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/19700-19799.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/19700-19799.xml @@ -784,7 +784,7 @@ - + ETC FEMALE @@ -803,7 +803,7 @@ - + ETC FEMALE @@ -822,7 +822,7 @@ - + ETC FEMALE @@ -841,7 +841,7 @@ - + ETC FEMALE @@ -861,7 +861,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/24300-24399.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/24300-24399.xml index 6aa7ca67b3..2a5eb53be0 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/24300-24399.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/24300-24399.xml @@ -1315,7 +1315,7 @@ - + ETC FEMALE @@ -1334,7 +1334,7 @@ - + ETC FEMALE @@ -1353,7 +1353,7 @@ - + ETC FEMALE @@ -1372,7 +1372,7 @@ - + ETC FEMALE @@ -1391,7 +1391,7 @@ - + ETC FEMALE @@ -1411,7 +1411,7 @@ - + ETC FEMALE @@ -1431,7 +1431,7 @@ - + ETC FEMALE @@ -1450,7 +1450,7 @@ - + ETC FEMALE @@ -1469,7 +1469,7 @@ - + ETC FEMALE @@ -1488,7 +1488,7 @@ - + ETC FEMALE @@ -1508,7 +1508,7 @@ - + ETC FEMALE @@ -1527,7 +1527,7 @@ - + ETC FEMALE @@ -1547,7 +1547,7 @@ - + ETC FEMALE @@ -1566,7 +1566,7 @@ - + ETC FEMALE @@ -1585,7 +1585,7 @@ - + ETC FEMALE @@ -1604,7 +1604,7 @@ - + ETC FEMALE @@ -1623,7 +1623,7 @@ - + ETC FEMALE @@ -1642,7 +1642,7 @@ - + ETC FEMALE @@ -1661,7 +1661,7 @@ - + ETC FEMALE @@ -1680,7 +1680,7 @@ - + ETC FEMALE @@ -1699,7 +1699,7 @@ - + ETC FEMALE @@ -1718,7 +1718,7 @@ - + ETC FEMALE @@ -1737,7 +1737,7 @@ - + ETC FEMALE @@ -1756,7 +1756,7 @@ - + ETC FEMALE @@ -1775,7 +1775,7 @@ - + ETC FEMALE @@ -1794,7 +1794,7 @@ - + ETC FEMALE @@ -1813,7 +1813,7 @@ - + ETC FEMALE @@ -1832,7 +1832,7 @@ - + ETC FEMALE @@ -1851,7 +1851,7 @@ - + ETC FEMALE @@ -1870,7 +1870,7 @@ - + ETC FEMALE @@ -1889,7 +1889,7 @@ - + ETC FEMALE @@ -1908,7 +1908,7 @@ - + ETC FEMALE @@ -1927,7 +1927,7 @@ - + ETC FEMALE @@ -1946,7 +1946,7 @@ - + ETC FEMALE @@ -1965,7 +1965,7 @@ - + ETC FEMALE @@ -1984,7 +1984,7 @@ - + ETC FEMALE @@ -2003,7 +2003,7 @@ - + ETC FEMALE @@ -2022,7 +2022,7 @@ - + ETC FEMALE @@ -2041,7 +2041,7 @@ - + ETC FEMALE @@ -2060,7 +2060,7 @@ - + ETC FEMALE @@ -2079,7 +2079,7 @@ - + ETC FEMALE @@ -2098,7 +2098,7 @@ - + ETC FEMALE @@ -2117,7 +2117,7 @@ - + ETC FEMALE @@ -2137,7 +2137,7 @@ - + ETC FEMALE @@ -2157,7 +2157,7 @@ - + ETC FEMALE @@ -2177,7 +2177,7 @@ - + ETC FEMALE @@ -2197,7 +2197,7 @@ - + ETC FEMALE @@ -2217,7 +2217,7 @@ - + ETC FEMALE @@ -2237,7 +2237,7 @@ - + ETC FEMALE @@ -2257,7 +2257,7 @@ - + ETC FEMALE @@ -2277,7 +2277,7 @@ - + ETC FEMALE @@ -2296,7 +2296,7 @@ - + ETC FEMALE @@ -2315,7 +2315,7 @@ - + ETC FEMALE @@ -2334,7 +2334,7 @@ - + ETC FEMALE @@ -2353,7 +2353,7 @@ - + ETC FEMALE @@ -2372,7 +2372,7 @@ - + ETC FEMALE @@ -2392,7 +2392,7 @@ - + ETC FEMALE @@ -2411,7 +2411,7 @@ - + ETC FEMALE @@ -2431,7 +2431,7 @@ - + ETC FEMALE @@ -2451,7 +2451,7 @@ - + ETC FEMALE @@ -2471,7 +2471,7 @@ - + ETC FEMALE @@ -2491,7 +2491,7 @@ - + ETC FEMALE @@ -2510,7 +2510,7 @@ - + ETC FEMALE @@ -2529,7 +2529,7 @@ - + ETC FEMALE @@ -2548,7 +2548,7 @@ - + ETC FEMALE @@ -2567,7 +2567,7 @@ - + ETC FEMALE @@ -2586,7 +2586,7 @@ - + ETC FEMALE @@ -2605,7 +2605,7 @@ - + ETC FEMALE @@ -2624,7 +2624,7 @@ - + ETC FEMALE @@ -2643,7 +2643,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/24400-24499.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/24400-24499.xml index 1eecbffb18..17131fe038 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/24400-24499.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/24400-24499.xml @@ -1,6 +1,6 @@ - + ETC FEMALE @@ -19,7 +19,7 @@ - + ETC FEMALE @@ -38,7 +38,7 @@ - + ETC FEMALE @@ -57,7 +57,7 @@ - + ETC FEMALE @@ -76,7 +76,7 @@ - + ETC FEMALE @@ -96,7 +96,7 @@ - + ETC FEMALE @@ -116,7 +116,7 @@ - + ETC FEMALE @@ -136,7 +136,7 @@ - + ETC FEMALE @@ -156,7 +156,7 @@ - + ETC FEMALE @@ -176,7 +176,7 @@ - + ETC FEMALE @@ -196,7 +196,7 @@ - + ETC FEMALE @@ -216,7 +216,7 @@ - + ETC FEMALE @@ -236,7 +236,7 @@ - + ETC FEMALE @@ -256,7 +256,7 @@ - + ETC FEMALE @@ -276,7 +276,7 @@ - + ETC FEMALE @@ -296,7 +296,7 @@ - + ETC FEMALE @@ -316,7 +316,7 @@ - + ETC FEMALE @@ -336,7 +336,7 @@ - + ETC FEMALE @@ -356,7 +356,7 @@ - + ETC FEMALE @@ -375,7 +375,7 @@ - + ETC FEMALE @@ -395,7 +395,7 @@ - + ETC FEMALE @@ -414,7 +414,7 @@ - + ETC FEMALE @@ -433,7 +433,7 @@ - + ETC FEMALE @@ -452,7 +452,7 @@ - + ETC FEMALE @@ -471,7 +471,7 @@ - + ETC FEMALE @@ -490,7 +490,7 @@ - + ETC FEMALE @@ -509,7 +509,7 @@ - + ETC FEMALE @@ -528,7 +528,7 @@ - + ETC FEMALE @@ -547,7 +547,7 @@ - + ETC FEMALE @@ -566,7 +566,7 @@ - + ETC FEMALE @@ -585,7 +585,7 @@ - + ETC FEMALE @@ -604,7 +604,7 @@ - + ETC FEMALE @@ -623,7 +623,7 @@ - + ETC FEMALE @@ -642,7 +642,7 @@ - + ETC FEMALE @@ -661,7 +661,7 @@ - + ETC FEMALE @@ -680,7 +680,7 @@ - + ETC FEMALE @@ -699,7 +699,7 @@ - + ETC FEMALE @@ -718,7 +718,7 @@ - + ETC FEMALE @@ -737,7 +737,7 @@ - + ETC FEMALE @@ -756,7 +756,7 @@ - + ETC FEMALE @@ -775,7 +775,7 @@ - + ETC FEMALE @@ -794,7 +794,7 @@ - + ETC FEMALE @@ -814,7 +814,7 @@ - + ETC FEMALE @@ -833,7 +833,7 @@ - + ETC FEMALE @@ -852,7 +852,7 @@ - + ETC FEMALE @@ -871,7 +871,7 @@ - + ETC FEMALE @@ -890,7 +890,7 @@ - + ETC FEMALE @@ -909,7 +909,7 @@ - + ETC FEMALE @@ -928,7 +928,7 @@ - + ETC FEMALE @@ -947,7 +947,7 @@ - + ETC FEMALE @@ -966,7 +966,7 @@ - + ETC FEMALE @@ -985,7 +985,7 @@ - + ETC FEMALE @@ -1004,7 +1004,7 @@ - + ETC FEMALE @@ -1023,7 +1023,7 @@ - + ETC FEMALE @@ -1043,7 +1043,7 @@ - + ETC FEMALE @@ -1062,7 +1062,7 @@ - + ETC FEMALE @@ -1081,7 +1081,7 @@ - + ETC FEMALE @@ -1101,7 +1101,7 @@ - + ETC FEMALE @@ -1120,7 +1120,7 @@ - + ETC FEMALE @@ -1139,7 +1139,7 @@ - + ETC FEMALE @@ -1158,7 +1158,7 @@ - + ETC FEMALE @@ -1178,7 +1178,7 @@ - + ETC FEMALE @@ -1198,7 +1198,7 @@ - + ETC FEMALE @@ -1218,7 +1218,7 @@ - + ETC FEMALE @@ -1238,7 +1238,7 @@ - + ETC FEMALE @@ -1258,7 +1258,7 @@ - + ETC FEMALE @@ -1278,7 +1278,7 @@ - + ETC FEMALE @@ -1298,7 +1298,7 @@ - + ETC FEMALE @@ -1318,7 +1318,7 @@ - + ETC FEMALE @@ -1337,7 +1337,7 @@ - + ETC FEMALE @@ -1357,7 +1357,7 @@ - + ETC FEMALE @@ -1376,7 +1376,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/26400-26499.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/26400-26499.xml index 35f2a9d4d0..f8e9c8880f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/26400-26499.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/26400-26499.xml @@ -586,7 +586,7 @@ - + ETC FEMALE @@ -605,7 +605,7 @@ - + ETC FEMALE @@ -624,7 +624,7 @@ - + ETC FEMALE @@ -643,7 +643,7 @@ - + ETC FEMALE @@ -663,7 +663,7 @@ - + ETC FEMALE @@ -682,7 +682,7 @@ - + ETC FEMALE @@ -701,7 +701,7 @@ - + ETC FEMALE @@ -720,7 +720,7 @@ - + ETC FEMALE @@ -739,7 +739,7 @@ - + ETC FEMALE @@ -758,7 +758,7 @@ - + ETC FEMALE @@ -777,7 +777,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/29300-29399.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/29300-29399.xml index b5e5897891..34db77d8f1 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/29300-29399.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/29300-29399.xml @@ -3682,7 +3682,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/34400-34499.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/34400-34499.xml index 49b93ad049..89f6e20d23 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/34400-34499.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/34400-34499.xml @@ -1801,7 +1801,7 @@ - + ETC FEMALE @@ -1821,7 +1821,7 @@ - + ETC FEMALE @@ -1841,7 +1841,7 @@ - + ETC FEMALE @@ -1861,7 +1861,7 @@ - + ETC FEMALE @@ -1880,7 +1880,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/34500-34599.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/34500-34599.xml index 2dcfb4424c..77bd2fc9fd 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/34500-34599.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/npcs/34500-34599.xml @@ -1,6 +1,6 @@ - + ETC FEMALE @@ -19,7 +19,7 @@ - + ETC FEMALE @@ -38,7 +38,7 @@ - + ETC FEMALE @@ -57,7 +57,7 @@ - + ETC FEMALE @@ -76,7 +76,7 @@ - + ETC FEMALE @@ -96,7 +96,7 @@ - + ETC FEMALE @@ -115,7 +115,7 @@ - + ETC FEMALE @@ -134,7 +134,7 @@ - + ETC FEMALE @@ -154,7 +154,7 @@ - + ETC FEMALE @@ -173,7 +173,7 @@ - + ETC FEMALE @@ -192,7 +192,7 @@ - + ETC FEMALE @@ -211,7 +211,7 @@ - + ETC FEMALE @@ -230,7 +230,7 @@ - + ETC FEMALE @@ -250,7 +250,7 @@ - + ETC FEMALE @@ -270,7 +270,7 @@ - + ETC FEMALE @@ -290,7 +290,7 @@ - + ETC FEMALE @@ -309,7 +309,7 @@ - + ETC FEMALE @@ -328,7 +328,7 @@ - + ETC FEMALE @@ -347,7 +347,7 @@ - + ETC FEMALE @@ -366,7 +366,7 @@ - + ETC FEMALE @@ -385,7 +385,7 @@ - + ETC FEMALE @@ -404,7 +404,7 @@ - + ETC FEMALE @@ -423,7 +423,7 @@ - + ETC FEMALE @@ -442,7 +442,7 @@ - + ETC FEMALE @@ -461,7 +461,7 @@ - + ETC FEMALE @@ -480,7 +480,7 @@ - + ETC FEMALE @@ -499,7 +499,7 @@ - + ETC FEMALE @@ -518,7 +518,7 @@ - + ETC FEMALE @@ -538,7 +538,7 @@ - + ETC FEMALE @@ -558,7 +558,7 @@ - + ETC FEMALE @@ -577,7 +577,7 @@ - + ETC FEMALE @@ -597,7 +597,7 @@ - + ETC FEMALE @@ -617,7 +617,7 @@ - + ETC FEMALE @@ -636,7 +636,7 @@ - + ETC FEMALE @@ -655,7 +655,7 @@ - + ETC FEMALE @@ -674,7 +674,7 @@ - + ETC FEMALE @@ -693,7 +693,7 @@ - + ETC FEMALE @@ -712,7 +712,7 @@ - + ETC FEMALE @@ -731,7 +731,7 @@ - + ETC FEMALE @@ -750,7 +750,7 @@ - + ETC FEMALE @@ -769,7 +769,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 1c5e89d212..6865e9a64b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/enums/HtmlActionScope.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/enums/HtmlActionScope.java index 5611ac9bbb..e5c6450be7 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/enums/HtmlActionScope.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/enums/HtmlActionScope.java @@ -25,5 +25,6 @@ public enum HtmlActionScope NPC_ITEM_HTML, NPC_QUEST_HTML, TUTORIAL_HTML, - COMM_BOARD_HTML + COMM_BOARD_HTML, + PREMIUM_HTML } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 87c23651be..bb37e68af2 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -277,6 +277,7 @@ import org.l2jmobius.gameserver.network.serverpackets.EtcStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; import org.l2jmobius.gameserver.network.serverpackets.ExAdenaInvenCount; import org.l2jmobius.gameserver.network.serverpackets.ExAlterSkillRequest; +import org.l2jmobius.gameserver.network.serverpackets.ExAutoPlayDoMacro; import org.l2jmobius.gameserver.network.serverpackets.ExAutoSoulShot; import org.l2jmobius.gameserver.network.serverpackets.ExBrPremiumState; import org.l2jmobius.gameserver.network.serverpackets.ExDuelUpdateUserInfo; @@ -857,6 +858,8 @@ public class PlayerInstance extends Playable private final Set _whisperers = ConcurrentHashMap.newKeySet(); + private ScheduledFuture _autoPlayTask = null; + // Selling buffs system private boolean _isSellingBuffs = false; private List _sellingBuffs = null; @@ -1251,7 +1254,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() @@ -14052,4 +14055,61 @@ public class PlayerInstance extends Playable getVariables().set(ATTENDANCE_INDEX_VAR, rewardIndex); } } + + public void stopAutoPlayTask() + { + if ((_autoPlayTask != null) && !_autoPlayTask.isCancelled() && !_autoPlayTask.isDone()) + { + _autoPlayTask.cancel(true); + } + _autoPlayTask = null; + } + + public void startAutoPlayTask(boolean longRange, boolean respectfulHunting) + { + if (_autoPlayTask != null) + { + return; + } + + _autoPlayTask = ThreadPool.scheduleAtFixedRate(() -> + { + if ((getTarget() != null) && getTarget().isMonster() && (((MonsterInstance) getTarget()).getTarget() == this) && !((MonsterInstance) getTarget()).isAlikeDead()) + { + sendPacket(ExAutoPlayDoMacro.STATIC_PACKET); + return; + } + + MonsterInstance monster = null; + double closestDistance = Double.MAX_VALUE; + for (MonsterInstance nearby : World.getInstance().getVisibleObjectsInRange(this, MonsterInstance.class, longRange ? 600 : 1400)) + { + if ((nearby == null) || nearby.isAlikeDead()) + { + continue; + } + if (respectfulHunting && (nearby.getTarget() != null) && (nearby.getTarget() != this)) + { + continue; + } + if (nearby.isAutoAttackable(this) // + && GeoEngine.getInstance().canSeeTarget(this, nearby)// + && GeoEngine.getInstance().canMoveToTarget(getX(), getY(), getZ(), nearby.getX(), nearby.getY(), nearby.getZ(), getInstanceWorld())) + { + final double monsterDistance = calculateDistance2D(nearby); + if (monsterDistance < closestDistance) + { + monster = nearby; + closestDistance = monsterDistance; + } + } + } + + if (monster != null) + { + setTarget(monster); + sendPacket(ExAutoPlayDoMacro.STATIC_PACKET); + } + }, 0, 2000); + } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java index b001363800..998894fd3c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java @@ -102,8 +102,11 @@ import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProduct import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRRecentProductList; import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidBossSpawnInfo; import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidServerInfo; +import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankCharInfo; +import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankingCharRankers; import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMove; import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMoveStart; +import org.l2jmobius.gameserver.network.clientpackets.sessionzones.ExTimedHuntingZoneList; import org.l2jmobius.gameserver.network.clientpackets.shuttle.CannotMoveAnymoreInShuttle; import org.l2jmobius.gameserver.network.clientpackets.shuttle.MoveToLocationInShuttle; import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOff; @@ -463,19 +466,19 @@ public enum ExIncomingPackets implements IIncomingPackets EX_INTERACT_MODIFY(0x15F, null, ConnectionState.IN_GAME), // 152 EX_TRY_ENCHANT_ARTIFACT(0x160, null, ConnectionState.IN_GAME), // 152 EX_XIGN_CODE(0x161, null, ConnectionState.IN_GAME), // 152 - EX_OPEN_HTML(0x164, null, ConnectionState.IN_GAME), // 228 + EX_OPEN_HTML(0x164, ExOpenDimensionalHtml::new, ConnectionState.IN_GAME), // 228 EX_REQUEST_CLASS_CHANGE(0x165, null, ConnectionState.IN_GAME), // 228 EX_REQUEST_CLASS_CHANGE_VERIFYING(0x166, null, ConnectionState.IN_GAME), // 228 EX_REQUEST_TELEPORT(0x167, ExRequestTeleport::new, ConnectionState.IN_GAME), // 228 EX_COSTUME_COLLECTION_SKILL_ACTIVE(0x16B, null, ConnectionState.IN_GAME), // 228 - REQUEST_AUTO_USE_POTION(0x171, null, ConnectionState.IN_GAME), // 228 - REQUEST_AUTO_USE(0x177, null, ConnectionState.IN_GAME), // 228 - EX_TIME_RESTRICT_FIELD_LIST(0x17F, null, ConnectionState.IN_GAME), // 228 + EX_AUTOPLAY_SETTING(0x177, ExAutoPlaySetting::new, ConnectionState.IN_GAME), // 228 + EX_TIME_RESTRICT_FIELD_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME), // 228 EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, null, ConnectionState.IN_GAME), // 228 - EX_RANKING_CHAR_INFO(0x181, null, ConnectionState.IN_GAME), // 228 + EX_RANKING_CHAR_INFO(0x181, ExRankCharInfo::new, ConnectionState.IN_GAME), // 228 EX_RANKING_CHAR_HISTORY(0x182, null, ConnectionState.IN_GAME), // 228 - EX_RANKING_CHAR_RANKERS(0x183, null, ConnectionState.IN_GAME), // 228 + EX_RANKING_CHAR_RANKERS(0x183, ExRankingCharRankers::new, ConnectionState.IN_GAME), // 228 EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x186, null, ConnectionState.IN_GAME), // 228 + EX_PVP_BOOK_LIST(0x18B, ExPvpBookList::new, ConnectionState.IN_GAME), // 228 EX_LETTER_COLLECTOR_TAKE_REWARD(0x18D, null, ConnectionState.IN_GAME); // 228 public static final ExIncomingPackets[] PACKET_ARRAY; diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/OutgoingPackets.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/OutgoingPackets.java index 00b0416686..e4083ec6f3 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/OutgoingPackets.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/OutgoingPackets.java @@ -801,9 +801,15 @@ public enum OutgoingPackets EX_SEND_COSTUME_LIST(0xFE, 0x20F), // 228 EX_COSTUME_SHORTCUT_LIST(0xFE, 0x215), // 228 EX_SHOW_TELEPORT_UI(0xFE, 0x219), // 228 + EX_PREMIUM_MANAGER_SHOW_HTML(0xFE, 0x21B), // 228 EX_AUTOPLAY_SETTING(0xFE, 0x221), // 228 + EX_AUTOPLAY_DO_MACRO(0xFE, 0x222), // 228 + EX_TIME_RESTRICT_FIELD_LIST(0xFE, 0x22B), // 228 EX_UNK_225(0xFE, 0x225), // 228 - EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_HUD_INFO(0xFE, 0x235); // 228 + EX_RANKING_CHAR_INFO(0xFE, 0x230), // 228 + EX_RANKING_CHAR_RANKERS(0xFE, 0x232), // 228 + EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_HUD_INFO(0xFE, 0x235), // 228 + EX_PVPBOOK_LIST(0xFE, 0x23A); // 228 private final int _id1; private final int _id2; diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExAutoPlaySetting.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExAutoPlaySetting.java new file mode 100644 index 0000000000..c2eeefe7a0 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExAutoPlaySetting.java @@ -0,0 +1,70 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.serverpackets.ExAutoPlaySettingSend; + +/** + * @author Mobius + */ +public class ExAutoPlaySetting implements IClientIncomingPacket +{ + private int _options; + private boolean _active; + private boolean _pickUp; + private int _nextTargetMode; + private boolean _longRange; + private int _potionPercent; + private boolean _respectfulHunting; + + @Override + public boolean read(GameClient client, PacketReader packet) + { + _options = packet.readH(); + _active = packet.readC() == 1; + _pickUp = packet.readC() == 1; + _nextTargetMode = packet.readH(); + _longRange = packet.readC() == 0; + _potionPercent = packet.readD(); + _respectfulHunting = packet.readC() == 1; + return true; + } + + @Override + public void run(GameClient client) + { + final PlayerInstance player = client.getPlayer(); + if (player == null) + { + return; + } + + player.sendPacket(new ExAutoPlaySettingSend(_options, _active, _pickUp, _nextTargetMode, _longRange, _potionPercent, _respectfulHunting)); + + if (_active) + { + player.startAutoPlayTask(_longRange, _respectfulHunting); + } + else + { + player.stopAutoPlayTask(); + } + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenDimensionalHtml.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenDimensionalHtml.java new file mode 100644 index 0000000000..70322d7277 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenDimensionalHtml.java @@ -0,0 +1,52 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.cache.HtmCache; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Mobius + */ +public class ExOpenDimensionalHtml implements IClientIncomingPacket +{ + @Override + public boolean read(GameClient client, PacketReader packet) + { + packet.readC(); // html scope? + return true; + } + + @Override + public void run(GameClient client) + { + final PlayerInstance player = client.getPlayer(); + if (player == null) + { + return; + } + + // FIXME: + // client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/DimensionalMerchant/32478.html"))); + final NpcHtmlMessage html = new NpcHtmlMessage(); + html.setHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/DimensionalMerchant/32478.html")); + player.sendPacket(html); + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExPvpBookList.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExPvpBookList.java new file mode 100644 index 0000000000..9b1d65ce33 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ExPvpBookList.java @@ -0,0 +1,39 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.serverpackets.PvpBookList; + +/** + * @author JoeAlisson + */ +public class ExPvpBookList implements IClientIncomingPacket +{ + @Override + public boolean read(GameClient client, PacketReader packet) + { + return true; + } + + @Override + public void run(GameClient client) + { + client.sendPacket(new PvpBookList()); + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankCharInfo.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankCharInfo.java new file mode 100644 index 0000000000..fd3841f624 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankCharInfo.java @@ -0,0 +1,40 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets.ranking; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import org.l2jmobius.gameserver.network.serverpackets.ranking.ExRankingCharInfo; + +/** + * @author JoeAlisson + */ +public class ExRankCharInfo implements IClientIncomingPacket +{ + @Override + public boolean read(GameClient client, PacketReader packet) + { + return true; + } + + @Override + public void run(GameClient client) + { + client.sendPacket(new ExRankingCharInfo()); + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankingCharRankers.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankingCharRankers.java new file mode 100644 index 0000000000..1b491098fb --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankingCharRankers.java @@ -0,0 +1,47 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets.ranking; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import org.l2jmobius.gameserver.network.serverpackets.ranking.ExRankList; + +/** + * @author JoeAlisson + */ +public class ExRankingCharRankers implements IClientIncomingPacket +{ + private int _group; + private int _scope; + private int _race; + + @Override + public boolean read(GameClient client, PacketReader packet) + { + _group = packet.readC(); + _scope = packet.readC(); + _race = packet.readD(); + return true; + } + + @Override + public void run(GameClient client) + { + client.sendPacket(new ExRankList(_group, _scope, _race)); + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/sessionzones/ExTimedHuntingZoneList.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/sessionzones/ExTimedHuntingZoneList.java new file mode 100644 index 0000000000..8210b4e8cf --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/sessionzones/ExTimedHuntingZoneList.java @@ -0,0 +1,44 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets.sessionzones; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import org.l2jmobius.gameserver.network.serverpackets.timedhunting.TimedHuntingZoneList; + +public class ExTimedHuntingZoneList implements IClientIncomingPacket +{ + @Override + public boolean read(GameClient client, PacketReader packet) + { + return true; + } + + @Override + public void run(GameClient client) + { + final PlayerInstance player = client.getPlayer(); + if (player == null) + { + return; + } + + client.sendPacket(new TimedHuntingZoneList()); + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlayDoMacro.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlayDoMacro.java new file mode 100644 index 0000000000..2f9245e936 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlayDoMacro.java @@ -0,0 +1,40 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; + +/** + * @author Mobius + */ +public class ExAutoPlayDoMacro implements IClientOutgoingPacket +{ + public static final ExAutoPlayDoMacro STATIC_PACKET = new ExAutoPlayDoMacro(); + + public ExAutoPlayDoMacro() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_AUTOPLAY_DO_MACRO.writeId(packet); + packet.writeD(0x114); + return true; + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlaySettingSend.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlaySettingSend.java new file mode 100644 index 0000000000..0ede045993 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlaySettingSend.java @@ -0,0 +1,59 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; + +/** + * @author JoeAlisson + */ +public class ExAutoPlaySettingSend implements IClientOutgoingPacket +{ + private final int _options; + private final boolean _active; + private final boolean _pickUp; + private final int _nextTargetMode; + private final boolean _longRange; + private final int _potionPercent; + private final boolean _respectfulHunting; + + public ExAutoPlaySettingSend(int options, boolean active, boolean pickUp, int nextTargetMode, boolean longRange, int potionPercent, boolean respectfulHunting) + { + _options = options; + _active = active; + _pickUp = pickUp; + _nextTargetMode = nextTargetMode; + _longRange = longRange; + _potionPercent = potionPercent; + _respectfulHunting = respectfulHunting; + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_AUTOPLAY_SETTING.writeId(packet); + packet.writeH(_options); + packet.writeC(_active ? 1 : 0); + packet.writeC(_pickUp ? 1 : 0); + packet.writeH(_nextTargetMode); + packet.writeC(_longRange ? 1 : 0); + packet.writeD(_potionPercent); + packet.writeC(_respectfulHunting ? 1 : 0); + return true; + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExPremiumManagerShowHtml.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExPremiumManagerShowHtml.java new file mode 100644 index 0000000000..dce9bb7483 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ExPremiumManagerShowHtml.java @@ -0,0 +1,49 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.enums.HtmlActionScope; +import org.l2jmobius.gameserver.network.OutgoingPackets; + +/** + * @author JoeAlisson + */ +public class ExPremiumManagerShowHtml extends AbstractHtmlPacket +{ + public ExPremiumManagerShowHtml(String html) + { + super(html); + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_PREMIUM_MANAGER_SHOW_HTML.writeId(packet); + packet.writeD(getNpcObjId()); + packet.writeS(getHtml()); + packet.writeD(-1); + packet.writeD(0); + return true; + } + + @Override + public HtmlActionScope getScope() + { + return HtmlActionScope.PREMIUM_HTML; + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/PvpBookList.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/PvpBookList.java new file mode 100644 index 0000000000..96bbcdacb0 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/PvpBookList.java @@ -0,0 +1,52 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets; + +import java.time.LocalDateTime; +import java.time.ZoneId; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; + +public class PvpBookList implements IClientOutgoingPacket +{ + public PvpBookList() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_PVPBOOK_LIST.writeId(packet); + + int size = 1; + packet.writeD(4); // show killer's location count + packet.writeD(5); // teleport count + packet.writeD(size); // killer count + for (int i = 0; i < size; i++) + { + packet.writeString("killer" + i); // killer name + packet.writeString("clanKiller" + i); // killer clan name + packet.writeD(15); // killer level + packet.writeD(2); // killer race + packet.writeD(10); // killer class + packet.writeD((int) LocalDateTime.now().atZone(ZoneId.systemDefault()).toEpochSecond()); // kill time + packet.writeC(1); // is online + } + return true; + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankList.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankList.java new file mode 100644 index 0000000000..49bd6bc565 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankList.java @@ -0,0 +1,99 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets.ranking; + +import java.util.ArrayList; +import java.util.List; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; +import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; + +/** + * @author JoeAlisson + */ +public class ExRankList implements IClientOutgoingPacket +{ + private final int _race; + private final int _group; + private final int _scope; + + public ExRankList(int group, int scope, int race) + { + _group = group; + _scope = scope; + _race = race; + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_RANKING_CHAR_RANKERS.writeId(packet); + + packet.writeC(_group); + packet.writeC(_scope); + packet.writeD(_race); + + List rankers = new ArrayList<>(); + for (int i = 0; i < 5; i++) + { + addRanker(rankers); + } + + packet.writeD(rankers.size()); + + for (Ranker ranker : rankers) + { + packet.writeString(ranker.name); + packet.writeString(ranker.pledgeName); + packet.writeD(ranker.level); + packet.writeD(ranker.rClass); + packet.writeD(ranker.race); + packet.writeD(ranker.rank); + packet.writeD(ranker.serverRankSnapshot); + packet.writeD(ranker.raceRankSnapshot); + } + + return true; + } + + private static void addRanker(List rankers) + { + final Ranker ranker = new Ranker(); + ranker.name = "Ranker" + rankers.size(); + ranker.pledgeName = "ClanRanker" + rankers.size(); + ranker.level = 80 - rankers.size(); + ranker.race = rankers.size(); + ranker.rClass = 20 + rankers.size(); + ranker.rank = 1 + rankers.size(); + ranker.serverRankSnapshot = ranker.rank + ((rankers.size() % 2) == 0 ? 2 : -1); + ranker.raceRankSnapshot = rankers.size(); + rankers.add(ranker); + } + + private static class Ranker + { + String name; + String pledgeName; + int level; + int rClass; + int rank; + int race; + int serverRankSnapshot; + int raceRankSnapshot; + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankingCharInfo.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankingCharInfo.java new file mode 100644 index 0000000000..3aab619eca --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankingCharInfo.java @@ -0,0 +1,44 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets.ranking; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; +import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; + +/** + * @author JoeAlisson + */ +public class ExRankingCharInfo implements IClientOutgoingPacket +{ + public ExRankingCharInfo() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_RANKING_CHAR_INFO.writeId(packet); + + packet.writeD(1); // server rank + packet.writeD(2); // race rank + packet.writeD(2); // server rank snapshot + packet.writeD(1); // race rank snapshot + + return true; + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/timedhunting/TimedHuntingZoneList.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/timedhunting/TimedHuntingZoneList.java new file mode 100644 index 0000000000..5f47c34786 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/serverpackets/timedhunting/TimedHuntingZoneList.java @@ -0,0 +1,111 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets.timedhunting; + +import java.util.ArrayList; +import java.util.List; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; +import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; + +public class TimedHuntingZoneList implements IClientOutgoingPacket +{ + public TimedHuntingZoneList() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet); + + List infos = new ArrayList<>(); + + addField(infos); + + packet.writeD(infos.size()); + + for (TimeRestrictedFieldInfo info : infos) + { + packet.writeD(info.requiredItems.size()); + + for (FieldRequiredItem item : info.requiredItems) + { + packet.writeD(item.itemId); + packet.writeQ(item.count); + } + + packet.writeD(info.resetCycle); + packet.writeD(info.fieldId); + packet.writeD(info.minLevel); + packet.writeD(info.maxLevel); + packet.writeD(info.remainTimeBase); + packet.writeD(info.remainTime); + packet.writeD(info.remainTimeMax); + packet.writeD(info.remainRefillTime); + packet.writeD(info.refillTimeMax); + packet.writeC(info.fieldActivated ? 1 : 0); + } + + return true; + } + + private void addField(List infos) + { + final TimeRestrictedFieldInfo field = new TimeRestrictedFieldInfo(); + field.resetCycle = 1; + field.fieldId = 2; + field.minLevel = 78; + field.maxLevel = 999; + field.remainTimeBase = 3600; + field.remainTime = 3600; + field.remainTimeMax = 21600; + field.remainRefillTime = 18000; + field.refillTimeMax = 18000; + field.fieldActivated = true; + + final FieldRequiredItem item = new FieldRequiredItem(); + item.itemId = 57; + item.count = 10000; + + field.requiredItems = List.of(item); + infos.add(field); + } + + static class TimeRestrictedFieldInfo + { + List requiredItems; + int resetCycle; + int fieldId; + int minLevel; + int maxLevel; + int remainTimeBase; + int remainTime; + int remainTimeMax; + int remainRefillTime; + int refillTimeMax; + boolean fieldActivated; + + } + + static class FieldRequiredItem + { + int itemId; + long count; + } +} \ No newline at end of file diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/HennaTreeTable.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/HennaTreeTable.java index d17cd0508b..18234114f7 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/HennaTreeTable.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/HennaTreeTable.java @@ -87,7 +87,7 @@ public class HennaTreeTable list.add(temp); } - _hennaTrees.put(ClassId.values()[classId], list); + _hennaTrees.put(ClassId.getClassId(classId), list); hennatree.close(); statement2.close(); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/NpcTable.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/NpcTable.java index 7ac4c57e5e..09bdb786db 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/NpcTable.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/NpcTable.java @@ -220,7 +220,7 @@ public class NpcTable while (learndata.next()) { final int npcId = learndata.getInt("npc_id"); - final int classId = learndata.getInt("class_id"); + final int cId = learndata.getInt("class_id"); final NpcTemplate npc = getTemplate(npcId); if (npc == null) @@ -229,13 +229,14 @@ public class NpcTable continue; } - if (classId >= ClassId.values().length) + final ClassId classId = ClassId.getClassId(cId); + if (classId == null) { - LOGGER.warning("NPCTable: Error defining learning data for NPC " + npcId + ": specified classId " + classId + " is higher then max one " + (ClassId.values().length - 1) + " specified into ClassID Enum --> check your Database to be complient with it"); + LOGGER.warning("NPCTable: Error defining learning data for NPC " + npcId + ": specified classId " + classId + " is not specified into ClassID Enum --> check your Database to be complient with it."); continue; } - npc.addTeachInfo(ClassId.values()[classId]); + npc.addTeachInfo(classId); } learndata.close(); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/SkillTreeTable.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/SkillTreeTable.java index b405c977fe..f86c403122 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/SkillTreeTable.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/datatables/sql/SkillTreeTable.java @@ -76,7 +76,7 @@ public class SkillTreeTable if (parentClassId != -1) { - final Map parentMap = getSkillTrees().get(ClassId.values()[parentClassId]); + final Map parentMap = getSkillTrees().get(ClassId.getClassId(parentClassId)); map.putAll(parentMap); } @@ -99,7 +99,7 @@ public class SkillTreeTable map.put(SkillTable.getSkillHashCode(id, lvl), skillLearn); } - getSkillTrees().put(ClassId.values()[classId], map); + getSkillTrees().put(ClassId.getClassId(classId), map); skilltree.close(); statement2.close(); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/CustomNpcInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/CustomNpcInstance.java index 0099787d14..0efa257749 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/CustomNpcInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/CustomNpcInstance.java @@ -390,7 +390,7 @@ public class CustomNpcInstance { while (true) { - _classId = ClassId.values()[Rnd.get(ClassId.values().length)]; + _classId = ClassId.getClassId(Rnd.get(ClassId.values().length)); if (_classId == null) { continue; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/FolkInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/FolkInstance.java index 9edaa738ee..23022a826b 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/FolkInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/FolkInstance.java @@ -243,8 +243,8 @@ public class FolkInstance extends NpcInstance if (id.length() != 0) { - player.setSkillLearningClassId(ClassId.values()[Integer.parseInt(id)]); - showSkillList(player, ClassId.values()[Integer.parseInt(id)]); + player.setSkillLearningClassId(ClassId.getClassId(Integer.parseInt(id))); + showSkillList(player, ClassId.getClassId(Integer.parseInt(id))); } else { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index dea0fc10ed..a3872dbad6 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1378,7 +1378,7 @@ public class PlayerInstance extends Playable */ public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } /** @@ -13259,7 +13259,7 @@ public class PlayerInstance extends Playable // Commit after database INSERT incase exception is thrown. getSubClasses().put(newClass.getClassIndex(), newClass); - ClassId subTemplate = ClassId.values()[classId]; + ClassId subTemplate = ClassId.getClassId(classId); Collection skillTree = SkillTreeTable.getInstance().getAllowedSkills(subTemplate); if (skillTree == null) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java index 043ac40ce7..3480b4f6f7 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java @@ -989,7 +989,7 @@ public class VillageMasterInstance extends FolkInstance int subClassId = prevSubClass.getClassId(); if (subClassId >= 88) { - subClassId = ClassId.values()[subClassId].getParent().getId(); + subClassId = ClassId.getClassId(subClassId).getParent().getId(); } if ((availSub.ordinal() == subClassId) || (availSub.ordinal() == player.getBaseClass())) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/templates/PlayerTemplate.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/templates/PlayerTemplate.java index 4482b6a9a2..4002cd351e 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/templates/PlayerTemplate.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/templates/PlayerTemplate.java @@ -55,7 +55,7 @@ public class PlayerTemplate extends CreatureTemplate public PlayerTemplate(StatsSet set) { super(set); - classId = ClassId.values()[set.getInt("classId")]; + classId = ClassId.getClassId(set.getInt("classId")); race = Race.values()[set.getInt("raceId")]; className = set.getString("className"); _currentCollisionRadius = set.getInt("collision_radius"); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/base/ClassId.java index d53d67ffd8..9a2a5a80df 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -102,37 +104,6 @@ public enum ClassId ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -187,6 +158,20 @@ public enum ClassId /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -329,18 +314,6 @@ public enum ClassId return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/chars/classList.xml index eb6b06d353..a78b2bab85 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 35a566da74..37bd5df638 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -162,7 +162,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -175,7 +175,7 @@ public class SkillTreesData implements IXmlReader final int parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/WorldRegion.java index c93fa8a28f..1f397dbc95 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 1a06131a4c..8f4b81ed57 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1257,7 +1257,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java index bfcfa6b86d..245c323c6b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java @@ -820,13 +820,13 @@ public class VillageMasterInstance extends NpcInstance return false; } - final ClassId cid = ClassId.values()[classId]; + final ClassId cid = ClassId.getClassId(classId); SubClass sub; ClassId subClassId; for (Iterator subList = iterSubClasses(player); subList.hasNext();) { sub = subList.next(); - subClassId = ClassId.values()[sub.getClassId()]; + subClassId = ClassId.getClassId(sub.getClassId()); if (subClassId.equalsOrChildOf(cid)) { diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/base/ClassId.java index 7dcfcb46c1..83f10ab98e 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -208,6 +174,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -351,18 +331,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java index 8c4a6d3ae4..62c1bf36d5 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java @@ -126,7 +126,7 @@ public class Q00255_Tutorial extends Quest COMPLETE_LOCATION.put(49, new Location(-45032, -113598, -192)); COMPLETE_LOCATION.put(53, new Location(115632, -177996, -905)); } - private static final String TUTORIAL_BUYPASS = "Quest Q00255_Tutorial "; + private static final String TUTORIAL_BYPASS = "Quest Q00255_Tutorial "; private static final int QUESTION_MARK_ID_1 = 1; private static final int QUESTION_MARK_ID_2 = 5; private static final int QUESTION_MARK_ID_3 = 28; @@ -396,9 +396,9 @@ public class Q00255_Tutorial extends Quest public void OnPlayerBypass(OnPlayerBypass event) { final PlayerInstance player = event.getPlayer(); - if (event.getCommand().startsWith(TUTORIAL_BUYPASS)) + if (event.getCommand().startsWith(TUTORIAL_BYPASS)) { - notifyEvent(event.getCommand().replace(TUTORIAL_BUYPASS, ""), null, player); + notifyEvent(event.getCommand().replace(TUTORIAL_BYPASS, ""), null, player); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index fd04a7e86c..acdf2d4223 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index aea50065b3..e2980b2624 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1225,7 +1225,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java index 8c4a6d3ae4..62c1bf36d5 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java @@ -126,7 +126,7 @@ public class Q00255_Tutorial extends Quest COMPLETE_LOCATION.put(49, new Location(-45032, -113598, -192)); COMPLETE_LOCATION.put(53, new Location(115632, -177996, -905)); } - private static final String TUTORIAL_BUYPASS = "Quest Q00255_Tutorial "; + private static final String TUTORIAL_BYPASS = "Quest Q00255_Tutorial "; private static final int QUESTION_MARK_ID_1 = 1; private static final int QUESTION_MARK_ID_2 = 5; private static final int QUESTION_MARK_ID_3 = 28; @@ -396,9 +396,9 @@ public class Q00255_Tutorial extends Quest public void OnPlayerBypass(OnPlayerBypass event) { final PlayerInstance player = event.getPlayer(); - if (event.getCommand().startsWith(TUTORIAL_BUYPASS)) + if (event.getCommand().startsWith(TUTORIAL_BYPASS)) { - notifyEvent(event.getCommand().replace(TUTORIAL_BUYPASS, ""), null, player); + notifyEvent(event.getCommand().replace(TUTORIAL_BYPASS, ""), null, player); } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index fd04a7e86c..acdf2d4223 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index e1f2c1abd3..ea08b34ac6 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1226,7 +1226,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java index 8c4a6d3ae4..62c1bf36d5 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java @@ -126,7 +126,7 @@ public class Q00255_Tutorial extends Quest COMPLETE_LOCATION.put(49, new Location(-45032, -113598, -192)); COMPLETE_LOCATION.put(53, new Location(115632, -177996, -905)); } - private static final String TUTORIAL_BUYPASS = "Quest Q00255_Tutorial "; + private static final String TUTORIAL_BYPASS = "Quest Q00255_Tutorial "; private static final int QUESTION_MARK_ID_1 = 1; private static final int QUESTION_MARK_ID_2 = 5; private static final int QUESTION_MARK_ID_3 = 28; @@ -396,9 +396,9 @@ public class Q00255_Tutorial extends Quest public void OnPlayerBypass(OnPlayerBypass event) { final PlayerInstance player = event.getPlayer(); - if (event.getCommand().startsWith(TUTORIAL_BUYPASS)) + if (event.getCommand().startsWith(TUTORIAL_BYPASS)) { - notifyEvent(event.getCommand().replace(TUTORIAL_BUYPASS, ""), null, player); + notifyEvent(event.getCommand().replace(TUTORIAL_BYPASS, ""), null, player); } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index fd04a7e86c..acdf2d4223 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index e0f4820577..0ae9004067 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1224,7 +1224,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/ElementalSpiritData.xml b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/ElementalSpiritData.xml index f536444859..c0efe129df 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/ElementalSpiritData.xml +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/ElementalSpiritData.xml @@ -3,185 +3,328 @@ - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java index 8c4a6d3ae4..62c1bf36d5 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java @@ -126,7 +126,7 @@ public class Q00255_Tutorial extends Quest COMPLETE_LOCATION.put(49, new Location(-45032, -113598, -192)); COMPLETE_LOCATION.put(53, new Location(115632, -177996, -905)); } - private static final String TUTORIAL_BUYPASS = "Quest Q00255_Tutorial "; + private static final String TUTORIAL_BYPASS = "Quest Q00255_Tutorial "; private static final int QUESTION_MARK_ID_1 = 1; private static final int QUESTION_MARK_ID_2 = 5; private static final int QUESTION_MARK_ID_3 = 28; @@ -396,9 +396,9 @@ public class Q00255_Tutorial extends Quest public void OnPlayerBypass(OnPlayerBypass event) { final PlayerInstance player = event.getPlayer(); - if (event.getCommand().startsWith(TUTORIAL_BUYPASS)) + if (event.getCommand().startsWith(TUTORIAL_BYPASS)) { - notifyEvent(event.getCommand().replace(TUTORIAL_BUYPASS, ""), null, player); + notifyEvent(event.getCommand().replace(TUTORIAL_BYPASS, ""), null, player); } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/ElementalSpiritData.xsd b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/ElementalSpiritData.xsd index c4fe1eb554..f89369aa57 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/ElementalSpiritData.xsd +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/ElementalSpiritData.xsd @@ -14,7 +14,7 @@ - + diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index fd04a7e86c..acdf2d4223 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/enums/ElementalType.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/enums/ElementalType.java index 1e0d98411e..fca242156f 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/enums/ElementalType.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/enums/ElementalType.java @@ -39,12 +39,22 @@ public enum ElementalType return values()[elementId]; } - public ElementalType getDominating() + public boolean isSuperior(ElementalType targetType) { - return dominating(this); + return this == superior(targetType); } - public ElementalType dominating(ElementalType elementalType) + public boolean isInferior(ElementalType targetType) + { + return targetType == superior(this); + } + + public ElementalType getSuperior() + { + return superior(this); + } + + public static ElementalType superior(ElementalType elementalType) { switch (elementalType) { @@ -69,6 +79,7 @@ public enum ElementalType return NONE; } } + } public Stats getAttackStat() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 438a868a83..77866732e1 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -641,7 +641,7 @@ public class Attackable extends Npc if ((player.getActiveElementalSpiritType() > 0) && (getAttributeExp() > 0) && (getElementalSpiritType() != ElementalType.NONE)) { final long attributeExp = (long) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus()); - final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getDominating()); + final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getSuperior()); if (spirit != null) { spirit.addExperience(attributeExp); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java index ba2cd65a40..63b133f599 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4544,7 +4544,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } - elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this); + elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this, value); value += elementalDamage; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 1d65978683..72e8081bb9 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1234,7 +1234,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 3ad855a88d..3e25e122c0 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1654,7 +1654,7 @@ public class Formulas return 1; } - public static double calcSpiritElementalDamage(Creature attacker, Creature target) + public static double calcSpiritElementalDamage(Creature attacker, Creature target, double baseDamage) { if (attacker.isPlayer()) { @@ -1667,63 +1667,54 @@ public class Formulas } final double critRate = attackerPlayer.getElementalSpiritCritRate(); - final boolean isCrit = Math.min(critRate, 380) > Rnd.get(1000); + final boolean isCrit = Math.min(critRate * 10, 380) > Rnd.get(1000); final double critDamage = attackerPlayer.getElementalSpiritCritDamage(); - final double attack = attackerPlayer.getActiveElementalSpiritAttack() - target.getElementalSpiritDefenseOf(type); + final double attack = (attackerPlayer.getActiveElementalSpiritAttack() - target.getElementalSpiritDefenseOf(type)) + Rnd.get(-2, 8); if (target.isPlayer()) { - return calcSpiritElementalPvPDamage(attack, critDamage, isCrit); + return calcSpiritElementalPvPDamage(attack, critDamage, isCrit, baseDamage); } - return calcSpiritElementalPvEDamage(type, target.getElementalSpiritType(), attack, critDamage, isCrit); + return calcSpiritElementalPvEDamage(type, target.getElementalSpiritType(), attack, critDamage, isCrit, baseDamage); } return 0; } - private static double calcSpiritElementalPvPDamage(double attack, double critDamage, boolean isCrit) + private static double calcSpiritElementalPvPDamage(double attack, double critDamage, boolean isCrit, double baseDamage) { - double damage = (attack * 1.223) + Rnd.get(-20, +20); + double base = Math.abs(attack * 1.3); if (isCrit) { - damage += (attack * 1.223) + (((attack * 0.03) + 24) * critDamage) + Rnd.get(-5, 30); + base += Math.abs((attack * 1.223) + (((attack * 0.03) + 24) * critDamage) + Rnd.get(-5, 30)); } - return damage; + return ((base * attack) + (baseDamage * 0.3)) / Math.log(baseDamage); } - private static double calcSpiritElementalPvEDamage(ElementalType attackerType, ElementalType targetType, double attack, double critDamage, boolean isCrit) + private static double calcSpiritElementalPvEDamage(ElementalType attackerType, ElementalType targetType, double attack, double critDamage, boolean isCrit, double baseDamage) { - double damage; - double baseDamage = (attack * 0.8) + Rnd.get(-25, 25); - double bonus = 1; - if (targetType == ElementalType.NONE) + double damage = Math.abs(attack * 0.8); + double bonus; + + if (attackerType.isSuperior(targetType)) { - damage = attack * 0.735; - } - else if (attackerType.getDominating() == targetType) - { - damage = (-1136 + baseDamage) * 0.6; - bonus = 0.6; - } - else if (targetType.getDominating() == attackerType) - { - damage = (185 + baseDamage) * 1.2; - bonus = 1.2; + damage *= 1.3; + bonus = 1.3; } else if (targetType == attackerType) { - damage = baseDamage; + bonus = 1.1; } else { - damage = (-477 + baseDamage) * 0.8; - bonus = 0.8; + damage *= 1.1; + bonus = 1.1; } if (isCrit) { - damage += ((40 + ((9.2 + (attack * 0.048)) * critDamage)) * bonus) + Rnd.get(-10, 50); + damage += Math.abs(((40 + ((9.2 + (attack * 0.048)) * critDamage)) * bonus) + Rnd.get(-10, 50)); } - return damage; + return ((damage * attack) + (baseDamage * bonus)) / Math.log(baseDamage); } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/ElementalSpiritData.xml b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/ElementalSpiritData.xml index df520f1e44..3ca1a8c097 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/ElementalSpiritData.xml +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/ElementalSpiritData.xml @@ -3,185 +3,328 @@ - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java index 8c4a6d3ae4..62c1bf36d5 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java @@ -126,7 +126,7 @@ public class Q00255_Tutorial extends Quest COMPLETE_LOCATION.put(49, new Location(-45032, -113598, -192)); COMPLETE_LOCATION.put(53, new Location(115632, -177996, -905)); } - private static final String TUTORIAL_BUYPASS = "Quest Q00255_Tutorial "; + private static final String TUTORIAL_BYPASS = "Quest Q00255_Tutorial "; private static final int QUESTION_MARK_ID_1 = 1; private static final int QUESTION_MARK_ID_2 = 5; private static final int QUESTION_MARK_ID_3 = 28; @@ -396,9 +396,9 @@ public class Q00255_Tutorial extends Quest public void OnPlayerBypass(OnPlayerBypass event) { final PlayerInstance player = event.getPlayer(); - if (event.getCommand().startsWith(TUTORIAL_BUYPASS)) + if (event.getCommand().startsWith(TUTORIAL_BYPASS)) { - notifyEvent(event.getCommand().replace(TUTORIAL_BUYPASS, ""), null, player); + notifyEvent(event.getCommand().replace(TUTORIAL_BYPASS, ""), null, player); } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/chars/classList.xml index f33dd9f8a0..6d7f0dd7f2 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/chars/classList.xml @@ -90,12 +90,7 @@ - - - - - - + @@ -155,9 +150,9 @@ - - - + + + diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/items/91000-91099.xml b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/items/91000-91099.xml index eaafe970a3..0650bcab46 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/items/91000-91099.xml +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/items/91000-91099.xml @@ -354,6 +354,7 @@ + @@ -361,6 +362,7 @@ + @@ -368,6 +370,7 @@ + @@ -375,6 +378,7 @@ + diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/ElementalSpiritData.xsd b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/ElementalSpiritData.xsd index d301984741..3aad4356af 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/ElementalSpiritData.xsd +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/ElementalSpiritData.xsd @@ -14,7 +14,7 @@ - + diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index fd04a7e86c..acdf2d4223 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -194,7 +194,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +219,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/enums/ElementalType.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/enums/ElementalType.java index 86643c048a..6aabb2750c 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/enums/ElementalType.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/enums/ElementalType.java @@ -39,12 +39,22 @@ public enum ElementalType return values()[elementId]; } - public ElementalType getDominating() + public boolean isSuperior(ElementalType targetType) { - return dominating(this); + return this == superior(targetType); } - public ElementalType dominating(ElementalType elementalType) + public boolean isInferior(ElementalType targetType) + { + return targetType == superior(this); + } + + public ElementalType getSuperior() + { + return superior(this); + } + + public static ElementalType superior(ElementalType elementalType) { switch (elementalType) { @@ -69,6 +79,7 @@ public enum ElementalType return NONE; } } + } public Stats getAttackStat() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/WorldRegion.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/WorldRegion.java index d3a0898036..f6ed8a3530 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/WorldRegion.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/WorldRegion.java @@ -252,6 +252,17 @@ public class WorldRegion public void setSurroundingRegions(WorldRegion[] regions) { _surroundingRegions = regions; + + // Make sure that this region is always the first region to improve bulk operations when this region should be updated first. + for (int i = 0; i < _surroundingRegions.length; i++) + { + if (_surroundingRegions[i] == this) + { + final WorldRegion first = _surroundingRegions[0]; + _surroundingRegions[0] = this; + _surroundingRegions[i] = first; + } + } } public WorldRegion[] getSurroundingRegions() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Attackable.java index 438a868a83..77866732e1 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Attackable.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Attackable.java @@ -641,7 +641,7 @@ public class Attackable extends Npc if ((player.getActiveElementalSpiritType() > 0) && (getAttributeExp() > 0) && (getElementalSpiritType() != ElementalType.NONE)) { final long attributeExp = (long) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus()); - final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getDominating()); + final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getSuperior()); if (spirit != null) { spirit.addExperience(attributeExp); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java index ba2cd65a40..63b133f599 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4544,7 +4544,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } - elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this); + elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this, value); value += elementalDamage; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ae5326e3c8..5e2e48de17 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1234,7 +1234,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9712321557..55e94ed427 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - + MALE_SOLDIER(123, false, Race.KAMAEL, null), FEMALE_SOLDIER(124, false, Race.KAMAEL, null), TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER), @@ -189,10 +155,7 @@ public enum ClassId implements IIdentifiable TRICKSTER(134, false, Race.KAMAEL, ARBALESTER), INSPECTOR(135, false, Race.KAMAEL, WARDER), JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - + SIGEL_KNIGHT(139, false, null, null), TYRR_WARRIOR(140, false, null, null), OTHELL_ROGUE(141, false, null, null), @@ -201,9 +164,7 @@ public enum ClassId implements IIdentifiable ISS_ENCHANTER(144, false, null, null), WYNN_SUMMONER(145, false, null, null), AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - + SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), @@ -269,6 +230,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -363,7 +338,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -413,18 +387,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 3ad855a88d..3e25e122c0 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1654,7 +1654,7 @@ public class Formulas return 1; } - public static double calcSpiritElementalDamage(Creature attacker, Creature target) + public static double calcSpiritElementalDamage(Creature attacker, Creature target, double baseDamage) { if (attacker.isPlayer()) { @@ -1667,63 +1667,54 @@ public class Formulas } final double critRate = attackerPlayer.getElementalSpiritCritRate(); - final boolean isCrit = Math.min(critRate, 380) > Rnd.get(1000); + final boolean isCrit = Math.min(critRate * 10, 380) > Rnd.get(1000); final double critDamage = attackerPlayer.getElementalSpiritCritDamage(); - final double attack = attackerPlayer.getActiveElementalSpiritAttack() - target.getElementalSpiritDefenseOf(type); + final double attack = (attackerPlayer.getActiveElementalSpiritAttack() - target.getElementalSpiritDefenseOf(type)) + Rnd.get(-2, 8); if (target.isPlayer()) { - return calcSpiritElementalPvPDamage(attack, critDamage, isCrit); + return calcSpiritElementalPvPDamage(attack, critDamage, isCrit, baseDamage); } - return calcSpiritElementalPvEDamage(type, target.getElementalSpiritType(), attack, critDamage, isCrit); + return calcSpiritElementalPvEDamage(type, target.getElementalSpiritType(), attack, critDamage, isCrit, baseDamage); } return 0; } - private static double calcSpiritElementalPvPDamage(double attack, double critDamage, boolean isCrit) + private static double calcSpiritElementalPvPDamage(double attack, double critDamage, boolean isCrit, double baseDamage) { - double damage = (attack * 1.223) + Rnd.get(-20, +20); + double base = Math.abs(attack * 1.3); if (isCrit) { - damage += (attack * 1.223) + (((attack * 0.03) + 24) * critDamage) + Rnd.get(-5, 30); + base += Math.abs((attack * 1.223) + (((attack * 0.03) + 24) * critDamage) + Rnd.get(-5, 30)); } - return damage; + return ((base * attack) + (baseDamage * 0.3)) / Math.log(baseDamage); } - private static double calcSpiritElementalPvEDamage(ElementalType attackerType, ElementalType targetType, double attack, double critDamage, boolean isCrit) + private static double calcSpiritElementalPvEDamage(ElementalType attackerType, ElementalType targetType, double attack, double critDamage, boolean isCrit, double baseDamage) { - double damage; - double baseDamage = (attack * 0.8) + Rnd.get(-25, 25); - double bonus = 1; - if (targetType == ElementalType.NONE) + double damage = Math.abs(attack * 0.8); + double bonus; + + if (attackerType.isSuperior(targetType)) { - damage = attack * 0.735; - } - else if (attackerType.getDominating() == targetType) - { - damage = (-1136 + baseDamage) * 0.6; - bonus = 0.6; - } - else if (targetType.getDominating() == attackerType) - { - damage = (185 + baseDamage) * 1.2; - bonus = 1.2; + damage *= 1.3; + bonus = 1.3; } else if (targetType == attackerType) { - damage = baseDamage; + bonus = 1.1; } else { - damage = (-477 + baseDamage) * 0.8; - bonus = 0.8; + damage *= 1.1; + bonus = 1.1; } if (isCrit) { - damage += ((40 + ((9.2 + (attack * 0.048)) * critDamage)) * bonus) + Rnd.get(-10, 50); + damage += Math.abs(((40 + ((9.2 + (attack * 0.048)) * critDamage)) * bonus) + Rnd.get(-10, 50)); } - return damage; + return ((damage * attack) + (baseDamage * bonus)) / Math.log(baseDamage); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/CategoryData.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/CategoryData.xml index 11f516e561..97d8c37649 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/CategoryData.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/CategoryData.xml @@ -53,8 +53,6 @@ 114 117 118 - 123 - 124 125 126 127 @@ -62,43 +60,11 @@ 129 130 131 - 132 - 133 134 - 135 - 136 - 139 - 140 - 141 - 142 - 144 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - 182 - 184 - 186 - 188 + 192 + 193 + 194 + 195 10 @@ -138,24 +104,6 @@ 112 115 116 - 143 - 145 - 146 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 183 - 185 - 187 - 189 10 @@ -184,20 +132,6 @@ 52 115 116 - 143 - 145 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 183 - 185 - 187 - 189 10 @@ -212,11 +146,6 @@ 43 97 98 - 105 - 146 - 179 - 180 - 181 0 @@ -250,71 +179,16 @@ 109 113 114 - 123 - 124 125 126 127 - 128 - 129 130 - 135 131 - 132 - 133 134 - 136 - 140 - 141 - 142 - 144 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - 182 - 184 - 186 - 188 - - - 4 - 5 - 6 - 90 - 91 - 19 - 20 - 99 - 32 - 33 - 106 - 54 - 56 - 55 - 57 - 117 - 118 - 139 - 148 - 149 - 150 - 151 + 192 + 193 + 194 + 195 0 @@ -326,10 +200,7 @@ 44 49 53 - 123 - 124 - 182 - 183 + 192 1 @@ -352,6 +223,7 @@ 56 125 126 + 193 2 @@ -386,12 +258,8 @@ 55 57 127 - 128 - 129 130 - 135 - 184 - 185 + 194 88 @@ -426,1426 +294,20 @@ 117 118 131 - 132 - 133 134 - 136 - 186 - 187 - - - 0 - 10 - 18 - 25 - 31 - 38 - 44 - 49 - 53 - 1 - 4 - 7 - 11 - 15 - 19 - 22 - 26 - 29 - 32 - 35 - 39 - 42 - 45 - 47 - 50 - 54 - 56 - 2 - 3 - 5 - 6 - 8 - 9 - 12 - 13 - 14 - 16 - 17 - 20 - 21 - 23 - 24 - 27 - 28 - 30 - 33 - 34 - 36 - 37 - 40 - 41 - 43 - 46 - 48 - 51 - 52 - 55 - 57 - 88 - 89 - 90 - 91 - 92 - 93 - 94 - 95 - 96 - 97 - 98 - 99 - 100 - 101 - 102 - 103 - 104 - 105 - 106 - 107 - 108 - 109 - 110 - 111 - 112 - 113 - 114 - 115 - 116 - 117 - 118 - 139 - 140 - 141 - 142 - 143 - 144 - 145 - 146 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 166 - 167 - 168 - 169 - 170 - 171 - 172 - 173 - 174 - 175 - 176 - 177 - 178 - 179 - 180 - 181 - 182 - 184 - 186 - 188 - 183 - 185 - 187 - 189 - - - 139 - 140 - 141 - 142 - 143 - 144 - 145 - 146 - - - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 166 - 167 - 168 - 169 - 170 - 171 - 172 - 173 - 174 - 175 - 176 - 177 - 178 - 179 - 180 - 181 - 188 - 189 - - - 148 - 149 - 150 - 151 - - - 152 - 153 - 154 - 155 - 156 - 157 - - - 158 - 159 - 160 - 161 - - - 162 - 163 - 164 - 165 - - - 166 - 167 - 168 - 169 - 170 - - - 171 - 172 - 173 - 174 - 175 - - - 176 - 177 - 178 - - - 179 - 180 - 181 + 195 53 54 55 117 - 161 53 56 57 118 - 156 - - - 14001 - 14002 - 14003 - 14004 - 14005 - 14006 - 14007 - 14008 - 14009 - 14010 - 14011 - 14012 - 14013 - 14014 - 14015 - 14016 - 14017 - 14018 - 14019 - 14020 - 14021 - 14022 - 14023 - 14024 - 14025 - 14026 - 14027 - 14028 - 14029 - 14030 - 14031 - 14032 - 14033 - 14034 - 14035 - 14036 - 14037 - 14038 - 14039 - 14040 - 14041 - 14042 - 14043 - 14044 - 14045 - 14046 - 14047 - 14048 - 14049 - 14050 - 14051 - 14052 - 14053 - 14054 - 14055 - 14056 - 14057 - 14058 - 14059 - 14060 - 14061 - 14062 - 14063 - 14064 - 14065 - 14066 - 14067 - 14068 - 14069 - 14070 - 14071 - 14072 - 14073 - 14074 - 14075 - 14076 - 14077 - 14078 - 14079 - 14080 - 14081 - 14082 - 14083 - 14084 - 14085 - 14086 - 14087 - 14088 - 14089 - 14090 - 14091 - 14092 - 14093 - 14094 - 14095 - 14096 - 14097 - 14098 - 14099 - 14100 - 14101 - 14102 - 14103 - 14104 - 14105 - 14106 - 14107 - 14108 - 14109 - 14110 - 14111 - 14112 - 14113 - 14114 - 14115 - 14116 - 14117 - 14118 - 14119 - 14120 - 14121 - 14122 - 14123 - 14124 - 14125 - 14126 - 14127 - 14128 - 14129 - 14130 - 14131 - 14132 - 14133 - 14134 - 14135 - 14136 - 14137 - 14138 - 14139 - 14140 - 14141 - 14142 - 14143 - 14144 - 14145 - 14146 - 14147 - 14148 - 14149 - 14150 - 14151 - 14152 - 14153 - 14154 - 14155 - 14156 - 14157 - 14158 - 14159 - 14160 - 14161 - 14162 - 14163 - 14164 - 14165 - 14166 - 14167 - 14168 - 14169 - 14170 - 14171 - 14172 - 14173 - 14174 - 14175 - 14176 - 14177 - 14178 - 14179 - 14180 - 14181 - 14182 - 14183 - 14184 - 14185 - 14186 - 14187 - 14188 - 14189 - 14190 - 14191 - 14192 - 14193 - 14194 - 14195 - 14196 - 14197 - 14198 - 14199 - 14200 - 14201 - 14202 - 14203 - 14204 - 14205 - 14206 - 14207 - 14208 - 14209 - 14210 - 14211 - 14212 - 14213 - 14214 - 14215 - 14216 - 14217 - 14218 - 14219 - 14220 - 14221 - 14222 - 14223 - 14224 - 14225 - 14226 - 14227 - 14228 - 14229 - 14230 - 14231 - 14232 - 14233 - 14234 - 14235 - 14236 - 14237 - 14238 - 14239 - 14240 - 14241 - 14242 - 14243 - 14244 - 14245 - 14246 - 14247 - 14248 - 14249 - 14250 - 14251 - 14252 - 14253 - 14254 - 14255 - 14256 - 14257 - 14258 - 14259 - 14260 - 14265 - 14266 - 14267 - 14268 - 14269 - 14270 - 14271 - 14272 - 14273 - 14274 - 14275 - 14276 - 14277 - 14278 - 14279 - 14280 - 14281 - 14282 - 14283 - 14284 - 14285 - 14286 - 14287 - 14288 - 14289 - 14290 - 14291 - 14292 - 14293 - 14294 - 14295 - 14296 - 14297 - 14298 - 14299 - 14300 - 14301 - 14302 - 14303 - 14304 - 14305 - 14306 - 14307 - 14308 - 14309 - 14310 - 14311 - 14312 - 14313 - 14314 - 14315 - 14316 - 14317 - 14318 - 14319 - 14320 - 14321 - 14322 - 14323 - 14324 - 14325 - 14326 - 14327 - 14328 - 14329 - 14330 - 14331 - 14332 - 14333 - 14334 - 14335 - 14336 - 14337 - 14338 - 14339 - 14340 - 14341 - 14342 - 14343 - 14344 - 14345 - 14346 - 14347 - 14348 - 14349 - 14350 - 14351 - 14352 - 14353 - 14354 - 14355 - 14356 - 14357 - 14358 - 14359 - 14360 - 14361 - 14362 - 14363 - 14364 - 14365 - 14366 - 14367 - 14368 - 14369 - 14370 - 14371 - 14372 - 14373 - 14374 - 14375 - 14376 - 14377 - 14378 - 14379 - 14380 - 14381 - 14382 - 14383 - 14384 - 14385 - 14386 - 14387 - 14388 - 14389 - 14390 - 14391 - 14392 - 14393 - 14394 - 14395 - 14396 - 14397 - 14398 - 14399 - 14400 - 14401 - 14402 - 14403 - 14404 - 14405 - 14406 - 14407 - 14408 - 14409 - 14410 - 14411 - 14412 - 14413 - 14414 - 14415 - 14416 - 14417 - 14418 - 14419 - 14420 - 14421 - 14422 - 14423 - 14424 - 14425 - 14426 - 14427 - 14428 - 14429 - 14430 - 14431 - 14432 - 14433 - 14434 - 14435 - 14436 - 14437 - 14438 - 14439 - 14440 - 14441 - 14442 - 14443 - 14444 - 14449 - 14450 - 14451 - 14452 - 14453 - 14454 - 14455 - 14456 - 14457 - 14458 - 14459 - 14460 - 14461 - 14462 - 14463 - 14464 - 14465 - 14466 - 14467 - 14468 - 14469 - 14470 - 14471 - 14472 - 14473 - 14474 - 14475 - 14476 - 14477 - 14478 - 14479 - 14480 - 14481 - 14482 - 14483 - 14484 - 14485 - 14486 - 14487 - 14488 - 14489 - 14490 - 14491 - 14492 - 14493 - 14494 - 14495 - 14496 - 14497 - 14498 - 14499 - 14500 - 14501 - 14502 - 14503 - 14504 - 14505 - 14506 - 14507 - 14508 - 14509 - 14510 - 14511 - 14512 - 14513 - 14514 - 14515 - 14516 - 14517 - 14518 - 14519 - 14520 - 14521 - 14522 - 14523 - 14524 - 14525 - 14526 - 14527 - 14528 - 14529 - 14530 - 14531 - 14532 - 14533 - 14534 - 14535 - 14536 - 14537 - 14538 - 14539 - 14540 - 14541 - 14542 - 14543 - 14544 - 14545 - 14546 - 14547 - 14548 - 14549 - 14550 - 14551 - 14552 - 14553 - 14554 - 14555 - 14556 - 14557 - 14558 - 14559 - 14560 - 14561 - 14562 - 14563 - 14564 - 14565 - 14566 - 14567 - 14568 - 14569 - 14570 - 14571 - 14572 - 14573 - 14574 - 14575 - 14576 - 14577 - 14578 - 14579 - 14580 - 14581 - 14582 - 14583 - 14584 - 14585 - 14586 - 14587 - 14588 - 14589 - 14590 - 14591 - 14592 - 14593 - 14594 - 14595 - 14596 - 14597 - 14598 - 14599 - 14600 - 14601 - 14602 - 14603 - 14604 - 14605 - 14606 - 14607 - 14608 - 14609 - 14610 - 14611 - 14612 - 14613 - 14614 - 14615 - 14616 - 14617 - 14618 - 14619 - 14620 - 14621 - 14622 - 14623 - 14624 - 14625 - 14626 - 14627 - 14628 - 14633 - 14634 - 14635 - 14636 - 14637 - 14638 - 14639 - 14640 - 14641 - 14642 - 14643 - 14644 - 14645 - 14646 - 14647 - 14648 - 14649 - 14650 - 14651 - 14652 - 14653 - 14654 - 14655 - 14656 - 14657 - 14658 - 14659 - 14660 - 14661 - 14662 - 14663 - 14664 - 14665 - 14666 - 14667 - 14668 - 14669 - 14670 - 14671 - 14672 - 14673 - 14674 - 14675 - 14676 - 14677 - 14678 - 14679 - 14680 - 14681 - 14682 - 14683 - 14684 - 14685 - 14686 - 14687 - 14688 - 14689 - 14690 - 14691 - 14692 - 14693 - 14694 - 14695 - 14696 - 14697 - 14698 - 14699 - 14700 - 14701 - 14702 - 14703 - 14704 - 14705 - 14706 - 14707 - 14708 - 14709 - 14710 - 14711 - 14712 - 14713 - 14714 - 14715 - 14716 - 14717 - 14718 - 14719 - 14720 - 14721 - 14722 - 14723 - 14724 - 14725 - 14726 - 14727 - 14728 - 14729 - 14730 - 14731 - 14732 - 14733 - 14734 - 14735 - 14736 - 14737 - 14738 - 14739 - 14740 - 14741 - 14742 - 14743 - 14744 - 14745 - 14746 - 14747 - 14748 - 14749 - 14750 - 14751 - 14752 - 14753 - 14754 - 14755 - 14756 - 14757 - 14758 - 14759 - 14760 - 14761 - 14762 - 14763 - 14764 - 14765 - 14766 - 14767 - 14768 - 14769 - 14770 - 14771 - 14772 - 14773 - 14774 - 14775 - 14776 - 14777 - 14778 - 14779 - 14780 - 14781 - 14782 - 14783 - 14784 - 14785 - 14786 - 14787 - 14788 - 14789 - 14790 - 14791 - 14792 - 14793 - 14794 - 14795 - 14796 - 14797 - 14798 - 14799 - 14800 - 14801 - 14802 - 14803 - 14804 - 14805 - 14806 - 14807 - 14808 - 14809 - 14810 - 14811 - 14812 - 14813 - 14814 - 14815 - 14816 - 14817 - 14818 - 14819 - 14820 - 14821 - 14822 - 14823 - 14824 - 14825 - 14826 - 14827 - 14828 - 14829 - 14830 - 14831 - 14832 - 14833 - 14834 - 14835 - 14836 - 14837 - 14838 - 14839 - 14840 - 14841 - 14842 - 14843 - 14844 - 14845 - 14846 - 14847 - 14848 - 14849 - 14850 - 14851 - 14852 - 14853 - 14854 - 14855 - 14856 - 14857 - 14858 - 14859 - 14860 - 14861 - 14862 - 14863 - 14864 - 14865 - 14866 - 14867 - 14868 - 14869 - 12077 - 12311 - 12312 - 12313 - 12526 - 12527 - 12528 - 12564 - 12621 - 12780 - 12781 - 12782 - 16025 - 13071 - 13072 - 13073 - 13074 - 13075 - 13076 - 14870 - 14871 - 14872 - 14873 - 14874 - 14875 - 14876 - 14877 - 14878 - 14879 - 14880 - 14881 - 14882 - 14883 - 14884 - 14885 - 14886 - 14887 - 14888 - 14889 - 14890 - 14891 - 14892 - 14893 - 14894 - 14895 - 14896 - 14897 - 14898 - 14899 - 14900 - 14901 - 14902 - 14903 - 14904 - 14905 - 14906 - 14907 - 14908 - 14909 - 14910 - 14911 - 14912 - 14913 - 14914 - 14915 - 16030 - 16034 - 16035 - 16036 - 16037 - 16038 - 16039 - 16040 - 16041 - 16042 - 16043 - 16044 - 16045 - 16046 - 14916 - 14917 - 14918 - 16050 - 16051 - 16052 - 16053 - 16067 - 16068 - 16071 - 16072 - 13302 - 13303 - 13304 - 13305 - 14929 - 14930 - 14931 - 14947 - 14948 - 14949 - 14950 - 14951 - 14952 - 14953 - 14954 - 14955 - 14956 - 14957 - 14958 - 14959 - 14960 - 14961 - 14962 - 14963 - 14964 - 14965 - 14966 - 14967 - 14926 - 14932 - 14940 - 14941 - 14942 - 14986 - 14987 - 14988 - 14989 - 14990 - 14991 - 14992 - 14993 - 14994 - 14995 - 14996 - 14997 - 14998 - 14999 - 14936 - 14937 - 14938 - 14939 - 14974 - 14975 - 14976 - 14977 - 14978 - 14979 - 14980 - 14981 - 14982 - 14983 - 14984 - 14985 - 14933 - 14943 - 15010 - 15011 - 15012 - 15013 - 15014 - 15015 - 15016 - 15017 - 15018 - 15019 - 15020 - 15021 - 14925 - 14944 - 14945 - 14946 - 15000 - 15001 - 15002 - 15003 - 15004 - 15005 - 15006 - 15007 - 15008 - 15009 - 14968 - 14969 - 14970 - 14927 - 14928 - 15022 - 15023 - 15024 - 15025 - 15026 - 15027 - 15028 - 15029 - 15030 - 15031 - 15032 - 15033 - 15034 - 15035 - 15036 - 15037 - 15038 - 15039 - 15040 - 15041 - 15042 - 15043 - 15044 - 15045 - 15046 - 15047 - 15048 - 15049 - 15050 - 15051 - 15053 - 15054 - 15055 - 15056 - 15057 - 15058 - 15059 - 15060 - 15061 - 15062 - 15063 - 15064 - 15065 - 1562 - 1563 - 1564 - 1565 - 1566 - 1567 - 1568 - 1569 - 1570 - 1571 - 1572 - 1573 - 16094 - 16095 - 16096 - 16097 - - - 4 - 19 - 32 - - - 15 - 29 - 5 - 19 - 4 - - - 15 - 29 - 42 - 50 - - - 15 - 42 - - - 1 - 19 - 32 - 45 - 47 - - - 1 - 4 - 7 - 11 - 15 - - - 22 - 19 - 26 - 29 - - - 35 - 32 - 39 - 42 - - - 50 - 45 - 47 - - - 54 - 56 12526 @@ -1856,159 +318,15 @@ 16040 16068 - - 12526 - 12527 - 12528 - - - 16038 - 16039 - 16040 - 16068 - 16030 16037 16041 16042 - - 16025 - 16030 - 16037 - 16041 - 16042 - - - 12311 - 12312 - 12313 - - - 12780 - 12781 - 12782 - - - 16034 - 16035 - 16036 - 12621 - - 12077 - 16025 - 16030 - 16037 - 16041 - 16042 - - - 12077 - - - 12564 - - - 12077 - 12311 - 12312 - 12313 - 12526 - 12527 - 12528 - 12780 - 12781 - 12782 - 16025 - 16030 - 16034 - 16035 - 16036 - 16037 - 16038 - 16039 - 16040 - 16041 - 16042 - 16043 - 16044 - 16045 - 16046 - 16050 - 16051 - 16052 - 16053 - 16067 - 16068 - 16071 - 16072 - 1561 - 1538 - 1562 - 1563 - 1564 - 1565 - 1566 - 1567 - 1568 - 1569 - 1570 - 1571 - 1572 - 1573 - 16094 - 16095 - 16096 - 16097 - - - 12077 - 12311 - 12312 - 12313 - 12526 - 12527 - 12528 - 12780 - 12781 - 12782 - 16025 - 16030 - 16034 - 16035 - 16036 - 16037 - 16038 - 16039 - 16040 - 16041 - 16042 - 16068 - 16067 - 16071 - 16072 - 1561 - - - 8 - 23 - 36 - 93 - 101 - 108 - - - 9 - 24 - 37 - 92 - 102 - 109 - 5 6 @@ -2019,34 +337,6 @@ 106 99 - - 14 - 28 - 41 - 96 - 104 - 111 - - - 30 - 43 - 105 - 112 - - - 21 - 34 - 100 - 107 - - - 12 - 27 - 40 - 94 - 103 - 110 - 0 1 @@ -2064,25 +354,6 @@ 91 92 93 - 152 - 153 - 148 - 149 - 162 - 158 - - - 10 - 11 - 12 - 13 - 14 - 94 - 95 - 96 - 166 - 167 - 176 10 @@ -2099,10 +370,6 @@ 96 97 98 - 167 - 176 - 179 - 171 10 @@ -2111,8 +378,6 @@ 17 97 98 - 179 - 171 18 @@ -2126,10 +391,6 @@ 100 101 102 - 150 - 172 - 159 - 163 25 @@ -2141,75 +402,11 @@ 30 103 104 - 105 - 168 - 177 - 180 - - - 25 - 26 - 27 - 28 - 103 - 104 - 168 - 177 25 29 30 - 105 - 180 - - - 31 - 32 - 35 - 33 - 34 - 36 - 37 - 106 - 107 - 108 - 109 - 151 - 173 - 160 - 164 - - - 38 - 39 - 42 - 40 - 41 - 43 - 110 - 111 - 112 - 169 - 178 - 181 - - - 38 - 39 - 40 - 41 - 110 - 111 - 169 - 178 - - - 38 - 42 - 43 - 112 - 181 44 @@ -2219,8 +416,6 @@ 48 113 114 - 154 - 155 49 @@ -2229,125 +424,6 @@ 52 115 116 - 174 - 175 - - - 53 - 54 - 56 - 55 - 57 - 117 - 118 - 161 - 156 - - - 53 - 54 - 55 - 117 - 161 - - - 53 - 56 - 57 - 118 - 156 - - - 123 - 124 - 125 - 126 - 127 - 128 - 129 - 130 - 131 - 132 - 133 - 134 - 135 - 136 - 157 - 165 - 170 - - - 123 - 124 - - - 125 - 126 - - - 127 - 128 - 129 - 130 - 135 - - - 131 - 132 - 133 - 134 - 136 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 44 - 45 - 46 - 47 - 48 - 49 - 50 - 51 - 52 - 53 - 54 - 55 - 56 - 57 - 123 - 124 - 125 - 126 - 127 - 128 - 129 - 130 - 135 - 182 - 184 10 @@ -2370,732 +446,6 @@ 41 42 43 - 183 - 185 - - - 123 - 125 - 127 - 128 - 131 - 132 - 129 - 133 - 135 - 136 - - - 124 - 126 - 129 - 130 - 133 - 134 - 128 - 132 - 135 - 136 - - - 9 - 24 - 37 - 92 - 102 - 109 - - - 90 - 91 - 99 - 106 - - - 100 - 107 - - - 88 - 114 - - - 89 - 113 - 117 - 118 - 131 - 132 - 133 - - - 92 - 102 - 109 - 134 - - - 93 - 101 - 108 - 117 - 141 - 139 - 140 - 141 - 142 - 143 - 144 - 145 - 146 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 166 - 167 - 168 - 169 - 170 - 171 - 172 - 173 - 174 - 175 - 176 - 177 - 178 - 179 - 180 - 181 - - - 97 - 105 - 112 - - - 94 - 103 - 110 - 95 - - - 98 - 115 - 116 - 136 - - - 96 - 104 - 111 - - - 90 - 91 - 99 - 106 - 100 - 107 - 88 - 114 - 89 - 113 - 117 - 118 - - - 92 - 102 - 109 - 134 - 93 - 101 - 108 - - - 97 - 105 - 112 - 94 - 103 - 110 - 95 - 98 - 115 - 116 - 136 - 96 - 104 - 111 - - - 20 - 33 - 5 - 6 - 90 - 91 - 99 - 106 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 21 - 34 - 100 - 107 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 48 - 2 - 88 - 114 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 3 - 127 - 128 - 129 - 46 - 55 - 57 - 89 - 113 - 117 - 118 - 131 - 132 - 133 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 24 - 130 - 37 - 9 - 92 - 102 - 109 - 134 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 36 - 23 - 8 - 93 - 101 - 108 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 16 - 30 - 43 - 97 - 105 - 112 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 27 - 40 - 12 - 13 - 94 - 103 - 110 - 95 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 135 - 17 - 51 - 52 - 98 - 115 - 116 - 136 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 14 - 28 - 41 - 96 - 104 - 111 - 143 - 145 - 146 - 139 - 140 - 141 - 142 - 144 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - - - 14 - 28 - 41 - 96 - 104 - 111 - 13 - 95 - 145 - 176 - 177 - 178 - - - 3 - 127 - 128 - 129 - 46 - 55 - 57 - 48 - 2 - 89 - 131 - 113 - 117 - 118 - 132 - 133 - 114 - 88 - 140 - 152 - 153 - 154 - 155 - 156 - 157 8 @@ -3112,15 +462,6 @@ 109 130 134 - 141 - 142 - 158 - 159 - 160 - 161 - 162 - 163 - 164 5 @@ -3131,71 +472,6 @@ 91 106 99 - 139 - 148 - 149 - 150 - 151 - - - 14 - 28 - 41 - 96 - 104 - 111 - 145 - 176 - 177 - 178 - - - 12 - 27 - 40 - 13 - 94 - 103 - 110 - 95 - 143 - 166 - 167 - 168 - 169 - 170 - - - 16 - 30 - 43 - 97 - 105 - 112 - 146 - 179 - 180 - 181 - - - 17 - 51 - 52 - 21 - 34 - 135 - 98 - 115 - 116 - 100 - 107 - 136 - 144 - 171 - 172 - 173 - 174 - 175 16 @@ -3204,9 +480,6 @@ 105 17 98 - 179 - 180 - 171 12 @@ -3219,10 +492,6 @@ 96 28 104 - 168 - 167 - 176 - 177 2 @@ -3245,16 +514,6 @@ 101 24 102 - 152 - 153 - 148 - 149 - 158 - 162 - 150 - 172 - 159 - 163 46 @@ -3265,20 +524,14 @@ 115 52 116 - 154 - 155 - 174 - 175 55 117 - 161 57 118 - 156 36 @@ -3295,2440 +548,5 @@ 112 34 107 - 160 - 164 - 151 - 178 - 169 - 181 - 173 - - - 127 - 131 - 128 - 132 - 129 - 133 - 135 - 136 - 130 - 134 - 157 - 170 - 165 - - - 5 - 20 - 90 - 99 - 148 - 150 - - - 6 - 33 - 91 - 106 - 149 - 151 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 18 - 19 - 20 - 21 - 22 - 23 - 31 - 32 - 33 - 34 - 35 - 36 - 44 - 45 - 46 - 47 - 48 - 53 - 54 - 55 - 56 - 57 - 88 - 89 - 90 - 91 - 93 - 99 - 100 - 101 - 106 - 107 - 108 - 113 - 114 - 117 - 118 - 123 - 124 - 125 - 126 - 127 - 128 - 129 - 131 - 132 - 133 - 135 - 136 - 139 - 140 - 141 - 144 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 171 - 172 - 173 - 174 - 175 - 182 - 184 - 186 - 188 - - - 4 - 5 - 6 - 19 - 32 - 20 - 21 - 33 - 34 - 90 - 91 - 99 - 100 - 106 - 107 - 139 - 148 - 149 - 150 - 151 - - - 11 - 15 - 26 - 29 - 39 - 42 - 12 - 13 - 14 - 16 - 17 - 27 - 28 - 30 - 40 - 41 - 43 - 94 - 95 - 96 - 97 - 98 - 103 - 104 - 105 - 110 - 111 - 112 - 143 - 145 - 146 - 166 - 167 - 168 - 169 - 176 - 177 - 178 - 179 - 180 - 181 - - - 1 - 2 - 3 - 54 - 56 - 55 - 57 - 117 - 118 - 88 - 89 - 140 - 144 - 152 - 153 - 156 - 171 - 172 - 173 - - - 7 - 22 - 35 - 8 - 9 - 23 - 24 - 36 - 37 - 92 - 93 - 101 - 102 - 108 - 109 - 141 - 142 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - - - 125 - 126 - 127 - 128 - 129 - 130 - 135 - 131 - 132 - 133 - 134 - 136 - 157 - 170 - 165 - - - 45 - 47 - 46 - 48 - 113 - 114 - 154 - 155 - 174 - 175 - - - 50 - 51 - 52 - 115 - 116 - - - 182 - 184 - 186 - 188 - - - 183 - 185 - 187 - 189 - - - 16067 - 16071 - 16072 - - - 18869 - 18870 - 18871 - 18872 - 18873 - 18874 - 18875 - 18876 - 18877 - 18878 - 18879 - 18880 - 18881 - 18882 - 18883 - 18884 - 18885 - 18886 - 18887 - 18888 - 18889 - 18890 - 18891 - 18892 - 18893 - 18894 - 18895 - 18896 - 18897 - 18898 - 18899 - 18900 - 18901 - 18902 - 18903 - 18904 - - - 18905 - 18906 - 18907 - - - 18850 - 18851 - 18852 - - - 32913 - 32914 - 33097 - 32922 - 33098 - 33099 - 33131 - 33132 - 14001 - 14002 - 14003 - 14004 - 14005 - 14006 - 14007 - 14008 - 14009 - 14010 - 14011 - 14012 - 14013 - 14014 - 14015 - 14016 - 14017 - 14018 - 14019 - 14020 - 14021 - 14022 - 14023 - 14024 - 14025 - 14026 - 14027 - 14028 - 14029 - 14030 - 14031 - 14032 - 14033 - 14034 - 14035 - 14036 - 14037 - 14038 - 14039 - 14040 - 14041 - 14042 - 14043 - 14044 - 14045 - 14046 - 14047 - 14048 - 14049 - 14050 - 14051 - 14052 - 14053 - 14054 - 14055 - 14056 - 14057 - 14058 - 14059 - 14060 - 14061 - 14062 - 14063 - 14064 - 14065 - 14066 - 14067 - 14068 - 14069 - 14070 - 14071 - 14072 - 14073 - 14074 - 14075 - 14076 - 14077 - 14078 - 14079 - 14080 - 14081 - 14082 - 14083 - 14084 - 14085 - 14086 - 14087 - 14088 - 14089 - 14090 - 14091 - 14092 - 14093 - 14094 - 14095 - 14096 - 14097 - 14098 - 14099 - 14100 - 14101 - 14102 - 14103 - 14104 - 14105 - 14106 - 14107 - 14108 - 14109 - 14110 - 14111 - 14112 - 14113 - 14114 - 14115 - 14116 - 14117 - 14118 - 14119 - 14120 - 14121 - 14122 - 14123 - 14124 - 14125 - 14126 - 14127 - 14128 - 14129 - 14130 - 14131 - 14132 - 14133 - 14134 - 14135 - 14136 - 14137 - 14138 - 14139 - 14140 - 14141 - 14142 - 14143 - 14144 - 14145 - 14146 - 14147 - 14148 - 14149 - 14150 - 14151 - 14152 - 14153 - 14154 - 14155 - 14156 - 14157 - 14158 - 14159 - 14160 - 14161 - 14162 - 14163 - 14164 - 14165 - 14166 - 14167 - 14168 - 14169 - 14170 - 14171 - 14172 - 14173 - 14174 - 14175 - 14176 - 14177 - 14178 - 14179 - 14180 - 14181 - 14182 - 14183 - 14184 - 14185 - 14186 - 14187 - 14188 - 14189 - 14190 - 14191 - 14192 - 14193 - 14194 - 14195 - 14196 - 14197 - 14198 - 14199 - 14200 - 14201 - 14202 - 14203 - 14204 - 14205 - 14206 - 14207 - 14208 - 14209 - 14210 - 14211 - 14212 - 14213 - 14214 - 14215 - 14216 - 14217 - 14218 - 14219 - 14220 - 14221 - 14222 - 14223 - 14224 - 14225 - 14226 - 14227 - 14228 - 14229 - 14230 - 14231 - 14232 - 14233 - 14234 - 14235 - 14236 - 14237 - 14238 - 14239 - 14240 - 14241 - 14242 - 14243 - 14244 - 14245 - 14246 - 14247 - 14248 - 14249 - 14250 - 14251 - 14252 - 14253 - 14254 - 14255 - 14256 - 14257 - 14258 - 14259 - 14260 - 14265 - 14266 - 14267 - 14268 - 14269 - 14270 - 14271 - 14272 - 14273 - 14274 - 14275 - 14276 - 14277 - 14278 - 14279 - 14280 - 14281 - 14282 - 14283 - 14284 - 14285 - 14286 - 14287 - 14288 - 14289 - 14290 - 14291 - 14292 - 14293 - 14294 - 14295 - 14296 - 14297 - 14298 - 14299 - 14300 - 14301 - 14302 - 14303 - 14304 - 14305 - 14306 - 14307 - 14308 - 14309 - 14310 - 14311 - 14312 - 14313 - 14314 - 14315 - 14316 - 14317 - 14318 - 14319 - 14320 - 14321 - 14322 - 14323 - 14324 - 14325 - 14326 - 14327 - 14328 - 14329 - 14330 - 14331 - 14332 - 14333 - 14334 - 14335 - 14336 - 14337 - 14338 - 14339 - 14340 - 14341 - 14342 - 14343 - 14344 - 14345 - 14346 - 14347 - 14348 - 14349 - 14350 - 14351 - 14352 - 14353 - 14354 - 14355 - 14356 - 14357 - 14358 - 14359 - 14360 - 14361 - 14362 - 14363 - 14364 - 14365 - 14366 - 14367 - 14368 - 14369 - 14370 - 14371 - 14372 - 14373 - 14374 - 14375 - 14376 - 14377 - 14378 - 14379 - 14380 - 14381 - 14382 - 14383 - 14384 - 14385 - 14386 - 14387 - 14388 - 14389 - 14390 - 14391 - 14392 - 14393 - 14394 - 14395 - 14396 - 14397 - 14398 - 14399 - 14400 - 14401 - 14402 - 14403 - 14404 - 14405 - 14406 - 14407 - 14408 - 14409 - 14410 - 14411 - 14412 - 14413 - 14414 - 14415 - 14416 - 14417 - 14418 - 14419 - 14420 - 14421 - 14422 - 14423 - 14424 - 14425 - 14426 - 14427 - 14428 - 14429 - 14430 - 14431 - 14432 - 14433 - 14434 - 14435 - 14436 - 14437 - 14438 - 14439 - 14440 - 14441 - 14442 - 14443 - 14444 - 14449 - 14450 - 14451 - 14452 - 14453 - 14454 - 14455 - 14456 - 14457 - 14458 - 14459 - 14460 - 14461 - 14462 - 14463 - 14464 - 14465 - 14466 - 14467 - 14468 - 14469 - 14470 - 14471 - 14472 - 14473 - 14474 - 14475 - 14476 - 14477 - 14478 - 14479 - 14480 - 14481 - 14482 - 14483 - 14484 - 14485 - 14486 - 14487 - 14488 - 14489 - 14490 - 14491 - 14492 - 14493 - 14494 - 14495 - 14496 - 14497 - 14498 - 14499 - 14500 - 14501 - 14502 - 14503 - 14504 - 14505 - 14506 - 14507 - 14508 - 14509 - 14510 - 14511 - 14512 - 14513 - 14514 - 14515 - 14516 - 14517 - 14518 - 14519 - 14520 - 14521 - 14522 - 14523 - 14524 - 14525 - 14526 - 14527 - 14528 - 14529 - 14530 - 14531 - 14532 - 14533 - 14534 - 14535 - 14536 - 14537 - 14538 - 14539 - 14540 - 14541 - 14542 - 14543 - 14544 - 14545 - 14546 - 14547 - 14548 - 14549 - 14550 - 14551 - 14552 - 14553 - 14554 - 14555 - 14556 - 14557 - 14558 - 14559 - 14560 - 14561 - 14562 - 14563 - 14564 - 14565 - 14566 - 14567 - 14568 - 14569 - 14570 - 14571 - 14572 - 14573 - 14574 - 14575 - 14576 - 14577 - 14578 - 14579 - 14580 - 14581 - 14582 - 14583 - 14584 - 14585 - 14586 - 14587 - 14588 - 14589 - 14590 - 14591 - 14592 - 14593 - 14594 - 14595 - 14596 - 14597 - 14598 - 14599 - 14600 - 14601 - 14602 - 14603 - 14604 - 14605 - 14606 - 14607 - 14608 - 14609 - 14610 - 14611 - 14612 - 14613 - 14614 - 14615 - 14616 - 14617 - 14618 - 14619 - 14620 - 14621 - 14622 - 14623 - 14624 - 14625 - 14626 - 14627 - 14628 - 14633 - 14634 - 14635 - 14636 - 14637 - 14638 - 14639 - 14640 - 14641 - 14642 - 14643 - 14644 - 14645 - 14646 - 14647 - 14648 - 14649 - 14650 - 14651 - 14652 - 14653 - 14654 - 14655 - 14656 - 14657 - 14658 - 14659 - 14660 - 14661 - 14662 - 14663 - 14664 - 14665 - 14666 - 14667 - 14668 - 14669 - 14670 - 14671 - 14672 - 14673 - 14674 - 14675 - 14676 - 14677 - 14678 - 14679 - 14680 - 14681 - 14682 - 14683 - 14684 - 14685 - 14686 - 14687 - 14688 - 14689 - 14690 - 14691 - 14692 - 14693 - 14694 - 14695 - 14696 - 14697 - 14698 - 14699 - 14700 - 14701 - 14702 - 14703 - 14704 - 14705 - 14706 - 14707 - 14708 - 14709 - 14710 - 14711 - 14712 - 14713 - 14714 - 14715 - 14716 - 14717 - 14718 - 14719 - 14720 - 14721 - 14722 - 14723 - 14724 - 14725 - 14726 - 14727 - 14728 - 14729 - 14730 - 14731 - 14732 - 14733 - 14734 - 14735 - 14736 - 14737 - 14738 - 14739 - 14740 - 14741 - 14742 - 14743 - 14744 - 14745 - 14746 - 14747 - 14748 - 14749 - 14750 - 14751 - 14752 - 14753 - 14754 - 14755 - 14756 - 14757 - 14758 - 14759 - 14760 - 14761 - 14762 - 14763 - 14764 - 14765 - 14766 - 14767 - 14768 - 14769 - 14770 - 14771 - 14772 - 14773 - 14774 - 14775 - 14776 - 14777 - 14778 - 14779 - 14780 - 14781 - 14782 - 14783 - 14784 - 14785 - 14786 - 14787 - 14788 - 14789 - 14790 - 14791 - 14792 - 14793 - 14794 - 14795 - 14796 - 14797 - 14798 - 14799 - 14800 - 14801 - 14802 - 14803 - 14804 - 14805 - 14806 - 14807 - 14808 - 14809 - 14810 - 14811 - 14812 - 14813 - 14814 - 14815 - 14816 - 14817 - 14818 - 14819 - 14820 - 14821 - 14822 - 14823 - 14824 - 14825 - 14826 - 14827 - 14828 - 14829 - 14830 - 14831 - 14832 - 14833 - 14834 - 14835 - 14836 - 14837 - 14838 - 14839 - 14840 - 14841 - 14842 - 14843 - 14844 - 14845 - 14846 - 14847 - 14848 - 14849 - 14850 - 14851 - 14852 - 14853 - 14854 - 14855 - 14856 - 14857 - 14858 - 14859 - 14860 - 14861 - 14862 - 14863 - 14864 - 14865 - 14866 - 14867 - 14868 - 14869 - 12077 - 12311 - 12312 - 12313 - 12526 - 12527 - 12528 - 12564 - 12621 - 12780 - 12781 - 12782 - 16025 - 13071 - 13072 - 13073 - 13074 - 13075 - 13076 - 14870 - 14871 - 14872 - 14873 - 14874 - 14875 - 14876 - 14877 - 14878 - 14879 - 14880 - 14881 - 14882 - 14883 - 14884 - 14885 - 14886 - 14887 - 14888 - 14889 - 14890 - 14891 - 14892 - 14893 - 14894 - 14895 - 14896 - 14897 - 14898 - 14899 - 14900 - 14901 - 14902 - 14903 - 14904 - 14905 - 14906 - 14907 - 14908 - 14909 - 14910 - 14911 - 14912 - 14913 - 14914 - 14915 - 16030 - 16034 - 16035 - 16036 - 16037 - 16038 - 16039 - 16040 - 16041 - 16042 - 16043 - 16044 - 16045 - 16046 - 14916 - 14917 - 14918 - 16050 - 16051 - 16052 - 16053 - 16067 - 16068 - 16071 - 16072 - - - 32915 - 32916 - 33142 - 33143 - 33144 - 33145 - 33147 - 33148 - 33137 - - - 32915 - 32916 - 32917 - 32918 - 32919 - 32920 - 33147 - 33148 - 32913 - 32914 - 33097 - - - 90 - 91 - 99 - 106 - - - 88 - 89 - 113 - 114 - 118 - 131 - - - 93 - 101 - 108 - 117 - - - 92 - 102 - 109 - 134 - - - 95 - 94 - 103 - 110 - 132 - 133 - - - 96 - 104 - 111 - - - 97 - 105 - 112 - - - 98 - 100 - 107 - 116 - 115 - 136 - - - 19117 - 19118 - - - 32908 - - - 14930 - 14954 - 14955 - 14956 - 14957 - 14958 - 14959 - 14960 - 14931 - 14961 - 14962 - 14963 - 14964 - 14965 - 14966 - 14967 - 15032 - 15033 - 15034 - 15035 - 15036 - 15037 - 15038 - 15039 - 15040 - 15041 - 15042 - 15043 - 15044 - 15045 - 15046 - 15047 - 15048 - 15049 - 15050 - 15051 - 14929 - 14947 - 14948 - 14949 - 14950 - 14951 - 14952 - 14953 - 15022 - 15023 - 15024 - 15025 - 15026 - 15027 - 15028 - 15029 - 15030 - 15031 - - - 0 - 18 - 31 - 44 - 53 - 123 - 124 - - - 10 - 25 - 38 - 49 - - - 4 - 19 - 32 - - - 1 - 7 - 22 - 35 - 45 - 47 - 125 - 126 - 50 - 54 - 56 - - - 11 - 26 - 39 - - - 15 - 29 - 42 - - - 5 - 6 - 20 - 33 - - - 2 - 3 - 46 - 48 - 127 - 128 - 129 - 57 - 135 - - - 8 - 23 - 36 - 55 - - - 12 - 27 - 40 - 13 - - - 9 - 130 - 37 - 24 - - - 17 - 52 - - - 14 - 28 - 41 - - - 16 - 30 - 34 - 43 - 21 - 51 - - - 90 - 91 - 99 - 106 - - - 88 - 89 - 113 - 114 - 118 - 131 - 132 - 133 - 136 - - - 93 - 101 - 108 - 101 - 117 - - - 94 - 103 - 110 - 95 - - - 92 - 102 - 109 - 134 - - - 116 - 98 - 115 - - - 96 - 104 - 111 - - - 97 - 105 - 112 - 107 - 100 - - - 5 - 6 - 20 - 33 - 90 - 91 - 99 - 106 - 139 - 148 - 149 - 150 - 151 - - - 3 - 2 - 46 - 48 - 89 - 88 - 113 - 114 - 118 - 140 - 152 - 153 - 154 - 155 - 156 - - - 8 - 23 - 36 - 55 - 93 - 101 - 108 - 117 - 141 - 158 - 159 - 160 - 161 - - - 9 - 24 - 37 - 92 - 102 - 109 - 142 - 162 - 163 - 164 - - - 12 - 13 - 27 - 40 - 94 - 95 - 103 - 110 - 143 - 166 - 167 - 168 - 169 - - - 14 - 28 - 41 - 96 - 104 - 111 - 145 - 176 - 177 - 178 - - - 16 - 30 - 43 - 97 - 105 - 112 - 146 - 179 - 180 - 181 - - - 17 - 21 - 34 - 52 - 98 - 116 - 100 - 107 - 115 - 144 - 171 - 172 - 173 - 174 - 175 - - - 51 - 57 - - - 127 - 130 - 128 - 129 - 135 - 131 - 134 - 132 - 133 - 136 - 157 - 170 - 165 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 44 - 45 - 46 - 47 - 48 - 53 - 54 - 55 - 56 - 57 - 88 - 89 - 90 - 91 - 92 - 93 - 99 - 100 - 101 - 102 - 106 - 107 - 108 - 109 - 113 - 114 - 117 - 118 - 139 - 140 - 141 - 142 - 144 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 25 - 26 - 27 - 28 - 29 - 30 - 38 - 39 - 40 - 41 - 42 - 43 - 49 - 50 - 51 - 52 - 94 - 95 - 96 - 97 - 98 - 103 - 104 - 105 - 110 - 111 - 112 - 115 - 116 - 143 - 145 - 146 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 166 - 167 - 168 - 169 - 171 - 172 - 173 - 174 - 175 - 176 - 177 - 178 - 179 - 180 - 181 - 182 - 184 - 186 - 188 - 183 - 185 - 187 - 189 - - - 143 - 145 - 146 - 166 - 167 - 176 - 179 - - - 139 - 140 - 141 - 142 - 144 - 148 - 149 - 152 - 153 - 158 - 162 - 171 - - - 5 - 6 - 20 - 33 - 90 - 91 - 99 - 106 - 139 - 148 - 149 - 150 - 151 - - - 3 - 2 - 46 - 48 - 127 - 57 - 89 - 88 - 113 - 114 - 118 - 131 - 140 - 152 - 153 - 154 - 155 - 156 - 184 - 186 - 188 - - - 8 - 23 - 36 - 55 - 93 - 101 - 108 - 117 - 141 - 158 - 159 - 160 - 161 - - - 9 - 24 - 37 - 130 - 92 - 102 - 109 - 134 - 142 - 162 - 163 - 164 - 165 - - - 12 - 13 - 27 - 40 - 128 - 129 - 94 - 95 - 103 - 110 - 132 - 133 - 143 - 166 - 167 - 168 - 169 - 170 - - - 14 - 28 - 41 - 96 - 104 - 111 - 145 - 176 - 177 - 178 - - - 17 - 21 - 34 - 52 - 135 - 51 - 98 - 116 - 100 - 107 - 115 - 136 - 144 - 171 - 172 - 173 - 174 - 175 - - - 16 - 30 - 43 - 97 - 105 - 112 - 146 - 179 - 180 - 181 - - - 88 - 89 - 90 - 91 - 93 - 92 - 94 - 95 - 96 - 97 - 98 - - - 99 - 100 - 101 - 102 - 103 - 104 - 105 - - - 106 - 107 - 108 - 109 - 110 - 111 - 112 - - - 113 - 114 - 115 - 116 - - - 117 - 118 - - - 8401 - 8402 - 8403 - 8405 - 8417 - 8422 - 8423 - 8424 - 8425 - 8416 - - - 8407 - 8408 - 8409 - 8410 - 8411 - 8412 - 8413 - 8414 - 8415 - 8428 - 8429 - 8430 - 8431 - 8432 - - - 8516 - 8517 - 8514 - 8515 - 8512 - 8513 - - - 182 - 184 - 186 - 188 - 183 - 185 - 187 - 189 - - - 182 - 183 - - - 184 - 185 - - - 186 - 187 - - - 188 - 189 - - - 183 - 185 - 187 - 189 - - - 182 - 184 - 186 - 188 - - - 187 - - - 186 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 44 - 45 - 46 - 47 - 48 - 53 - 54 - 55 - 56 - 57 - 88 - 89 - 90 - 91 - 92 - 93 - 99 - 100 - 101 - 102 - 106 - 107 - 108 - 109 - 113 - 114 - 117 - 118 - 123 - 124 - 125 - 126 - 127 - 128 - 129 - 130 - 131 - 132 - 133 - 134 - 135 - 136 - 139 - 140 - 141 - 142 - 144 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 25 - 26 - 27 - 28 - 29 - 30 - 38 - 39 - 40 - 41 - 42 - 43 - 49 - 50 - 51 - 52 - 94 - 95 - 96 - 97 - 98 - 103 - 104 - 105 - 110 - 111 - 112 - 115 - 116 - 143 - 145 - 146 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - - - 1 - 2 - 3 - 4 - 5 - 6 - 19 - 20 - 21 - 32 - 33 - 34 - 45 - 46 - 56 - 57 - 88 - 89 - 90 - 91 - 99 - 100 - 106 - 107 - 113 - 118 - 139 - 140 - 148 - 149 - 150 - 151 - 152 - 153 - 154 - 155 - 156 - 157 - 49 - 50 - 51 - 52 - 115 - 116 - - - 0 - 7 - 8 - 9 - 18 - 22 - 23 - 24 - 31 - 35 - 36 - 37 - 44 - 47 - 48 - 53 - 54 - 55 - 92 - 93 - 101 - 102 - 108 - 109 - 114 - 123 - 124 - 125 - 126 - 127 - 128 - 129 - 130 - 131 - 132 - 133 - 134 - 135 - 136 - 141 - 142 - 144 - 158 - 159 - 160 - 161 - 162 - 163 - 164 - 165 - 171 - 172 - 173 - 174 - 175 - 182 - 184 - 186 - 188 - - - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 25 - 26 - 27 - 28 - 29 - 30 - 38 - 39 - 40 - 41 - 42 - 43 - 94 - 95 - 96 - 97 - 98 - 103 - 104 - 105 - 110 - 111 - 112 - 143 - 145 - 146 - 166 - 167 - 168 - 169 - 170 - 176 - 177 - 178 - 179 - 180 - 181 - 183 - 185 - 187 - 189 \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/ElementalSpiritData.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/ElementalSpiritData.xml index df520f1e44..3ca1a8c097 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/ElementalSpiritData.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/ElementalSpiritData.xml @@ -3,185 +3,328 @@ - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/common/runes_01.htm b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/common/runes_01.htm index 1147b44111..8fac73b304 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/common/runes_01.htm +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/common/runes_01.htm @@ -1,10 +1,10 @@
-Ha! Do you want to add special abilities to your weapon? Great idea! Do we Enchant? Don't worry! Special effects have nothing to do with the Enchant.Our blacksmiths will help you insert a Rune into your weapon if it has a necessary slot.
+Ha! Do you want to add special abilities to your weapon? Great idea! Need an enchant? Don't worry! Special effects have nothing to do with the Enchant. Our blacksmiths will help you insert a Rune into your weapon if it has an appropiate slot.
You just need to choose which Rune goes into what weapon.
By the way! If you have a lot of Runes you don't need, I can exchange them for other ones. Of course, no telling what Runes you'll end up with...
But take a shot, it's worth it. Life is but a game...
- - + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/teleporter/34112.htm b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/teleporter/34112.htm new file mode 100644 index 0000000000..c69edd041d --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/teleporter/34112.htm @@ -0,0 +1,5 @@ +Gatekeeper Elena:
+Welcome! Beautiful weather, isn't it? Perfect for traveling!
+ + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/warehouse/32478.htm b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/warehouse/32478.htm deleted file mode 100644 index 3ab8a50912..0000000000 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/html/warehouse/32478.htm +++ /dev/null @@ -1,6 +0,0 @@ -Dimensional Merchant:
-Hi! You can deal with Dimensional items here. Dimensional items can be obtained in the item catalogue. However, if the inventory is full you can't put any Dimensional items in it.
- - - - \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/mapregion/kamael_town.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/mapregion/kamael_town.xml index 185a71bddc..100dc8c642 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/mapregion/kamael_town.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/mapregion/kamael_town.xml @@ -2,7 +2,7 @@ - + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/mapregion/miscs.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/mapregion/miscs.xml index 5f7c55e9be..5bc784552c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/mapregion/miscs.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/mapregion/miscs.xml @@ -33,8 +33,8 @@ - - + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/multisell/3247801.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/multisell/3247801.xml index e05324be2e..e1c53b13e9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/multisell/3247801.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/multisell/3247801.xml @@ -1,7 +1,7 @@ - 32478 + -1 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index e297596bab..95a8242a96 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -33,12 +33,9 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.util.IXmlReader; import org.l2jmobius.gameserver.data.xml.impl.CategoryData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData; -import org.l2jmobius.gameserver.data.xml.impl.SkillData; -import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.Race; -import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.base.ClassId; @@ -66,7 +63,7 @@ import ai.AbstractNpcAI; public class ClassMaster extends AbstractNpcAI implements IXmlReader { // NPCs - private static final List CLASS_MASTERS = new ArrayList<>(); + private static final List CLASS_MASTERS = new ArrayList<>(); static { CLASS_MASTERS.add(31756); // Mr. Cat @@ -391,14 +388,14 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader { player.setBaseClass(player.getActiveClass()); } - if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - SkillTreesData.getInstance().cleanSkillUponAwakening(player); - for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) - { - player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); - } - } + // if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) + // { + // SkillTreesData.getInstance().cleanSkillUponAwakening(player); + // for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) + // { + // player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); + // } + // } if (Config.AUTO_LEARN_SKILLS) { player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true); @@ -419,14 +416,14 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader case "learnskills": { // Retail class master only lets you learn all third class skills. - if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - htmltext = "test_server_helper001_failed.html"; - } - else - { - player.giveAvailableSkills(true, true); - } + // if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) + // { + // htmltext = "test_server_helper001_failed.html"; + // } + // else + // { + player.giveAvailableSkills(true, true); + // } break; } case "clanlevelup": @@ -522,16 +519,11 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader htmltext = "test_server_helper026i.html"; break; } - case MALE_SOLDIER: + case KAMAEL_SOLDIER: { htmltext = "test_server_helper026j.html"; break; } - case FEMALE_SOLDIER: - { - htmltext = "test_server_helper026k.html"; - break; - } } } } @@ -698,28 +690,12 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader htmltext = "test_server_helper020a.html"; break; } - case MALE_SOLDIER: + case KAMAEL_SOLDIER: case TROOPER: { htmltext = "test_server_helper020c.html"; break; } - case FEMALE_SOLDIER: - case WARDER: - { - htmltext = "test_server_helper020d.html"; - break; - } - case ERTHEIA_FIGHTER: - { - htmltext = "test_server_helper020e.html"; - break; - } - case ERTHEIA_WIZARD: - { - htmltext = "test_server_helper020f.html"; - break; - } } } } @@ -744,16 +720,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader private boolean changeToNextClass(PlayerInstance player) { - ClassId newClass = null; - if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND) - { - newClass = ClassId.FEOH_SOUL_HOUND; // Fix for Female Soulhounds - } - else - { - newClass = Arrays.stream(ClassId.values()).filter(cid -> player.getClassId() == cid.getParent()).findAny().orElse(null); - } - + final ClassId newClass = Arrays.stream(ClassId.values()).filter(cid -> player.getClassId() == cid.getParent()).findAny().orElse(null); if (newClass == null) { LOGGER.warning(getClass().getSimpleName() + ": No new classId found for player " + player); @@ -822,14 +789,14 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader { player.setBaseClass(player.getActiveClass()); } - if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - SkillTreesData.getInstance().cleanSkillUponAwakening(player); - for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) - { - player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); - } - } + // if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) + // { + // SkillTreesData.getInstance().cleanSkillUponAwakening(player); + // for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) + // { + // player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); + // } + // } if (Config.AUTO_LEARN_SKILLS) { player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/DimensionalMerchant/32478.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/DimensionalMerchant/32478.html new file mode 100644 index 0000000000..6457f7be8c --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/DimensionalMerchant/32478.html @@ -0,0 +1,6 @@ +Dimensional MerchantDimensional Merchant:
+Hi! You can deal with Dimensional items here. Dimensional items can be obtained in the item catalogue. However, if the inventory is full you can't put any Dimensional items in it.
+ + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java new file mode 100644 index 0000000000..a2625299bc --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/DimensionalMerchant/DimensionalMerchant.java @@ -0,0 +1,121 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package ai.others.DimensionalMerchant; + +import org.l2jmobius.gameserver.data.xml.impl.MultisellData; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.events.EventType; +import org.l2jmobius.gameserver.model.events.ListenerRegisterType; +import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent; +import org.l2jmobius.gameserver.model.events.annotations.RegisterType; +import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerBypass; +import org.l2jmobius.gameserver.model.itemcontainer.PlayerFreight; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.PackageToList; +import org.l2jmobius.gameserver.network.serverpackets.WareHouseWithdrawalList; + +import ai.AbstractNpcAI; + +/** + * Dimensional Merchant AI. + * @author Mobius + */ +public class DimensionalMerchant extends AbstractNpcAI +{ + // NPC + private static final int MERCHANT = 32478; // Dimensional Merchant + // Others + private static final int ATTENDANCE_REWARD_MULTISELL = 3247801; + private static final String COMMAND_BYPASS = "Quest DimensionalMerchant "; + + private DimensionalMerchant() + { + addStartNpc(MERCHANT); + addFirstTalkId(MERCHANT); + addTalkId(MERCHANT); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + switch (event) + { + case "package_deposit": + { + if (player.getAccountChars().size() < 1) + { + player.sendPacket(SystemMessageId.THAT_CHARACTER_DOES_NOT_EXIST); + } + else + { + player.sendPacket(new PackageToList(player.getAccountChars())); + } + break; + } + case "package_withdraw": + { + final PlayerFreight freight = player.getFreight(); + if (freight != null) + { + if (freight.getSize() > 0) + { + player.setActiveWarehouse(freight); + for (ItemInstance i : player.getActiveWarehouse().getItems()) + { + if (i.isTimeLimitedItem() && (i.getRemainingTime() <= 0)) + { + player.getActiveWarehouse().destroyItem("ItemInstance", i, player, null); + } + } + player.sendPacket(new WareHouseWithdrawalList(1, player, WareHouseWithdrawalList.FREIGHT)); + player.sendPacket(new WareHouseWithdrawalList(2, player, WareHouseWithdrawalList.FREIGHT)); + } + else + { + player.sendPacket(SystemMessageId.YOU_HAVE_NOT_DEPOSITED_ANY_ITEMS_IN_YOUR_WAREHOUSE); + } + } + break; + } + case "attendance_rewards": + { + MultisellData.getInstance().separateAndSend(ATTENDANCE_REWARD_MULTISELL, player, null, false); + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_BYPASS) + @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS) + public void OnPlayerBypass(OnPlayerBypass event) + { + final PlayerInstance player = event.getPlayer(); + if (event.getCommand().startsWith(COMMAND_BYPASS)) + { + notifyEvent(event.getCommand().replace(COMMAND_BYPASS, ""), null, player); + } + } + + public static void main(String[] args) + { + new DimensionalMerchant(); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/FleeMonsters.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/FleeMonsters.java index 216b10c776..199300b641 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/FleeMonsters.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/FleeMonsters.java @@ -37,7 +37,6 @@ public class FleeMonsters extends AbstractNpcAI private static final int[] MOBS = { 20002, // Rabbit - 22228, // Grey Elpy 20432, // Elpy }; // Misc diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index 047362ad8a..a035a09ec5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -32,13 +32,9 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.gameserver.data.sql.impl.CharNameTable; import org.l2jmobius.gameserver.data.xml.impl.ClassListData; -import org.l2jmobius.gameserver.data.xml.impl.SkillData; -import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.handler.IAdminCommandHandler; -import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; @@ -420,14 +416,6 @@ public class AdminEditChar implements IAdminCommandHandler } final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName(); - if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - SkillTreesData.getInstance().cleanSkillUponAwakening(player); - for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) - { - player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); - } - } player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-1.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-1.html new file mode 100644 index 0000000000..29eeea39d6 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-1.html @@ -0,0 +1,5 @@ +Newbie Helper:
+Welcome to Cave of Souls. I will be teaching you the basics of combat.
+Please click on Quest, in your Chat window.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-2.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-2.html new file mode 100644 index 0000000000..1f70f66684 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-2.html @@ -0,0 +1,6 @@ +Newbie Helper:
+You got a blue gem! Good work.
+As promised, I'll give you a gift. This is a soulshot. It will make your attacks much stronger. Take heed, it only works once, so use it wisely.
+
+Now talk to Elder Ragnir next to me. He probably has another gift for you. + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-3.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-3.html new file mode 100644 index 0000000000..ca93a670a9 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-3.html @@ -0,0 +1,6 @@ +Newbie Helper:
+You got a blue gem! Good work.
+As I promised, I'll give you a gift. This is called a spiritshot. Spiritshots make your magical attacks much stronger. However, it only works once, so you should save it for the right moment.
+
+Take this Voucher to Newbie Guide. He has a gift for you. + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-4.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-4.html new file mode 100644 index 0000000000..63f53a5e73 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-4.html @@ -0,0 +1,5 @@ +Newbie Helper:
+Talk to Elder Ragnir next to me.
+He probably has another gift for you.
+I'll continue to watch you as you grow. + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-5.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-5.html new file mode 100644 index 0000000000..fab29be433 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34108-5.html @@ -0,0 +1,4 @@ +Newbie Helper:
+I have nothing else to give you. Talk to the Elder and go out into the world.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-1.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-1.html new file mode 100644 index 0000000000..24d4efe617 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-1.html @@ -0,0 +1,7 @@ +Elder Ragnir:
+Jin Kamaels were created by the Giants, but we escaped to not live for the Giants.
+A long time passed since we started living in seclusion, and the world has changed. Now we can live as a race of our own.
+We erased the pain of the past as you awoke from the deep sleep, but if you remember anything painful, don't dwell on it, and enjoy the new life.
+You no longer need to come to this place. Go out into the world. I'll send you to the Newbie Guide. Experience all there is to life.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-2.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-2.html new file mode 100644 index 0000000000..bc47d9423d --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-2.html @@ -0,0 +1,8 @@ +Elder Ragnir:
+I'm the leader of the Jin Kamaels, Elder Ragnir.
+You just awoke from the deep sleep and got the seal removed, so you might not remember me.
+The Jin Kamaels have free will and have even chosen to live in seclusion.
+Now is time to go out into the world. Did you finish the training with the Newbie Helper?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-3.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-3.html new file mode 100644 index 0000000000..f7da698340 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-3.html @@ -0,0 +1,6 @@ +Elder Ragnir:
+Good job learning the basic methods of control in the game. Now you are ready to begin your adventures. Take this gift. You know how to use it, right?
+Now go to Jin Kamael Village and meet the Newbie Guide. You'll get some advice and a gift.
+Get going. I wish you good luck!
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-4.html b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-4.html new file mode 100644 index 0000000000..79cfa5b5bc --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/34109-4.html @@ -0,0 +1,7 @@ +Elder Ragnir:
+Jin Kamaels were created by the Giants, but we escaped to not live for the Giants.
+A long time passed since we started living in seclusion, and the world has changed. Now we can live as a race of our own.
+We erased the pain of the past as you awoke from the deep sleep, but if you remember anything painful, don't dwell on it, and enjoy the new life.
+You no longer need to come to this place. Go out into the world. I'll send you to the Newbie Guide. Experience all there is to life.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java index e4506622dd..9b4fa856d8 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/quests/Q00255_Tutorial/Q00255_Tutorial.java @@ -25,21 +25,17 @@ import org.l2jmobius.Config; import org.l2jmobius.gameserver.enums.HtmlActionScope; import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.model.Location; -import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.events.EventType; import org.l2jmobius.gameserver.model.events.ListenerRegisterType; -import org.l2jmobius.gameserver.model.events.annotations.Id; import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent; import org.l2jmobius.gameserver.model.events.annotations.RegisterType; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerBypass; -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemPickup; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPressTutorialMark; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.QuestSoundHtmlHolder; -import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.network.NpcStringId; @@ -65,7 +61,7 @@ public class Q00255_Tutorial extends Quest NEWBIE_HELPERS.add(30131); // dark elf NEWBIE_HELPERS.add(30575); // orc NEWBIE_HELPERS.add(30530); // dwarf - NEWBIE_HELPERS.add(30530); // kamael // FIXME: + NEWBIE_HELPERS.add(34108); // kamael } private static final List SUPERVISORS = new ArrayList<>(); static @@ -76,7 +72,7 @@ public class Q00255_Tutorial extends Quest SUPERVISORS.add(30129); // dark elf SUPERVISORS.add(30573); // orc SUPERVISORS.add(30528); // dwarf - SUPERVISORS.add(30528); // kamael // FIXME: + SUPERVISORS.add(34109); // kamael } // Monsters private static final int[] GREMLINS = @@ -86,8 +82,10 @@ public class Q00255_Tutorial extends Quest }; // Items private static final int BLUE_GEM = 6353; - private static final ItemHolder SOULSHOT_REWARD = new ItemHolder(5789, 200); - private static final ItemHolder SPIRITSHOT_REWARD = new ItemHolder(5790, 100); + private static final ItemHolder SOULSHOT_REWARD = new ItemHolder(91927, 200); + private static final ItemHolder SPIRITSHOT_REWARD = new ItemHolder(91928, 100); + private static final ItemHolder SCROLL_OF_ESCAPE = new ItemHolder(10650, 5); + private static final ItemHolder WIND_WALK_POTION = new ItemHolder(49036, 5); // Others private static final Map STARTING_VOICE_HTML = new HashMap<>(); static @@ -115,23 +113,23 @@ public class Q00255_Tutorial extends Quest HELPER_LOCATION.put(44, new Location(-56736, -113680, -672)); HELPER_LOCATION.put(49, new Location(-56736, -113680, -672)); HELPER_LOCATION.put(53, new Location(108567, -173994, -406)); - HELPER_LOCATION.put(192, new Location(-125872, 38016, 1251)); + HELPER_LOCATION.put(192, new Location(-124731, 38070, 1208)); } private static final Map COMPLETE_LOCATION = new HashMap<>(); static { - COMPLETE_LOCATION.put(0, new Location(-84081, 243227, -3723)); - COMPLETE_LOCATION.put(10, new Location(-84081, 243227, -3723)); - COMPLETE_LOCATION.put(18, new Location(45475, 48359, -3060)); - COMPLETE_LOCATION.put(25, new Location(45475, 48359, -3060)); - COMPLETE_LOCATION.put(31, new Location(12111, 16686, -4582)); - COMPLETE_LOCATION.put(38, new Location(12111, 16686, -4582)); - COMPLETE_LOCATION.put(44, new Location(-45032, -113598, -192)); - COMPLETE_LOCATION.put(49, new Location(-45032, -113598, -192)); - COMPLETE_LOCATION.put(53, new Location(115632, -177996, -905)); - COMPLETE_LOCATION.put(192, new Location(-125872, 38016, 1251)); // FIXME: PROPER LOCATION! + COMPLETE_LOCATION.put(0, new Location(-84046, 243283, -3728, 18316)); + COMPLETE_LOCATION.put(10, new Location(-84046, 243283, -3728, 18316)); + COMPLETE_LOCATION.put(18, new Location(45479, 48318, -3056, 55707)); + COMPLETE_LOCATION.put(25, new Location(45479, 48318, -3056, 55707)); + COMPLETE_LOCATION.put(31, new Location(12161, 16674, -4584, 60030)); + COMPLETE_LOCATION.put(38, new Location(12161, 16674, -4584, 60030)); + COMPLETE_LOCATION.put(44, new Location(-45113, -113598, -192, 45809)); + COMPLETE_LOCATION.put(49, new Location(-45113, -113598, -192, 45809)); + COMPLETE_LOCATION.put(53, new Location(115575, -178014, -904, 9808)); + COMPLETE_LOCATION.put(192, new Location(-118073, 45131, 368, 43039)); } - private static final String TUTORIAL_BUYPASS = "Quest Q00255_Tutorial "; + private static final String TUTORIAL_BYPASS = "Quest Q00255_Tutorial "; private static final int QUESTION_MARK_ID_1 = 1; private static final int QUESTION_MARK_ID_2 = 5; private static final int QUESTION_MARK_ID_3 = 28; @@ -165,6 +163,7 @@ public class Q00255_Tutorial extends Quest { qs.startQuest(); qs.setMemoState(1); + showOnScreenMsg(player, NpcStringId.SPEAK_WITH_THE_NEWBIE_HELPER, ExShowScreenMessage.TOP_CENTER, 5000); playTutorialVoice(player, STARTING_VOICE_HTML.get(player.getClassId().getId()).getSound()); showTutorialHtml(player, STARTING_VOICE_HTML.get(player.getClassId().getId()).getHtml()); } @@ -204,8 +203,10 @@ public class Q00255_Tutorial extends Quest giveItems(player, SOULSHOT_REWARD); playTutorialVoice(player, "tutorial_voice_026"); } - htmltext = (npc != null ? npc.getId() : player.getTarget().getId()) + "-3.html"; + // TODO: Check retail for html bellow. + // htmltext = (npc != null ? npc.getId() : player.getTarget().getId()) + "-3.html"; player.sendPacket(new TutorialShowQuestionMark(QUESTION_MARK_ID_3, 0)); + player.teleToLocation(COMPLETE_LOCATION.get(player.getClassId().getId())); } break; } @@ -268,6 +269,8 @@ public class Q00255_Tutorial extends Quest player.clearHtmlActions(HtmlActionScope.TUTORIAL_HTML); qs.setMemoState(4); takeItems(player, BLUE_GEM, -1); + giveItems(player, SCROLL_OF_ESCAPE); + giveItems(player, WIND_WALK_POTION); if (player.isMageClass() && (player.getRace() != Race.ORC)) { giveItems(player, SPIRITSHOT_REWARD); @@ -317,41 +320,17 @@ public class Q00255_Tutorial extends Quest public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { final QuestState qs = getQuestState(killer, false); - if ((qs != null) && qs.isMemoState(2) && !hasQuestItems(killer, BLUE_GEM) && (getRandom(100) < 30)) + if ((qs != null) && (qs.getMemoState() < 3) && !hasQuestItems(killer, BLUE_GEM) && (getRandom(100) < 50)) { - // check for too many gems on ground - int counter = 0; - for (ItemInstance item : World.getInstance().getVisibleObjectsInRange(killer, ItemInstance.class, 1500)) - { - if (item.getId() == BLUE_GEM) - { - counter++; - } - } - if (counter < 10) // do not drop if more than 10 - { - npc.dropItem(killer, BLUE_GEM, 1); - } + giveItems(killer, BLUE_GEM, 1); + qs.setMemoState(3); + playSound(killer, "ItemSound.quest_tutorial"); + playTutorialVoice(killer, "tutorial_voice_013"); + killer.sendPacket(new TutorialShowQuestionMark(QUESTION_MARK_ID_2, 0)); } return super.onKill(npc, killer, isSummon); } - @RegisterEvent(EventType.ON_PLAYER_ITEM_PICKUP) - @RegisterType(ListenerRegisterType.ITEM) - @Id(BLUE_GEM) - public void OnPlayerItemPickup(OnPlayerItemPickup event) - { - final PlayerInstance player = event.getPlayer(); - final QuestState qs = getQuestState(player, false); - if ((qs != null) && (qs.getMemoState() < 3)) - { - qs.setMemoState(3); - playSound(player, "ItemSound.quest_tutorial"); - playTutorialVoice(player, "tutorial_voice_013"); - player.sendPacket(new TutorialShowQuestionMark(QUESTION_MARK_ID_2, 0)); - } - } - @RegisterEvent(EventType.ON_PLAYER_PRESS_TUTORIAL_MARK) @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS) public void onPlayerPressTutorialMark(OnPlayerPressTutorialMark event) @@ -369,6 +348,7 @@ public class Q00255_Tutorial extends Quest final int classId = event.getPlayer().getClassId().getId(); addRadar(event.getPlayer(), HELPER_LOCATION.get(classId).getX(), HELPER_LOCATION.get(classId).getY(), HELPER_LOCATION.get(classId).getZ()); showTutorialHtml(event.getPlayer(), "tutorial_04.html"); + playTutorialVoice(event.getPlayer(), "tutorial_voice_007"); } break; } @@ -401,9 +381,9 @@ public class Q00255_Tutorial extends Quest public void OnPlayerBypass(OnPlayerBypass event) { final PlayerInstance player = event.getPlayer(); - if (event.getCommand().startsWith(TUTORIAL_BUYPASS)) + if (event.getCommand().startsWith(TUTORIAL_BYPASS)) { - notifyEvent(event.getCommand().replace(TUTORIAL_BUYPASS, ""), null, player); + notifyEvent(event.getCommand().replace(TUTORIAL_BYPASS, ""), null, player); } } @@ -422,7 +402,7 @@ public class Q00255_Tutorial extends Quest return; } - QuestState qs = getQuestState(player, true); + final QuestState qs = getQuestState(player, true); if ((qs != null) && (qs.getMemoState() < 4) && STARTING_VOICE_HTML.containsKey(player.getClassId().getId())) { startQuestTimer("start_newbie_tutorial", 5000, null, player); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Assassin.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Assassin.xml index 89f833f121..0d7a9a17fe 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Assassin.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Assassin.xml @@ -1,148 +1,148 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Cleric.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Cleric.xml index 9e53816f15..69df889ea1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Cleric.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Cleric.xml @@ -1,149 +1,149 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/DarkWizard.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/DarkWizard.xml index d1e618d8a6..631348f47e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/DarkWizard.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/DarkWizard.xml @@ -1,141 +1,142 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/ElvenOracle.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/ElvenOracle.xml index d7cf7eaf6b..732e3eab5c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/ElvenOracle.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/ElvenOracle.xml @@ -1,153 +1,153 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/HumanKnight.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/HumanKnight.xml index f183a4cf27..017eae653d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/HumanKnight.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/HumanKnight.xml @@ -1,114 +1,114 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/HumanWizard.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/HumanWizard.xml index 5f461b59f4..ff37c322a8 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/HumanWizard.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/HumanWizard.xml @@ -1,143 +1,143 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/OrcShaman.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/OrcShaman.xml index 719e1ab72b..cdb1bef571 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/OrcShaman.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/OrcShaman.xml @@ -1,138 +1,138 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/PalusKnight.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/PalusKnight.xml index fb440d0c3c..2d0748af1b 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/PalusKnight.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/PalusKnight.xml @@ -1,113 +1,113 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/ShillienOracle.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/ShillienOracle.xml index 9f690555ad..f4b6326446 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/ShillienOracle.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/ShillienOracle.xml @@ -1,153 +1,153 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/SoulFinder.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/SoulFinder.xml new file mode 100644 index 0000000000..7771fc8e63 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/SoulFinder.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Trooper.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Trooper.xml new file mode 100644 index 0000000000..ce1e743a1b --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Trooper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Warden.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Warden.xml new file mode 100644 index 0000000000..3c4596c3a9 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/1stClass/Warden.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/AbyssWalker.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/AbyssWalker.xml index c3b670b165..b40e46e3d5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/AbyssWalker.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/AbyssWalker.xml @@ -1,425 +1,431 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Arbalester.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Arbalester.xml new file mode 100644 index 0000000000..1075a1d6c3 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Arbalester.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Berserker.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Berserker.xml new file mode 100644 index 0000000000..a962ff8e48 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Berserker.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Bishop.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Bishop.xml index 132b654a08..f66dca6395 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Bishop.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Bishop.xml @@ -1,471 +1,471 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/BladeDancer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/BladeDancer.xml index f5ddd644b7..c4a8a902b4 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/BladeDancer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/BladeDancer.xml @@ -1,334 +1,340 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/BountyHunter.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/BountyHunter.xml index 5d05ba6f4e..1c1eab1db3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/BountyHunter.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/BountyHunter.xml @@ -1,331 +1,340 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/DarkAvenger.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/DarkAvenger.xml index dea864be63..bdd4ba2bd1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/DarkAvenger.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/DarkAvenger.xml @@ -1,423 +1,426 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Destroyer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Destroyer.xml index 9b34536ee1..c3124f4ab0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Destroyer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Destroyer.xml @@ -1,419 +1,427 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ElementalSummoner.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ElementalSummoner.xml index 80652921fd..f956fd3195 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ElementalSummoner.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ElementalSummoner.xml @@ -1,370 +1,370 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Gladiator.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Gladiator.xml index 6dc5e2b9cb..62a5e4b3c0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Gladiator.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Gladiator.xml @@ -1,524 +1,533 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Necromancer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Necromancer.xml index c351b1b766..b8537e411c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Necromancer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Necromancer.xml @@ -1,485 +1,485 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Overlord.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Overlord.xml index 7a90b8a22d..2b92702d27 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Overlord.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Overlord.xml @@ -1,549 +1,549 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Paladin.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Paladin.xml index d17afc27b8..4ba81c2907 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Paladin.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Paladin.xml @@ -1,437 +1,440 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/PhantomRanger.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/PhantomRanger.xml index 790457aa77..20e15cd39a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/PhantomRanger.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/PhantomRanger.xml @@ -1,392 +1,392 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/PlainsWalker.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/PlainsWalker.xml index e86b0dcb2a..a88eb90847 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/PlainsWalker.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/PlainsWalker.xml @@ -1,380 +1,386 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Prophet.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Prophet.xml index e76296bbfb..a1c209db07 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Prophet.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Prophet.xml @@ -1,363 +1,363 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ShillienElder.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ShillienElder.xml index 338a80b5b4..f592819014 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ShillienElder.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ShillienElder.xml @@ -1,389 +1,389 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ShillienKnight.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ShillienKnight.xml index f49e769cd9..ccc7779579 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ShillienKnight.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/ShillienKnight.xml @@ -1,481 +1,484 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Sorcerer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Sorcerer.xml index a0ddd52a57..75614eb1a5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Sorcerer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Sorcerer.xml @@ -1,383 +1,382 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/SoulBreaker.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/SoulBreaker.xml new file mode 100644 index 0000000000..ef367a7718 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/SoulBreaker.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Swordsinger.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Swordsinger.xml index 950cb41f63..7d2e3c7202 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Swordsinger.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Swordsinger.xml @@ -1,289 +1,295 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/TempleKnight.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/TempleKnight.xml index fc06bceddc..1b1e2208c7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/TempleKnight.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/TempleKnight.xml @@ -1,436 +1,439 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/TreasureHunter.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/TreasureHunter.xml index f4be80ea80..4ae1107874 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/TreasureHunter.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/TreasureHunter.xml @@ -1,304 +1,310 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Tyrant.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Tyrant.xml index 33f48a8373..915d63be56 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Tyrant.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Tyrant.xml @@ -1,374 +1,383 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warcryer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warcryer.xml index f386e8e77a..1f23e33310 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warcryer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warcryer.xml @@ -1,418 +1,418 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warlord.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warlord.xml index f77ca2898a..e6836bdb36 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warlord.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warlord.xml @@ -1,329 +1,338 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warsmith.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warsmith.xml index c382fd9c69..f51042579f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warsmith.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/2ndClass/Warsmith.xml @@ -1,337 +1,346 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Adventurer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Adventurer.xml index 4c69378f9a..631576de03 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Adventurer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Adventurer.xml @@ -1,100 +1,100 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ArcanaLord.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ArcanaLord.xml index a140586167..86b036d0dd 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ArcanaLord.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ArcanaLord.xml @@ -1,130 +1,132 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Archmage.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Archmage.xml index 1f4bd3401e..5347407153 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Archmage.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Archmage.xml @@ -1,140 +1,148 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Cardinal.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Cardinal.xml index 940131d178..0e64d3a594 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Cardinal.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Cardinal.xml @@ -1,129 +1,129 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Dominator.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Dominator.xml index acbf58c290..a18148a9f9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Dominator.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Dominator.xml @@ -1,181 +1,181 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/DoomBringer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/DoomBringer.xml new file mode 100644 index 0000000000..05ffaabe6b --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/DoomBringer.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Doomcryer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Doomcryer.xml index 09e88c0d0f..043e2963a9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Doomcryer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Doomcryer.xml @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Dreadnought.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Dreadnought.xml index de92de4f65..4bbb3e8c57 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Dreadnought.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Dreadnought.xml @@ -1,90 +1,91 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Duelist.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Duelist.xml index 2886dab11b..8b48a9b7f9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Duelist.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Duelist.xml @@ -1,121 +1,121 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ElementalMaster.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ElementalMaster.xml index d71e388488..231a383636 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ElementalMaster.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ElementalMaster.xml @@ -1,131 +1,133 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/EvaSaint.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/EvaSaint.xml index fd02b4b885..50f9b90773 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/EvaSaint.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/EvaSaint.xml @@ -1,114 +1,114 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/EvaTemplar.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/EvaTemplar.xml index 2815661a3f..8d946d5121 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/EvaTemplar.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/EvaTemplar.xml @@ -1,156 +1,156 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/FortuneSeeker.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/FortuneSeeker.xml index 52c9755fff..d79365ae86 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/FortuneSeeker.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/FortuneSeeker.xml @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GhostHunter.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GhostHunter.xml index 1e6f9abccc..8a8593c51c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GhostHunter.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GhostHunter.xml @@ -1,112 +1,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GhostSentinel.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GhostSentinel.xml index 81225b9de7..74ed934e1b 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GhostSentinel.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GhostSentinel.xml @@ -1,97 +1,97 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GrandKhavatari.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GrandKhavatari.xml index 6740eb73ad..5a9a5bdbe2 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GrandKhavatari.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/GrandKhavatari.xml @@ -1,109 +1,109 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/HellKnight.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/HellKnight.xml index 8e4c851afb..47c62f09fd 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/HellKnight.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/HellKnight.xml @@ -1,154 +1,154 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Hierophant.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Hierophant.xml index d91f070345..31bd1740cf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Hierophant.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Hierophant.xml @@ -1,114 +1,114 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Maestro.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Maestro.xml index b655c9350d..91b9a9d707 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Maestro.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Maestro.xml @@ -1,112 +1,112 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/MoonlightSentinel.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/MoonlightSentinel.xml index fa0fe84da5..71b0780bb0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/MoonlightSentinel.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/MoonlightSentinel.xml @@ -1,95 +1,95 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/MysticMuse.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/MysticMuse.xml index f7652aa56c..269f4ce5ed 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/MysticMuse.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/MysticMuse.xml @@ -1,150 +1,158 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/PhoenixKnight.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/PhoenixKnight.xml index 32a10bbfb2..dd16a3d2d9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/PhoenixKnight.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/PhoenixKnight.xml @@ -1,152 +1,152 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Sagittarius.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Sagittarius.xml index a874acafbf..cfb3096429 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Sagittarius.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Sagittarius.xml @@ -1,93 +1,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ShillienSaint.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ShillienSaint.xml index 9b97d492b7..a2790254cf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ShillienSaint.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ShillienSaint.xml @@ -1,129 +1,129 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ShillienTemplar.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ShillienTemplar.xml index a0e5da2c2f..a591717766 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ShillienTemplar.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/ShillienTemplar.xml @@ -1,152 +1,152 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SoulHound.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SoulHound.xml new file mode 100644 index 0000000000..c30b83ae25 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SoulHound.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Soultaker.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Soultaker.xml index 1877df9f2b..a037ddc7f5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Soultaker.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Soultaker.xml @@ -1,169 +1,169 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SpectralDancer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SpectralDancer.xml index b9dc1be671..71a6ba88c5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SpectralDancer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SpectralDancer.xml @@ -1,93 +1,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SpectralMaster.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SpectralMaster.xml index 98fdc69bc5..f1957031e7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SpectralMaster.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/SpectralMaster.xml @@ -1,131 +1,131 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/StormScreamer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/StormScreamer.xml index 7d7bcdace9..80d5d9de06 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/StormScreamer.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/StormScreamer.xml @@ -1,146 +1,146 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Swordmuse.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Swordmuse.xml index 27ab95b4db..08c6c9f3cf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Swordmuse.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Swordmuse.xml @@ -1,85 +1,85 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Titan.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Titan.xml index d506c79307..d89757300e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Titan.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Titan.xml @@ -1,139 +1,139 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Trickster.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Trickster.xml new file mode 100644 index 0000000000..9b78a25c89 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/Trickster.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/WindRider.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/WindRider.xml index bc0dba7b46..be251c7caf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/WindRider.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/3rdClass/WindRider.xml @@ -1,104 +1,104 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DarkFighter.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DarkFighter.xml index 820741482f..733b6e4bf1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DarkFighter.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DarkFighter.xml @@ -1,55 +1,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DarkMystic.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DarkMystic.xml index 0e41e288c7..d46a93ab55 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DarkMystic.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DarkMystic.xml @@ -1,55 +1,70 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DwarvenFighter.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DwarvenFighter.xml index 7eeb1b32fa..7644e1ed2d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DwarvenFighter.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/DwarvenFighter.xml @@ -1,23 +1,37 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/ElvenFighter.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/ElvenFighter.xml index e469c40a4c..252a0df276 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/ElvenFighter.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/ElvenFighter.xml @@ -1,53 +1,70 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/ElvenMystic.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/ElvenMystic.xml index 74e39b92ae..90286cdf9f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/ElvenMystic.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/ElvenMystic.xml @@ -1,52 +1,67 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/HumanFighter.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/HumanFighter.xml index 9dabefa59a..a6a40fb6ca 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/HumanFighter.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/HumanFighter.xml @@ -1,49 +1,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/HumanMystic.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/HumanMystic.xml index ee45ef6565..a9f2f6b0a4 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/HumanMystic.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/HumanMystic.xml @@ -1,54 +1,69 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/KamaelSoldier.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/KamaelSoldier.xml index 21a9cc5658..9bbef3706c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/KamaelSoldier.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/KamaelSoldier.xml @@ -1,7 +1,31 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/OrcFighter.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/OrcFighter.xml index 256a745194..c0510bdf0e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/OrcFighter.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/OrcFighter.xml @@ -1,43 +1,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/OrcMystic.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/OrcMystic.xml index f39bd4e358..21c7b17c8f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/OrcMystic.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/skillTrees/StartingClass/OrcMystic.xml @@ -1,43 +1,57 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/CaveOfSouls.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/CaveOfSouls.xml new file mode 100644 index 0000000000..133fb46586 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/CaveOfSouls.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/GoldenHills.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/GoldenHills.xml new file mode 100644 index 0000000000..9e365896d4 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/GoldenHills.xml @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/HillOfHope.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/HillOfHope.xml new file mode 100644 index 0000000000..d08a8667e2 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/HillOfHope.xml @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/KamaelVillage.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/KamaelVillage.xml new file mode 100644 index 0000000000..d0cc4ef226 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/spawns/Kamael/KamaelVillage.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Arbalester.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Arbalester.xml new file mode 100644 index 0000000000..36e1225eb4 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Arbalester.xml @@ -0,0 +1,928 @@ + + + 130 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 4538.74 + 1645.78 + 2269.37 + 10.4 + 3.0 + 8.5 + + + 4617.94 + 1672.78 + 2308.97 + 10.5 + 3.0 + 8.5 + + + 4697.58 + 1699.93 + 2348.79 + 10.6 + 3.0 + 8.5 + + + 4777.66 + 1727.23 + 2388.83 + 10.7 + 3.0 + 8.5 + + + 4858.18 + 1754.68 + 2429.09 + 10.8 + 3.0 + 8.5 + + + 4939.14 + 1782.28 + 2469.57 + 10.9 + 3.0 + 8.5 + + + 5020.54 + 1810.03 + 2510.27 + 11 + 3.0 + 8.5 + + + 5102.38 + 1837.93 + 2551.19 + 11.1 + 3.0 + 8.5 + + + 5184.66 + 1865.98 + 2592.33 + 11.2 + 3.0 + 8.5 + + + 5267.38 + 1894.18 + 2633.69 + 11.3 + 3.0 + 8.5 + + + 5350.54 + 1922.53 + 2675.27 + 11.4 + 3.0 + 8.5 + + + 5434.14 + 1951.03 + 2717.07 + 11.5 + 3.0 + 8.5 + + + 5518.18 + 1979.68 + 2759.09 + 11.6 + 3.0 + 8.5 + + + 5602.66 + 2008.48 + 2801.33 + 11.7 + 3.0 + 8.5 + + + 5687.58 + 2037.43 + 2843.79 + 11.8 + 3.0 + 8.5 + + + 5772.94 + 2066.53 + 2886.47 + 11.9 + 3.0 + 8.5 + + + 5858.74 + 2095.78 + 2929.37 + 12 + 3.0 + 8.5 + + + 5944.98 + 2125.18 + 2972.49 + 12.1 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Berserker.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Berserker.xml new file mode 100644 index 0000000000..062adb62fa --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Berserker.xml @@ -0,0 +1,928 @@ + + + 127 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 4577.81 + 1528.86 + 2288.905 + 10.4 + 3.0 + 8.5 + + + 4657.01 + 1555.86 + 2328.505 + 10.5 + 3.0 + 8.5 + + + 4736.65 + 1583.01 + 2368.325 + 10.6 + 3.0 + 8.5 + + + 4816.73 + 1610.31 + 2408.365 + 10.7 + 3.0 + 8.5 + + + 4897.25 + 1637.76 + 2448.625 + 10.8 + 3.0 + 8.5 + + + 4978.21 + 1665.36 + 2489.105 + 10.9 + 3.0 + 8.5 + + + 5059.61 + 1693.11 + 2529.805 + 11 + 3.0 + 8.5 + + + 5141.45 + 1721.01 + 2570.725 + 11.1 + 3.0 + 8.5 + + + 5223.73 + 1749.06 + 2611.865 + 11.2 + 3.0 + 8.5 + + + 5306.45 + 1777.26 + 2653.225 + 11.3 + 3.0 + 8.5 + + + 5389.61 + 1805.61 + 2694.81 + 11.4 + 3.0 + 8.5 + + + 5473.21 + 1834.11 + 2736.61 + 11.5 + 3.0 + 8.5 + + + 5557.25 + 1862.76 + 2778.63 + 11.6 + 3.0 + 8.5 + + + 5641.73 + 1891.56 + 2820.87 + 11.7 + 3.0 + 8.5 + + + 5726.65 + 1920.51 + 2863.33 + 11.8 + 3.0 + 8.5 + + + 5812.01 + 1949.61 + 2906.01 + 11.9 + 3.0 + 8.5 + + + 5897.81 + 1978.86 + 2948.91 + 12 + 3.0 + 8.5 + + + 5984.05 + 2008.26 + 2992.025 + 12.1 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Doombringer.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Doombringer.xml new file mode 100644 index 0000000000..3aad8b9544 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Doombringer.xml @@ -0,0 +1,928 @@ + + + 131 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 4577.81 + 1528.86 + 2288.905 + 10.4 + 3.0 + 8.5 + + + 4657.01 + 1555.86 + 2328.505 + 10.5 + 3.0 + 8.5 + + + 4736.65 + 1583.01 + 2368.325 + 10.6 + 3.0 + 8.5 + + + 4816.73 + 1610.31 + 2408.365 + 10.7 + 3.0 + 8.5 + + + 4897.25 + 1637.76 + 2448.625 + 10.8 + 3.0 + 8.5 + + + 4978.21 + 1665.36 + 2489.105 + 10.9 + 3.0 + 8.5 + + + 5059.61 + 1693.11 + 2529.805 + 11 + 3.0 + 8.5 + + + 5141.45 + 1721.01 + 2570.725 + 11.1 + 3.0 + 8.5 + + + 5223.73 + 1749.06 + 2611.865 + 11.2 + 3.0 + 8.5 + + + 5306.45 + 1777.26 + 2653.225 + 11.3 + 3.0 + 8.5 + + + 5389.61 + 1805.61 + 2694.81 + 11.4 + 3.0 + 8.5 + + + 5473.21 + 1834.11 + 2736.61 + 11.5 + 3.0 + 8.5 + + + 5557.25 + 1862.76 + 2778.63 + 11.6 + 3.0 + 8.5 + + + 5641.73 + 1891.56 + 2820.87 + 11.7 + 3.0 + 8.5 + + + 5726.65 + 1920.51 + 2863.33 + 11.8 + 3.0 + 8.5 + + + 5812.01 + 1949.61 + 2906.01 + 11.9 + 3.0 + 8.5 + + + 5897.81 + 1978.86 + 2948.91 + 12 + 3.0 + 8.5 + + + 5984.05 + 2008.26 + 2992.025 + 12.1 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulBreaker.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulBreaker.xml new file mode 100644 index 0000000000..46aee921e9 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulBreaker.xml @@ -0,0 +1,928 @@ + + + 194 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 4263.65 + 1921.56 + 2131.825 + 10.4 + 3.0 + 8.5 + + + 4335.65 + 1957.56 + 2167.825 + 10.5 + 3.0 + 8.5 + + + 4408.05 + 1993.76 + 2204.025 + 10.6 + 3.0 + 8.5 + + + 4480.85 + 2030.16 + 2240.425 + 10.7 + 3.0 + 8.5 + + + 4554.05 + 2066.76 + 2277.025 + 10.8 + 3.0 + 8.5 + + + 4627.65 + 2103.56 + 2313.825 + 10.9 + 3.0 + 8.5 + + + 4701.65 + 2140.56 + 2350.825 + 11 + 3.0 + 8.5 + + + 4776.05 + 2177.76 + 2388.025 + 11.1 + 3.0 + 8.5 + + + 4850.85 + 2215.16 + 2425.425 + 11.2 + 3.0 + 8.5 + + + 4926.05 + 2252.76 + 2463.025 + 11.3 + 3.0 + 8.5 + + + 5001.65 + 2290.56 + 2500.83 + 11.4 + 3.0 + 8.5 + + + 5077.65 + 2328.56 + 2538.83 + 11.5 + 3.0 + 8.5 + + + 5154.05 + 2366.76 + 2577.03 + 11.6 + 3.0 + 8.5 + + + 5230.85 + 2405.16 + 2615.43 + 11.7 + 3.0 + 8.5 + + + 5308.05 + 2443.76 + 2654.03 + 11.8 + 3.0 + 8.5 + + + 5385.65 + 2482.56 + 2692.83 + 11.9 + 3.0 + 8.5 + + + 5463.65 + 2521.56 + 2731.83 + 12 + 3.0 + 8.5 + + + 5542.05 + 2560.76 + 2771.025 + 12.1 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulFinder.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulFinder.xml new file mode 100644 index 0000000000..7d476283e9 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulFinder.xml @@ -0,0 +1,928 @@ + + + 193 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 4263.65 + 1921.56 + 2131.825 + 10.4 + 3.0 + 8.5 + + + 4335.65 + 1957.56 + 2167.825 + 10.5 + 3.0 + 8.5 + + + 4408.05 + 1993.76 + 2204.025 + 10.6 + 3.0 + 8.5 + + + 4480.85 + 2030.16 + 2240.425 + 10.7 + 3.0 + 8.5 + + + 4554.05 + 2066.76 + 2277.025 + 10.8 + 3.0 + 8.5 + + + 4627.65 + 2103.56 + 2313.825 + 10.9 + 3.0 + 8.5 + + + 4701.65 + 2140.56 + 2350.825 + 11 + 3.0 + 8.5 + + + 4776.05 + 2177.76 + 2388.025 + 11.1 + 3.0 + 8.5 + + + 4850.85 + 2215.16 + 2425.425 + 11.2 + 3.0 + 8.5 + + + 4926.05 + 2252.76 + 2463.025 + 11.3 + 3.0 + 8.5 + + + 5001.65 + 2290.56 + 2500.83 + 11.4 + 3.0 + 8.5 + + + 5077.65 + 2328.56 + 2538.83 + 11.5 + 3.0 + 8.5 + + + 5154.05 + 2366.76 + 2577.03 + 11.6 + 3.0 + 8.5 + + + 5230.85 + 2405.16 + 2615.43 + 11.7 + 3.0 + 8.5 + + + 5308.05 + 2443.76 + 2654.03 + 11.8 + 3.0 + 8.5 + + + 5385.65 + 2482.56 + 2692.83 + 11.9 + 3.0 + 8.5 + + + 5463.65 + 2521.56 + 2731.83 + 12 + 3.0 + 8.5 + + + 5542.05 + 2560.76 + 2771.025 + 12.1 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulHound.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulHound.xml new file mode 100644 index 0000000000..66b2b3ead3 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/SoulHound.xml @@ -0,0 +1,928 @@ + + + 195 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 7297.65 + 3035.7 + 10076.64 + 10.4 + 3.0 + 8.5 + + + 7369.19 + 3089.7 + 10175.43 + 10.5 + 3.0 + 8.5 + + + 7441.44 + 3144 + 10275.18 + 10.6 + 3.0 + 8.5 + + + 7514.4 + 3198.6 + 10375.92 + 10.7 + 3.0 + 8.5 + + + 7588.07 + 3253.5 + 10477.65 + 10.8 + 3.0 + 8.5 + + + 7662.46 + 3308.7 + 10580.37 + 10.9 + 3.0 + 8.5 + + + 7737.58 + 3364.2 + 10684.1 + 11 + 3.0 + 8.5 + + + 7813.44 + 3420 + 10788.84 + 11.1 + 3.0 + 8.5 + + + 7890.04 + 3476.1 + 10894.62 + 11.2 + 3.0 + 8.5 + + + 7967.39 + 3532.5 + 11001.43 + 11.3 + 3.0 + 8.5 + + + 8045.49 + 3589.2 + 11109.27 + 11.4 + 3.0 + 8.5 + + + 8124.34 + 3646.2 + 11218.14 + 11.5 + 3.0 + 8.5 + + + 8203.94 + 3703.5 + 11328.04 + 11.6 + 3.0 + 8.5 + + + 8284.29 + 3761.1 + 11438.97 + 11.7 + 3.0 + 8.5 + + + 8365.39 + 3819 + 11550.93 + 11.8 + 3.0 + 8.5 + + + 8447.24 + 3877.2 + 11663.92 + 11.9 + 3.0 + 8.5 + + + 8529.84 + 3935.7 + 11777.94 + 12 + 3.0 + 8.5 + + + 5445.148003 + 2571.71672 + 6313.533247 + 12.2 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Trickster.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Trickster.xml new file mode 100644 index 0000000000..2658ba89d4 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Trickster.xml @@ -0,0 +1,928 @@ + + + 134 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 4538.74 + 1645.78 + 2269.37 + 10.4 + 3.0 + 8.5 + + + 4617.94 + 1672.78 + 2308.97 + 10.5 + 3.0 + 8.5 + + + 4697.58 + 1699.93 + 2348.79 + 10.6 + 3.0 + 8.5 + + + 4777.66 + 1727.23 + 2388.83 + 10.7 + 3.0 + 8.5 + + + 4858.18 + 1754.68 + 2429.09 + 10.8 + 3.0 + 8.5 + + + 4939.14 + 1782.28 + 2469.57 + 10.9 + 3.0 + 8.5 + + + 5020.54 + 1810.03 + 2510.27 + 11 + 3.0 + 8.5 + + + 5102.38 + 1837.93 + 2551.19 + 11.1 + 3.0 + 8.5 + + + 5184.66 + 1865.98 + 2592.33 + 11.2 + 3.0 + 8.5 + + + 5267.38 + 1894.18 + 2633.69 + 11.3 + 3.0 + 8.5 + + + 5350.54 + 1922.53 + 2675.27 + 11.4 + 3.0 + 8.5 + + + 5434.14 + 1951.03 + 2717.07 + 11.5 + 3.0 + 8.5 + + + 5518.18 + 1979.68 + 2759.09 + 11.6 + 3.0 + 8.5 + + + 5602.66 + 2008.48 + 2801.33 + 11.7 + 3.0 + 8.5 + + + 5687.58 + 2037.43 + 2843.79 + 11.8 + 3.0 + 8.5 + + + 5772.94 + 2066.53 + 2886.47 + 11.9 + 3.0 + 8.5 + + + 5858.74 + 2095.78 + 2929.37 + 12 + 3.0 + 8.5 + + + 5944.98 + 2125.18 + 2972.49 + 12.1 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Trooper.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Trooper.xml new file mode 100644 index 0000000000..5f04f8c098 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Trooper.xml @@ -0,0 +1,928 @@ + + + 125 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 3635.33 + 1057.62 + 1817.665 + 10.4 + 3.0 + 8.5 + + + 3692.93 + 1073.82 + 1846.465 + 10.5 + 3.0 + 8.5 + + + 3750.85 + 1090.11 + 1875.425 + 10.6 + 3.0 + 8.5 + + + 3809.09 + 1106.49 + 1904.545 + 10.7 + 3.0 + 8.5 + + + 3867.65 + 1122.96 + 1933.825 + 10.8 + 3.0 + 8.5 + + + 3926.53 + 1139.52 + 1963.265 + 10.9 + 3.0 + 8.5 + + + 3985.73 + 1156.17 + 1992.865 + 11 + 3.0 + 8.5 + + + 4045.25 + 1172.91 + 2022.625 + 11.1 + 3.0 + 8.5 + + + 4105.09 + 1189.74 + 2052.545 + 11.2 + 3.0 + 8.5 + + + 4165.25 + 1206.66 + 2082.625 + 11.3 + 3.0 + 8.5 + + + 4225.73 + 1223.67 + 2112.87 + 11.4 + 3.0 + 8.5 + + + 4286.53 + 1240.77 + 2143.27 + 11.5 + 3.0 + 8.5 + + + 4347.65 + 1257.96 + 2173.83 + 11.6 + 3.0 + 8.5 + + + 4409.09 + 1275.24 + 2204.55 + 11.7 + 3.0 + 8.5 + + + 4470.85 + 1292.61 + 2235.43 + 11.8 + 3.0 + 8.5 + + + 4532.93 + 1310.07 + 2266.47 + 11.9 + 3.0 + 8.5 + + + 4595.33 + 1327.62 + 2297.67 + 12 + 3.0 + 8.5 + + + 4658.05 + 1345.26 + 2329.025 + 12.1 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Warden.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Warden.xml new file mode 100644 index 0000000000..db29c3f7f1 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/baseStats/Warden.xml @@ -0,0 +1,928 @@ + + + 126 + + 25 + 41 + 27 + 22 + 35 + 20 + 10 + 10 + + + + + + + + + 4 + 4 + 5 + FIST + 300 + 333 + + 31 + 18 + 12 + 7 + 8 + 3 + 1 + + 6 + + 9 + 9 + 5 + 5 + 13 + + 0 + 20 + + 0 + 0 + 26 + 120 + + 10 + + 87 + 140 + 50 + 50 + + 100 + 500 + + 8.0 + 25.2 + + + 7.0 + 22.6 + + + + + 95.0 + 30.0 + 47.5 + 2.0 + 0.9 + 2.0 + + + 108.65 + 35.46 + 54.325 + 2.05 + 0.9 + 2.0 + + + 122.45 + 40.98 + 61.225 + 2.1 + 0.9 + 2.0 + + + 136.4 + 46.56 + 68.2 + 2.15 + 0.9 + 2.0 + + + 150.5 + 52.2 + 75.25 + 2.2 + 0.9 + 2.0 + + + 164.75 + 57.9 + 82.375 + 2.25 + 0.9 + 2.0 + + + 179.15 + 63.66 + 89.575 + 2.3 + 0.9 + 2.0 + + + 193.7 + 69.48 + 96.85 + 2.35 + 0.9 + 2.0 + + + 208.4 + 75.36 + 104.2 + 2.4 + 0.9 + 2.0 + + + 223.25 + 81.3 + 111.625 + 2.45 + 0.9 + 2.0 + + + 238.25 + 87.3 + 119.125 + 2.5 + 1.2 + 2.5 + + + 253.4 + 93.36 + 126.7 + 2.6 + 1.2 + 2.5 + + + 268.7 + 99.48 + 134.35 + 2.7 + 1.2 + 2.5 + + + 284.15 + 105.66 + 142.075 + 2.8 + 1.2 + 2.5 + + + 299.75 + 111.9 + 149.875 + 2.9 + 1.2 + 2.5 + + + 315.5 + 118.2 + 157.75 + 3.0 + 1.2 + 2.5 + + + 331.4 + 124.56 + 165.7 + 3.1 + 1.2 + 2.5 + + + 347.45 + 130.98 + 173.725 + 3.2 + 1.2 + 2.5 + + + 363.65 + 137.46 + 181.825 + 3.3 + 1.2 + 2.5 + + + 380.0 + 144.0 + 190.0 + 3.4 + 1.2 + 2.5 + + + 396.5 + 150.6 + 198.25 + 3.5 + 1.5 + 3.5 + + + 413.15 + 157.26 + 206.575 + 3.6 + 1.5 + 3.5 + + + 429.95 + 163.98 + 214.975 + 3.7 + 1.5 + 3.5 + + + 446.9 + 170.76 + 223.45 + 3.8 + 1.5 + 3.5 + + + 464.0 + 177.6 + 232.0 + 3.9 + 1.5 + 3.5 + + + 481.25 + 184.5 + 240.625 + 4.0 + 1.5 + 3.5 + + + 498.65 + 191.46 + 249.325 + 4.1 + 1.5 + 3.5 + + + 516.2 + 198.48 + 258.1 + 4.2 + 1.5 + 3.5 + + + 533.9 + 205.56 + 266.95 + 4.3 + 1.5 + 3.5 + + + 551.75 + 212.7 + 275.875 + 4.4 + 1.5 + 3.5 + + + 569.75 + 219.9 + 284.875 + 4.5 + 1.8 + 4.5 + + + 587.9 + 227.16 + 293.95 + 4.6 + 1.8 + 4.5 + + + 606.2 + 234.48 + 303.1 + 4.7 + 1.8 + 4.5 + + + 624.65 + 241.86 + 312.325 + 4.8 + 1.8 + 4.5 + + + 643.25 + 249.3 + 321.625 + 4.9 + 1.8 + 4.5 + + + 662.0 + 256.8 + 331.0 + 5.0 + 1.8 + 4.5 + + + 680.9 + 264.36 + 340.45 + 5.1 + 1.8 + 4.5 + + + 699.95 + 271.98 + 349.975 + 5.2 + 1.8 + 4.5 + + + 719.15 + 279.66 + 359.575 + 5.3 + 1.8 + 4.5 + + + 738.5 + 287.4 + 369.25 + 5.4 + 1.8 + 4.5 + + + 758.0 + 295.2 + 379.0 + 5.5 + 2.1 + 5.5 + + + 777.65 + 303.06 + 388.825 + 5.6 + 2.1 + 5.5 + + + 797.45 + 310.98 + 398.725 + 5.7 + 2.1 + 5.5 + + + 817.4 + 318.96 + 408.7 + 5.8 + 2.1 + 5.5 + + + 837.5 + 327.0 + 418.75 + 5.9 + 2.1 + 5.5 + + + 857.75 + 335.1 + 428.875 + 6.0 + 2.1 + 5.5 + + + 878.15 + 343.26 + 439.075 + 6.1 + 2.1 + 5.5 + + + 898.7 + 351.48 + 449.35 + 6.2 + 2.1 + 5.5 + + + 919.4 + 359.76 + 459.7 + 6.3 + 2.1 + 5.5 + + + 940.25 + 368.1 + 470.125 + 6.4 + 2.1 + 5.5 + + + 961.25 + 376.5 + 480.625 + 6.5 + 2.4 + 6.5 + + + 982.4 + 384.96 + 491.2 + 6.6 + 2.4 + 6.5 + + + 1003.7 + 393.48 + 501.85 + 6.7 + 2.4 + 6.5 + + + 1025.15 + 402.06 + 512.575 + 6.8 + 2.4 + 6.5 + + + 1046.75 + 410.7 + 523.375 + 6.9 + 2.4 + 6.5 + + + 1068.5 + 419.4 + 534.25 + 7.0 + 2.4 + 6.5 + + + 1090.4 + 428.16 + 545.2 + 7.1 + 2.4 + 6.5 + + + 1112.45 + 436.98 + 556.225 + 7.2 + 2.4 + 6.5 + + + 1134.65 + 445.86 + 567.325 + 7.3 + 2.4 + 6.5 + + + 1157.0 + 454.8 + 578.5 + 7.4 + 2.4 + 6.5 + + + 1179.5 + 463.8 + 589.75 + 7.5 + 2.7 + 7.5 + + + 1202.15 + 472.86 + 601.075 + 7.6 + 2.7 + 7.5 + + + 1224.95 + 481.98 + 612.475 + 7.7 + 2.7 + 7.5 + + + 1247.9 + 491.16 + 623.95 + 7.8 + 2.7 + 7.5 + + + 1271.0 + 500.4 + 635.5 + 7.9 + 2.7 + 7.5 + + + 1294.25 + 509.7 + 647.125 + 8.0 + 2.7 + 7.5 + + + 1317.65 + 519.06 + 658.825 + 8.1 + 2.7 + 7.5 + + + 1341.2 + 528.48 + 670.6 + 8.2 + 2.7 + 7.5 + + + 1364.9 + 537.96 + 682.45 + 8.3 + 2.7 + 7.5 + + + 1388.75 + 547.5 + 694.375 + 8.4 + 2.7 + 7.5 + + + 1412.75 + 557.1 + 706.375 + 8.5 + 3.0 + 8.5 + + + 1436.9 + 566.76 + 718.45 + 8.6 + 3.0 + 8.5 + + + 1461.2 + 576.48 + 730.6 + 8.7 + 3.0 + 8.5 + + + 1485.65 + 586.26 + 742.825 + 8.8 + 3.0 + 8.5 + + + 1510.25 + 596.1 + 755.125 + 8.9 + 3.0 + 8.5 + + + 1535.0 + 606.0 + 767.5 + 9.0 + 3.0 + 8.5 + + + 1559.9 + 615.96 + 779.95 + 9.1 + 3.0 + 8.5 + + + 1584.95 + 625.98 + 792.475 + 9.2 + 3.0 + 8.5 + + + 1610.15 + 636.06 + 805.075 + 9.3 + 3.0 + 8.5 + + + 1635.5 + 646.2 + 817.75 + 9.4 + 3.0 + 8.5 + + + 1661.0 + 656.4 + 830.5 + 9.5 + 3.0 + 8.5 + + + 1686.65 + 666.66 + 843.325 + 9.6 + 3.0 + 8.5 + + + 1712.45 + 676.98 + 856.225 + 9.7 + 3.0 + 8.5 + + + 1738.4 + 687.36 + 869.2 + 9.8 + 3.0 + 8.5 + + + 1764.5 + 697.8 + 882.25 + 9.9 + 3.0 + 8.5 + + + 1790.75 + 708.3 + 895.375 + 10 + 3.0 + 8.5 + + + 1817.15 + 718.86 + 908.575 + 10.1 + 3.0 + 8.5 + + + 1843.7 + 729.48 + 921.85 + 10.2 + 3.0 + 8.5 + + + 1870.4 + 740.16 + 935.2 + 10.3 + 3.0 + 8.5 + + + 3282.1 + 1410.16 + 1641.05 + 10.4 + 3.0 + 8.5 + + + 3332.5 + 1431.76 + 1666.25 + 10.5 + 3.0 + 8.5 + + + 3383.18 + 1453.48 + 1691.59 + 10.6 + 3.0 + 8.5 + + + 3434.14 + 1475.32 + 1717.07 + 10.7 + 3.0 + 8.5 + + + 3485.38 + 1497.28 + 1742.69 + 10.8 + 3.0 + 8.5 + + + 3536.9 + 1519.36 + 1768.45 + 10.9 + 3.0 + 8.5 + + + 3588.7 + 1541.56 + 1794.35 + 11 + 3.0 + 8.5 + + + 3640.78 + 1563.88 + 1820.39 + 11.1 + 3.0 + 8.5 + + + 3693.14 + 1586.32 + 1846.57 + 11.2 + 3.0 + 8.5 + + + 3745.78 + 1608.88 + 1872.89 + 11.3 + 3.0 + 8.5 + + + 3798.7 + 1631.56 + 1899.35 + 11.4 + 3.0 + 8.5 + + + 3851.9 + 1654.36 + 1925.95 + 11.5 + 3.0 + 8.5 + + + 3905.38 + 1677.28 + 1952.69 + 11.6 + 3.0 + 8.5 + + + 3959.14 + 1700.32 + 1979.57 + 11.7 + 3.0 + 8.5 + + + 4013.18 + 1723.48 + 2006.59 + 11.8 + 3.0 + 8.5 + + + 4067.5 + 1746.76 + 2033.75 + 11.9 + 3.0 + 8.5 + + + 4122.1 + 1770.16 + 2061.05 + 12 + 3.0 + 8.5 + + + 4176.98 + 1793.68 + 2088.49 + 12.1 + 3.0 + 8.5 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/classList.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/classList.xml index e5a78607de..75f512a0e0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/classList.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/chars/classList.xml @@ -90,89 +90,15 @@ - - - - - - - - - - - - - + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialEquipment.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialEquipment.xml index 82493c7b6f..182365968d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialEquipment.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialEquipment.xml @@ -6,22 +6,14 @@ - - - - - + - - - - - + @@ -29,22 +21,14 @@ - - - - - + - - - - - + @@ -52,22 +36,14 @@ - - - - - + - - - - - + @@ -75,11 +51,7 @@ - - - - - + @@ -87,11 +59,7 @@ - - - - - + @@ -99,21 +67,14 @@ - - - - - + - + - + - - - - - + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialEquipmentEvent.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialEquipmentEvent.xml index 7b3e57be9c..1cbfd74b1d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialEquipmentEvent.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialEquipmentEvent.xml @@ -7,12 +7,9 @@ - - - - - - + + + @@ -20,12 +17,9 @@ - - - - - - + + + @@ -34,12 +28,9 @@ - - - - - - + + + @@ -47,12 +38,9 @@ - - - - - - + + + @@ -61,12 +49,9 @@ - - - - - - + + + @@ -74,12 +59,9 @@ - - - - - - + + + @@ -88,12 +70,9 @@ - - - - - - + + + @@ -102,12 +81,9 @@ - - - - - - + + + @@ -116,24 +92,19 @@ - - - - - - + + + - + - + + - - - - - - + + + \ No newline at end of file diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialShortcuts.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialShortcuts.xml index e48cd7a699..27c904a34d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialShortcuts.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/initialShortcuts.xml @@ -6,6 +6,7 @@ + @@ -40,6 +41,12 @@ + + + + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91000-91099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91000-91099.xml index eaafe970a3..0650bcab46 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91000-91099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91000-91099.xml @@ -354,6 +354,7 @@ +
@@ -361,6 +362,7 @@ + @@ -368,6 +370,7 @@ + @@ -375,6 +378,7 @@ + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91100-91199.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91100-91199.xml index 04ebf86c59..5215b31db5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91100-91199.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91100-91199.xml @@ -909,6 +909,7 @@ + @@ -924,6 +925,7 @@ + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91800-91899.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91800-91899.xml index 83de92eb91..b8ab1ea097 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91800-91899.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91800-91899.xml @@ -391,41 +391,65 @@ - + + + + + + + - + + + + + + + - + + + + + + + - + + + + + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91900-91999.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91900-91999.xml index 9e15101cad..149e97498e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91900-91999.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/items/91900-91999.xml @@ -612,9 +612,13 @@ + + + + @@ -630,7 +634,7 @@ - + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/08500-08599.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/08500-08599.xml index d50caa090b..f6985fcc7b 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/08500-08599.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/08500-08599.xml @@ -1,6 +1,6 @@  - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/09000-09099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/09000-09099.xml index b190077997..a1b31ff0ff 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/09000-09099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/09000-09099.xml @@ -1,6 +1,6 @@  - + ETC FEMALE @@ -964,7 +964,7 @@ - + ETC FEMALE @@ -983,7 +983,7 @@ - + ETC FEMALE @@ -1002,7 +1002,7 @@ - + ETC FEMALE @@ -1021,7 +1021,7 @@ - + ETC FEMALE @@ -1040,7 +1040,7 @@ - + ETC FEMALE @@ -1059,7 +1059,7 @@ - + ETC FEMALE @@ -1078,7 +1078,7 @@ - + ETC FEMALE @@ -1097,7 +1097,7 @@ - + ETC FEMALE @@ -1116,7 +1116,7 @@ - + ETC FEMALE @@ -1135,7 +1135,7 @@ - + ETC FEMALE @@ -1154,7 +1154,7 @@ - + ETC FEMALE @@ -1173,7 +1173,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/13500-13599.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/13500-13599.xml index c529434b19..06e0a9ea88 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/13500-13599.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/13500-13599.xml @@ -1,6 +1,6 @@  - + ETC FEMALE @@ -1361,7 +1361,7 @@ - + ETC FEMALE @@ -1380,7 +1380,7 @@ - + ETC FEMALE @@ -1399,7 +1399,7 @@ - + ETC FEMALE @@ -1418,7 +1418,7 @@ - + ETC FEMALE @@ -1437,7 +1437,7 @@ - + ETC FEMALE @@ -1456,7 +1456,7 @@ - + ETC FEMALE @@ -1475,7 +1475,7 @@ - + ETC FEMALE @@ -1494,7 +1494,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/13600-13699.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/13600-13699.xml index 52fcbdb439..ee200e3ab4 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/13600-13699.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/13600-13699.xml @@ -1,6 +1,6 @@  - + ETC FEMALE @@ -19,7 +19,7 @@ - + ETC FEMALE @@ -38,7 +38,7 @@ - + ETC FEMALE @@ -57,7 +57,7 @@ - + ETC FEMALE @@ -76,7 +76,7 @@ - + ETC FEMALE @@ -95,7 +95,7 @@ - + ETC FEMALE @@ -114,7 +114,7 @@ - + ETC FEMALE @@ -133,7 +133,7 @@ - + ETC FEMALE @@ -152,7 +152,7 @@ - + ETC FEMALE @@ -171,7 +171,7 @@ - + ETC FEMALE @@ -190,7 +190,7 @@ - + ETC FEMALE @@ -209,7 +209,7 @@ - + ETC FEMALE @@ -228,7 +228,7 @@ - + ETC FEMALE @@ -247,7 +247,7 @@ - + ETC FEMALE @@ -266,7 +266,7 @@ - + ETC FEMALE @@ -285,7 +285,7 @@ - + ETC FEMALE @@ -304,7 +304,7 @@ - + ETC FEMALE @@ -323,7 +323,7 @@ - + ETC FEMALE @@ -342,7 +342,7 @@ - + ETC FEMALE @@ -361,7 +361,7 @@ - + ETC FEMALE @@ -380,7 +380,7 @@ - + ETC FEMALE @@ -399,7 +399,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/15900-15999.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/15900-15999.xml index 8406835359..45d7b48f35 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/15900-15999.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/15900-15999.xml @@ -1,6 +1,6 @@  - + ETC FEMALE @@ -57,7 +57,7 @@ - + ETC FEMALE @@ -76,7 +76,7 @@ - + ETC FEMALE @@ -95,7 +95,7 @@ - + ETC FEMALE @@ -114,7 +114,7 @@ - + ETC FEMALE @@ -133,7 +133,7 @@ - + ETC FEMALE @@ -152,7 +152,7 @@ - + ETC FEMALE @@ -171,7 +171,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/18300-18399.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/18300-18399.xml index d8ff6c1727..9dbdf0fbcf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/18300-18399.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/18300-18399.xml @@ -1,6 +1,6 @@  - + ETC FEMALE @@ -50,7 +50,7 @@ - + ETC FEMALE @@ -69,7 +69,7 @@ - + ETC FEMALE @@ -88,7 +88,7 @@ - + ETC FEMALE @@ -107,7 +107,7 @@ - + ETC FEMALE @@ -126,7 +126,7 @@ - + ETC FEMALE @@ -145,7 +145,7 @@ - + ETC FEMALE @@ -164,7 +164,7 @@ - + ETC FEMALE @@ -183,7 +183,7 @@ - + ETC FEMALE @@ -202,7 +202,7 @@ - + ETC FEMALE @@ -221,7 +221,7 @@ - + ETC FEMALE @@ -240,7 +240,7 @@ - + ETC FEMALE @@ -259,7 +259,7 @@ - + ETC FEMALE @@ -278,7 +278,7 @@ - + ETC FEMALE @@ -297,7 +297,7 @@ - + ETC FEMALE @@ -316,7 +316,7 @@ - + ETC FEMALE @@ -335,7 +335,7 @@ - + ETC FEMALE @@ -354,7 +354,7 @@ - + ETC FEMALE @@ -373,7 +373,7 @@ - + ETC FEMALE @@ -392,7 +392,7 @@ - + ETC FEMALE @@ -411,7 +411,7 @@ - + ETC FEMALE @@ -430,7 +430,7 @@ - + ETC FEMALE @@ -449,7 +449,7 @@ - + ETC FEMALE @@ -468,7 +468,7 @@ - + ETC FEMALE @@ -487,7 +487,7 @@ - + ETC FEMALE @@ -506,7 +506,7 @@ - + ETC FEMALE @@ -525,7 +525,7 @@ - + ETC FEMALE @@ -544,7 +544,7 @@ - + ETC FEMALE @@ -563,7 +563,7 @@ - + ETC FEMALE @@ -582,7 +582,7 @@ - + ETC FEMALE @@ -601,7 +601,7 @@ - + ETC FEMALE @@ -620,7 +620,7 @@ - + ETC FEMALE @@ -639,7 +639,7 @@ - + ETC FEMALE @@ -658,7 +658,7 @@ - + ETC FEMALE @@ -677,7 +677,7 @@ - + ETC FEMALE @@ -696,7 +696,7 @@ - + ETC FEMALE @@ -715,7 +715,7 @@ - + ETC FEMALE @@ -734,7 +734,7 @@ - + ETC FEMALE @@ -753,7 +753,7 @@ - + ETC FEMALE @@ -772,7 +772,7 @@ - + ETC FEMALE @@ -791,7 +791,7 @@ - + ETC FEMALE @@ -810,7 +810,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/20000-20099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/20000-20099.xml index af5881906d..840430b822 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/20000-20099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/20000-20099.xml @@ -4,7 +4,7 @@ FAIRY MALE - + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/21900-21999.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/21900-21999.xml index b2c3fb750c..dfd7284f64 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/21900-21999.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/21900-21999.xml @@ -1,24 +1,5 @@  - - - ETC - FEMALE - - - - - - - - - - - - - - - DEMONIC @@ -690,7 +671,7 @@ - + ETC FEMALE @@ -709,7 +690,7 @@ - + ETC FEMALE @@ -728,7 +709,7 @@ - + ETC FEMALE @@ -747,7 +728,7 @@ - + ETC FEMALE @@ -766,7 +747,7 @@ - + ETC FEMALE @@ -785,7 +766,7 @@ - + ETC FEMALE @@ -804,7 +785,7 @@ - + ETC FEMALE @@ -823,7 +804,7 @@ - + ETC FEMALE @@ -842,7 +823,7 @@ - + ETC FEMALE @@ -861,7 +842,7 @@ - + ETC FEMALE @@ -880,7 +861,7 @@ - + ETC FEMALE @@ -899,7 +880,7 @@ - + ETC FEMALE @@ -918,7 +899,7 @@ - + ETC FEMALE @@ -937,7 +918,7 @@ - + ETC FEMALE @@ -956,7 +937,7 @@ - + ETC FEMALE @@ -975,7 +956,7 @@ - + ETC FEMALE @@ -994,7 +975,7 @@ - + ETC FEMALE @@ -1013,7 +994,7 @@ - + ETC FEMALE @@ -1032,7 +1013,7 @@ - + ETC FEMALE @@ -1051,7 +1032,7 @@ - + ETC FEMALE @@ -1070,7 +1051,7 @@ - + ETC FEMALE @@ -1089,7 +1070,7 @@ - + ETC FEMALE @@ -1108,7 +1089,7 @@ - + ETC FEMALE @@ -1127,7 +1108,7 @@ - + ETC FEMALE @@ -1146,7 +1127,7 @@ - + ETC FEMALE @@ -1165,7 +1146,7 @@ - + ETC FEMALE @@ -1184,7 +1165,7 @@ - + ETC FEMALE @@ -1203,7 +1184,7 @@ - + ETC FEMALE @@ -1222,7 +1203,7 @@ - + ETC FEMALE @@ -1241,7 +1222,7 @@ - + ETC FEMALE @@ -1260,7 +1241,7 @@ - + ETC FEMALE @@ -1279,7 +1260,7 @@ - + ETC FEMALE @@ -1298,7 +1279,7 @@ - + ETC FEMALE @@ -1317,7 +1298,7 @@ - + ETC FEMALE @@ -1336,7 +1317,7 @@ - + ETC FEMALE @@ -1355,7 +1336,7 @@ - + ETC FEMALE @@ -1374,7 +1355,7 @@ - + ETC FEMALE @@ -1393,7 +1374,7 @@ - + ETC FEMALE @@ -1412,7 +1393,7 @@ - + ETC FEMALE @@ -1431,7 +1412,7 @@ - + ETC FEMALE @@ -1450,7 +1431,7 @@ - + ETC FEMALE @@ -1469,7 +1450,7 @@ - + ETC FEMALE @@ -1488,7 +1469,7 @@ - + ETC FEMALE @@ -1507,7 +1488,7 @@ - + ETC FEMALE @@ -1526,7 +1507,7 @@ - + ETC FEMALE @@ -1545,7 +1526,7 @@ - + ETC FEMALE @@ -1564,7 +1545,7 @@ - + ETC FEMALE @@ -1583,7 +1564,7 @@ - + ETC FEMALE @@ -1602,7 +1583,7 @@ - + ETC FEMALE @@ -1621,7 +1602,7 @@ - + ETC FEMALE @@ -1640,7 +1621,7 @@ - + ETC FEMALE @@ -1659,7 +1640,7 @@ - + ETC FEMALE @@ -1678,7 +1659,7 @@ - + ETC FEMALE @@ -1697,7 +1678,7 @@ - + ETC FEMALE @@ -1716,7 +1697,7 @@ - + ETC FEMALE @@ -1735,7 +1716,7 @@ - + ETC FEMALE @@ -1754,7 +1735,7 @@ - + ETC FEMALE @@ -1773,7 +1754,7 @@ - + ETC FEMALE @@ -1792,7 +1773,7 @@ - + ETC FEMALE @@ -1811,7 +1792,7 @@ - + ETC FEMALE @@ -1830,7 +1811,7 @@ - + ETC FEMALE @@ -1849,7 +1830,7 @@ - + ETC FEMALE @@ -1868,7 +1849,7 @@ - + ETC FEMALE @@ -1887,7 +1868,7 @@ - + ETC FEMALE @@ -1906,7 +1887,7 @@ - + ETC FEMALE @@ -1925,7 +1906,7 @@ - + ETC FEMALE @@ -1944,7 +1925,7 @@ - + ETC FEMALE @@ -1963,69 +1944,190 @@ - - - ETC + + + + + + + ANIMAL FEMALE - - + + + - - + + + 370 + - + + + + + + + + + + + + + + + + + - - - ETC + + + + + + + ANIMAL FEMALE - - + + + - - + + + 370 - + + + + + false + + + + + + + + + + + + + + + + - - - ETC - FEMALE - - + + + + + + + ANIMAL + MALE + + + - - + + + 390 + - + + + + + false + - - - + + + + + + + + + + + + + + + + + + + + + ANIMAL + MALE + + + + + + + + + + 390 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ETC - FEMALE + MALE + - + @@ -2033,18 +2135,45 @@ - + + + + + + + + + + + + + + + + + + + + + + + - - - ETC - FEMALE + + + + + + + ANIMAL + MALE + - + @@ -2052,18 +2181,46 @@ - + + + + + + + + + + + + + + + + + + + + + + + + - - - ETC - FEMALE + + + + + + + HUMANOID + MALE + - + @@ -2071,18 +2228,41 @@ - + + + + + + + + + + + + + + + + + + + - - - ETC - FEMALE + + + + + + + HUMANOID + MALE + - + @@ -2090,13 +2270,29 @@ - + + + + + + + + + + + + + + + + + - + ETC FEMALE @@ -2115,7 +2311,7 @@ - + ETC FEMALE @@ -2134,7 +2330,7 @@ - + ETC FEMALE @@ -2153,7 +2349,7 @@ - + ETC FEMALE @@ -2172,7 +2368,7 @@ - + ETC FEMALE @@ -2191,7 +2387,7 @@ - + ETC FEMALE @@ -2210,7 +2406,7 @@ - + ETC FEMALE @@ -2229,7 +2425,7 @@ - + ETC FEMALE @@ -2248,7 +2444,7 @@ - + ETC FEMALE @@ -2267,7 +2463,7 @@ - + ETC FEMALE @@ -2286,7 +2482,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/22000-22099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/22000-22099.xml index 2e8a06ea8e..1d613835e2 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/22000-22099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/22000-22099.xml @@ -1,6 +1,6 @@  - + ETC FEMALE @@ -19,7 +19,7 @@ - + ETC FEMALE @@ -38,7 +38,7 @@ - + ETC FEMALE @@ -57,7 +57,7 @@ - + ETC FEMALE @@ -76,7 +76,7 @@ - + ETC FEMALE @@ -95,7 +95,7 @@ - + ETC FEMALE @@ -114,7 +114,7 @@ - + ETC FEMALE @@ -133,7 +133,7 @@ - + ETC FEMALE @@ -152,7 +152,7 @@ - + ETC FEMALE @@ -171,7 +171,7 @@ - + ETC FEMALE @@ -190,7 +190,7 @@ - + ETC FEMALE @@ -209,7 +209,7 @@ - + ETC FEMALE @@ -228,7 +228,7 @@ - + ETC FEMALE @@ -247,7 +247,7 @@ - + ETC FEMALE @@ -266,7 +266,7 @@ - + ETC FEMALE @@ -285,7 +285,7 @@ - + ETC FEMALE @@ -304,7 +304,7 @@ - + ETC FEMALE @@ -323,7 +323,7 @@ - + ETC FEMALE @@ -342,7 +342,7 @@ - + ETC FEMALE @@ -361,7 +361,7 @@ - + ETC FEMALE @@ -380,7 +380,7 @@ - + ETC FEMALE @@ -399,7 +399,7 @@ - + ETC FEMALE @@ -418,7 +418,7 @@ - + ETC FEMALE @@ -437,7 +437,7 @@ - + ETC FEMALE @@ -456,7 +456,7 @@ - + ETC FEMALE @@ -475,7 +475,7 @@ - + ETC FEMALE @@ -494,7 +494,7 @@ - + ETC FEMALE @@ -513,7 +513,7 @@ - + ETC FEMALE @@ -532,7 +532,7 @@ - + ETC FEMALE @@ -551,7 +551,7 @@ - + ETC FEMALE @@ -570,7 +570,7 @@ - + ETC FEMALE @@ -589,7 +589,7 @@ - + ETC FEMALE @@ -608,7 +608,7 @@ - + ETC FEMALE @@ -627,7 +627,7 @@ - + ETC FEMALE @@ -646,7 +646,7 @@ - + ETC FEMALE @@ -665,7 +665,7 @@ - + ETC FEMALE @@ -684,7 +684,7 @@ - + ETC FEMALE @@ -703,7 +703,7 @@ - + ETC FEMALE @@ -722,7 +722,7 @@ - + ETC FEMALE @@ -741,7 +741,7 @@ - + ETC FEMALE @@ -760,7 +760,7 @@ - + ETC FEMALE @@ -779,7 +779,7 @@ - + ETC FEMALE @@ -798,7 +798,7 @@ - + ETC FEMALE @@ -817,7 +817,7 @@ - + ETC FEMALE @@ -836,7 +836,7 @@ - + ETC FEMALE @@ -855,7 +855,7 @@ - + ETC FEMALE @@ -874,7 +874,7 @@ - + ETC FEMALE @@ -893,7 +893,7 @@ - + ETC FEMALE @@ -912,7 +912,7 @@ - + ETC FEMALE @@ -931,7 +931,7 @@ - + ETC FEMALE @@ -950,7 +950,7 @@ - + ETC FEMALE @@ -969,7 +969,7 @@ - + ETC FEMALE @@ -988,7 +988,7 @@ - + ETC FEMALE @@ -1007,7 +1007,7 @@ - + ETC FEMALE @@ -1026,7 +1026,7 @@ - + ETC FEMALE @@ -1045,7 +1045,7 @@ - + ETC FEMALE @@ -1064,7 +1064,7 @@ - + ETC FEMALE @@ -1083,7 +1083,7 @@ - + ETC FEMALE @@ -1102,7 +1102,7 @@ - + ETC FEMALE @@ -1121,7 +1121,7 @@ - + ETC FEMALE @@ -1140,7 +1140,7 @@ - + ETC FEMALE @@ -1159,7 +1159,7 @@ - + ETC FEMALE @@ -1178,7 +1178,7 @@ - + ETC FEMALE @@ -1197,7 +1197,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/25900-25999.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/25900-25999.xml index 64447f2703..aa4e755f18 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/25900-25999.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/25900-25999.xml @@ -1,24 +1,5 @@  - - - ETC - FEMALE - - - - - - - - - - - - - - - ETC @@ -153,4 +134,23 @@ + + + ETC + FEMALE + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/29000-29099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/29000-29099.xml index caa192f12b..2ac182f86a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/29000-29099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/29000-29099.xml @@ -1,24 +1,5 @@  - - - ETC - FEMALE - - - - - - - - - - - - - - - @@ -1819,6 +1800,44 @@ + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + DEMONIC MALE @@ -1946,6 +1965,120 @@ + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + @@ -3558,137 +3691,4 @@ - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/29100-29199.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/29100-29199.xml index e72f8682a6..040557f5f3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/29100-29199.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/29100-29199.xml @@ -1,24 +1,5 @@  - - - ETC - FEMALE - - - - - - - - - - - - - - - DIVINE MALE @@ -732,6 +713,272 @@ + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + @@ -764,251 +1011,4 @@ - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/32000-32099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/32000-32099.xml index b148b74684..11a021d7fd 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/32000-32099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/32000-32099.xml @@ -1,6 +1,6 @@  - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/34000-34099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/34000-34099.xml index 6a10c209be..ec7e4a076c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/34000-34099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/34000-34099.xml @@ -1,24 +1,5 @@  - - - ETC - FEMALE - - - - - - - - - - - - - - - HUMAN @@ -857,6 +838,367 @@ + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + + + + ETC + FEMALE + + + + + + + + + + + + + + + HUMAN MALE @@ -1040,7 +1382,7 @@ - + ETC FEMALE @@ -1059,7 +1401,7 @@ - + ETC FEMALE @@ -1078,7 +1420,7 @@ - + ETC FEMALE @@ -1097,7 +1439,7 @@ - + ETC FEMALE @@ -1116,7 +1458,7 @@ - + ETC FEMALE @@ -1135,7 +1477,7 @@ - + ETC FEMALE @@ -1154,7 +1496,7 @@ - + ETC FEMALE @@ -1173,7 +1515,7 @@ - + ETC FEMALE @@ -1192,7 +1534,7 @@ - + ETC FEMALE @@ -1211,349 +1553,7 @@ - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - - - ETC - FEMALE - - - - - - - - - - - - - - - - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/34100-34199.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/34100-34199.xml index 96eb3372b2..7f0fc3f1bd 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/34100-34199.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/34100-34199.xml @@ -1,6 +1,6 @@  - + ETC FEMALE @@ -19,7 +19,7 @@ - + ETC FEMALE @@ -38,7 +38,7 @@ - + ETC FEMALE @@ -57,7 +57,7 @@ - + ETC FEMALE @@ -76,7 +76,7 @@ - + ETC FEMALE @@ -95,7 +95,7 @@ - + ETC FEMALE @@ -114,7 +114,7 @@ - + ETC FEMALE @@ -133,7 +133,7 @@ - + ETC FEMALE @@ -152,7 +152,7 @@ - + ETC FEMALE @@ -171,7 +171,7 @@ - + ETC FEMALE @@ -190,7 +190,7 @@ - + ETC FEMALE @@ -209,7 +209,7 @@ - + ETC FEMALE @@ -228,7 +228,7 @@ - + ETC FEMALE @@ -247,7 +247,7 @@ - + ETC FEMALE @@ -266,7 +266,7 @@ - + ETC FEMALE @@ -285,7 +285,7 @@ - + ETC FEMALE @@ -304,7 +304,7 @@ - + ETC FEMALE @@ -323,7 +323,7 @@ - + ETC FEMALE diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/36700-36799.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/36700-36799.xml index ed23f33173..8003c1a2cf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/36700-36799.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/npcs/36700-36799.xml @@ -1,24 +1,5 @@  - - - ETC - FEMALE - - - - - - - - - - - - - - - HUMAN @@ -718,4 +699,23 @@ + + + ETC + FEMALE + + + + + + + + + + + + + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00000-00099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00000-00099.xml index 3a729d37cb..8a312867ce 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00000-00099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00000-00099.xml @@ -7646,7 +7646,7 @@ 1194 1373 1554 - 1726 + 1737 2109 2298 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00100-00199.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00100-00199.xml index 8e64a8baa8..78c5041adc 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00100-00199.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00100-00199.xml @@ -77,6 +77,9 @@ BLUNT + SWORD + POLE + DUAL @@ -2544,11 +2547,11 @@ 83 84 85 - 85 - 85 - 85 - 85 - 85 + 86 + 87 + 88 + 89 + 90 P 5 @@ -2615,11 +2618,11 @@ 154 157 160 - 160 - 160 - 160 - 160 - 160 + 163 + 166 + 169 + 172 + 175 DIFF @@ -2679,17 +2682,17 @@ 20 20 20 - 20 + 15 20 20 20 20 20 - 20 - 20 - 20 - 20 - 20 + 20 + 20 + 20 + 20 + 20 PER diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00200-00299.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00200-00299.xml index 7402d08ebb..1ae3eefd72 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00200-00299.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00200-00299.xml @@ -3082,7 +3082,7 @@ 76 80 84 - 85 + 95 95 99 @@ -4733,7 +4733,7 @@ icon.skill0260 1 - 7 + 3 STUN STUN 50 @@ -4895,7 +4895,10 @@ + SWORD BLUNT + POLE + DUAL diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00300-00399.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00300-00399.xml index e8d815085e..b302911d05 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00300-00399.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00300-00399.xml @@ -1289,22 +1289,29 @@ - - + + icon.skill0328 76 P 5 - - 20 - 20 - 20 + + 20 + DIFF + + + 20 + DIFF + + + 20 + DIFF - - + + icon.skill0329 76 P @@ -1313,6 +1320,10 @@ 20 20 + 20 + 20 + 20 + 20 @@ -3638,14 +3649,20 @@ - + + 1 - P + A1 5 - + + 1 - P + A1 5 @@ -3757,19 +3774,92 @@ - + + 1 P 5 - + + 1 P 5 - + + 1 P 5 + + + + 10 + 20 + 30 + 45 + 60 + 80 + 100 + 120 + 150 + 180 + + DIFF + + + + 20 + 40 + 60 + 80 + 100 + 120 + 140 + 160 + 180 + 200 + + DIFF + + + + 5 + 5 + 10 + 10 + 10 + 15 + 15 + 15 + 20 + 25 + + PER + + HEAVY + + + + + 5 + 5 + 10 + 10 + 10 + 15 + 15 + 15 + 20 + 25 + + PER + + HEAVY + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00400-00499.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00400-00499.xml index 34cf9b8882..856dad7486 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00400-00499.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00400-00499.xml @@ -3045,29 +3045,38 @@ - + icon.skill0141 - 5 - 10 - 15 + 1 + 20 + 40 + 76 + 85 P 5 - - 8.5 - PER - - 2 - 3 - 4 + 30 + 50 + 70 + 130 + 200 DIFF + + + 20 + 30 + 40 + 80 + 100 + + @@ -4194,8 +4203,8 @@ - - + + icon.skill0477 40 300 @@ -4210,33 +4219,6 @@ -218 -223 -228 - -233 - -237 - -242 - -247 - -252 - -257 - -261 - -266 - -271 - -275 - -279 - -284 - -288 - -292 - -296 - -300 - -304 - -307 - -311 - -314 - -317 - -320 - -323 - -326 - -328 - -331 - -333 400 1500 @@ -4251,72 +4233,18 @@ 45 46 47 - 48 - 49 - 50 - 51 - 52 - 53 - 54 - 55 - 56 - 57 - 58 - 59 - 60 - 61 - 62 - 63 - 64 - 65 - 66 - 67 - 68 - 69 - 70 - 71 - 72 - 73 - 74 - 29 - 30 - 31 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 38 - 39 - 40 - 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 - 48 - 49 - 49 - 50 - 51 - 52 - 53 - 54 - 54 - 55 - 56 - 57 - 58 - 59 - 59 - 60 + 18 + 25 + 33 + 40 + 48 + 55 + 59 + 63 + 66 + 70 ATTACK A1 @@ -4329,57 +4257,26 @@ ANCIENTSWORD - DUAL - POLE SWORD - BLUNT - DUALFIST - DUALBLUNT - + - 738 - 784 - 833 - 884 - 937 - 992 - 1049 - 1109 - 1171 - 1236 - 1302 - 1371 - 1443 - 1516 - 1592 - 1670 - 1750 - 1832 - 1917 - 2003 - 2091 - 2181 - 2272 - 2366 - 2460 - 2556 - 2653 - 2751 - 2850 - 2950 - 3050 - 3151 - 3252 - 3353 - 3453 - 3553 - 3653 + 140 + 266 + 478 + 813 + 1302 + 1953 + 2734 + 3555 + 4266 + 4693 true + true @@ -4710,7 +4607,7 @@ {base + base / 100 * subIndex} PHYSICAL - 40 + 150 500 -341 @@ -4753,9 +4650,9 @@ 99 - 25 - 25 - 25 + 100 + 110 + 150 35 35 35 @@ -6111,9 +6008,9 @@ 62 - 16 - 22 - 29 + 20 + 40 + 60 A2 225000 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00500-00599.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00500-00599.xml index 68d2a7b4d1..4b42171bd1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00500-00599.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00500-00599.xml @@ -49,28 +49,21 @@ - - + + icon.skill0501 3 30 PD_DOWN 80 MAGIC - 600 + 150 -234 -248 -262 -275 -283 - -291 - -299 - -306 - -312 - -318 - -323 - -328 1100 1800 @@ -82,27 +75,13 @@ 55 58 60 - 62 - 64 - 66 - 68 - 70 - 72 - 74 - 22 - 24 - 25 - 27 - 28 - 29 - 30 - 31 - 32 - 33 - 34 - 34 + 40 + 45 + 50 + 55 + 60 A2 2000 @@ -110,14 +89,10 @@ ENEMY_ONLY SINGLE - + -23 PER - - -15 - PER - @@ -180,9 +155,9 @@ 64 - 21 - 28 - 33 + 50 + 60 + 70 ATTACK A1 @@ -2363,7 +2338,7 @@ - + icon.skill_transform_etc 600 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00600-00699.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00600-00699.xml index f92ade0210..695cedd070 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00600-00699.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00600-00699.xml @@ -422,41 +422,43 @@ - + icon.skill0312 - 43 - 52 - 60 - 66 + 45 + 55 + 67 + 78 + 85 P 5 - 111 - 177 - 253 - 317 + 100 + 200 + 300 + 400 + 500 DIFF 10 - 15 - 20 - 25 + 12 + 14 + 16 + 20 PER - - - icon.skill0101 + + 1 3 TURN_FLEE @@ -471,44 +473,10 @@ -356 -366 -375 - -385 - -395 - -405 - -415 - -425 - -435 - -445 - -455 - -465 - -474 - -484 - -494 - -503 - -513 - -522 - -532 - -541 - -550 - -558 - -567 - -575 - -583 - -591 - -599 - -607 - -614 - -621 - -627 - -634 - -640 - -646 - -651 - -656 - -661 - -665 600 1500 + icon.skill0101 true 20 @@ -517,41 +485,6 @@ 36 38 39 - 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 - 48 - 49 - 50 - 51 - 52 - 53 - 54 - 55 - 56 - 57 - 58 - 59 - 60 - 61 - 62 - 63 - 64 - 65 - 66 - 67 - 68 - 69 - 70 - 71 - 72 - 73 - 74 48 @@ -559,41 +492,6 @@ 51 52 54 - 56 - 56 - 58 - 59 - 61 - 63 - 65 - 66 - 68 - 70 - 72 - 72 - 74 - 76 - 78 - 80 - 81 - 83 - 85 - 87 - 88 - 89 - 91 - 92 - 94 - 96 - 97 - 99 - 100 - 102 - 103 - 105 - 106 - 108 - 109 A2 15000 @@ -602,60 +500,7 @@ DERANGEMENT ENEMY SINGLE - - - - CROSSBOW - TWOHANDCROSSBOW - - - - - - 344 - 367 - 391 - 443 - 471 - 500 - 530 - 562 - 595 - 630 - 666 - 703 - 742 - 782 - 823 - 866 - 910 - 955 - 1002 - 1050 - 1100 - 1150 - 1202 - 1255 - 1309 - 1364 - 1420 - 1476 - 1534 - 1592 - 1651 - 1710 - 1770 - 1830 - 1891 - 1951 - 2012 - 2072 - 2132 - 2192 - - true - diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00700-00799.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00700-00799.xml index d3a5483356..ec311eb093 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00700-00799.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00700-00799.xml @@ -2543,23 +2543,29 @@ - - + + icon.skill0767 81 P 5 - - - Creature - 1 - 99 - 5 - TARGET - 1 - 5565 - 1 + + + 25 + 60 + 180 + 315 + 500 + 710 + 800 + 850 + 880 + 920 + + + BOW + @@ -3399,10 +3405,9 @@ - - + + icon.skill0790 - 5-12 900 900 1000 @@ -3419,21 +3424,6 @@ ENEMY FAN NOT_FRIEND - - - - CROSSBOW - TWOHANDCROSSBOW - - - - - - 7475 - true - 15 - - @@ -3525,12 +3515,12 @@ - - + + icon.skill0792 1 - 30 - BETRAYAL_MARK + 10 + STIGMA_A DOT_POISON 70 PHYSICAL @@ -3550,16 +3540,25 @@ ENEMY_ONLY SINGLE - - - Creature - 1 - 99 - 10 - MY_PARTY - 1 - 5600 - 1 + + + -20 + -25 + -30 + -35 + -40 + + PER + + + + -20 + -25 + -30 + -35 + -40 + + PER @@ -3657,36 +3656,19 @@ - - + + icon.skill0794 - 1 - 5 - DISARM - DOT_BLEEDING - 70 - 6-12 - 200 - PHYSICAL - -673 - 1500 - true - 20 - 79 - 58 - A2 - 150000 + P 5 - DISARM SELF - POINT_BLANK - NOT_FRIEND - - - - -40 - PER + + + 10 + 20 + 30 + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00900-00999.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00900-00999.xml index 3a01b23322..6e1937cab6 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00900-00999.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/00900-00999.xml @@ -1270,8 +1270,8 @@ - - + + icon.skill0921 80 720 @@ -3754,7 +3754,7 @@ - + icon.skill0100 1 @@ -3937,8 +3937,8 @@ - - + + icon.skill1177 600 @@ -4980,16 +4980,24 @@ - + icon.skill0484 - 400 + + 400 + 500 + 600 + 200 -379 600 800 78 - 38 + + 35 + 40 + 45 + ATTACK DA1 3000 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01000-01099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01000-01099.xml index 760ec63e56..1d7678317e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01000-01099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01000-01099.xml @@ -1,7 +1,7 @@  - - + + icon.skill1001 1 @@ -16,9 +16,6 @@ 72 78 78 - 78 - 78 - 78 1 T @@ -40,9 +37,6 @@ 1 1 1 - 1 - 1 - 1 5 @@ -59,10 +53,7 @@ 70 80 90 - 90 - 90 - 90 - 90 + 100 DIFF @@ -79,10 +70,7 @@ 7 10 12 - 12 - 12 - 12 - 12 + 14 PER @@ -99,10 +87,7 @@ 7 10 12 - 12 - 12 - 12 - 12 + 14 PER @@ -119,10 +104,7 @@ 7 10 12 - 12 - 12 - 12 - 12 + 14 PER @@ -139,10 +121,7 @@ 5 5 5 - 5 - 5 - 5 - 5 + 5 PER @@ -159,10 +138,7 @@ 5 5 5 - 5 - 5 - 5 - 5 + 5 PER @@ -580,7 +556,7 @@ - + icon.skill1010 @@ -2887,8 +2863,8 @@ - - + + icon.skill1062 1 @@ -3507,7 +3483,7 @@ - + icon.skill1072 1 @@ -3526,6 +3502,14 @@ -611 -635 -659 + -659 + -659 + -659 + -659 + -659 + -659 + -659 + -659 1000 15000 @@ -3539,6 +3523,14 @@ 66 70 76 + 77 + 78 + 79 + 80 + 81 + 82 + 83 + 84 47 @@ -3547,6 +3539,14 @@ 74 78 107 + 107 + 107 + 107 + 107 + 107 + 107 + 107 + 107 12 @@ -3555,6 +3555,14 @@ 19 20 21 + 21 + 21 + 21 + 21 + 21 + 21 + 21 + 21 A2 true @@ -4379,8 +4387,8 @@ - - + + icon.skill1090 600 @@ -4426,12 +4434,12 @@ - 15 - 21 + 18 + 23 26 - 32 - 38 - 44 + 33 + 39 + 46 80 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01200-01299.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01200-01299.xml index 67daa70497..446e3ce50c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01200-01299.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01200-01299.xml @@ -7953,8 +7953,8 @@ - - + + icon.skill1283 44 @@ -8685,23 +8685,23 @@ - 41 - 43 - 45 - 46 - 48 - 50 - 51 - 53 - 54 - 55 - 57 - 58 - 60 - 62 - 64 - 66 - 68 + 60 + 62 + 64 + 66 + 68 + 70 + 72 + 74 + 76 + 78 + 81 + 84 + 88 + 91 + 94 + 97 + 100 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01300-01399.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01300-01399.xml index d799109c4a..116d06b4fd 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01300-01399.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01300-01399.xml @@ -65,7 +65,7 @@ - + icon.skill1303 1 @@ -3305,7 +3305,7 @@ - + icon.skill0332 @@ -3314,9 +3314,6 @@ 30 40 50 - 60 - 70 - 80 P 5 @@ -3328,9 +3325,6 @@ 18 24 30 - 36 - 42 - 48 DIFF @@ -3498,12 +3492,26 @@ P 5 - + + 1 P 5 - + + 1 P 5 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01400-01499.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01400-01499.xml index d80b9e5b9b..b4a5dfc0ea 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01400-01499.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01400-01499.xml @@ -222,7 +222,7 @@ - + icon.skill1403 467 @@ -1453,32 +1453,47 @@ - + icon.skill1432 1 2 + 3 + 4 + 5 1200 PA_UP 138 268 + 300 + 338 + 368 2000 1 10 28 + 36 + 44 + 56 - 10 - 20 + 25 + 35 + 45 + 55 + 65 3 5 + 7 + 8 + 9 A2 2000 @@ -1491,6 +1506,9 @@ 8 12 + 15 + 20 + 25 PER @@ -2304,16 +2322,13 @@ - - + + icon.skill1441 - - 1 - 2 - 3 - - 1200 - MA_UP 408 523 @@ -2327,9 +2342,9 @@ 64 - 30 - 40 - 48 + 15 + 25 + 35 8 @@ -2342,16 +2357,6 @@ 5 SELF SINGLE - - - - 55 - 65 - 75 - - PER - - @@ -2436,43 +2441,24 @@ - - + + icon.skill1444 - 1 - 300 - KAMAEL_SPECIAL - 669 - 600 - 3000 - 1 - 49 - 35 - 9 - A2 - 30000 - NONE - 5 - SELF - SINGLE + P - - 10 - PER + + + 10 + 20 + 30 + 40 + 50 + + DIFF - ANCIENTSWORD - CROSSBOW RAPIER - - 10 - PER - - - 10 - PER - @@ -2787,6 +2773,11 @@ + + + icon.skill1448 + A1 + icon.skill1449 @@ -2847,7 +2838,7 @@ - + icon.skill1451 900 @@ -3337,11 +3328,13 @@ + {-0.6 - 0.4 * subIndex} PER + {-0.6 - 0.4 * subIndex} PER @@ -3673,16 +3666,20 @@ - - + + icon.skill1474 43 P 5 - 10 - PER + + 80 + 120 + 200 + + DIFF diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01500-01599.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01500-01599.xml index 0391a64a13..87d8d03473 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01500-01599.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01500-01599.xml @@ -623,8 +623,8 @@ 1 58 - 17 - 20 + 50 + 60 22 24 26 @@ -696,8 +696,8 @@ - - + + icon.skill1515 1 1200 @@ -728,8 +728,9 @@ - - + + icon.skill1516 750 -662 @@ -3435,8 +3436,8 @@ - - + + icon.skill1557 1 1200 @@ -3445,6 +3446,8 @@ 379 382 385 + 385 + 385 1000 1 @@ -3452,11 +3455,15 @@ 76 79 82 + 83 + 84 105 109 113 + 113 + 113 7 A2 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01600-01699.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01600-01699.xml index 267163a12a..9402f6f957 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01600-01699.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01600-01699.xml @@ -123,8 +123,8 @@ - - + + icon.skill1606 1 5 @@ -214,8 +214,8 @@ - - + + icon.skill1607 40 500 @@ -372,6 +372,7 @@ SWORD + BLUNT @@ -431,8 +432,8 @@ - - + + icon.skill1608 1 @@ -467,8 +468,8 @@ - - + + icon.skill1609 46 @@ -522,8 +523,8 @@ - - + + icon.skill1610 1 @@ -665,11 +666,11 @@ - 12 - 15 - 17 - 20 - 22 + 19 + 24 + 28 + 33 + 36 41 46 49 @@ -699,8 +700,8 @@ - - + + icon.skill1611 0 @@ -732,24 +733,32 @@ -11 -12 -13 - -15 + -14 -15 PER - + icon.skill0210 A1 true + 15 + SPEED_DOWN 400 1000 -204 + + + -20 + PER + + - - + + icon.skill1613 2 5 @@ -814,6 +823,8 @@ BLUNT DUALBLUNT + SWORD + POLE @@ -921,8 +932,8 @@ - - + + icon.skill1617 2000 500 @@ -962,13 +973,13 @@ 10 SELF 50 - 1618 + 1618 1 - - + + icon.skill0045 5000 @@ -988,7 +999,7 @@ 188 289 361 - 361 + 431 @@ -1101,8 +1112,8 @@ - - + + icon.skill1623 1 180 @@ -1173,8 +1184,9 @@ - - + + icon.skill1624 1 @@ -1225,28 +1237,27 @@ DUAL + + 5 + - - -50 - PER - - - -50 - PER - - - -50 - PER + + + 50 + 40 + 30 + 20 + - - + + icon.skill1625 1 10 @@ -1288,8 +1299,8 @@ - - + + icon.skill1626 PHYSICAL 1000 @@ -1420,8 +1431,8 @@ - - + + icon.skill1629 1 10 @@ -1438,17 +1449,7 @@ 1500 500 30000 - - -707 - -724 - -742 - -760 - -779 - -798 - -817 - -837 - -857 - + -707 true true ENEMY @@ -1517,7 +1518,7 @@ - + icon.skill10518 A1 500 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01800-01899.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01800-01899.xml index 90935ccb8a..fbc68aad30 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01800-01899.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/01800-01899.xml @@ -1,10 +1,11 @@  - - + + icon.skill1800 1 - 900 + 1200 CHANGEBODY PIRATE_SUIT true @@ -36,7 +37,7 @@ DIFF - 2 + 3 PER @@ -69,11 +70,13 @@ - - + + icon.skill1801 1 - 900 + 1200 CHANGEBODY DARK_ASSASSIN_SUIT true @@ -138,11 +141,12 @@ - - + + icon.skill1802 1 - 900 + 1200 CHANGEBODY WHITE_ASSASSIN_SUIT true @@ -159,7 +163,7 @@ SELF SINGLE 49543 - 1 + 2 7 @@ -207,40 +211,63 @@ - - + + icon.skill1068 - A1 + 1200 + A2 1 400 4000 2000 379 12 + TARGET + + + 15 + PER + + - + icon.skill1040 - A1 + A2 + 1200 1 400 4000 2000 418 12 + TARGET + + + 15 + PER + + - + icon.skill1204 - A1 + A2 + 1200 1 400 4000 2000 285 12 + TARGET + + + 33 + + - + Icon.skill1050 A1 @@ -248,42 +275,70 @@ 1500 75000 12 + + + TOWN + + - - + + icon.skill1077 - A1 + A2 + 1200 1 400 4000 2000 495 12 + TARGET + + + 30 + PER + + - - + + icon.skill1242 - A1 + A2 + 1200 1 400 4000 2000 532 12 + TARGET + + + 35 + PER + + - - + + icon.skill1240 - A1 + A2 + 1200 1 400 4000 2000 532 12 + TARGET + + + 4 + + - - + + icon.skill1011 A1 1 @@ -292,85 +347,155 @@ 3000 301 52 + TARGET + + + 301 + + - - + + icon.skill1086 - A1 + A2 + 1200 1 400 4000 2000 495 12 + TARGET + + + 33 + PER + + - - + + icon.skill1085 - A1 + A2 + 1200 1 400 4000 2000 457 12 + TARGET + + + 30 + PER + + - - + + icon.skill1268 - A1 + A2 + 1200 1 400 4000 2000 646 12 + TARGET + + + 9 + 30 + + - - + + icon.skill1059 - A1 + A2 + 1200 1 400 4000 2000 495 12 + TARGET + + + 75 + PER + + - + icon.skill1397 - A1 + A2 + 1200 1 400 4000 2000 655 12 + TARGET + + + -10 + 1 + + + -20 + PER + 0 + + + -20 + PER + 3 + + - - + + icon.skill1087 - A1 + A2 + 1200 1 400 4000 2000 495 12 + TARGET + + + 4 + + - + icon.skill1257 - A1 + A2 + 1200 1 400 4000 2000 495 12 + TARGET + + + 9000 + + - + icon.skill1013 A1 @@ -380,8 +505,15 @@ 3000 655 98 + TARGET + + + 94 + + + - + icon.skill1217 A1 @@ -391,6 +523,12 @@ 3000 365 83 + TARGET + + + 506 + + @@ -609,8 +747,8 @@ - - + + icon.skill1355 A1 1 @@ -620,8 +758,8 @@ 666 72 - - + + icon.skill1356 A1 1 @@ -631,8 +769,8 @@ 666 72 - - + + icon.skill1357 A1 1 @@ -642,8 +780,8 @@ 666 72 - - + + icon.skill1068 A1 1 @@ -653,8 +791,8 @@ 379 12 - - + + icon.skill1040 A1 1 @@ -664,8 +802,8 @@ 418 12 - - + + icon.skill1204 A1 1 @@ -675,8 +813,8 @@ 285 12 - - + + Icon.skill1050 A1 1 @@ -684,8 +822,8 @@ 75000 12 - - + + icon.skill1077 A1 1 @@ -695,8 +833,8 @@ 495 12 - - + + icon.skill1242 A1 1 @@ -706,8 +844,8 @@ 532 12 - - + + icon.skill1240 A1 1 @@ -717,8 +855,8 @@ 532 12 - - + + icon.skill1011 A1 1 @@ -728,8 +866,8 @@ 301 52 - - + + icon.skill1086 A1 1 @@ -739,8 +877,8 @@ 495 12 - - + + icon.skill1085 A1 1 @@ -750,8 +888,8 @@ 457 12 - - + + icon.skill1268 A1 1 @@ -761,8 +899,8 @@ 646 12 - - + + icon.skill1059 A1 1 @@ -772,8 +910,8 @@ 495 12 - - + + icon.skill1397 A1 1 @@ -783,8 +921,8 @@ 655 12 - - + + icon.skill1087 A1 1 @@ -794,8 +932,8 @@ 495 12 - - + + icon.skill1257 A1 1 @@ -805,8 +943,8 @@ 495 12 - - + + icon.skill1013 A1 1 @@ -816,8 +954,8 @@ 655 98 - - + + icon.skill1217 A1 1 @@ -827,8 +965,8 @@ 365 83 - - + + icon.skill1045 A1 1 @@ -838,8 +976,8 @@ 646 52 - - + + icon.skill1048 A1 1 @@ -849,8 +987,8 @@ 635 52 - - + + icon.skill1259 A1 1 @@ -860,8 +998,8 @@ 646 35 - - + + icon.skill1304 A1 1 @@ -871,8 +1009,8 @@ 714 49 - - + + icon.skill1303 A1 1 @@ -882,8 +1020,8 @@ 635 58 - - + + icon.skill1539 A1 true @@ -893,8 +1031,8 @@ -635 24 - - + + icon.skill1062 A1 1 @@ -908,8 +1046,18 @@ P - - + + icon.skill19014 P diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04100-04199.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04100-04199.xml index 38fa0c3b7e..da877efc9a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04100-04199.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04100-04199.xml @@ -2175,7 +2175,7 @@ - + 600 -100 1100 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04300-04399.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04300-04399.xml index c485e6bb48..a51f6d16b5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04300-04399.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04300-04399.xml @@ -211,7 +211,7 @@ - + 150 750 -100 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04600-04699.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04600-04699.xml index f1beda40b8..3e0627ead3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04600-04699.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/04600-04699.xml @@ -1246,7 +1246,7 @@ - + 500 -100 1000 @@ -1309,7 +1309,7 @@ - + 200 500 -100 @@ -1372,7 +1372,7 @@ - + 1000 -100 1500 @@ -1696,7 +1696,7 @@ TARGET SINGLE - + 400 -100 900 @@ -3786,7 +3786,7 @@ - + 600 -100 1100 @@ -3861,7 +3861,7 @@ - + 600 -100 1100 @@ -3936,7 +3936,7 @@ - + 1000 -100 1500 @@ -4011,7 +4011,7 @@ - + 600 -100 1100 @@ -4086,7 +4086,7 @@ - + 600 -100 1100 @@ -4161,7 +4161,7 @@ - + 1000 -100 1500 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/05300-05399.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/05300-05399.xml index afe1c3090b..3127db2d46 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/05300-05399.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/05300-05399.xml @@ -1747,7 +1747,7 @@ - + 600 -100 DARK @@ -4588,7 +4588,7 @@ - + 600 -100 1100 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/15400-15499.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/15400-15499.xml index baaf20609c..97e26c7c77 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/15400-15499.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/15400-15499.xml @@ -203,14 +203,14 @@ SELF SINGLE - + icon.skillraid P -5 1 - + icon.skillraid P @@ -428,7 +428,7 @@ - + A1 73 600 @@ -535,7 +535,7 @@ - + A1 109 600 @@ -594,7 +594,7 @@ - + icon.skill0096 9 20 @@ -626,7 +626,7 @@ - + A1 102 400 @@ -650,7 +650,7 @@ - + icon.skill0096 9 20 @@ -701,7 +701,7 @@ - + A1 282 500 @@ -726,7 +726,7 @@ - + icon.skill0096 9 20 @@ -823,7 +823,7 @@ - + icon.skill0096 9 20 @@ -898,7 +898,7 @@ - + icon.skilltransform4 A2 900 @@ -1048,7 +1048,7 @@ - + A1 52 600 @@ -1410,7 +1410,7 @@ - + icon.skill1222 1 10 @@ -1463,7 +1463,7 @@ - + icon.skill0102 1 10 @@ -1632,7 +1632,7 @@ 500 - + icon.skill4689 A2 1000 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50000-50099.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50000-50099.xml index 2ea3000e3e..cd4b29c712 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50000-50099.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50000-50099.xml @@ -397,26 +397,39 @@ icon.skill1062 - A1 - 1000 - 500 - 100 + P + + + 20 + PER + + icon.skill1062 - A1 - 1000 - 500 - 100 + P + + + 50 + PER + + + 50 + PER + + icon.skill1062 - A1 - 1000 - 500 - 100 + P + + + 20 + PER + + @@ -868,6 +881,50 @@ 95 95 + + + + -10 + -12 + -14 + -16 + -18 + -20 + + + -10 + -12 + -14 + -16 + -18 + -20 + + + -10 + -12 + -14 + -16 + -18 + -20 + + + -10 + -12 + -14 + -16 + -18 + -20 + + + -10 + -12 + -14 + -16 + -18 + -20 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50100-50199.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50100-50199.xml index 5645a4208b..3f076da1ad 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50100-50199.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50100-50199.xml @@ -528,11 +528,23 @@ icon.griffin_vehicle P + + + 5 + DIFF + + icon.etc_crystal_piece_i00 P + + + 5 + DIFF + + @@ -548,6 +560,23 @@ icon.accessary_catseye_earing_i00 P + + + + 1 + 2 + 3 + 4 + 5 + 10 + 12 + 14 + 18 + 22 + 30 + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50900-50999.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50900-50999.xml index 3da3e76511..87c175294c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50900-50999.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/50900-50999.xml @@ -16,6 +16,84 @@ icon.giant_item_equip P + + + + 20 + 30 + 50 + 80 + 120 + 170 + 230 + 300 + 380 + 470 + 600 + + + + + 50 + 100 + 150 + 200 + 300 + 400 + 500 + 600 + 700 + 800 + 1000 + + + + + 0 + 1 + 2 + 3 + 5 + 10 + 15 + 20 + 25 + 30 + 40 + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + + PER + + + + 0 + 1 + 2 + 3 + 4 + 5 + 7 + 9 + 11 + 13 + + PER + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/54100-54199.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/54100-54199.xml index 4493683664..08522183d9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/54100-54199.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/54100-54199.xml @@ -158,30 +158,78 @@ icon.etc_fire_potion_i00 - A1 + A2 + 1 + 1200 + 1 4 + true 60000 + SELF + SINGLE + + + 80 + FIRE + + icon.etc_water_potion_i00 - A1 + A2 + 1 + 1200 + 1 4 + true 60000 + SELF + SINGLE + + + 80 + WATER + + icon.etc_wind_potion_i00 - A1 + A2 + 1 + 1200 + 1 4 + true 60000 + SELF + SINGLE + + + 80 + WIND + + icon.etc_earth_potion_i00 - A1 + A2 + 1 + 1200 + 1 4 + true 60000 + SELF + SINGLE + + + 80 + EARTH + + A1 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55800-55899.xml index 53cc25979e..61ecab7d89 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55800-55899.xml @@ -502,19 +502,19 @@ 5 - 5 + 7 5 - 5 + 7 5 - 5 + 7 5 - 5 + 7 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/ElementalSpiritData.xsd b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/ElementalSpiritData.xsd index d301984741..3aad4356af 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/ElementalSpiritData.xsd +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/ElementalSpiritData.xsd @@ -14,7 +14,7 @@ - + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/initialShortcuts.xsd b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/initialShortcuts.xsd index 25e7084df2..929aa9e78e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/initialShortcuts.xsd +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/initialShortcuts.xsd @@ -33,7 +33,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/zones/respawn.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/zones/respawn.xml index 0e1a90b182..3a56d57637 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/zones/respawn.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/zones/respawn.xml @@ -1003,7 +1003,7 @@ - + @@ -1011,12 +1011,12 @@ - - - - - - + + + + + + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ClassListData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ClassListData.java index c022f65ac3..ccc785df63 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ClassListData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/ClassListData.java @@ -74,6 +74,10 @@ public class ClassListData implements IXmlReader { attr = attrs.getNamedItem("classId"); classId = ClassId.getClassId(parseInteger(attr)); + if (classId == null) + { + System.out.println(parseInteger(attr)); + } attr = attrs.getNamedItem("name"); className = attr.getNodeValue(); attr = attrs.getNamedItem("parentClassId"); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index fd04a7e86c..11044fb2e7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -40,7 +40,6 @@ import org.w3c.dom.Node; import org.l2jmobius.Config; import org.l2jmobius.commons.util.IXmlReader; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.SubclassType; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,7 +193,7 @@ public class SkillTreesData implements IXmlReader if (attr != null) { cId = Integer.parseInt(attr.getNodeValue()); - classId = ClassId.values()[cId]; + classId = ClassId.getClassId(cId); } else { @@ -219,7 +218,7 @@ public class SkillTreesData implements IXmlReader parentClassId = Integer.parseInt(attr.getNodeValue()); if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId)) { - _parentClassMap.put(classId, ClassId.values()[parentClassId]); + _parentClassMap.put(classId, ClassId.getClassId(parentClassId)); } } @@ -662,7 +661,7 @@ public class SkillTreesData implements IXmlReader return result; } - final boolean isAwaken = player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) && ((player.getRace() != Race.ERTHEIA) || player.isDualClassActive()); + final boolean isAwaken = /* player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) && */ ((player.getRace() != Race.ERTHEIA) || player.isDualClassActive()); for (Entry entry : skills.entrySet()) { @@ -775,19 +774,19 @@ public class SkillTreesData implements IXmlReader } final Race race = player.getRace(); - final boolean isAwaken = player.isInCategory(CategoryType.SIXTH_CLASS_GROUP); + // final boolean isAwaken = player.isInCategory(CategoryType.SIXTH_CLASS_GROUP); // Race skills - if (isAwaken) - { - for (SkillLearn skill : getRaceSkillTree(race)) - { - if (player.getKnownSkill(skill.getSkillId()) == null) - { - result.add(skill); - } - } - } + // if (isAwaken) + // { + // for (SkillLearn skill : getRaceSkillTree(race)) + // { + // if (player.getKnownSkill(skill.getSkillId()) == null) + // { + // result.add(skill); + // } + // } + // } for (SkillLearn skill : skills.values()) { @@ -796,8 +795,8 @@ public class SkillTreesData implements IXmlReader continue; } - final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getSkillId()); - final long hashCode = SkillData.getSkillHashCode(skill.getSkillId(), maxLvl); + // final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getSkillId()); + // final long hashCode = SkillData.getSkillHashCode(skill.getSkillId(), maxLvl); if (skill.isAutoGet() && (player.getLevel() >= skill.getGetLevel())) { @@ -809,7 +808,8 @@ public class SkillTreesData implements IXmlReader result.add(skill); } } - else if (!isAwaken || isCurrentClassSkillNoParent(player.getClassId(), hashCode) || isAwakenSaveSkill(player.getClassId(), skill.getSkillId())) + // else if (!isAwaken || isCurrentClassSkillNoParent(player.getClassId(), hashCode) || isAwakenSaveSkill(player.getClassId(), skill.getSkillId())) + else { result.add(skill); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/CategoryType.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/CategoryType.java index 526c148b00..6a42b42934 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/CategoryType.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/CategoryType.java @@ -27,284 +27,34 @@ public enum CategoryType WIZARD_GROUP, CLERIC_GROUP, ATTACKER_GROUP, - TANKER_GROUP, FIRST_CLASS_GROUP, SECOND_CLASS_GROUP, THIRD_CLASS_GROUP, FOURTH_CLASS_GROUP, - EQUIP_ENABLE_R, - FIFTH_CLASS_GROUP, - SIXTH_CLASS_GROUP, - SIXTH_SIGEL_GROUP, - SIXTH_TIR_GROUP, - SIXTH_OTHEL_GROUP, - SIXTH_YR_GROUP, - SIXTH_FEOH_GROUP, - SIXTH_IS_GROUP, - SIXTH_WYNN_GROUP, - SIXTH_EOLH_GROUP, BOUNTY_HUNTER_GROUP, WARSMITH_GROUP, - SUMMON_NPC_GROUP, - KNIGHT_GROUP, - WHITE_MAGIC_GROUP, - HEAL_GROUP, - ASSIST_MAGIC_GROUP, - WARRIOR_GROUP, - HUMAN_2ND_GROUP, - ELF_2ND_GROUP, - DELF_2ND_GROUP, - ORC_2ND_GROUP, - DWARF_2ND_GROUP, STRIDER, - STRIDER_GROUP, - RED_STRIDER_GROUP, WOLF_GROUP, - GROWN_UP_WOLF_GROUP, - HATCHLING_GROUP, - BABY_PET_GROUP, - UPGRADE_BABY_PET_GROUP, WYVERN_GROUP, - ALL_WOLF_GROUP, - WOLF, - SIN_EATER_GROUP, - PET_GROUP, - ITEM_EQUIP_PET_GROUP, - SUBJOB_GROUP_DAGGER, - SUBJOB_GROUP_BOW, SUBJOB_GROUP_KNIGHT, - SUBJOB_GROUP_SUMMONER, - SUBJOB_GROUP_HALF_HEALER, - SUBJOB_GROUP_DANCE, - SUBJOB_GROUP_WIZARD, HUMAN_FALL_CLASS, - HUMAN_WALL_CLASS, HUMAN_MALL_CLASS, HUMAN_CALL_CLASS, ELF_FALL_CLASS, ELF_MALL_CLASS, - ELF_WALL_CLASS, ELF_CALL_CLASS, - DELF_FALL_CLASS, - DELF_MALL_CLASS, - DELF_WALL_CLASS, - DELF_CALL_CLASS, ORC_FALL_CLASS, ORC_MALL_CLASS, - DWARF_ALL_CLASS, - DWARF_BOUNTY_CLASS, - DWARF_SMITH_CLASS, - KAMAEL_ALL_CLASS, - KAMAEL_FIRST_CLASS_GROUP, - KAMAEL_SECOND_CLASS_GROUP, - KAMAEL_THIRD_CLASS_GROUP, - KAMAEL_FOURTH_CLASS_GROUP, - BEGINNER_FIGHTER, BEGINNER_MAGE, - KAMAEL_MALE_MAIN_OCCUPATION, - KAMAEL_FEMALE_MAIN_OCCUPATION, - ARCHER_GROUP, - SHIELD_MASTER, - BARD, - FORCE_MASTER, - WEAPON_MASTER, - BOW_MASTER, - DAGGER_MASTER, - HEAL_MASTER, - WIZARD_MASTER, - BUFF_MASTER, - SUMMON_MASTER, - WARRIOR_CLOACK, - ROGUE_CLOACK, - MAGE_CLOACK, - SHIELD_MASTER2_3, - BARD2_3, - FORCE_MASTER2_3, - WEAPON_MASTER2_3, - BOW_MASTER2_3, - DAGGER_MASTER2_3, - HEAL_MASTER2_3, - WIZARD_MASTER2_3, - BUFF_MASTER2_3, - SUMMON_MASTER2_3, - ATTRIBUTE_GROUP_SUMMONER, - SUB_GROUP_WARRIOR, SUB_GROUP_ROGUE, SUB_GROUP_KNIGHT, - SUB_GROUP_SUMMONER, - SUB_GROUP_WIZARD, - SUB_GROUP_HEALER, - SUB_GROUP_ENCHANTER, SUB_GROUP_HEC, SUB_GROUP_HEW, SUB_GROUP_HEF, SUB_GROUP_ORC, SUB_GROUP_WARE, SUB_GROUP_BLACK, - SUB_GROUP_DE, - SUB_GROUP_KAMAEL, - LIGHT_TANKER_GROUP, - DARK_TANKER_GROUP, - MELEE_ATTACKER, - RECOM_KNIGHT_GROUP, - RECOM_MAGIC_GROUP, - RECOM_WARRIOR_GROUP, - RECOM_ROGUE_GROUP, - RECOM_KAMAEL_GROUP, - RECOM_ORCF_GROUP, - RECOM_ORCM_GROUP, - RECOM_ERTHEIAF_GROUP, - RECOM_ERTHEIAM_GROUP, - DEINONYCHUS_PET_GROUP, - BEASTFARM_BEAST, - BEASTFARM_INVADER, - ICEQUEEN_NPC, - FAIRY_PC_SIDE, - FAIRY_WISP, - FAIRY_GLIMMER, - TANKER_CATEGORY, - WARRIOR_CATEGORY, - ROGUE_CATEGORY, - ARCHER_CATEGORY, - WIZARD_CATEGORY, - SUMMONER_CATEGORY, - HEALER_CATEGORY, - ENCHANTER_CATEGORY, - RUMBLE_MONSTERS, - RUMBLE_GUARDIANS, - TWO_POINT_MULTI_SUMMON, - APM_ZERO_WARRIOR_GROUP, - APM_ZERO_MAGE_GROUP, - APM_1ST_KNIGHT_GROUP, - APM_1ST_WARRIOR_GROUP, - APM_1ST_WIZARD_GROUP, - APM_1ST_HEALER_GROUP, - APM_2ND_KNIGHT_GROUP, - APM_2ND_WARRIOR_GROUP, - APM_2ND_ROGUE_GROUP, - APM_2ND_WIZARD_GROUP, - APM_2ND_ARCHER_GROUP, - APM_2ND_BUFFER_GROUP, - APM_2ND_SUMMONER_GROUP, - APM_2ND_ONLY_GROUP, - APM_3RD_KNIGHT_GROUP, - APM_3RD_WARRIOR_GROUP, - APM_3RD_ROGUE_GROUP, - APM_3RD_WIZARD_GROUP, - APM_3RD_ARCHER_GROUP, - APM_3RD_BUFFER_GROUP, - APM_3RD_SUMMONER_GROUP, - APM_3RD_ONLY_GROUP, - SUBCLASS_TANKER, - SUBCLASS_WARRIOR, - SUBCLASS_ROUGE, - SUBCLASS_ARCHER, - SUBCLASS_WIZARD, - SUBCLASS_SUMMON, - SUBCLASS_HEAL, - SUBCLASS_ENCHANTER, - SUBCLASS_SPEACIAL, - SUBCLASS_KAMAEL, - EXCEPT_KAMAEL_GROUP, - R_HUMANMAGE_GROUP, - R_HUMANFIGHTER_GROUP, - DIVISION_TANKER, - DIVISION_WARRIOR, - DIVISION_ROUGE, - DIVISION_ARCHER, - DIVISION_WIZARD, - DIVISION_SUMMON, - DIVISION_ENCHANTER, - DIVISION_HEAL, - HUMAN_FOURTH_CLASS_GROUP, - ELF_FOURTH_CLASS_GROUP, - DARKELF_FOURTH_CLASS_GROUP, - ORC_FOURTH_CLASS_GROUP, - DWARF_FOURTH_CLASS_GROUP, - FOURTH_LANCE_CLASS_GROUP, - FOURTH_BOW_CLASS_GROUP, - EQUIP_ENABLE_HEAVY_ATTACK, - EQUIP_ENABLE_HEAVY_DEFENSE, - EQUIP_ENABLE_LIGHT_HIT, - EQUIP_ENABLE_LIGHT_ENCHANT, - EQUIP_ENABLE_ROBE_MAGIC, - EQUIP_ENABLE_ROBE_RECOVERY, - DILLER_GROUP, - MAESTRO_GROUP, - MAESTRO_GROUP_CRAFT, - SUB_GROUP_WARRIOR2, - SUB_GROUP_ROGUE2, - SUB_GROUP_KNIGHT2, - SUB_GROUP_SUMMONER2, - SUB_GROUP_WIZARD2, - SUB_GROUP_HEALER2, - SUB_GROUP_ENCHANTER2, - G_CARTIA_PC_GROUP, - G_CARTIA_NPC_GROUP, - HEAVY_GROUP, - LIGHT_GROUP, - ROBE_GROUP, - M_WARRIOR_GROUP, - PHYSICS_CLASS_GROUP, - HEATSAND_SUMMON_CLASS_GROUP, - MAGIC_CLASS_GROUP, - LONG_DISTANCE_CLASS_GROUP, - CLOSE_DISTANCE_CLASS_GROUP, - HS_WIZARD_CLASS_GROUP, - HS_WARRIOR_CLASS_GROUP, - SUBCLASS_PALADIN, - SUBCLASS_DARKAVENGER, - SUBCLASS_TEMPLEKNIGHT, - SUBCLASS_SHILLIENKNIGHT, - SUBCLASS_GLADIATOR, - SUBCLASS_WARLORD, - SUBCLASS_DESTROYER, - SUBCLASS_TYRAN, - SUBCLASS_BERSERKER, - SUBCLASS_TREASUREHUNTER, - SUBCLASS_PLAINSWALKER, - SUBCLASS_ABYSSWALKER, - SUBCLASS_BOUNTYHUNTER, - SUBCLASS_HAWKEYE, - SUBCLASS_SILVERRANGER, - SUBCLASS_PHANTOMRANGER, - SUBCLASS_ARBALESTER, - SUBCLASS_SORCERER, - SUBCLASS_NECROMANCER, - SUBCLASS_SPELLSINGER, - SUBCLASS_SPELLHOWLER, - SUBCLASS_SOULBREAKER, - SUBCLASS_WARLOCK, - SUBCLASS_ELEMENTALSUMMONER, - SUBCLASS_PHANTOMSUMMONER, - SUBCLASS_BISHOP, - SUBCLASS_ELDER, - SUBCLASS_SHILLIENELDER, - SUBCLASS_PROPHET, - SUBCLASS_SWORDSINGER, - SUBCLASS_BLADEDANCER, - SUBCLASS_WARCRYER, - SUBCLASS_INSPECTOR, - WINDREFINE_ERTHEIA_GROUP, - WINDREFINE_ERTHEIA_GROUP1, - WINDREFINE_ERTHEIA_GROUP2, - ERTHEIA_ALL_CLASS, - ERTHEIA_FIRST_CLASS_GROUP, - ERTHEIA_SECOND_CLASS_GROUP, - ERTHEIA_THIRD_CLASS_GROUP, - ERTHEIA_FOURTH_CLASS_GROUP, - ERTHEIA_WIZARD_GROUP, - ERTHEIA_FIGHTER_GROUP, - ERTHEIA_THIRD_WIZARD_GROUP, - ERTHEIA_THIRD_FIGHTER_GROUP, - VANGUARD_OF_ADEN_FCC, - COMMON_MONSTER_FCC, - EQEIP_ENABLE_LHAND, - G_EV_MON_MINIGAME, - HEAVY_ARMOR_CLASS, - LIGHT_ARMOR_CLASS, - ROBE_CLASS, - EXCEPT_ERTHEIA_CLASS; + SUB_GROUP_DE; /** * Finds category by it's name diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/ElementalType.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/ElementalType.java index 86643c048a..6aabb2750c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/ElementalType.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/ElementalType.java @@ -39,12 +39,22 @@ public enum ElementalType return values()[elementId]; } - public ElementalType getDominating() + public boolean isSuperior(ElementalType targetType) { - return dominating(this); + return this == superior(targetType); } - public ElementalType dominating(ElementalType elementalType) + public boolean isInferior(ElementalType targetType) + { + return targetType == superior(this); + } + + public ElementalType getSuperior() + { + return superior(this); + } + + public static ElementalType superior(ElementalType elementalType) { switch (elementalType) { @@ -69,6 +79,7 @@ public enum ElementalType return NONE; } } + } public Stats getAttackStat() diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/HtmlActionScope.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/HtmlActionScope.java index 5611ac9bbb..e5c6450be7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/HtmlActionScope.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/enums/HtmlActionScope.java @@ -25,5 +25,6 @@ public enum HtmlActionScope NPC_ITEM_HTML, NPC_QUEST_HTML, TUTORIAL_HTML, - COMM_BOARD_HTML + COMM_BOARD_HTML, + PREMIUM_HTML } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CeremonyOfChaosManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CeremonyOfChaosManager.java index da98c768c4..62c7dd2d5c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CeremonyOfChaosManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/CeremonyOfChaosManager.java @@ -25,7 +25,6 @@ import java.util.stream.Collectors; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.util.Rnd; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.CeremonyOfChaosState; import org.l2jmobius.gameserver.model.StatsSet; import org.l2jmobius.gameserver.model.World; @@ -307,11 +306,11 @@ public class CeremonyOfChaosManager extends AbstractEventManager 0) && (getAttributeExp() > 0) && (getElementalSpiritType() != ElementalType.NONE)) { final long attributeExp = (long) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus()); - final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getDominating()); + final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getSuperior()); if (spirit != null) { spirit.addExperience(attributeExp); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java index 63e2c1f387..6b4596e038 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4543,7 +4543,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } - elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this); + elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this, value); value += elementalDamage; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ae3bbee989..3a87621935 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -81,7 +81,6 @@ import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.enums.AdminTeleportType; import org.l2jmobius.gameserver.enums.BroochJewel; import org.l2jmobius.gameserver.enums.CastleSide; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ClanWarState; import org.l2jmobius.gameserver.enums.ElementalType; @@ -279,6 +278,7 @@ import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg; import org.l2jmobius.gameserver.network.serverpackets.EtcStatusUpdate; import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget; import org.l2jmobius.gameserver.network.serverpackets.ExAdenaInvenCount; +import org.l2jmobius.gameserver.network.serverpackets.ExAutoPlayDoMacro; import org.l2jmobius.gameserver.network.serverpackets.ExAutoSoulShot; import org.l2jmobius.gameserver.network.serverpackets.ExBrPremiumState; import org.l2jmobius.gameserver.network.serverpackets.ExDuelUpdateUserInfo; @@ -851,6 +851,8 @@ public class PlayerInstance extends Playable private ElementalSpirit[] _spirits; private ElementalType _activeElementalSpiritType; + private ScheduledFuture _autoPlayTask = null; + // Selling buffs system private boolean _isSellingBuffs = false; private List _sellingBuffs = null; @@ -1228,7 +1230,7 @@ public class PlayerInstance extends Playable public void setBaseClass(ClassId classId) { - _baseClass = classId.ordinal(); + _baseClass = classId.getId(); } public boolean isInStoreMode() @@ -7999,7 +8001,8 @@ public class PlayerInstance extends Playable @Override public boolean hasBasicPropertyResist() { - return isInCategory(CategoryType.SIXTH_CLASS_GROUP); + // return isInCategory(CategoryType.SIXTH_CLASS_GROUP); + return false; } private void startAutoSaveTask() @@ -14001,4 +14004,61 @@ public class PlayerInstance extends Playable { return AttackStanceTaskManager.getInstance().hasAttackStanceTask(this); } + + public void stopAutoPlayTask() + { + if ((_autoPlayTask != null) && !_autoPlayTask.isCancelled() && !_autoPlayTask.isDone()) + { + _autoPlayTask.cancel(true); + } + _autoPlayTask = null; + } + + public void startAutoPlayTask(boolean longRange, boolean respectfulHunting) + { + if (_autoPlayTask != null) + { + return; + } + + _autoPlayTask = ThreadPool.scheduleAtFixedRate(() -> + { + if ((getTarget() != null) && getTarget().isMonster() && (((MonsterInstance) getTarget()).getTarget() == this) && !((MonsterInstance) getTarget()).isAlikeDead()) + { + sendPacket(ExAutoPlayDoMacro.STATIC_PACKET); + return; + } + + MonsterInstance monster = null; + double closestDistance = Double.MAX_VALUE; + for (MonsterInstance nearby : World.getInstance().getVisibleObjectsInRange(this, MonsterInstance.class, longRange ? 600 : 1400)) + { + if ((nearby == null) || nearby.isAlikeDead()) + { + continue; + } + if (respectfulHunting && (nearby.getTarget() != null) && (nearby.getTarget() != this)) + { + continue; + } + if (nearby.isAutoAttackable(this) // + && GeoEngine.getInstance().canSeeTarget(this, nearby)// + && GeoEngine.getInstance().canMoveToTarget(getX(), getY(), getZ(), nearby.getX(), nearby.getY(), nearby.getZ(), getInstanceWorld())) + { + final double monsterDistance = calculateDistance2D(nearby); + if (monsterDistance < closestDistance) + { + monster = nearby; + closestDistance = monsterDistance; + } + } + } + + if (monster != null) + { + setTarget(monster); + sendPacket(ExAutoPlayDoMacro.STATIC_PACKET); + } + }, 0, 2000); + } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java index e5490d3003..c2aa539a1f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/VillageMasterInstance.java @@ -808,13 +808,13 @@ public class VillageMasterInstance extends NpcInstance return false; } - final ClassId cid = ClassId.values()[classId]; + final ClassId cid = ClassId.getClassId(classId); SubClass sub; ClassId subClassId; for (Iterator subList = iterSubClasses(player); subList.hasNext();) { sub = subList.next(); - subClassId = ClassId.values()[sub.getClassId()]; + subClassId = ClassId.getClassId(sub.getClassId()); if (subClassId.equalsOrChildOf(cid)) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/base/ClassId.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/base/ClassId.java index 9394a6c4bf..cea861cc2a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/base/ClassId.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/base/ClassId.java @@ -16,7 +16,9 @@ */ package org.l2jmobius.gameserver.model.base; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.l2jmobius.gameserver.enums.Race; @@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER), WARSMITH(57, false, Race.DWARF, ARTISAN), - DUMMY_ENTRY_1(58, false, null, null), - DUMMY_ENTRY_2(59, false, null, null), - DUMMY_ENTRY_3(60, false, null, null), - DUMMY_ENTRY_4(61, false, null, null), - DUMMY_ENTRY_5(62, false, null, null), - DUMMY_ENTRY_6(63, false, null, null), - DUMMY_ENTRY_7(64, false, null, null), - DUMMY_ENTRY_8(65, false, null, null), - DUMMY_ENTRY_9(66, false, null, null), - DUMMY_ENTRY_10(67, false, null, null), - DUMMY_ENTRY_11(68, false, null, null), - DUMMY_ENTRY_12(69, false, null, null), - DUMMY_ENTRY_13(70, false, null, null), - DUMMY_ENTRY_14(71, false, null, null), - DUMMY_ENTRY_15(72, false, null, null), - DUMMY_ENTRY_16(73, false, null, null), - DUMMY_ENTRY_17(74, false, null, null), - DUMMY_ENTRY_18(75, false, null, null), - DUMMY_ENTRY_19(76, false, null, null), - DUMMY_ENTRY_20(77, false, null, null), - DUMMY_ENTRY_21(78, false, null, null), - DUMMY_ENTRY_22(79, false, null, null), - DUMMY_ENTRY_23(80, false, null, null), - DUMMY_ENTRY_24(81, false, null, null), - DUMMY_ENTRY_25(82, false, null, null), - DUMMY_ENTRY_26(83, false, null, null), - DUMMY_ENTRY_27(84, false, null, null), - DUMMY_ENTRY_28(85, false, null, null), - DUMMY_ENTRY_29(86, false, null, null), - DUMMY_ENTRY_30(87, false, null, null), - DUELIST(88, false, Race.HUMAN, GLADIATOR), DREADNOUGHT(89, false, Race.HUMAN, WARLORD), PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN), @@ -170,103 +141,19 @@ public enum ClassId implements IIdentifiable FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER), MAESTRO(118, false, Race.DWARF, WARSMITH), - DUMMY_ENTRY_31(119, false, null, null), - DUMMY_ENTRY_32(120, false, null, null), - DUMMY_ENTRY_33(121, false, null, null), - DUMMY_ENTRY_34(122, false, null, null), - - MALE_SOLDIER(123, false, Race.KAMAEL, null), - FEMALE_SOLDIER(124, false, Race.KAMAEL, null), - TROOPER_OLD(125, false, Race.KAMAEL, MALE_SOLDIER), - WARDER(126, false, Race.KAMAEL, FEMALE_SOLDIER), - BERSERKER_OLD(127, false, Race.KAMAEL, TROOPER_OLD), - MALE_SOULBREAKER(128, false, Race.KAMAEL, TROOPER_OLD), - FEMALE_SOULBREAKER(129, false, Race.KAMAEL, WARDER), - ARBALESTER(130, false, Race.KAMAEL, WARDER), - DOOMBRINGER_OLD(131, false, Race.KAMAEL, BERSERKER_OLD), - MALE_SOUL_HOUND(132, false, Race.KAMAEL, MALE_SOULBREAKER), - FEMALE_SOUL_HOUND(133, false, Race.KAMAEL, FEMALE_SOULBREAKER), - TRICKSTER_OLD(134, false, Race.KAMAEL, ARBALESTER), - INSPECTOR(135, false, Race.KAMAEL, WARDER), - JUDICATOR(136, false, Race.KAMAEL, INSPECTOR), - - DUMMY_ENTRY_35(137, false, null, null), - DUMMY_ENTRY_36(138, false, null, null), - - SIGEL_KNIGHT(139, false, null, null), - TYRR_WARRIOR(140, false, null, null), - OTHELL_ROGUE(141, false, null, null), - YUL_ARCHER(142, false, null, null), - FEOH_WIZARD(143, false, null, null), - ISS_ENCHANTER(144, false, null, null), - WYNN_SUMMONER(145, false, null, null), - AEORE_HEALER(146, false, null, null), - - DUMMY_ENTRY_37(147, false, null, null), - - SIGEL_PHOENIX_KNIGHT(148, false, Race.HUMAN, PHOENIX_KNIGHT), - SIGEL_HELL_KNIGHT(149, false, Race.HUMAN, HELL_KNIGHT), - SIGEL_EVA_TEMPLAR(150, false, Race.ELF, EVA_TEMPLAR), - SIGEL_SHILLIEN_TEMPLAR(151, false, Race.DARK_ELF, SHILLIEN_TEMPLAR), - TYRR_DUELIST(152, false, Race.HUMAN, DUELIST), - TYRR_DREADNOUGHT(153, false, Race.HUMAN, DREADNOUGHT), - TYRR_TITAN(154, false, Race.ORC, TITAN), - TYRR_GRAND_KHAVATARI(155, false, Race.ORC, GRAND_KHAVATARI), - TYRR_MAESTRO(156, false, Race.DWARF, MAESTRO), - TYRR_DOOMBRINGER(157, false, Race.KAMAEL, DOOMBRINGER_OLD), - OTHELL_ADVENTURER(158, false, Race.HUMAN, ADVENTURER), - OTHELL_WIND_RIDER(159, false, Race.ELF, WIND_RIDER), - OTHELL_GHOST_HUNTER(160, false, Race.DARK_ELF, GHOST_HUNTER), - OTHELL_FORTUNE_SEEKER(161, false, Race.DWARF, FORTUNE_SEEKER), - YUL_SAGITTARIUS(162, false, Race.HUMAN, SAGITTARIUS), - YUL_MOONLIGHT_SENTINEL(163, false, Race.ELF, MOONLIGHT_SENTINEL), - YUL_GHOST_SENTINEL(164, false, Race.DARK_ELF, GHOST_SENTINEL), - YUL_TRICKSTER(165, false, Race.KAMAEL, TRICKSTER_OLD), - FEOH_ARCHMAGE(166, true, Race.HUMAN, ARCHMAGE), - FEOH_SOULTAKER(167, true, Race.HUMAN, SOULTAKER), - FEOH_MYSTIC_MUSE(168, true, Race.ELF, MYSTIC_MUSE), - FEOH_STORM_SCREAMER(169, true, Race.DARK_ELF, STORM_SCREAMER), - FEOH_SOUL_HOUND(170, true, Race.KAMAEL, MALE_SOUL_HOUND), // fix me ? - ISS_HIEROPHANT(171, true, Race.HUMAN, HIEROPHANT), - ISS_SWORD_MUSE(172, false, Race.ELF, SWORD_MUSE), - ISS_SPECTRAL_DANCER(173, false, Race.DARK_ELF, SPECTRAL_DANCER), - ISS_DOMINATOR(174, true, Race.ORC, DOMINATOR), - ISS_DOOMCRYER(175, true, Race.ORC, DOOMCRYER), - WYNN_ARCANA_LORD(176, true, true, Race.HUMAN, ARCANA_LORD), - WYNN_ELEMENTAL_MASTER(177, true, true, Race.ELF, ELEMENTAL_MASTER), - WYNN_SPECTRAL_MASTER(178, true, true, Race.DARK_ELF, SPECTRAL_MASTER), - AEORE_CARDINAL(179, true, Race.HUMAN, CARDINAL), - AEORE_EVA_SAINT(180, true, Race.ELF, EVA_SAINT), - AEORE_SHILLIEN_SAINT(181, true, Race.DARK_ELF, SHILLIEN_SAINT), - - ERTHEIA_FIGHTER(182, false, Race.ERTHEIA, null), - ERTHEIA_WIZARD(183, true, Race.ERTHEIA, null), - - MARAUDER(184, false, Race.ERTHEIA, ERTHEIA_FIGHTER), - CLOUD_BREAKER(185, true, Race.ERTHEIA, ERTHEIA_WIZARD), - - RIPPER(186, false, Race.ERTHEIA, MARAUDER), - STRATOMANCER(187, true, Race.ERTHEIA, CLOUD_BREAKER), - - EVISCERATOR(188, false, Race.ERTHEIA, RIPPER), - SAYHA_SEER(189, true, Race.ERTHEIA, STRATOMANCER), - - DUMMY_ENTRY_38(190, false, null, null), - DUMMY_ENTRY_39(191, false, null, null), - KAMAEL_SOLDIER(192, false, Race.KAMAEL, null), - TROOPER(193, false, Race.KAMAEL, KAMAEL_SOLDIER), // Proper Id? - SOUL_FINDER(194, false, Race.KAMAEL, KAMAEL_SOLDIER), // Proper Id? - WARDEN(195, false, Race.KAMAEL, KAMAEL_SOLDIER), // Proper Id? + TROOPER(125, false, Race.KAMAEL, KAMAEL_SOLDIER), + SOUL_FINDER(193, false, Race.KAMAEL, KAMAEL_SOLDIER), + WARDEN(126, false, Race.KAMAEL, KAMAEL_SOLDIER), - BERSERKER(196, false, Race.KAMAEL, TROOPER), // Proper Id? - SOUL_BREAKER(197, false, Race.KAMAEL, SOUL_FINDER), // Proper Id? - SOUL_RANGER(198, false, Race.KAMAEL, WARDEN), // Proper Id? + BERSERKER(127, false, Race.KAMAEL, TROOPER), + SOUL_BREAKER(194, false, Race.KAMAEL, SOUL_FINDER), + ARBALESTER(130, false, Race.KAMAEL, WARDEN), - DOOMBRINGER(199, false, Race.KAMAEL, BERSERKER), // Proper Id? - SOUL_HOUND(200, false, Race.KAMAEL, SOUL_BREAKER), // Proper Id? - TRICKSTER(201, false, Race.KAMAEL, SOUL_RANGER); // Proper Id? + DOOMBRINGER(131, false, Race.KAMAEL, BERSERKER), + SOUL_HOUND(195, false, Race.KAMAEL, SOUL_BREAKER), + TRICKSTER(134, false, Race.KAMAEL, ARBALESTER); /** The Identifier of the Class */ private final int _id; @@ -286,6 +173,20 @@ public enum ClassId implements IIdentifiable /** List of available Class for next transfer **/ private final Set _nextClassIds = new HashSet<>(1); + private static Map _classIdMap = new HashMap<>(ClassId.values().length); + static + { + for (ClassId classId : ClassId.values()) + { + _classIdMap.put(classId.getId(), classId); + } + } + + public static ClassId getClassId(int cId) + { + return _classIdMap.get(cId); + } + /** * Class constructor. * @param pId the class Id. @@ -380,7 +281,6 @@ public enum ClassId implements IIdentifiable } return _parent.childOf(cid); - } /** @@ -430,18 +330,6 @@ public enum ClassId implements IIdentifiable return _nextClassIds; } - public static ClassId getClassId(int cId) - { - try - { - return ClassId.values()[cId]; - } - catch (Exception e) - { - return null; - } - } - private final void addNextClassId(ClassId cId) { _nextClassIds.add(cId); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/OlympiadManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/OlympiadManager.java index 2adcacdc67..6fb3d0a260 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/OlympiadManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/olympiad/OlympiadManager.java @@ -325,45 +325,6 @@ public class OlympiadManager private int getClassGroup(PlayerInstance player) { - if (player.isInCategory(CategoryType.SIXTH_TIR_GROUP)) - { - return 1001; - } - else if (player.isInCategory(CategoryType.SIXTH_SIGEL_GROUP)) - { - return 1002; - } - else if (player.isInCategory(CategoryType.SIXTH_OTHEL_GROUP)) - { - return 1003; - } - else if (player.isInCategory(CategoryType.SIXTH_FEOH_GROUP)) - { - return 1004; - } - else if (player.isInCategory(CategoryType.SIXTH_IS_GROUP)) - { - return 1005; - } - else if (player.isInCategory(CategoryType.SIXTH_EOLH_GROUP)) - { - return 1006; - } - else if (player.isInCategory(CategoryType.SIXTH_WYNN_GROUP)) - { - return 1007; - } - else if (player.isInCategory(CategoryType.SIXTH_YR_GROUP)) - { - return 1008; - } - else if (player.isInCategory(CategoryType.ERTHEIA_FOURTH_CLASS_GROUP)) - { - return 1009; - } - else - { - return player.getBaseClass(); - } + return player.getBaseClass(); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 3ad855a88d..3e25e122c0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -1654,7 +1654,7 @@ public class Formulas return 1; } - public static double calcSpiritElementalDamage(Creature attacker, Creature target) + public static double calcSpiritElementalDamage(Creature attacker, Creature target, double baseDamage) { if (attacker.isPlayer()) { @@ -1667,63 +1667,54 @@ public class Formulas } final double critRate = attackerPlayer.getElementalSpiritCritRate(); - final boolean isCrit = Math.min(critRate, 380) > Rnd.get(1000); + final boolean isCrit = Math.min(critRate * 10, 380) > Rnd.get(1000); final double critDamage = attackerPlayer.getElementalSpiritCritDamage(); - final double attack = attackerPlayer.getActiveElementalSpiritAttack() - target.getElementalSpiritDefenseOf(type); + final double attack = (attackerPlayer.getActiveElementalSpiritAttack() - target.getElementalSpiritDefenseOf(type)) + Rnd.get(-2, 8); if (target.isPlayer()) { - return calcSpiritElementalPvPDamage(attack, critDamage, isCrit); + return calcSpiritElementalPvPDamage(attack, critDamage, isCrit, baseDamage); } - return calcSpiritElementalPvEDamage(type, target.getElementalSpiritType(), attack, critDamage, isCrit); + return calcSpiritElementalPvEDamage(type, target.getElementalSpiritType(), attack, critDamage, isCrit, baseDamage); } return 0; } - private static double calcSpiritElementalPvPDamage(double attack, double critDamage, boolean isCrit) + private static double calcSpiritElementalPvPDamage(double attack, double critDamage, boolean isCrit, double baseDamage) { - double damage = (attack * 1.223) + Rnd.get(-20, +20); + double base = Math.abs(attack * 1.3); if (isCrit) { - damage += (attack * 1.223) + (((attack * 0.03) + 24) * critDamage) + Rnd.get(-5, 30); + base += Math.abs((attack * 1.223) + (((attack * 0.03) + 24) * critDamage) + Rnd.get(-5, 30)); } - return damage; + return ((base * attack) + (baseDamage * 0.3)) / Math.log(baseDamage); } - private static double calcSpiritElementalPvEDamage(ElementalType attackerType, ElementalType targetType, double attack, double critDamage, boolean isCrit) + private static double calcSpiritElementalPvEDamage(ElementalType attackerType, ElementalType targetType, double attack, double critDamage, boolean isCrit, double baseDamage) { - double damage; - double baseDamage = (attack * 0.8) + Rnd.get(-25, 25); - double bonus = 1; - if (targetType == ElementalType.NONE) + double damage = Math.abs(attack * 0.8); + double bonus; + + if (attackerType.isSuperior(targetType)) { - damage = attack * 0.735; - } - else if (attackerType.getDominating() == targetType) - { - damage = (-1136 + baseDamage) * 0.6; - bonus = 0.6; - } - else if (targetType.getDominating() == attackerType) - { - damage = (185 + baseDamage) * 1.2; - bonus = 1.2; + damage *= 1.3; + bonus = 1.3; } else if (targetType == attackerType) { - damage = baseDamage; + bonus = 1.1; } else { - damage = (-477 + baseDamage) * 0.8; - bonus = 0.8; + damage *= 1.1; + bonus = 1.1; } if (isCrit) { - damage += ((40 + ((9.2 + (attack * 0.048)) * critDamage)) * bonus) + Rnd.get(-10, 50); + damage += Math.abs(((40 + ((9.2 + (attack * 0.048)) * critDamage)) * bonus) + Rnd.get(-10, 50)); } - return damage; + return ((damage * attack) + (baseDamage * bonus)) / Math.log(baseDamage); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/zone/type/SayuneZone.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/zone/type/SayuneZone.java index f9e1a38eb2..bbee402ef9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/zone/type/SayuneZone.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/zone/type/SayuneZone.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.model.zone.type; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.tasks.player.FlyMoveStartTask; import org.l2jmobius.gameserver.model.zone.ZoneId; @@ -56,7 +55,7 @@ public class SayuneZone extends ZoneType @Override protected void onEnter(Creature creature) { - if (creature.isPlayer() && (creature.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || Config.FREE_JUMPS_FOR_ALL) && !creature.getActingPlayer().isMounted() && !creature.isTransformed()) + if (creature.isPlayer() && (/* creature.isInCategory(CategoryType.SIXTH_CLASS_GROUP) || */ Config.FREE_JUMPS_FOR_ALL) && !creature.getActingPlayer().isMounted() && !creature.isTransformed()) { creature.setInsideZone(ZoneId.SAYUNE, true); ThreadPool.execute(new FlyMoveStartTask(this, creature.getActingPlayer())); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java index 21838d0e0e..65dd026be4 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java @@ -92,8 +92,11 @@ import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProduct import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRRecentProductList; import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidBossSpawnInfo; import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidServerInfo; +import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankCharInfo; +import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankingCharRankers; import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMove; import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMoveStart; +import org.l2jmobius.gameserver.network.clientpackets.sessionzones.ExTimedHuntingZoneList; import org.l2jmobius.gameserver.network.clientpackets.shuttle.CannotMoveAnymoreInShuttle; import org.l2jmobius.gameserver.network.clientpackets.shuttle.MoveToLocationInShuttle; import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOff; @@ -453,19 +456,19 @@ public enum ExIncomingPackets implements IIncomingPackets EX_INTERACT_MODIFY(0x15F, null, ConnectionState.IN_GAME), // 152 EX_TRY_ENCHANT_ARTIFACT(0x160, null, ConnectionState.IN_GAME), // 152 EX_XIGN_CODE(0x161, null, ConnectionState.IN_GAME), // 152 - EX_OPEN_HTML(0x164, null, ConnectionState.IN_GAME), // 228 + EX_OPEN_HTML(0x164, ExOpenDimensionalHtml::new, ConnectionState.IN_GAME), // 228 EX_REQUEST_CLASS_CHANGE(0x165, null, ConnectionState.IN_GAME), // 228 EX_REQUEST_CLASS_CHANGE_VERIFYING(0x166, null, ConnectionState.IN_GAME), // 228 EX_REQUEST_TELEPORT(0x167, ExRequestTeleport::new, ConnectionState.IN_GAME), // 228 EX_COSTUME_COLLECTION_SKILL_ACTIVE(0x16B, null, ConnectionState.IN_GAME), // 228 - REQUEST_AUTO_USE_POTION(0x171, null, ConnectionState.IN_GAME), // 228 - REQUEST_AUTO_USE(0x177, null, ConnectionState.IN_GAME), // 228 - EX_TIME_RESTRICT_FIELD_LIST(0x17F, null, ConnectionState.IN_GAME), // 228 + EX_AUTOPLAY_SETTING(0x177, ExAutoPlaySetting::new, ConnectionState.IN_GAME), // 228 + EX_TIME_RESTRICT_FIELD_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME), // 228 EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, null, ConnectionState.IN_GAME), // 228 - EX_RANKING_CHAR_INFO(0x181, null, ConnectionState.IN_GAME), // 228 + EX_RANKING_CHAR_INFO(0x181, ExRankCharInfo::new, ConnectionState.IN_GAME), // 228 EX_RANKING_CHAR_HISTORY(0x182, null, ConnectionState.IN_GAME), // 228 - EX_RANKING_CHAR_RANKERS(0x183, null, ConnectionState.IN_GAME), // 228 + EX_RANKING_CHAR_RANKERS(0x183, ExRankingCharRankers::new, ConnectionState.IN_GAME), // 228 EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x186, null, ConnectionState.IN_GAME), // 228 + EX_PVP_BOOK_LIST(0x18B, ExPvpBookList::new, ConnectionState.IN_GAME), // 228 EX_LETTER_COLLECTOR_TAKE_REWARD(0x18D, null, ConnectionState.IN_GAME); // 228 public static final ExIncomingPackets[] PACKET_ARRAY; diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/OutgoingPackets.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/OutgoingPackets.java index 00b0416686..e4083ec6f3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/OutgoingPackets.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/OutgoingPackets.java @@ -801,9 +801,15 @@ public enum OutgoingPackets EX_SEND_COSTUME_LIST(0xFE, 0x20F), // 228 EX_COSTUME_SHORTCUT_LIST(0xFE, 0x215), // 228 EX_SHOW_TELEPORT_UI(0xFE, 0x219), // 228 + EX_PREMIUM_MANAGER_SHOW_HTML(0xFE, 0x21B), // 228 EX_AUTOPLAY_SETTING(0xFE, 0x221), // 228 + EX_AUTOPLAY_DO_MACRO(0xFE, 0x222), // 228 + EX_TIME_RESTRICT_FIELD_LIST(0xFE, 0x22B), // 228 EX_UNK_225(0xFE, 0x225), // 228 - EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_HUD_INFO(0xFE, 0x235); // 228 + EX_RANKING_CHAR_INFO(0xFE, 0x230), // 228 + EX_RANKING_CHAR_RANKERS(0xFE, 0x232), // 228 + EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_HUD_INFO(0xFE, 0x235), // 228 + EX_PVPBOOK_LIST(0xFE, 0x23A); // 228 private final int _id1; private final int _id2; diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExAutoPlaySetting.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExAutoPlaySetting.java new file mode 100644 index 0000000000..c2eeefe7a0 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExAutoPlaySetting.java @@ -0,0 +1,70 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.serverpackets.ExAutoPlaySettingSend; + +/** + * @author Mobius + */ +public class ExAutoPlaySetting implements IClientIncomingPacket +{ + private int _options; + private boolean _active; + private boolean _pickUp; + private int _nextTargetMode; + private boolean _longRange; + private int _potionPercent; + private boolean _respectfulHunting; + + @Override + public boolean read(GameClient client, PacketReader packet) + { + _options = packet.readH(); + _active = packet.readC() == 1; + _pickUp = packet.readC() == 1; + _nextTargetMode = packet.readH(); + _longRange = packet.readC() == 0; + _potionPercent = packet.readD(); + _respectfulHunting = packet.readC() == 1; + return true; + } + + @Override + public void run(GameClient client) + { + final PlayerInstance player = client.getPlayer(); + if (player == null) + { + return; + } + + player.sendPacket(new ExAutoPlaySettingSend(_options, _active, _pickUp, _nextTargetMode, _longRange, _potionPercent, _respectfulHunting)); + + if (_active) + { + player.startAutoPlayTask(_longRange, _respectfulHunting); + } + else + { + player.stopAutoPlayTask(); + } + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenDimensionalHtml.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenDimensionalHtml.java new file mode 100644 index 0000000000..70322d7277 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExOpenDimensionalHtml.java @@ -0,0 +1,52 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.cache.HtmCache; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Mobius + */ +public class ExOpenDimensionalHtml implements IClientIncomingPacket +{ + @Override + public boolean read(GameClient client, PacketReader packet) + { + packet.readC(); // html scope? + return true; + } + + @Override + public void run(GameClient client) + { + final PlayerInstance player = client.getPlayer(); + if (player == null) + { + return; + } + + // FIXME: + // client.sendPacket(new ExPremiumManagerShowHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/DimensionalMerchant/32478.html"))); + final NpcHtmlMessage html = new NpcHtmlMessage(); + html.setHtml(HtmCache.getInstance().getHtm(player, "data/scripts/ai/others/DimensionalMerchant/32478.html")); + player.sendPacket(html); + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExPvpBookList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExPvpBookList.java new file mode 100644 index 0000000000..9b1d65ce33 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ExPvpBookList.java @@ -0,0 +1,39 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.serverpackets.PvpBookList; + +/** + * @author JoeAlisson + */ +public class ExPvpBookList implements IClientIncomingPacket +{ + @Override + public boolean read(GameClient client, PacketReader packet) + { + return true; + } + + @Override + public void run(GameClient client) + { + client.sendPacket(new PvpBookList()); + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/NewCharacter.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/NewCharacter.java index 08df07c4a2..0fa4aaeb5d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/NewCharacter.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/NewCharacter.java @@ -46,10 +46,7 @@ public class NewCharacter implements IClientIncomingPacket ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ORC_FIGHTER)); // Orc Fighter ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ORC_MAGE)); // Orc Mystic ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.DWARVEN_FIGHTER)); // Dwarf Fighter - ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.MALE_SOLDIER)); // Male Kamael Soldier - ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.FEMALE_SOLDIER)); // Female Kamael Soldier - ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ERTHEIA_FIGHTER)); // Ertheia Fighter - ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ERTHEIA_WIZARD)); // Ertheia Wizard + ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.KAMAEL_SOLDIER)); // Kamael Soldier client.sendPacket(ct); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index a2e21b406b..ca284b9977 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -22,10 +22,8 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.enums.Race; -import org.l2jmobius.gameserver.enums.SubclassType; import org.l2jmobius.gameserver.enums.UserInfoType; import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.actor.Npc; @@ -63,17 +61,10 @@ import org.l2jmobius.gameserver.util.Util; */ public class RequestAcquireSkill implements IClientIncomingPacket { - private static final String[] REVELATION_VAR_NAMES = - { - PlayerVariables.REVELATION_SKILL_1_MAIN_CLASS, - PlayerVariables.REVELATION_SKILL_2_MAIN_CLASS - }; - - private static final String[] DUALCLASS_REVELATION_VAR_NAMES = - { - PlayerVariables.REVELATION_SKILL_1_DUAL_CLASS, - PlayerVariables.REVELATION_SKILL_2_DUAL_CLASS - }; + /* + * private static final String[] REVELATION_VAR_NAMES = { PlayerVariables.REVELATION_SKILL_1_MAIN_CLASS, PlayerVariables.REVELATION_SKILL_2_MAIN_CLASS }; private static final String[] DUALCLASS_REVELATION_VAR_NAMES = { PlayerVariables.REVELATION_SKILL_1_DUAL_CLASS, + * PlayerVariables.REVELATION_SKILL_2_DUAL_CLASS }; + */ private int _id; private int _level; @@ -406,108 +397,30 @@ public class RequestAcquireSkill implements IClientIncomingPacket } case REVELATION: { - if (player.isSubClassActive()) - { - player.sendPacket(SystemMessageId.THIS_SKILL_CANNOT_BE_LEARNED_WHILE_IN_THE_SUBCLASS_STATE_PLEASE_TRY_AGAIN_AFTER_CHANGING_TO_THE_MAIN_CLASS); - Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while Sub-Class is active!", IllegalActionPunishmentType.NONE); - return; - } - if ((player.getLevel() < 85) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_THIS_SKILL); - Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while not being level 85 or awaken!", IllegalActionPunishmentType.NONE); - return; - } - - int count = 0; - - for (String varName : REVELATION_VAR_NAMES) - { - if (player.getVariables().getInt(varName, 0) > 0) - { - count++; - } - } - - if (count >= 2) - { - player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_THIS_SKILL); - Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while having already learned 2 skills!", IllegalActionPunishmentType.NONE); - return; - } - - if (checkPlayerSkill(player, trainer, s)) - { - final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; - - player.getVariables().set(varName, skill.getId()); - - giveSkill(player, trainer, skill); - } - - final List skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); - if (skills.size() > 0) - { - player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION)); - } - else - { - player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN); - } - break; + /* + * if (player.isSubClassActive()) { player.sendPacket(SystemMessageId.THIS_SKILL_CANNOT_BE_LEARNED_WHILE_IN_THE_SUBCLASS_STATE_PLEASE_TRY_AGAIN_AFTER_CHANGING_TO_THE_MAIN_CLASS); Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + + * " level " + _level + " while Sub-Class is active!", IllegalActionPunishmentType.NONE); return; } if ((player.getLevel() < 85) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_THIS_SKILL); + * Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while not being level 85 or awaken!", IllegalActionPunishmentType.NONE); return; } int count = 0; for (String varName : REVELATION_VAR_NAMES) { if + * (player.getVariables().getInt(varName, 0) > 0) { count++; } } if (count >= 2) { player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_THIS_SKILL); Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + * + _level + " while having already learned 2 skills!", IllegalActionPunishmentType.NONE); return; } if (checkPlayerSkill(player, trainer, s)) { final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); + * giveSkill(player, trainer, skill); } final List skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); if (skills.size() > 0) { player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION)); } else + * { player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN); } + */ + return; } case REVELATION_DUALCLASS: { - if (player.isSubClassActive() && !player.isDualClassActive()) - { - player.sendPacket(SystemMessageId.THIS_SKILL_CANNOT_BE_LEARNED_WHILE_IN_THE_SUBCLASS_STATE_PLEASE_TRY_AGAIN_AFTER_CHANGING_TO_THE_MAIN_CLASS); - Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while Sub-Class is active!", IllegalActionPunishmentType.NONE); - return; - } - - if ((player.getLevel() < 85) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_THIS_SKILL); - Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while not being level 85 or awaken!", IllegalActionPunishmentType.NONE); - return; - } - - int count = 0; - - for (String varName : DUALCLASS_REVELATION_VAR_NAMES) - { - if (player.getVariables().getInt(varName, 0) > 0) - { - count++; - } - } - - if (count >= 2) - { - player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_THIS_SKILL); - Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while having already learned 2 skills!", IllegalActionPunishmentType.NONE); - return; - } - - if (checkPlayerSkill(player, trainer, s)) - { - final String varName = count == 0 ? DUALCLASS_REVELATION_VAR_NAMES[0] : DUALCLASS_REVELATION_VAR_NAMES[1]; - - player.getVariables().set(varName, skill.getId()); - - giveSkill(player, trainer, skill); - } - - final List skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS); - if (skills.size() > 0) - { - player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS)); - } - else - { - player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN); - } - break; + /* + * if (player.isSubClassActive() && !player.isDualClassActive()) { player.sendPacket(SystemMessageId.THIS_SKILL_CANNOT_BE_LEARNED_WHILE_IN_THE_SUBCLASS_STATE_PLEASE_TRY_AGAIN_AFTER_CHANGING_TO_THE_MAIN_CLASS); Util.handleIllegalPlayerAction(player, "Player " + player.getName() + + * " is requesting skill Id: " + _id + " level " + _level + " while Sub-Class is active!", IllegalActionPunishmentType.NONE); return; } if ((player.getLevel() < 85) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { + * player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_THIS_SKILL); Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while not being level 85 or awaken!", + * IllegalActionPunishmentType.NONE); return; } int count = 0; for (String varName : DUALCLASS_REVELATION_VAR_NAMES) { if (player.getVariables().getInt(varName, 0) > 0) { count++; } } if (count >= 2) { + * player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_THIS_SKILL); Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " is requesting skill Id: " + _id + " level " + _level + " while having already learned 2 skills!", + * IllegalActionPunishmentType.NONE); return; } if (checkPlayerSkill(player, trainer, s)) { final String varName = count == 0 ? DUALCLASS_REVELATION_VAR_NAMES[0] : DUALCLASS_REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); + * } final List skills = SkillTreesData.getInstance().getAvailableRevelationSkills(player, SubclassType.DUALCLASS); if (skills.size() > 0) { player.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.REVELATION_DUALCLASS)); } else { + * player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN); } break; + */ + return; } default: { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkillInfo.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkillInfo.java index 22953dbec6..894f9b2f6f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkillInfo.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkillInfo.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.impl.SkillData; import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.model.SkillLearn; import org.l2jmobius.gameserver.model.actor.Npc; @@ -144,21 +143,17 @@ public class RequestAcquireSkillInfo implements IClientIncomingPacket } case REVELATION: { - if ((player.getLevel() < 85) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - return; - } - client.sendPacket(new AcquireSkillInfo(_skillType, s)); - break; + /* + * if ((player.getLevel() < 85) || !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { return; } client.sendPacket(new AcquireSkillInfo(_skillType, s)); + */ + return; } case REVELATION_DUALCLASS: { - if (!player.isSubClassActive() || !player.isDualClassActive()) - { - return; - } - client.sendPacket(new AcquireSkillInfo(_skillType, s)); - break; + /* + * if (!player.isSubClassActive() || !player.isDualClassActive()) { return; } client.sendPacket(new AcquireSkillInfo(_skillType, s)); + */ + return; } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestExEnchantSkill.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestExEnchantSkill.java index a3e3079cf4..39cad3d13a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestExEnchantSkill.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestExEnchantSkill.java @@ -24,7 +24,6 @@ import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.impl.EnchantSkillGroupsData; import org.l2jmobius.gameserver.data.xml.impl.SkillData; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.enums.SkillEnchantType; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -82,10 +81,10 @@ public class RequestExEnchantSkill implements IClientIncomingPacket return; } - if (!player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - return; - } + // if (!player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) + // { + // return; + // } if (!player.isAllowedToEnchantSkills()) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestExEnchantSkillInfo.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestExEnchantSkillInfo.java index 9ed475a2a3..06b147f759 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestExEnchantSkillInfo.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestExEnchantSkillInfo.java @@ -21,7 +21,6 @@ import java.util.Set; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.impl.EnchantSkillGroupsData; import org.l2jmobius.gameserver.data.xml.impl.SkillData; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.GameClient; @@ -61,10 +60,10 @@ public class RequestExEnchantSkillInfo implements IClientIncomingPacket return; } - if (!player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - return; - } + // if (!player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) + // { + // return; + // } final Skill skill = SkillData.getInstance().getSkill(_skillId, _skillLvl, _skillSubLvl); if ((skill == null) || (skill.getId() != _skillId)) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/mentoring/ConfirmMenteeAdd.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/mentoring/ConfirmMenteeAdd.java index d663b011e5..ff1265f853 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/mentoring/ConfirmMenteeAdd.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/mentoring/ConfirmMenteeAdd.java @@ -22,7 +22,6 @@ import java.util.logging.Level; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.network.PacketReader; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.instancemanager.MentorManager; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -106,66 +105,18 @@ public class ConfirmMenteeAdd implements IClientIncomingPacket */ public static boolean validate(PlayerInstance mentor, PlayerInstance mentee) { - if ((mentor == null) || (mentee == null)) - { - return false; - } - else if (!mentee.isOnline()) - { - mentor.sendPacket(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE); - return false; - } - else if (!mentor.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - mentor.sendPacket(SystemMessageId.YOU_MUST_AWAKEN_IN_ORDER_TO_BECOME_A_MENTOR); - return false; - } - else if (MentorManager.getInstance().getMentorPenalty(mentor.getObjectId()) > System.currentTimeMillis()) - { - long remainingTime = (MentorManager.getInstance().getMentorPenalty(mentor.getObjectId()) - System.currentTimeMillis()) / 1000; - final int days = (int) (remainingTime / 86400); - remainingTime = remainingTime % 86400; - final int hours = (int) (remainingTime / 3600); - remainingTime = remainingTime % 3600; - final int minutes = (int) (remainingTime / 60); - final SystemMessage msg = new SystemMessage(SystemMessageId.YOU_CAN_BOND_WITH_A_NEW_MENTEE_IN_S1_DAY_S_S2_HOUR_S_S3_MINUTE_S); - msg.addInt(days); - msg.addInt(hours); - msg.addInt(minutes); - mentor.sendPacket(msg); - return false; - } - else if (mentor.getObjectId() == mentee.getObjectId()) - { - mentor.sendPacket(SystemMessageId.YOU_CANNOT_BECOME_YOUR_OWN_MENTEE); - return false; - } - else if (mentee.getLevel() >= 86) - { - mentor.sendPacket(new SystemMessage(SystemMessageId.S1_IS_ABOVE_LEVEL_85_AND_CANNOT_BECOME_A_MENTEE).addString(mentee.getName())); - return false; - } - else if (mentee.isSubClassActive()) - { - mentor.sendPacket(SystemMessageId.INVITATION_CAN_OCCUR_ONLY_WHEN_THE_MENTEE_IS_IN_MAIN_CLASS_STATUS); - return false; - } + return false; - // else if (mentee.getInventory().getItemByItemId(MENTEE_CERT) == null) - // { - // mentor.sendPacket(new SystemMessage(SystemMessageId.S1_DOES_NOT_HAVE_THE_ITEM_NEEDED_TO_BECOME_A_MENTEE).addString(mentee)); - // return false; - // } - else if ((MentorManager.getInstance().getMentees(mentor.getObjectId()) != null) && (MentorManager.getInstance().getMentees(mentor.getObjectId()).size() >= 3)) - { - mentor.sendPacket(SystemMessageId.A_MENTOR_CAN_HAVE_UP_TO_3_MENTEES_AT_THE_SAME_TIME); - return false; - } - else if (mentee.isMentee()) - { - mentor.sendPacket(new SystemMessage(SystemMessageId.S1_ALREADY_HAS_A_MENTOR).addString(mentee.getName())); - return false; - } - return true; + /* + * if ((mentor == null) || (mentee == null)) { return false; } else if (!mentee.isOnline()) { mentor.sendPacket(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE); return false; } else if (!mentor.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { + * mentor.sendPacket(SystemMessageId.YOU_MUST_AWAKEN_IN_ORDER_TO_BECOME_A_MENTOR); return false; } else if (MentorManager.getInstance().getMentorPenalty(mentor.getObjectId()) > System.currentTimeMillis()) { long remainingTime = + * (MentorManager.getInstance().getMentorPenalty(mentor.getObjectId()) - System.currentTimeMillis()) / 1000; final int days = (int) (remainingTime / 86400); remainingTime = remainingTime % 86400; final int hours = (int) (remainingTime / 3600); remainingTime = remainingTime % 3600; final int + * minutes = (int) (remainingTime / 60); final SystemMessage msg = new SystemMessage(SystemMessageId.YOU_CAN_BOND_WITH_A_NEW_MENTEE_IN_S1_DAY_S_S2_HOUR_S_S3_MINUTE_S); msg.addInt(days); msg.addInt(hours); msg.addInt(minutes); mentor.sendPacket(msg); return false; } else if + * (mentor.getObjectId() == mentee.getObjectId()) { mentor.sendPacket(SystemMessageId.YOU_CANNOT_BECOME_YOUR_OWN_MENTEE); return false; } else if (mentee.getLevel() >= 86) { mentor.sendPacket(new + * SystemMessage(SystemMessageId.S1_IS_ABOVE_LEVEL_85_AND_CANNOT_BECOME_A_MENTEE).addString(mentee.getName())); return false; } else if (mentee.isSubClassActive()) { mentor.sendPacket(SystemMessageId.INVITATION_CAN_OCCUR_ONLY_WHEN_THE_MENTEE_IS_IN_MAIN_CLASS_STATUS); return false; } // else + * if (mentee.getInventory().getItemByItemId(MENTEE_CERT) == null) // { // mentor.sendPacket(new SystemMessage(SystemMessageId.S1_DOES_NOT_HAVE_THE_ITEM_NEEDED_TO_BECOME_A_MENTEE).addString(mentee)); // return false; // } else if ((MentorManager.getInstance().getMentees(mentor.getObjectId()) + * != null) && (MentorManager.getInstance().getMentees(mentor.getObjectId()).size() >= 3)) { mentor.sendPacket(SystemMessageId.A_MENTOR_CAN_HAVE_UP_TO_3_MENTEES_AT_THE_SAME_TIME); return false; } else if (mentee.isMentee()) { mentor.sendPacket(new + * SystemMessage(SystemMessageId.S1_ALREADY_HAS_A_MENTOR).addString(mentee.getName())); return false; } return true; + */ } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankCharInfo.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankCharInfo.java new file mode 100644 index 0000000000..fd3841f624 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankCharInfo.java @@ -0,0 +1,40 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets.ranking; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import org.l2jmobius.gameserver.network.serverpackets.ranking.ExRankingCharInfo; + +/** + * @author JoeAlisson + */ +public class ExRankCharInfo implements IClientIncomingPacket +{ + @Override + public boolean read(GameClient client, PacketReader packet) + { + return true; + } + + @Override + public void run(GameClient client) + { + client.sendPacket(new ExRankingCharInfo()); + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankingCharRankers.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankingCharRankers.java new file mode 100644 index 0000000000..1b491098fb --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/ranking/ExRankingCharRankers.java @@ -0,0 +1,47 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets.ranking; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import org.l2jmobius.gameserver.network.serverpackets.ranking.ExRankList; + +/** + * @author JoeAlisson + */ +public class ExRankingCharRankers implements IClientIncomingPacket +{ + private int _group; + private int _scope; + private int _race; + + @Override + public boolean read(GameClient client, PacketReader packet) + { + _group = packet.readC(); + _scope = packet.readC(); + _race = packet.readD(); + return true; + } + + @Override + public void run(GameClient client) + { + client.sendPacket(new ExRankList(_group, _scope, _race)); + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/sayune/RequestFlyMoveStart.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/sayune/RequestFlyMoveStart.java index 84125d72aa..3a112106b6 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/sayune/RequestFlyMoveStart.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/sayune/RequestFlyMoveStart.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.sayune; import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.impl.SayuneData; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.SayuneEntry; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -45,7 +44,7 @@ public class RequestFlyMoveStart implements IClientIncomingPacket public void run(GameClient client) { final PlayerInstance player = client.getPlayer(); - if ((player == null) || !player.isInsideZone(ZoneId.SAYUNE) || player.hasRequest(SayuneRequest.class) || (!player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) && !Config.FREE_JUMPS_FOR_ALL)) + if ((player == null) || !player.isInsideZone(ZoneId.SAYUNE) || player.hasRequest(SayuneRequest.class) || (/* !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP) && */ !Config.FREE_JUMPS_FOR_ALL)) { return; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/sessionzones/ExTimedHuntingZoneList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/sessionzones/ExTimedHuntingZoneList.java new file mode 100644 index 0000000000..eaf79b23ed --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/sessionzones/ExTimedHuntingZoneList.java @@ -0,0 +1,44 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.clientpackets.sessionzones; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneList; + +public class ExTimedHuntingZoneList implements IClientIncomingPacket +{ + @Override + public boolean read(GameClient client, PacketReader packet) + { + return true; + } + + @Override + public void run(GameClient client) + { + final PlayerInstance player = client.getPlayer(); + if (player == null) + { + return; + } + + client.sendPacket(new TimedHuntingZoneList()); + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlayDoMacro.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlayDoMacro.java new file mode 100644 index 0000000000..2f9245e936 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlayDoMacro.java @@ -0,0 +1,40 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; + +/** + * @author Mobius + */ +public class ExAutoPlayDoMacro implements IClientOutgoingPacket +{ + public static final ExAutoPlayDoMacro STATIC_PACKET = new ExAutoPlayDoMacro(); + + public ExAutoPlayDoMacro() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_AUTOPLAY_DO_MACRO.writeId(packet); + packet.writeD(0x114); + return true; + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlaySettingSend.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlaySettingSend.java new file mode 100644 index 0000000000..0ede045993 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExAutoPlaySettingSend.java @@ -0,0 +1,59 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; + +/** + * @author JoeAlisson + */ +public class ExAutoPlaySettingSend implements IClientOutgoingPacket +{ + private final int _options; + private final boolean _active; + private final boolean _pickUp; + private final int _nextTargetMode; + private final boolean _longRange; + private final int _potionPercent; + private final boolean _respectfulHunting; + + public ExAutoPlaySettingSend(int options, boolean active, boolean pickUp, int nextTargetMode, boolean longRange, int potionPercent, boolean respectfulHunting) + { + _options = options; + _active = active; + _pickUp = pickUp; + _nextTargetMode = nextTargetMode; + _longRange = longRange; + _potionPercent = potionPercent; + _respectfulHunting = respectfulHunting; + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_AUTOPLAY_SETTING.writeId(packet); + packet.writeH(_options); + packet.writeC(_active ? 1 : 0); + packet.writeC(_pickUp ? 1 : 0); + packet.writeH(_nextTargetMode); + packet.writeC(_longRange ? 1 : 0); + packet.writeD(_potionPercent); + packet.writeC(_respectfulHunting ? 1 : 0); + return true; + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExPremiumManagerShowHtml.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExPremiumManagerShowHtml.java new file mode 100644 index 0000000000..dce9bb7483 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ExPremiumManagerShowHtml.java @@ -0,0 +1,49 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.enums.HtmlActionScope; +import org.l2jmobius.gameserver.network.OutgoingPackets; + +/** + * @author JoeAlisson + */ +public class ExPremiumManagerShowHtml extends AbstractHtmlPacket +{ + public ExPremiumManagerShowHtml(String html) + { + super(html); + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_PREMIUM_MANAGER_SHOW_HTML.writeId(packet); + packet.writeD(getNpcObjId()); + packet.writeS(getHtml()); + packet.writeD(-1); + packet.writeD(0); + return true; + } + + @Override + public HtmlActionScope getScope() + { + return HtmlActionScope.PREMIUM_HTML; + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/PvpBookList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/PvpBookList.java new file mode 100644 index 0000000000..96bbcdacb0 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/PvpBookList.java @@ -0,0 +1,52 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets; + +import java.time.LocalDateTime; +import java.time.ZoneId; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; + +public class PvpBookList implements IClientOutgoingPacket +{ + public PvpBookList() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_PVPBOOK_LIST.writeId(packet); + + int size = 1; + packet.writeD(4); // show killer's location count + packet.writeD(5); // teleport count + packet.writeD(size); // killer count + for (int i = 0; i < size; i++) + { + packet.writeString("killer" + i); // killer name + packet.writeString("clanKiller" + i); // killer clan name + packet.writeD(15); // killer level + packet.writeD(2); // killer race + packet.writeD(10); // killer class + packet.writeD((int) LocalDateTime.now().atZone(ZoneId.systemDefault()).toEpochSecond()); // kill time + packet.writeC(1); // is online + } + return true; + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/mentoring/ExMentorList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/mentoring/ExMentorList.java index 48396338d0..5a66fe54b6 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/mentoring/ExMentorList.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/mentoring/ExMentorList.java @@ -21,7 +21,6 @@ import java.util.Collection; import java.util.Collections; import org.l2jmobius.commons.network.PacketWriter; -import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.instancemanager.MentorManager; import org.l2jmobius.gameserver.model.Mentee; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -48,11 +47,11 @@ public class ExMentorList implements IClientOutgoingPacket _type = 0x02; _mentees = Arrays.asList(MentorManager.getInstance().getMentor(player.getObjectId())); } - else if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) // Not a mentor, Not a mentee, so can be a mentor - { - _mentees = Collections.emptyList(); - _type = 0x01; - } + // else if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) // Not a mentor, Not a mentee, so can be a mentor + // { + // _mentees = Collections.emptyList(); + // _type = 0x01; + // } else { _mentees = Collections.emptyList(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/mentoring/ListMenteeWaiting.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/mentoring/ListMenteeWaiting.java index 16a54e42e4..81961a3fb2 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/mentoring/ListMenteeWaiting.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/mentoring/ListMenteeWaiting.java @@ -20,8 +20,6 @@ import java.util.ArrayList; import java.util.List; import org.l2jmobius.commons.network.PacketWriter; -import org.l2jmobius.gameserver.enums.CategoryType; -import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; @@ -38,13 +36,13 @@ public class ListMenteeWaiting implements IClientOutgoingPacket public ListMenteeWaiting(int page, int minLevel, int maxLevel) { _page = page; - for (PlayerInstance player : World.getInstance().getPlayers()) - { - if ((player.getLevel() >= minLevel) && (player.getLevel() <= maxLevel) && !player.isMentee() && !player.isMentor() && !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) - { - _possibleCandiates.add(player); - } - } + // for (PlayerInstance player : World.getInstance().getPlayers()) + // { + // if ((player.getLevel() >= minLevel) && (player.getLevel() <= maxLevel) && !player.isMentee() && !player.isMentor() && !player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) + // { + // _possibleCandiates.add(player); + // } + // } } @Override diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankList.java new file mode 100644 index 0000000000..49bd6bc565 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankList.java @@ -0,0 +1,99 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets.ranking; + +import java.util.ArrayList; +import java.util.List; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; +import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; + +/** + * @author JoeAlisson + */ +public class ExRankList implements IClientOutgoingPacket +{ + private final int _race; + private final int _group; + private final int _scope; + + public ExRankList(int group, int scope, int race) + { + _group = group; + _scope = scope; + _race = race; + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_RANKING_CHAR_RANKERS.writeId(packet); + + packet.writeC(_group); + packet.writeC(_scope); + packet.writeD(_race); + + List rankers = new ArrayList<>(); + for (int i = 0; i < 5; i++) + { + addRanker(rankers); + } + + packet.writeD(rankers.size()); + + for (Ranker ranker : rankers) + { + packet.writeString(ranker.name); + packet.writeString(ranker.pledgeName); + packet.writeD(ranker.level); + packet.writeD(ranker.rClass); + packet.writeD(ranker.race); + packet.writeD(ranker.rank); + packet.writeD(ranker.serverRankSnapshot); + packet.writeD(ranker.raceRankSnapshot); + } + + return true; + } + + private static void addRanker(List rankers) + { + final Ranker ranker = new Ranker(); + ranker.name = "Ranker" + rankers.size(); + ranker.pledgeName = "ClanRanker" + rankers.size(); + ranker.level = 80 - rankers.size(); + ranker.race = rankers.size(); + ranker.rClass = 20 + rankers.size(); + ranker.rank = 1 + rankers.size(); + ranker.serverRankSnapshot = ranker.rank + ((rankers.size() % 2) == 0 ? 2 : -1); + ranker.raceRankSnapshot = rankers.size(); + rankers.add(ranker); + } + + private static class Ranker + { + String name; + String pledgeName; + int level; + int rClass; + int rank; + int race; + int serverRankSnapshot; + int raceRankSnapshot; + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankingCharInfo.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankingCharInfo.java new file mode 100644 index 0000000000..3aab619eca --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/ranking/ExRankingCharInfo.java @@ -0,0 +1,44 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets.ranking; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; +import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; + +/** + * @author JoeAlisson + */ +public class ExRankingCharInfo implements IClientOutgoingPacket +{ + public ExRankingCharInfo() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_RANKING_CHAR_INFO.writeId(packet); + + packet.writeD(1); // server rank + packet.writeD(2); // race rank + packet.writeD(2); // server rank snapshot + packet.writeD(1); // race rank snapshot + + return true; + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/sessionzones/TimedHuntingZoneList.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/sessionzones/TimedHuntingZoneList.java new file mode 100644 index 0000000000..b62dbaa3f1 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/serverpackets/sessionzones/TimedHuntingZoneList.java @@ -0,0 +1,111 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.l2jmobius.gameserver.network.serverpackets.sessionzones; + +import java.util.ArrayList; +import java.util.List; + +import org.l2jmobius.commons.network.PacketWriter; +import org.l2jmobius.gameserver.network.OutgoingPackets; +import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; + +public class TimedHuntingZoneList implements IClientOutgoingPacket +{ + public TimedHuntingZoneList() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_TIME_RESTRICT_FIELD_LIST.writeId(packet); + + List infos = new ArrayList<>(); + + addField(infos); + + packet.writeD(infos.size()); + + for (TimeRestrictedFieldInfo info : infos) + { + packet.writeD(info.requiredItems.size()); + + for (FieldRequiredItem item : info.requiredItems) + { + packet.writeD(item.itemId); + packet.writeQ(item.count); + } + + packet.writeD(info.resetCycle); + packet.writeD(info.fieldId); + packet.writeD(info.minLevel); + packet.writeD(info.maxLevel); + packet.writeD(info.remainTimeBase); + packet.writeD(info.remainTime); + packet.writeD(info.remainTimeMax); + packet.writeD(info.remainRefillTime); + packet.writeD(info.refillTimeMax); + packet.writeC(info.fieldActivated ? 1 : 0); + } + + return true; + } + + private void addField(List infos) + { + final TimeRestrictedFieldInfo field = new TimeRestrictedFieldInfo(); + field.resetCycle = 1; + field.fieldId = 2; + field.minLevel = 78; + field.maxLevel = 999; + field.remainTimeBase = 3600; + field.remainTime = 3600; + field.remainTimeMax = 21600; + field.remainRefillTime = 18000; + field.refillTimeMax = 18000; + field.fieldActivated = true; + + final FieldRequiredItem item = new FieldRequiredItem(); + item.itemId = 57; + item.count = 10000; + + field.requiredItems = List.of(item); + infos.add(field); + } + + static class TimeRestrictedFieldInfo + { + List requiredItems; + int resetCycle; + int fieldId; + int minLevel; + int maxLevel; + int remainTimeBase; + int remainTime; + int remainTimeMax; + int remainRefillTime; + int refillTimeMax; + boolean fieldActivated; + + } + + static class FieldRequiredItem + { + int itemId; + long count; + } +} \ No newline at end of file