Free version update 14-12-2023.

This commit is contained in:
MobiusDevelopment
2023-12-14 02:11:28 +02:00
parent 6a0a4be1ea
commit 1204ad8e00
6352 changed files with 98838 additions and 68045 deletions

View File

@@ -1,48 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/ActionData.xsd">
<action id="0" handler="SitStand" />
<action id="1" handler="RunWalk" />
<action id="10" handler="PrivateStore" option="1" /> <!-- Private Store Sell -->
<action id="0" handler="SitStand" /> <!-- Sit / Stand -->
<action id="1" handler="RunWalk" /> <!-- Walk / Run -->
<action id="2" handler="None" /> <!-- Attack -->
<action id="3" handler="None" /> <!-- Trade -->
<action id="4" handler="None" /> <!-- Next Target (Melee) -->
<action id="5" handler="None" /> <!-- Pick Up -->
<action id="6" handler="None" /> <!-- Assist -->
<action id="7" handler="None" /> <!-- Invite -->
<action id="8" handler="None" /> <!-- Leave Party -->
<action id="9" handler="None" /> <!-- Dismiss Party Member -->
<action id="10" handler="PrivateStore" option="1" /> <!-- Private Store - Sell -->
<action id="12" handler="SocialAction" option="2" /> <!-- Greeting -->
<action id="13" handler="SocialAction" option="3" /> <!-- Victory -->
<action id="14" handler="SocialAction" option="4" /> <!-- Advance -->
<action id="15" handler="PetHold" /> <!-- Change Movement Mode -->
<action id="16" handler="PetAttack" /> <!-- Attack -->
<action id="17" handler="PetStop" /> <!-- Stop -->
<action id="19" handler="UnsummonPet" />
<action id="21" handler="ServitorHold" /> <!-- Change Movement Mode -->
<action id="22" handler="ServitorAttack" /> <!-- Attack -->
<action id="23" handler="ServitorStop" /> <!-- Stop -->
<action id="24" handler="SocialAction" option="6" /> <!-- Yes -->
<action id="25" handler="SocialAction" option="5" /> <!-- No -->
<action id="16" handler="PetAttack" /> <!-- Pet's Attack -->
<action id="17" handler="PetStop" /> <!-- Stop Pet -->
<action id="19" handler="UnsummonPet" /> <!-- Recall Pet -->
<action id="20" handler="None" /> <!-- Special skill -->
<action id="21" handler="ServitorHold" /> <!-- Change Servitor's Movement Mode -->
<action id="22" handler="ServitorAttack" /> <!-- Servitor's attack -->
<action id="23" handler="ServitorStop" /> <!-- Stop Servitor -->
<action id="26" handler="SocialAction" option="7" /> <!-- Bow -->
<action id="28" handler="PrivateStore" option="3" /> <!-- Private Store Buy -->
<action id="29" handler="SocialAction" option="8" /> <!-- Unaware -->
<action id="30" handler="SocialAction" option="9" /> <!-- Social Waiting -->
<action id="31" handler="SocialAction" option="10" /> <!-- Laugh -->
<action id="32" handler="ServitorSkillUse" option="4230" /> <!-- Wild Hog Cannon - Wild Cannon -->
<action id="33" handler="SocialAction" option="11" /> <!-- Applaud -->
<action id="27" handler="None" /> <!-- Special skill -->
<action id="28" handler="PrivateStore" option="3" /> <!-- Private Store - Buy -->
<action id="32" handler="ServitorSkillUse" option="4230" /> <!-- Switch Mode -->
<action id="34" handler="SocialAction" option="12" /> <!-- Dance -->
<action id="35" handler="SocialAction" option="13" /> <!-- Sorrow -->
<action id="36" handler="ServitorSkillUse" option="4259" /> <!-- Soulless - Toxic Smoke -->
<action id="37" handler="PrivateStore" option="5" /> <!-- Dwarven Manufacture -->
<action id="39" handler="ServitorSkillUse" option="4138" /> <!-- Soulless - Parasite Burst -->
<action id="41" handler="ServitorSkillUse" option="4230" /> <!-- Wild Hog Cannon - Attack -->
<action id="42" handler="ServitorSkillUse" option="4378" /> <!-- Kai the Cat - Self Damage Shield -->
<action id="43" handler="ServitorSkillUse" option="4137" /> <!-- Unicorn Merrow - Hydro Screw -->
<action id="44" handler="ServitorSkillUse" option="4139" /> <!-- Big Boom - Boom Attack -->
<action id="45" handler="ServitorSkillUse" option="4025" /> <!-- Unicorn Boxer - Master Recharge -->
<action id="46" handler="ServitorSkillUse" option="4261" /> <!-- Mew the Cat - Mega Storm Strike -->
<action id="47" handler="ServitorSkillUse" option="4260" /> <!-- Silhouette - Steal Blood -->
<action id="48" handler="ServitorSkillUse" option="4068" /> <!-- Mechanic Golem - Mech. Cannon -->
<action id="52" handler="UnsummonServitor" />
<action id="53" handler="ServitorMove" /> <!-- Move to target -->
<action id="54" handler="PetMove" /> <!-- Move to target -->
<action id="61" handler="PrivateStore" option="8" /> <!-- Private Store Package Sell -->
<action id="62" handler="SocialAction" option="14" /> <!-- Charm -->
<action id="64" handler="TeleportBookmark" />
<action id="65" handler="BotReport" />
<action id="66" handler="SocialAction" option="15" /> <!-- Shyness -->
<action id="36" handler="ServitorSkillUse" option="4259" /> <!-- Toxic Smoke -->
<action id="37" handler="PrivateStore" option="5" /> <!-- Dwarven Workshop -->
<action id="38" handler="Ride" /> <!-- Mount/Dismount -->
<action id="39" handler="ServitorSkillUse" option="4138" /> <!-- Parasite Burst -->
<action id="40" handler="None" /> <!-- Recommend -->
<action id="41" handler="ServitorSkillUse" option="4230" /> <!-- Wild Cannon -->
<action id="42" handler="ServitorSkillUse" option="4378" /> <!-- Personal Damage Shield -->
<action id="43" handler="ServitorSkillUse" option="4137" /> <!-- Water Pit -->
<action id="44" handler="ServitorSkillUse" option="4139" /> <!-- Booming Attack -->
<action id="45" handler="ServitorSkillUse" option="4025" /> <!-- Master Recharge -->
<action id="46" handler="ServitorSkillUse" option="4261" /> <!-- Mega Storm Strike -->
<action id="47" handler="ServitorSkillUse" option="4260" /> <!-- Steal Blood -->
<action id="48" handler="ServitorSkillUse" option="4068" /> <!-- Mechanical Cannon -->
<action id="49" handler="ServitorSkillUse" option="4032" /> <!-- Wild Temper -->
<action id="50" handler="None" /> <!-- Change Party Leader -->
<action id="52" handler="UnsummonServitor" /> <!-- Unsummon -->
<action id="53" handler="ServitorMove" /> <!-- Move -->
<action id="56" handler="None" /> <!-- Command Channel Invite -->
<action id="64" handler="TeleportBookmark" /> <!-- My Teleport -->
<action id="67" handler="AirshipAction" option="1" /> <!-- Steer -->
<action id="68" handler="AirshipAction" option="2" /> <!-- Cancel Control -->
<action id="69" handler="AirshipAction" option="3" /> <!-- Destination Map -->
@@ -50,175 +50,203 @@
<action id="71" handler="SocialAction" option="16" /> <!-- Exchange Bows -->
<action id="72" handler="SocialAction" option="17" /> <!-- High Five -->
<action id="73" handler="SocialAction" option="18" /> <!-- Couple Dance -->
<action id="78" handler="TacticalSignUse" option="1" /> <!-- Token 1: Star -->
<action id="79" handler="TacticalSignUse" option="2" /> <!-- Token 2: Heart -->
<action id="80" handler="TacticalSignUse" option="3" /> <!-- Token 3: Moon -->
<action id="81" handler="TacticalSignUse" option="4" /> <!-- Token 4: Cross -->
<action id="82" handler="TacticalSignTarget" option="1" /> <!-- Token 1: Star -->
<action id="83" handler="TacticalSignTarget" option="2" /> <!-- Token 2: Heart -->
<action id="84" handler="TacticalSignTarget" option="3" /> <!-- Token 3: Moon -->
<action id="85" handler="TacticalSignTarget" option="4" /> <!-- Token 4: Cross -->
<action id="87" handler="SocialAction" option="28" /> <!-- Propose -->
<action id="88" handler="SocialAction" option="29" /> <!-- Provoke -->
<action id="89" handler="SocialAction" option="30" /> <!-- Beauty Shop -->
<action id="90" handler="InstanceZoneInfo" />
<action id="1000" handler="ServitorSkillUse" option="4079" /> <!-- Siege Golem - Siege Hammer -->
<action id="1003" handler="PetSkillUse" option="4710" /> <!-- Wind Hatchling/Strider - Wild Stun -->
<action id="1004" handler="PetSkillUse" option="4711" /> <!-- Wind Hatchling/Strider - Wild Defense -->
<action id="1005" handler="PetSkillUse" option="4712" /> <!-- Star Hatchling/Strider - Bright Burst -->
<action id="1006" handler="PetSkillUse" option="4713" /> <!-- Star Hatchling/Strider - Bright Heal -->
<action id="1007" handler="ServitorSkillUse" option="4699" /> <!-- Cat Queen - Blessing of Queen -->
<action id="1008" handler="ServitorSkillUse" option="4700" /> <!-- Cat Queen - Gift of Queen -->
<action id="1009" handler="ServitorSkillUse" option="4701" /> <!-- Cat Queen - Cure of Queen -->
<action id="1010" handler="ServitorSkillUse" option="4702" /> <!-- Unicorn Seraphim - Blessing of Seraphim -->
<action id="1011" handler="ServitorSkillUse" option="4703" /> <!-- Unicorn Seraphim - Gift of Seraphim -->
<action id="1012" handler="ServitorSkillUse" option="4704" /> <!-- Unicorn Seraphim - Cure of Seraphim -->
<action id="1013" handler="ServitorSkillUse" option="4705" /> <!-- Nightshade - Curse of Shade -->
<action id="1014" handler="ServitorSkillUse" option="4706" /> <!-- Nightshade - Mass Curse of Shade -->
<action id="1015" handler="ServitorSkillUse" option="50094" /> <!-- Nightshade - Shadow's Despair -->
<action id="1016" handler="ServitorSkillUse" option="4709" /> <!-- Cursed Man - Cursed Blow -->
<action id="1017" handler="ServitorSkillUse" option="4708" /> <!-- Cursed Man - Cursed Strike/Stun -->
<action id="1031" handler="ServitorSkillUse" option="5135" /> <!-- Feline King - Slash -->
<action id="1032" handler="ServitorSkillUse" option="5136" /> <!-- Feline King - Spinning Slash -->
<action id="1033" handler="ServitorSkillUse" option="5137" /> <!-- Feline King - Grip of the Cat -->
<action id="1034" handler="ServitorSkillUse" option="5138" /> <!-- Magnus the Unicorn - Whiplash -->
<action id="1035" handler="ServitorSkillUse" option="5139" /> <!-- Magnus the Unicorn - Tridal Wave -->
<action id="1036" handler="ServitorSkillUse" option="5142" /> <!-- Spectral Lord - Corpse Kaboom -->
<action id="1037" handler="ServitorSkillUse" option="5141" /> <!-- Spectral Lord - Dicing Death -->
<action id="1038" handler="ServitorSkillUse" option="5140" /> <!-- Spectral Lord - Force Curse -->
<action id="1039" handler="ServitorSkillUse" option="5110" /> <!-- Swoop Cannon - Cannon Fodder -->
<action id="1040" handler="ServitorSkillUse" option="5111" /> <!-- Swoop Cannon - Big Bang -->
<action id="1041" handler="PetSkillUse" option="5442" /> <!-- Great Wolf - Bite Attack -->
<action id="1042" handler="PetSkillUse" option="5444" /> <!-- Great Wolf - Maul -->
<action id="1043" handler="PetSkillUse" option="5443" /> <!-- Great Wolf - Cry of the Wolf -->
<action id="1044" handler="PetSkillUse" option="5445" /> <!-- Great Wolf - Awakening -->
<action id="1045" handler="PetSkillUse" option="5584" /> <!-- Great Wolf - Howl -->
<action id="1046" handler="PetSkillUse" option="5585" /> <!-- Strider - Roar -->
<action id="1047" handler="ServitorSkillUse" option="5580" /> <!-- Divine Beast - Bite -->
<action id="1048" handler="ServitorSkillUse" option="5581" /> <!-- Divine Beast - Stun Attack -->
<action id="1049" handler="ServitorSkillUse" option="5582" /> <!-- Divine Beast - Fire Breath -->
<action id="1050" handler="ServitorSkillUse" option="5583" /> <!-- Divine Beast - Roar -->
<action id="1051" handler="ServitorSkillUse" option="5638" /> <!-- Feline Queen - Bless The Body -->
<action id="1052" handler="ServitorSkillUse" option="5639" /> <!-- Feline Queen - Bless The Soul -->
<action id="1053" handler="ServitorSkillUse" option="5640" /> <!-- Feline Queen - Haste -->
<action id="1054" handler="ServitorSkillUse" option="5643" /> <!-- Unicorn Seraphim - Acumen -->
<action id="1055" handler="ServitorSkillUse" option="5647" /> <!-- Unicorn Seraphim - Clarity -->
<action id="1056" handler="ServitorSkillUse" option="5648" /> <!-- Unicorn Seraphim - Empower -->
<action id="1057" handler="ServitorSkillUse" option="5646" /> <!-- Unicorn Seraphim - Wild Magic -->
<action id="1058" handler="ServitorSkillUse" option="5652" /> <!-- Nightshade - Death Whisper -->
<action id="1059" handler="ServitorSkillUse" option="5653" /> <!-- Nightshade - Focus -->
<action id="1060" handler="ServitorSkillUse" option="5654" /> <!-- Nightshade - Guidance -->
<action id="1061" handler="PetSkillUse" option="5745" /> <!-- Wild Beast Fighter, White Weasel - Death blow -->
<action id="1062" handler="PetSkillUse" option="5746" /> <!-- Wild Beast Fighter - Double attack -->
<action id="1063" handler="PetSkillUse" option="5747" /> <!-- Wild Beast Fighter - Spin attack -->
<action id="1064" handler="PetSkillUse" option="5748" /> <!-- Wild Beast Fighter - Meteor Shower -->
<action id="1065" handler="PetSkillUse" option="5753" /> <!-- Fox Shaman, Wild Beast Fighter, White Weasel, Fairy Princess - Awakening -->
<action id="1066" handler="PetSkillUse" option="5749" /> <!-- Fox Shaman, Spirit Shaman - Thunder Bolt -->
<action id="1067" handler="PetSkillUse" option="5750" /> <!-- Fox Shaman, Spirit Shaman - Flash -->
<action id="1068" handler="PetSkillUse" option="5751" /> <!-- Fox Shaman, Spirit Shaman - Lightning Wave -->
<action id="1069" handler="PetSkillUse" option="5752" /> <!-- Fox Shaman, Fairy Princess - Flare -->
<action id="1070" handler="PetSkillUse" option="5771" /> <!-- White Weasel, Fairy Princess, Improved Baby Buffalo, Improved Baby Kookaburra, Improved Baby Cougar, Spirit Shaman, Toy Knight, Turtle Ascetic - Buff control -->
<action id="1071" handler="ServitorSkillUse" option="5761" /> <!-- Tigress - Power Strike -->
<action id="1072" handler="PetSkillUse" option="6046" /> <!-- Toy Knight - Piercing attack -->
<action id="1073" handler="PetSkillUse" option="6047" /> <!-- Toy Knight - Whirlwind -->
<action id="1074" handler="PetSkillUse" option="6048" /> <!-- Toy Knight - Lance Smash -->
<action id="1075" handler="PetSkillUse" option="6049" /> <!-- Toy Knight - Battle Cry -->
<action id="1076" handler="PetSkillUse" option="6050" /> <!-- Turtle Ascetic - Power Smash -->
<action id="1077" handler="PetSkillUse" option="6051" /> <!-- Turtle Ascetic - Energy Burst -->
<action id="1078" handler="PetSkillUse" option="6052" /> <!-- Turtle Ascetic - Shockwave -->
<action id="1079" handler="PetSkillUse" option="6053" /> <!-- Turtle Ascetic - Howl -->
<action id="1080" handler="ServitorSkillUse" option="6041" /> <!-- Phoenix Rush -->
<action id="1081" handler="ServitorSkillUse" option="6042" /> <!-- Phoenix Cleanse -->
<action id="1082" handler="ServitorSkillUse" option="6043" /> <!-- Phoenix Flame Feather -->
<action id="1083" handler="ServitorSkillUse" option="6044" /> <!-- Phoenix Flame Beak -->
<action id="1084" handler="PetSkillUse" option="6054" /> <!-- Switch State -->
<action id="89" handler="SocialAction" option="30" /> <!-- Show Off -->
<action id="93" handler="None" /> <!-- Next Target (Range) -->
<action id="96" handler="None" /> <!-- Strike Back -->
<action id="97" handler="None" /> <!-- Combat Mode -->
<action id="98" handler="None" /> <!-- Disapproval -->
<action id="99" handler="None" /> <!-- Share location -->
<action id="100" handler="None" /> <!-- Party/Command Channel Request -->
<action id="1000" handler="ServitorSkillUse" option="4079" /> <!-- Siege Hammer -->
<action id="1001" handler="None" /> <!-- Ultimate Bombastic Buster -->
<action id="1002" handler="PetSkillUse" option="4123" /> <!-- Hostile Feeling -->
<action id="1003" handler="PetSkillUse" option="4710" /> <!-- Wild Stun -->
<action id="1004" handler="PetSkillUse" option="4711" /> <!-- Wild Defense -->
<action id="1005" handler="PetSkillUse" option="4712" /> <!-- Bright Burst -->
<action id="1006" handler="PetSkillUse" option="4713" /> <!-- Bright Heal -->
<action id="1007" handler="ServitorSkillUse" option="4699" /> <!-- Queen's Blessing -->
<action id="1008" handler="ServitorSkillUse" option="4700" /> <!-- Queen's Gift -->
<action id="1009" handler="ServitorSkillUse" option="4701" /> <!-- Queen's Cure -->
<action id="1010" handler="ServitorSkillUse" option="4702" /> <!-- Seraphim's Blessing -->
<action id="1011" handler="ServitorSkillUse" option="4703" /> <!-- Seraphim's Gift -->
<action id="1012" handler="ServitorSkillUse" option="4704" /> <!-- Seraphim's Cure -->
<action id="1013" handler="ServitorSkillUse" option="4705" /> <!-- Shadow's Curse -->
<action id="1014" handler="ServitorSkillUse" option="4706" /> <!-- Shadow's Mass Curse -->
<action id="1015" handler="ServitorSkillUse" option="50094" /> <!-- Shadow's Despair -->
<action id="1016" handler="ServitorSkillUse" option="4709" /> <!-- Cursed Blow -->
<action id="1017" handler="ServitorSkillUse" option="4708" /> <!-- Cursed Strike -->
<!-- TODO: Find skill ids. -->
<action id="1018" handler="ServitorSkillUse" option="0" /> <!-- Cursed HP Draining -->
<action id="1019" handler="ServitorSkillUse" option="0" /> <!-- Kat the Cat's Skill 2 -->
<action id="1020" handler="ServitorSkillUse" option="0" /> <!-- Mew the Cat's Skill 2 -->
<action id="1021" handler="ServitorSkillUse" option="0" /> <!-- Kai the Cat's Skill 2 -->
<action id="1022" handler="ServitorSkillUse" option="0" /> <!-- Boxer the Unicorn's Skill 2 -->
<action id="1023" handler="ServitorSkillUse" option="0" /> <!-- Mirage the Unicorn's Skill 2 -->
<action id="1024" handler="ServitorSkillUse" option="0" /> <!-- Merrow the Unicorn's Skill 2 -->
<action id="1025" handler="ServitorSkillUse" option="0" /> <!-- Shadow's Skill 1 -->
<action id="1026" handler="ServitorSkillUse" option="0" /> <!-- Shadow's Skill 2 -->
<action id="1027" handler="ServitorSkillUse" option="0" /> <!-- Silhouette's Skill -->
<action id="1028" handler="ServitorSkillUse" option="0" /> <!-- Reanimated Man's Skill 1 -->
<action id="1029" handler="ServitorSkillUse" option="0" /> <!-- Reanimated Man's Skill 2 -->
<action id="1030" handler="ServitorSkillUse" option="0" /> <!-- Corrupted Man's Skill 2 -->
<action id="1031" handler="ServitorSkillUse" option="5135" /> <!-- Slash -->
<action id="1032" handler="ServitorSkillUse" option="5136" /> <!-- Spin Slash -->
<action id="1033" handler="ServitorSkillUse" option="5137" /> <!-- Cat's Grip -->
<action id="1034" handler="ServitorSkillUse" option="5138" /> <!-- Whiplash -->
<action id="1035" handler="ServitorSkillUse" option="5139" /> <!-- Tidal Wave -->
<action id="1036" handler="ServitorSkillUse" option="5142" /> <!-- Corpse Burst -->
<action id="1037" handler="ServitorSkillUse" option="5141" /> <!-- Dicing Death -->
<action id="1038" handler="ServitorSkillUse" option="5140" /> <!-- Dark Curse -->
<action id="1039" handler="ServitorSkillUse" option="5110" /> <!-- Cannon Fodder -->
<action id="1040" handler="ServitorSkillUse" option="5111" /> <!-- Big Bang -->
<action id="1041" handler="PetSkillUse" option="5442" /> <!-- Bite Attack -->
<action id="1042" handler="PetSkillUse" option="5444" /> <!-- Tearing Blow -->
<action id="1043" handler="PetSkillUse" option="5443" /> <!-- Wolf Cry -->
<action id="1044" handler="PetSkillUse" option="5445" /> <!-- Awakening -->
<action id="1045" handler="PetSkillUse" option="5584" /> <!-- Wolf Howl -->
<action id="1046" handler="PetSkillUse" option="5585" /> <!-- Strider Roar -->
<action id="1047" handler="ServitorSkillUse" option="5580" /> <!-- Divine Beast's Bite -->
<action id="1048" handler="ServitorSkillUse" option="5581" /> <!-- Divine Beast's Stun Attack -->
<action id="1049" handler="ServitorSkillUse" option="5582" /> <!-- Divine Beast's Fire Breath -->
<action id="1050" handler="ServitorSkillUse" option="5583" /> <!-- Divine Beast's Roar -->
<action id="1051" handler="ServitorSkillUse" option="5638" /> <!-- Blessed Body -->
<action id="1052" handler="ServitorSkillUse" option="5639" /> <!-- Blessed Soul -->
<action id="1053" handler="ServitorSkillUse" option="5640" /> <!-- Haste -->
<action id="1054" handler="ServitorSkillUse" option="5643" /> <!-- Acumen -->
<action id="1055" handler="ServitorSkillUse" option="5647" /> <!-- Clarity -->
<action id="1056" handler="ServitorSkillUse" option="5648" /> <!-- Empower -->
<action id="1057" handler="ServitorSkillUse" option="5646" /> <!-- Wild Magic -->
<action id="1058" handler="ServitorSkillUse" option="5652" /> <!-- Death Whisper -->
<action id="1059" handler="ServitorSkillUse" option="5653" /> <!-- Focus -->
<action id="1060" handler="ServitorSkillUse" option="5654" /> <!-- Guidance -->
<action id="1061" handler="PetSkillUse" option="5745" /> <!-- Death Blow -->
<action id="1062" handler="PetSkillUse" option="5746" /> <!-- Double Attack -->
<action id="1063" handler="PetSkillUse" option="5747" /> <!-- Spin Attack -->
<action id="1064" handler="PetSkillUse" option="5748" /> <!-- Meteor Shower -->
<action id="1065" handler="PetSkillUse" option="5753" /> <!-- Awakening -->
<action id="1066" handler="PetSkillUse" option="5749" /> <!-- Thunder Bolt -->
<action id="1067" handler="PetSkillUse" option="5750" /> <!-- Blaze -->
<action id="1068" handler="PetSkillUse" option="5751" /> <!-- Lightning Wave -->
<action id="1069" handler="PetSkillUse" option="5752" /> <!-- Flare -->
<action id="1070" handler="PetSkillUse" option="5771" /> <!-- Buff Control -->
<action id="1071" handler="ServitorSkillUse" option="5761" /> <!-- Power Strike -->
<action id="1072" handler="PetSkillUse" option="6046" /> <!-- Piercing Attack -->
<action id="1073" handler="PetSkillUse" option="6047" /> <!-- Whirlwind -->
<action id="1074" handler="PetSkillUse" option="6048" /> <!-- Spear Smash -->
<action id="1075" handler="PetSkillUse" option="6049" /> <!-- Battle Cry -->
<action id="1076" handler="PetSkillUse" option="6050" /> <!-- Power Smash -->
<action id="1077" handler="PetSkillUse" option="6051" /> <!-- Energy Burst -->
<action id="1078" handler="PetSkillUse" option="6052" /> <!-- Shock Wave -->
<action id="1079" handler="PetSkillUse" option="6053" /> <!-- Howl -->
<action id="1084" handler="PetSkillUse" option="6054" /> <!-- Switch Tactics -->
<action id="1085" handler="ServitorSkillUse" option="4707" /> <!-- Shadow's Sacrifice -->
<action id="1086" handler="ServitorSkillUse" option="6094" /> <!-- Panther Cancel -->
<action id="1087" handler="ServitorSkillUse" option="6095" /> <!-- Panther Dark Claw -->
<action id="1088" handler="ServitorSkillUse" option="6096" /> <!-- Panther Fatal Claw -->
<action id="1089" handler="PetSkillUse" option="6199" /> <!-- Deinonychus - Tail Strike -->
<action id="1090" handler="PetSkillUse" option="6205" /> <!-- Guardian's Strider - Strider Bite -->
<action id="1091" handler="PetSkillUse" option="6206" /> <!-- Guardian's Strider - Strider Fear -->
<action id="1092" handler="PetSkillUse" option="6207" /> <!-- Guardian's Strider - Strider Dash -->
<action id="1093" handler="PetSkillUse" option="6618" /> <!-- Maguen - Maguen Strike -->
<action id="1094" handler="PetSkillUse" option="6681" /> <!-- Maguen - Maguen Wind Walk -->
<action id="1095" handler="PetSkillUse" option="6619" /> <!-- Elite Maguen - Maguen Power Strike -->
<action id="1096" handler="PetSkillUse" option="6682" /> <!-- Elite Maguen - Elite Maguen Wind Walk -->
<action id="1097" handler="PetSkillUse" option="6683" /> <!-- Maguen - Maguen Return -->
<action id="1098" handler="PetSkillUse" option="6684" /> <!-- Elite Maguen - Maguen Party Return -->
<action id="1099" handler="ServitorAttack" /> <!-- All Attack -->
<action id="1100" handler="ServitorMove" /> <!-- All Move to target -->
<action id="1101" handler="ServitorStop" /> <!-- All Stop -->
<action id="1102" handler="UnsummonServitor" />
<action id="1103" handler="ServitorMode" option="1" /> <!-- All Passive mode -->
<action id="1104" handler="ServitorMode" option="2" /> <!-- All Defending mode -->
<action id="1106" handler="ServitorSkillUse" option="11278" /> <!-- Cute Bear - Bear Claw -->
<action id="1107" handler="ServitorSkillUse" option="11279" /> <!-- Cute Bear - Bear Tumbling -->
<action id="1108" handler="ServitorSkillUse" option="11280" /> <!-- Saber Tooth Cougar- Cougar Bite -->
<action id="1109" handler="ServitorSkillUse" option="11281" /> <!-- Saber Tooth Cougar - Cougar Pounce -->
<action id="1110" handler="ServitorSkillUse" option="11282" /> <!-- Grim Reaper - Reaper Touch -->
<action id="1111" handler="ServitorSkillUse" option="11283" /> <!-- Grim Reaper - Reaper Power -->
<action id="1113" handler="ServitorSkillUse" option="10051" /> <!-- Golden Lion - Lion Roar -->
<action id="1114" handler="ServitorSkillUse" option="10052" /> <!-- Golden Lion - Lion Claw -->
<action id="1115" handler="ServitorSkillUse" option="10053" /> <!-- Golden Lion - Lion Dash -->
<action id="1116" handler="ServitorSkillUse" option="10054" /> <!-- Golden Lion - Lion Flame -->
<action id="1117" handler="ServitorSkillUse" option="10794" /> <!-- Thunder Hawk - Thunder Flight -->
<action id="1118" handler="ServitorSkillUse" option="10795" /> <!-- Thunder Hawk - Thunder Purity -->
<action id="1120" handler="ServitorSkillUse" option="10797" /> <!-- Thunder Hawk - Thunder Feather Blast -->
<action id="1121" handler="ServitorSkillUse" option="10798" /> <!-- Thunder Hawk - Thunder Sharp Claw -->
<action id="1122" handler="ServitorSkillUse" option="11806" /> <!-- Tree of Life - Blessing of Tree -->
<action id="1123" handler="ServitorSkillUse" option="14767" /> <!-- Siege Golem - Siege Punch -->
<action id="1124" handler="ServitorSkillUse" option="11323" /> <!-- Wynn Kai the Cat - Feline Aggression -->
<action id="1125" handler="ServitorSkillUse" option="11324" /> <!-- Wynn Kai the Cat - Feline Stun -->
<action id="1126" handler="ServitorSkillUse" option="11325" /> <!-- Wynn Feline King - Feline Bite -->
<action id="1127" handler="ServitorSkillUse" option="11326" /> <!-- Wynn Feline King - Feline Pounce -->
<action id="1128" handler="ServitorSkillUse" option="11327" /> <!-- Wynn Feline Queen - Feline Touch -->
<action id="1129" handler="ServitorSkillUse" option="11328" /> <!-- Wynn Feline Queen - Feline Power -->
<action id="1130" handler="ServitorSkillUse" option="11332" /> <!-- Wynn Merrow - Unicorn's Aggression -->
<action id="1131" handler="ServitorSkillUse" option="11333" /> <!-- Wynn Merrow - Unicorn's Stun -->
<action id="1132" handler="ServitorSkillUse" option="11334" /> <!-- Wynn Magnus - Unicorn's Bite -->
<action id="1133" handler="ServitorSkillUse" option="11335" /> <!-- Wynn Magnus - Unicorn's Pounce -->
<action id="1134" handler="ServitorSkillUse" option="11336" /> <!-- Wynn Seraphim - Unicorn's Touch -->
<action id="1135" handler="ServitorSkillUse" option="11337" /> <!-- Wynn Seraphim - Unicorn's Power -->
<action id="1136" handler="ServitorSkillUse" option="11341" /> <!-- Wynn Nightshade - Phantom Aggression -->
<action id="1137" handler="ServitorSkillUse" option="11342" /> <!-- Wynn Nightshade - Phantom Stun -->
<action id="1138" handler="ServitorSkillUse" option="11343" /> <!-- Wynn Spectral Lord - Phantom Bite -->
<action id="1139" handler="ServitorSkillUse" option="11344" /> <!-- Wynn Spectral Lord - Phantom Pounce -->
<action id="1140" handler="ServitorSkillUse" option="11345" /> <!-- Wynn Soulless - Phantom Touch -->
<action id="1141" handler="ServitorSkillUse" option="11346" /> <!-- Wynn Soulless - Phantom Power -->
<action id="1142" handler="ServitorSkillUse" option="10087" /> <!-- Blood Panther - Panther Roar -->
<action id="1143" handler="ServitorSkillUse" option="10088" /> <!-- Blood Panther - Panther Rush -->
<action id="1144" handler="ServitorSkillUse" option="11375" /> <!-- Commando Cat - Commando Jumping Attack -->
<action id="1145" handler="ServitorSkillUse" option="11376" /> <!-- Commando Cat - Commando Double Slash -->
<action id="1146" handler="ServitorSkillUse" option="11378" /> <!-- Witch Cat - Elemental Slam -->
<action id="1147" handler="ServitorSkillUse" option="11377" /> <!-- Witch Cat - Witch Cat Power -->
<action id="1148" handler="ServitorSkillUse" option="11379" /> <!-- Unicorn Lancer - Lancer Rush -->
<action id="1149" handler="ServitorSkillUse" option="11380" /> <!-- Unicorn Lancer - Power Stamp -->
<action id="1150" handler="ServitorSkillUse" option="11382" /> <!-- Unicorn Cherub - Multiple Icicles -->
<action id="1151" handler="ServitorSkillUse" option="11381" /> <!-- Unicorn Cherub - Cherub Power -->
<action id="1152" handler="ServitorSkillUse" option="11383" /> <!-- Dark Crusader - Phantom Sword Attack -->
<action id="1153" handler="ServitorSkillUse" option="11384" /> <!-- Dark Crusader - Phantom Blow -->
<action id="1154" handler="ServitorSkillUse" option="11385" /> <!-- Banshee Queen - Phantom Spike -->
<action id="1155" handler="ServitorSkillUse" option="11386" /> <!-- Banshee Queen - Phantom Crash -->
<action id="1168" handler="ServitorSkillUse" option="47902" /> <!-- Emperor's Blessing -->
<action id="1169" handler="ServitorSkillUse" option="47903" /> <!-- Outcry -->
<action id="1170" handler="ServitorSkillUse" option="47905" /> <!-- Guard's Blessing -->
<action id="1171" handler="ServitorSkillUse" option="47906" /> <!-- Trample -->
<action id="1172" handler="ServitorSkillUse" option="47908" /> <!-- Lord's Blessing -->
<action id="1173" handler="ServitorSkillUse" option="47909" /> <!-- Specter's Dance -->
<action id="5000" handler="PetSkillUse" option="23155" /> <!-- Baby Rudolph - Reindeer Scratch -->
<action id="5001" handler="PetSkillUse" option="23167" /> <!-- Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum - Rosy Seduction -->
<action id="5002" handler="PetSkillUse" option="23168" /> <!-- Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum - Critical Seduction -->
<action id="5003" handler="PetSkillUse" option="5749" /> <!-- Hyum, Lapham, Hyum, Lapham - Thunder Bolt -->
<action id="5004" handler="PetSkillUse" option="5750" /> <!-- Hyum, Lapham, Hyum, Lapham - Flash -->
<action id="5005" handler="PetSkillUse" option="5751" /> <!-- Hyum, Lapham, Hyum, Lapham - Lightning Wave -->
<action id="5006" handler="PetSkillUse" option="5771" /> <!-- Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum, Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum - Buff Control -->
<action id="5007" handler="PetSkillUse" option="6046" /> <!-- Deseloph, Lilias, Deseloph, Lilias - Piercing Attack -->
<action id="5008" handler="PetSkillUse" option="6047" /> <!-- Deseloph, Lilias, Deseloph, Lilias - Spin Attack -->
<action id="5009" handler="PetSkillUse" option="6048" /> <!-- Deseloph, Lilias, Deseloph, Lilias - Smash -->
<action id="5010" handler="PetSkillUse" option="6049" /> <!-- Deseloph, Lilias, Deseloph, Lilias - Ignite -->
<action id="5011" handler="PetSkillUse" option="6050" /> <!-- Rekang, Mafum, Rekang, Mafum - Power Smash -->
<action id="5012" handler="PetSkillUse" option="6051" /> <!-- Rekang, Mafum, Rekang, Mafum - Energy Burst -->
<action id="5013" handler="PetSkillUse" option="6052" /> <!-- Rekang, Mafum, Rekang, Mafum - Shockwave -->
<action id="5014" handler="PetSkillUse" option="6053" /> <!-- Rekang, Mafum, Rekang, Mafum - Ignite -->
<action id="5015" handler="PetSkillUse" option="6054" /> <!-- Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum, Deseloph, Hyum, Rekang, Lilias, Lapham, Mafum - Switch Stance -->
<action id="1087" handler="ServitorSkillUse" option="6095" /> <!-- Panther's Dark Claw -->
<action id="1088" handler="ServitorSkillUse" option="6096" /> <!-- Panther's Fatal Claw -->
<action id="1089" handler="PetSkillUse" option="6199" /> <!-- Tail Strike -->
<action id="1090" handler="PetSkillUse" option="6205" /> <!-- Strider Bite -->
<action id="1091" handler="PetSkillUse" option="6206" /> <!-- Strider Fear -->
<action id="1092" handler="PetSkillUse" option="6207" /> <!-- Strider Dash -->
<action id="1093" handler="PetSkillUse" option="6618" /> <!-- Maguen's Strike -->
<action id="1094" handler="PetSkillUse" option="6681" /> <!-- Maguen Wind Walk -->
<action id="1095" handler="PetSkillUse" option="6619" /> <!-- Maguen's Power Strike -->
<action id="1096" handler="PetSkillUse" option="6682" /> <!-- Elite Maguen Wind Walk -->
<action id="1097" handler="PetSkillUse" option="6683" /> <!-- Maguen Return -->
<action id="1098" handler="PetSkillUse" option="6684" /> <!-- Maguen Party Return -->
<action id="1099" handler="ServitorAttack" /> <!-- Servitor's attack -->
<action id="1100" handler="ServitorMove" /> <!-- Servitor Move -->
<action id="1101" handler="ServitorStop" /> <!-- Stop Servitor -->
<action id="1102" handler="UnsummonServitor" /> <!-- Cancel Summon -->
<action id="1103" handler="ServitorMode" option="1" /> <!-- Passive -->
<action id="1104" handler="ServitorMode" option="2" /> <!-- Defense -->
<action id="1106" handler="ServitorSkillUse" option="11278" /> <!-- Bear Claw -->
<action id="1107" handler="ServitorSkillUse" option="11279" /> <!-- Bear Tumbling -->
<action id="1108" handler="ServitorSkillUse" option="11280" /> <!-- Cougar Bite -->
<action id="1109" handler="ServitorSkillUse" option="11281" /> <!-- Cougar Pounce -->
<action id="1110" handler="ServitorSkillUse" option="11282" /> <!-- Reaper Touch -->
<action id="1111" handler="ServitorSkillUse" option="11283" /> <!-- Reaper Power -->
<action id="1113" handler="ServitorSkillUse" option="10051" /> <!-- Lion Roar -->
<action id="1114" handler="ServitorSkillUse" option="10052" /> <!-- Lion Claw -->
<action id="1115" handler="ServitorSkillUse" option="10053" /> <!-- Lion Dash -->
<action id="1116" handler="ServitorSkillUse" option="10054" /> <!-- Lion Flame -->
<action id="1117" handler="ServitorSkillUse" option="10794" /> <!-- Thunder Flight -->
<action id="1118" handler="ServitorSkillUse" option="10795" /> <!-- Thunder Purity -->
<action id="1120" handler="ServitorSkillUse" option="10797" /> <!-- Thunder Feather Blast -->
<action id="1121" handler="ServitorSkillUse" option="10798" /> <!-- Thunder Sharp Claw -->
<action id="1122" handler="ServitorSkillUse" option="11806" /> <!-- Blessing of Life -->
<action id="1123" handler="ServitorSkillUse" option="14767" /> <!-- Siege Punch -->
<action id="1124" handler="ServitorSkillUse" option="11323" /> <!-- Feline Aggression -->
<action id="1125" handler="ServitorSkillUse" option="11324" /> <!-- Feline Stun -->
<action id="1126" handler="ServitorSkillUse" option="11325" /> <!-- Feline Bite -->
<action id="1127" handler="ServitorSkillUse" option="11326" /> <!-- Feline Pounce -->
<action id="1128" handler="ServitorSkillUse" option="11327" /> <!-- Feline Touch -->
<action id="1129" handler="ServitorSkillUse" option="11328" /> <!-- Feline Power -->
<action id="1130" handler="ServitorSkillUse" option="11332" /> <!-- Unicorn's Aggression -->
<action id="1131" handler="ServitorSkillUse" option="11333" /> <!-- Unicorn's Stun -->
<action id="1132" handler="ServitorSkillUse" option="11334" /> <!-- Unicorn's Bite -->
<action id="1133" handler="ServitorSkillUse" option="11335" /> <!-- Unicorn's Pounce -->
<action id="1134" handler="ServitorSkillUse" option="11336" /> <!-- Unicorn's Touch -->
<action id="1135" handler="ServitorSkillUse" option="11337" /> <!-- Unicorn's Power -->
<action id="1136" handler="ServitorSkillUse" option="11341" /> <!-- Phantom Aggression -->
<action id="1137" handler="ServitorSkillUse" option="11342" /> <!-- Phantom Stun -->
<action id="1138" handler="ServitorSkillUse" option="11343" /> <!-- Phantom Bite -->
<action id="1139" handler="ServitorSkillUse" option="11344" /> <!-- Phantom's Pounce -->
<action id="1140" handler="ServitorSkillUse" option="11345" /> <!-- Phantom Touch -->
<action id="1141" handler="ServitorSkillUse" option="11346" /> <!-- Phantom Power -->
<action id="1142" handler="ServitorSkillUse" option="10087" /> <!-- Panther Roar -->
<action id="1143" handler="ServitorSkillUse" option="10088" /> <!-- Panther Rush -->
<action id="1144" handler="ServitorSkillUse" option="11375" /> <!-- Magic Missile -->
<action id="1145" handler="ServitorSkillUse" option="11376" /> <!-- Entrenching -->
<action id="1146" handler="ServitorSkillUse" option="11378" /> <!-- Chain Block -->
<action id="1147" handler="ServitorSkillUse" option="11377" /> <!-- Blocked Target Change -->
<action id="1148" handler="ServitorSkillUse" option="11379" /> <!-- Breaking Blaster -->
<action id="1149" handler="ServitorSkillUse" option="11380" /> <!-- Blinking Attack -->
<action id="1150" handler="ServitorSkillUse" option="11382" /> <!-- Beast Within -->
<action id="1151" handler="ServitorSkillUse" option="11381" /> <!-- Hide -->
<action id="1152" handler="ServitorSkillUse" option="11383" /> <!-- Strong Bite -->
<action id="1153" handler="ServitorSkillUse" option="11384" /> <!-- Dire Claw -->
<action id="1154" handler="ServitorSkillUse" option="11385" /> <!-- Leap Attack -->
<action id="1155" handler="ServitorSkillUse" option="11386" /> <!-- Last Dire Claw -->
<action id="1156" handler="ServitorSkillUse" option="49032" /> <!-- Horn Thrust -->
<action id="1157" handler="ServitorSkillUse" option="49033" /> <!-- Rump Stun -->
<action id="1158" handler="ServitorSkillUse" option="49034" /> <!-- Pulling Body -->
<action id="1159" handler="ServitorSkillUse" option="49035" /> <!-- Breath of Hurricane -->
<action id="1160" handler="ServitorSkillUse" option="49042" /> <!-- Arrow Feather -->
<action id="1161" handler="ServitorSkillUse" option="49043" /> <!-- Quick Jump -->
<!-- TODO: Find skill ids. -->
<action id="1162" handler="ServitorSkillUse" option="0" /> <!-- Feather Trap -->
<action id="1163" handler="ServitorSkillUse" option="0" /> <!-- Trap Explosion -->
<action id="1164" handler="ServitorSkillUse" option="49044" /> <!-- Scout's Strike -->
<action id="1165" handler="ServitorSkillUse" option="49052" /> <!-- Crippling Bite -->
<action id="1166" handler="ServitorSkillUse" option="49054" /> <!-- Rushing Assault -->
<action id="1167" handler="ServitorSkillUse" option="49055" /> <!-- Back Explosion -->
<action id="1168" handler="ServitorSkillUse" option="47902" /> <!-- Skill: Emperor's Blessing -->
<action id="1169" handler="ServitorSkillUse" option="47903" /> <!-- Skill: Outcry -->
<action id="1170" handler="ServitorSkillUse" option="47905" /> <!-- Skill: Guard's Blessing -->
<action id="1171" handler="ServitorSkillUse" option="47906" /> <!-- Skill: Trample -->
<action id="1172" handler="ServitorSkillUse" option="47908" /> <!-- Skill: Lord's Blessing -->
<action id="1173" handler="ServitorSkillUse" option="47909" /> <!-- Skill: Specter's Dance -->
<action id="5000" handler="PetSkillUse" option="23155" /> <!-- Hand of Warmth -->
<action id="5001" handler="PetSkillUse" option="23167" /> <!-- Rosy Seduction -->
<action id="5002" handler="PetSkillUse" option="23168" /> <!-- Art of Seduction -->
<action id="5003" handler="PetSkillUse" option="5749" /> <!-- Thunder Bolt -->
<action id="5004" handler="PetSkillUse" option="5750" /> <!-- Blaze -->
<action id="5005" handler="PetSkillUse" option="5751" /> <!-- Lightning Wave -->
<action id="5006" handler="PetSkillUse" option="5771" /> <!-- Buff Control -->
<action id="5007" handler="PetSkillUse" option="6046" /> <!-- Piercing Attack -->
<action id="5008" handler="PetSkillUse" option="6047" /> <!-- Spin Attack -->
<action id="5009" handler="PetSkillUse" option="6048" /> <!-- Impale -->
<action id="5010" handler="PetSkillUse" option="6049" /> <!-- Battle Cry -->
<action id="5011" handler="PetSkillUse" option="6050" /> <!-- Power Smash -->
<action id="5012" handler="PetSkillUse" option="6051" /> <!-- Energy Burst -->
<action id="5013" handler="PetSkillUse" option="6052" /> <!-- Shock Wave -->
<action id="5014" handler="PetSkillUse" option="6053" /> <!-- Ignite -->
<action id="5015" handler="PetSkillUse" option="6054" /> <!-- Switch Tactics -->
<action id="5016" handler="PetSkillUse" option="23318" /> <!-- Cat the Ranger Boost -->
</list>

View File

@@ -387,6 +387,38 @@
<category name="WYVERN_GROUP">
<id>15955</id> <!-- wyvern -->
</category>
<category name="PET_GROUP">
<id>16079</id> <!-- Buffalo Calf -->
<id>16080</id> <!-- Black Buffalo -->
<id>16081</id> <!-- White Buffalo -->
<id>16082</id> <!-- Black Combat Buffalo -->
<id>16083</id> <!-- White Combat Buffalo -->
<id>16084</id> <!-- Tiger Cub -->
<id>16085</id> <!-- White Tiger -->
<id>16086</id> <!-- Tiger -->
<id>16087</id> <!-- White Sharp clawed Tiger -->
<id>16088</id> <!-- Steel Sharp clawed Tiger -->
<id>16089</id> <!-- Kookaburra Chick -->
<id>16090</id> <!-- Red Kookaburra -->
<id>16091</id> <!-- Blue Kookaburra -->
<id>16092</id> <!-- Red Combat Kookaburra -->
<id>16093</id> <!-- Blue Combat Kookaburra -->
<id>16094</id> <!-- Dragon Hatchling -->
<id>16095</id> <!-- Green Dragon -->
<id>16096</id> <!-- Red Dragon -->
<id>16097</id> <!-- Earth Dragon -->
<id>16098</id> <!-- Fire Dragon -->
<id>16099</id> <!-- Hawk Hatchling -->
<id>16100</id> <!-- Red Hawk -->
<id>16101</id> <!-- Blue Hawk -->
<id>16102</id> <!-- Red Combat Hawk -->
<id>16103</id> <!-- Blue Combat Hawk -->
<id>16104</id> <!-- Wolf Cub -->
<id>16105</id> <!-- Black Wolf -->
<id>16106</id> <!-- While Wolf -->
<id>16107</id> <!-- Black Steel Wolf -->
<id>16108</id> <!-- White Steel Wolf -->
</category>
<category name="SUBJOB_GROUP_KNIGHT">
<id>5</id> <!-- paladin -->
<id>6</id> <!-- dark_avenger -->

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,249 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/PetExtractData.xsd">
<extraction petLevel="50" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="51" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="52" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="53" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="54" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="55" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="56" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="57" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="58" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="59" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="60" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="61" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="62" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="63" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="64" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="65" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="66" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="67" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="68" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="69" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="70" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="71" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="72" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="73" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="74" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="75" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="76" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="77" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="78" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="79" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="80" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="81" petId="12" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="82" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="83" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="84" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="85" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="86" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="87" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="88" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="89" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="90" petId="12" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="50" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="51" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="52" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="53" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="54" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="55" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="56" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="57" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="58" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="59" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="60" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="61" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="62" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="63" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="64" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="65" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="66" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="67" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="68" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="69" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="70" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="71" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="72" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="73" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="74" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="75" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="76" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="77" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="78" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="79" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="80" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="81" petId="13" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="82" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="83" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="84" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="85" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="86" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="87" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="88" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="89" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="90" petId="13" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="50" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="51" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="52" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="53" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="54" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="55" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="56" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="57" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="58" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="59" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="60" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="61" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="62" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="63" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="64" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="65" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="66" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="67" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="68" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="69" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="70" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="71" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="72" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="73" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="74" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="75" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="76" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="77" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="78" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="79" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="80" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="81" petId="14" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="82" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="83" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="84" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="85" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="86" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="87" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="88" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="89" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="90" petId="14" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="50" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="51" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="52" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="53" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="54" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="55" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="56" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="57" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="58" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="59" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="60" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="61" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="62" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="63" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="64" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="65" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="66" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="67" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="68" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="69" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="70" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="71" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="72" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="73" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="74" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="75" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="76" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="77" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="78" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="79" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="80" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="81" petId="15" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="82" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="83" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="84" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="85" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="86" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="87" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="88" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="89" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="90" petId="15" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="50" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="51" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="52" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="53" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="54" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="55" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="56" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="57" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="58" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="59" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="60" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="61" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="62" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="63" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="64" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="65" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="66" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="67" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="68" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="69" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="70" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="71" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="72" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="73" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="74" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="75" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="76" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="77" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="78" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="79" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="80" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="81" petId="16" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="82" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="83" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="84" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="85" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="86" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="87" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="88" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="89" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="90" petId="16" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="50" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="51" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="52" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="53" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="54" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="55" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="56" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="57" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="58" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="59" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="60" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="61" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="62" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="63" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="64" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="65" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="66" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="67" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="68" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="69" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="70" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="71" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="72" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="73" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="74" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="75" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="76" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="77" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="78" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="79" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="80" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="81" petId="17" extractExp="120000000" extractItem="94480" defaultCostId="91663" defaultCostCount="1000" extractCostId="57" extractCostCount="300000" />
<extraction petLevel="82" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="83" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="84" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="85" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="86" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="87" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="88" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="89" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
<extraction petLevel="90" petId="17" extractExp="2350000000" extractItem="94517" defaultCostId="57" defaultCostCount="200000000" extractCostId="91663" extractCostCount="28" />
</list>

View File

@@ -9,7 +9,7 @@ The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/exchange.htm">"Here is a Pet Coupon. Give me a pet."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -9,7 +9,7 @@
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -10,7 +10,7 @@ Pet Manager Waters:<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -9,7 +9,7 @@
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -9,7 +9,7 @@
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -9,7 +9,7 @@
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -9,7 +9,7 @@
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -10,7 +10,7 @@ Perhaps I should write a book, eh? "The Impact of Striders on the History of the
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -10,7 +10,7 @@ Oh, hello. Ah, you noticed my pure-bred black-striped Alpine Cougar, eh? It is n
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -10,7 +10,7 @@ As the number of people who interested in raising pets increases these days, the
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">"Can you tell me about the local lord and tax rate?"</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -7,7 +7,7 @@
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">"I want to evolve a pet."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/exchange.htm">"Here is a Pet Coupon. Give me a pet."</Button> -->
The Pet Manager Association is always happy to assist you and your pet.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/evolve.htm">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_pet_extract_window">Pet Extraction</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Buy 100">Buy pet and servitor equipment</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link petmanager/instructions.htm">Learn about pets</Button>

View File

@@ -35,13 +35,6 @@
<reset day="SUNDAY" hour="6" minute="30" />
</reenter>
<spawnlist>
<group name="ExitPortal" spawnByDefault="false">
<npc id="15970" x="-114343" y="-77747" z="-11442" heading="46786" /> <!-- Exit Portal -->
<npc id="15971" x="-114343" y="-77747" z="-11442" heading="46786" /> <!-- Exit Portal -->
<npc id="15972" x="-114343" y="-77720" z="-11442" heading="46786" /> <!-- Exit Portal -->
<npc id="15973" x="-114343" y="-77733" z="-11442" heading="46786" /> <!-- Exit Portal -->
<npc id="15974" x="-114343" y="-77755" z="-11442" heading="46786" /> <!-- Exit Portal -->
</group>
<group name="sealstone" spawnByDefault="true">
<npc id="34178" x="-114324" y="-78273" z="-11433" heading="15825" /> <!-- Seal Stone -->
</group>
@@ -49,77 +42,53 @@
<npc id="34176" x="-114324" y="-78273" z="-11433" heading="15474" /> <!-- Animael -->
</group>
<group name="NormalMobs" spawnByDefault="false">
<npc id="22272" x="-114091" y="-77461" z="-11443" heading="16383" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114048" y="-77429" z="-11443" heading="6673" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114045" y="-77406" z="-11443" heading="24645" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113837" y="-76943" z="-11443" heading="8327" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113945" y="-76923" z="-11443" heading="30858" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114859" y="-76897" z="-11443" heading="58120" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114785" y="-76841" z="-11443" heading="55942" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114711" y="-76987" z="-11443" heading="61107" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114699" y="-77113" z="-11443" heading="16383" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114723" y="-77045" z="-11443" heading="57831" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114852" y="-78363" z="-11443" heading="657" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114984" y="-78475" z="-11443" heading="1141" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114916" y="-78442" z="-11443" heading="65129" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114841" y="-78428" z="-11443" heading="63813" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114938" y="-78411" z="-11443" heading="9120" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113616" y="-78459" z="-11443" heading="30680" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113622" y="-78398" z="-11443" heading="28616" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113591" y="-78301" z="-11442" heading="37105" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113604" y="-78239" z="-11443" heading="35386" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113693" y="-78249" z="-11443" heading="29763" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113568" y="-78336" z="-11442" heading="28986" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113818" y="-78174" z="-11443" heading="55979" /> <!-- Corrupted Fairy -->
<npc id="22272" x="-114618" y="-77313" z="-11443" heading="22097" /> <!-- Corrupted Fairy -->
<npc id="22272" x="-113589" y="-78333" z="-11443" heading="30535" /> <!-- Corrupted Fairy -->
<npc id="22272" x="-114840" y="-78561" z="-11443" heading="32322" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113933" y="-77703" z="-11443" heading="1785" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-113872" y="-77793" z="-11443" heading="60399" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114852" y="-77864" z="-11443" heading="13028" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114822" y="-77925" z="-11443" heading="17015" /> <!-- Corrupted Fairy -->
<npc id="22272" x="-114554" y="-78998" z="-11443" heading="8750" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114193" y="-78871" z="-11441" heading="32032" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114105" y="-79053" z="-11443" heading="2811" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114456" y="-79050" z="-11443" heading="30111" /> <!-- Corrupted Fairy -->
<npc id="22272" x="-113845" y="-78477" z="-11443" heading="62467" /> <!-- Corrupted Fairy -->
<npc id="22271" x="-114676" y="-78345" z="-11439" heading="30937" /> <!-- Corrupted Fairy -->
<npc id="22272" x="-114091" y="-77461" z="-11443" heading="16383" respawnTime="60sec" />
<npc id="22271" x="-114048" y="-77429" z="-11443" heading="6673" respawnTime="60sec" />
<npc id="22271" x="-114045" y="-77406" z="-11443" heading="24645" respawnTime="60sec" />
<npc id="22271" x="-113837" y="-76943" z="-11443" heading="8327" respawnTime="60sec" />
<npc id="22271" x="-113945" y="-76923" z="-11443" heading="30858" respawnTime="60sec" />
<npc id="22271" x="-114859" y="-76897" z="-11443" heading="58120" respawnTime="60sec" />
<npc id="22271" x="-114785" y="-76841" z="-11443" heading="55942" respawnTime="60sec" />
<npc id="22271" x="-114711" y="-76987" z="-11443" heading="61107" respawnTime="60sec" />
<npc id="22271" x="-114699" y="-77113" z="-11443" heading="16383" respawnTime="60sec" />
<npc id="22271" x="-114723" y="-77045" z="-11443" heading="57831" respawnTime="60sec" />
<npc id="22271" x="-114852" y="-78363" z="-11443" heading="657" respawnTime="60sec" />
<npc id="22271" x="-114984" y="-78475" z="-11443" heading="1141" respawnTime="60sec" />
<npc id="22271" x="-114916" y="-78442" z="-11443" heading="65129" respawnTime="60sec" />
<npc id="22271" x="-114841" y="-78428" z="-11443" heading="63813" respawnTime="60sec" />
<npc id="22271" x="-114938" y="-78411" z="-11443" heading="9120" respawnTime="60sec" />
<npc id="22271" x="-113616" y="-78459" z="-11443" heading="30680" respawnTime="60sec" />
<npc id="22271" x="-113622" y="-78398" z="-11443" heading="28616" respawnTime="60sec" />
<npc id="22271" x="-113591" y="-78301" z="-11442" heading="37105" respawnTime="60sec" />
<npc id="22271" x="-113604" y="-78239" z="-11443" heading="35386" respawnTime="60sec" />
<npc id="22271" x="-113693" y="-78249" z="-11443" heading="29763" respawnTime="60sec" />
<npc id="22271" x="-113568" y="-78336" z="-11442" heading="28986" respawnTime="60sec" />
<npc id="22271" x="-113818" y="-78174" z="-11443" heading="55979" respawnTime="60sec" />
<npc id="22272" x="-114618" y="-77313" z="-11443" heading="22097" respawnTime="60sec" />
<npc id="22272" x="-113589" y="-78333" z="-11443" heading="30535" respawnTime="60sec" />
<npc id="22272" x="-114840" y="-78561" z="-11443" heading="32322" respawnTime="60sec" />
<npc id="22271" x="-113933" y="-77703" z="-11443" heading="1785" respawnTime="60sec" />
<npc id="22271" x="-113872" y="-77793" z="-11443" heading="60399" respawnTime="60sec" />
<npc id="22271" x="-114852" y="-77864" z="-11443" heading="13028" respawnTime="60sec" />
<npc id="22271" x="-114822" y="-77925" z="-11443" heading="17015" respawnTime="60sec" />
<npc id="22272" x="-114554" y="-78998" z="-11443" heading="8750" respawnTime="60sec" />
<npc id="22271" x="-114193" y="-78871" z="-11441" heading="32032" respawnTime="60sec" />
<npc id="22271" x="-114105" y="-79053" z="-11443" heading="2811" respawnTime="60sec" />
<npc id="22271" x="-114456" y="-79050" z="-11443" heading="30111" respawnTime="60sec" />
<npc id="22272" x="-113845" y="-78477" z="-11443" heading="62467" respawnTime="60sec" />
<npc id="22271" x="-114676" y="-78345" z="-11439" heading="30937" respawnTime="60sec" />
</group>
<group name="ruipwave_1" spawnByDefault="false">
<npc id="22273" x="-113945" y="-76923" z="-11443" heading="30858" /> <!-- Ruip portal container-->
<npc id="22273" x="-114840" y="-78561" z="-11443" heading="32322" /> <!-- Ruip portal container -->
<npc id="22273" x="-114852" y="-77864" z="-11443" heading="13028" /> <!-- Ruip portal container-->
<npc id="22273" x="-114676" y="-78345" z="-11439" heading="30937" /> <!-- Ruip portal container -->
<npc id="22273" x="-113845" y="-78477" z="-11443" heading="62467" /> <!-- Ruip portal container-->
<npc id="22273" x="-114676" y="-78345" z="-11439" heading="30937" /> <!-- Ruip portal container -->
<npc id="22273" x="-113568" y="-78336" z="-11442" heading="28986" /> <!-- Ruip portal container -->
<npc id="22273" x="-113872" y="-77793" z="-11443" heading="60399" /> <!-- Ruip portal container -->
<npc id="22273" x="-113589" y="-78333" z="-11443" heading="30535" /> <!-- Ruip portal container -->
<npc id="22273" x="-113818" y="-78174" z="-11443" heading="55979" /> <!-- Ruip portal container -->
</group>
<group name="ruipwave_2" spawnByDefault="false">
<npc id="22273" x="-113622" y="-78398" z="-11443" heading="28616" /> <!-- Ruip portal container-->
<npc id="22273" x="-113622" y="-78398" z="-11443" heading="28616" /> <!-- Ruip portal container -->
<npc id="22273" x="-114323" y="-78914" z="-11443" heading="13828" /> <!-- Ruip portal container -->
<npc id="22273" x="-114676" y="-78345" z="-11439" heading="30937" /> <!-- Ruip portal container -->
<npc id="22273" x="-114840" y="-78561" z="-11443" heading="32322" /> <!-- Ruip portal container -->
<npc id="22273" x="-114676" y="-78345" z="-11439" heading="30937" /> <!-- Ruip portal container -->
<npc id="22273" x="-114785" y="-76841" z="-11443" heading="55942" /> <!-- Ruip portal container -->
<npc id="22273" x="-114554" y="-78998" z="-11443" heading="8750" /> <!-- Ruip portal container -->
<npc id="22273" x="-114841" y="-78428" z="-11443" heading="63813" /> <!-- Ruip portal container -->
<npc id="22273" x="-114840" y="-78561" z="-11443" heading="32322" /> <!-- Ruip portal container -->
</group>
<group name="portalearth" spawnByDefault="false">
<npc id="15971" x="-113516" y="-77521" z="-11419" heading="8750" />
</group>
<group name="portalwind" spawnByDefault="false">
<npc id="15969" x="-114554" y="-78998" z="-11443" heading="8750" />
</group>
<group name="portalfire" spawnByDefault="false">
<npc id="15970" x="-114554" y="-78998" z="-11443" heading="8750" />
</group>
<group name="portalwater" spawnByDefault="false">
<npc id="15972" x="-114554" y="-78998" z="-11443" heading="8750" />
<npc id="22273" x="-113945" y="-76923" z="-11443" heading="30858" respawnTime="60sec" />
<npc id="22273" x="-114840" y="-78561" z="-11443" heading="32322" respawnTime="60sec" />
<npc id="22273" x="-114852" y="-77864" z="-11443" heading="13028" respawnTime="60sec" />
<npc id="22273" x="-114676" y="-78345" z="-11439" heading="30937" respawnTime="60sec" />
<npc id="22273" x="-113845" y="-78477" z="-11443" heading="62467" respawnTime="60sec" />
<npc id="22273" x="-114676" y="-78345" z="-11439" heading="30937" respawnTime="60sec" />
<npc id="22273" x="-113568" y="-78336" z="-11442" heading="28986" respawnTime="60sec" />
<npc id="22273" x="-113872" y="-77793" z="-11443" heading="60399" respawnTime="60sec" />
<npc id="22273" x="-113589" y="-78333" z="-11443" heading="30535" respawnTime="60sec" />
<npc id="22273" x="-113818" y="-78174" z="-11443" heading="55979" respawnTime="60sec" />
</group>
</spawnlist>
</instance>

View File

@@ -5,19 +5,19 @@
</npcs>
<item>
<!-- Adena -->
<ingredient count="20119720" id="57" />
<ingredient count="2119720" id="57" />
<!-- Zubei's Helmet -->
<production count="1" id="503" />
</item>
<item>
<!-- Adena -->
<ingredient count="4319200" id="57" />
<ingredient count="2319200" id="57" />
<!-- Zubei's Breastplate -->
<production count="1" id="357" />
</item>
<item>
<!-- Adena -->
<ingredient count="20199540" id="57" />
<ingredient count="2199540" id="57" />
<!-- Zubei's Gaiters -->
<production count="1" id="383" />
</item>
@@ -35,13 +35,13 @@
</item>
<item>
<!-- Adena -->
<ingredient count="3239400" id="57" />
<ingredient count="2410000" id="57" />
<!-- Tunic of Zubei -->
<production count="1" id="2397" />
</item>
<item>
<!-- Adena -->
<ingredient count="2149660" id="57" />
<ingredient count="2995400" id="57" />
<!-- Stockings of Zubei -->
<production count="1" id="2402" />
</item>

View File

@@ -0,0 +1,7 @@
<html><body>Siben:<br>
<br>
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest AztacanArea The_Midway_Gate">The Midway Gate (Lv. 70-87) - 100,000 adena</Button>
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest AztacanArea The_Eastern_Gate">The Eastern Gate (Lv. 88+) - 100,000 adena</button>
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest AztacanArea The_Western_Gate">The Western Gate (Lv. 88) - 100,000 adena</Button>
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest AztacanArea Mineral_shop">Buy supplies and minerals</button>
</body></html>

View File

@@ -0,0 +1,190 @@
/*
* 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 ai.areas.DwellingOfSpiritsResidence;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.skill.SkillCaster;
import ai.AbstractNpcAI;
/**
* @author RobikBobik
*/
public class ResidenceOfKingIgnis extends AbstractNpcAI
{
// NPCs
private static final int IGNIS = 29105;
// Skills
private static final SkillHolder FIRE_RAG_1 = new SkillHolder(50050, 1);
private static final SkillHolder FIRE_RAG_2 = new SkillHolder(50050, 2);
private static final SkillHolder FIRE_RAG_3 = new SkillHolder(50050, 3);
private static final SkillHolder FIRE_RAG_4 = new SkillHolder(50050, 4);
private static final SkillHolder FIRE_RAG_5 = new SkillHolder(50050, 5);
private static final SkillHolder FIRE_RAG_6 = new SkillHolder(50050, 6);
private static final SkillHolder FIRE_RAG_7 = new SkillHolder(50050, 7);
private static final SkillHolder FIRE_RAG_8 = new SkillHolder(50050, 8);
private static final SkillHolder FIRE_RAG_9 = new SkillHolder(50050, 9);
private static final SkillHolder FIRE_RAG_10 = new SkillHolder(50050, 10);
public ResidenceOfKingIgnis()
{
addAttackId(IGNIS);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
switch (event)
{
case "CAST_FIRE_RAGE_1":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_1.getSkill()))
{
npc.doCast(FIRE_RAG_1.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_2":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_2.getSkill()))
{
npc.doCast(FIRE_RAG_2.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_3":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_3.getSkill()))
{
npc.doCast(FIRE_RAG_3.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_4":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_4.getSkill()))
{
npc.doCast(FIRE_RAG_4.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_5":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_5.getSkill()))
{
npc.doCast(FIRE_RAG_5.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_6":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_6.getSkill()))
{
npc.doCast(FIRE_RAG_6.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_7":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_7.getSkill()))
{
npc.doCast(FIRE_RAG_7.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_8":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_8.getSkill()))
{
npc.doCast(FIRE_RAG_8.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_9":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_9.getSkill()))
{
npc.doCast(FIRE_RAG_9.getSkill());
}
break;
}
case "CAST_FIRE_RAGE_10":
{
if (SkillCaster.checkUseConditions(npc, FIRE_RAG_10.getSkill()))
{
npc.doCast(FIRE_RAG_10.getSkill());
}
break;
}
}
return null;
}
@Override
public String onAttack(Npc npc, Player attacker, int damage, boolean isSummon, Skill skill)
{
if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.99)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.70)))
{
startQuestTimer("CAST_FIRE_RAGE_1", 1000, npc, null);
}
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.70)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.50)))
{
startQuestTimer("CAST_FIRE_RAGE_2", 1000, npc, null);
}
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.50)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.40)))
{
startQuestTimer("CAST_FIRE_RAGE_3", 1000, npc, null);
}
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.40)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.25)))
{
startQuestTimer("CAST_FIRE_RAGE_4", 1000, npc, null);
}
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.25)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.15)))
{
startQuestTimer("CAST_FIRE_RAGE_5", 1000, npc, null);
}
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.15)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.10)))
{
startQuestTimer("CAST_FIRE_RAGE_6", 1000, npc, null);
}
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.10)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.7)))
{
startQuestTimer("CAST_FIRE_RAGE_7", 1000, npc, null);
}
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.7)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.5)))
{
startQuestTimer("CAST_FIRE_RAGE_8", 1000, npc, null);
}
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.5)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.3)))
{
startQuestTimer("CAST_FIRE_RAGE_9", 1000, npc, null);
}
else if (npc.getCurrentHp() < (npc.getMaxHp() * 0.3))
{
startQuestTimer("CAST_FIRE_RAGE_10", 1000, npc, null);
}
return super.onAttack(npc, attacker, damage, isSummon, skill);
}
public static void main(String[] args)
{
new ResidenceOfKingIgnis();
}
}

View File

@@ -0,0 +1,309 @@
/*
* 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 ai.areas.DwellingOfSpiritsResidence;
import java.util.HashMap;
import java.util.Map;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.skill.Skill;
import ai.AbstractNpcAI;
public class ResidenceOfKingPetram extends AbstractNpcAI
{
// NPCs
private static final int PETRAM = 29108;
private static final int PETRAM_PIECE = 29116;
private static final int PETRAM_FRAGMENT = 29117;
// Skills
private static final SkillHolder EARTH_ENERGY = new SkillHolder(50066, 1);
private static final SkillHolder EARTH_FURY = new SkillHolder(50059, 1);
private static final SkillHolder TEST = new SkillHolder(5712, 1);
public ResidenceOfKingPetram()
{
addKillId(PETRAM_PIECE, PETRAM_FRAGMENT);
addAttackId(PETRAM);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
switch (event)
{
case "SPAWN_MINION":
{
final Instance world = npc.getInstanceWorld();
if (world != null)
{
final Npc petram = world.getNpc(PETRAM);
petram.doCast(EARTH_ENERGY.getSkill());
petram.setInvul(true);
petram.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.EARTH_KING_BARRIER2_AVE);
petram.updateAbnormalVisualEffects();
petram.broadcastSay(ChatType.NPC_SHOUT, "HaHa, fighters lets kill them. Now Im invul!!!");
final int stage = getHigherStage(world);
for (int minionIndex = 0; minionIndex < StageData.getMinionsStageData(stage).length; minionIndex++)
{
final MinionData minionData = StageData.getMinionsStageData(stage)[minionIndex];
final Location minionLocation = minionData.getMinionLocation();
world.setParameter("minion" + minionIndex, addSpawn(npc, minionData.getMinionId(), minionLocation.getX(), minionLocation.getY(), minionLocation.getZ(), minionLocation.getHeading(), false, -1, true, npc.getInstanceId()));
}
startQuestTimer("SUPPORT_PETRAM", 200, npc, null);
}
break;
}
case "SUPPORT_PETRAM":
{
final Instance world = npc.getInstanceWorld();
if ((world != null) && (world.getNpc(PETRAM) != null) && !world.getNpc(PETRAM).isDead())
{
final int stage = getHigherStage(world);
for (int minionIndex = 0; minionIndex < StageData.getMinionsStageData(stage).length; minionIndex++)
{
world.getParameters().getObject("minion" + minionIndex, Npc.class).setTarget(world.getNpc(PETRAM));
world.getParameters().getObject("minion" + minionIndex, Npc.class).doCast(TEST.getSkill());
}
startQuestTimer("SUPPORT_PETRAM", 10100, npc, null);
}
break;
}
case "REMOVE_INVUL":
{
if (npc != null)
{
final Instance world = npc.getInstanceWorld();
if (world != null)
{
final Npc petram = world.getNpc(PETRAM);
if (petram != null)
{
petram.doCast(EARTH_FURY.getSkill());
petram.setInvul(false);
petram.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.EARTH_KING_BARRIER2_AVE);
petram.updateAbnormalVisualEffects();
petram.broadcastSay(ChatType.NPC_SHOUT, "Nooooo... Nooooo...");
}
for (int i = 0; i < 12; i++)
{
final Npc minion = world.getParameters().getObject("minion" + i, Npc.class);
if (minion != null)
{
minion.deleteMe();
}
}
}
}
break;
}
}
return null;
}
private int getHigherStage(Instance world)
{
for (int stage = StageData.getMinionsStageData().size() - 1; stage >= 0; stage--)
{
if (world.getParameters().getBoolean("stage" + stage, false))
{
return stage;
}
}
return 0;
}
@Override
public String onAttack(Npc npc, Player attacker, int damage, boolean isSummon, Skill skill)
{
final Instance world = npc.getInstanceWorld();
synchronized (this)
{
for (int stage = 0; stage < StageData.getMinionsStageData().size(); stage++)
{
if ((npc.getCurrentHpPercent() < StageData.getHpPercents()[stage]) && !world.getParameters().getBoolean("stage" + stage, false))
{
world.setParameter("stage" + stage, true);
startQuestTimer("SPAWN_MINION", 100, npc, null);
}
}
}
return super.onAttack(npc, attacker, damage, isSummon, skill);
}
@Override
public String onKill(Npc npc, Player player, boolean isSummon)
{
final Instance world = npc.getInstanceWorld();
if (world == null)
{
return null;
}
final int stage = getHigherStage(world);
int aliveMinionsCount = 0;
for (int minionIndex = 0; minionIndex < StageData.getMinionsStageData(stage).length; minionIndex++)
{
if ((world.getParameters().getObject("minion" + minionIndex, Npc.class) != null) && !world.getParameters().getObject("minion" + minionIndex, Npc.class).isDead())
{
aliveMinionsCount++;
}
}
boolean breakInvul = false;
switch (stage)
{
case 0:
{
if (aliveMinionsCount == 0)
{
breakInvul = true;
}
break;
}
case 1:
{
if (aliveMinionsCount <= 4)
{
breakInvul = true;
}
break;
}
case 2:
{
if (aliveMinionsCount <= 6)
{
breakInvul = true;
}
break;
}
}
if (breakInvul)
{
startQuestTimer("REMOVE_INVUL", 500, world.getNpc(PETRAM), null);
}
return super.onKill(npc, player, isSummon);
}
private static class StageData
{
private static final int[] _hpPercents = new int[]
{
75,
50,
10
};
private static final Map<Integer, MinionData[]> _minionsStageData = new HashMap<>();
static
{
// Stage 1
_minionsStageData.put(0, new MinionData[]
{
new MinionData(PETRAM_FRAGMENT, new Location(221543, 191530, -15486, 1131)),
new MinionData(PETRAM_FRAGMENT, new Location(222069, 192019, -15486, 49364)),
new MinionData(PETRAM_FRAGMENT, new Location(222595, 191479, -15486, 34013)),
new MinionData(PETRAM_FRAGMENT, new Location(222077, 191017, -15486, 16383))
});
// Stage 2
_minionsStageData.put(1, new MinionData[]
{
new MinionData(PETRAM_FRAGMENT, new Location(221069, 191544, -15486, 2280)),
new MinionData(PETRAM_FRAGMENT, new Location(221366, 192223, -15486, 56731)),
new MinionData(PETRAM_FRAGMENT, new Location(222067, 192508, -15486, 50632)),
new MinionData(PETRAM_FRAGMENT, new Location(222765, 192216, -15486, 39607)),
new MinionData(PETRAM_FRAGMENT, new Location(223057, 191472, -15486, 33154)),
new MinionData(PETRAM_FRAGMENT, new Location(222773, 190814, -15486, 25376)),
new MinionData(PETRAM_FRAGMENT, new Location(222063, 190516, -15486, 16383)),
new MinionData(PETRAM_FRAGMENT, new Location(221342, 190800, -15486, 10837))
});
// Stage 3
_minionsStageData.put(2, new MinionData[]
{
new MinionData(PETRAM_PIECE, new Location(221543, 191530, -15486, 1131)),
new MinionData(PETRAM_PIECE, new Location(222069, 192019, -15486, 49364)),
new MinionData(PETRAM_PIECE, new Location(222595, 191479, -15486, 34013)),
new MinionData(PETRAM_PIECE, new Location(222077, 191017, -15486, 16383)),
new MinionData(PETRAM_PIECE, new Location(221069, 191544, -15486, 2280)),
new MinionData(PETRAM_PIECE, new Location(221366, 192223, -15486, 56731)),
new MinionData(PETRAM_PIECE, new Location(222067, 192508, -15486, 50632)),
new MinionData(PETRAM_PIECE, new Location(222765, 192216, -15486, 39607)),
new MinionData(PETRAM_PIECE, new Location(223057, 191472, -15486, 33154)),
new MinionData(PETRAM_PIECE, new Location(222773, 190814, -15486, 25376)),
new MinionData(PETRAM_PIECE, new Location(222063, 190516, -15486, 16383)),
new MinionData(PETRAM_PIECE, new Location(221342, 190800, -15486, 10837))
});
}
public static int[] getHpPercents()
{
return _hpPercents;
}
public static Map<Integer, MinionData[]> getMinionsStageData()
{
return _minionsStageData;
}
public static MinionData[] getMinionsStageData(int stage)
{
return _minionsStageData.get(stage);
}
}
private static class MinionData
{
final int _minionId;
final Location _minionLocation;
private MinionData(int minionId, Location minionLocation)
{
_minionId = minionId;
_minionLocation = minionLocation;
}
public int getMinionId()
{
return _minionId;
}
public Location getMinionLocation()
{
return _minionLocation;
}
}
public static void main(String[] args)
{
new ResidenceOfKingPetram();
}
}

View File

@@ -0,0 +1,179 @@
/*
* 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 ai.areas.DwellingOfSpiritsResidence;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.SkillCaster;
import ai.AbstractNpcAI;
/**
* @author RobikBobik, Mobius
*/
public class ResidenceOfKingProcella extends AbstractNpcAI
{
// NPCs
private static final int PROCELLA = 29107;
private static final int PROCELLA_GUARDIAN_1 = 29112;
private static final int PROCELLA_GUARDIAN_2 = 29113;
private static final int PROCELLA_GUARDIAN_3 = 29114;
private static final int PROCELLA_STORM = 29115;
// Skills
private static final SkillHolder HURRICANE_SUMMON = new SkillHolder(50042, 1);
private static final int HURRICANE_BOLT = 50043;
private static final SkillHolder HURRICANE_BOLT_LV_1 = new SkillHolder(50043, 1);
// Misc
private static final int STORM_MAX_COUNT = 16;
public ResidenceOfKingProcella()
{
addKillId(PROCELLA, PROCELLA_GUARDIAN_1, PROCELLA_GUARDIAN_2, PROCELLA_GUARDIAN_3);
addSpawnId(PROCELLA);
}
@Override
public String onSpawn(Npc npc)
{
final Instance world = npc.getInstanceWorld();
if (world != null)
{
startQuestTimer("SPAWN_MINION", 300000 + getRandom(-15000, 15000), npc, null);
startQuestTimer("SPAWN_STORM", 5000, npc, null);
world.setParameter("stormCount", 0);
}
return null;
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
switch (event)
{
case "SPAWN_MINION":
{
final Instance world = npc.getInstanceWorld();
if ((world != null) && (npc.getId() == PROCELLA))
{
world.setParameter("minion1", addSpawn(PROCELLA_GUARDIAN_1, 212663, 179421, -15486, 31011, true, 0, true, npc.getInstanceId()));
world.setParameter("minion2", addSpawn(PROCELLA_GUARDIAN_2, 213258, 179822, -15486, 12001, true, 0, true, npc.getInstanceId()));
world.setParameter("minion3", addSpawn(PROCELLA_GUARDIAN_3, 212558, 179974, -15486, 12311, true, 0, true, npc.getInstanceId()));
startQuestTimer("HIDE_PROCELLA", 1000, world.getNpc(PROCELLA), null);
}
break;
}
case "SPAWN_STORM":
{
final Instance world = npc.getInstanceWorld();
if ((world != null) && (world.getParameters().getInt("stormCount", 0) < STORM_MAX_COUNT))
{
world.getNpc(PROCELLA).doCast(HURRICANE_SUMMON.getSkill());
final Npc procellaStorm = addSpawn(PROCELLA_STORM, world.getNpc(PROCELLA).getX() + getRandom(-500, 500), world.getNpc(PROCELLA).getY() + getRandom(-500, 500), world.getNpc(PROCELLA).getZ(), 31011, true, 0, true, npc.getInstanceId());
procellaStorm.setRandomWalking(true);
world.getParameters().increaseInt("stormCount", 1);
startQuestTimer("SPAWN_STORM", 60000, world.getNpc(PROCELLA), null);
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, procellaStorm, player);
}
break;
}
case "HIDE_PROCELLA":
{
final Instance world = npc.getInstanceWorld();
if (world != null)
{
if (world.getNpc(PROCELLA).isInvisible())
{
world.getNpc(PROCELLA).setInvisible(false);
}
else
{
world.getNpc(PROCELLA).setInvisible(true);
startQuestTimer("SPAWN_MINION", 300000 + getRandom(-15000, 15000), world.getNpc(PROCELLA), player);
}
}
break;
}
case "CHECK_CHAR_INSIDE_RADIUS_NPC":
{
final Instance world = npc.getInstanceWorld();
if (world != null)
{
final Player plr = world.getPlayers().stream().findAny().orElse(null); // Usamos orElse(null) para evitar el Optional vacΓ­o
if ((plr != null) && (plr.isInsideRadius3D(npc, 100)))
{
npc.abortAttack();
npc.abortCast();
npc.setTarget(plr);
if (plr.getKnownSkill(HURRICANE_BOLT) != null) // Verificamos si el jugador tiene la habilidad
{
if (plr.getAffectedSkillLevel(HURRICANE_BOLT) == 1)
{
npc.abortCast();
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);
}
else
{
if (SkillCaster.checkUseConditions(npc, HURRICANE_BOLT_LV_1.getSkill()))
{
npc.doCast(HURRICANE_BOLT_LV_1.getSkill());
}
}
}
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);
}
else
{
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);
}
}
break;
}
}
return null;
}
@Override
public String onKill(Npc npc, Player player, boolean isSummon)
{
final Instance world = npc.getInstanceWorld();
if (world == null)
{
return null;
}
if (npc.getId() == PROCELLA)
{
cancelQuestTimer("SPAWN_MINION", npc, player.getActingPlayer());
cancelQuestTimer("SPAWN_STORM", npc, player.getActingPlayer());
cancelQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", npc, player.getActingPlayer());
}
else if ((world.getParameters().getObject("minion1", Npc.class).isDead()) && (world.getParameters().getObject("minion2", Npc.class).isDead()) && (world.getParameters().getObject("minion3", Npc.class).isDead()))
{
startQuestTimer("HIDE_PROCELLA", 1000, world.getNpc(PROCELLA), null);
}
return super.onKill(npc, player, isSummon);
}
public static void main(String[] args)
{
new ResidenceOfKingProcella();
}
}

View File

@@ -0,0 +1,209 @@
/*
* 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 ai.areas.DwellingOfSpiritsResidence;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SkillFinishType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.skill.SkillCaster;
import ai.AbstractNpcAI;
/**
* @author RobikBobik
*/
public class ResidenceOfQueenNebula extends AbstractNpcAI
{
// NPCs
private static final int NEBULA = 29106;
private static final int WATER_SLIME = 29111;
// Skills
private static final int AQUA_RAGE = 50036;
private static final SkillHolder AQUA_RAGE_1 = new SkillHolder(AQUA_RAGE, 1);
private static final SkillHolder AQUA_RAGE_2 = new SkillHolder(AQUA_RAGE, 2);
private static final SkillHolder AQUA_RAGE_3 = new SkillHolder(AQUA_RAGE, 3);
private static final SkillHolder AQUA_RAGE_4 = new SkillHolder(AQUA_RAGE, 4);
private static final SkillHolder AQUA_RAGE_5 = new SkillHolder(AQUA_RAGE, 5);
private static final SkillHolder AQUA_SUMMON = new SkillHolder(50037, 1);
public ResidenceOfQueenNebula()
{
addKillId(NEBULA, WATER_SLIME);
addAttackId(NEBULA);
addSpawnId(NEBULA);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
switch (event)
{
case "SPAWN_WATER_SLIME":
{
final Instance world = npc.getInstanceWorld();
if (world != null)
{
final Player plr = world.getPlayers().stream().findAny().get();
startQuestTimer("CAST_AQUA_RAGE", 60000 + getRandom(-15000, 15000), npc, plr);
if (npc.getId() == NEBULA)
{
npc.doCast(AQUA_SUMMON.getSkill());
for (int i = 0; i < getRandom(4, 6); i++)
{
addSpawn(npc, WATER_SLIME, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), true, -1, true, npc.getInstanceId());
startQuestTimer("SPAWN_WATER_SLIME", 300000, npc, null);
}
}
}
break;
}
case "PLAYER_PARA":
{
if (player.getAffectedSkillLevel(AQUA_RAGE) == 5)
{
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.FROZEN_PILLAR);
player.setImmobilized(true);
startQuestTimer("PLAYER_UNPARA", 5000, npc, player);
}
break;
}
case "PLAYER_UNPARA":
{
player.getEffectList().stopSkillEffects(SkillFinishType.REMOVED, AQUA_RAGE_5.getSkill());
player.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.FROZEN_PILLAR);
player.setImmobilized(false);
break;
}
case "CAST_AQUA_RAGE":
{
startQuestTimer("CAST_AQUA_RAGE", 5000, npc, player);
if ((player.isInsideRadius3D(npc, 1000)))
{
if (player.getAffectedSkillLevel(AQUA_RAGE) == 1)
{
if (SkillCaster.checkUseConditions(npc, AQUA_RAGE_2.getSkill()))
{
npc.doCast(AQUA_RAGE_2.getSkill());
}
}
else if (player.getAffectedSkillLevel(AQUA_RAGE) == 2)
{
if (SkillCaster.checkUseConditions(npc, AQUA_RAGE_3.getSkill()))
{
npc.doCast(AQUA_RAGE_3.getSkill());
}
}
else if (player.getAffectedSkillLevel(AQUA_RAGE) == 3)
{
if (SkillCaster.checkUseConditions(npc, AQUA_RAGE_4.getSkill()))
{
npc.doCast(AQUA_RAGE_4.getSkill());
}
}
else if (player.getAffectedSkillLevel(AQUA_RAGE) == 4)
{
if (SkillCaster.checkUseConditions(npc, AQUA_RAGE_5.getSkill()))
{
npc.doCast(AQUA_RAGE_5.getSkill());
startQuestTimer("PLAYER_PARA", 100, npc, player);
}
}
else if (player.getAffectedSkillLevel(AQUA_RAGE) == 5)
{
npc.abortCast();
}
else if (SkillCaster.checkUseConditions(npc, AQUA_RAGE_1.getSkill()))
{
npc.doCast(AQUA_RAGE_1.getSkill());
}
}
break;
}
}
return null;
}
@Override
public String onSpawn(Npc npc)
{
startQuestTimer("SPAWN_WATER_SLIME", 300000, npc, null);
return super.onSpawn(npc);
}
@Override
public String onKill(Npc npc, Player player, boolean isSummon)
{
switch (npc.getId())
{
case NEBULA:
{
cancelQuestTimer("CAST_AQUA_RAGE", npc, player);
cancelQuestTimer("SPAWN_WATER_SLIME", npc, player);
break;
}
case WATER_SLIME:
{
if (player.getAffectedSkillLevel(AQUA_RAGE) == 1)
{
if (getRandomBoolean())
{
player.stopSkillEffects(AQUA_RAGE_1.getSkill());
}
}
else if (player.getAffectedSkillLevel(AQUA_RAGE) == 2)
{
if (getRandomBoolean())
{
player.stopSkillEffects(AQUA_RAGE_2.getSkill());
final Skill skill = SkillData.getInstance().getSkill(AQUA_RAGE, 1);
skill.applyEffects(player, player);
}
}
else if (player.getAffectedSkillLevel(AQUA_RAGE) == 3)
{
if (getRandomBoolean())
{
player.stopSkillEffects(AQUA_RAGE_3.getSkill());
final Skill skill = SkillData.getInstance().getSkill(AQUA_RAGE, 2);
skill.applyEffects(player, player);
}
}
else if (player.getAffectedSkillLevel(AQUA_RAGE) == 4)
{
if (getRandomBoolean())
{
player.stopSkillEffects(AQUA_RAGE_4.getSkill());
final Skill skill = SkillData.getInstance().getSkill(AQUA_RAGE, 3);
skill.applyEffects(player, player);
}
}
break;
}
}
return super.onKill(npc, player, isSummon);
}
public static void main(String[] args)
{
new ResidenceOfQueenNebula();
}
}

View File

@@ -54,12 +54,12 @@ public class FrostLordCastleZone extends AbstractNpcAI
private static final AtomicReference<SpawnTemplate> SPAWN_BATTLE_MOBS = new AtomicReference<>();
private static final AtomicReference<SpawnTemplate> SPAWN_ENCHANCED_MOBS = new AtomicReference<>();
public static final int[] REGGIESYS_GLAKIAS =
protected static final int[] REGGIESYS_GLAKIAS =
{
29136,
29137
};
public static final int[] SLICING_GLAKIAS =
protected static final int[] SLICING_GLAKIAS =
{
29138,
29139
@@ -72,21 +72,20 @@ public class FrostLordCastleZone extends AbstractNpcAI
private static final Location GLAKIAS_SPAWN_LOC = new Location(114713, -114799, -11209, 33289);
// Teleports
private static final Location The_north_eastern_entrance = new Location(-56255, 13537, -3336);
private static final Location The_south_eastern_entrance = new Location(-49550, 17189, -3016);
private static final Location The_north_western_entrance = new Location(-52849, 5272, -240);
private static final Location The_south_western_entrance = new Location(-52849, 5272, -240);
private static final Location NORTH_EASTERN_ENTRANCE = new Location(-56255, 13537, -3336);
private static final Location SOUTH_EASTERN_ENTRANCE = new Location(-49550, 17189, -3016);
private static final Location NORTH_WESTERN_ENTRANCE = new Location(-52849, 5272, -240);
private static final Location SOUTH_WESTERN_ENTRANCE = new Location(-52849, 5272, -240);
private static final Location Crossroad = new Location(145598, 144091, -11789);
private static final Location Northern_Secret_Passage = new Location(149478, 147145, -12339);
private static final Location CROSSROAD = new Location(145598, 144091, -11789);
private static final Location NOTHERN_SECRET_PASSAGE = new Location(149478, 147145, -12339);
private static final Location Glakias_House = new Location(113479, -114804, -11076);
private static final Location GLAKIAS_RESIDENCE = new Location(113479, -114804, -11076);
public static final int UNDERCOVER_AGENT = 34230; // Teleport npc
public static final int CRYSTAL_ENERGY = 34232; // Teleport npc
// Zones
private static final ZoneType[] ZONES =
{
ZoneManager.getInstance().getZoneByName("frost_castle_zone"),
@@ -94,7 +93,6 @@ public class FrostLordCastleZone extends AbstractNpcAI
};
// Timings
private static final int[] DAYS_OF_WEEK =
{
Calendar.TUESDAY,
@@ -113,7 +111,7 @@ public class FrostLordCastleZone extends AbstractNpcAI
private static final long DESPAWN_DELAY = 16 * 60 * 60 * 1000;
private static Npc _TeleportchargedCrystal = null;
private static Npc _teleportchargedCrystal = null;
private static final String SCRIPT_BYPASS = "Quest FrostLordCastleZone ";
@@ -138,148 +136,73 @@ public class FrostLordCastleZone extends AbstractNpcAI
{
case "Crossroad":
{
TeleportCheck(player, 1);
teleportCheck(player, 1);
break;
}
case "Northern_Secret_Passage":
{
TeleportCheck(player, 2);
teleportCheck(player, 2);
break;
}
case "The_north_eastern_entrance":
{
TeleportCheck(player, 3);
teleportCheck(player, 3);
break;
}
case "The_south_eastern_entrance":
{
TeleportCheck(player, 4);
teleportCheck(player, 4);
break;
}
case "The_north_western_entrance":
{
TeleportCheck(player, 5);
teleportCheck(player, 5);
break;
}
case "The_south_western_entrance":
{
TeleportCheck(player, 6);
teleportCheck(player, 6);
break;
}
case "Crystal_Energy_Teleport":
{
player.teleToLocation(Glakias_House);
player.teleToLocation(GLAKIAS_RESIDENCE);
break;
}
case "FIRST_RAID_SPAWN":
{
int id = Rnd.get(100) < 7 ? SLICING : REGGIESYS;
addSpawn(id, REGGIESYS_SLICING_SPAWN_LOC, false, DESPAWN_DELAY);
break;
}
case "SECOND_RAID_SPAWN":
{
addSpawn(TIRON, TIRON_SPAWN_LOC, false, DESPAWN_DELAY);
break;
}
default:
{
break;
}
}
return super.onAdvEvent(event, npc, player);
}
private void scheduleFirstRaid()
{
long time = Long.MAX_VALUE;
for (int day : DAYS_OF_WEEK)
{
long nextDateMillis = getNextDateMilis(day, FIRST_RAID_TIME[0], FIRST_RAID_TIME[1]);
if (nextDateMillis < time)
{
time = nextDateMillis;
}
}
startQuestTimer("FIRST_RAID_SPAWN", time - System.currentTimeMillis(), null, null);
}
private void scheduleSecondRaid()
{
long time = Long.MAX_VALUE;
for (int day : DAYS_OF_WEEK)
{
long temp = getNextDateMilis(day, SECOND_RAID_TIME[0], SECOND_RAID_TIME[1]);
if (temp < time)
{
time = temp;
}
}
startQuestTimer("SECOND_RAID_SPAWN", time - System.currentTimeMillis(), null, null);
}
private long getNextDateMilis(int dayOfWeek, int hour, int minute)
{
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
for (int i = 0; i < 7; i++)
{
if ((c.get(Calendar.DAY_OF_WEEK) == dayOfWeek) && (c.getTimeInMillis() > System.currentTimeMillis()))
{
return c.getTimeInMillis();
}
c.add(Calendar.DAY_OF_WEEK, 1);
}
return c.getTimeInMillis();
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
public String onFirstTalk(Npc npc, Player player)
{
switch (npc.getId())
if (npc.getId() == CRYSTAL_ENERGY)
{
case REGGIESYS:
{
addSpawn(REGGIESYS_GLAKIAS[Rnd.get(0, REGGIESYS_GLAKIAS.length - 1)], GLAKIAS_SPAWN_LOC, false, DESPAWN_DELAY);
SPAWN_BATTLE_MOBS.set(SpawnData.getInstance().getSpawnByName("glakias_mobs_pretorian"));
SPAWN_BATTLE_MOBS.get().getGroups().forEach(SpawnGroup::despawnAll);
SPAWN_BATTLE_MOBS.get().getGroups().forEach(SpawnGroup::spawnAll);
break;
}
case SLICING:
{
addSpawn(SLICING_GLAKIAS[Rnd.get(0, SLICING_GLAKIAS.length - 1)], GLAKIAS_SPAWN_LOC, false, DESPAWN_DELAY);
SPAWN_BATTLE_MOBS.set(SpawnData.getInstance().getSpawnByName("glakias_mobs_pretorian"));
SPAWN_BATTLE_MOBS.get().getGroups().forEach(SpawnGroup::despawnAll);
SPAWN_BATTLE_MOBS.get().getGroups().forEach(SpawnGroup::spawnAll);
break;
}
case TIRON:
{
_TeleportchargedCrystal = addSpawn(CHARGED_CRYSTAL, CHARGED_CRYSTAL_SPAWN_LOC, false, DESPAWN_DELAY);
break;
}
return getHtm(player, "34232.htm");
}
DeleteGlakiasSpawns(npc);
return super.onKill(npc, killer, false);
if (npc.getId() == UNDERCOVER_AGENT)
{
if ((_teleportchargedCrystal != null) && _teleportchargedCrystal.isSpawned())
{
return getHtm(player, "34230-full.htm");
}
return getHtm(player, "34230.htm");
}
return null;
}
@Override
@@ -325,47 +248,133 @@ public class FrostLordCastleZone extends AbstractNpcAI
}
}
public void TeleportCheck(Player player, int locNum)
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
switch (npc.getId())
{
case REGGIESYS:
{
addSpawn(REGGIESYS_GLAKIAS[Rnd.get(0, REGGIESYS_GLAKIAS.length - 1)], GLAKIAS_SPAWN_LOC, false, DESPAWN_DELAY);
SPAWN_BATTLE_MOBS.set(SpawnData.getInstance().getSpawnByName("glakias_mobs_pretorian"));
SPAWN_BATTLE_MOBS.get().getGroups().forEach(SpawnGroup::despawnAll);
SPAWN_BATTLE_MOBS.get().getGroups().forEach(SpawnGroup::spawnAll);
break;
}
case SLICING:
{
addSpawn(SLICING_GLAKIAS[Rnd.get(0, SLICING_GLAKIAS.length - 1)], GLAKIAS_SPAWN_LOC, false, DESPAWN_DELAY);
SPAWN_BATTLE_MOBS.set(SpawnData.getInstance().getSpawnByName("glakias_mobs_pretorian"));
SPAWN_BATTLE_MOBS.get().getGroups().forEach(SpawnGroup::despawnAll);
SPAWN_BATTLE_MOBS.get().getGroups().forEach(SpawnGroup::spawnAll);
break;
}
case TIRON:
{
_teleportchargedCrystal = addSpawn(CHARGED_CRYSTAL, CHARGED_CRYSTAL_SPAWN_LOC, false, DESPAWN_DELAY);
break;
}
}
deleteGlakiasSpawns(npc);
return super.onKill(npc, killer, false);
}
@RegisterEvent(EventType.ON_PLAYER_BYPASS)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerBypass(OnPlayerBypass event)
{
final Player player = event.getPlayer();
if (event.getCommand().startsWith(SCRIPT_BYPASS))
{
notifyEvent(event.getCommand().replace(SCRIPT_BYPASS, ""), null, player);
}
}
private void scheduleFirstRaid()
{
long time = Long.MAX_VALUE;
for (int day : DAYS_OF_WEEK)
{
final long nextDateMillis = getNextDateMilis(day, FIRST_RAID_TIME[0], FIRST_RAID_TIME[1]);
if (nextDateMillis < time)
{
time = nextDateMillis;
}
}
startQuestTimer("FIRST_RAID_SPAWN", time - System.currentTimeMillis(), null, null);
}
private void scheduleSecondRaid()
{
long time = Long.MAX_VALUE;
for (int day : DAYS_OF_WEEK)
{
final long nextDateMillis = getNextDateMilis(day, SECOND_RAID_TIME[0], SECOND_RAID_TIME[1]);
if (nextDateMillis < time)
{
time = nextDateMillis;
}
}
startQuestTimer("SECOND_RAID_SPAWN", time - System.currentTimeMillis(), null, null);
}
private long getNextDateMilis(int dayOfWeek, int hour, int minute)
{
final Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
for (int i = 0; i < 7; i++)
{
if ((calendar.get(Calendar.DAY_OF_WEEK) == dayOfWeek) && (calendar.getTimeInMillis() > System.currentTimeMillis()))
{
return calendar.getTimeInMillis();
}
calendar.add(Calendar.DAY_OF_WEEK, 1);
}
return calendar.getTimeInMillis();
}
public void teleportCheck(Player player, int locationId)
{
int requiredMoney = 0;
Location teleportLocation = null;
switch (locNum)
switch (locationId)
{
case 1:
{
requiredMoney = 100000;
teleportLocation = Crossroad;
teleportLocation = CROSSROAD;
break;
}
case 2:
{
requiredMoney = 100000;
teleportLocation = Northern_Secret_Passage;
teleportLocation = NOTHERN_SECRET_PASSAGE;
break;
}
case 3:
{
requiredMoney = 500000;
teleportLocation = The_north_eastern_entrance;
teleportLocation = NORTH_EASTERN_ENTRANCE;
break;
}
case 4:
{
requiredMoney = 500000;
teleportLocation = The_south_eastern_entrance;
teleportLocation = SOUTH_EASTERN_ENTRANCE;
break;
}
case 5:
{
requiredMoney = 500000;
teleportLocation = The_north_western_entrance;
teleportLocation = NORTH_WESTERN_ENTRANCE;
break;
}
case 6:
{
requiredMoney = 500000;
teleportLocation = The_south_western_entrance;
teleportLocation = SOUTH_WESTERN_ENTRANCE;
break;
}
default:
@@ -383,33 +392,7 @@ public class FrostLordCastleZone extends AbstractNpcAI
player.teleToLocation(teleportLocation);
}
@Override
public String onFirstTalk(Npc npc, Player player)
{
String html;
if (npc.getId() == CRYSTAL_ENERGY)
{
html = getHtm(player, "34232.htm");
return html;
}
if (npc.getId() == UNDERCOVER_AGENT)
{
if ((_TeleportchargedCrystal != null) && _TeleportchargedCrystal.isSpawned())
{
html = getHtm(player, "34230-full.htm");
}
else
{
html = getHtm(player, "34230.htm");
}
return html;
}
return null;
}
private void DeleteGlakiasSpawns(Npc npc)
private void deleteGlakiasSpawns(Npc npc)
{
int npcId = npc.getId();
if ((npcId == REGGIESYS_GLAKIAS[0]) || (npcId == REGGIESYS_GLAKIAS[1]) || (npcId == SLICING_GLAKIAS[0]) || (npcId == SLICING_GLAKIAS[1]))
@@ -418,19 +401,8 @@ public class FrostLordCastleZone extends AbstractNpcAI
}
}
@RegisterEvent(EventType.ON_PLAYER_BYPASS)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerBypass(OnPlayerBypass event)
{
final Player player = event.getPlayer();
if (event.getCommand().startsWith(SCRIPT_BYPASS))
{
notifyEvent(event.getCommand().replace(SCRIPT_BYPASS, ""), null, player);
}
}
public static void main(String[] args)
{
new FrostLordCastleZone();
}
}
}

View File

@@ -37,6 +37,7 @@ import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.Door;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
@@ -254,6 +255,8 @@ public class TvT extends Event
final InstanceManager manager = InstanceManager.getInstance();
final InstanceTemplate template = manager.getInstanceTemplate(INSTANCE_ID);
PVP_WORLD = manager.createInstance(template, null);
// Make sure doors are closed.
PVP_WORLD.getDoors().forEach(Door::closeMe);
// Randomize player list and separate teams.
final List<Player> playerList = new ArrayList<>(PLAYER_LIST.size());
playerList.addAll(PLAYER_LIST);

View File

@@ -43,6 +43,8 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("AdditionalPotionHp", AdditionalPotionHp::new);
EffectHandler.getInstance().registerHandler("AdditionalPotionMp", AdditionalPotionMp::new);
EffectHandler.getInstance().registerHandler("AddPcCafePoints", AddPcCafePoints::new);
EffectHandler.getInstance().registerHandler("AddMaxPhysicalCriticalRate", AddMaxPhysicalCriticalRate::new);
EffectHandler.getInstance().registerHandler("AddMaxMagicCriticalRate", AddMaxMagicCriticalRate::new);
EffectHandler.getInstance().registerHandler("AddSkillBySkill", AddSkillBySkill::new);
EffectHandler.getInstance().registerHandler("AddTeleportBookmarkSlot", AddTeleportBookmarkSlot::new);
EffectHandler.getInstance().registerHandler("AgathionSlot", AgathionSlot::new);
@@ -176,6 +178,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("GiveFame", GiveFame::new);
EffectHandler.getInstance().registerHandler("GiveHonorCoins", GiveHonorCoins::new);
EffectHandler.getInstance().registerHandler("GiveItemByExp", GiveItemByExp::new);
EffectHandler.getInstance().registerHandler("GivePetXp", GivePetXp::new);
EffectHandler.getInstance().registerHandler("GiveRecommendation", GiveRecommendation::new);
EffectHandler.getInstance().registerHandler("GiveSp", GiveSp::new);
EffectHandler.getInstance().registerHandler("GiveXp", GiveXp::new);
@@ -199,6 +202,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("HpRegen", HpRegen::new);
EffectHandler.getInstance().registerHandler("HpToOwner", HpToOwner::new);
EffectHandler.getInstance().registerHandler("IgnoreDeath", IgnoreDeath::new);
EffectHandler.getInstance().registerHandler("IgnoreReduceDamage", IgnoreReduceDamage::new);
EffectHandler.getInstance().registerHandler("ImmobileDamageBonus", ImmobileDamageBonus::new);
EffectHandler.getInstance().registerHandler("ImmobileDamageResist", ImmobileDamageResist::new);
EffectHandler.getInstance().registerHandler("ImmobilePetBuff", ImmobilePetBuff::new);
@@ -240,7 +244,6 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("MAtkByPAtk", MAtkByPAtk::new);
EffectHandler.getInstance().registerHandler("MaxCp", MaxCp::new);
EffectHandler.getInstance().registerHandler("MaxHp", MaxHp::new);
EffectHandler.getInstance().registerHandler("MaxMagicCriticalRate", MaxMagicCriticalRate::new);
EffectHandler.getInstance().registerHandler("MaxMp", MaxMp::new);
EffectHandler.getInstance().registerHandler("ModifyBeastPoints", ModifyBeastPoints::new);
EffectHandler.getInstance().registerHandler("ModifyCraftPoints", ModifyCraftPoints::new);

View File

@@ -148,6 +148,7 @@ import handlers.bypasshandlers.Link;
import handlers.bypasshandlers.Multisell;
import handlers.bypasshandlers.NpcViewMod;
import handlers.bypasshandlers.Observation;
import handlers.bypasshandlers.PetExtractWindow;
import handlers.bypasshandlers.PlayerHelp;
import handlers.bypasshandlers.PrivateWarehouse;
import handlers.bypasshandlers.QuestLink;
@@ -468,6 +469,7 @@ public class MasterHandler
Multisell.class,
NpcViewMod.class,
Observation.class,
PetExtractWindow.class,
QuestLink.class,
PlayerHelp.class,
PrivateWarehouse.class,

View File

@@ -0,0 +1,56 @@
/*
* 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 handlers.bypasshandlers;
import org.l2jmobius.gameserver.handler.IBypassHandler;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.network.serverpackets.pet.ShowPetExtractSystem;
/**
* @author Geremy
*/
public class PetExtractWindow implements IBypassHandler
{
private static final String[] COMMANDS =
{
"pet_extract_window",
};
@Override
public boolean useBypass(String command, Player player, Creature target)
{
if (!target.isNpc())
{
return false;
}
if (command.toLowerCase().startsWith(COMMANDS[0]))
{
player.sendPacket(ShowPetExtractSystem.STATIC_PACKET);
return true;
}
return false;
}
@Override
public String[] getBypassList()
{
return COMMANDS;
}
}

View File

@@ -113,7 +113,7 @@ public class MonsterDailyMissionHandler extends AbstractDailyMissionHandler
final Player player = event.getAttacker();
final int monsterLevel = monster.getLevel();
if ((_minLevel > 0) && ((monsterLevel < _minLevel) || (monsterLevel > _maxLevel) || ((player.getLevel() - monsterLevel) > 5)))
if ((_minLevel > 0) && ((monsterLevel < _minLevel) || (monsterLevel > _maxLevel) || ((player.getLevel() - monsterLevel) > 15)))
{
return;
}

View File

@@ -1,31 +1,31 @@
/*
* 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 handlers.effecthandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.stats.Stat;
/**
* @author Mobius
*/
public class MaxMagicCriticalRate extends AbstractStatEffect
{
public MaxMagicCriticalRate(StatSet params)
{
super(params, Stat.MAX_MAGIC_CRITICAL_RATE);
}
}
/*
* 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 handlers.effecthandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.stats.Stat;
/**
* @author fruit
*/
public class AddMaxMagicCriticalRate extends AbstractStatEffect
{
public AddMaxMagicCriticalRate(StatSet params)
{
super(params, Stat.ADD_MAX_MAGIC_CRITICAL_RATE);
}
}

View File

@@ -0,0 +1,31 @@
/*
* 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 handlers.effecthandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.stats.Stat;
/**
* @author fruit
*/
public class AddMaxPhysicalCriticalRate extends AbstractStatEffect
{
public AddMaxPhysicalCriticalRate(StatSet params)
{
super(params, Stat.ADD_MAX_PHYSICAL_CRITICAL_RATE);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.model.StatSet;
@@ -26,6 +27,7 @@ import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.BuffInfo;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.skill.SkillCaster;
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
/**
* Call Skill effect implementation.
@@ -58,7 +60,7 @@ public class CallSkill extends AbstractEffect
return;
}
Skill triggerSkill = null;
final Skill triggerSkill;
if (_skillLevelScaleTo <= 0)
{
// Mobius: Use 0 to trigger max effector learned skill level.
@@ -72,6 +74,7 @@ public class CallSkill extends AbstractEffect
else
{
LOGGER.warning("Player " + effector + " called unknown skill " + _skill + " triggered by " + skill + " CallSkill.");
return;
}
}
else
@@ -100,7 +103,21 @@ public class CallSkill extends AbstractEffect
return;
}
SkillCaster.triggerCast(effector, effected, triggerSkill);
final int hitTime = triggerSkill.getHitTime();
if (hitTime > 0)
{
if (effector.isSkillDisabled(triggerSkill))
{
return;
}
effector.broadcastPacket(new MagicSkillUse(effector, effected, triggerSkill.getDisplayId(), triggerSkill.getLevel(), hitTime, 0));
ThreadPool.schedule(() -> SkillCaster.triggerCast(effector, effected, triggerSkill), hitTime);
}
else
{
SkillCaster.triggerCast(effector, effected, triggerSkill);
}
}
else
{

View File

@@ -0,0 +1,53 @@
/*
* 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 handlers.effecthandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
/**
* @author Geremy
*/
public class GivePetXp extends AbstractEffect
{
private final int _xp;
public GivePetXp(StatSet params)
{
_xp = params.getInt("xp", 0);
}
@Override
public boolean isInstant()
{
return true;
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, Item item)
{
if (!effector.hasPet())
{
return;
}
effected.getActingPlayer().getPet().addExpAndSp(_xp, 0);
}
}

View File

@@ -0,0 +1,31 @@
/*
* 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 handlers.effecthandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.stats.Stat;
/**
* @author fruit
*/
public class IgnoreReduceDamage extends AbstractStatEffect
{
public IgnoreReduceDamage(StatSet params)
{
super(params, Stat.IGNORE_REDUCE_DAMAGE);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -25,6 +26,7 @@ import org.l2jmobius.gameserver.model.events.listeners.FunctionEventListener;
import org.l2jmobius.gameserver.model.events.returns.DamageReturn;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat;
/**
* @author Sdw
@@ -32,10 +34,12 @@ import org.l2jmobius.gameserver.model.skill.Skill;
public class ReduceDamage extends AbstractEffect
{
private final double _amount;
private final StatModifierType _mode;
public ReduceDamage(StatSet params)
{
_amount = params.getDouble("amount");
_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
}
private DamageReturn onDamageReceivedEvent(OnCreatureDamageReceived event)
@@ -46,7 +50,15 @@ public class ReduceDamage extends AbstractEffect
return null;
}
final double newDamage = event.getDamage() * (_amount / 100);
final double newDamage;
if (_mode == StatModifierType.PER)
{
newDamage = event.getDamage() - (event.getDamage() * (_amount / 100));
}
else // DIFF
{
newDamage = event.getDamage() - Math.max((_amount - event.getAttacker().getStat().getAdd(Stat.IGNORE_REDUCE_DAMAGE)), 0.0);
}
return new DamageReturn(false, true, false, newDamage);
}

View File

@@ -210,6 +210,11 @@ public class TriggerSkillByAttack extends AbstractEffect
else
{
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
if (event.getAttacker().isSkillDisabled(buffInfo.getSkill()))
{
return;
}
}
if ((buffInfo == null) || (buffInfo.getSkill().getLevel() < triggerSkill.getLevel()) || _renewDuration)

View File

@@ -124,6 +124,15 @@ public class TriggerSkillBySkill extends AbstractEffect
if (buffInfo != null)
{
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
if (event.getCaster().isSkillDisabled(buffInfo.getSkill()))
{
if ((_replace) && (buffInfo.getSkill().getLevel() == _skillLevelScaleTo))
{
((Creature) target).stopSkillEffects(SkillFinishType.SILENT, triggerSkill.getId());
}
return;
}
}
else
{

View File

@@ -17,7 +17,13 @@
package handlers.effecthandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Sero
@@ -28,4 +34,46 @@ public class WeaponBonusMAtk extends AbstractStatAddEffect
{
super(params, Stat.WEAPON_BONUS_MAGIC_ATTACK);
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
{
final Player player = effected.getActingPlayer();
if (player == null)
{
return;
}
final Item weapon = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
if (weapon == null)
{
return;
}
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(weapon);
player.sendInventoryUpdate(iu);
player.broadcastUserInfo();
}
@Override
public void onExit(Creature effector, Creature effected, Skill skill)
{
final Player player = effected.getActingPlayer();
if (player == null)
{
return;
}
final Item weapon = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
if (weapon == null)
{
return;
}
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(weapon);
player.sendInventoryUpdate(iu);
player.broadcastUserInfo();
}
}

View File

@@ -17,7 +17,13 @@
package handlers.effecthandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Sero
@@ -28,4 +34,46 @@ public class WeaponBonusPAtk extends AbstractStatAddEffect
{
super(params, Stat.WEAPON_BONUS_PHYSICAL_ATTACK);
}
@Override
public void onStart(Creature effector, Creature effected, Skill skill, Item item)
{
final Player player = effected.getActingPlayer();
if (player == null)
{
return;
}
final Item weapon = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
if (weapon == null)
{
return;
}
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(weapon);
player.sendInventoryUpdate(iu);
player.broadcastUserInfo();
}
@Override
public void onExit(Creature effector, Creature effected, Skill skill)
{
final Player player = effected.getActingPlayer();
if (player == null)
{
return;
}
final Item weapon = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
if (weapon == null)
{
return;
}
final InventoryUpdate iu = new InventoryUpdate();
iu.addModifiedItem(weapon);
player.sendInventoryUpdate(iu);
player.broadcastUserInfo();
}
}

View File

@@ -16,39 +16,61 @@
*/
package handlers.playeractions;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.handler.IPlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.actor.instance.Pet;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* Pet attack player action handler.
* @author Nik
* @author Mobius
*/
public class PetAttack implements IPlayerActionHandler
{
@Override
public void useAction(Player player, ActionDataHolder data, boolean ctrlPressed, boolean shiftPressed)
{
if ((player.getPet() == null) || !player.getPet().isPet())
final Pet pet = player.getPet();
if ((pet == null) || !pet.isPet())
{
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_PET);
return;
}
final Pet pet = player.getPet();
if (pet.isUncontrollable())
{
player.sendPacket(SystemMessageId.WHEN_YOUR_PET_S_SATIETY_REACHES_0_YOU_CANNOT_CONTROL_IT);
return;
}
else if (pet.isBetrayed())
if (pet.isBetrayed())
{
player.sendPacket(SystemMessageId.YOUR_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS);
return;
}
else if (pet.canAttack(player.getTarget(), ctrlPressed))
final WorldObject target = player.getTarget();
if (target == null)
{
pet.doAttack(player.getTarget());
return;
}
if (player.calculateDistance3D(target) > 3000)
{
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
}
else if (pet.canAttack(target, ctrlPressed))
{
pet.doAttack(target);
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -52,4 +52,10 @@ public class PetHold implements IPlayerActionHandler
((SummonAI) pet.getAI()).notifyFollowStatusChange();
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -53,4 +53,10 @@ public class PetMove implements IPlayerActionHandler
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation());
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -77,4 +77,10 @@ public class PetSkillUse implements IPlayerActionHandler
}
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -51,4 +51,10 @@ public class PetStop implements IPlayerActionHandler
pet.cancelAction();
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -16,34 +16,52 @@
*/
package handlers.playeractions;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.handler.IPlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* Servitor Attack player action handler.
* @author St3eT
* @author Mobius
*/
public class ServitorAttack implements IPlayerActionHandler
{
@Override
public void useAction(Player player, ActionDataHolder data, boolean ctrlPressed, boolean shiftPressed)
{
if (player.hasServitors())
{
for (Summon summon : player.getServitors().values())
{
if (summon.canAttack(player.getTarget(), ctrlPressed))
{
summon.doAttack(player.getTarget());
}
}
}
else
if (!player.hasServitors())
{
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
return;
}
final WorldObject target = player.getTarget();
if (target == null)
{
return;
}
final boolean targetOutOfRange = player.calculateDistance3D(target) > 3000;
for (Summon summon : player.getServitors().values())
{
if (targetOutOfRange)
{
summon.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
}
else if (summon.canAttack(target, ctrlPressed))
{
summon.doAttack(target);
}
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -48,4 +48,10 @@ public class ServitorHold implements IPlayerActionHandler
((SummonAI) s.getAI()).notifyFollowStatusChange();
});
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -68,4 +68,10 @@ public class ServitorMode implements IPlayerActionHandler
}
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -56,4 +56,10 @@ public class ServitorMove implements IPlayerActionHandler
}
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -62,4 +62,10 @@ public class ServitorSkillUse implements IPlayerActionHandler
}
});
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -47,4 +47,10 @@ public class ServitorStop implements IPlayerActionHandler
s.cancelAction();
});
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -62,4 +62,10 @@ public class UnsummonPet implements IPlayerActionHandler
pet.unSummon(player);
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -69,4 +69,10 @@ public class UnsummonServitor implements IPlayerActionHandler
player.sendPacket(SystemMessageId.YOU_DON_T_HAVE_A_SERVITOR);
}
}
@Override
public boolean isPetAction()
{
return true;
}
}

View File

@@ -39,10 +39,11 @@ public class OpSkillAcquireSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
if (!target.isCreature())
if ((target == null) || !target.isCreature())
{
return false;
}
final int skillLevel = ((Creature) target).getSkillLevel(_skillId);
return _hasLearned ? skillLevel != 0 : skillLevel == 0;
}

View File

@@ -67,7 +67,7 @@ public class PartyPledge implements IAffectScopeHandler
return false;
}
if ((p != player) && (p.getClanId() != clanId) && ((party == null) || (party != p.getParty())))
if ((p != player) && ((clanId == 0) || (p.getClanId() != clanId)) && ((party == null) || (party != p.getParty())))
{
return false;
}

View File

@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.ai.AttackableAI;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.enums.ShortcutType;
import org.l2jmobius.gameserver.enums.SkillFinishType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
@@ -60,6 +61,8 @@ public class TimedHunting extends AbstractInstance
private static final int DEBBIE = 34126; // War-Torn Plains 70-79
// Skill
private static final int BUFF = 45197;
private static final int BUFF_FOR_KAMAEL = 45198;
// Misc
private static final int[] TEMPLATES =
{
@@ -201,7 +204,14 @@ public class TimedHunting extends AbstractInstance
}
npc.setTarget(player);
if (!player.getEffectList().isAffectedBySkill(BUFF))
if (player.getRace() == Race.KAMAEL)
{
if (!player.getEffectList().isAffectedBySkill(BUFF_FOR_KAMAEL))
{
npc.doCast(new SkillHolder(BUFF_FOR_KAMAEL, 1).getSkill());
}
}
else if (!player.getEffectList().isAffectedBySkill(BUFF))
{
npc.doCast(new SkillHolder(BUFF, 1).getSkill());
}
@@ -276,6 +286,7 @@ public class TimedHunting extends AbstractInstance
player.sendPacket(new TimedHuntingZoneExit(108)); // Training Zone id.
player.getEffectList().stopSkillEffects(SkillFinishType.REMOVED, BUFF);
player.getEffectList().stopSkillEffects(SkillFinishType.REMOVED, BUFF_FOR_KAMAEL);
instance.setParameter("PlayerIsOut", true);
// Restore normal skills.

View File

@@ -677,38 +677,38 @@
</option>
<option id="50188" name="o_s_cl_deliverance">
<!-- <Arcane Deliverance>\nWhen triggered: Recovers 6000 HP, 1000 MP and 3000 CP when HP is lower than 20%. -->
<passive_skill id="39325" level="2" /> <!-- unknown skill -->
<passive_skill id="39325" level="1" /> <!-- Arcane Deliverance -->
</option>
<option id="50189" name="o_s_cl_speed">
<!-- <Arcane Speed>\nWhen triggered: Atk. Spd. +100, Casting Spd. +150, Speed +10. -->
<passive_skill id="39326" level="3" /> <!-- unknown skill -->
<passive_skill id="39326" level="1" /> <!-- Arcane Speed -->
</option>
<option id="50190" name="o_s_cl_barrier">
<!-- <Arcane Barrier>\nWhen triggered: Absorbs 4000 damage. -->
<passive_skill id="39327" level="3" /> <!-- unknown skill -->
<passive_skill id="39327" level="1" /> <!-- Arcane Barrier -->
</option>
<option id="50191" name="o_s_cl_immunity">
<!-- <Arcane Immunity>\nWhen triggered: Grants immunity to debuffs. -->
<passive_skill id="39328" level="3" /> <!-- unknown skill -->
<passive_skill id="39328" level="1" /> <!-- Arcane Immunity -->
</option>
<option id="50192" name="o_s_cl_protection">
<!-- <Arcane Protection>\nWhen triggered: P. Def. +3000, M. Def. +2100. -->
<passive_skill id="39329" level="3" /> <!-- unknown skill -->
<passive_skill id="39329" level="1" /> <!-- Arcane Protection -->
</option>
<option id="50193" name="o_s_cl_paralysis">
<!-- <Arcane Paralysis>\nWhen triggered: Paralyzes the target. -->
<passive_skill id="39330" level="3" /> <!-- unknown skill -->
<passive_skill id="39330" level="1" /> <!-- Arcane Paralysis -->
</option>
<option id="50194" name="o_s_cl_silence">
<!-- <Arcane Silence>\nWhen triggered: Inflicts Silence on the target. -->
<passive_skill id="39331" level="3" /> <!-- unknown skill -->
<passive_skill id="39331" level="1" /> <!-- Arcane Silence -->
</option>
<option id="50195" name="o_s_cl_sense">
<!-- <Arcane Critical Sense>\nAll Critical Rate +3%, All Critical Damage +150 -->
<passive_skill id="39332" level="3" /> <!-- unknown skill -->
<passive_skill id="39332" level="1" /> <!-- Arcane Critical Sense -->
</option>
<option id="50196" name="o_s_cl_power">
<!-- <Arcane Power>\nP. Atk. +350, M. Atk. +500 -->
<passive_skill id="39333" level="3" /> <!-- unknown skill -->
<passive_skill id="39333" level="1" /> <!-- Arcane Power -->
</option>
</list>

View File

@@ -1430,13 +1430,23 @@
<item id="49489" name="Chest of Enchant Scroll's Parts" additionalName="Not Available" type="EtcItem">
<!-- Double-click to get more information about the contents. -->
<set name="icon" val="icon.etc_ertheia2" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="default_action" val="PEEL" />
<set name="material" val="FISH" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="is_freightable" val="true" />
<set name="immediate_effect" val="true" />
<set name="handler" val="ExtractableItems" />
<capsuled_items>
<item id="49474" min="1" max="1" chance="20" /> <!-- Scroll Part: Enchant Weapon -->
<item id="49475" min="1" max="1" chance="50" /> <!-- Scroll Part: Enchant Armor -->
<item id="49476" min="1" max="1" chance="2" /> <!-- Refined Scroll Part: Enchant Weapon -->
<item id="49478" min="1" max="1" chance="13" /> <!-- Refined Scroll Part: Enchant Armor -->
<item id="49479" min="1" max="1" chance="2" /> <!-- Solid Scroll Part: Enchant Weapon -->
<item id="49480" min="1" max="1" chance="13" /> <!-- Solid Scroll Part: Enchant Armor -->
</capsuled_items>
</item>
<item id="49490" name="Fishing Kit" additionalName="Sealed" type="EtcItem">
<!-- Double-click to get more information about the contents. -->

View File

@@ -386,6 +386,8 @@
<!-- Momentarily recovers 600 HP. If HP is full, CP is recovered. -->
<set name="icon" val="icon.etc_potion_red_i00" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="POTION" />
<set name="immediate_effect" val="true" />
<set name="material" val="LIQUID" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
@@ -441,6 +443,12 @@
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="is_freightable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="is_event_restricted" val="true" />
<set name="commissionItemType" val="POTION" />
<skills>
<skill id="39103" level="1" /> <!-- Quick Hero Healing Potion -->
</skills>
</item>
<item id="49534" name="Hero's Cube" additionalName="7-day" type="EtcItem">
<!-- Available for 7 days. Required level: 20. Double-click to obtain Soulshot Ticket, Buff Scroll Chest, Hero's Top-grade HP Replenishing Potion, Hero's HP Recovery Potion, Angel Cat's Blessing, Improved Scroll of Resurrection, Chest of Enchant Scroll's Parts, Fishing Kit, Box of Scroll of Escape to Base, Blade Spirit, Spellbook Chest. Can be used only once a day. -->

View File

@@ -789,6 +789,10 @@
<set name="is_destroyable" val="false" />
<set name="is_sellable" val="false" />
<set name="time" val="10080" />
<set name="handler" val="ItemSkills" />
<skills>
<skill id="39199" level="1" /> <!-- Hero's Wondrous Cubic -->
</skills>
</item>
<item id="49861" name="Life Stone - Tester" additionalName="Not Available" type="EtcItem">
<!-- The item is not available. Test. -->

View File

@@ -292,6 +292,16 @@
<cond msgId="113" addName="1">
<player level="60" />
</cond>
<skills>
<skill id="35020" level="1" type="ON_EQUIP" /> <!-- Equip Talisman - Baium -->
<skill id="35021" level="1" type="ON_UNEQUIP" /> <!-- Unequip Talisman - Baium -->
<skill id="35017" level="7" /> <!-- Equip Talisman - Baium -->
<skill id="50191" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Enchant Effect: +1 Talisman of Baium -->
<skill id="50191" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Enchant Effect: +2 Talisman of Baium -->
<skill id="50191" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Enchant Effect: +3 Talisman of Baium -->
<skill id="50191" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Enchant Effect: +4 Talisman of Baium -->
<skill id="50191" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Enchant Effect: +5 Talisman of Baium -->
</skills>
</item>
<item id="94120" name="Package: Talisman of Baium" additionalName="Sealed" type="EtcItem">
<!-- Double-click to get more information about the contents. -->

View File

@@ -1232,7 +1232,10 @@
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="material" val="PAPER" />
<set name="handler" val="ItemSkills" />
<skills>
<skill id="40238" level="1" /> <!-- XP +100,000,000 -->
</skills>
</item>
<item id="94481" name="Clan XP" additionalName="Sealed" type="EtcItem">
<!-- Clan XP is granted as a reward. -->

View File

@@ -190,7 +190,10 @@
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="material" val="PAPER" />
<set name="handler" val="ItemSkills" />
<skills>
<skill id="40241" level="1" />
</skills>
</item>
<item id="94518" name="Amber Lv. 5" additionalName="Sealed" type="Armor">
<!-- <Active skill>. Interrupts the target's skill casting. <PvP effect>. Ignores CP and deals 2000 fixed damage. Effects of two identical jewels do not stack, the higher-level jewel takes precedence. -->

View File

@@ -604,7 +604,10 @@
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="material" val="PAPER" />
<set name="handler" val="ItemSkills" />
<skills>
<skill id="40250" level="1" /> <!-- XP +100,000,000 -->
</skills>
</item>
<item id="94636" name="Pet's XP Growth Scroll" additionalName="Sealed" type="EtcItem">
<!-- Applies a buff when used. <Buff effect>. A pet's acquired XP +30%. Duration: 20 min. Cooldown: 1 min. The effect disappears when a pet dies or is unsummoned. -->

View File

@@ -3201,7 +3201,7 @@
<walk ground="40" />
<run ground="180" />
</speed>
<attack physical="3611" magical="2465" critical="4" attackSpeed="250" range="40" />
<attack physical="3611" magical="2465" critical="4" attackSpeed="253" range="40" />
<defence physical="2383" magical="1045" />
</stats>
<status attackable="false" />
@@ -3365,7 +3365,7 @@
<walk ground="40" />
<run ground="180" />
</speed>
<attack physical="3611" magical="2465" critical="4" attackSpeed="250" range="40" />
<attack physical="3611" magical="2465" critical="4" attackSpeed="253" range="40" />
<defence physical="2383" magical="1045" />
</stats>
<status attackable="false" />

View File

@@ -1318,6 +1318,7 @@
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
<value level="4">4</value>
</abnormalLevel>
<abnormalTime>3</abnormalTime>
<abnormalType>KNOCKDOWN</abnormalType>

View File

@@ -57,7 +57,19 @@
</skill>
<skill id="39103" toLevel="1" name="Hero's HP Recovery Potion">
<icon>icon.etc_reagent_white_i00</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="HpCpHeal">
<amount>500</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="39104" toLevel="1" name="Hero's Cube - 7 d.">
<icon>icon.sa_cube</icon>
@@ -2493,6 +2505,59 @@
</skill>
<skill id="39199" toLevel="1" name="Hero's Wondrous Cube - 7 d.">
<icon>icon.sa_cube</icon>
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<reuseDelay>-1</reuseDelay>
<hitTime>500</hitTime>
<coolTime>500</coolTime>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="OpEncumbered">
<weightPercent>20</weightPercent>
<slotsPercent>10</slotsPercent>
</condition>
</conditions>
<effects>
<effect name="RestorationRandom">
<items>
<item chance="16">
<item id="49487" count="2"/> <!-- Soulshot Ticket -->
</item>
<item chance="4">
<item id="49772" count="1"/> <!-- Scroll of Mood Melody -->
</item>
<item chance="16.49">
<item id="49488" count="5"/> <!-- Major Healing Potion -->
</item>
<item chance="20">
<item id="35669" count="1"/> <!-- Angel Cat's Blessing -->
</item>
<item chance="5">
<item id="49533" count="1"/> <!-- Quick Hero Healing Potion -->
</item>
<item chance="10">
<item id="49542" count="1"/> <!-- Improved Scroll of Resurrection -->
</item>
<item chance="14.5">
<item id="49536" count="1"/> <!-- Box of Scroll of Escape to the Base -->
</item>
<item chance="2">
<item id="49489" count="3"/> <!-- Parts of Enchantment Scrolls Chest -->
</item>
<item chance="10">
<item id="49416" count="1"/> <!-- Blade Spirit -->
</item>
<item chance="0.01">
<item id="49859" count="1"/> <!-- Weapon Exchange Coupon -->
</item>
<item chance="2">
<item id="49490" count="1"/> <!-- Fishing Kit -->
</item>
</items>
</effect>
</effects>
</skill>
</list>

View File

@@ -2064,7 +2064,7 @@
<abnormalTime>1200</abnormalTime>
<abnormalLevel>
<value level="1">1</value>
<value level="1">2</value>
<value level="2">2</value>
</abnormalLevel>
<isMagic>4</isMagic>
<reuseDelay>60000</reuseDelay>

View File

@@ -532,14 +532,14 @@
</effect>
</effects>
</skill>
<skill id="39325" toLevel="3" name="Arcane Deliverance">
<skill id="39325" toLevel="1" name="Arcane Deliverance">
<!-- Recovers HP/ MP/ CP after an attack. (Triggers when Max HP is at 20% or lower.). (Cooldown: 300 sec.) -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>
<hitTime>500</hitTime>
<reuseDelay>900000</reuseDelay>
</skill>
<skill id="39326" toLevel="3" name="Arcane Speed">
<skill id="39326" toLevel="1" name="Arcane Speed">
<!-- Temporarily increases Speed, Atk. Spd. and Casting Spd. after an attack. (Cooldown: 300 sec.) -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>
@@ -547,7 +547,7 @@
<reuseDelay>900000</reuseDelay>
<effectPoint>100</effectPoint>
</skill>
<skill id="39327" toLevel="3" name="Arcane Barrier">
<skill id="39327" toLevel="1" name="Arcane Barrier">
<!-- Creates a time-limited barrier when hit. (Cooldown: 300 sec.) -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>
@@ -555,7 +555,7 @@
<reuseDelay>900000</reuseDelay>
<effectPoint>100</effectPoint>
</skill>
<skill id="39328" toLevel="3" name="Arcane Immunity">
<skill id="39328" toLevel="1" name="Arcane Immunity">
<!-- Temporarily grants immunity to debuffs and anomalies when hit. (Cooldown: 300 sec.) -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>
@@ -563,7 +563,7 @@
<reuseDelay>600000</reuseDelay>
<effectPoint>100</effectPoint>
</skill>
<skill id="39329" toLevel="3" name="Arcane Protection">
<skill id="39329" toLevel="1" name="Arcane Protection">
<!-- Temporarily increases P./ M. Def. when hit. (Cooldown: 300 sec.) -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>
@@ -571,7 +571,7 @@
<reuseDelay>600000</reuseDelay>
<effectPoint>100</effectPoint>
</skill>
<skill id="39330" toLevel="3" name="Arcane Paralysis">
<skill id="39330" toLevel="1" name="Arcane Paralysis">
<!-- Temporarily paralyzes the enemy after an attack. (Cooldown: 300 sec.) -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>
@@ -582,7 +582,7 @@
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
</skill>
<skill id="39331" toLevel="3" name="Arcane Silence">
<skill id="39331" toLevel="1" name="Arcane Silence">
<!-- Temporarily inflicts Silence on the enemy after an attack. (Cooldown: 300 sec.) -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>
@@ -593,7 +593,7 @@
<reuseDelay>300000</reuseDelay>
<effectPoint>-100</effectPoint>
</skill>
<skill id="39332" toLevel="3" name="Arcane Critical Sense">
<skill id="39332" toLevel="1" name="Arcane Critical Sense">
<!-- All Critical Rate +3%. All Critical Damage +150 -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>
@@ -604,7 +604,7 @@
<effectPoint>-671</effectPoint>
<mpConsume>43</mpConsume>
</skill>
<skill id="39333" toLevel="3" name="Arcane Power">
<skill id="39333" toLevel="1" name="Arcane Power">
<!-- P. Atk. +350. M. Atk. +500 -->
<icon>icon.etc_wit_symbol_i01</icon>
<operateType>A1</operateType>

View File

@@ -620,11 +620,14 @@
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>94480</itemConsumeId>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<reuseDelay>5</reuseDelay>
<targetType>PET</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="GivePetXp">
<xp>100000000</xp>
</effect>
</effects>
</skill>
<skill id="40239" toLevel="1" name="Pet Buff Scroll">
<!-- Max HP +1000. P. Def. +300. M. Def. +300. HP Recovery Rate +10 -->
@@ -642,12 +645,14 @@
<operateType>A1</operateType>
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>94517</itemConsumeId>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLevel>1</magicLevel>
<reuseDelay>5</reuseDelay>
<targetType>PET</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="GivePetXp">
<xp>2000000000</xp>
</effect>
</effects>
</skill>
<skill id="40242" toLevel="1" name="Sayha's Blessing Scroll">
<icon>icon.skill0000</icon>
@@ -836,6 +841,16 @@
<!-- Pet XP +1,000,000. -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>94635</itemConsumeId>
<reuseDelay>5</reuseDelay>
<targetType>PET</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="GivePetXp">
<xp>1000000</xp>
</effect>
</effects>
</skill>
<skill id="40251" toLevel="1" name="Pet's XP Growth Scroll">
<!-- Pet's XP +30%. Removed when your pet dies or is unsummoned. -->

View File

@@ -4463,10 +4463,11 @@
<skill id="45198" toLevel="1" name="Grand Master's Transcendent Blessing">
<!-- Grand Master's power has pushed you beyond the limits of your class. HP Recovery Potions' Effect +50. With a certain chance, absorbs 3% of the inflicted damage as MP. Note!. You can't consume Light Souls and Shadow Souls. -->
<icon>icon.skill_kamael_shadowside</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>600</abnormalTime>
<abnormalType>BR_EVENT_BUF1</abnormalType>
<abnormalType>KAMAEL_TRANSFORM</abnormalType>
<abnormalVisualEffect>KAMAEL_BLACK_TRANSFORM;LONG_RAPIER_BLACK_AVE;BLACK_STANCE_AVE</abnormalVisualEffect>
<isMagic>4</isMagic>
<magicLevel>
<value level="1">20</value>
@@ -4474,9 +4475,21 @@
</magicLevel>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<abnormalVisualEffect>U_ER_WI_WINDHIDE_AVE</abnormalVisualEffect>
<targetType>TARGET</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="BlockAbnormalSlot">
<slot>TRANSFORM</slot>
</effect>
<effect name="AdditionalPotionHp">
<amount>50</amount>
<mode>DIFF</mode>
</effect>
<effect name="MpVampiricAttack">
<amount>3</amount>
<chance>50</chance>
</effect>
</effects>
</skill>
<skill id="45199" toLevel="24" name="Transcendent Power Strike">
<!-- The character prepares for making a destructive blow. Attacks the enemy with 45 power. The skill can be used only in the transcendent instance zones. -->

View File

@@ -2137,6 +2137,7 @@
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
<value level="4">4</value> <!-- FIXME: AUTO GENERATED LEVEL -->
</abnormalLevel>
<abnormalTime>1200</abnormalTime>
<abnormalType>CHEAP_MAGIC</abnormalType>
@@ -2148,6 +2149,7 @@
<value level="1">20</value>
<value level="2">30</value>
<value level="3">40</value>
<value level="4">40</value> <!-- FIXME: AUTO GENERATED LEVEL -->
</magicLevel>
<itemConsumeCount>3</itemConsumeCount>
<itemConsumeId>3031</itemConsumeId> <!-- Spirit Ore -->
@@ -2163,6 +2165,7 @@
<value level="1">-10</value>
<value level="2">-15</value>
<value level="3">-20</value>
<value level="4">-20</value> <!-- FIXME: AUTO GENERATED LEVEL -->
</amount>
<mode>PER</mode>
<magicType>0</magicType>
@@ -2172,6 +2175,7 @@
<value level="1">-4</value>
<value level="2">-7</value>
<value level="3">-10</value>
<value level="4">-10</value> <!-- FIXME: AUTO GENERATED LEVEL -->
</amount>
<mode>PER</mode>
<magicType>1</magicType>
@@ -2181,6 +2185,7 @@
<value level="1">-10</value>
<value level="2">-15</value>
<value level="3">-20</value>
<value level="4">-20</value> <!-- FIXME: AUTO GENERATED LEVEL -->
</amount>
<mode>PER</mode>
<magicType>3</magicType>

View File

@@ -1876,38 +1876,7 @@
</skill>
<skill id="47260" toLevel="3" name="Divine Recovery">
<icon>icon.s_saint_recovery</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>76</magicLevel>
<effects>
<effect name="TriggerSkillByKill">
<!-- HP Drain -->
<chance>100</chance>
<skillId>47261</skillId> <!-- Divine Recovery -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
<effect name="TriggerSkillByKill">
<!-- HP Drain -->
<chance>100</chance>
<skillId>47262</skillId> <!-- Divine Recovery -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="47261" toLevel="3" name="Divine Recovery">
<!-- Consumes the target's soul and recovers MP. (Trigger cooldown: 10 sec.). Recovers 96 MP after killing monsters. Recovers 768 MP after killing characters. -->
<icon>icon.s_saint_recovery</icon>
<castRange>600</castRange>
<effectRange>1100</effectRange>
<isMagic>1</isMagic> <!-- Magic Skill -->
<isTriggeredSkill>true</isTriggeredSkill>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
@@ -1922,10 +1891,35 @@
</effect>
</effects>
</skill>
<skill id="47261" toLevel="3" name="Divine Recovery">
<!-- Consumes the target's soul and recovers MP. (Trigger cooldown: 10 sec.) Recovers $s1 MP after killing monsters. Recovers $s2 MP after killing characters. -->
<icon>icon.s_saint_recovery</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>76</magicLevel>
<effects>
<effect name="TriggerSkillByKill">
<chance>100</chance>
<skillId>47260</skillId> <!-- Divine Recovery -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
<effect name="TriggerSkillByKill">
<chance>100</chance>
<skillId>47262</skillId> <!-- Divine Recovery -->
<skillLevel>
<value level="1">1</value>
<value level="2">2</value>
<value level="3">3</value>
</skillLevel>
</effect>
</effects>
</skill>
<skill id="47262" toLevel="3" name="Divine Recovery">
<icon>icon.s_saint_recovery</icon>
<castRange>600</castRange>
<effectRange>1100</effectRange>
<isMagic>1</isMagic> <!-- Magic Skill -->
<operateType>A1</operateType>
<reuseDelay>60000</reuseDelay>
@@ -3921,7 +3915,7 @@
<attackerType>Creature</attackerType>
<minDamage>1</minDamage>
<chance>20</chance>
<targetType>TARGET</targetType>
<targetType>SELF</targetType>
<isCritical>false</isCritical>
<allowWeapons>ALL</allowWeapons>
<skillId>53007</skillId> <!-- Power Stance -->

View File

@@ -165,8 +165,12 @@
<amount>80</amount>
<mode>DIFF</mode>
</effect>
<effect name="MaxMagicCriticalRate">
<amount>550</amount>
<effect name="AddMaxPhysicalCriticalRate">
<amount>50</amount>
<mode>DIFF</mode>
</effect>
<effect name="AddMaxMagicCriticalRate">
<amount>50</amount>
<mode>DIFF</mode>
</effect>
</effects>
@@ -266,8 +270,12 @@
<amount>150</amount>
<mode>DIFF</mode>
</effect>
<effect name="MaxMagicCriticalRate">
<amount>550</amount>
<effect name="AddMaxPhysicalCriticalRate">
<amount>50</amount>
<mode>DIFF</mode>
</effect>
<effect name="AddMaxMagicCriticalRate">
<amount>50</amount>
<mode>DIFF</mode>
</effect>
</effects>
@@ -306,8 +314,6 @@
<!-- All Critical Damage +200. Increases Max Critical Rate. -->
<icon>icon.bless_effect_enchant</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLevel>1</magicLevel>
<effects>
<effect name="CriticalDamage">
<amount>200</amount>
@@ -321,8 +327,12 @@
<amount>200</amount>
<mode>DIFF</mode>
</effect>
<effect name="MaxMagicCriticalRate">
<amount>550</amount>
<effect name="AddMaxPhysicalCriticalRate">
<amount>50</amount>
<mode>DIFF</mode>
</effect>
<effect name="AddMaxMagicCriticalRate">
<amount>50</amount>
<mode>DIFF</mode>
</effect>
</effects>

View File

@@ -4324,6 +4324,7 @@
<value level="9">28</value>
<value level="10">30</value>
<value level="10">32</value>
<value level="11">32</value> <!-- FIXME: AUTO GENERATED LEVEL -->
</amount>
<mode>DIFF</mode>
</effect>
@@ -4630,7 +4631,7 @@
</amount>
<mode>DIFF</mode>
</effect>
<effect name="AbsorbDamage">
<effect name="IgnoreReduceDamage">
<amount>
<value fromLevel="1" toLevel="2">0</value>
<value level="3">50</value>

View File

@@ -500,7 +500,7 @@
<abnormalTime>1200</abnormalTime>
<abnormalType>ATTACK_TIME_DOWN</abnormalType>
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>70102</itemConsumeId> <!-- Adventurer’s Potion -->
<itemConsumeId>70102</itemConsumeId> <!-- Adventurer's Potion -->
<mpConsume>75</mpConsume>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>

View File

@@ -12,6 +12,8 @@ AddHuntingTime: Add time for time limited hunting zones. (l2jmobius)
AdditionalPotionCp: Increases the amount of CP heal gained from potions or elixirs. (l2jmobius)
AdditionalPotionHp: Increases the amount of HP heal gained from potions or elixirs. (l2jmobius)
AdditionalPotionMp: Increases the amount of MP heal gained from potions or elixirs. (l2jmobius)
AddMaxMagicCriticalRate: Stat that overrides the default config MAX_MCRIT_RATE. (l2jmobius)
AddMaxPhysicalCriticalRate: Stat that overrides the default config MAX_PCRIT_RATE. (l2jmobius)
AddPcCafePoints: Increase PcCafe points permanently. (l2jmobius)
AddSkillBySkill: Add skill when other skill already exists. (l2jmobius)
AddTeleportBookmarkSlot: Instant effect that increases the amount of My Teleport slots.
@@ -148,6 +150,7 @@ GiveExpAndSp: Gives a given amount of XP and SP. (l2jmobius)
GiveFame: Gives a given amount of Fame. (l2jmobius)
GiveHonorCoins: Gives a given amount of Honor Coins. (l2jmobius)
GiveItemByExp: Gives an item when a certain amount of EXP is gathered. (l2jmobius)
GivePetXp: Gives a given amount of XP to a pet. (l2jmobius)
GiveRecommendation: Gives recommendations to a player. Blue name.
GiveSp: Gives a given amount of SP.
GiveXp: Gives a given amount of XP. (l2jmobius)
@@ -167,10 +170,11 @@ HpCpHealCritical: HpCp heal effects always trigger Magic Critical Hit.
HpCpHeal: Increases current HP by a given amount. If the given amount exceeds maximum HP, it increases current CP with the rest value as well.
HpDrain: Magical attack that absorbs given percentage of the damage inflicted as HP.
Hp: Increases current HP by a static value.
HpLimit: Increase a character's max hp limit (l2jmobius)
HpLimit: Increase a character's max hp limit. (l2jmobius)
HpRegen: HP Regeneration stat.
HpToOwner: DOT effect that absorbs HP over time.
IgnoreDeath: Become undying. Hp cannot decrease below 1.
IgnoreReduceDamage: Ignore ReduceDamage effect implementation. (l2jmobius)
ImmobileDamageBonus: Bonus damage to immobile targets. (l2jmobius)
ImmobileDamageResist: Resist damage while immobile. (l2jmobius)
ImmobilePetBuff: Causes your pet to become immobilized.
@@ -211,7 +215,6 @@ MAtk: M. Atk. stat.
MAtkByPAtk: M. Atk. bonus from P. Atk stat. (l2jmobius)
MaxCp: Max. CP stat.
MaxHp: Max. HP stat.
MaxMagicCriticalRate: Stat that overrides the default config MAX_MCRIT_RATE. (l2jmobius)
MaxMp: Max. MP stat.
ModifyBeastPoints: Modifies player Beast Point count. (l2jmobius)
ModifyCraftPoints: Modifies player Craft Point count. (l2jmobius)
@@ -280,6 +283,7 @@ RearDamage: Multiplier for damage done from behind the target. (l2jmobius)
RebalanceHP: Balances targets' current HP.
RebalanceHPSummon: Balances targets' current HP for summons.
RecoverVitalityInPeaceZone: Recover periodically vitality when player is in a peace zone. (l2jmobius)
ReduceDamage: Reduce damage effect implementation.
ReduceCancel: Magic skill casting interruption stat.
ReduceDropPenalty: Reduces EXP lost and death penalty chance.
ReflectMagic: Deflects magical damage back to the attacker.

View File

@@ -33,8 +33,8 @@
<xs:element type="handlerType" name="handler" minOccurs="0" maxOccurs="unbounded" />
<xs:element type="itemsType" name="items" />
</xs:sequence>
<xs:attribute type="xs:short" name="id" />
<xs:attribute type="xs:short" name="reward_id" />
<xs:attribute type="xs:int" name="id" />
<xs:attribute type="xs:int" name="reward_id" />
<xs:attribute type="xs:string" name="name" />
<xs:attribute type="xs:int" name="requiredCompletion" />
<xs:attribute type="xs:boolean" name="dailyReset" />

View File

@@ -24,6 +24,7 @@
<xs:attribute type="xs:long" name="count" use="optional"/>
<xs:attribute type="xs:float" name="chance" use="optional"/>
<xs:attribute type="xs:boolean" name="announce" use="optional"/>
<xs:attribute type="xs:int" name="enchant" use="optional"/>
<xs:attribute type="xs:int" name="id2" use="optional"/>
<xs:attribute type="xs:long" name="count2" use="optional"/>
<xs:attribute type="xs:float" name="chance2" use="optional"/>
@@ -40,6 +41,7 @@
<xs:attribute type="xs:long" name="count5" use="optional"/>
<xs:attribute type="xs:boolean" name="announce5" use="optional"/>
<xs:attribute type="xs:int" name="accountDailyLimit" use="optional"/>
<xs:attribute type="xs:int" name="accountMontlyLimit" use="optional"/>
<xs:attribute type="xs:int" name="accountBuyLimit" use="optional"/>
</xs:extension>
</xs:simpleContent>

View File

@@ -0,0 +1,24 @@
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="list">
<xs:complexType>
<xs:sequence>
<xs:element name="extraction" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:short" name="petId" />
<xs:attribute type="xs:int" name="petLevel" />
<xs:attribute type="xs:long" name="extractExp" />
<xs:attribute type="xs:int" name="extractItem"/>
<xs:attribute type="xs:int" name="defaultCostId" />
<xs:attribute type="xs:long" name="defaultCostCount" />
<xs:attribute type="xs:int" name="extractCostId" />
<xs:attribute type="xs:long" name="extractCostCount" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@@ -58,4 +58,41 @@
<node X="-98296" Y="-262136" />
<node X="-65544" Y="-229384" />
</zone>
<!-- Dwelling of Spirits zones -->
<zone id="202201" name="dwelling_portal_enter_fire" type="NoLandingZone" shape="Cuboid" minZ="-12209" maxZ="-10700">
<node X="-115236" Y="-77408" />
<node X="-115617" Y="-77631" />
</zone>
<zone id="202202" name="dwelling_portal_enter_earth" type="NoLandingZone" shape="Cuboid" minZ="-12209" maxZ="-10700">
<node X="-113417" Y="-77633" />
<node X="-113032" Y="-77411" />
</zone>
<zone id="202203" name="dwelling_portal_enter_water" type="NoLandingZone" shape="NPoly" minZ="-12209" maxZ="-10700">
<node X="-115160" Y="-79013" />
<node X="-115333" Y="-79182" />
<node X="-115216" Y="-79282" />
<node X="-115053" Y="-79121" />
</zone>
<zone id="202204" name="dwelling_portal_enter_wind" type="NoLandingZone" shape="NPoly" minZ="-12209" maxZ="-10700">
<node X="-113596" Y="-79120" />
<node X="-113436" Y="-79275" />
<node X="-113325" Y="-79176" />
<node X="-113490" Y="-79012" />
</zone>
<zone id="202205" name="dwelling_portal_return_fire" type="NoLandingZone" shape="Cylinder" minZ="-15515" maxZ="-15400" rad="230">
<node X="202349" Y="170533" />
</zone>
<zone id="202206" name="dwelling_portal_return_earth" type="NoLandingZone" shape="Cylinder" minZ="-15515" maxZ="-15400" rad="230">
<node X="222065" Y="192767" />
</zone>
<zone id="202207" name="dwelling_portal_return_water" type="NoLandingZone" shape="Cylinder" minZ="-15515" maxZ="-15400" rad="230">
<node X="222127" Y="170488" />
</zone>
<zone id="202208" name="dwelling_portal_return_wind" type="NoLandingZone" shape="Cylinder" minZ="-15515" maxZ="-15400" rad="230">
<node X="212855" Y="181242" />
</zone>
<zone id="21400000" name="dwelling_central" type="NoLandingZone" shape="Cylinder" minZ="-12209" maxZ="-10700" rad="1000">
<node X="-114339" Y="-78005" />
</zone>
</list>

View File

@@ -1,81 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<zone name="dwelling_portal_earth" type="TeleportZone" shape="Cylinder" minZ="-11518" maxZ="-11218" rad="100">
<stat name="oustX" val="222086" />
<stat name="oustY" val="190539" />
<stat name="oustZ" val="-15488" />
<stat name="default_enabled" val="false" />
<stat name="instanceId" val="214" />
<stat name="targetClass" val="Player" />
<stat name="affectedLvlMin" val="75" />
<node X="-113465" Y="-77520" />
</zone>
<zone name="dwelling_portal_wind" type="TeleportZone" shape="Cylinder" minZ="-11518" maxZ="-11218" rad="100">
<stat name="oustX" val="222151" />
<stat name="oustY" val="168077" />
<stat name="oustZ" val="-15488" />
<stat name="default_enabled" val="false" />
<stat name="instanceId" val="214" />
<stat name="targetClass" val="Player" />
<stat name="affectedLvlMin" val="75" />
<node X="-115115" Y="-79080" />
</zone>
<zone name="dwelling_portal_water" type="TeleportZone" shape="Cylinder" minZ="-11518" maxZ="-11218" rad="100">
<stat name="oustX" val="212886" />
<stat name="oustY" val="178829" />
<stat name="oustZ" val="-15488" />
<stat name="instanceId" val="214" />
<stat name="default_enabled" val="true" /> <!-- Fixes a problem with the other portals. -->
<stat name="targetClass" val="Player" />
<stat name="affectedLvlMin" val="75" />
<node X="-113529" Y="-79077" />
</zone>
<zone name="dwelling_portal_fire" type="TeleportZone" shape="Cylinder" minZ="-11518" maxZ="-11218" rad="100">
<stat name="oustX" val="202376" />
<stat name="oustY" val="168141" />
<stat name="oustZ" val="-15488" />
<stat name="default_enabled" val="false" />
<stat name="instanceId" val="214" />
<stat name="targetClass" val="Player" />
<stat name="affectedLvlMin" val="75" />
<node X="-115202" Y="-77519" />
</zone>
<zone name="return_portal_petram" type="TeleportZone" shape="Cylinder" minZ="-15688" maxZ="-15218" rad="100">
<stat name="oustX" val="-114323" />
<stat name="oustY" val="-78292" />
<stat name="oustZ" val="-11433" />
<stat name="instanceId" val="214" />
<stat name="targetClass" val="Player" />
<stat name="affectedLvlMin" val="75" />
<node X="222061" Y="192921" />
</zone>
<zone name="return_portal_nebula" type="TeleportZone" shape="Cylinder" minZ="-15688" maxZ="-15218" rad="100">
<stat name="oustX" val="-114323" />
<stat name="oustY" val="-78292" />
<stat name="oustZ" val="-11433" />
<stat name="instanceId" val="214" />
<stat name="targetClass" val="Player" />
<stat name="affectedLvlMin" val="75" />
<node X="222127" Y="170488" />
</zone>
<zone name="return_portal_procella" type="TeleportZone" shape="Cylinder" minZ="-15688" maxZ="-15218" rad="100">
<stat name="oustX" val="-114323" />
<stat name="oustY" val="-78292" />
<stat name="oustZ" val="-11433" />
<stat name="instanceId" val="214" />
<stat name="targetClass" val="Player" />
<stat name="affectedLvlMin" val="75" />
<node X="212855" Y="181242" />
</zone>
<zone name="return_portal_ignis" type="TeleportZone" shape="Cylinder" minZ="-15688" maxZ="-15218" rad="100">
<stat name="oustX" val="-114323" />
<stat name="oustY" val="-78292" />
<stat name="oustZ" val="-11433" />
<stat name="instanceId" val="214" />
<stat name="targetClass" val="Player" />
<stat name="affectedLvlMin" val="75" />
<node X="202349" Y="170533" />
</zone>
<zone name="hellbound_tp_1" type="TeleportZone" shape="Cylinder" minZ="-3600" maxZ="-3300" rad="200">
<stat name="oustX" val="6736" />
<stat name="oustY" val="251024" />