Sync with L2jServer HighFive Nov 14th 2015.

This commit is contained in:
MobiusDev 2015-11-14 16:31:37 +00:00
parent 887fbcc6b5
commit e38353e409
125 changed files with 1998 additions and 1419 deletions

View File

@ -25,7 +25,7 @@ ChampionAura = True
# Min and max levels allowed for a mob to be a Champion mob. # Min and max levels allowed for a mob to be a Champion mob.
ChampionMinLevel = 20 ChampionMinLevel = 20
ChampionMaxLevel = 70 ChampionMaxLevel = 85
# Hp multiplier for Champion mobs. # Hp multiplier for Champion mobs.
ChampionHp = 8 ChampionHp = 8

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<showTimer val="true" increase="true" text="Elapsed Time :" /> <showTimer val="true" increase="true" text="Elapsed Time :" />
<spawnPoint spawnX="52212" spawnY="218998" spawnZ="-3208" /> <exitPoint x="52212" y="218998" z="-3208" />
<reenter additionStyle="ON_INSTANCE_FINISH" > <reenter additionStyle="ON_INSTANCE_FINISH" >
<reset day="Monday" hour="6" minute="30" /> <reset day="Monday" hour="6" minute="30" />
<reset day="Wednesday" hour="6" minute="30" /> <reset day="Wednesday" hour="6" minute="30" />

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<showTimer val="true" increase="true" text="Elapsed Time :" /> <showTimer val="true" increase="true" text="Elapsed Time :" />
<spawnPoint spawnX="52212" spawnY="218998" spawnZ="-3208" /> <exitPoint x="52212" y="218998" z="-3208" />
<reenter additionStyle="ON_INSTANCE_FINISH" > <reenter additionStyle="ON_INSTANCE_FINISH" >
<reset day="Monday" hour="6" minute="30" /> <reset day="Monday" hour="6" minute="30" />
<reset day="Wednesday" hour="6" minute="30" /> <reset day="Wednesday" hour="6" minute="30" />

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<showTimer val="true" increase="true" text="Elapsed Time :" /> <showTimer val="true" increase="true" text="Elapsed Time :" />
<spawnPoint spawnX="52212" spawnY="218998" spawnZ="-3208" /> <exitPoint x="52212" y="218998" z="-3208" />
<reenter additionStyle="ON_INSTANCE_FINISH" > <reenter additionStyle="ON_INSTANCE_FINISH" >
<reset day="Monday" hour="6" minute="30" /> <reset day="Monday" hour="6" minute="30" />
<reset day="Wednesday" hour="6" minute="30" /> <reset day="Wednesday" hour="6" minute="30" />

View File

@ -3,7 +3,7 @@
<activityTime val="40" /> <activityTime val="40" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1200" /> <emptyDestroyTime val="1200" />
<spawnPoint spawnX="-114592" spawnY="-152509" spawnZ="-6723" /> <exitPoint x="-114592" y="-152509" z="-6723" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Room 1 --> <!-- Room 1 -->

View File

@ -3,7 +3,7 @@
<activityTime val="40" /> <activityTime val="40" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1200" /> <emptyDestroyTime val="1200" />
<spawnPoint spawnX="-114592" spawnY="-152509" spawnZ="-6723" /> <exitPoint x="-114592" y="-152509" z="-6723" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Room 1 --> <!-- Room 1 -->

View File

@ -3,7 +3,7 @@
<activityTime val="40" /> <activityTime val="40" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1200" /> <emptyDestroyTime val="1200" />
<spawnPoint spawnX="-114592" spawnY="-152509" spawnZ="-6723" /> <exitPoint x="-114592" y="-152509" z="-6723" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Room 1 --> <!-- Room 1 -->

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="60" /> <emptyDestroyTime val="60" />
<spawnPoint spawnX="-114592" spawnY="-152509" spawnZ="-6723" /> <exitPoint x="-114592" y="-152509" z="-6723" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Room 1 --> <!-- Room 1 -->

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1200" /> <emptyDestroyTime val="1200" />
<spawnPoint spawnX="-114592" spawnY="-152509" spawnZ="-6723" /> <exitPoint x="-114592" y="-152509" z="-6723" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Room 1 --> <!-- Room 1 -->

View File

@ -3,7 +3,7 @@
<activityTime val="40" /> <activityTime val="40" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1200" /> <emptyDestroyTime val="1200" />
<spawnPoint spawnX="-114592" spawnY="-152509" spawnZ="-6723" /> <exitPoint x="-114592" y="-152509" z="-6723" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Room 1 --> <!-- Room 1 -->

View File

@ -3,7 +3,7 @@
<activityTime val="90" /> <activityTime val="90" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1200" /> <emptyDestroyTime val="1200" />
<spawnPoint spawnX="149442" spawnY="173520" spawnZ="-5024" /> <exitPoint x="149442" y="173520" z="-5024" />
<reenter additionStyle="ON_INSTANCE_ENTER" > <reenter additionStyle="ON_INSTANCE_ENTER" >
<reset time="86400000" /> <reset time="86400000" />
</reenter> </reenter>

View File

@ -3,7 +3,7 @@
<activityTime val="30" /> <activityTime val="30" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="30" /> <emptyDestroyTime val="30" />
<spawnPoint spawnX="139968" spawnY="150367" spawnZ="-3111" /> <exitPoint x="139968" y="150367" z="-3111" />
<doorlist> <doorlist>
<door doorId="24230001" /> <door doorId="24230001" />
<door doorId="24230002" /> <door doorId="24230002" />

View File

@ -3,7 +3,7 @@
<activityTime val="30" /> <activityTime val="30" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="600" /> <emptyDestroyTime val="600" />
<spawnPoint spawnX="-22213" spawnY="277138" spawnZ="-9930" /> <exitPoint x="-22213" y="277138" z="-9930" />
<reenter additionStyle="ON_INSTANCE_FINISH" > <reenter additionStyle="ON_INSTANCE_FINISH" >
<reset day="Wednesday" hour="6" minute="30" /> <reset day="Wednesday" hour="6" minute="30" />
<reset day="Saturday" hour="6" minute="30" /> <reset day="Saturday" hour="6" minute="30" />

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="900" /> <emptyDestroyTime val="900" />
<spawnPoint spawnX="171895" spawnY="-17501" spawnZ="-4903" /> <exitPoint x="171895" y="-17501" z="-4903" />
<removeBuffs type="ALL" /> <removeBuffs type="ALL" />
<doorlist> <doorlist>
<door doorId="17240101" /> <door doorId="17240101" />

View File

@ -3,7 +3,7 @@
<activityTime val="30" /> <activityTime val="30" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1" /> <emptyDestroyTime val="1" />
<spawnPoint spawnX="43275" spawnY="-87928" spawnZ="-2835" /> <exitPoint x="43275" y="-87928" z="-2835" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Elcadia --> <!-- Elcadia -->

View File

@ -3,7 +3,7 @@
<activityTime val="10" /> <activityTime val="10" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="10" /> <emptyDestroyTime val="10" />
<spawnPoint spawnX="-74903" spawnY="240618" spawnZ="-3584" /> <exitPoint x="-74903" y="240618" z="-3584" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Ayanthe --> <!-- Ayanthe -->

View File

@ -3,7 +3,7 @@
<activityTime val="10" /> <activityTime val="10" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="10" /> <emptyDestroyTime val="10" />
<spawnPoint spawnX="-74903" spawnY="240618" spawnZ="-3584" /> <exitPoint x="-74903" y="240618" z="-3584" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Katalin --> <!-- Katalin -->

View File

@ -3,7 +3,7 @@
<activityTime val="120" /> <activityTime val="120" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1800" /> <emptyDestroyTime val="1800" />
<spawnPoint spawnX="181381" spawnY="-80883" spawnZ="-2730" /> <exitPoint x="181381" y="-80883" z="-2730" />
<reenter additionStyle="NONE" > <reenter additionStyle="NONE" >
<reset day="Wednesday" hour="6" minute="30" /> <reset day="Wednesday" hour="6" minute="30" />
<reset day="Saturday" hour="6" minute="30" /> <reset day="Saturday" hour="6" minute="30" />

View File

@ -4,5 +4,5 @@
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="600" /> <emptyDestroyTime val="600" />
<showTimer val="true" /> <showTimer val="true" />
<spawnPoint spawnX="-183292" spawnY="206063" spawnZ="-12888" /> <exitPoint x="-183292" y="206063" z="-12888" />
</instance> </instance>

View File

@ -4,7 +4,7 @@
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1" /> <emptyDestroyTime val="1" />
<showTimer val="false" /> <showTimer val="false" />
<spawnPoint spawnX="-107910" spawnY="205828" spawnZ="-10872" /> <exitPoint x="-107910" y="205828" z="-10872" />
<doorlist> <doorlist>
<door doorId="16240100" /> <door doorId="16240100" />
<door doorId="16240102" /> <door doorId="16240102" />

View File

@ -3,7 +3,7 @@
<activityTime val="30" /> <activityTime val="30" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="30" /> <emptyDestroyTime val="30" />
<spawnPoint spawnX="147072" spawnY="23743" spawnZ="-1984" /> <exitPoint x="147072" y="23743" z="-1984" />
<removeBuffs type="ALL" /> <removeBuffs type="ALL" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">

View File

@ -3,7 +3,7 @@
<activityTime val="20" /> <activityTime val="20" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="5" /> <emptyDestroyTime val="5" />
<spawnPoint spawnX="113883" spawnY="-108777" spawnZ="-848" /> <exitPoint x="113883" y="-108777" z="-848" />
<doorlist> <doorlist>
<door doorId="23140101" /> <door doorId="23140101" />
</doorlist> </doorlist>

View File

@ -3,7 +3,7 @@
<activityTime val="120" /> <activityTime val="120" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="600" /> <emptyDestroyTime val="600" />
<spawnPoint spawnX="115717" spawnY="-125734" spawnZ="-3392" /> <exitPoint x="115717" y="-125734" z="-3392" />
<reenter additionStyle="ON_INSTANCE_FINISH" > <reenter additionStyle="ON_INSTANCE_FINISH" >
<reset day="Wednesday" hour="6" minute="30" /> <reset day="Wednesday" hour="6" minute="30" />
<reset day="Saturday" hour="6" minute="30" /> <reset day="Saturday" hour="6" minute="30" />

View File

@ -3,7 +3,7 @@
<activityTime val="120" /> <activityTime val="120" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="600" /> <emptyDestroyTime val="600" />
<spawnPoint spawnX="115717" spawnY="-125734" spawnZ="-3392" /> <exitPoint x="115717" y="-125734" z="-3392" />
<reenter additionStyle="ON_INSTANCE_FINISH" > <reenter additionStyle="ON_INSTANCE_FINISH" >
<reset day="Wednesday" hour="6" minute="30" /> <reset day="Wednesday" hour="6" minute="30" />
<reset day="Saturday" hour="6" minute="30" /> <reset day="Saturday" hour="6" minute="30" />

View File

@ -3,7 +3,7 @@
<activityTime val="5" /> <activityTime val="5" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="5" /> <emptyDestroyTime val="5" />
<spawnPoint spawnX="113793" spawnY="-109342" spawnZ="-845" /> <exitPoint x="113793" y="-109342" z="-845" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Jinia --> <!-- Jinia -->

View File

@ -3,7 +3,7 @@
<activityTime val="5" /> <activityTime val="5" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="5" /> <emptyDestroyTime val="5" />
<spawnPoint spawnX="113793" spawnY="-109342" spawnZ="-845" /> <exitPoint x="113793" y="-109342" z="-845" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Jinia --> <!-- Jinia -->

View File

@ -3,7 +3,7 @@
<activityTime val="5" /> <activityTime val="5" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="5" /> <emptyDestroyTime val="5" />
<spawnPoint spawnX="113793" spawnY="-109342" spawnZ="-845" /> <exitPoint x="113793" y="-109342" z="-845" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Jinia --> <!-- Jinia -->

View File

@ -3,7 +3,7 @@
<activityTime val="5" /> <activityTime val="5" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="5" /> <emptyDestroyTime val="5" />
<spawnPoint spawnX="113793" spawnY="-109342" spawnZ="-845" /> <exitPoint x="113793" y="-109342" z="-845" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Jinia --> <!-- Jinia -->

View File

@ -3,7 +3,7 @@
<activityTime val="15" /> <activityTime val="15" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="5" /> <emptyDestroyTime val="5" />
<spawnPoint spawnX="-82250" spawnY="246406" spawnZ="-14152" /> <exitPoint x="-82250" y="246406" z="-14152" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Karaphon --> <!-- Karaphon -->

View File

@ -2,7 +2,7 @@
<instance name="Labyrinth of Belis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd"> <instance name="Labyrinth of Belis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="5" /> <emptyDestroyTime val="5" />
<spawnPoint spawnX="-119942" spawnY="211142" spawnZ="-8591" /> <exitPoint x="-119942" y="211142" z="-8591" />
<doorlist> <doorlist>
<door doorId="16240001" /> <door doorId="16240001" />
<door doorId="16240002" /> <door doorId="16240002" />

View File

@ -3,7 +3,7 @@
<activityTime val="30" /> <activityTime val="30" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1" /> <emptyDestroyTime val="1" />
<spawnPoint spawnX="37063" spawnY="-49813" spawnZ="-1128" /> <exitPoint x="37063" y="-49813" z="-1128" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Sophia2 --> <!-- Sophia2 -->

View File

@ -3,7 +3,7 @@
<activityTime val="20" /> <activityTime val="20" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="20" /> <emptyDestroyTime val="20" />
<spawnPoint spawnX="178823" spawnY="-184303" spawnZ="-347" /> <exitPoint x="178823" y="-184303" z="-347" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Kegor --> <!-- Kegor -->

View File

@ -3,7 +3,7 @@
<activityTime val="30" /> <activityTime val="30" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1" /> <emptyDestroyTime val="1" />
<spawnPoint spawnX="115983" spawnY="-87351" spawnZ="-3397" /> <exitPoint x="115983" y="-87351" z="-3397" />
<removeBuffs type="ALL" /> <removeBuffs type="ALL" />
<doorlist> <doorlist>
<door doorId="21100001" /><!-- opened="true"--> <door doorId="21100001" /><!-- opened="true"-->

View File

@ -2,7 +2,7 @@
<instance name="Museum Dungeon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd"> <instance name="Museum Dungeon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="5" /> <emptyDestroyTime val="5" />
<spawnPoint spawnX="-114711" spawnY="243911" spawnZ="-7968" /> <exitPoint x="-114711" y="243911" z="-7968" />
<spawnlist> <spawnlist>
<group name="desks"> <group name="desks">
<spawn npcId="33126" x="-113744" y="244686" z="-7952" heading="0" respawn="0" /> <spawn npcId="33126" x="-113744" y="244686" z="-7952" heading="0" respawn="0" />

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="3000" /> <emptyDestroyTime val="3000" />
<spawnPoint spawnX="-84757" spawnY="60009" spawnZ="-2581" /> <exitPoint x="-84757" y="60009" z="-2581" />
<removeBuffs type="ALL" /> <removeBuffs type="ALL" />
<doorlist> <doorlist>
<door doorId="16200001" /> <door doorId="16200001" />

View File

@ -3,7 +3,7 @@
<activityTime val="90" /> <activityTime val="90" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="900" /> <emptyDestroyTime val="900" />
<spawnPoint spawnX="85039" spawnY="147543" spawnZ="-3400" /> <exitPoint x="85039" y="147543" z="-3400" />
<doorlist> <doorlist>
<door doorId="22110100" /> <door doorId="22110100" />
<door doorId="22110101" /> <door doorId="22110101" />

View File

@ -3,7 +3,7 @@
<activityTime val="90" /> <activityTime val="90" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="3000" /> <emptyDestroyTime val="3000" />
<spawnPoint spawnX="147725" spawnY="-56517" spawnZ="-2780" /> <exitPoint x="147725" y="-56517" z="-2780" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<spawn npcId="18635" x="122077" y="-46098" z="-2914" heading="5028" respawn="0" /> <spawn npcId="18635" x="122077" y="-46098" z="-2914" heading="5028" respawn="0" />

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="3000" /> <emptyDestroyTime val="3000" />
<spawnPoint spawnX="-80666" spawnY="151321" spawnZ="-3040" /> <exitPoint x="-80666" y="151321" z="-3040" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<!-- Inspector Sinai --> <!-- Inspector Sinai -->

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<instance name="coliseum" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
<activityTime val="30" />
<allowSummon val="false" />
<spawnPoints startPosType="FIXED">
<Location x="148786" y="46368" z="-3414" />
<Location x="148786" y="46454" z="-3414" />
<Location x="148786" y="46549" z="-3414" />
<Location x="148786" y="46652" z="-3414" />
<Location x="148786" y="46745" z="-3414" />
<Location x="148786" y="46842" z="-3414" />
<Location x="148786" y="46939" z="-3414" />
<Location x="148786" y="47033" z="-3414" />
<Location x="148786" y="47132" z="-3414" />
<Location x="150114" y="46358" z="-3414" />
<Location x="150114" y="46445" z="-3414" />
<Location x="150114" y="46540" z="-3414" />
<Location x="150114" y="46642" z="-3414" />
<Location x="150114" y="46735" z="-3414" />
<Location x="150114" y="46833" z="-3414" />
<Location x="150114" y="46930" z="-3414" />
<Location x="150114" y="47023" z="-3414" />
<Location x="150114" y="47122" z="-3414" />
</spawnPoints>
<doorlist>
<door doorId="24190001" />
<door doorId="24190002" />
<door doorId="24190003" />
<door doorId="24190004" />
</doorlist>
</instance>

View File

@ -3,7 +3,7 @@
<activityTime val="30" /> <activityTime val="30" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="600" /> <emptyDestroyTime val="600" />
<spawnPoint spawnX="-19006" spawnY="277065" spawnZ="-13383" /> <exitPoint x="-19006" y="277065" z="-13383" />
<reenter additionStyle="ON_INSTANCE_FINISH" > <reenter additionStyle="ON_INSTANCE_FINISH" >
<reset day="Wednesday" hour="6" minute="30" /> <reset day="Wednesday" hour="6" minute="30" />
<reset day="Saturday" hour="6" minute="30" /> <reset day="Saturday" hour="6" minute="30" />

View File

@ -3,7 +3,7 @@
<activityTime val="60" /> <activityTime val="60" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="900" /> <emptyDestroyTime val="900" />
<spawnPoint spawnX="-12585" spawnY="122305" spawnZ="-2989" /> <exitPoint x="-12585" y="122305" z="-2989" />
<doorlist> <doorlist>
<door doorId="17240001" /> <door doorId="17240001" />
<door doorId="17240002" /> <door doorId="17240002" />

View File

@ -3,7 +3,7 @@
<activityTime val="15" /> <activityTime val="15" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="1" /> <emptyDestroyTime val="1" />
<spawnPoint spawnX="-185057" spawnY="242821" spawnZ="1576" /> <exitPoint x="-185057" y="242821" z="1576" />
<spawnlist> <spawnlist>
<!-- Lelrikia --> <!-- Lelrikia -->
<group name="general"> <group name="general">

View File

@ -3,7 +3,7 @@
<activityTime val="130" /> <activityTime val="130" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="900" /> <emptyDestroyTime val="900" />
<spawnPoint spawnX="-248717" spawnY="250260" spawnZ="4337" /> <exitPoint x="-248717" y="250260" z="4337" />
<doorlist> <doorlist>
<door doorId="12240001" /> <door doorId="12240001" />
<door doorId="12240002" /> <door doorId="12240002" />

View File

@ -3,7 +3,7 @@
<activityTime val="30" /> <activityTime val="30" />
<allowSummon val="false" /> <allowSummon val="false" />
<emptyDestroyTime val="180" /> <emptyDestroyTime val="180" />
<spawnPoint spawnX="13725" spawnY="255403" spawnZ="-2023" /> <exitPoint x="13725" y="255403" z="-2023" />
<spawnlist> <spawnlist>
<group name="general"> <group name="general">
<spawn npcId="32343" x="19604" y="250067" z="-2022" heading="16384" respawn="60" /> <!-- Moonlight Tombstone --> <spawn npcId="32343" x="19604" y="250067" z="-2022" heading="16384" respawn="60" /> <!-- Moonlight Tombstone -->

View File

@ -42,7 +42,10 @@ public final class EffectMasterHandler
Betray.class, Betray.class,
Blink.class, Blink.class,
BlockAction.class, BlockAction.class,
BlockBuff.class,
BlockChat.class, BlockChat.class,
BlockDamage.class,
BlockDebuff.class,
BlockParty.class, BlockParty.class,
BlockBuffSlot.class, BlockBuffSlot.class,
BlockResurrection.class, BlockResurrection.class,
@ -112,7 +115,6 @@ public final class EffectMasterHandler
IgnoreDeath.class, IgnoreDeath.class,
ImmobileBuff.class, ImmobileBuff.class,
ImmobilePetBuff.class, ImmobilePetBuff.class,
Invincible.class,
JumpToFriend.class, JumpToFriend.class,
KnockBack.class, KnockBack.class,
KnockDown.class, KnockDown.class,
@ -139,7 +141,6 @@ public final class EffectMasterHandler
OpenDwarfRecipeBook.class, OpenDwarfRecipeBook.class,
Paralyze.class, Paralyze.class,
Passive.class, Passive.class,
Petrification.class,
PhysicalAttack.class, PhysicalAttack.class,
PhysicalAttackHpLink.class, PhysicalAttackHpLink.class,
PhysicalAttackMute.class, PhysicalAttackMute.class,

View File

@ -22,13 +22,14 @@ import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.conditions.Condition; import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect; import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.EffectFlag; import com.l2jserver.gameserver.model.effects.EffectFlag;
import com.l2jserver.gameserver.model.effects.L2EffectType;
/** /**
* Invincible effect implementation. * @author Zealar
*/ */
public final class Invincible extends AbstractEffect public final class BlockBuff extends AbstractEffect
{ {
public Invincible(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) public BlockBuff(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{ {
super(attachCond, applyCond, set, params); super(attachCond, applyCond, set, params);
} }
@ -36,6 +37,12 @@ public final class Invincible extends AbstractEffect
@Override @Override
public int getEffectFlags() public int getEffectFlags()
{ {
return EffectFlag.INVUL.getMask(); return EffectFlag.BLOCK_BUFF.getMask();
}
@Override
public L2EffectType getEffectType()
{
return L2EffectType.BLOCK_BUFF;
} }
} }

View File

@ -18,41 +18,40 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import com.l2jserver.gameserver.ai.CtrlEvent;
import com.l2jserver.gameserver.model.StatsSet; import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.conditions.Condition; import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect; import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.EffectFlag; import com.l2jserver.gameserver.model.effects.EffectFlag;
import com.l2jserver.gameserver.model.skills.BuffInfo; import com.l2jserver.gameserver.model.effects.L2EffectType;
/** /**
* Petrification effect implementation. * @author Zealar
*/ */
public final class Petrification extends AbstractEffect public final class BlockDamage extends AbstractEffect
{ {
public Petrification(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) public enum BlockType
{
HP,
MP
}
private final BlockType _type;
public BlockDamage(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{ {
super(attachCond, applyCond, set, params); super(attachCond, applyCond, set, params);
_type = params.getEnum("type", BlockType.class, BlockType.HP);
} }
@Override @Override
public int getEffectFlags() public int getEffectFlags()
{ {
return EffectFlag.PARALYZED.getMask() | EffectFlag.INVUL.getMask(); return _type == BlockType.HP ? EffectFlag.BLOCK_HP.getMask() : EffectFlag.BLOCK_MP.getMask();
} }
@Override @Override
public void onExit(BuffInfo info) public L2EffectType getEffectType()
{ {
if (!info.getEffected().isPlayer()) return L2EffectType.BLOCK_DAMAGE;
{
info.getEffected().getAI().notifyEvent(CtrlEvent.EVT_THINK);
}
}
@Override
public void onStart(BuffInfo info)
{
info.getEffected().startParalyze();
} }
} }

View File

@ -0,0 +1,48 @@
/*
* Copyright (C) 2004-2015 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack 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.
*
* L2J DataPack 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 com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.EffectFlag;
import com.l2jserver.gameserver.model.effects.L2EffectType;
/**
* @author Zealar
*/
public final class BlockDebuff extends AbstractEffect
{
public BlockDebuff(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
}
@Override
public int getEffectFlags()
{
return EffectFlag.BLOCK_DEBUFF.getMask();
}
@Override
public L2EffectType getEffectType()
{
return L2EffectType.BLOCK_DEBUFF;
}
}

View File

@ -425,7 +425,7 @@ public abstract class Chamber extends AbstractInstance
return; return;
} }
final Instance inst = InstanceManager.getInstance().getInstance(player.getInstanceId()); final Instance inst = InstanceManager.getInstance().getInstance(player.getInstanceId());
Location ret = inst.getSpawnLoc(); Location ret = inst.getExitLoc();
final String return_point = player.getVariables().getString(RETURN, null); final String return_point = player.getVariables().getString(RETURN, null);
if (return_point != null) if (return_point != null)
{ {

View File

@ -1386,7 +1386,7 @@ public final class Kamaloka extends AbstractInstance
// set name for the kamaloka // set name for the kamaloka
inst.setName(InstanceManager.getInstance().getInstanceIdName(templateId)); inst.setName(InstanceManager.getInstance().getInstanceIdName(templateId));
// set return location // set return location
inst.setSpawnLoc(new Location(player)); inst.setExitLoc(new Location(player));
// disable summon friend into instance // disable summon friend into instance
inst.setAllowSummon(false); inst.setAllowSummon(false);
// set duration and empty destroy time // set duration and empty destroy time
@ -1577,7 +1577,7 @@ public final class Kamaloka extends AbstractInstance
{ {
if ((partyMember != null) && (partyMember.getInstanceId() == world.getInstanceId())) if ((partyMember != null) && (partyMember.getInstanceId() == world.getInstanceId()))
{ {
teleportPlayer(partyMember, inst.getSpawnLoc(), 0); teleportPlayer(partyMember, inst.getExitLoc(), 0);
} }
} }
} }

View File

@ -282,7 +282,7 @@ public final class NornilsGarden extends AbstractInstance
final Instance inst = InstanceManager.getInstance().getInstance(instanceId); final Instance inst = InstanceManager.getInstance().getInstance(instanceId);
inst.setName(InstanceManager.getInstance().getInstanceIdName(TEMPLATE_ID)); inst.setName(InstanceManager.getInstance().getInstanceIdName(TEMPLATE_ID));
inst.setSpawnLoc(new Location(player)); inst.setExitLoc(new Location(player));
inst.setAllowSummon(false); inst.setAllowSummon(false);
inst.setDuration(DURATION_TIME * 60000); inst.setDuration(DURATION_TIME * 60000);
inst.setEmptyDestroyTime(EMPTY_DESTROY_TIME * 60000); inst.setEmptyDestroyTime(EMPTY_DESTROY_TIME * 60000);

View File

@ -290,7 +290,7 @@ public final class Q00511_AwlUnderFoot extends Quest
L2Party party = player.getParty(); L2Party party = player.getParty();
int instanceId = InstanceManager.getInstance().createDynamicInstance(template); int instanceId = InstanceManager.getInstance().createDynamicInstance(template);
Instance ins = InstanceManager.getInstance().getInstance(instanceId); Instance ins = InstanceManager.getInstance().getInstance(instanceId);
ins.setSpawnLoc(new Location(player)); ins.setExitLoc(new Location(player));
world = new FAUWorld(); world = new FAUWorld();
world.setInstanceId(instanceId); world.setInstanceId(instanceId);
world.setTemplateId(dungeon.getInstanceId()); world.setTemplateId(dungeon.getInstanceId());

View File

@ -1031,7 +1031,6 @@
</skill> </skill>
<skill id="246" levels="1" name="Seal of Ruler"> <skill id="246" levels="1" name="Seal of Ruler">
<!-- Confirmed CT2.5 --> <!-- Confirmed CT2.5 -->
<!-- Not Used Anymore -->
<set name="castRange" val="85" /> <set name="castRange" val="85" />
<set name="effectRange" val="400" /> <set name="effectRange" val="400" />
<set name="hitTime" val="180000" /> <set name="hitTime" val="180000" />
@ -1624,6 +1623,7 @@
<table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 52 54 56 </table> <!-- Guessed --> <table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 52 54 56 </table> <!-- Guessed -->
<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 85 85 85 </table> <!-- Guessed --> <table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 85 85 85 </table> <!-- Guessed -->
<set name="castRange" val="40" /> <set name="castRange" val="40" />
<set name="chargeConsume" val="4" />
<set name="coolTime" val="500" /> <set name="coolTime" val="500" />
<set name="effectPoint" val="#effectPoints" /> <set name="effectPoint" val="#effectPoints" />
<set name="effectRange" val="400" /> <set name="effectRange" val="400" />
@ -1655,7 +1655,10 @@
<enchant6 name="magicLvl" val="#enchMagicLvl" /> <enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" /> <enchant7 name="magicLvl" val="#enchMagicLvl" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, POLE, DUALFIST, DUALBLUNT, DUAL" /> <and>
<using kind="DUAL" />
<player Charges="4" /> <!-- Need to recharge 4th stage of Sword Energy. -->
</and>
</cond> </cond>
<for> <for>
<effect name="EnergyAttack"> <effect name="EnergyAttack">
@ -2319,7 +2322,7 @@
<enchant3 name="activateRate" val="#ench3ActivateRates" /> <enchant3 name="activateRate" val="#ench3ActivateRates" />
<enchant3 name="magicLvl" val="#enchMagicLvl" /> <enchant3 name="magicLvl" val="#enchMagicLvl" />
<for> <for>
<effect name="PhysicalAttack" /> <effect name="MagicalAttack" />
<effect name="Debuff"> <effect name="Debuff">
<mul stat="pAtkSpd" val="0.5" /> <mul stat="pAtkSpd" val="0.5" />
<mul stat="runSpd" val="0.5" /> <mul stat="runSpd" val="0.5" />
@ -2665,6 +2668,9 @@
<param SLEEP="#traits" /> <param SLEEP="#traits" />
<param PARALYZE="#traits" /> <param PARALYZE="#traits" />
</effect> </effect>
<effect name="Buff">
<sub stat="cancelVuln" val="40" />
</effect>
</for> </for>
</skill> </skill>
<skill id="288" levels="4" name="Guard Stance" enchantGroup1="1" enchantGroup2="1"> <skill id="288" levels="4" name="Guard Stance" enchantGroup1="1" enchantGroup2="1">

View File

@ -1487,7 +1487,7 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<using kind="SWORD,BLUNT,FIST,DUAL,DUALFIST" /> <using kind="DUAL" />
</cond> </cond>
<for> <for>
<effect name="PhysicalAttack" /> <effect name="PhysicalAttack" />
@ -2470,7 +2470,18 @@
<using kind="DUAL" /> <using kind="DUAL" />
</cond> </cond>
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="368" levels="1" name="Vengeance" enchantGroup1="6" enchantGroup2="6" enchantGroup3="6"> <skill id="368" levels="1" name="Vengeance" enchantGroup1="6" enchantGroup2="6" enchantGroup3="6">
@ -2853,7 +2864,6 @@
</skill> </skill>
<skill id="390" levels="5" name="Clan Luck"> <skill id="390" levels="5" name="Clan Luck">
<!-- Updated to Ertheia --> <!-- Updated to Ertheia -->
<!-- TODO: Still missing info about other penalties than exp. loss -->
<table name="#byPvp"> 0.7 0.5 0.4 0.3 0.2 </table> <table name="#byPvp"> 0.7 0.5 0.4 0.3 0.2 </table>
<table name="#byMob"> 0.88 0.8 0.76 0.72 0.68 </table> <table name="#byMob"> 0.88 0.8 0.76 0.72 0.68 </table>
<set name="icon" val="icon.skill0390" /> <set name="icon" val="icon.skill0390" />
@ -2940,10 +2950,9 @@
<set name="staticReuse" val="true" /> <set name="staticReuse" val="true" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <effect name="BlockDebuff">
<add stat="accCombat" val="8" /> <add stat="accCombat" val="8" />
<sub stat="cancelVuln" val="80" /> <sub stat="cancelVuln" val="80" />
<set stat="debuffImmunity" val="1" />
<mul stat="healEffect" val="2" /> <mul stat="healEffect" val="2" />
<add stat="mAtk" val="500" /> <add stat="mAtk" val="500" />
<add stat="mAtkSpd" val="100" /> <add stat="mAtkSpd" val="100" />

View File

@ -1167,7 +1167,6 @@
</skill> </skill>
<skill id="426" levels="1" name="Battle Stance"> <skill id="426" levels="1" name="Battle Stance">
<!-- Not Used Anymore --> <!-- Not Used Anymore -->
<set name="castRange" val="400" /> <set name="castRange" val="400" />
<set name="channelingSkillId" val="5104" /> <set name="channelingSkillId" val="5104" />
<set name="effectPoint" val="1" /> <set name="effectPoint" val="1" />
@ -1642,7 +1641,16 @@
</and> </and>
</cond> </cond>
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="443" levels="1" name="Force Barrier"> <skill id="443" levels="1" name="Force Barrier">
@ -1667,7 +1675,16 @@
</and> </and>
</cond> </cond>
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="444" levels="1" name="Sweeper Festival"> <skill id="444" levels="1" name="Sweeper Festival">
@ -2676,7 +2693,6 @@
<!-- Confirmed CT2.5 --> <!-- Confirmed CT2.5 -->
<table name="#darkRes"> 7 10 </table> <table name="#darkRes"> 7 10 </table>
<table name="#magicLvl"> 32 43 </table> <table name="#magicLvl"> 32 43 </table>
<set name="icon" val="icon.skill0481" /> <set name="icon" val="icon.skill0481" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="TOGGLE" /> <set name="operateType" val="TOGGLE" />

View File

@ -901,6 +901,9 @@
<param SLEEP="5" /> <param SLEEP="5" />
<param PARALYZE="5" /> <param PARALYZE="5" />
</effect> </effect>
<effect name="Buff">
<sub stat="cancelVuln" val="5" />
</effect>
</for> </for>
</skill> </skill>
<skill id="651" levels="1" name="Warrior Ability: Haste"> <skill id="651" levels="1" name="Warrior Ability: Haste">

View File

@ -865,7 +865,13 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
</for> </for>
</skill> </skill>
<skill id="838" levels="1" name="Switch Stance"> <skill id="838" levels="1" name="Switch Stance">
@ -1042,6 +1048,9 @@
<set name="reuseDelay" val="600000" /> <set name="reuseDelay" val="600000" />
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<cond msgId="109">
<target npcId="36590" />
</cond>
</skill> </skill>
<skill id="846" levels="1" name="Possess Ward"> <skill id="846" levels="1" name="Possess Ward">
<!-- Confirmed CT2.5 --> <!-- Confirmed CT2.5 -->

View File

@ -480,7 +480,6 @@
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
</skill> </skill>
<skill id="1320" levels="10" name="Create Common Item"> <skill id="1320" levels="10" name="Create Common Item">
<!-- TODO: Auto level parse, Requires manual update -->
<set name="icon" val="icon.skill0172" /> <set name="icon" val="icon.skill0172" />
<set name="magicLvl" val="5" /> <set name="magicLvl" val="5" />
<set name="operateType" val="PASSIVE" /> <set name="operateType" val="PASSIVE" />
@ -535,7 +534,6 @@
</for> </for>
</skill> </skill>
<skill id="1324" levels="2" name="Summon CP Potion"> <skill id="1324" levels="2" name="Summon CP Potion">
<!-- TODO: Auto level parse, Requires manual update -->
<!-- Confirmed CT2.5 --> <!-- Confirmed CT2.5 -->
<set name="hitTime" val="20000" /> <set name="hitTime" val="20000" />
<set name="icon" val="icon.skill1324" /> <set name="icon" val="icon.skill1324" />

View File

@ -449,9 +449,7 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="PARTY_MEMBER" /> <set name="targetType" val="PARTY_MEMBER" />
<for> <for>
<effect name="Buff"> <effect name="BlockDebuff" />
<set stat="debuffImmunity" val="1" />
</effect>
</for> </for>
</skill> </skill>
<skill id="1412" levels="1" name="Spell Turning"> <skill id="1412" levels="1" name="Spell Turning">
@ -716,7 +714,16 @@
<set name="staticReuse" val="true" /> <set name="staticReuse" val="true" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="1419" levels="1" name="Volcano"> <skill id="1419" levels="1" name="Volcano">
@ -945,7 +952,16 @@
<set name="staticReuse" val="true" /> <set name="staticReuse" val="true" />
<set name="targetType" val="PARTY_CLAN" /> <set name="targetType" val="PARTY_CLAN" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="1428" levels="1" name="Mass Recharge"> <skill id="1428" levels="1" name="Mass Recharge">
@ -3448,7 +3464,13 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SERVITOR" /> <set name="targetType" val="SERVITOR" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
</for> </for>
</skill> </skill>
<skill id="1497" levels="1" name="Excessive Loyalty"> <skill id="1497" levels="1" name="Excessive Loyalty">

View File

@ -175,7 +175,13 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="AURA_FRIENDLY" /> <set name="targetType" val="AURA_FRIENDLY" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="CpHeal"> <effect name="CpHeal">
<param power="9000" /> <param power="9000" />
</effect> </effect>
@ -1336,7 +1342,18 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="1541" levels="1" name="Curse of Desparion"> <skill id="1541" levels="1" name="Curse of Desparion">

View File

@ -889,7 +889,18 @@
<player insideZoneId="2239" /> <player insideZoneId="2239" />
</cond> </cond>
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="2240" levels="1" name="Hot Spring Nectar"> <skill id="2240" levels="1" name="Hot Spring Nectar">

View File

@ -1902,7 +1902,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="2398" levels="1" name="Quick Haste Potion"> <skill id="2398" levels="1" name="Quick Haste Potion">

View File

@ -1586,7 +1586,16 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="2578" levels="1" name="Cure Poison Paralyze"> <skill id="2578" levels="1" name="Cure Poison Paralyze">

View File

@ -37,7 +37,16 @@
<player level="78" /> <player level="78" />
</cond> </cond>
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="2902" levels="1" name="Ancient Herb - Terminator"> <skill id="2902" levels="1" name="Ancient Herb - Terminator">

View File

@ -1626,7 +1626,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="3090" levels="10" name="Item Skill: Fear"> <skill id="3090" levels="10" name="Item Skill: Fear">

View File

@ -87,7 +87,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="3103" levels="10" name="Item Skill: Fear"> <skill id="3103" levels="10" name="Item Skill: Fear">
@ -474,7 +485,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="3118" levels="10" name="Item Skill: Fear"> <skill id="3118" levels="10" name="Item Skill: Fear">
@ -1529,7 +1551,12 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
</for> </for>
</skill> </skill>
<skill id="3159" levels="3" name="Item Skill: Stealth"> <skill id="3159" levels="3" name="Item Skill: Stealth">
@ -2544,7 +2571,18 @@
<set name="staticReuse" val="true" /> <set name="staticReuse" val="true" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="3194" levels="10" name="Item Skill: Fear"> <skill id="3194" levels="10" name="Item Skill: Fear">

View File

@ -327,7 +327,16 @@
<set name="targetType" val="AREA" /> <set name="targetType" val="AREA" />
<for> <for>
<effect name="PhysicalAttack" /> <effect name="PhysicalAttack" />
<effect name="Petrification"> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" /> <mul stat="regHp" val="0" />
</effect> </effect>
</for> </for>
@ -573,9 +582,7 @@
<set name="operateType" val="PASSIVE" /> <set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <effect name="BlockDebuff" />
<set stat="debuffImmunity" val="1" />
</effect>
<effect name="DefenceTrait"> <effect name="DefenceTrait">
<param SHOCK="80" /> <param SHOCK="80" />
</effect> </effect>

View File

@ -195,7 +195,6 @@
</for> </for>
</skill> </skill>
<skill id="4318" levels="2" name="Ultimate Buff"> <skill id="4318" levels="2" name="Ultimate Buff">
<!-- TODO: Auto level parse, Requires manual update -->
<!-- Freya retail confirmed --> <!-- Freya retail confirmed -->
<set name="abnormalLvl" val="1" /> <set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="15" /> <set name="abnormalTime" val="15" />
@ -1531,7 +1530,18 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="AURA" /> <set name="targetType" val="AURA" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
<effect name="TargetMeProbability"> <effect name="TargetMeProbability">
<param chance="40" /> <param chance="40" />
</effect> </effect>
@ -1632,16 +1642,13 @@
</for> </for>
</skill> </skill>
<skill id="4390" levels="2" name="Mystic Immunity"> <skill id="4390" levels="2" name="Mystic Immunity">
<!-- TODO: Auto level parse, Requires manual update -->
<!-- Freya retail confirmed --> <!-- Freya retail confirmed -->
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="PASSIVE" /> <set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <effect name="BlockBuff" />
<!-- set stat="buffImmunity" val="1" / TODO: Needs Support --> <effect name="BlockDebuff" />
<set stat="debuffImmunity" val="1" />
</effect>
</for> </for>
</skill> </skill>
<skill id="4391" levels="2" name="Wind Walk"> <skill id="4391" levels="2" name="Wind Walk">

View File

@ -120,7 +120,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="4516" levels="1" name="Orfen Heal"> <skill id="4516" levels="1" name="Orfen Heal">
@ -1325,7 +1336,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="4579" levels="12" name="Bleed"> <skill id="4579" levels="12" name="Bleed">

View File

@ -459,7 +459,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="4617" levels="1" name="Dispel Petrification"> <skill id="4617" levels="1" name="Dispel Petrification">
@ -1950,8 +1961,8 @@
<for> <for>
<effect name="DefenceTrait"> <effect name="DefenceTrait">
<param VALAKAS="-8" /> <param VALAKAS="-8" />
<set stat="debuffImmunity" val="1" />
</effect> </effect>
<effect name="BlockDebuff" />
</for> </for>
</skill> </skill>
<skill id="4680" levels="1" name="Valakas Lava Skin"> <skill id="4680" levels="1" name="Valakas Lava Skin">

View File

@ -1545,7 +1545,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="5173" levels="10" name="Fear"> <skill id="5173" levels="10" name="Fear">

View File

@ -525,7 +525,16 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="5226" levels="1" name="Imprison"> <skill id="5226" levels="1" name="Imprison">

View File

@ -449,8 +449,7 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Debuff"> <effect name="BlockBuff">
<!-- set stat="buffImmunity" val="1" / TODO: Needs Support -->
<sub stat="darkRes" val="50" /> <sub stat="darkRes" val="50" />
</effect> </effect>
<effect name="DispelByCategory"> <effect name="DispelByCategory">
@ -1447,7 +1446,13 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
</for> </for>
</skill> </skill>
<skill id="5577" levels="1" name="Healer Ability: Heal"> <skill id="5577" levels="1" name="Healer Ability: Heal">

View File

@ -806,7 +806,13 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="CLAN" /> <set name="targetType" val="CLAN" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
</for> </for>
</skill> </skill>
<skill id="5740" levels="1" name="Recovery Pot"> <skill id="5740" levels="1" name="Recovery Pot">

View File

@ -567,7 +567,16 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="5932" levels="1" name="Dark Blade"> <skill id="5932" levels="1" name="Dark Blade">

View File

@ -294,9 +294,18 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<effect name="Stun" /> <param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
<effect name="ImmobileBuff" /> <effect name="ImmobileBuff" />
<effect name="Stun" />
</for> </for>
</skill> </skill>
<skill id="6035" levels="1" name="Transform Red Team"> <skill id="6035" levels="1" name="Transform Red Team">
@ -670,7 +679,6 @@
</skill> </skill>
<skill id="6054" levels="1" name="Switch State"> <skill id="6054" levels="1" name="Switch State">
<!-- Confirmed CT2.5 --> <!-- Confirmed CT2.5 -->
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
<set name="operateType" val="TOGGLE" /> <set name="operateType" val="TOGGLE" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />

View File

@ -166,7 +166,18 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="6407" levels="1" name="Torumba's Constraint"> <skill id="6407" levels="1" name="Torumba's Constraint">

View File

@ -1052,7 +1052,18 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="6770" levels="1" name="Heal"> <skill id="6770" levels="1" name="Heal">
@ -1248,7 +1259,18 @@
<param power="200" /> <param power="200" />
<mul stat="runSpd" val="0.8" /> <mul stat="runSpd" val="0.8" />
</effect> </effect>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="6778" levels="1" name="Devil Strike"> <skill id="6778" levels="1" name="Devil Strike">

View File

@ -31,7 +31,7 @@
<set name="effectRange" val="900" /> <set name="effectRange" val="900" />
<set name="icon" val="icon.skill1086" /> <set name="icon" val="icon.skill1086" />
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed --> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
@ -52,7 +52,7 @@
<set name="effectRange" val="900" /> <set name="effectRange" val="900" />
<set name="icon" val="icon.skill1204" /> <set name="icon" val="icon.skill1204" />
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed --> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
@ -73,7 +73,7 @@
<set name="effectRange" val="900" /> <set name="effectRange" val="900" />
<set name="icon" val="icon.skill1059" /> <set name="icon" val="icon.skill1059" />
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed --> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
@ -94,7 +94,7 @@
<set name="effectRange" val="900" /> <set name="effectRange" val="900" />
<set name="icon" val="icon.skill1085" /> <set name="icon" val="icon.skill1085" />
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed --> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
@ -115,7 +115,7 @@
<set name="effectRange" val="900" /> <set name="effectRange" val="900" />
<set name="icon" val="icon.skill1078" /> <set name="icon" val="icon.skill1078" />
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed --> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
@ -136,7 +136,7 @@
<set name="effectRange" val="900" /> <set name="effectRange" val="900" />
<set name="icon" val="icon.skill1068" /> <set name="icon" val="icon.skill1068" />
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed --> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
@ -157,7 +157,7 @@
<set name="effectRange" val="900" /> <set name="effectRange" val="900" />
<set name="icon" val="icon.skill1240" /> <set name="icon" val="icon.skill1240" />
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed --> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
@ -178,7 +178,7 @@
<set name="effectRange" val="900" /> <set name="effectRange" val="900" />
<set name="icon" val="icon.skill1077" /> <set name="icon" val="icon.skill1077" />
<set name="magicLvl" val="1" /> <set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed --> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
@ -1313,7 +1313,18 @@
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="6883" levels="1" name="Vitality Recovery Effect"> <skill id="6883" levels="1" name="Vitality Recovery Effect">

View File

@ -1931,8 +1931,8 @@
<effect name="HealPercent"> <effect name="HealPercent">
<param power="#HpHealPercent" /> <param power="#HpHealPercent" />
</effect> </effect>
<effect name="BlockDebuff" />
<effect name="Buff"> <effect name="Buff">
<set stat="debuffImmunity" val="1" />
<add stat="pDef" val="#pDef" /> <add stat="pDef" val="#pDef" />
<add stat="mDef" val="#mDef" /> <add stat="mDef" val="#mDef" />
</effect> </effect>

View File

@ -1593,7 +1593,17 @@
<player hp="#ench3playerHpRestrict" /> <player hp="#ench3playerHpRestrict" />
</enchant3cond> </enchant3cond>
<for> <for>
<effect name="Invincible"> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
<effect name="Buff">
<mul stat="runSpd" val="1.3" /> <mul stat="runSpd" val="1.3" />
</effect> </effect>
<effect name="DispelByCategory"> <effect name="DispelByCategory">
@ -1601,7 +1611,17 @@
</effect> </effect>
</for> </for>
<enchant4for> <enchant4for>
<effect name="Invincible"> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
<effect name="Buff">
<mul stat="runSpd" val="1.3" /> <mul stat="runSpd" val="1.3" />
</effect> </effect>
<effect name="DispelByCategory"> <effect name="DispelByCategory">

View File

@ -2416,7 +2416,16 @@
<effect name="ManaHealOverTime" ticks="3"> <effect name="ManaHealOverTime" ticks="3">
<param power="49" /> <param power="49" />
</effect> </effect>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
<enchant2for> <enchant2for>
<effect name="DispelBySlot"> <effect name="DispelBySlot">
@ -2428,7 +2437,16 @@
<effect name="ManaHealOverTime" ticks="3"> <effect name="ManaHealOverTime" ticks="3">
<param power="#enchMpHeal" /> <param power="#enchMpHeal" />
</effect> </effect>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</enchant2for> </enchant2for>
<enchant3for> <enchant3for>
<effect name="DispelBySlot"> <effect name="DispelBySlot">
@ -2440,7 +2458,16 @@
<effect name="ManaHealOverTime" ticks="3"> <effect name="ManaHealOverTime" ticks="3">
<param power="#enchMpHeal" /> <param power="#enchMpHeal" />
</effect> </effect>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</enchant3for> </enchant3for>
</skill> </skill>
<!-- Level 1 : Attacks nearby enemies with 133 Power added to M. Atk., inflicting Stun and canceling their targets. Teleports you to the front. --> <!-- Level 1 : Attacks nearby enemies with 133 Power added to M. Atk., inflicting Stun and canceling their targets. Teleports you to the front. -->

View File

@ -1403,19 +1403,17 @@
<set name="targetType" val="PARTY_MEMBER" /> <set name="targetType" val="PARTY_MEMBER" />
<enchant1 name="mpConsume" val="#ench1MpConsume" /> <enchant1 name="mpConsume" val="#ench1MpConsume" />
<for> <for>
<effect name="Buff"> <effect name="BlockDebuff" />
<set stat="debuffImmunity" val="1" />
</effect>
</for> </for>
<enchant2for> <enchant2for>
<effect name="BlockDebuff" />
<effect name="Buff"> <effect name="Buff">
<set stat="debuffImmunity" val="1" />
<mul stat="pDef" val="#ench23pmDef" /> <mul stat="pDef" val="#ench23pmDef" />
</effect> </effect>
</enchant2for> </enchant2for>
<enchant3for> <enchant3for>
<effect name="BlockDebuff" />
<effect name="Buff"> <effect name="Buff">
<set stat="debuffImmunity" val="1" />
<mul stat="mDef" val="#ench23pmDef" /> <mul stat="mDef" val="#ench23pmDef" />
</effect> </effect>
</enchant3for> </enchant3for>
@ -1555,7 +1553,18 @@
<enchant1 name="mpConsume" val="#ench1MpConsume" /> <enchant1 name="mpConsume" val="#ench1MpConsume" />
<enchant2 name="activateRate" val="#ench2ActivateRates" /> <enchant2 name="activateRate" val="#ench2ActivateRates" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
</for> </for>
</skill> </skill>
<skill id="11540" levels="4" name="Quick Escape"> <skill id="11540" levels="4" name="Quick Escape">
@ -2116,7 +2125,16 @@
<set name="castRange" val="900" /> <set name="castRange" val="900" />
<enchant1 name="mpConsume" val="#ench1MpConsume" /> <enchant1 name="mpConsume" val="#ench1MpConsume" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
<effect name="TriggerSkillByAttack"> <effect name="TriggerSkillByAttack">
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" /> <param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
<param minDamage="1" chance="100" /> <param minDamage="1" chance="100" />
@ -2126,7 +2144,16 @@
</effect> </effect>
</for> </for>
<enchant2for> <enchant2for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
<effect name="Buff"> <effect name="Buff">
<add stat="runSpd" val="#ench2runSpd" /> <add stat="runSpd" val="#ench2runSpd" />
</effect> </effect>
@ -2140,7 +2167,16 @@
</enchant2for> </enchant2for>
<enchant3for> <enchant3for>
<effect name="HealPercent" /> <effect name="HealPercent" />
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
<effect name="TriggerSkillByAttack"> <effect name="TriggerSkillByAttack">
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" /> <param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
<param minDamage="1" chance="100" /> <param minDamage="1" chance="100" />
@ -2150,8 +2186,17 @@
</effect> </effect>
</enchant3for> </enchant3for>
<enchant4for> <enchant4for>
<effect name="MpHealPercent" /> <effect name="ManaHealPercent" />
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
<effect name="TriggerSkillByAttack"> <effect name="TriggerSkillByAttack">
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" /> <param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
<param minDamage="1" chance="100" /> <param minDamage="1" chance="100" />
@ -2162,7 +2207,16 @@
</enchant4for> </enchant4for>
<enchant5for> <enchant5for>
<effect name="CpHealPercent" /> <effect name="CpHealPercent" />
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
<effect name="TriggerSkillByAttack"> <effect name="TriggerSkillByAttack">
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" /> <param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
<param minDamage="1" chance="100" /> <param minDamage="1" chance="100" />

View File

@ -414,17 +414,13 @@
<effect name="DispelByCategory"> <effect name="DispelByCategory">
<param slot="debuff" rate="100" max="10" /> <param slot="debuff" rate="100" max="10" />
</effect> </effect>
<effect name="Buff"> <effect name="BlockDebuff" />
<set stat="debuffImmunity" val="1" />
</effect>
</for> </for>
<enchant2for> <enchant2for>
<effect name="DispelByCategory"> <effect name="DispelByCategory">
<param slot="debuff" rate="100" max="10" /> <param slot="debuff" rate="100" max="10" />
</effect> </effect>
<effect name="Buff"> <effect name="BlockDebuff" />
<set stat="debuffImmunity" val="1" />
</effect>
<effect name="HealPercent"> <effect name="HealPercent">
<param power="#ench2power" /> <param power="#ench2power" />
</effect> </effect>
@ -453,7 +449,18 @@
<enchant2 name="mpConsume" val="#ench1mpConsume" /> <enchant2 name="mpConsume" val="#ench1mpConsume" />
<enchant2 name="mpInitialConsume" val="#ench1mpInitialConsume" /> <enchant2 name="mpInitialConsume" val="#ench1mpInitialConsume" />
<for> <for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
<effect name="HealOverTime" ticks="1"> <effect name="HealOverTime" ticks="1">
<param power="#hpPower" /> <param power="#hpPower" />
</effect> </effect>
@ -462,7 +469,18 @@
</effect> </effect>
</for> </for>
<enchant1for> <enchant1for>
<effect name="Petrification" /> <effect name="Stun" />
<effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockBuff" />
<effect name="BlockDebuff" />
<effect name="Buff">
<mul stat="regHp" val="0" />
</effect>
<effect name="HealOverTime" ticks="1"> <effect name="HealOverTime" ticks="1">
<param power="#ench1hpPower" /> <param power="#ench1hpPower" />
</effect> </effect>

View File

@ -1522,7 +1522,16 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="21087" levels="1" name="Berserker Spirit"> <skill id="21087" levels="1" name="Berserker Spirit">

View File

@ -459,7 +459,13 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
</for> </for>
</skill> </skill>
<skill id="21238" levels="1" name="Jet Bike"> <skill id="21238" levels="1" name="Jet Bike">

View File

@ -835,8 +835,14 @@
</skill> </skill>
<skill id="23167" levels="1" name="Rosy Seduction"> <skill id="23167" levels="1" name="Rosy Seduction">
<!-- Increases Max HP by 20%, Max MP by 20%, and the moving speed by 20% for 5 minutes. Increases the resistance to de-buffs by 10%. Reuse delay 10 minutes. Consumes 3 Rose Essence during skill use. --> <!-- Increases Max HP by 20%, Max MP by 20%, and the moving speed by 20% for 5 minutes. Increases the resistance to de-buffs by 10%. Reuse delay 10 minutes. Consumes 3 Rose Essence during skill use. -->
<set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="300" />
<set name="abnormalType" val="BR_EVENT_BUF5" />
<set name="blockedInOlympiad" val="true" />
<set name="effectPoint" val="1" />
<set name="icon" val="BranchSys2.icon.br_rosalia_rose_red_i00" /> <set name="icon" val="BranchSys2.icon.br_rosalia_rose_red_i00" />
<set name="magicLvl" val="1" /> <set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="itemConsumeCount" val="3" /> <set name="itemConsumeCount" val="3" />
@ -957,7 +963,13 @@
</and> </and>
</cond> </cond>
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="CpHealPercent"> <effect name="CpHealPercent">
<param power="100" /> <param power="100" />
</effect> </effect>

View File

@ -309,7 +309,16 @@
<player agathionId="13414" /> <player agathionId="13414" />
</cond> </cond>
<for> <for>
<effect name="Invincible" /> <effect name="BlockDamage">
<param block="HP"/>
</effect>
<effect name="BlockDamage">
<param block="MP"/>
</effect>
<effect name="BlockDebuff" />
<effect name="Buff">
<sub stat="cancelVuln" val="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="26124" levels="12" name="Bountiful Resurrection"> <skill id="26124" levels="12" name="Bountiful Resurrection">
@ -383,9 +392,7 @@
<player agathionId="13407" /> <player agathionId="13407" />
</cond> </cond>
<for> <for>
<effect name="Buff"> <effect name="BlockDebuff" />
<set stat="debuffImmunity" val="1" />
</effect>
</for> </for>
</skill> </skill>
<skill id="26128" levels="12" name="Archer's Call"> <skill id="26128" levels="12" name="Archer's Call">

View File

@ -30,11 +30,32 @@
<xs:attribute name="text" type="xs:normalizedString" use="optional" /> <xs:attribute name="text" type="xs:normalizedString" use="optional" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="spawnPoint" minOccurs="0" maxOccurs="1"> <xs:element name="spawnPoints" minOccurs="0" maxOccurs="1">
<xs:complexType> <xs:complexType>
<xs:attribute name="spawnX" type="xs:integer" use="required" /> <xs:sequence>
<xs:attribute name="spawnY" type="xs:integer" use="required" /> <xs:element name="Location" minOccurs="1" maxOccurs="unbounded">
<xs:attribute name="spawnZ" type="xs:integer" use="required" /> <xs:complexType>
<xs:attribute name="x" type="xs:int" use="required" />
<xs:attribute name="y" type="xs:int" use="required" />
<xs:attribute name="z" type="xs:int" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="startPosType" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="FIXED" />
<xs:enumeration value="RANDOM" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="exitPoint" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="x" type="xs:int" use="required" />
<xs:attribute name="y" type="xs:int" use="required" />
<xs:attribute name="z" type="xs:int" use="required" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="reenter" minOccurs="0" maxOccurs="1"> <xs:element name="reenter" minOccurs="0" maxOccurs="1">
@ -64,9 +85,9 @@
<xs:attribute name="additionStyle"> <xs:attribute name="additionStyle">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:token"> <xs:restriction base="xs:token">
<xs:enumeration value="NONE" /> <xs:enumeration value="NONE" />
<xs:enumeration value="ON_INSTANCE_ENTER" /> <xs:enumeration value="ON_INSTANCE_ENTER" />
<xs:enumeration value="ON_INSTANCE_FINISH" /> <xs:enumeration value="ON_INSTANCE_FINISH" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
@ -84,9 +105,9 @@
<xs:attribute name="type"> <xs:attribute name="type">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:token"> <xs:restriction base="xs:token">
<xs:enumeration value="ALL" /> <xs:enumeration value="ALL" />
<xs:enumeration value="WHITELIST" /> <xs:enumeration value="WHITELIST" />
<xs:enumeration value="BLACKLIST" /> <xs:enumeration value="BLACKLIST" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:attribute> </xs:attribute>
@ -130,6 +151,7 @@
<xs:attribute name="amount" type="xs:positiveInteger" /> <xs:attribute name="amount" type="xs:positiveInteger" />
<xs:attribute name="heading" type="xs:integer" use="required" /> <xs:attribute name="heading" type="xs:integer" use="required" />
<xs:attribute name="npcId" type="xs:positiveInteger" use="required" /> <xs:attribute name="npcId" type="xs:positiveInteger" use="required" />
<xs:attribute name="onKillDelay" type="xs:nonNegativeInteger" />
<xs:attribute name="respawn" type="xs:nonNegativeInteger" use="required" /> <xs:attribute name="respawn" type="xs:nonNegativeInteger" use="required" />
<xs:attribute name="respawnRandom" type="xs:nonNegativeInteger" /> <xs:attribute name="respawnRandom" type="xs:nonNegativeInteger" />
<xs:attribute name="allowRandomWalk" type="xs:boolean" /> <xs:attribute name="allowRandomWalk" type="xs:boolean" />
@ -151,4 +173,4 @@
<xs:attribute name="allowRandomWalk" type="xs:boolean" /> <xs:attribute name="allowRandomWalk" type="xs:boolean" />
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:schema> </xs:schema>

View File

@ -246,6 +246,14 @@
<xs:complexType name="paramType"> <xs:complexType name="paramType">
<xs:simpleContent> <xs:simpleContent>
<xs:extension base="xs:string"> <xs:extension base="xs:string">
<xs:attribute name="block" use="optional">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="HP" />
<xs:enumeration value="MP" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute type="xs:string" name="pAtk" use="optional" /> <xs:attribute type="xs:string" name="pAtk" use="optional" />
<xs:attribute type="xs:string" name="mAtk" use="optional" /> <xs:attribute type="xs:string" name="mAtk" use="optional" />
<xs:attribute type="xs:string" name="pDef" use="optional" /> <xs:attribute type="xs:string" name="pDef" use="optional" />
@ -471,7 +479,6 @@
<xs:enumeration value="inventoryLimit" /> <xs:enumeration value="inventoryLimit" />
<xs:enumeration value="pReuse" /> <xs:enumeration value="pReuse" />
<xs:enumeration value="dReuse" /> <xs:enumeration value="dReuse" />
<xs:enumeration value="debuffImmunity" />
<xs:enumeration value="vitalityConsumeRate" /> <xs:enumeration value="vitalityConsumeRate" />
<xs:enumeration value="weightPenalty" /> <xs:enumeration value="weightPenalty" />
<xs:enumeration value="darkPower" /> <xs:enumeration value="darkPower" />
@ -502,6 +509,7 @@
<xs:enumeration value="momentumSkillPower" /> <xs:enumeration value="momentumSkillPower" />
<xs:enumeration value="maxPhysCritRate" /> <xs:enumeration value="maxPhysCritRate" />
<xs:enumeration value="craftMastery" /> <xs:enumeration value="craftMastery" />
<xs:enumeration value="debuffImmunity" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:complexType name="addType" mixed="true"> <xs:complexType name="addType" mixed="true">
@ -534,7 +542,189 @@
<xs:element name="set" type="addType" /> <xs:element name="set" type="addType" />
<xs:element name="share" type="shareType" /> <xs:element name="share" type="shareType" />
</xs:choice> </xs:choice>
<xs:attribute type="xs:string" name="name" use="optional" /> <xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#effectname1" /> <!-- Frintezza's Songs -->
<xs:enumeration value="AddHate" />
<xs:enumeration value="AttackTrait" />
<xs:enumeration value="Backstab" />
<xs:enumeration value="Betray" />
<xs:enumeration value="Blink" />
<xs:enumeration value="BlockAction" />
<xs:enumeration value="BlockBuff" />
<xs:enumeration value="BlockChat" />
<xs:enumeration value="BlockDamage" />
<xs:enumeration value="BlockDebuff" />
<xs:enumeration value="BlockParty" />
<xs:enumeration value="BlockBuffSlot" />
<xs:enumeration value="BlockResurrection" />
<xs:enumeration value="BlockTarget" />
<xs:enumeration value="Bluff" />
<xs:enumeration value="Buff" />
<xs:enumeration value="CallParty" />
<xs:enumeration value="CallPc" />
<xs:enumeration value="CallSkill" />
<xs:enumeration value="ChameleonRest" />
<xs:enumeration value="ChangeFace" />
<xs:enumeration value="ChangeFishingMastery" />
<xs:enumeration value="ChangeHairColor" />
<xs:enumeration value="ChangeHairStyle" />
<xs:enumeration value="ClassChange" />
<xs:enumeration value="ClanGate" />
<xs:enumeration value="Confuse" />
<xs:enumeration value="ConsumeBody" />
<xs:enumeration value="ConvertItem" />
<xs:enumeration value="CpDamPercent" />
<xs:enumeration value="CpHeal" />
<xs:enumeration value="CpHealOverTime" />
<xs:enumeration value="CpHealPercent" />
<xs:enumeration value="CrystalGradeModify" />
<xs:enumeration value="CubicMastery" />
<xs:enumeration value="DamOverTime" />
<xs:enumeration value="DamOverTimePercent" />
<xs:enumeration value="DeathLink" />
<xs:enumeration value="Debuff" />
<xs:enumeration value="DefenceTrait" />
<xs:enumeration value="DeleteHate" />
<xs:enumeration value="DeleteHateOfMe" />
<xs:enumeration value="DetectHiddenObjects" />
<xs:enumeration value="Detection" />
<xs:enumeration value="Disarm" />
<xs:enumeration value="DispelAll" />
<xs:enumeration value="DispelByCategory" />
<xs:enumeration value="DispelBySlot" />
<xs:enumeration value="DispelBySlotProbability" />
<xs:enumeration value="Duel" />
<xs:enumeration value="EnableCloak" />
<xs:enumeration value="EnemyCharge" />
<xs:enumeration value="EnergyAttack" />
<xs:enumeration value="Escape" />
<xs:enumeration value="FakeDeath" />
<xs:enumeration value="FatalBlow" />
<xs:enumeration value="Fear" />
<xs:enumeration value="Fishing" />
<xs:enumeration value="Flag" />
<xs:enumeration value="FocusEnergy" />
<xs:enumeration value="FocusMaxEnergy" />
<xs:enumeration value="FocusSouls" />
<xs:enumeration value="GetAgro" />
<xs:enumeration value="GiveRecommendation" />
<xs:enumeration value="GiveSp" />
<xs:enumeration value="Grow" />
<xs:enumeration value="HairAccessorySet" />
<xs:enumeration value="Harvesting" />
<xs:enumeration value="HeadquarterCreate" />
<xs:enumeration value="Heal" />
<xs:enumeration value="HealOverTime" />
<xs:enumeration value="HealPercent" />
<xs:enumeration value="Hide" />
<xs:enumeration value="HpByLevel" />
<xs:enumeration value="HpCpHeal" />
<xs:enumeration value="HpDrain" />
<xs:enumeration value="IgnoreDeath" />
<xs:enumeration value="ImmobileBuff" />
<xs:enumeration value="ImmobilePetBuff" />
<xs:enumeration value="JumpToFriend" />
<xs:enumeration value="KnockBack" />
<xs:enumeration value="KnockDown" />
<xs:enumeration value="Lethal" />
<xs:enumeration value="Lucky" />
<xs:enumeration value="MagicalAttack" />
<xs:enumeration value="MagicalAttackByAbnormal" />
<xs:enumeration value="MagicalAttackMp" />
<xs:enumeration value="MagicalSoulAttack" />
<xs:enumeration value="ManaDamOverTime" />
<xs:enumeration value="ManaHeal" />
<xs:enumeration value="ManaHealByLevel" />
<xs:enumeration value="ManaHealOverTime" />
<xs:enumeration value="ManaHealPercent" />
<xs:enumeration value="MaxCp" />
<xs:enumeration value="MaxHp" />
<xs:enumeration value="MpConsumePerLevel" />
<xs:enumeration value="Mute" />
<xs:enumeration value="NoblesseBless" />
<xs:enumeration value="OpenChest" />
<xs:enumeration value="Unsummon" />
<xs:enumeration value="OpenCommonRecipeBook" />
<xs:enumeration value="OpenDoor" />
<xs:enumeration value="OpenDwarfRecipeBook" />
<xs:enumeration value="OutpostCreate" />
<xs:enumeration value="OutpostDestroy" />
<xs:enumeration value="Paralyze" />
<xs:enumeration value="Passive" />
<xs:enumeration value="PhysicalAttack" />
<xs:enumeration value="PhysicalAttackHpLink" />
<xs:enumeration value="PhysicalAttackMute" />
<xs:enumeration value="PhysicalMute" />
<xs:enumeration value="PhysicalSoulAttack" />
<xs:enumeration value="Pumping" />
<xs:enumeration value="ProtectionBlessing" />
<xs:enumeration value="RandomizeHate" />
<xs:enumeration value="RebalanceHP" />
<xs:enumeration value="Recovery" />
<xs:enumeration value="Reeling" />
<xs:enumeration value="RefuelAirship" />
<xs:enumeration value="Relax" />
<xs:enumeration value="RemoteControl" />
<xs:enumeration value="RemoveTarget" />
<xs:enumeration value="ResistSkill" />
<xs:enumeration value="Restoration" />
<xs:enumeration value="RestorationRandom" />
<xs:enumeration value="Resurrection" />
<xs:enumeration value="ResurrectionSpecial" />
<xs:enumeration value="Root" />
<xs:enumeration value="RunAway" />
<xs:enumeration value="ServitorShare" />
<xs:enumeration value="SetSkill" />
<xs:enumeration value="ShiftTarget" />
<xs:enumeration value="ShilensBreath" />
<xs:enumeration value="SilentMove" />
<xs:enumeration value="SkillTurning" />
<xs:enumeration value="Sleep" />
<xs:enumeration value="SoulBlow" />
<xs:enumeration value="SoulEating" />
<xs:enumeration value="Sow" />
<xs:enumeration value="Spoil" />
<xs:enumeration value="StaticDamage" />
<xs:enumeration value="StealAbnormal" />
<xs:enumeration value="Stun" />
<xs:enumeration value="Summon" />
<xs:enumeration value="SummonAgathion" />
<xs:enumeration value="SummonCubic" />
<xs:enumeration value="SummonDebuff" />
<xs:enumeration value="SummonNpc" />
<xs:enumeration value="SummonPet" />
<xs:enumeration value="SummonTrap" />
<xs:enumeration value="Sweeper" />
<xs:enumeration value="TakeCastle" />
<xs:enumeration value="TakeCastleStart" />
<xs:enumeration value="TakeFort" />
<xs:enumeration value="TakeFortStart" />
<xs:enumeration value="TakeTerritoryFlag" />
<xs:enumeration value="TalismanSlot" />
<xs:enumeration value="TargetCancel" />
<xs:enumeration value="TargetMe" />
<xs:enumeration value="TargetMeProbability" />
<xs:enumeration value="Teleport" />
<xs:enumeration value="TeleportToTarget" />
<xs:enumeration value="ThrowHorizontal" />
<xs:enumeration value="ThrowUp" />
<xs:enumeration value="TransferDamage" />
<xs:enumeration value="TransferHate" />
<xs:enumeration value="Transformation" />
<xs:enumeration value="TrapDetect" />
<xs:enumeration value="TrapRemove" />
<xs:enumeration value="TriggerForce" />
<xs:enumeration value="TriggerSkillByAttack" />
<xs:enumeration value="TriggerSkillByAvoid" />
<xs:enumeration value="TriggerSkillByDamage" />
<xs:enumeration value="TriggerSkillBySkill" />
<xs:enumeration value="UnsummonAgathion" />
<xs:enumeration value="VitalityPointUp" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute type="xs:string" name="ticks" use="optional" /> <xs:attribute type="xs:string" name="ticks" use="optional" />
<xs:attribute type="xs:string" name="abnormalTime" use="optional" /> <xs:attribute type="xs:string" name="abnormalTime" use="optional" />
<xs:attribute type="xs:string" name="activationChance" use="optional" /> <xs:attribute type="xs:string" name="activationChance" use="optional" />

View File

@ -43,7 +43,6 @@ import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.L2Playable; import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.L2Summon; import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
import com.l2jserver.gameserver.model.actor.instance.L2FriendlyMobInstance; import com.l2jserver.gameserver.model.actor.instance.L2FriendlyMobInstance;
import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance; import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
import com.l2jserver.gameserver.model.actor.instance.L2GuardInstance; import com.l2jserver.gameserver.model.actor.instance.L2GuardInstance;
@ -180,24 +179,24 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
if (target.isInvul()) if (target.isInvul())
{ {
// However EffectInvincible requires to check GMs specially // However EffectInvincible requires to check GMs specially
if ((target instanceof L2PcInstance) && target.isGM()) if (target.isPlayer() && target.isGM())
{ {
return false; return false;
} }
if ((target instanceof L2Summon) && ((L2Summon) target).getOwner().isGM()) if (target.isSummon() && ((L2Summon) target).getOwner().isGM())
{ {
return false; return false;
} }
} }
// Check if the target isn't a Folk or a Door // Check if the target isn't a Folk or a Door
if (target instanceof L2DoorInstance) if (target.isDoor())
{ {
return false; return false;
} }
// Check if the target isn't dead, is in the Aggro range and is at the same height // Check if the target isn't dead, is in the Aggro range and is at the same height
if (target.isAlikeDead() || ((target instanceof L2Playable) && !me.isInsideRadius(target, me.getAggroRange(), true, false))) if (target.isAlikeDead() || ((target.isPlayable()) && !me.isInsideRadius(target, me.getAggroRange(), true, false)))
{ {
return false; return false;
} }

View File

@ -403,7 +403,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
} }
// TODO(Zoey76)[#112]: This check must change if summon fall in L2Npc hierarchy. // TODO(Zoey76)[#112]: This check must change if summon fall in L2Npc hierarchy.
if (target instanceof L2Npc) if (target.isNpc())
{ {
return false; return false;
} }

View File

@ -147,11 +147,11 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
if ((target != null) && target.isInvul()) if ((target != null) && target.isInvul())
{ {
// However EffectInvincible requires to check GMs specially // However EffectInvincible requires to check GMs specially
if ((target instanceof L2PcInstance) && target.isGM()) if (target.isPlayer() && target.isGM())
{ {
return false; return false;
} }
if ((target instanceof L2Summon) && ((L2Summon) target).getOwner().isGM()) if (target.isSummon() && ((L2Summon) target).getOwner().isGM())
{ {
return false; return false;
} }

View File

@ -26,6 +26,7 @@ import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_MOVE_TO;
import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_PICK_UP; import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_PICK_UP;
import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_REST; import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_REST;
import com.l2jserver.gameserver.enums.DuelState;
import com.l2jserver.gameserver.model.L2Object; import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.Location; import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Character;
@ -33,6 +34,8 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2StaticObjectInstance; import com.l2jserver.gameserver.model.actor.instance.L2StaticObjectInstance;
import com.l2jserver.gameserver.model.skills.Skill; import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.skills.targets.L2TargetType; import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
public class L2PlayerAI extends L2PlayableAI public class L2PlayerAI extends L2PlayableAI
{ {
@ -190,7 +193,12 @@ public class L2PlayerAI extends L2PlayableAI
clientActionFailed(); clientActionFailed();
return; return;
} }
if (_actor.getActingPlayer().getDuelState() == DuelState.DEAD)
{
clientActionFailed();
_actor.getActingPlayer().sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_CANNOT_MOVE_WHILE_FROZEN_PLEASE_WAIT));
return;
}
if (_actor.isAllSkillsDisabled() || _actor.isCastingNow() || _actor.isAttackingNow()) if (_actor.isAllSkillsDisabled() || _actor.isCastingNow() || _actor.isAttackingNow())
{ {
clientActionFailed(); clientActionFailed();

View File

@ -136,11 +136,11 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
if (target.isInvul()) if (target.isInvul())
{ {
// However EffectInvincible requires to check GMs specially // However EffectInvincible requires to check GMs specially
if ((target instanceof L2PcInstance) && target.isGM()) if (target.isPlayer() && target.isGM())
{ {
return false; return false;
} }
if ((target instanceof L2Summon) && ((L2Summon) target).getOwner().isGM()) if (target.isSummon() && ((L2Summon) target).getOwner().isGM())
{ {
return false; return false;
} }

View File

@ -1583,7 +1583,7 @@ public final class SkillTreesData implements IXmlReader
*/ */
public boolean isClanSkill(int skillId, int skillLevel) public boolean isClanSkill(int skillId, int skillLevel)
{ {
final int hashCode = SkillData.getSkillHashCode(skillId, skillId); final int hashCode = SkillData.getSkillHashCode(skillId, skillLevel);
return _pledgeSkillTree.containsKey(hashCode) || _subPledgeSkillTree.containsKey(hashCode); return _pledgeSkillTree.containsKey(hashCode) || _subPledgeSkillTree.containsKey(hashCode);
} }

View File

@ -18,13 +18,16 @@
*/ */
package com.l2jserver.gameserver.enums; package com.l2jserver.gameserver.enums;
/**
* @author Zealar
*/
public enum DuelResult public enum DuelResult
{ {
Continue, CONTINUE,
Team1Win, TEAM_1_WIN,
Team2Win, TEAM_2_WIN,
Team1Surrender, TEAM_1_SURRENDER,
Team2Surrender, TEAM_2_SURRENDER,
Canceled, CANCELED,
Timeout TIMEOUT
} }

View File

@ -0,0 +1,31 @@
/*
* Copyright (C) 2004-2015 L2J Server
*
* This file is part of L2J Server.
*
* L2J Server 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.
*
* L2J Server 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 com.l2jserver.gameserver.enums;
/**
* @author Zealar
*/
public enum DuelState
{
NO_DUEL,
DUELLING,
DEAD,
WINNER,
INTERRUPTED
}

View File

@ -0,0 +1,28 @@
/*
* Copyright (C) 2004-2015 L2J Server
*
* This file is part of L2J Server.
*
* L2J Server 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.
*
* L2J Server 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 com.l2jserver.gameserver.enums;
/**
* @author Zealar
*/
public enum StartPosType
{
FIXED,
RANDOM
}

View File

@ -18,21 +18,21 @@
*/ */
package com.l2jserver.gameserver.instancemanager; package com.l2jserver.gameserver.instancemanager;
import java.util.Arrays;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import com.l2jserver.gameserver.enums.PrivateStoreType;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.Duel; import com.l2jserver.gameserver.model.entity.Duel;
import com.l2jserver.gameserver.model.skills.Skill; import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.ZoneId;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket; import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
import com.l2jserver.util.Rnd; import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
public final class DuelManager public final class DuelManager
{ {
private static final List<String> ARENAS = Arrays.asList("OlympiadGrassyArena.xml", "OlympiadHerossVestigesArena.xml", "OlympiadOrbisArena.xml", "OlympiadThreeBridgesArena.xml");
private final Map<Integer, Duel> _duels = new ConcurrentHashMap<>(); private final Map<Integer, Duel> _duels = new ConcurrentHashMap<>();
private final AtomicInteger _currentDuelId = new AtomicInteger(); private final AtomicInteger _currentDuelId = new AtomicInteger();
@ -46,7 +46,7 @@ public final class DuelManager
return _duels.get(duelId); return _duels.get(duelId);
} }
public void addDuel(L2PcInstance playerA, L2PcInstance playerB, int partyDuel) public void addDuel(L2PcInstance playerA, L2PcInstance playerB, boolean partyDuel)
{ {
if ((playerA == null) || (playerB == null)) if ((playerA == null) || (playerB == null))
{ {
@ -55,7 +55,7 @@ public final class DuelManager
// return if a player has PvPFlag // return if a player has PvPFlag
String engagedInPvP = "The duel was canceled because a duelist engaged in PvP combat."; String engagedInPvP = "The duel was canceled because a duelist engaged in PvP combat.";
if (partyDuel == 1) if (partyDuel)
{ {
boolean playerInPvP = false; boolean playerInPvP = false;
for (L2PcInstance temp : playerA.getParty().getMembers()) for (L2PcInstance temp : playerA.getParty().getMembers())
@ -154,23 +154,6 @@ public final class DuelManager
} }
} }
/**
* Removes player from duel.
* @param player - the removed player
*/
public void onRemoveFromParty(L2PcInstance player)
{
if ((player == null) || !player.isInDuel())
{
return;
}
final Duel duel = getDuel(player.getDuelId());
if (duel != null)
{
duel.onRemoveFromParty(player);
}
}
/** /**
* Broadcasts a packet to the team opposing the given player. * Broadcasts a packet to the team opposing the given player.
* @param player * @param player
@ -183,43 +166,81 @@ public final class DuelManager
return; return;
} }
final Duel duel = getDuel(player.getDuelId()); final Duel duel = getDuel(player.getDuelId());
if (duel == null) if (duel == null)
{ {
return; return;
} }
if ((duel.getPlayerA() == null) || (duel.getPlayerB() == null)) if (duel.getTeamA().contains(player))
{
return;
}
if (duel.getPlayerA() == player)
{ {
duel.broadcastToTeam2(packet); duel.broadcastToTeam2(packet);
} }
else if (duel.getPlayerB() == player) else
{ {
duel.broadcastToTeam1(packet); duel.broadcastToTeam1(packet);
} }
else if (duel.isPartyDuel())
{
if ((duel.getPlayerA().getParty() != null) && duel.getPlayerA().getParty().getMembers().contains(player))
{
duel.broadcastToTeam2(packet);
}
else if ((duel.getPlayerB().getParty() != null) && duel.getPlayerB().getParty().getMembers().contains(player))
{
duel.broadcastToTeam1(packet);
}
}
} }
/** /**
* Gets new a random Olympiad Stadium instance name. * Checks if this player might join / start a duel.<br>
* @return an instance name * @param player
* @param target
* @param partyDuel
* @return true if the player might join/start a duel.
*/ */
public String getDuelArena() public static boolean canDuel(L2PcInstance player, L2PcInstance target, boolean partyDuel)
{ {
return ARENAS.get(Rnd.get(ARENAS.size())); SystemMessageId reason = null;
if (target.isInCombat() || target.isJailed())
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_IS_CURRENTLY_ENGAGED_IN_BATTLE;
}
else if (target.isTransformed())
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_IS_CURRENTLY_POLYMORPHED;
}
else if (target.isDead() || target.isAlikeDead() || ((target.getCurrentHp() < (target.getMaxHp() / 2)) || (target.getCurrentMp() < (target.getMaxMp() / 2))))
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_S_HP_OR_MP_IS_BELOW_50;
}
else if (target.isInDuel())
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_IS_ALREADY_ENGAGED_IN_A_DUEL;
}
else if (target.isInOlympiadMode())
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_IS_PARTICIPATING_IN_THE_OLYMPIAD_OR_THE_CEREMONY_OF_CHAOS;
}
else if (target.isCursedWeaponEquipped())
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_IS_IN_A_CHAOTIC_OR_PURPLE_STATE;
}
else if (target.getPrivateStoreType() != PrivateStoreType.NONE)
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_IS_CURRENTLY_ENGAGED_IN_A_PRIVATE_STORE_OR_MANUFACTURE;
}
else if (target.isMounted() || target.isInBoat())
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_IS_CURRENTLY_RIDING_A_BOAT_FENRIR_OR_STRIDER;
}
else if (target.isFishing())
{
reason = SystemMessageId.C1_CANNOT_DUEL_BECAUSE_C1_IS_CURRENTLY_FISHING;
}
else if ((!partyDuel && target.isInsideZone(ZoneId.PEACE)) || target.isInsideZone(ZoneId.PVP) || target.isInsideZone(ZoneId.SIEGE))
{
reason = SystemMessageId.C1_CANNOT_MAKE_A_CHALLENGE_TO_A_DUEL_BECAUSE_C1_IS_CURRENTLY_IN_A_DUEL_PROHIBITED_AREA_PEACEFUL_ZONE_BATTLE_ZONE_NEAR_WATER_RESTART_PROHIBITED_AREA;
}
if (reason != null)
{
SystemMessage msg = SystemMessage.getSystemMessage(reason);
msg.addString(target.getName());
player.sendPacket(msg);
return false;
}
return true;
} }
public static final DuelManager getInstance() public static final DuelManager getInstance()

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