Addition of quests todo file.

This commit is contained in:
MobiusDev
2016-05-01 17:21:42 +00:00
parent 876c1a1ef5
commit fcb6bbf3e8
285 changed files with 6 additions and 6515 deletions

View File

@@ -1,814 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/LevelUpCrystalData.xsd">
<crystal>
<item itemId="4629" level="0" leveledItemId="4630" /> <!-- RED 0 - 1 -->
<item itemId="4630" level="1" leveledItemId="4631" /> <!-- RED 1 - 2 -->
<item itemId="4631" level="2" leveledItemId="4632" /> <!-- RED 2 - 3 -->
<item itemId="4632" level="3" leveledItemId="4633" /> <!-- RED 3 - 4 -->
<item itemId="4633" level="4" leveledItemId="4634" /> <!-- RED 4 - 5 -->
<item itemId="4634" level="5" leveledItemId="4635" /> <!-- RED 5 - 6 -->
<item itemId="4635" level="6" leveledItemId="4636" /> <!-- RED 6 - 7 -->
<item itemId="4636" level="7" leveledItemId="4637" /> <!-- RED 7 - 8 -->
<item itemId="4637" level="8" leveledItemId="4638" /> <!-- RED 8 - 9 -->
<item itemId="4638" level="9" leveledItemId="4639" /> <!-- RED 9 - 10 -->
<item itemId="4639" level="10" leveledItemId="5577" /> <!-- RED 10 - 11 -->
<item itemId="5577" level="11" leveledItemId="5580" /> <!-- RED 11 - 12 -->
<item itemId="5580" level="12" leveledItemId="5908" /> <!-- RED 12 - 13 -->
<item itemId="5908" level="13" leveledItemId="9570" /> <!-- RED 13 - 14 -->
<item itemId="9570" level="14" leveledItemId="10480" /> <!-- RED 14 - 15 -->
<item itemId="10480" level="15" leveledItemId="13071" /> <!-- RED 15 - 16 -->
<item itemId="13071" level="16" leveledItemId="15541" /> <!-- RED 16 - 17 -->
<item itemId="15541" level="17" leveledItemId="15826" /> <!-- RED 17 - 18 -->
<item itemId="4640" level="0" leveledItemId="4641" /> <!-- GREEN 0 - 1 -->
<item itemId="4641" level="1" leveledItemId="4642" /> <!-- GREEN 1 - 2 -->
<item itemId="4642" level="2" leveledItemId="4643" /> <!-- GREEN 2 - 3 -->
<item itemId="4643" level="3" leveledItemId="4644" /> <!-- GREEN 3 - 4 -->
<item itemId="4644" level="4" leveledItemId="4645" /> <!-- GREEN 4 - 5 -->
<item itemId="4645" level="5" leveledItemId="4646" /> <!-- GREEN 5 - 6 -->
<item itemId="4646" level="6" leveledItemId="4647" /> <!-- GREEN 6 - 7 -->
<item itemId="4647" level="7" leveledItemId="4648" /> <!-- GREEN 7 - 8 -->
<item itemId="4648" level="8" leveledItemId="4649" /> <!-- GREEN 8 - 9 -->
<item itemId="4649" level="9" leveledItemId="4650" /> <!-- GREEN 9 - 10 -->
<item itemId="4650" level="10" leveledItemId="5578" /> <!-- GREEN 10 - 11 -->
<item itemId="5578" level="11" leveledItemId="5581" /> <!-- GREEN 11 - 12 -->
<item itemId="5581" level="12" leveledItemId="5911" /> <!-- GREEN 12 - 13 -->
<item itemId="5911" level="13" leveledItemId="9572" /> <!-- GREEN 13 - 14 -->
<item itemId="9572" level="14" leveledItemId="10482" /> <!-- GREEN 14 - 15 -->
<item itemId="10482" level="15" leveledItemId="13073" /> <!-- GREEN 15 - 16 -->
<item itemId="13073" level="16" leveledItemId="15543" /> <!-- GREEN 16 - 17 -->
<item itemId="15543" level="17" leveledItemId="15828" /> <!-- GREEN 17 - 18 -->
<item itemId="4651" level="0" leveledItemId="4652" /> <!-- BLUE 0 - 1 -->
<item itemId="4652" level="1" leveledItemId="4653" /> <!-- BLUE 1 - 2 -->
<item itemId="4653" level="2" leveledItemId="4654" /> <!-- BLUE 2 - 3 -->
<item itemId="4654" level="3" leveledItemId="4655" /> <!-- BLUE 3 - 4 -->
<item itemId="4655" level="4" leveledItemId="4656" /> <!-- BLUE 4 - 5 -->
<item itemId="4656" level="5" leveledItemId="4657" /> <!-- BLUE 5 - 6 -->
<item itemId="4657" level="6" leveledItemId="4658" /> <!-- BLUE 6 - 7 -->
<item itemId="4658" level="7" leveledItemId="4659" /> <!-- BLUE 7 - 8 -->
<item itemId="4659" level="8" leveledItemId="4660" /> <!-- BLUE 8 - 9 -->
<item itemId="4660" level="9" leveledItemId="4661" /> <!-- BLUE 9 - 10 -->
<item itemId="4661" level="10" leveledItemId="5579" /> <!-- BLUE 10 - 11 -->
<item itemId="5579" level="11" leveledItemId="5582" /> <!-- BLUE 11 - 12 -->
<item itemId="5582" level="12" leveledItemId="5914" /> <!-- BLUE 12 - 13 -->
<item itemId="5914" level="13" leveledItemId="9571" /> <!-- BLUE 13 - 14 -->
<item itemId="9571" level="14" leveledItemId="10481" /> <!-- BLUE 14 - 15 -->
<item itemId="10481" level="15" leveledItemId="13072" /> <!-- BLUE 15 - 16 -->
<item itemId="13072" level="16" leveledItemId="15542" /> <!-- BLUE 16 - 17 -->
<item itemId="15542" level="17" leveledItemId="15827" /> <!-- BLUE 17 - 18 -->
</crystal>
<npc>
<!-- Mobs that level up crystal from Level 1 up to 10 -->
<item npcId="20583"> <!-- Timak Orc -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20584"> <!-- Timak Orc Archer -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20585"> <!-- Timak Orc Soldier -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20586"> <!-- Timak Orc Warrior -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20587"> <!-- Timak Orc Shaman -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20588"> <!-- Timak Orc Overlord -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20625"> <!-- Malruk Knight -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20626"> <!-- Malruk Berserker -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20627"> <!-- Malruk Lord -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20628"> <!-- Limal Karinness -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20629"> <!-- Karik -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20636"> <!-- Forest of Mirrors Ghost -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20637"> <!-- Forest of Mirrors Ghost -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20638"> <!-- Forest of Mirrors Ghost -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20639"> <!-- Mirror -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20640"> <!-- Harit Lizardman -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="20641"> <!-- Harit Lizardman Grunt -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="20642"> <!-- Harit Lizardman Archer -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="20646"> <!-- Halingka -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="20647"> <!-- Yintzu -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="20648"> <!-- Paliote -->
<detail chance="9" skill="true" maxLevel="6" />
</item>
<item npcId="20649"> <!-- Hamrut -->
<detail chance="9" skill="true" maxLevel="6" />
</item>
<item npcId="20650"> <!-- Kranrot -->
<detail chance="9" skill="true" maxLevel="7" />
</item>
<item npcId="20674"> <!-- Doom Knight -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20761"> <!-- Pytan -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20762"> <!-- Pytan Knight -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20767"> <!-- Timak Orc Troop Leader -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20768"> <!-- Timak Orc Troop Shaman -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20769"> <!-- Timak Orc Troop Warrior -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20770"> <!-- Timak Orc Troop Archer -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20793"> <!-- Nos -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20794"> <!-- Blade Stakato -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20795"> <!-- Blade Stakato Worker -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20796"> <!-- Blade Stakato Warrior -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20797"> <!-- Blade Stakato Drone -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20798"> <!-- Water Giant -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20799"> <!-- Queen Undine Lad -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20800"> <!-- Eva's Seeker -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20801"> <!-- Theeder Piker -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20802"> <!-- Theeder Mage -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20803"> <!-- Doll Master -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="20821"> <!-- Erin Ediunce -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20823"> <!-- Platinum Tribe Soldier -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20826"> <!-- Platinum Tribe Archer -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20827"> <!-- Platinum Tribe Warrior -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20828"> <!-- Platinum Tribe Shaman -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20829"> <!-- Platinum Tribe Overlord -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20830"> <!-- Guardian Angel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20831"> <!-- Seal Angel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20839"> <!-- Unpleasant Humming -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20840"> <!-- Death Flyer -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20841"> <!-- Fiend Archer -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20842"> <!-- Musveren -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="20843"> <!-- Zaken's Royal Guard -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="20844"> <!-- Kaim Vanul -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="20845"> <!-- Pirate's Zombie Captain -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="20846"> <!-- Doll Blader -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="20847"> <!-- Vale Master -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="20848"> <!-- Light Bringer -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="20849"> <!-- Light Worm -->
<detail chance="9" skill="true" maxLevel="1" />
</item>
<item npcId="20860"> <!-- Seal Angel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="20986"> <!-- Sairon -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="20987"> <!-- Sairon's Doll -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="20988"> <!-- Sairon's Puppet -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="20994"> <!-- Garden Guard Leader -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="20995"> <!-- Garden Guard -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="21006"> <!-- Doom Servant -->
<detail chance="9" skill="true" maxLevel="7" />
</item>
<item npcId="21007"> <!-- Doom Guard -->
<detail chance="9" skill="true" maxLevel="8" />
</item>
<item npcId="21008"> <!-- Doom Archer -->
<detail chance="9" skill="true" maxLevel="8" />
</item>
<item npcId="21009"> <!-- Doom Trooper -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21010"> <!-- Doom Warrior -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21062"> <!-- Messenger Angel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21063"> <!-- Messenger Angel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21064"> <!-- Platinum Guardian Archer -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21065"> <!-- Platinum Guardian Warrior -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21066"> <!-- Platinum Guardian Shaman -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21067"> <!-- Guardian Archangel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21068"> <!-- Guardian Archangel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21069"> <!-- Platinum Guardian Prefect -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21070"> <!-- Seal Archangel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21071"> <!-- Seal Archangel -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21072"> <!-- Platinum Guardian Chief -->
<detail chance="9" skill="true" maxLevel="9" />
</item>
<item npcId="21611"> <!-- Unpleasant Humming -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="21612"> <!-- Unpleasant Humming -->
<detail chance="9" skill="true" maxLevel="2" />
</item>
<item npcId="21614"> <!-- Death Flyer -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="21615"> <!-- Death Flyer -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="21617"> <!-- Fiend Archer -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="21620"> <!-- Musveren -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="21621"> <!-- Musveren -->
<detail chance="9" skill="true" maxLevel="3" />
</item>
<item npcId="21623"> <!-- Zaken's Guard -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="21624"> <!-- Zaken's Guard -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="21626"> <!-- Kaim Vanul -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="21627"> <!-- Kaim Vanul -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="21629"> <!-- Pirate Zombie Captain -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="21630"> <!-- Pirate Zombie Captain -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="21632"> <!-- Doll Blader -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="21633"> <!-- Doll Blader -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="21635"> <!-- Vale Master -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="21636"> <!-- Vale Master -->
<detail chance="9" skill="true" maxLevel="5" />
</item>
<item npcId="29026"> <!-- Pirate Zombie Captain -->
<detail chance="9" skill="true" maxLevel="4" />
</item>
<item npcId="35412"> <!-- Doom Guard -->
<detail chance="9" skill="true" maxLevel="8" />
</item>
<item npcId="35413"> <!-- Doom Archer -->
<detail chance="9" skill="true" maxLevel="8" />
</item>
<!-- RaidBosses or GrandBosses that level up crystal from Level 10 up to 18 -->
<item npcId="29001"> <!-- Queen Ant -->
<detail chance="5" absorbType="FULL_PARTY" levelList="10" />
</item>
<item npcId="29006"> <!-- Core -->
<detail chance="20" absorbType="FULL_PARTY" levelList="10, 11, 12" />
</item>
<item npcId="29014"> <!-- Orfen -->
<detail chance="20" absorbType="FULL_PARTY" levelList="10, 11, 12" />
</item>
<item npcId="29022"> <!-- Zaken -->
<detail chance="100" absorbType="FULL_PARTY" levelList="10, 11" />
<detail chance="10" absorbType="FULL_PARTY" levelList="12, 13" />
</item>
<item npcId="29176"> <!-- Daytime Zaken -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="29181"> <!-- Night-time Zaken -->
<detail chance="20" absorbType="PARTY_ONE_RANDOM" levelList="12, 13" />
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="14, 15" />
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="16" />
</item>
<item npcId="25016"> <!-- The 3rd Underwater Guardian -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25106"> <!-- Ghost of the Well Lidia -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25179"> <!-- Guardian of the Statue of Giant Karum -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25234"> <!-- Ancient Weird Drake -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25256"> <!-- Taik High Prefect Arak -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25407"> <!-- Lord Ishka -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25423"> <!-- Fairy Queen Timiniel -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25226"> <!-- Roaring Lord Kastor -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25051"> <!-- Rahha -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25125"> <!-- Fierce Tiger King Angel -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25255"> <!-- Gargoyle Lord Tiphon -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25444"> <!-- Enmity Ghost Ramdal -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25478"> <!-- Shilen's Priest Hisilrome -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25322"> <!-- Demon's Agent Falston -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25263"> <!-- Kernon's Faithful Servant Kelone -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25337"> <!-- Anakazel -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25073"> <!-- Bloody Priest Rudelto -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25233"> <!-- Spirit of Andras, the Betrayer -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25035"> <!-- Shilen's Messenger Cabrio -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25092"> <!-- Korim -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25163"> <!-- Roaring Skylancer -->
<detail chance="20" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25198"> <!-- Fafurion's Herald Lokness -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25252"> <!-- Palibati Queen Themis -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25269"> <!-- Beast Lord Behemoth -->
<detail chance="20" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25281"> <!-- Anakim's Nemesis Zakaron -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25325"> <!-- Flame of Splendor Barakiel -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25453"> <!-- Meanas Anor -->
<detail chance="20" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25328"> <!-- Eilhalder von Hellmann -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25447"> <!-- Immortal Savior Mardil -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25199"> <!-- Water Dragon Seer Sheshark -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25235"> <!-- Vanor Chief Kandra -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25248"> <!-- Doom Blade Tanatos -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25220"> <!-- Death Lord Hallate -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25523"> <!-- Plague Golem -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25109"> <!-- Antharas Priest Cloe -->
<detail chance="20" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25202"> <!-- Krokian Padisha Sobekk -->
<detail chance="20" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25296"> <!-- Icicle Emperor Bumbalump -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="29020"> <!-- Baium -->
<detail chance="100" absorbType="FULL_PARTY" levelList="10, 11" />
<detail chance="5" absorbType="FULL_PARTY" levelList="12" />
</item>
<item npcId="25054"> <!-- Kernon -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25229"> <!-- Storm Winged Naga -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25244"> <!-- Last Lesser Giant Olkuth -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25249"> <!-- Palatanos of Horrific Power -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25266"> <!-- Bloody Empress Decarbia -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25276"> <!-- Death Lord Ipos -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25282"> <!-- Death Lord Shax -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25205"> <!-- Ocean Flame Ashakiel -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25524"> <!-- Flamestone Giant -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25703"> <!-- Gigantic Golem -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25143"> <!-- Fire of Wrath Shuriel -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25245"> <!-- Last Lesser Giant Glaki -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25290"> <!-- Daimon the White-Eyed -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25293"> <!-- Hestia, Guardian Deity of the Hot Springs -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25338"> <!-- Anakazel -->
<detail chance="15" absorbType="PARTY_ONE_RANDOM" levelList="12, 13" />
</item>
<item npcId="25126"> <!-- Longhorn Golkonda -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="25450"> <!-- Cherub Galaxia -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12" />
</item>
<item npcId="29062"> <!-- Andreas Van Halter -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="29065"> <!-- Sailren -->
<detail chance="20" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="12, 13" />
</item>
<item npcId="29095"> <!-- Gordon -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25283"> <!-- Lilith -->
<detail chance="100" absorbType="FULL_PARTY" levelList="10, 11" />
<detail chance="10" absorbType="FULL_PARTY" levelList="12, 13" />
</item>
<item npcId="25286"> <!-- Anakim -->
<detail chance="100" absorbType="FULL_PARTY" levelList="10, 11" />
<detail chance="10" absorbType="FULL_PARTY" levelList="12, 13" />
</item>
<item npcId="25299"> <!-- Ketra's Hero Hekaton -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25302"> <!-- Ketra's Commander Tayr -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25305"> <!-- Ketra's Chief Brakki -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25306"> <!-- Soul of Fire Nastron -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25309"> <!-- Varka's Hero Shadith -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25312"> <!-- Varka's Commander Mos -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25315"> <!-- Varka's Chief Horus -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25316"> <!-- Soul of Water Ashutar -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25319"> <!-- Ember -->
<detail chance="5" absorbType="FULL_PARTY" levelList="10, 11, 12, 13" />
</item>
<item npcId="25527"> <!-- Uruka -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="22216"> <!-- Tyrannosaurus -->
<detail chance="15" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25536"> <!-- Hannibal -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25539"> <!-- Typhoon -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25643"> <!-- Awakened Ancient Sentry -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25644"> <!-- Awakened Ancient Severer -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25645"> <!-- Awakened Ancient Soul Extractor -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25646"> <!-- Awakened Ancient Soul Devourer -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25647"> <!-- Awakened Ancient Fighter -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25648"> <!-- Awakened Ancient Fighter -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25649"> <!-- Awakened Ancient Executor -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25650"> <!-- Awakened Ancient Executor -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25651"> <!-- Awakened Ancient Prophet -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25652"> <!-- Awakened Ancient Prophet -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25665"> <!-- Yehan Klodekus -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25666"> <!-- Yehan Klanikus -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25690"> <!-- Aenkinel Lv 81 -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25691"> <!-- Aenkinel Lv 81 -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25692"> <!-- Aenkinel Lv 81 -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25693"> <!-- Aenkinel Lv 81 -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25694"> <!-- Aenkinel Lv 82 -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25695"> <!-- Aenkinel Lv 84 -->
<detail chance="20" absorbType="PARTY_ONE_RANDOM" levelList="12, 13" />
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="14" />
</item>
<item npcId="25667"> <!-- Cannibalistic Stakato Chief -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25668"> <!-- Cannibalistic Stakato Chief -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25669"> <!-- Cannibalistic Stakato Chief -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25670"> <!-- Cannibalistic Stakato Chief -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13" />
</item>
<item npcId="25609"> <!-- Epidos -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25610"> <!-- Epidos -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25611"> <!-- Epidos -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25612"> <!-- Epidos -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25162"> <!-- Giant Marpanak -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="25467"> <!-- Gorgolos -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11" />
</item>
<item npcId="29150"> <!-- Ekimus -->
<detail chance="10" absorbType="FULL_PARTY" levelList="12, 13, 14, 15" />
<detail chance="3" absorbType="FULL_PARTY" levelList="16" />
</item>
<item npcId="29163"> <!-- Tiat Attack stage -->
<detail chance="10" absorbType="FULL_PARTY" levelList="12, 13, 14, 15" />
<detail chance="3" absorbType="FULL_PARTY" levelList="16" />
</item>
<item npcId="25540"> <!-- Demon Prince -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25542"> <!-- Ranku -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25544"> <!-- Tully -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25674"> <!-- Gwindorr -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25680"> <!-- Giant Marpanak (82) -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25681"> <!-- Gorgolos (82) -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25684"> <!-- Last Titan Utenus -->
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="25687"> <!-- Hekaton Prime -->
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="10, 11, 12, 13, 14" />
</item>
<item npcId="29118"> <!-- Beleth -->
<detail chance="10" absorbType="FULL_PARTY" levelList="12, 13, 14, 15" />
<detail chance="1" absorbType="FULL_PARTY" levelList="16" />
</item>
<item npcId="25701"> <!-- Anais -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="12, 13" />
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="14" />
</item>
<item npcId="25677"> <!-- Water Spirit Lian -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="12, 13" />
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="14" />
</item>
<item npcId="25603"> <!-- Darion -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="12, 13" />
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="14" />
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="15" />
</item>
<item npcId="25671"> <!-- Queen Shyeed -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="12, 13" />
<detail chance="5" absorbType="PARTY_ONE_RANDOM" levelList="14" />
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="15" />
</item>
<item npcId="25713"> <!-- Darnel -->
<detail chance="1" absorbType="PARTY_ONE_RANDOM" levelList="12, 13, 14, 15" />
</item>
<item npcId="25714"> <!-- Kechi -->
<detail chance="1" absorbType="PARTY_ONE_RANDOM" levelList="12, 13, 14, 15" />
</item>
<item npcId="25716"> <!-- Tears -->
<detail chance="1" absorbType="PARTY_ONE_RANDOM" levelList="12, 13, 14, 15" />
</item>
<item npcId="25699"> <!-- Ice Knight Captain Normal Mode -->
<detail chance="10" absorbType="FULL_PARTY" levelList="12, 13" />
</item>
<item npcId="25700"> <!-- Ice Knight Captain Extreme Mode -->
<detail chance="20" absorbType="FULL_PARTY" levelList="12, 13, 14" />
</item>
<item npcId="25696"> <!-- Taklacan -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="12, 13, 14" />
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="15" />
</item>
<item npcId="25698"> <!-- Dopagen -->
<detail chance="10" absorbType="PARTY_ONE_RANDOM" levelList="12, 13, 14" />
<detail chance="3" absorbType="PARTY_ONE_RANDOM" levelList="15" />
</item>
<item npcId="29186"> <!-- Baylor -->
<detail chance="1" absorbType="PARTY_ONE_RANDOM" levelList="12, 13, 14, 15, 16" />
</item>
<item npcId="29047"> <!-- Scarlet van Halisha -->
<detail chance="100" absorbType="FULL_PARTY" levelList="12, 13" />
<detail chance="50" absorbType="FULL_PARTY" levelList="14" />
<detail chance="10" absorbType="FULL_PARTY" levelList="15" />
</item>
<item npcId="29179"> <!-- Freya Normal Mode -->
<detail chance="100" absorbType="FULL_PARTY" levelList="12, 13, 14" />
<detail chance="10" absorbType="FULL_PARTY" levelList="15" />
</item>
<item npcId="29180"> <!-- Freya Extreme Mode -->
<detail chance="100" absorbType="FULL_PARTY" levelList="12, 13, 14, 15" />
<detail chance="50" absorbType="FULL_PARTY" levelList="16, 17" />
</item>
<item npcId="29019"> <!-- Antharas -->
<detail chance="100" absorbType="FULL_PARTY" levelList="12, 13, 14, 15, 16" />
<detail chance="50" absorbType="FULL_PARTY" levelList="17" />
</item>
<item npcId="29066"> <!-- Antharas -->
<detail chance="100" absorbType="FULL_PARTY" levelList="12, 13, 14, 15, 16" />
<detail chance="50" absorbType="FULL_PARTY" levelList="17" />
</item>
<item npcId="29067"> <!-- Antharas -->
<detail chance="100" absorbType="FULL_PARTY" levelList="12, 13, 14, 15, 16" />
<detail chance="50" absorbType="FULL_PARTY" levelList="17" />
</item>
<item npcId="29068"> <!-- Antharas -->
<detail chance="100" absorbType="FULL_PARTY" levelList="12, 13, 14, 15, 16" />
<detail chance="50" absorbType="FULL_PARTY" levelList="17" />
</item>
<item npcId="29028"> <!-- Valakas -->
<detail chance="100" absorbType="FULL_PARTY" levelList="12, 13, 14, 15, 16" />
<detail chance="50" absorbType="FULL_PARTY" levelList="17" />
</item>
</npc>
</list>

View File

@@ -20,7 +20,6 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import com.l2jmobius.gameserver.enums.QuestSound; import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest; import com.l2jmobius.gameserver.model.quest.Quest;
@@ -28,7 +27,6 @@ import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State; import com.l2jmobius.gameserver.model.quest.State;
import quests.Q00140_ShadowFoxPart2.Q00140_ShadowFoxPart2; import quests.Q00140_ShadowFoxPart2.Q00140_ShadowFoxPart2;
import quests.Q00998_FallenAngelSelect.Q00998_FallenAngelSelect;
/** /**
* Shadow Fox - 3 (141) * Shadow Fox - 3 (141)
@@ -118,11 +116,12 @@ public class Q00141_ShadowFoxPart3 extends Quest
} }
qs.exitQuest(false, true); qs.exitQuest(false, true);
final Quest q = QuestManager.getInstance().getQuest(Q00998_FallenAngelSelect.class.getSimpleName()); // TODO: Check for new quests.
if (q != null) // final Quest q = QuestManager.getInstance().getQuest(Q00998_FallenAngelSelect.class.getSimpleName());
{ // if (q != null)
q.newQuestState(player).setState(State.STARTED); // {
} // q.newQuestState(player).setState(State.STARTED);
// }
break; break;
} }
default: default:

View File

@@ -1,5 +0,0 @@
<html><body>Jerian:<br>
Hm... Are you here to face Ranku and Demon Prince?<br>
You may want to listen to what I have to say.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00279_TargetOfOpportunity 32302-03.htm">Listen carefully.</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Jerian:<br>
Hm... Are you here to face Ranku and Demon Prince?<br>
Trust me, if I were you, I'd improve myself a little more first. Call it a little friendly advice on the house.<br>
(Only characters level 82 or above can take this quest.)
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Jerian:<br>
The <font color="LEVEL">Teleport Device</font> was created in order to transport visitors up to Ranku and Demon Prince instantly. It may sound strange, but it works rather well.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00279_TargetOfOpportunity 32302-04.htm">"So there is a way to move up the tower quickly."</Button>
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Jerian:<br>
Yes, there is a way to break through the Force Field. You need to defeat four particular beasts in a particular order to harness their aura and fool the Tower of Infinitum into believing you to be one of its denizens.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00279_TargetOfOpportunity 32302-05.html">Continue listening.</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Jerian:<br>
Alright, here's what you need to do. Defeat the <font color="LEVEL">Cosmic Scout, Cosmic Watcher, Cosmic Priest, and Cosmic Lord</font>. You will pick up a <font color="LEVEL">fragment of their essence</font> after defeating them. Assemble these parts and you will have a Seal Breaker, a stone that will allow you to travel directly to Ranku and Demon Prince by fooling the Tower's Seal into thinking you a devil.<br>
Bring the parts to me and I can convert them. Do you wish to enter now?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00279_TargetOfOpportunity enter">"Yes, let me go inside."</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Jerian:<br>
Defeat the <font color="LEVEL">Cosmic Scout, Cosmic Watcher, Cosmic Priest, and Cosmic Lord</font>. You will pick up a <font color="LEVEL">fragment of their essence</font> after defeating them. Assemble these parts and you will have a Seal Breaker, a stone that will allow you to travel directly to Ranku and Demon Prince by fooling the Tower's Seal into thinking you a devil.<br>
Bring the parts to me and I can convert them.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00279_TargetOfOpportunity enter">"Yes, let me go inside."</Button>
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Jerian:<br>
I hope you didn't come all the way back to me just to assemble the Seal Breaker. Ah well, you're here and I don't mind the visit, company is always pleasant. Give me the fragments and I'll make you a Seal Breaker.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00279_TargetOfOpportunity 32302-08.html">Hand over the fragments.</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Jerian:<br>
Wait a moment, please...<br>
<font color="LEVEL">(As Jerian chants a spell you've never heard, the four fragments begin to float in the air rotating around one another until coming together in a bright flash. When the light fades, you see a red and blue stone floating back into Jerian's hands. It is a complete Seal Breaker.)</font><br>
Here, it is complete. Remember though, you can only use it once. When you pass through the Force Field, it will shatter.<br>
Good bye and good luck.
</body></html>

View File

@@ -1,154 +0,0 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q00279_TargetOfOpportunity;
import java.util.Arrays;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* Target of Opportunity (279)
* @author GKR
*/
public final class Q00279_TargetOfOpportunity extends Quest
{
// NPCs
private static final int JERIAN = 32302;
private static final int[] MONSTERS =
{
22373,
22374,
22375,
22376
};
// Items
private static final int[] SEAL_COMPONENTS =
{
15517,
15518,
15519,
15520
};
private static final int[] SEAL_BREAKERS =
{
15515,
15516
};
public Q00279_TargetOfOpportunity()
{
super(279, Q00279_TargetOfOpportunity.class.getSimpleName(), "Target of Opportunity");
addStartNpc(JERIAN);
addTalkId(JERIAN);
addKillId(MONSTERS);
registerQuestItems(SEAL_COMPONENTS);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final String htmltext = event;
final QuestState qs = getQuestState(player, false);
if ((qs == null) || (player.getLevel() < 82))
{
return getNoQuestMsg(player);
}
if (event.equals("32302-05.html"))
{
qs.startQuest();
qs.set("progress", "1");
}
else if (event.equals("32302-08.html") && (qs.getInt("progress") == 1) && hasQuestItems(player, SEAL_COMPONENTS[0]) && hasQuestItems(player, SEAL_COMPONENTS[1]) && hasQuestItems(player, SEAL_COMPONENTS[2]) && hasQuestItems(player, SEAL_COMPONENTS[3]))
{
giveItems(player, SEAL_BREAKERS[0], 1);
giveItems(player, SEAL_BREAKERS[1], 1);
qs.exitQuest(true, true);
}
return htmltext;
}
@Override
public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final L2PcInstance pl = getRandomPartyMember(player, "progress", "1");
final int idx = Arrays.binarySearch(MONSTERS, npc.getId());
if ((pl == null) || (idx < 0))
{
return null;
}
final QuestState qs = getQuestState(pl, false);
if ((getRandom(1000) < (int) (311 * Config.RATE_QUEST_DROP)) && !hasQuestItems(player, SEAL_COMPONENTS[idx]))
{
giveItems(player, SEAL_COMPONENTS[idx], 1);
if (haveAllExceptThis(player, idx))
{
qs.setCond(2, true);
}
else
{
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
return null;
}
@Override
public final String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
if (qs == null)
{
return htmltext;
}
if (qs.getState() == State.CREATED)
{
htmltext = (player.getLevel() >= 82) ? "32302-01.htm" : "32302-02.html";
}
else if ((qs.getState() == State.STARTED) && (qs.getInt("progress") == 1))
{
htmltext = (hasQuestItems(player, SEAL_COMPONENTS[0]) && hasQuestItems(player, SEAL_COMPONENTS[1]) && hasQuestItems(player, SEAL_COMPONENTS[2]) && hasQuestItems(player, SEAL_COMPONENTS[3])) ? "32302-07.html" : "32302-06.html";
}
return htmltext;
}
private static boolean haveAllExceptThis(L2PcInstance player, int idx)
{
for (int i = 0; i < SEAL_COMPONENTS.length; i++)
{
if (i == idx)
{
continue;
}
if (!hasQuestItems(player, SEAL_COMPONENTS[i]))
{
return false;
}
}
return true;
}
}

View File

@@ -1,6 +0,0 @@
<html><body>Guard Rath:<br>
The population of lizardmen on the north side of Oren is mysteriously growing. This must be related to the increase in the power of evil since the release of Antharas. There have been wild rumors of ghastly ceremonies held in the forest at night! The lizardmen are most likely under the direct control of Shilen, and these rituals no doubt strengthen the power of Antharas.....<br>
In the midst of all this turmoil, the guild has asked me to make the roads safe for trade! No doubt they feel that their village is threatened.<br>
But this is Oren Territory, and there will be problems if we send regular troops in... The captain has ordered me to mobilize mercenaries to stabilize the area. Will you join us?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00300_HuntingLetoLizardman 30126-03.htm">"I'll do it."</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Guard Rath:<br>
The population of lizardmen north of Oren is mysteriously growing. This must be related to the increase in the power of evil since the release of Antharas. There have been wild rumors of ghastly ceremonies held in the forest at night! The lizardmen are most likely under the direct control of Shilen, and these rituals no doubt strengthen the power of Antharas.....<br>
In the midst of all this turmoil, the guild has asked me to make the roads safe for trade! No doubt they feel that their village is threatened.<br>
But this is Oren Territory, and there will be problems if we send regular troops in... The captain has ordered me to mobilize mercenaries to stabilize the area, but I'm afraid you're not up to the job.<br>
(This quest may only be undertaken by characters of level 34 or above.)
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Guard Rath:<br>
Destroy the lizardmen and take their bracelets as proof of your victory.<br>
Kill the <font color="LEVEL">Leto Lizardmen, Leto Lizardman Archers, Leto Lizardman Soldiers, Leto Lizardman Overlords', Leto Lizardman Warriors</font> and so on. Don't attack their shaman! It might cause them to stop the ritual before our investigation is complete. The ritual must not end until our investigation is complete!<br>
The guild had already sent me a reward for 60 bracelets. I'll give it to you as soon as you earn it.
</body></html>

View File

@@ -1,3 +0,0 @@
<html><body>Guard Rath:<br>
Please try harder! You must get rid of those filthy lizardmen who threaten trade between Aden and Oren.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Guard Rath:<br>
You're finished? Good work, but we're not done with those vile creatures yet! I'm sure the plains will be swarming with lizardmen again in a few short weeks. Now, let me count those bracelets.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00300_HuntingLetoLizardman 30126-06.html">"They're all there!"</Button>
</body></html>

View File

@@ -1,3 +0,0 @@
<html><body>Guard Rath:<br>
Feel free to come back and help us anytime! The life of a mercenary may not pay well, but it has its rewards! Please accept this token of our appreciation.
</body></html>

View File

@@ -1,3 +0,0 @@
<html><body>Guard Rath:<br>
I don't think so! You haven't brought enough! Bring 60 if you want a reward!
</body></html>

View File

@@ -1,181 +0,0 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q00300_HuntingLetoLizardman;
import java.util.HashMap;
import java.util.Map;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.itemcontainer.Inventory;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* Hunting Leto Lizardman (300)
* @author ivantotov
*/
public final class Q00300_HuntingLetoLizardman extends Quest
{
// NPCs
private static final int RATH = 30126;
// Items
private static final int BRACELET_OF_LIZARDMAN = 7139;
private static final ItemHolder REWARD_ADENA = new ItemHolder(Inventory.ADENA_ID, 30000);
private static final ItemHolder REWARD_ANIMAL_BONE = new ItemHolder(1872, 50);
private static final ItemHolder REWARD_ANIMAL_SKIN = new ItemHolder(1867, 50);
// Misc
private static final int MIN_LEVEL = 34;
private static final int REQUIRED_BRACELET_COUNT = 60;
// Monsters
private static final Map<Integer, Integer> MOBS_SAC = new HashMap<>();
static
{
MOBS_SAC.put(20577, 360); // Leto Lizardman
MOBS_SAC.put(20578, 390); // Leto Lizardman Archer
MOBS_SAC.put(20579, 410); // Leto Lizardman Soldier
MOBS_SAC.put(20580, 790); // Leto Lizardman Warrior
MOBS_SAC.put(20582, 890); // Leto Lizardman Overlord
}
public Q00300_HuntingLetoLizardman()
{
super(300, Q00300_HuntingLetoLizardman.class.getSimpleName(), "Hunting Leto Lizardman");
addStartNpc(RATH);
addTalkId(RATH);
addKillId(MOBS_SAC.keySet());
registerQuestItems(BRACELET_OF_LIZARDMAN);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30126-03.htm":
{
if (qs.isCreated())
{
qs.startQuest();
htmltext = event;
}
break;
}
case "30126-06.html":
{
if (getQuestItemsCount(player, BRACELET_OF_LIZARDMAN) >= REQUIRED_BRACELET_COUNT)
{
takeItems(player, BRACELET_OF_LIZARDMAN, -1);
final int rand = getRandom(1000);
if (rand < 500)
{
giveItems(player, REWARD_ADENA);
}
else if (rand < 750)
{
giveItems(player, REWARD_ANIMAL_SKIN);
}
else if (rand < 1000)
{
giveItems(player, REWARD_ANIMAL_BONE);
}
qs.exitQuest(true, true);
htmltext = event;
}
else
{
htmltext = "30126-07.html";
}
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final L2PcInstance partyMember = getRandomPartyMember(player, 1);
if (partyMember != null)
{
final QuestState qs = getQuestState(partyMember, false);
if (qs.isCond(1) && (getRandom(1000) < MOBS_SAC.get(npc.getId())))
{
giveItems(partyMember, BRACELET_OF_LIZARDMAN, 1);
if (getQuestItemsCount(partyMember, BRACELET_OF_LIZARDMAN) == REQUIRED_BRACELET_COUNT)
{
qs.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
}
return super.onKill(npc, player, isSummon);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
if (qs == null)
{
return htmltext;
}
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.getLevel() >= MIN_LEVEL) ? "30126-01.htm" : "30126-02.htm";
break;
}
case State.STARTED:
{
switch (qs.getCond())
{
case 1:
{
htmltext = "30126-04.html";
break;
}
case 2:
{
if (getQuestItemsCount(player, BRACELET_OF_LIZARDMAN) >= REQUIRED_BRACELET_COUNT)
{
htmltext = "30126-05.html";
}
break;
}
}
break;
}
}
return htmltext;
}
}

View File

@@ -1,5 +0,0 @@
<html><body>Leopold:<br>
Currently, the Black Lion mercenaries are working for the lord of Gludio. They are in charge of getting rid of the <font color="LEVEL">remnants of Ol Mahum</font>, who are still staying and causing problems in this land. They have been fighting against the remnants for several months.<br>
However, Ol Mahums are not savages like werewolves, but highly trained soldiers. They are very difficult to deal with, since they are well organized like regular armies.<br>A few days ago, our Black Lion troop was shamefully defeated in close battle with Ol Mahums on the outskirts of Gludin. Many brothers lost their lives in combat. We are short of troops until the second platoon returns from the Wastelands in the south. I am very worried ... We may have to recruit some good fighters who will fight with us ...<br>
(Quest for characters level 21 and above.)
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Leopold:<br>
Currently, the Black Lion mercenaries are working for the lord of Gludio. They are in charge of getting rid of the <font color="LEVEL">remnants of Ol Mahum</font>, who are still staying and causing problems in this land. They have been fighting against the remnants for several months.<br>
However, Ol Mahums are not savages like werewolves, but highly trained soldiers. They are very difficult to deal with, since they are well organized like regular armies.<br>
A few days ago, our Black Lion troop was shamefully defeated in a close battle with Ol Mahums on the outskirts of Gludin. Many brothers lost their lives in combat. We are short of troops until our brothers of the second platoon, who have been dispatched to the Wastelands in the south, return. So we have decided to recruit skilled fighters to temporarily fill our troop.<br>
From the scars on your armor and the way you hold your weapon, you seem like you have had a lot of experience on the field. What do you think? Won't you fight for the Black Lions? It is an opportunity to play a role in punishing the cruel Ol Mahum who have ruined this land.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-03.htm">Say you will fight</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Leopold:<br>
The Black Lion undoubtedly rewards its members according to skill and performance. You will be paid according to the number of enemies you kill. One condition, though, you must take the <font color="LEVEL">badge of ranking</font> as a token of proof.<br>
Ol Mahum use badges in the shape of a cross, taking after the foreign troops of Gracia. Patrols and guards have red, suppliers, officers, and shooters have blue, and the generals and captains have Black Cross Badges. Naturally, you will receive a higher award depending on the rank of the Ol Mahum you killed.<br>
If you display great skills on the battlefield, you can become an official member of the Black Lions. For this, you must gather <font color="LEVEL">100 badges of the Ol Mahum</font> to prove your skills.<br>
Currently, Ol Mahum are camping in the <font color="LEVEL">abandoned camp</font>. If you don't know how to get there, ask Guard Linus. Wonderful! Now get ready to depart, my comrade. Forward to victory!
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Leopold:<br>
Comrade, how is the situation on the battlefield? As you have no badge of the Ol Mahum in your hand, I see your performance has not been good. If you think fighting against the Ol Mahum is too difficult for you, you can always quit. It is better for both of us if you acknowledge your limits instead of aiming too high.<br>
If you are thinking of continuing to fight Ol Mahums, I will give you some advice. As I already told you, the Ol Mahum may seem like savage beasts, but they have an organization that has been trained as well as any country's official army. Ol Mahums will help companions in danger, so you may have to face several Ol Mahums at once.<br>
Unless you form a troop like them, you have no choice but to approach them carefully and use guerilla tactics to deal with them one at a time. Knights may say it is a dishonorable way to fight, but it's quite an effective method.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-07.html">Say you will quit</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-08.html">Say you will continue</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Leopold:<br>
Welcome, comrade of the sword! Seeing you safely return from the scene of battle gives me great joy. The badges of the enemy in your hand show that the goddess of victory has smiled upon you.<br>
I received a letter that the brothers of the second platoon, who were dispatched to the south part of Gludio, will return later than planned. I will need more of your services for the time being.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-07.html">Say you will quit</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-08.html">Say you will continue</Button>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Leopold:<br>
Welcome, my comrade of the sword! I congratulate you on your safe return. How was your performance on the battlefield?<br>
How truly amazing! You have really brought me 100 badges! Magnificent! As I promised, I acknowledge you a member of the Black Lions. Because of our current situation, we cannot give you a proper joining ceremony, but instead, I give you this mark. The mark shows that you are a member of the proud Black Lions.<br>
I received a letter that the brothers of the second platoon, who were dispatched to the south part of Gludio, will return later than planned. You must go back to the battlefield and fight, comrade of the sword!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-07.html">Say you will quit</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-08.html">Say you will continue</Button>
</body></html>

View File

@@ -1,3 +0,0 @@
<html><body>Leopold:<br>
I am sorry, but if this is truly your will, I cannot stop you. However, the ties made as brothers of the sword are not easily broken ... We will meet again someday. May the goddess of victory be with you in all the battlefields that you walk upon!!
</body></html>

View File

@@ -1,3 +0,0 @@
<html><body>Leopold:<br>
Please continue your services, comrade of the sword. May the goddess of victory guide your sword and staff!
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Leopold:<br>
Welcome, my comrade of the sword! I congratulate you on your safe return. How was your performance on the battlefield?<br>
How truly amazing! You brought back another hundred badges! Magnificent! Ha ha! You have already proven your skills and have been acknowledged as a member of the Black Lions, and yet you still amaze me!<br>
I received a letter that the brothers of the second platoon, who were dispatched to the south part of Gludio, will return later than planned. Our brothers here must hold on until they return. Go on back to the battlefield and fight, brother of the sword!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-07.html">Say you will quit</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00326_VanquishRemnants 30435-08.html">Say you will continue</Button>
</body></html>

View File

@@ -1,154 +0,0 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q00326_VanquishRemnants;
import java.util.HashMap;
import java.util.Map;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* Vanquish Remnants (326)
* @author xban1x
*/
public final class Q00326_VanquishRemnants extends Quest
{
// NPC
private static final int LEOPOLD = 30435;
// Items
private static final int RED_CROSS_BADGE = 1359;
private static final int BLUE_CROSS_BADGE = 1360;
private static final int BLACK_CROSS_BADGE = 1361;
private static final int BLACK_LION_MARK = 1369;
// Monsters
private static final Map<Integer, int[]> MONSTERS = new HashMap<>();
//@formatter:off
static
{
MONSTERS.put(20053, new int[] {61, RED_CROSS_BADGE}); // Ol Mahum Patrol
MONSTERS.put(20058, new int[] {61, RED_CROSS_BADGE}); // Ol Mahum Guard
MONSTERS.put(20061, new int[] {57, BLUE_CROSS_BADGE}); // Ol Mahum Remnants
MONSTERS.put(20063, new int[] {63, BLUE_CROSS_BADGE}); // Ol Mahum Shooter
MONSTERS.put(20066, new int[] {59, BLACK_CROSS_BADGE}); // Ol Mahum Captain
MONSTERS.put(20436, new int[] {55, BLUE_CROSS_BADGE}); // Ol Mahum Supplier
MONSTERS.put(20437, new int[] {59, RED_CROSS_BADGE}); // Ol Mahum Recruit
MONSTERS.put(20438, new int[] {60, BLACK_CROSS_BADGE}); // Ol Mahum General
MONSTERS.put(20439, new int[] {62, BLUE_CROSS_BADGE}); // Ol Mahum Officer
}
//@formatter:on
// Misc
private static final int MIN_LVL = 21;
public Q00326_VanquishRemnants()
{
super(326, Q00326_VanquishRemnants.class.getSimpleName(), "Vanquish Remnants");
addStartNpc(LEOPOLD);
addTalkId(LEOPOLD);
addKillId(MONSTERS.keySet());
registerQuestItems(RED_CROSS_BADGE, BLUE_CROSS_BADGE, BLACK_CROSS_BADGE);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
String htmltext = null;
if (qs != null)
{
switch (event)
{
case "30435-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "30435-07.html":
{
qs.exitQuest(true, true);
htmltext = event;
break;
}
case "30435-08.html":
{
htmltext = event;
break;
}
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isStarted() && (getRandom(100) < MONSTERS.get(npc.getId())[0]))
{
giveItems(killer, MONSTERS.get(npc.getId())[1], 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
return super.onKill(npc, killer, isSummon);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = null;
if (qs != null)
{
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.getLevel() >= MIN_LVL) ? "30435-02.htm" : "30435-01.htm";
break;
}
case State.STARTED:
{
final long red_badges = getQuestItemsCount(player, RED_CROSS_BADGE);
final long blue_badges = getQuestItemsCount(player, BLUE_CROSS_BADGE);
final long black_badges = getQuestItemsCount(player, BLACK_CROSS_BADGE);
final long sum = red_badges + blue_badges + black_badges;
if (sum > 0)
{
if ((sum >= 100) && !hasQuestItems(player, BLACK_LION_MARK))
{
giveItems(player, BLACK_LION_MARK, 1);
}
giveAdena(player, (red_badges * 46) + (blue_badges * 52) + (black_badges * 58) + ((sum >= 10) ? 4320 : 0), true);
takeItems(player, -1, RED_CROSS_BADGE, BLUE_CROSS_BADGE, BLACK_CROSS_BADGE);
htmltext = (sum >= 100) ? hasQuestItems(player, BLACK_LION_MARK) ? "30435-09.html" : "30435-06.html" : "30435-05.html";
}
else
{
htmltext = "30435-04.html";
}
break;
}
}
}
return htmltext;
}
}

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-02.htm">"Yes, I wish to learn more."</Button>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Grand Magister Jurek:<br>
I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-04.htm">"I will join your cause!"</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Grand Magister Jurek:<br>
You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-12.htm">Ask about the evil creatures from which you will collect souls.</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Grand Magister Jurek:<br>
Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-05.htm">Explanation of weapons enhancement</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Grand Magister Jurek:<br>
To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-06.htm">"How do I collect the souls of the evil ones?"</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Grand Magister Jurek:<br>
<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-07.htm">What are the precautions to take when collecting souls?"</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Grand Magister Jurek:<br>
The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-08.htm">Receive a soul crystal.</Button>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Grand Magister Jurek:<br>
Please choose one of the following three types of crystals:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-09.htm">Red Soul Crystal</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-10.htm">Green Soul Crystal</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-11.htm">Blue Soul Crystal</Button>
Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,11 +0,0 @@
<html><body>Grand Magister Jurek:<br>
From the following areas, which area's evil creatures would you like to obtain more information about?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-13.htm">Northern Oren</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-14.htm">Forest of Mirrors</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-15.htm">Cave of Giants</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-16.htm">Devastated Castle</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-17.htm">Tower of Insolence</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-18.htm">Lair of Antharas</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-19.htm">Eva's Underwater Garden</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-20.htm">Devil's Isle</Button>
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Grand Magister Jurek:<br>
It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Grand Magister Jurek:<br>
How is your mission going? Oh, I see that you need a new crystal!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-08.htm">"Yes, please, may I have another?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</Button>
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-02.htm">"Yes, I wish to learn more."</Button>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Master Gideon:<br>
I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-04.htm">"I will join your cause!"</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Master Gideon:<br>
You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-12.htm">Ask about the evil creatures from which you will collect souls.</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Master Gideon:<br>
Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-05.htm">Explanation of weapons enhancement</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Master Gideon:<br>
To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-06.htm">"How do I collect the souls of the evil ones?"</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Master Gideon:<br>
<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-07.htm">What are the precautions to take when collecting souls?"</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Master Gideon:<br>
The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-08.htm">Receive a soul crystal.</Button>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Master Gideon:<br>
Please choose one of the following three types of crystals:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-09.htm">Red Soul Crystal</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-10.htm">Green Soul Crystal</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-11.htm">Blue Soul Crystal</Button>
Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,11 +0,0 @@
<html><body>Master Gideon:<br>
From the following areas, which area's evil creatures would you like to obtain more information about?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-13.htm">Northern Oren</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-14.htm">Forest of Mirrors</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-15.htm">Cave of Giants</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-16.htm">Devastated Castle</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-17.htm">Tower of Insolence</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-18.htm">Lair of Antharas</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-19.htm">Eva's Underwater Garden</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-20.htm">Devil's Isle</Button>
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Master Gideon:<br>
It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Master Gideon:<br>
How is your mission going? Oh, I see that you need a new crystal!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-08.htm">"Yes, please, may I have another?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</Button>
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-02.htm">"Yes, I wish to learn more."</Button>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Magister Winonin:<br>
I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-04.htm">"I will join your cause!"</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Magister Winonin:<br>
You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-12.htm">Ask about the evil creatures from which you will collect souls.</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Magister Winonin:<br>
Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-05.htm">Explanation of weapons enhancement</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Magister Winonin:<br>
To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-06.htm">"How do I collect the souls of the evil ones?"</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Magister Winonin:<br>
<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-07.htm">What are the precautions to take when collecting souls?"</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Magister Winonin:<br>
The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-08.htm">Receive a soul crystal.</Button>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Magister Winonin:<br>
Please choose one of the following three types of crystals:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-09.htm">Red Soul Crystal</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-10.htm">Green Soul Crystal</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-11.htm">Blue Soul Crystal</Button>
Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
Next time we meet I hope you have gained more strength.
</body></html>

View File

@@ -1,11 +0,0 @@
<html><body>Magister Winonin:<br>
From the following areas, which area's evil creatures would you like to obtain more information about?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-13.htm">Northern Oren</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-14.htm">Forest of Mirrors</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-15.htm">Cave of Giants</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-16.htm">Devastated Castle</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-17.htm">Tower of Insolence</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-18.htm">Lair of Antharas</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-19.htm">Eva's Underwater Garden</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-20.htm">Devil's Isle</Button>
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Magister Winonin:<br>
It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Magister Winonin:<br>
How is your mission going? Oh, I see that you need a new crystal!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-08.htm">"Yes, please, may I have another?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</Button>
</body></html>

View File

@@ -1,657 +0,0 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q00350_EnhanceYourWeapon;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.logging.Level;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.model.AbsorberInfo;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
/**
* Enhance Your Weapon (350)
* @author Gigiikun
*/
public class Q00350_EnhanceYourWeapon extends Quest
{
private static enum AbsorbCrystalType
{
LAST_HIT,
FULL_PARTY,
PARTY_ONE_RANDOM,
PARTY_RANDOM
}
private static final class LevelingInfo
{
private final AbsorbCrystalType _absorbCrystalType;
private final boolean _isSkillNeeded;
private final int _chance;
public LevelingInfo(AbsorbCrystalType absorbCrystalType, boolean isSkillNeeded, int chance)
{
_absorbCrystalType = absorbCrystalType;
_isSkillNeeded = isSkillNeeded;
_chance = chance;
}
public final AbsorbCrystalType getAbsorbCrystalType()
{
return _absorbCrystalType;
}
public final int getChance()
{
return _chance;
}
public final boolean isSkillNeeded()
{
return _isSkillNeeded;
}
}
private static final class SoulCrystal
{
private final int _level;
private final int _itemId;
private final int _leveledItemId;
public SoulCrystal(int level, int itemId, int leveledItemId)
{
_level = level;
_itemId = itemId;
_leveledItemId = leveledItemId;
}
public final int getItemId()
{
return _itemId;
}
public final int getLevel()
{
return _level;
}
public final int getLeveledItemId()
{
return _leveledItemId;
}
}
// NPCs
private static final int[] STARTING_NPCS =
{
30115,
30856,
30194
};
// Items
private static final int RED_SOUL_CRYSTAL0_ID = 4629;
private static final int GREEN_SOUL_CRYSTAL0_ID = 4640;
private static final int BLUE_SOUL_CRYSTAL0_ID = 4651;
private static final Map<Integer, SoulCrystal> SOUL_CRYSTALS = new HashMap<>();
// <npcid, <level, LevelingInfo>>
private static final Map<Integer, Map<Integer, LevelingInfo>> NPC_LEVELING_INFO = new HashMap<>();
public Q00350_EnhanceYourWeapon()
{
super(350, Q00350_EnhanceYourWeapon.class.getSimpleName(), "Enhance Your Weapon");
addStartNpc(STARTING_NPCS);
addTalkId(STARTING_NPCS);
load();
for (int npcId : NPC_LEVELING_INFO.keySet())
{
addSkillSeeId(npcId);
addKillId(npcId);
}
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final String htmltext = event;
final QuestState qs = getQuestState(player, false);
if (event.endsWith("-04.htm"))
{
qs.startQuest();
}
else if (event.endsWith("-09.htm"))
{
giveItems(player, RED_SOUL_CRYSTAL0_ID, 1);
}
else if (event.endsWith("-10.htm"))
{
giveItems(player, GREEN_SOUL_CRYSTAL0_ID, 1);
}
else if (event.endsWith("-11.htm"))
{
giveItems(player, BLUE_SOUL_CRYSTAL0_ID, 1);
}
else if (event.equalsIgnoreCase("exit.htm"))
{
qs.exitQuest(true);
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
if (npc.isAttackable() && NPC_LEVELING_INFO.containsKey(npc.getId()))
{
levelSoulCrystals((L2Attackable) npc, killer);
}
return null;
}
@Override
public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon)
{
super.onSkillSee(npc, caster, skill, targets, isSummon);
if ((skill == null) || (skill.getId() != 2096))
{
return null;
}
if ((caster == null) || caster.isDead())
{
return null;
}
if (!npc.isAttackable() || npc.isDead() || !NPC_LEVELING_INFO.containsKey(npc.getId()))
{
return null;
}
try
{
((L2Attackable) npc).addAbsorber(caster);
}
catch (Exception e)
{
_log.log(Level.SEVERE, "", e);
}
return null;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
if (qs == null)
{
return htmltext;
}
if (qs.getState() == State.CREATED)
{
qs.set("cond", "0");
}
if (qs.getInt("cond") == 0)
{
htmltext = npc.getId() + "-01.htm";
}
else if (check(player))
{
htmltext = npc.getId() + "-03.htm";
}
else if (!hasQuestItems(player, RED_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, GREEN_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, BLUE_SOUL_CRYSTAL0_ID))
{
htmltext = npc.getId() + "-21.htm";
}
return htmltext;
}
private static boolean check(L2PcInstance player)
{
for (int i = 4629; i < 4665; i++)
{
if (hasQuestItems(player, i))
{
return true;
}
}
return false;
}
private static void exchangeCrystal(L2PcInstance player, L2Attackable mob, int takeid, int giveid, boolean broke)
{
L2ItemInstance Item = player.getInventory().destroyItemByItemId("SoulCrystal", takeid, 1, player, mob);
if (Item != null)
{
// Prepare inventory update packet
final InventoryUpdate playerIU = new InventoryUpdate();
playerIU.addRemovedItem(Item);
// Add new crystal to the killer's inventory
Item = player.getInventory().addItem("SoulCrystal", giveid, 1, player, mob);
playerIU.addItem(Item);
// Send a sound event and text message to the player
if (broke)
{
player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_BROKE_BECAUSE_IT_WAS_NOT_ABLE_TO_ENDURE_THE_SOUL_ENERGY);
}
else
{
player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_SUCCEEDED_IN_ABSORBING_A_SOUL);
}
// Send system message
final SystemMessage sms = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
sms.addItemName(giveid);
player.sendPacket(sms);
// Send inventory update packet
player.sendPacket(playerIU);
}
}
private static SoulCrystal getSCForPlayer(L2PcInstance player)
{
final QuestState qs = player.getQuestState(Q00350_EnhanceYourWeapon.class.getSimpleName());
if ((qs == null) || !qs.isStarted())
{
return null;
}
final L2ItemInstance[] inv = player.getInventory().getItems();
SoulCrystal ret = null;
for (L2ItemInstance item : inv)
{
final int itemId = item.getId();
if (!SOUL_CRYSTALS.containsKey(itemId))
{
continue;
}
if (ret != null)
{
return null;
}
ret = SOUL_CRYSTALS.get(itemId);
}
return ret;
}
private static boolean isPartyLevelingMonster(int npcId)
{
for (LevelingInfo li : NPC_LEVELING_INFO.get(npcId).values())
{
if (li.getAbsorbCrystalType() != AbsorbCrystalType.LAST_HIT)
{
return true;
}
}
return false;
}
private static void levelCrystal(L2PcInstance player, SoulCrystal sc, L2Attackable mob)
{
if ((sc == null) || !NPC_LEVELING_INFO.containsKey(mob.getId()))
{
return;
}
// If the crystal level is way too high for this mob, say that we can't increase it
if (!NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
{
player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_IS_REFUSING_TO_ABSORB_THE_SOUL);
return;
}
if (getRandom(100) <= NPC_LEVELING_INFO.get(mob.getId()).get(sc.getLevel()).getChance())
{
exchangeCrystal(player, mob, sc.getItemId(), sc.getLeveledItemId(), false);
}
else
{
player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_WAS_NOT_ABLE_TO_ABSORB_THE_SOUL);
}
}
/**
* Calculate the leveling chance of Soul Crystals based on the attacker that killed this L2Attackable
* @param mob
* @param killer The player that last killed this L2Attackable $ Rewrite 06.12.06 - Yesod $ Rewrite 08.01.10 - Gigiikun
*/
private static void levelSoulCrystals(L2Attackable mob, L2PcInstance killer)
{
// Only L2PcInstance can absorb a soul
if (killer == null)
{
mob.resetAbsorbList();
return;
}
final Map<L2PcInstance, SoulCrystal> players = new HashMap<>();
int maxSCLevel = 0;
// TODO: what if mob support last_hit + party?
if (isPartyLevelingMonster(mob.getId()) && (killer.getParty() != null))
{
// firts get the list of players who has one Soul Cry and the quest
for (L2PcInstance pl : killer.getParty().getMembers())
{
if (pl == null)
{
continue;
}
final SoulCrystal sc = getSCForPlayer(pl);
if (sc == null)
{
continue;
}
players.put(pl, sc);
if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
{
maxSCLevel = sc.getLevel();
}
}
}
else
{
final SoulCrystal sc = getSCForPlayer(killer);
if (sc != null)
{
players.put(killer, sc);
if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
{
maxSCLevel = sc.getLevel();
}
}
}
// Init some useful vars
final LevelingInfo mainlvlInfo = NPC_LEVELING_INFO.get(mob.getId()).get(maxSCLevel);
if (mainlvlInfo == null)
{
/* throw new NullPointerException("Target: "+mob+ " player: "+killer+" level: "+maxSCLevel); */
return;
}
// If this mob is not require skill, then skip some checkings
if (mainlvlInfo.isSkillNeeded())
{
// Fail if this L2Attackable isn't absorbed or there's no one in its _absorbersList
if (!mob.isAbsorbed() /* || _absorbersList == null */)
{
mob.resetAbsorbList();
return;
}
// Fail if the killer isn't in the _absorbersList of this L2Attackable and mob is not boss
final AbsorberInfo ai = mob.getAbsorbersList().get(killer.getObjectId());
boolean isSuccess = (ai != null) && (ai.getObjectId() == killer.getObjectId());
// Check if the soul crystal was used when HP of this L2Attackable wasn't higher than half of it
if ((ai != null) && (ai.getAbsorbedHp() > (mob.getMaxHp() / 2.0)))
{
isSuccess = false;
}
if (!isSuccess)
{
mob.resetAbsorbList();
return;
}
}
switch (mainlvlInfo.getAbsorbCrystalType())
{
case PARTY_ONE_RANDOM:
{
// This is a naive method for selecting a random member. It gets any random party member and
// then checks if the member has a valid crystal. It does not select the random party member
// among those who have crystals, only. However, this might actually be correct (same as retail).
if (killer.getParty() != null)
{
final L2PcInstance lucky = killer.getParty().getMembers().get(getRandom(killer.getParty().getMemberCount()));
levelCrystal(lucky, players.get(lucky), mob);
}
else
{
levelCrystal(killer, players.get(killer), mob);
}
break;
}
case PARTY_RANDOM:
{
if (killer.getParty() != null)
{
final List<L2PcInstance> luckyParty = new ArrayList<>(killer.getParty().getMembers());
while ((getRandom(100) < 33) && !luckyParty.isEmpty())
{
final L2PcInstance lucky = luckyParty.remove(getRandom(luckyParty.size()));
if (players.containsKey(lucky))
{
levelCrystal(lucky, players.get(lucky), mob);
}
}
}
else if (getRandom(100) < 33)
{
levelCrystal(killer, players.get(killer), mob);
}
break;
}
case FULL_PARTY:
{
if (killer.getParty() != null)
{
for (L2PcInstance pl : killer.getParty().getMembers())
{
levelCrystal(pl, players.get(pl), mob);
}
}
else
{
levelCrystal(killer, players.get(killer), mob);
}
break;
}
case LAST_HIT:
{
levelCrystal(killer, players.get(killer), mob);
break;
}
}
}
/**
* TODO: Implement using DocumentParser.
*/
private static void load()
{
try
{
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
factory.setIgnoringComments(true);
final File file = new File(Config.DATAPACK_ROOT, "LevelUpCrystalData.xml");
if (!file.exists())
{
_log.severe("[EnhanceYourWeapon] Missing LevelUpCrystalData.xml. The quest wont work without it!");
return;
}
final Document doc = factory.newDocumentBuilder().parse(file);
final Node first = doc.getFirstChild();
if ((first != null) && "list".equalsIgnoreCase(first.getNodeName()))
{
for (Node n = first.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("crystal".equalsIgnoreCase(n.getNodeName()))
{
for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
{
if ("item".equalsIgnoreCase(d.getNodeName()))
{
final NamedNodeMap attrs = d.getAttributes();
Node att = attrs.getNamedItem("itemId");
if (att == null)
{
_log.severe("[EnhanceYourWeapon] Missing itemId in Crystal List, skipping");
continue;
}
final int itemId = Integer.parseInt(attrs.getNamedItem("itemId").getNodeValue());
att = attrs.getNamedItem("level");
if (att == null)
{
_log.severe("[EnhanceYourWeapon] Missing level in Crystal List itemId: " + itemId + ", skipping");
continue;
}
final int level = Integer.parseInt(attrs.getNamedItem("level").getNodeValue());
att = attrs.getNamedItem("leveledItemId");
if (att == null)
{
_log.severe("[EnhanceYourWeapon] Missing leveledItemId in Crystal List itemId: " + itemId + ", skipping");
continue;
}
SOUL_CRYSTALS.put(itemId, new SoulCrystal(level, itemId, Integer.parseInt(attrs.getNamedItem("leveledItemId").getNodeValue())));
}
}
}
else if ("npc".equalsIgnoreCase(n.getNodeName()))
{
for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
{
if ("item".equalsIgnoreCase(d.getNodeName()))
{
NamedNodeMap attrs = d.getAttributes();
Node att = attrs.getNamedItem("npcId");
if (att == null)
{
_log.severe("[EnhanceYourWeapon] Missing npcId in NPC List, skipping");
continue;
}
final int npcId = Integer.parseInt(att.getNodeValue());
final Map<Integer, LevelingInfo> temp = new HashMap<>();
for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
{
boolean isSkillNeeded = false;
int chance = 5;
AbsorbCrystalType absorbType = AbsorbCrystalType.LAST_HIT;
if ("detail".equalsIgnoreCase(cd.getNodeName()))
{
attrs = cd.getAttributes();
att = attrs.getNamedItem("absorbType");
if (att != null)
{
absorbType = Enum.valueOf(AbsorbCrystalType.class, att.getNodeValue());
}
att = attrs.getNamedItem("chance");
if (att != null)
{
chance = Integer.parseInt(att.getNodeValue());
}
att = attrs.getNamedItem("skill");
if (att != null)
{
isSkillNeeded = Boolean.parseBoolean(att.getNodeValue());
}
final Node att1 = attrs.getNamedItem("maxLevel");
final Node att2 = attrs.getNamedItem("levelList");
if ((att1 == null) && (att2 == null))
{
_log.severe("[EnhanceYourWeapon] Missing maxlevel/levelList in NPC List npcId: " + npcId + ", skipping");
continue;
}
final LevelingInfo info = new LevelingInfo(absorbType, isSkillNeeded, chance);
if (att1 != null)
{
final int maxLevel = Integer.parseInt(att1.getNodeValue());
for (int i = 0; i <= maxLevel; i++)
{
temp.put(i, info);
}
}
else if (att2 != null)
{
final StringTokenizer st = new StringTokenizer(att2.getNodeValue(), ",");
final int tokenCount = st.countTokens();
for (int i = 0; i < tokenCount; i++)
{
Integer value = Integer.decode(st.nextToken().trim());
if (value == null)
{
_log.severe("[EnhanceYourWeapon] Bad Level value!! npcId: " + npcId + " token: " + i);
value = 0;
}
temp.put(value, info);
}
}
}
}
if (temp.isEmpty())
{
_log.severe("[EnhanceYourWeapon] No leveling info for npcId: " + npcId + ", skipping");
continue;
}
NPC_LEVELING_INFO.put(npcId, temp);
}
}
}
}
}
}
catch (Exception e)
{
_log.log(Level.WARNING, "[EnhanceYourWeapon] Could not parse LevelUpCrystalData.xml file: " + e.getMessage(), e);
}
_log.info("[EnhanceYourWeapon] Loaded " + SOUL_CRYSTALS.size() + " Soul Crystal data.");
_log.info("[EnhanceYourWeapon] Loaded " + NPC_LEVELING_INFO.size() + " npc Leveling info data.");
}
}

View File

@@ -1,2 +0,0 @@
<html><body>Goodbye
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Warehouse Keeper Silva:<br>
I'm sorry, customer. I am so busy with the work Sorint tasked me with that I don't have any time to talk about a contract right now. Will you come see me again? (Hmph! I don't have time for lowly 2nd class adventurers!)<br>
(Only characters who are level 47 or higher may undertake this quest.)
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Warehouse Keeper Silva:<br>
Hey, are you perhaps an adventurer? If so, would you come here for a minute?<br>
Let me tell you about a new credit loan service introduced by the Iron Gate Guild. It's a great opportunity for you to receive various benefits. Come this way and I'll tell you more...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00357_WarehouseKeepersAmbition 30686-03.htm">Listen</Button>
</body></html>

View File

@@ -1,5 +0,0 @@
<html><body>Warehouse Keeper Silva:<br>
Shh! Keep your voice down! We don't want old man Sorint to hear this...<br>
OK, let's talk. Sorry, that talk about a loan service wasn't true -- I needed to get you alone without anyone getting suspicious. The truth is that I need to hire an adventurer like you... I need a partner for a...private business...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00357_WarehouseKeepersAmbition 30686-04.htm">"What kind of business?"</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Warehouse Keeper Silva:<br>
What kind of business? Eh... Well, I suppose there's no reason why I shouldn't talk to you about this.<br>
The warehouse chief over there has announced that he plans to retire next year. Either old man Sorint or I will succeed him -- he will choose the one who makes the most profit running a side business between now and next year.<br>
My chance has come at last! I'm tired of toiling away here when I should be in charge, and I'll be darned if I'm passed over for that incompetent fool Sorint.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00357_WarehouseKeepersAmbition 30686-05.htm">"Hey, be careful! Sorint might hear you..."</Button>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Warehouse Keeper Silva:<br>
Oh! Yes, I got a little too excited there!<br>
Ah... Mr. Sorint, I was just speaking with this customer. Nothing to worry about, sir!<br>
Oh! What a stupid old man... Anyway, what I need from you is very simple: <font color="LEVEL">Jade</font>. It's become very popular for jewelry among Aden noblewomen these days! I will reward you for any Jades you bring me. <font color="LEVEL">Bring more than 100 at once and I'll give you an additional bonus.</font> How about it? Simple, eh?<br>
To find Jades, go to the <font color="LEVEL">Enchanted Valley</font> and hunt <font color="LEVEL">Forest Runners, Fline Elders, Liele Elders, and Valley Treant Elders</font>. Got it?<br>
That's a dangerous place these days, so you should probably <font color="LEVEL">recruit a few trusted friends to help. Not too many! But don't try to go alone, OK?</font>
</body></html>

View File

@@ -1,7 +0,0 @@
<html><body>Warehouse Keeper Silva:<br>
Customer, please wait a minute! Yes, Mr. Sorint? Would you like a cup of tea? No? Then, customer, please come this way...<br>
Oh, that stupid old man is always absorbed in his coin collection. That's why he's so slow...<br>
Okay, did you bring some Jades? Wha...why are you here empty-handed? I already told you what to do! Go to the <font color="LEVEL">Enchanted Valley</font> and hunt <font color="LEVEL">Forest Runners, Fline Elders, Liele Elders, and Valley Treant Elders</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00357_WarehouseKeepersAmbition 30686-10.html">Keep hunting.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00357_WarehouseKeepersAmbition 30686-11.html">Say you want to quit.</Button>
</body></html>

Some files were not shown because too many files have changed in this diff Show More