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

@@ -17,6 +17,9 @@ FakePlayerKillsRewardPvP = True
# Fake player kills apply karma rules.
FakePlayerUnflaggedKillsKarma = True
# Fake players can be attacked without PvP flagging.
FakePlayerAutoAttackable = False
# Aggressive AI fake players attack nearby monsters.
FakePlayerAggroMonsters = True

View File

@@ -436,8 +436,8 @@ ChatFilterChars = ^_^
# NPC_SHOUT
# NEW_TELL
# WORLD (&)
# Default: ALL;SHOUT;GLOBAL;TRADE;HERO_VOICE
BanChatChannels = GENERAL;SHOUT;WORLD;TRADE;HERO_VOICE
# Default: GENERAL;SHOUT;GLOBAL;TRADE;HERO_VOICE;WHISPER
BanChatChannels = GENERAL;SHOUT;WORLD;TRADE;HERO_VOICE;WHISPER
# ---------------------------------------------------------------------------
@@ -646,6 +646,11 @@ AutoPlayAttackAction = True
# Retail: False
ResumeAutoPlay = False
# Assist party leader.
# When in party, target what the leader is targeting.
# Retail: False
AssistLeader = False
# ---------------------------------------------------------------------------
# Purge Settings

View File

@@ -2,45 +2,33 @@
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/ActionData.xsd">
<action id="0" handler="SitStand" /> <!-- Sit / Stand -->
<action id="1" handler="RunWalk" /> <!-- Walk / Run -->
<!-- Attack -->
<!-- Exchange -->
<!-- Next Target (Melee) -->
<!-- Pick Up -->
<!-- Help -->
<!-- Invite -->
<!-- Leave Party -->
<!-- Dismiss Party Member -->
<action id="10" handler="PrivateStore" option="1" /> <!-- Private Store Sell -->
<!-- Party Matching -->
<action id="2" handler="None" /> <!-- Attack -->
<action id="3" handler="None" /> <!-- Exchange -->
<action id="4" handler="None" /> <!-- Next Target (Melee) -->
<action id="5" handler="None" /> <!-- Pick Up -->
<action id="6" handler="None" /> <!-- Help -->
<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" /> <!-- Pet's Attack -->
<action id="17" handler="PetStop" /> <!-- Stop Pet -->
<!-- Pick Up -->
<action id="19" handler="UnsummonPet" /> <!-- Recall Pet -->
<!-- Special skill -->
<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="24" handler="SocialAction" option="6" /> <!-- Yes -->
<action id="25" handler="SocialAction" option="5" /> <!-- No -->
<action id="26" handler="SocialAction" option="7" /> <!-- Bow -->
<!-- Special skill -->
<action id="27" handler="None" /> <!-- Special skill -->
<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" /> <!-- Switch Mode -->
<action id="33" handler="SocialAction" option="11" /> <!-- Applaud -->
<action id="34" handler="SocialAction" option="12" /> <!-- Dance -->
<action id="35" handler="SocialAction" option="13" /> <!-- Sorrow -->
<action id="36" handler="ServitorSkillUse" option="4259" /> <!-- Toxic Smoke -->
<action id="37" handler="PrivateStore" option="5" /> <!-- Dwarven Workshop -->
<!-- Mount/Dismount -->
<action id="39" handler="ServitorSkillUse" option="4138" /> <!-- Soulless - Parasite Burst -->
<!-- Recommend -->
<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 -->
@@ -50,22 +38,11 @@
<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 -->
<!-- Change Party Leader -->
<action id="50" handler="None" /> <!-- Change Party Leader -->
<action id="52" handler="UnsummonServitor" /> <!-- Unsummon -->
<action id="53" handler="ServitorMove" /> <!-- Move -->
<action id="54" handler="PetMove" /> <!-- Move -->
<!-- Recording Replay On/Off -->
<!-- Command Channel Invite -->
<!-- Find Store -->
<!-- Duel -->
<!-- Cancel Duel -->
<!-- Party Duel -->
<action id="61" handler="PrivateStore" option="8" /> <!-- Private Store Package Sell -->
<action id="62" handler="SocialAction" option="14" /> <!-- Charm -->
<!-- Minigame -->
<action id="56" handler="None" /> <!-- Command Channel Invite -->
<action id="64" handler="TeleportBookmark" /> <!-- My Teleport -->
<action id="65" handler="BotReport" />
<action id="66" handler="SocialAction" option="15" /> <!-- Shyness -->
<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 -->
@@ -73,30 +50,18 @@
<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 -->
<!-- Turn On/Off the Status Information -->
<!-- Invite Friends -->
<!-- Start/End Recording -->
<action id="78" handler="TacticalSignUse" option="1" /> <!-- Use of Token 1 -->
<action id="79" handler="TacticalSignUse" option="2" /> <!-- Use of Token 2 -->
<action id="80" handler="TacticalSignUse" option="3" /> <!-- Use of Token 3 -->
<action id="81" handler="TacticalSignUse" option="4" /> <!-- Use of Token 4 -->
<action id="82" handler="TacticalSignTarget" option="1" /> <!-- Target by Token 1 -->
<action id="83" handler="TacticalSignTarget" option="2" /> <!-- Target by Token 2 -->
<action id="84" handler="TacticalSignTarget" option="3" /> <!-- Target by Token 3 -->
<action id="85" handler="TacticalSignTarget" option="4" /> <!-- Target by Token 4 -->
<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" /> <!-- Instance Zones -->
<!-- Next Target (Range) -->
<!-- Strike Back -->
<!-- Combat Mode -->
<!-- Dislike -->
<!-- Share Location -->
<!-- Party/Command Channel Request -->
<!-- Equipment Set Change -->
<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" /> <!-- Dislike -->
<action id="99" handler="None" /> <!-- Share Location -->
<action id="100" handler="None" /> <!-- Party/Command Channel Request -->
<action id="101" handler="None" /> <!-- Equipment Set Change -->
<action id="1000" handler="ServitorSkillUse" option="4079" /> <!-- Siege Hammer -->
<!-- Ultimate Bombastic Buster -->
<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 -->
@@ -178,10 +143,6 @@
<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="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 Tactics -->
<action id="1085" handler="ServitorSkillUse" option="4707" /> <!-- Shadow's Sacrifice -->
<action id="1086" handler="ServitorSkillUse" option="6094" /> <!-- Panther Cancel -->

View File

@@ -411,6 +411,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

@@ -1,6 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/EnchantItemData.xsd">
<!-- Weapon scrolls -->
<!-- Protecting Scroll: Enchant Weapon -->
<enchant id="6569" targetGrade="A" maxEnchant="16" safeEnchant="4" /> <!-- Protecting Scroll: Enchant A-grade Weapon -->
<enchant id="6571" targetGrade="B" maxEnchant="16" safeEnchant="4" /> <!-- Protecting Scroll: Enchant B-grade Weapon -->
<enchant id="6573" targetGrade="C" maxEnchant="16" safeEnchant="4" /> <!-- Protecting Scroll: Enchant C-grade Weapon -->
<enchant id="6575" targetGrade="D" maxEnchant="16" safeEnchant="4" /> <!-- Protecting Scroll: Enchant D-grade Weapon -->
<!-- Scrolls: Enchant Weapon -->
<enchant id="729" targetGrade="A" maxEnchant="16" safeEnchant="4" />
<enchant id="93976" targetGrade="A" maxEnchant="16" safeEnchant="4" />
@@ -43,14 +50,48 @@
<item id="95691" /> <!-- Aden's Dual Swords -->
</enchant>
<!-- Scroll: Enchant Death Knight's Flame Sword -->
<enchant id="93931" targetGrade="A" maxEnchant="3" scrollGroupId="2">
<enchant id="93931" targetGrade="A" maxEnchant="5" scrollGroupId="2">
<item id="93864" /> <!-- Death Knight's Flame Sword -->
<item id="96927" /> <!-- Axe of Immortality -->
<item id="96928" /> <!-- Ancient Sword of Immortality -->
<item id="96929" /> <!-- Magic Blunt Weapon of Immortality -->
<item id="96930" /> <!-- Flame Fists of Immortality -->
<item id="96931" /> <!-- Pistols of Immortality -->
<item id="96932" /> <!-- Rapier of Immortality -->
<item id="96933" /> <!-- Staff of Immortality -->
<item id="96935" /> <!-- Dagger of Immortality -->
<item id="96938" /> <!-- Two-handed Sword of Immortality -->
<item id="96939" /> <!-- Spear of Immortality -->
<item id="96940" /> <!-- Bow of Immortality -->
<item id="97088" /> <!-- Sword of Immortality -->
<item id="97089" /> <!-- Dual Swords of Immortality-->
</enchant>
<!-- Sealed Scroll: Enchant Death Knight's Flame Sword -->
<enchant id="93932" targetGrade="A" maxEnchant="3" scrollGroupId="2">
<enchant id="93932" targetGrade="A" maxEnchant="5" scrollGroupId="2">
<item id="93864" /> <!-- Death Knight's Flame Sword -->
<item id="96927" /> <!-- Axe of Immortality -->
<item id="96928" /> <!-- Ancient Sword of Immortality -->
<item id="96929" /> <!-- Magic Blunt Weapon of Immortality -->
<item id="96930" /> <!-- Flame Fists of Immortality -->
<item id="96931" /> <!-- Pistols of Immortality -->
<item id="96932" /> <!-- Rapier of Immortality -->
<item id="96933" /> <!-- Staff of Immortality -->
<item id="96935" /> <!-- Dagger of Immortality -->
<item id="96938" /> <!-- Two-handed Sword of Immortality -->
<item id="96939" /> <!-- Spear of Immortality -->
<item id="96940" /> <!-- Bow of Immortality -->
<item id="97088" /> <!-- Sword of Immortality -->
<item id="97089" /> <!-- Dual Swords of Immortality-->
</enchant>
<!-- Armor scrolls -->
<!-- Protecting Scroll: Enchant Armor -->
<enchant id="6570" targetGrade="A" maxEnchant="16" safeEnchant="4" /> <!-- Protecting Scroll: Enchant A-grade Armor -->
<enchant id="6572" targetGrade="B" maxEnchant="16" safeEnchant="4" /> <!-- Protecting Scroll: Enchant B-grade Armor -->
<enchant id="6574" targetGrade="C" maxEnchant="16" safeEnchant="4" /> <!-- Protecting Scroll: Enchant C-grade Armor -->
<enchant id="6576" targetGrade="D" maxEnchant="16" safeEnchant="4" /> <!-- Protecting Scroll: Enchant D-grade Armor -->
<!-- Scrolls: Enchant Armor -->
<enchant id="730" targetGrade="A" maxEnchant="10" safeEnchant="4" />
<enchant id="93977" targetGrade="A" maxEnchant="10" safeEnchant="4" />

View File

@@ -31,10 +31,12 @@
<current enchant="14" chance="55" />
<current enchant="15" chance="40" />
</enchantRateGroup>
<enchantRateGroup name="DK_FLAME_SWORD"> <!-- Death Knight's Flame Sword -->
<current enchant="0" chance="23" />
<current enchant="1" chance="13" />
<current enchant="2" chance="3" />
<enchantRateGroup name="WEAPON_OF_IMMORTALITY"> <!-- Death Knight's Flame Sword -->
<current enchant="0" chance="50" />
<current enchant="1" chance="40" />
<current enchant="2" chance="30" />
<current enchant="3" chance="20" />
<current enchant="4" chance="10" />
</enchantRateGroup>
<enchantRateGroup name="ADEN_WEAPON_GROUP">
<current enchant="0-3" chance="100" />
@@ -383,8 +385,21 @@
</enchantScrollGroup>
<!-- Death Knight's Flame Sword scrolls enchanting route line -->
<enchantScrollGroup id="2">
<enchantRate group="DK_FLAME_SWORD">
<enchantRate group="WEAPON_OF_IMMORTALITY">
<item itemId="93864" /> <!-- Death Knight's Flame Sword -->
<item itemId="96927" /> <!-- Axe of Immortality -->
<item itemId="96928" /> <!-- Ancient Sword of Immortality -->
<item itemId="96929" /> <!-- Magic Blunt Weapon of Immortality -->
<item itemId="96930" /> <!-- Flame Fists of Immortality -->
<item itemId="96931" /> <!-- Pistols of Immortality -->
<item itemId="96932" /> <!-- Rapier of Immortality -->
<item itemId="96933" /> <!-- Staff of Immortality -->
<item itemId="96935" /> <!-- Dagger of Immortality -->
<item itemId="96938" /> <!-- Two-handed Sword of Immortality -->
<item itemId="96939" /> <!-- Spear of Immortality -->
<item itemId="96940" /> <!-- Bow of Immortality -->
<item itemId="97088" /> <!-- Sword of Immortality -->
<item itemId="97089" /> <!-- Dual Swords of Immortality-->
</enchantRate>
</enchantScrollGroup>
<!-- Rare Accessories scrolls enchanting route line -->

View File

@@ -3482,72 +3482,72 @@
<product id="3701" category="5">
<ingredient id="94166" enchant="4" count="1" /> <!-- +4 Circlet of Hero (Sealed) -->
<ingredient id="94166" enchant="4" count="1" /> <!-- +4 Circlet of Hero (Sealed) -->
<production id="98205" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +4 -->
<production id="98205" enchant="4" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +4 -->
</product>
<product id="3702" category="5">
<ingredient id="94166" enchant="5" count="1" /> <!-- +5 Circlet of Hero (Sealed) -->
<ingredient id="94166" enchant="5" count="1" /> <!-- +5 Circlet of Hero (Sealed) -->
<production id="98205" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +5 -->
<production id="98205" enchant="5" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +5 -->
</product>
<product id="3703" category="5">
<ingredient id="94166" enchant="6" count="1" /> <!-- +6 Circlet of Hero (Sealed) -->
<ingredient id="94166" enchant="6" count="1" /> <!-- +6 Circlet of Hero (Sealed) -->
<production id="98205" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +6 -->
<production id="98205" enchant="6" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +6 -->
</product>
<product id="3704" category="5">
<ingredient id="94166" enchant="7" count="1" /> <!-- +7 Circlet of Hero (Sealed) -->
<ingredient id="94166" enchant="7" count="1" /> <!-- +7 Circlet of Hero (Sealed) -->
<production id="98205" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +7 -->
<production id="98205" enchant="7" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +7 -->
</product>
<product id="3705" category="5">
<ingredient id="94166" enchant="8" count="1" /> <!-- +8 Circlet of Hero (Sealed) -->
<ingredient id="94166" enchant="8" count="1" /> <!-- +8 Circlet of Hero (Sealed) -->
<production id="98205" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +8 -->
<production id="98205" enchant="8" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +8 -->
</product>
<product id="3706" category="5">
<ingredient id="94166" enchant="9" count="1" /> <!-- +9 Circlet of Hero (Sealed) -->
<ingredient id="94166" enchant="9" count="1" /> <!-- +9 Circlet of Hero (Sealed) -->
<production id="98205" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +9 -->
<production id="98205" enchant="9" count="1" chance="100.0" /> <!-- Blessed Circlet of Hero +9 -->
</product>
<product id="3707" category="5">
<ingredient id="94166" enchant="10" count="1" /> <!-- +10 Circlet of Hero (Sealed) -->
<ingredient id="94166" enchant="10" count="1" /> <!-- +10 Circlet of Hero (Sealed) -->
<production id="98205" count="1" chance="100.0" /> <!-- +10 Blessed Circlet of Hero -->
<production id="98205" enchant="10" count="1" chance="100.0" /> <!-- +10 Blessed Circlet of Hero -->
</product>
<product id="1203" category="5">
<ingredient id="91862" enchant="4" count="1" /> <!-- +4 Dragon Belt (Sealed) -->
<ingredient id="91862" enchant="4" count="1" /> <!-- +4 Dragon Belt (Sealed) -->
<production id="94621" count="1" chance="100.0" /> <!-- +4 Blessed Dragon Belt -->
<production id="94621" enchant="4" count="1" chance="100.0" /> <!-- +4 Blessed Dragon Belt -->
</product>
<product id="1204" category="5">
<ingredient id="91862" enchant="5" count="1" /> <!-- +5 Dragon Belt (Sealed) -->
<ingredient id="91862" enchant="5" count="1" /> <!-- +5 Dragon Belt (Sealed) -->
<production id="94621" count="1" chance="100.0" /> <!-- +5 Blessed Dragon Belt -->
<production id="94621" enchant="5" count="1" chance="100.0" /> <!-- +5 Blessed Dragon Belt -->
</product>
<product id="1205" category="5">
<ingredient id="91862" enchant="6" count="1" /> <!-- +6 Dragon Belt (Sealed) -->
<ingredient id="91862" enchant="6" count="1" /> <!-- +6 Dragon Belt (Sealed) -->
<production id="94621" count="1" chance="100.0" /> <!-- +6 Blessed Dragon Belt -->
<production id="94621" enchant="6" count="1" chance="100.0" /> <!-- +6 Blessed Dragon Belt -->
</product>
<product id="1206" category="5">
<ingredient id="91862" enchant="7" count="1" /> <!-- +7 Dragon Belt (Sealed) -->
<ingredient id="91862" enchant="7" count="1" /> <!-- +7 Dragon Belt (Sealed) -->
<production id="94621" count="1" chance="100.0" /> <!-- +7 Blessed Dragon Belt -->
<production id="94621" enchant="7" count="1" chance="100.0" /> <!-- +7 Blessed Dragon Belt -->
</product>
<product id="1207" category="5">
<ingredient id="91862" enchant="8" count="1" /> <!-- +8 Dragon Belt (Sealed) -->
<ingredient id="91862" enchant="8" count="1" /> <!-- +8 Dragon Belt (Sealed) -->
<production id="94621" count="1" chance="100.0" /> <!-- +8 Blessed Dragon Belt -->
<production id="94621" enchant="8" count="1" chance="100.0" /> <!-- +8 Blessed Dragon Belt -->
</product>
<product id="1208" category="5">
<ingredient id="91862" enchant="9" count="1" /> <!-- +9 Dragon Belt (Sealed) -->
<ingredient id="91862" enchant="9" count="1" /> <!-- +9 Dragon Belt (Sealed) -->
<production id="94621" count="1" chance="100.0" /> <!-- +9 Blessed Dragon Belt -->
<production id="94621" enchant="9" count="1" chance="100.0" /> <!-- +9 Blessed Dragon Belt -->
</product>
<product id="1209" category="5">
<ingredient id="91862" enchant="10" count="1" /> <!-- +10 Dragon Belt (Sealed) -->
<ingredient id="91862" enchant="10" count="1" /> <!-- +10 Dragon Belt (Sealed) -->
<production id="94621" count="1" chance="100.0" /> <!-- +10 Blessed Dragon Belt -->
<production id="94621" enchant="10" count="1" chance="100.0" /> <!-- +10 Blessed Dragon Belt -->
</product>
<product id="2879" category="5">
<ingredient id="92403" enchant="4" count="1" /> <!-- +4 Talisman of Speed (Sealed) -->

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

@@ -6,50 +6,50 @@
<!-- Exchange +5 Special Armor Coupon -->
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="94084" /> <!-- Helmet of Mana - Sealed -->
<production count="1" enchantmentLevel="5" id="94084" /> <!-- Helmet of Mana - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="94086" /> <!-- Boots of Evasion - Sealed -->
<production count="1" enchantmentLevel="5" id="94086" /> <!-- Boots of Evasion - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="93141" /> <!-- Ice Crystal Breastplate - Sealed -->
<production count="1" enchantmentLevel="5" id="93141" /> <!-- Ice Crystal Breastplate - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="93142" /> <!-- Ice Crystal Gaiters - Sealed -->
<production count="1" enchantmentLevel="5" id="93142" /> <!-- Ice Crystal Gaiters - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="93317" /> <!-- Leather Armor of Lightning - Sealed -->
<production count="1" enchantmentLevel="5" id="93317" /> <!-- Leather Armor of Lightning - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="93318" /> <!-- Leather Leggings of Lightning - Sealed -->
<production count="1" enchantmentLevel="5" id="93318" /> <!-- Leather Leggings of Lightning - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="93735" /> <!-- Flaming Tunic - Sealed -->
<production count="1" enchantmentLevel="5" id="93735" /> <!-- Flaming Tunic - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="93736" /> <!-- Flaming Stockings - Sealed -->
<production count="1" enchantmentLevel="5" id="93736" /> <!-- Flaming Stockings - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="94264" /> <!-- Stun Gauntlets - Sealed -->
<production count="1" enchantmentLevel="5" id="94264" /> <!-- Stun Gauntlets - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="93076" /> <!-- Gloves of Silence - Sealed -->
<production count="1" enchantmentLevel="5" id="93076" /> <!-- Gloves of Silence - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="94302" /> <!-- Shield of Vengeance - Sealed -->
<production count="1" enchantmentLevel="5" id="94302" /> <!-- Shield of Vengeance - Sealed -->
</item>
<item>
<ingredient count="1" id="98044" /> <!-- +5 Special Armor Coupon (Time-limited) - Sealed -->
<production count="1" enchantmentLevel="7" id="94300" /> <!-- Sigil of Inevitability - Sealed -->
<production count="1" enchantmentLevel="5" id="94300" /> <!-- Sigil of Inevitability - Sealed -->
</item>
</list>

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

@@ -44,6 +44,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);
@@ -177,6 +179,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);
@@ -200,6 +203,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);
@@ -241,7 +245,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("ModifyAssassinationPoints", ModifyAssassinationPoints::new);
EffectHandler.getInstance().registerHandler("ModifyBeastPoints", ModifyBeastPoints::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

@@ -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 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

@@ -20,12 +20,12 @@ import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.stats.Stat;
/**
* @author Mobius
* @author fruit
*/
public class MaxMagicCriticalRate extends AbstractStatEffect
public class IgnoreReduceDamage extends AbstractStatEffect
{
public MaxMagicCriticalRate(StatSet params)
public IgnoreReduceDamage(StatSet params)
{
super(params, Stat.MAX_MAGIC_CRITICAL_RATE);
super(params, Stat.IGNORE_REDUCE_DAMAGE);
}
}

View File

@@ -32,7 +32,7 @@ public class ModifyAssassinationPoints extends AbstractEffect
public ModifyAssassinationPoints(StatSet params)
{
_amount = params.getInt("amount");
_amount = params.getInt("amount") * 10000;
}
@Override
@@ -55,6 +55,6 @@ public class ModifyAssassinationPoints extends AbstractEffect
return;
}
player.setBeastPoints(player.getAssassinationPoints() + _amount);
player.setAssassinationPoints(player.getAssassinationPoints() + _amount);
}
}

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

@@ -16,6 +16,11 @@
*/
package handlers.effecthandlers;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.NpcData;
import org.l2jmobius.gameserver.enums.Race;
@@ -33,11 +38,12 @@ import org.l2jmobius.gameserver.model.skill.Skill;
/**
* SummonMulti effect implementation.
* @author UnAfraid
* @author UnAfraid, Mobius
*/
public class SummonMulti extends AbstractEffect
{
private final int _npcId;
private final Map<Integer, Integer> _levelTemplates;
private final float _expMultiplier;
private final ItemHolder _consumeItem;
private final int _lifeTime;
@@ -46,7 +52,21 @@ public class SummonMulti extends AbstractEffect
public SummonMulti(StatSet params)
{
_npcId = params.getInt("npcId");
_npcId = params.getInt("npcId", 0);
if (_npcId > 0)
{
_levelTemplates = null;
}
else
{
final List<Integer> summonerLevels = params.getIntegerList("summonerLevels");
final List<Integer> npcIds = params.getIntegerList("npcIds");
_levelTemplates = new LinkedHashMap<>(npcIds.size());
for (int i = 0; i < npcIds.size(); i++)
{
_levelTemplates.put(summonerLevels.get(i), npcIds.get(i));
}
}
_expMultiplier = params.getFloat("expMultiplier", 1);
_consumeItem = new ItemHolder(params.getInt("consumeItemId", 0), params.getInt("consumeItemCount", 1));
_consumeItemInterval = params.getInt("consumeItemInterval", 0);
@@ -80,7 +100,31 @@ public class SummonMulti extends AbstractEffect
return;
}
final NpcTemplate template = NpcData.getInstance().getTemplate(_npcId);
final NpcTemplate template;
if (_npcId > 0)
{
template = NpcData.getInstance().getTemplate(_npcId);
}
else
{
Entry<Integer, Integer> levelTemplate = null;
for (Entry<Integer, Integer> entry : _levelTemplates.entrySet())
{
if ((levelTemplate == null) || (player.getLevel() >= entry.getKey()))
{
levelTemplate = entry;
}
}
if (levelTemplate != null)
{
template = NpcData.getInstance().getTemplate(levelTemplate.getValue());
}
else // Should never happen.
{
template = NpcData.getInstance().getTemplate(_levelTemplates.keySet().stream().findFirst().get());
}
}
final Servitor summon = new Servitor(template, player);
final int consumeItemInterval = (_consumeItemInterval > 0 ? _consumeItemInterval : (template.getRace() != Race.SIEGE_WEAPON ? 240 : 60)) * 1000;

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

@@ -34,6 +34,7 @@ public class TriggerSkillByBaseStat extends AbstractEffect
private final BaseStat _baseStat;
private final int _skillId;
private final int _skillLevel;
private final int _skillSubLevel;
private final int _min;
private final int _max;
@@ -42,6 +43,7 @@ public class TriggerSkillByBaseStat extends AbstractEffect
_baseStat = params.getEnum("baseStat", BaseStat.class);
_skillId = params.getInt("skillId", 0);
_skillLevel = params.getInt("skillLevel", 1);
_skillSubLevel = params.getInt("skillSubLevel", 0);
_min = params.getInt("min", 0);
_max = params.getInt("max", 9999);
}
@@ -101,7 +103,7 @@ public class TriggerSkillByBaseStat extends AbstractEffect
{
if (!target.isAffectedBySkill(_skillId))
{
SkillCaster.triggerCast(target, target, SkillData.getInstance().getSkill(_skillId, _skillLevel));
SkillCaster.triggerCast(target, target, SkillData.getInstance().getSkill(_skillId, _skillLevel, _skillSubLevel));
}
}
else

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

@@ -34,6 +34,7 @@ public class TriggerSkillByStat extends AbstractEffect
private final Stat _stat;
private final int _skillId;
private final int _skillLevel;
private final int _skillSubLevel;
private final int _min;
private final int _max;
@@ -42,6 +43,7 @@ public class TriggerSkillByStat extends AbstractEffect
_stat = params.getEnum("stat", Stat.class);
_skillId = params.getInt("skillId", 0);
_skillLevel = params.getInt("skillLevel", 1);
_skillSubLevel = params.getInt("skillSubLevel", 0);
_min = params.getInt("min", 0);
_max = params.getInt("max", 9999);
}
@@ -63,7 +65,7 @@ public class TriggerSkillByStat extends AbstractEffect
{
if (!target.isAffectedBySkill(_skillId))
{
SkillCaster.triggerCast(target, target, SkillData.getInstance().getSkill(_skillId, _skillLevel));
SkillCaster.triggerCast(target, target, SkillData.getInstance().getSkill(_skillId, _skillLevel, _skillSubLevel));
}
}
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

@@ -31,7 +31,7 @@ public class AssassinationPointsSkillCondition implements ISkillCondition
public AssassinationPointsSkillCondition(StatSet params)
{
_amount = params.getInt("amount");
_amount = params.getInt("amount") * 10000;
}
@Override

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

@@ -28,6 +28,8 @@ import org.l2jmobius.gameserver.model.quest.newquestdata.QuestCondType;
import org.l2jmobius.gameserver.network.serverpackets.quest.ExQuestDialog;
import org.l2jmobius.gameserver.network.serverpackets.quest.ExQuestNotification;
import quests.Q10062_StrengthOfSpirit.Q10062_StrengthOfSpirit;
/**
* @author Magik
*/
@@ -104,10 +106,10 @@ public class Q10061_NewLifesLessons extends Quest
questState.exitQuest(false, true);
rewardPlayer(player);
final QuestState nextQuestState = player.getQuestState(Q10061_NewLifesLessons.class.getSimpleName());
final QuestState nextQuestState = player.getQuestState(Q10062_StrengthOfSpirit.class.getSimpleName());
if (nextQuestState == null)
{
player.sendPacket(new ExQuestDialog(10061, QuestDialogType.ACCEPT));
player.sendPacket(new ExQuestDialog(10062, QuestDialogType.ACCEPT));
}
}
break;

View File

@@ -28,6 +28,8 @@ import org.l2jmobius.gameserver.model.quest.newquestdata.QuestCondType;
import org.l2jmobius.gameserver.network.serverpackets.quest.ExQuestDialog;
import org.l2jmobius.gameserver.network.serverpackets.quest.ExQuestNotification;
import quests.Q10063_LearningAutoHunt.Q10063_LearningAutoHunt;
/**
* @author Magik
*/
@@ -36,7 +38,7 @@ public class Q10062_StrengthOfSpirit extends Quest
private static final int QUEST_ID = 10062;
private static final int[] MONSTERS =
{
22324 // Training dummy
22183 // Training dummy
};
public Q10062_StrengthOfSpirit()
@@ -104,10 +106,10 @@ public class Q10062_StrengthOfSpirit extends Quest
questState.exitQuest(false, true);
rewardPlayer(player);
final QuestState nextQuestState = player.getQuestState(Q10062_StrengthOfSpirit.class.getSimpleName());
final QuestState nextQuestState = player.getQuestState(Q10063_LearningAutoHunt.class.getSimpleName());
if (nextQuestState == null)
{
player.sendPacket(new ExQuestDialog(10062, QuestDialogType.ACCEPT));
player.sendPacket(new ExQuestDialog(10063, QuestDialogType.ACCEPT));
}
}
break;

View File

@@ -6,6 +6,7 @@
<removeSkill id="1003" onlyReplaceByLearn="true" /> <!-- Eagle Spirit -->
<removeSkill id="100" onlyReplaceByLearn="true" /> <!-- Shock Mastery -->
<removeSkill id="164" onlyReplaceByLearn="true" /> <!-- Quick Recovery -->
<removeSkill id="250" onlyReplaceByLearn="true" /> <!-- Weapon Mastery -->
</skill>
<skill skillName="Shaman's Attack Mastery" skillId="45056" skillLevel="2" getLevel="55" levelUpSp="31000" />
<skill skillName="Shaman's Attack Mastery" skillId="45056" skillLevel="3" getLevel="65" levelUpSp="73000" />

View File

@@ -6,6 +6,7 @@
<removeSkill id="1003" onlyReplaceByLearn="true" /> <!-- Eagle Spirit -->
<removeSkill id="100" onlyReplaceByLearn="true" /> <!-- Shock Mastery -->
<removeSkill id="164" onlyReplaceByLearn="true" /> <!-- Quick Recovery -->
<removeSkill id="250" onlyReplaceByLearn="true" /> <!-- Weapon Mastery -->
</skill>
<skill skillName="Shaman's Attack Mastery" skillId="45056" skillLevel="2" getLevel="55" levelUpSp="47000" />
<skill skillName="Shaman's Attack Mastery" skillId="45056" skillLevel="3" getLevel="65" levelUpSp="110000" />

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 obtain various items. -->
<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 obtain various items. -->

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

@@ -977,57 +977,129 @@
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. One-handed sword/ blunt weapon, dagger, rapier, spear: P. Atk. +4, M. Atk. +3. Two-handed sword/ blunt weapon, dual swords, fist weapon, ancient sword: P. Atk. +5, M. Atk. +3. Bow, firearms: P. Atk. +8, M. Atk. +3. <font color=bbaa88><When enchanted to +4 or higher></font>. One-handed sword/ blunt weapon, dagger, rapier, spear: P. Atk. +8, M. Atk. +6. Two-handed sword/ blunt weapon, dual swords, fist weapon, ancient sword: P. Atk. +10, M. Atk. +6. Bow, firearms: P. Atk. +16, M. Atk. +6. <font color=eeaa22>Safe enchanting to +4. In case of failure the enchant value remains the same. For items enchanted from +7 to +15.</font>. <font color=ff6666>Cannot be used for mass enchanting.</font> -->
<set name="icon" val="icon.giant_scrl_of_ench_wp_d" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP" />
<set name="immediate_effect" val="true" />
<set name="material" val="PAPER" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="EnchantScrolls" />
<set name="commissionItemType" val="SCROLL_ENCHANT_WEAPON" />
<set name="is_sellable" val="false" />
<skills>
<skill id="51263" level="1" />
</skills>
</item>
<item id="91465" name="High-grade Stable Scroll: Enchant D-grade Armor" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. Armor: P. Def. +1. Accessories: M. Def. +1. <font color=bbaa88><When enchanted to +4 or higher></font>. Armor: P. Def. +3. Accessories: M. Def. +3. <font color=eeaa22>Safe enchanting to +4. In case of failure the enchant value remains the same. For armor and accessories enchanted from +6 to +9</font>. <font color=ff6666>Cannot be used for mass enchanting.</font> -->
<set name="icon" val="icon.giant_scrl_of_ench_am_d" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM" />
<set name="immediate_effect" val="true" />
<set name="material" val="PAPER" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="EnchantScrolls" />
<set name="commissionItemType" val="SCROLL_ENCHANT_ARMOR" />
<set name="is_sellable" val="false" />
<skills>
<skill id="51264" level="1" />
</skills>
</item>
<item id="91466" name="High-grade Stable Scroll: Enchant C-grade Weapon" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. One-handed sword/ blunt weapon, dagger, rapier, spear: P. Atk. +4, M. Atk. +3. Two-handed sword/ blunt weapon, dual swords, fist weapon, ancient sword: P. Atk. +5, M. Atk. +3. Bow, firearms: P. Atk. +8, M. Atk. +3. <font color=bbaa88><When enchanted to +4 or higher></font>. One-handed sword/ blunt weapon, dagger, rapier, spear: P. Atk. +8, M. Atk. +6. Two-handed sword/ blunt weapon, dual swords, fist weapon, ancient sword: P. Atk. +10, M. Atk. +6. Bow, firearms: P. Atk. +16, M. Atk. +6. <font color=eeaa22>Safe enchanting to +4. In case of failure the enchant value remains the same. For items enchanted from +7 to +15.</font>. <font color=ff6666>Cannot be used for mass enchanting.</font> -->
<set name="icon" val="icon.giant_scrl_of_ench_wp_c" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP" />
<set name="immediate_effect" val="true" />
<set name="material" val="PAPER" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="EnchantScrolls" />
<set name="commissionItemType" val="SCROLL_ENCHANT_WEAPON" />
<set name="is_sellable" val="false" />
<skills>
<skill id="51265" level="1" />
</skills>
</item>
<item id="91467" name="High-grade Stable Scroll: Enchant C-grade Armor" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. Armor: P. Def. +1. Accessories: M. Def. +1. <font color=bbaa88><When enchanted to +4 or higher></font>. Armor: P. Def. +3. Accessories: M. Def. +3. <font color=eeaa22>Safe enchanting to +4. In case of failure the enchant value remains the same. For armor and accessories enchanted from +6 to +9</font>. <font color=ff6666>Cannot be used for mass enchanting.</font> -->
<set name="icon" val="icon.giant_scrl_of_ench_am_c" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM" />
<set name="immediate_effect" val="true" />
<set name="material" val="PAPER" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="EnchantScrolls" />
<set name="commissionItemType" val="SCROLL_ENCHANT_ARMOR" />
<set name="is_sellable" val="false" />
<skills>
<skill id="51266" level="1" />
</skills>
</item>
<item id="91468" name="High-grade Stable Scroll: Enchant B-grade Weapon" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. One-handed sword/ blunt weapon, dagger, rapier, spear: P. Atk. +4, M. Atk. +3. Two-handed sword/ blunt weapon, dual swords, fist weapon, ancient sword: P. Atk. +5, M. Atk. +3. Bow, firearms: P. Atk. +8, M. Atk. +3. <font color=bbaa88><When enchanted to +4 or higher></font>. One-handed sword/ blunt weapon, dagger, rapier, spear: P. Atk. +8, M. Atk. +6. Two-handed sword/ blunt weapon, dual swords, fist weapon, ancient sword: P. Atk. +10, M. Atk. +6. Bow, firearms: P. Atk. +16, M. Atk. +6. <font color=eeaa22>Safe enchanting to +4. In case of failure the enchant value remains the same. For items enchanted from +7 to +15.</font>. <font color=ff6666>Cannot be used for mass enchanting.</font> -->
<set name="icon" val="icon.giant_scrl_of_ench_wp_b" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP" />
<set name="immediate_effect" val="true" />
<set name="material" val="PAPER" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="EnchantScrolls" />
<set name="commissionItemType" val="SCROLL_ENCHANT_WEAPON" />
<set name="is_sellable" val="false" />
<skills>
<skill id="51267" level="1" />
</skills>
</item>
<item id="91469" name="High-grade Stable Scroll: Enchant B-grade Armor" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. Armor: P. Def. +1. Accessories: M. Def. +1. <font color=bbaa88><When enchanted to +4 or higher></font>. Armor: P. Def. +3. Accessories: M. Def. +3. <font color=eeaa22>Safe enchanting to +4. In case of failure the enchant value remains the same. For armor and accessories enchanted from +6 to +9</font>. <font color=ff6666>Cannot be used for mass enchanting.</font> -->
<set name="icon" val="icon.giant_scrl_of_ench_am_b" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM" />
<set name="immediate_effect" val="true" />
<set name="material" val="PAPER" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="EnchantScrolls" />
<set name="commissionItemType" val="SCROLL_ENCHANT_ARMOR" />
<set name="is_sellable" val="false" />
<skills>
<skill id="51268" level="1" />
</skills>
</item>
<item id="91470" name="High-grade Stable Scroll: Enchant A-grade Weapon" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. One-handed sword/ blunt weapon, dagger, rapier, spear: P. Atk. +10, M. Atk. +6. Two-handed sword/ blunt weapon, dual swords, fist weapon, ancient sword: P. Atk. +12, M. Atk. +6. Bow, firearms: P. Atk. +16, M. Atk. +6. <font color=bbaa88><When enchanted to +4 or higher></font>. One-handed sword/ blunt weapon, dagger, rapier, spear: P. Atk. +30, M. Atk. +18. Two-handed sword/ blunt weapon, dual swords, fist weapon, ancient sword: P. Atk. +36, M. Atk. +18. Bow, firearms: P. Atk. +48, M. Atk. +18. <font color=eeaa22>Safe enchanting to +4. In case of failure the enchant value remains the same. For items enchanted from +7 to +15.</font>. <font color=ff6666>Cannot be used for mass enchanting.</font> -->
<set name="icon" val="icon.giant_scrl_of_ench_wp_a" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP" />
<set name="immediate_effect" val="true" />
<set name="material" val="PAPER" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="EnchantScrolls" />
<set name="commissionItemType" val="SCROLL_ENCHANT_WEAPON" />
<set name="is_sellable" val="false" />
<skills>
<skill id="51269" level="1" />
</skills>
</item>
<item id="91471" name="High-grade Stable Scroll: Enchant A-grade Armor" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. Armor: P. Def. +4. Accessories: M. Def. +3. <font color=bbaa88><When enchanted to +4 or higher></font>. Armor: P. Def. +9. Accessories: M. Def. +7. <font color=eeaa22>Safe enchanting to +4. In case of failure the enchant value remains the same. For armor and accessories enchanted from +6 to +9</font>. <font color=ff6666>Cannot be used for mass enchanting.</font> -->
<set name="icon" val="icon.giant_scrl_of_ench_am_a" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM" />
<set name="immediate_effect" val="true" />
<set name="material" val="PAPER" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="EnchantScrolls" />
<set name="commissionItemType" val="SCROLL_ENCHANT_ARMOR" />
<set name="is_sellable" val="false" />
<skills>
<skill id="51270" level="1" />
</skills>
</item>
<item id="91472" name="+5 Sealed Agathion Virgo" type="EtcItem">
<!-- Double-click to obtain various items. -->

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 obtain various items. -->

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. <font color=bbaa88><Compound></font>. Materials: identical Jewels and Jewelry Boxes. In case of failure, the current level remains the same, but materials disappear. 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>. Pet's acquired XP +30%. Duration: 20 min. Cooldown: 1 min. The effect disappears when a pet dies or is recalled. -->

View File

@@ -339,23 +339,51 @@
<set name="icon" val="icon.immortal_weapon_bg0000" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="BLUNT" />
<set name="bodypart" val="lhand" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="ORIHARUKON" />
<set name="weight" val="1550" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="BLUNT_WEAPON" />
<stats>
<stat type="pAtk">543</stat>
<stat type="mAtk">304</stat>
<stat type="pAtkSpd">379</stat>
<stat type="accCombat">8</stat>
<stat type="rCrit">6</stat>
<stat type="randomDamage">19</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50397" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon Enchant Effect -->
<skill id="50625" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50625" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50625" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50625" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50625" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50625" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50625" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50625" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50625" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50625" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50625" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96928" name="Demon King's Ancient Sword" additionalName="In development" type="Weapon">
<!-- <font color=ff6666><Unavailable to Humans/ Elves/ Dark Elves/ Sylphs/ Vanguard Riders/ Assassins.></font> -->
@@ -363,69 +391,153 @@
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="ANCIENTSWORD" />
<set name="bodypart" val="lrhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="STEEL" />
<set name="weight" val="1530" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="ANCIENT_SWORD" />
<stats>
<stat type="pAtk">597</stat>
<stat type="mAtk">304</stat>
<stat type="pAtkSpd">379</stat>
<stat type="accCombat">5</stat>
<stat type="rCrit">10</stat>
<stat type="randomDamage">15</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50392" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50628" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50628" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50628" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50628" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50628" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50628" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50628" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50628" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50628" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50628" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50628" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96929" name="Demon King's Magic Blunt Weapon" additionalName="In development" type="Weapon">
<!-- <font color=ff6666><Unavailable to Sylphs/ Vanguard Riders/ Assassins.></font> -->
<set name="icon" val="icon.immortal_weapon_bg0000" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="BLUNT" />
<set name="bodypart" val="lhand" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="FINE_STEEL" />
<set name="weight" val="1510" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="is_magic_weapon" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="enchant_enabled" val="true" />
<set name="commissionItemType" val="ONE_HAND_MAGIC_BLUNT_WEAPON" />
<stats>
<stat type="pAtk">462</stat>
<stat type="mAtk">357</stat>
<stat type="pAtkSpd">379</stat>
<stat type="accCombat">8</stat>
<stat type="rCrit">6</stat>
<stat type="randomDamage">19</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50397" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50634" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50634" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50634" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50634" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50634" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50634" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50634" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50634" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50634" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50634" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50634" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96930" name="Demon King's Fire Gloves" additionalName="In development" type="Weapon">
<!-- <font color=ff6666><Unavailable to Sylphs/ Vanguard Riders/ Assassins.></font> -->
<set name="icon" val="icon.immortal_weapon_bg0000" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="FIST" />
<set name="weapon_type" val="DUALFIST" />
<set name="bodypart" val="lrhand" />
<set name="damage_range" val="0;0;32;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="ADAMANTAITE" />
<set name="weight" val="1330" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="FIST_WEAPON" />
<stats>
<stat type="pAtk">628</stat>
<stat type="mAtk">304</stat>
<stat type="pAtkSpd">325</stat>
<stat type="accCombat">8</stat>
<stat type="rCrit">6</stat>
<stat type="randomDamage">5</stat>
<stat type="pAtkRange">80</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50404" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50630" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50630" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50630" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50630" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50630" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50630" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50630" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50630" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50630" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50630" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50630" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96931" name="Demon King's Pistols" additionalName="In development" type="Weapon">
<!-- <font color=bbaa88><Sylph-exclusive Weapon.></font> -->
@@ -433,45 +545,101 @@
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="damage_range" val="0;0;10;0" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="ADAMANTAITE" />
<set name="weight" val="1640" />
<set name="soulshots" val="3" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="SPEAR" />
<stats>
<stat type="pAtk">1018</stat>
<stat type="mAtk">319</stat>
<stat type="pAtkSpd">293</stat>
<stat type="accCombat">-3.75</stat>
<stat type="rCrit">10</stat>
<stat type="randomDamage">5</stat>
<stat type="pAtkRange">80</stat>
<stat type="pAtkRange">400</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50403" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50637" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50637" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50637" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50637" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50637" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50637" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50637" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50637" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50637" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50637" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50637" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96932" name="Demon King's Rapier" additionalName="In development" type="Weapon">
<!-- <font color=ff6666><Unavailable to Orcs/ Sylphs/ Dwarves/ Assassins.></font> -->
<set name="icon" val="icon.immortal_weapon_bg0000" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="RAPIER" />
<set name="bodypart" val="lhand" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="STEEL" />
<set name="weight" val="1300" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="RAPIER" />
<stats>
<stat type="pAtk">506</stat>
<stat type="mAtk">337</stat>
<stat type="pAtkSpd">406</stat>
<stat type="accCombat">8</stat>
<stat type="rCrit">10</stat>
<stat type="randomDamage">19</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50395" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50633" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50633" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50633" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50633" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50633" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50633" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50633" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50633" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50633" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50633" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50633" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96933" name="Demon King's Staff" additionalName="In development" type="Weapon">
<!-- <font color=ff6666><Unavailable to Sylphs/ Vanguard Riders/ Assassins.></font> -->
@@ -479,23 +647,51 @@
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="BLUNT" />
<set name="bodypart" val="lrhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="WOOD" />
<set name="weight" val="880" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="is_magic_weapon" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="enchant_enabled" val="true" />
<set name="commissionItemType" val="TWO_HAND_MAGIC_BLUNT_WEAPON" />
<stats>
<stat type="pAtk">532</stat>
<stat type="mAtk">377</stat>
<stat type="pAtkSpd">325</stat>
<stat type="accCombat">8</stat>
<stat type="rCrit">6</stat>
<stat type="randomDamage">19</stat>
<stat type="pAtkRange">80</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50397" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50635" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50635" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50635" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50635" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50635" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50635" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50635" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50635" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50635" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50635" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50635" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96934" name="Demon King's Crossbow" additionalName="In development" type="Weapon">
<set name="icon" val="BranchSys3.Icon.g_beam_shield" />
@@ -519,23 +715,51 @@
<set name="icon" val="icon.immortal_weapon_bg0000" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="DAGGER" />
<set name="bodypart" val="lhand" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="ORIHARUKON" />
<set name="weight" val="930" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="DAGGER" />
<stats>
<stat type="pAtk">458</stat>
<stat type="mAtk">304</stat>
<stat type="pAtkSpd">433</stat>
<stat type="accCombat">-3.75</stat>
<stat type="rCrit">12</stat>
<stat type="randomDamage">5</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50402" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50632" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50632" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50632" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50632" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50632" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50632" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50632" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50632" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50632" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50632" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50632" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96936" name="Demon King's Shield" additionalName="In development" type="Armor">
<set name="icon" val="icon.shield_of_protection" />
@@ -574,22 +798,49 @@
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="SWORD" />
<set name="bodypart" val="lrhand" />
<set name="damage_range" val="0;0;46;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="BONE" />
<set name="weight" val="1820" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="TWO_HAND_SWORD" />
<stats>
<stat type="pAtk">628</stat>
<stat type="mAtk">304</stat>
<stat type="pAtkSpd">325</stat>
<stat type="rCrit">8</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50392" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50626" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50626" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50626" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50626" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50626" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50626" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50626" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50626" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50626" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50626" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50626" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96939" name="Demon King's Spear" additionalName="In development" type="Weapon">
<!-- <font color=ff6666><Unavailable to Sylphs/ Assassins.></font> -->
@@ -597,25 +848,51 @@
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="POLE" />
<set name="bodypart" val="lrhand" />
<set name="damage_range" val="0;0;66;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="CHRYSOLITE" />
<set name="weight" val="1820" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<skills>
<skill id="3599" level="1" /> <!-- Polearm Multi-attack -->
</skills>
<set name="commissionItemType" val="SPEAR" />
<stats>
<stat type="pAtk">543</stat>
<stat type="mAtk">304</stat>
<stat type="pAtkSpd">325</stat>
<stat type="accCombat">-3.75</stat>
<stat type="rCrit">8</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">80</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50405" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="3599" level="1" /> <!-- Polearm Multi-attack -->
<skill id="50631" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50631" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50631" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50631" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50631" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50631" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50631" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50631" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50631" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50631" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50631" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96940" name="Demon King's Bow" additionalName="In development" type="Weapon">
<!-- <font color=ff6666><Unavailable to Sylphs/ Vanguard Riders/ Assassins.></font> -->
@@ -623,23 +900,51 @@
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="BOW" />
<set name="bodypart" val="lrhand" />
<set name="damage_range" val="0;0;10;0" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="ORIHARUKON" />
<set name="weight" val="1640" />
<set name="mp_consume" val="5" />
<set name="soulshots" val="3" />
<set name="spiritshots" val="2" />
<set name="mp_consume" val="5" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="BOW" />
<stats>
<stat type="pAtk">1018</stat>
<stat type="mAtk">319</stat>
<stat type="pAtkSpd">293</stat>
<stat type="accCombat">-3.75</stat>
<stat type="rCrit">12</stat>
<stat type="randomDamage">5</stat>
<stat type="pAtkRange">500</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50401" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon enchant Effect -->
<skill id="50636" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50636" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50636" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50636" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50636" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50636" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50636" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50636" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50636" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50636" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50636" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="96941" name="Extra Pass: Training Zone" additionalName="Sealed" type="EtcItem">
<!-- Double-click to get an extra pass to the Training Zone. Note!. Can be used once a day outside of instance zones. Can only be used when the Training Zone is on cooldown. -->

View File

@@ -1737,24 +1737,50 @@
<set name="icon" val="icon.immortal_weapon_bg0000" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="SWORD" />
<set name="bodypart" val="lhand" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="FINE_STEEL" />
<set name="weight" val="1300" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="enchant_enabled" val="true" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="ONE_HAND_SWORD" />
<stats>
<stat type="pAtk">543</stat>
<stat type="mAtk">304</stat>
<stat type="pAtkSpd">379</stat>
<stat type="rCrit">8</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50392" level="1" type="ON_BLESSING" />
<skill id="50418" level="1" type="ON_BLESSING" type_value="0" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon Enchant Effect -->
<skill id="50624" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50624" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50624" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50624" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50624" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50624" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50624" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50624" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50624" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50624" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50624" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="97089" name="Demon King's Dual Swords" additionalName="In development" type="Weapon">
<!-- When enchanting dual swords, two-handed swords/ blunts and fists, the P. Atk. bonus is higher than that of one-handed weapons. <font color=ff6666><Unavailable to Sylphs/ Vanguard Riders/ Assassins.></font> -->
@@ -1762,23 +1788,48 @@
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="DUAL" />
<set name="bodypart" val="lrhand" />
<set name="damage_range" val="0;0;44;120" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="FINE_STEEL" />
<set name="weight" val="1890" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<set name="enchant_enabled" val="true" />
<set name="is_sellable" val="false" />
<set name="is_freightable" val="true" />
<set name="enchant_enabled" val="true" />
<set name="ensoulNormalSlots" val="2" />
<set name="ensoulSpecialSlots" val="1" />
<set name="commissionItemType" val="DUALSWORD" />
<stats>
<stat type="pAtk">628</stat>
<stat type="mAtk">304</stat>
<stat type="pAtkSpd">325</stat>
<stat type="rCrit">8</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<!-- Weapon Blessing Effect -->
<skill id="50418" level="1" type="ON_BLESSING" />
<skill id="50419" level="1" type="ON_BLESSING" type_value="1" />
<skill id="50420" level="1" type="ON_BLESSING" type_value="2" />
<skill id="50421" level="1" type="ON_BLESSING" type_value="3" />
<skill id="50422" level="1" type="ON_BLESSING" type_value="4" />
<skill id="50423" level="1" type="ON_BLESSING" type_value="5" />
<!-- Weapon Enchant Effect -->
<skill id="50629" level="1" type="ON_ENCHANT" type_value="0" />
<skill id="50629" level="2" type="ON_ENCHANT" type_value="1" />
<skill id="50629" level="3" type="ON_ENCHANT" type_value="2" />
<skill id="50629" level="4" type="ON_ENCHANT" type_value="3" />
<skill id="50629" level="5" type="ON_ENCHANT" type_value="4" />
<skill id="50629" level="6" type="ON_ENCHANT" type_value="5" />
<skill id="50629" level="6" type="ON_ENCHANT" type_value="6" />
<skill id="50629" level="6" type="ON_ENCHANT" type_value="7" />
<skill id="50629" level="6" type="ON_ENCHANT" type_value="8" />
<skill id="50629" level="6" type="ON_ENCHANT" type_value="9" />
<skill id="50629" level="6" type="ON_ENCHANT" type_value="10" />
</skills>
</item>
<item id="97090" name="Wolf Master's Common Armor" additionalName="In development" type="Armor">
<set name="icon" val="icon.armor_t2000_ul_i00" />

View File

@@ -3327,7 +3327,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" />
@@ -3652,7 +3652,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

@@ -4805,10 +4805,11 @@
<skill id="45198" toLevel="2" 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>
@@ -4816,9 +4817,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

@@ -2142,6 +2142,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>
@@ -2153,6 +2154,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 -->
@@ -2168,6 +2170,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>
@@ -2177,6 +2180,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>
@@ -2186,6 +2190,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

@@ -1957,38 +1957,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>
@@ -2003,10 +1972,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>
@@ -4140,7 +4134,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

@@ -1084,6 +1084,11 @@
<value toLevel="1" fromLevel="1" toSubLevel="1003" fromSubLevel="1003">3047418</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>0</min>
<max>64</max>
</effect>
@@ -1096,6 +1101,11 @@
<value toLevel="1" fromLevel="1" toSubLevel="1003" fromSubLevel="1003">3047419</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>65</min>
<max>74</max>
</effect>
@@ -1108,6 +1118,11 @@
<value toLevel="1" fromLevel="1" toSubLevel="1003" fromSubLevel="1003">3047420</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>75</min>
<max>84</max>
</effect>
@@ -1120,6 +1135,11 @@
<value toLevel="1" fromLevel="1" toSubLevel="1003" fromSubLevel="1003">3047421</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>85</min>
<max>999</max>
</effect>

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

@@ -4333,6 +4333,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>
@@ -4639,7 +4640,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>

File diff suppressed because it is too large Load Diff

View File

@@ -1569,35 +1569,83 @@
</skill>
<skill id="51263" toLevel="1" name="High-grade Stable Scroll: Enchant D-grade Weapon">
<icon>icon.giant_scrl_of_ench_wp_d</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="51264" toLevel="1" name="High-grade Stable Scroll: Enchant D-grade Armor">
<icon>icon.giant_scrl_of_ench_am_d</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="51265" toLevel="1" name="High-grade Stable Scroll: Enchant C-grade Weapon">
<icon>icon.giant_scrl_of_ench_wp_c</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="51266" toLevel="1" name="High-grade Stable Scroll: Enchant C-grade Armor">
<icon>icon.giant_scrl_of_ench_am_c</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="51267" toLevel="1" name="High-grade Stable Scroll: Enchant B-grade Weapon">
<icon>icon.giant_scrl_of_ench_wp_b</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="51268" toLevel="1" name="High-grade Stable Scroll: Enchant B-grade Armor">
<icon>icon.giant_scrl_of_ench_am_b</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="51269" toLevel="1" name="High-grade Stable Scroll: Enchant A-grade Weapon">
<icon>icon.skill0000</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="51270" toLevel="1" name="High-grade Stable Scroll: Enchant A-grade Armor">
<icon>icon.skill0000</icon>
<isMagic>2</isMagic> <!-- Static Skill -->
<magicLevel>1</magicLevel>
<operateType>A1</operateType>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="51271" toLevel="5" name="War Paint">
<!-- PvP Damage +$s1. -->

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

@@ -2359,6 +2359,11 @@
<amount>3</amount>
</effect>
</effects>
<endEffects>
<effect name="ModifyAssassinationPoints">
<amount>-10</amount>
</effect>
</endEffects>
</skill>
<skill id="87367" toLevel="3" name="Sharp Blade">
<!-- Sharpens the dagger. P. Atk. +5% -->
@@ -2953,6 +2958,10 @@
<amount>50</amount>
<mode>PER</mode>
</effect>
<effect name="ReplaceSkillBySkill">
<existingSkillId>87301</existingSkillId>
<replacementSkillId>87310</replacementSkillId>
</effect>
</effects>
</skill>
<skill id="87396" toLevel="1" name="Shadow Boost">
@@ -2967,6 +2976,10 @@
<amount>15</amount>
<mode>PER</mode>
</effect>
<effect name="ReplaceSkillBySkill">
<existingSkillId>87304</existingSkillId>
<replacementSkillId>87313</replacementSkillId>
</effect>
</effects>
</skill>
<skill id="87397" toLevel="3" name="Maximum Critical">

View File

@@ -14,6 +14,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">2087431</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087431</value>
</skillId>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<skillLevel>1</skillLevel>
<min>0</min>
<max>19</max>
@@ -27,6 +32,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087432</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>20</min>
<max>
<value fromLevel="1" toLevel="1">39</value>
@@ -44,6 +54,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087433</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>
<value fromLevel="1" toLevel="1">40</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">35</value>
@@ -66,6 +81,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087434</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>
<value fromLevel="1" toLevel="1">60</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">55</value>
@@ -83,6 +103,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087435</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>0</min>
<max>14</max>
</effect>
@@ -95,6 +120,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087436</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>15</min>
<max>
<value fromLevel="1" toLevel="1">34</value>
@@ -112,6 +142,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087437</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>
<value fromLevel="1" toLevel="1">35</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">30</value>
@@ -134,6 +169,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087438</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>
<value fromLevel="1" toLevel="1">50</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">45</value>
@@ -151,6 +191,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087439</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>0</min>
<max>39</max>
</effect>
@@ -163,6 +208,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087440</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>40</min>
<max>
<value fromLevel="1" toLevel="1">59</value>
@@ -180,6 +230,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087441</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>
<value fromLevel="1" toLevel="1">60</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">55</value>
@@ -202,6 +257,11 @@
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">3087442</value>
</skillId>
<skillLevel>1</skillLevel>
<skillSubLevel>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">1001</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1002" toSubLevel="1002">1002</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1003" toSubLevel="1003">1003</value>
</skillSubLevel>
<min>
<value fromLevel="1" toLevel="1">80</value>
<value fromLevel="1" toLevel="1" fromSubLevel="1001" toSubLevel="1001">75</value>

View File

@@ -13,6 +13,8 @@ AdditionalPhysicalAttack: Additional PhysicalAttack effect handler. (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.
@@ -149,6 +151,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)
@@ -168,10 +171,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.
@@ -212,7 +216,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.
ModifyAssassinationPoints: Modifies player Assassination Point count. (l2jmobius)
ModifyBeastPoints: Modifies player Beast Point count. (l2jmobius)
@@ -282,6 +285,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.

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