-Implemented new cubics & cubic skills.
-Fixed some visual bugs (character see removed cubic, not see seed talisman aura until re-equip talisman). -Removed unused packet ExGetBossRecord (I forgot remove this in my raid points patch). Contributed by NviX.
This commit is contained in:
parent
f25a32b9f7
commit
71fd68697b
256
trunk/dist/game/data/stats/skills/10000-10099.xml
vendored
256
trunk/dist/game/data/stats/skills/10000-10099.xml
vendored
@ -1568,7 +1568,7 @@
|
||||
</enchant1for>
|
||||
</skill>
|
||||
<skill id="10041" levels="4" name="Summon Cubic of Despair">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- NOT USED -->
|
||||
<set name="icon" val="icon.skill0010" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
@ -1578,7 +1578,7 @@
|
||||
<set name="reuseDelay" val="30000" />
|
||||
</skill>
|
||||
<skill id="10042" levels="3" name="Summon Cubic of Life">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- NOT USED -->
|
||||
<set name="icon" val="icon.skill0010" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
@ -1595,16 +1595,13 @@
|
||||
<set name="reuseDelay" val="30000" />
|
||||
<set name="mpConsume" val="#mpConsume" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="skillType" val="SUMMON" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="activationchance" val="40" />
|
||||
<set name="activationtime" val="13" />
|
||||
<set name="maxcount" val="30" />
|
||||
<set name="cubicPower" val="2106" />
|
||||
<set name="isCubic" val="true" />
|
||||
<set name="npcId" val="16" />
|
||||
<set name="summonTotalLifeTime" val="900000" />
|
||||
<for>
|
||||
<effect name="SummonCubic">
|
||||
<param cubicId="16" cubicDelay="13" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10044" levels="1" name="Superior Elemental Mastery">
|
||||
<!-- STR + 2 and Attribute Resistance + 20. -->
|
||||
@ -1833,8 +1830,7 @@
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10055" levels="1" name="Cubic Attack">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- Momentarily decreases P. Atk. Effect 3. -->
|
||||
<!-- NOT USED -->
|
||||
<set name="icon" val="icon.skill1164" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="targetType" val="SELF" />
|
||||
@ -1848,17 +1844,18 @@
|
||||
<table name="#abnormalLvl">1 2 3 4 5 6 7 8</table>
|
||||
<table name="#magicLvl">85 86 88 90 92 94 96 98</table>
|
||||
<table name="#HpHealPercent">0 0 0 0 0 3 6 10</table>
|
||||
<set name="castRange" val="600" />
|
||||
<set name="abnormalTime" val="#abnormalTime" />
|
||||
<set name="abnormalLvl" val="#abnormalLvl" />
|
||||
<set name="effectRange" val="1100" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="skillType" val="BUFF" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="isMagic" val="1" />
|
||||
<for>
|
||||
<effect name="DispelByCategory">
|
||||
<param slot="debuff" rate="100" max="10" />
|
||||
</effect>
|
||||
<effect name="HealPercent" noicon="1" val="#HpHealPercent" />
|
||||
<effect name="Buff" val="0">
|
||||
<effect name="Buff">
|
||||
<set stat="debuffImmunity" val="1" />
|
||||
<add stat="pDef" val="#pDef" />
|
||||
<add stat="mDef" val="#mDef" />
|
||||
@ -1866,8 +1863,7 @@
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10057" levels="1" name="Cubic Curse">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- Inflicted with poison and HP is momentarily decreased. Effect 5. -->
|
||||
<!-- NOT USED -->
|
||||
<set name="icon" val="icon.skill1168" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="targetType" val="SELF" />
|
||||
@ -2158,25 +2154,23 @@
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<!-- Level 1 : Summons a Melody Cubic. The Melody Cubic uses magic to restore its owner's HP and MP. -->
|
||||
<!-- Level 2 : Summons a Melody Cubic. The Melody Cubic uses magic to restore its owner's HP and MP. -->
|
||||
<!-- Level 3 : Summons a Melody Cubic. The Melody Cubic uses magic to restore its owner's HP and MP. -->
|
||||
<!-- Level 4 : Summons a Melody Cubic. The Melody Cubic uses magic to restore its owner's HP and MP. -->
|
||||
<skill id="10073" levels="4" name="Summon Buff Cubic">
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="icon" val="icon.skill10073" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="mpConsume" val="96" />
|
||||
<table name="#magicLvl">85 90 95 99</table>
|
||||
<set name="hitTime" val="2200" />
|
||||
<set name="coolTime" val="300" />
|
||||
<set name="reuseDelay" val="30000" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="mpConsume" val="96" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="SummonCubic">
|
||||
<param cubicId="18" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10074" levels="4" name="Summon Mind Cubic">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- Summons the Mind Cubic. The Sigel Mind Cubic uses magic to restore the owner's MP. -->
|
||||
<!-- NOT USED -->
|
||||
<set name="icon" val="icon.skill10074" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
@ -2244,37 +2238,37 @@
|
||||
<set name="reuseDelay" val="30000" />
|
||||
<set name="isMagic" val="4" />
|
||||
</skill>
|
||||
<!-- Level 1 : Summons a Phantom Cubic. It uses magic to decrease the enemy's physical and magic Spd. -->
|
||||
<!-- Level 2 : Summons a Phantom Cubic. It uses magic to decrease the enemy's physical and magic Spd. -->
|
||||
<!-- Level 3 : Summons a Phantom Cubic. It uses magic to decrease the enemy's physical and magic Spd. -->
|
||||
<!-- Level 4 : Summons a Phantom Cubic. It uses magic to decrease the enemy's physical and magic Spd. -->
|
||||
<skill id="10079" levels="4" name="Summon Phantom Cubic">
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="icon" val="icon.skill10079" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="mpConsume" val="96" />
|
||||
<table name="#magicLvl">85 90 95 99</table>
|
||||
<table name="#cubicPower"> 2106 2506 2906 3506 </table> <!-- Need verify -->
|
||||
<set name="hitTime" val="3500" />
|
||||
<set name="coolTime" val="500" />
|
||||
<set name="reuseDelay" val="30000" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="mpConsume" val="96" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="SummonCubic">
|
||||
<param cubicId="20" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#cubicPower" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<!-- Level 1 : Summons the Hex Cubic, which uses magic to decrease the enemy's P. Def. and M. Def. -->
|
||||
<!-- Level 2 : Summons the Hex Cubic, which uses magic to decrease the enemy's P. Def. and M. Def. -->
|
||||
<!-- Level 3 : Summons the Hex Cubic, which uses magic to decrease the enemy's P. Def. and M. Def. -->
|
||||
<!-- Level 4 : Summons the Hex Cubic, which uses magic to decrease the enemy's P. Def. and M. Def. -->
|
||||
<skill id="10080" levels="4" name="Summon Hex Cubic">
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="icon" val="icon.skill10080" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="mpConsume" val="96" />
|
||||
<table name="#magicLvl">85 90 95 99</table>
|
||||
<table name="#cubicPower"> 2106 2506 2906 3506 </table> <!-- Need verify -->
|
||||
<set name="hitTime" val="3500" />
|
||||
<set name="coolTime" val="500" />
|
||||
<set name="reuseDelay" val="30000" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="mpConsume" val="96" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="SummonCubic">
|
||||
<param cubicId="21" cubicDelay="3" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#cubicPower" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10081" levels="4" name="Lightning Root">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
@ -2291,45 +2285,99 @@
|
||||
<set name="isDebuff" val="true" />
|
||||
</skill>
|
||||
<skill id="10082" levels="4" name="Strong Cubic Heal">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<set name="icon" val="icon.skill0000" />
|
||||
<table name="#amount"> 600 650 700 750 </table> <!-- Need verify -->
|
||||
<table name="#effectPoints"> 900 1000 1100 1200 </table>
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="effectPoint" val="#effectPoints" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<for>
|
||||
<effect name="Heal">
|
||||
<param power="#amount" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10083" levels="4" name="Basic Cubic Heal">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<set name="icon" val="icon.skill0000" />
|
||||
<table name="#amount"> 400 450 500 600 </table> <!-- Need verify -->
|
||||
<table name="#effectPoints"> 700 800 900 1000 </table>
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="effectPoint" val="#effectPoints" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<for>
|
||||
<effect name="Heal">
|
||||
<param power="#amount" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10084" levels="4" name="Basic Cubic Mind">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<set name="icon" val="icon.skill0191" />
|
||||
<table name="#amount"> 140 150 160 170 </table> <!-- Need verify -->
|
||||
<table name="#effectPoints"> 900 1000 1100 1200 </table>
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="effectPoint" val="#effectPoints" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<for>
|
||||
<effect name="ManaHeal">
|
||||
<param power="#amount" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10085" levels="4" name="Cubic Falter">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- For 5 sec., Atk. Spd./ Casting Spd. - 5%. -->
|
||||
<set name="icon" val="icon.skill1206" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="isMagic" val="1" />
|
||||
<table name="#rate"> 0.95 0.93 0.9 0.85 </table>
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="abnormalLvl" val="3" />
|
||||
<set name="abnormalTime" val="5" />
|
||||
<set name="activateRate" val="80" />
|
||||
<set name="basicProperty" val="MEN" />
|
||||
<set name="effectPoint" val="-700" />
|
||||
<set name="isDebuff" val="true" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="lvlBonusRate" val="2" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<for>
|
||||
<effect name="Debuff">
|
||||
<mul stat="pAtkSpd" val="#rate" />
|
||||
<mul stat="mAtkSpd" val="#rate" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10086" levels="4" name="Cubic Hex">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- For 5 sec., P. Def./ M. Def. - 5%. -->
|
||||
<set name="icon" val="icon.skill0122" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="isMagic" val="1" />
|
||||
<table name="#rate"> 0.95 0.93 0.9 0.85 </table>
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="abnormalLvl" val="3" />
|
||||
<set name="abnormalTime" val="5" />
|
||||
<set name="activateRate" val="80" />
|
||||
<set name="basicProperty" val="MEN" />
|
||||
<set name="effectPoint" val="-700" />
|
||||
<set name="isDebuff" val="true" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="lvlBonusRate" val="2" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<for>
|
||||
<effect name="Debuff">
|
||||
<mul stat="pDef" val="#rate" />
|
||||
<mul stat="mDef" val="#rate" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10087" levels="4" name="Blood Panther Roar">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
@ -2359,11 +2407,21 @@
|
||||
<set name="isDebuff" val="true" />
|
||||
</skill>
|
||||
<skill id="10089" levels="4" name="Strong Cubic Mind">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<set name="icon" val="icon.skill0191" />
|
||||
<table name="#amount"> 200 250 300 350 </table> <!-- Need verify -->
|
||||
<table name="#effectPoints"> 900 1000 1100 1200 </table>
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="effectPoint" val="#effectPoints" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<for>
|
||||
<effect name="ManaHeal">
|
||||
<param power="#amount" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10090" levels="4" name="Provoking Shackle">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
@ -2388,29 +2446,39 @@
|
||||
<set name="reuseDelay" val="60000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
</skill>
|
||||
<!-- Level 1 : Summons a Guardian Cubic. The Guardian Cubic uses magic to increase its owner's Shield Defense and Spd. -->
|
||||
<!-- Level 2 : Summons a Guardian Cubic. The Guardian Cubic uses magic to increase its owner's Shield Defense and Spd. -->
|
||||
<!-- Level 3 : Summons a Guardian Cubic. The Guardian Cubic uses magic to increase its owner's Shield Defense and Spd. -->
|
||||
<!-- Level 4 : Summons a Guardian Cubic. The Guardian Cubic uses magic to increase its owner's Shield Defense and Spd. -->
|
||||
<skill id="10092" levels="4" name="Summon Guardian Cubic">
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="icon" val="icon.skll10093" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="mpConsume" val="96" />
|
||||
<table name="#magicLvl">85 90 95 99</table>
|
||||
<set name="hitTime" val="2200" />
|
||||
<set name="coolTime" val="300" />
|
||||
<set name="reuseDelay" val="30000" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="mpConsume" val="96" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="SummonCubic">
|
||||
<param cubicId="22" cubicDelay="13" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10093" levels="4" name="Guardian Cubic">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- Increases Shield P. Def. and Shield Defense. Spd. + 13. -->
|
||||
<table name="#rate"> 1.1 1.2 1.3 1.4 </table>
|
||||
<table name="#abnormalLvl"> 1 2 3 4 </table>
|
||||
<table name="#magicLvl"> 85 90 95 99 </table>
|
||||
<set name="icon" val="icon.skll10093" />
|
||||
<set name="abnormalTime" val="5" />
|
||||
<set name="abnormalLvl" val="#abnormalLvl" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="isMagic" val="1" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
<mul stat="rShld" val="#rate" />
|
||||
<mul stat="sDef" val="#rate" />
|
||||
<add stat="runSpd" val="13" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<!-- Level 1 : Strikes target and nearby enemies with a lightning bolt that inflicts non-attribute damage with 11997 Power. Paralyzes for 5 seconds. Consumes 1 Soulstone. -->
|
||||
<!-- Level 2 : Strikes target and nearby enemies with a lightning bolt that inflicts non-attribute damage with 14177 Power. Paralyzes for 5 seconds. Consumes 2 Soulstones. -->
|
||||
|
@ -847,17 +847,10 @@
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<!-- Level 1 : Summons an Avenging cubic. The summoned cubic cancels the summoner's debuffs. Additionally, it cancels the buffs of the summoner's target and inflicts Hold. -->
|
||||
<!-- Level 2 : Summons an Avenging cubic. The summoned cubic cancels the summoner's debuffs. Additionally, it cancels the buffs of the summoner's target and inflicts Hold. -->
|
||||
<!-- Level 3 : Summons an Avenging cubic. The summoned cubic cancels the summoner's debuffs. Additionally, it cancels the buffs of the summoner's target and inflicts Hold. -->
|
||||
<!-- Level 4 : Summons an Avenging cubic. The summoned cubic cancels the summoner's debuffs. Additionally, it cancels the buffs of the summoner's target and inflicts Hold. -->
|
||||
<!-- Level 5 : Summons an Avenging cubic. The summoned cubic cancels the summoner's debuffs. Additionally, it cancels the buffs of the summoner's target and inflicts Hold. -->
|
||||
<!-- Level 6 : Summons an Avenging cubic. The summoned cubic cancels the summoner's debuffs. Additionally, it cancels the buffs of the summoner's target and inflicts Hold. -->
|
||||
<!-- Level 7 : Summons an Avenging cubic. The summoned cubic cancels the summoner's debuffs. Additionally, it cancels the buffs of the summoner's target and inflicts Hold. -->
|
||||
<!-- Level 8 : Summons an Avenging cubic. The summoned cubic cancels the summoner's debuffs. Additionally, it cancels the buffs of the summoner's target and inflicts Hold. -->
|
||||
<skill id="11268" levels="8" name="Summon Avenging Cubic">
|
||||
<table name="#magicLvl"> 85 86 88 90 92 94 96 98 </table>
|
||||
<table name="#mpConsume"> 70 72 75 78 81 84 87 91 </table>
|
||||
<table name="#cubicPower"> 2106 2306 2506 2706 2906 3106 3306 3506 </table>
|
||||
<set name="icon" val="icon.skill11268" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
@ -867,6 +860,11 @@
|
||||
<set name="reuseDelay" val="60000" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="SummonCubic">
|
||||
<param cubicId="15" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#cubicPower" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<!-- Level 1 : Consumes your MP to restore servitors' HP by 1308. -->
|
||||
<!-- Level 2 : Consumes your MP to restore servitors' HP by 1336. -->
|
||||
@ -1462,32 +1460,56 @@
|
||||
<set name="isMagic" val="1" />
|
||||
</skill>
|
||||
<skill id="11292" levels="8" name="Cubic Cleanse">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- Cancels debuffs on you. -->
|
||||
<set name="icon" val="icon.skill0000" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="600" />
|
||||
<table name="#magicLvl"> 85 86 88 90 92 94 96 98 </table>
|
||||
<set name="effectPoint" val="408" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="DispelByCategory">
|
||||
<param slot="debuff" rate="100" max="10" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="11293" levels="8" name="Cubic Cancellation">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- Cancels the enemy's buff. -->
|
||||
<set name="icon" val="icon.skill0000" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="600" />
|
||||
<table name="#magicLvl"> 85 86 88 90 92 94 96 98 </table>
|
||||
<set name="effectPoint" val="-700" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<for>
|
||||
<effect name="DispelByCategory">
|
||||
<param slot="buff" rate="25" max="5" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="11294" levels="8" name="Cubic Root">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- Temporarily stops the enemy from moving. -->
|
||||
<set name="icon" val="icon.skill1201" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="600" />
|
||||
<set name="isMagic" val="1" />
|
||||
<table name="#magicLvl"> 85 86 88 90 92 94 96 98 </table>
|
||||
<set name="abnormalLvl" val="3" />
|
||||
<set name="abnormalTime" val="5" />
|
||||
<set name="abnormalType" val="ROOT_MAGICALLY" />
|
||||
<set name="abnormalVisualEffect" val="ROOT" />
|
||||
<set name="activateRate" val="80" />
|
||||
<set name="basicProperty" val="MEN" />
|
||||
<set name="effectPoint" val="-700" />
|
||||
<set name="isDebuff" val="true" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="lvlBonusRate" val="2" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="trait" val="HOLD" />
|
||||
<for>
|
||||
<effect name="Root" />
|
||||
<effect name="DefenceTrait">
|
||||
<param HOLD="100" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<!-- Level 1 : INT + 2. Max HP + 4151 and P. Def. + 1155 when equipped with Light Armor. -->
|
||||
<!-- Level 101 : INT + 2. Max HP + 4151 and P. Def. + 1188 when equipped with a Light Armor. Enchant Power: Increases Effect. (+ 1 Power | Increases the effect.) -->
|
||||
|
@ -144,44 +144,32 @@
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<!-- Level 1 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. -->
|
||||
<!-- Level 2 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. -->
|
||||
<!-- Level 3 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. -->
|
||||
<!-- Level 4 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. -->
|
||||
<!-- Level 5 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. -->
|
||||
<!-- Level 101 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 1 Power | Increases the effect.) -->
|
||||
<!-- Level 102 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 2 Power | Increases the effect.) -->
|
||||
<!-- Level 103 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 3 Power | Increases the effect.) -->
|
||||
<!-- Level 104 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 4 Power | Increases the effect.) -->
|
||||
<!-- Level 105 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 5 Power | Increases the effect.) -->
|
||||
<!-- Level 106 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 6 Power | Increases the effect.) -->
|
||||
<!-- Level 107 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 7 Power | Increases the effect.) -->
|
||||
<!-- Level 108 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 8 Power | Increases the effect.) -->
|
||||
<!-- Level 109 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 9 Power | Increases the effect.) -->
|
||||
<!-- Level 110 : Summons a fairy that follows and periodically heals the selected party member for 60 seconds. Has a chance of recovering HP when attacked. Enchant Power: Increases the effect. (+ 10 Power | Increases the effect.) -->
|
||||
<!-- Level 201 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 6 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 1 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 202 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 12 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 2 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 203 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 18 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 3 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 204 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 24 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 4 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 205 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 30 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 5 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 206 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 36 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 6 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 207 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 42 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 7 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 208 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 48 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 8 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 209 : Summons a fairy that follows and periodically heals the selected party member for 1 minute and 54 seconds. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 9 Time | Increases the effect's duration.) -->
|
||||
<!-- Level 210 : Summons a fairy that follows and periodically heals the selected party member for 2 minutes. Has a chance of recovering HP when attacked. Enchant Time: Increases Duration. (+ 10 Time | Increases the effect's duration.) -->
|
||||
<skill id="11754" levels="5" name="Fairy of Life">
|
||||
<skill id="11754" levels="5" name="Fairy of Life" enchantGroup1="10" enchantGroup2="10">
|
||||
<table name="#magicLvl"> 85 88 91 94 97 </table>
|
||||
<table name="#mpConsume"> 43 46 48 52 55 </table>
|
||||
<table name="#ench2Time"> 66 72 78 84 90 96 102 108 114 120 </table>
|
||||
<set name="icon" val="icon.skill11754" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="mpConsume" val="#mpConsume" />
|
||||
<set name="effectRange" val="600" />
|
||||
<set name="hitTime" val="2200" />
|
||||
<set name="coolTime" val="300" />
|
||||
<set name="reuseDelay" val="15000" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="targetType" val="PARTY_MEMBER" />
|
||||
<enchant1 name="magicLvl" val="99" />
|
||||
<enchant2 name="magicLvl" val="99" />
|
||||
<for>
|
||||
<effect name="SummonCubic">
|
||||
<param cubicId="17" cubicDelay="10" cubicDuration="60" cubicMaxCount="30" />
|
||||
</effect>
|
||||
</for>
|
||||
<enchant2for>
|
||||
<effect name="SummonCubic">
|
||||
<param cubicId="17" cubicDelay="10" cubicDuration="#ench2Time" cubicMaxCount="30" />
|
||||
</effect>
|
||||
</enchant2for>
|
||||
</skill>
|
||||
<skill id="11755" levels="8" name="Radiant Heal" enchantGroup1="10">
|
||||
<!-- Heals target with 1488 Power added to M. Atk. If HP is full, CP is restored. -->
|
||||
|
@ -65,13 +65,29 @@
|
||||
<set name="reuseDelay" val="7000" />
|
||||
<set name="isMagic" val="1" />
|
||||
</skill>
|
||||
<skill id="11807" levels="5" name="Miracle of Fairy">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<set name="icon" val="icon.skill11807" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="600" />
|
||||
<skill id="11807" levels="5" name="Miracle of Fairy" enchantGroup1="10">
|
||||
<table name="#amount"> 500 520 540 560 580 </table> <!-- Need verify -->
|
||||
<table name="#effectPoints"> 700 800 900 1000 1200 </table>
|
||||
<table name="#magicLvl"> 85 88 91 94 97 </table>
|
||||
<table name="#enchAmount"> 600 610 620 630 640 650 660 670 680 690 </table>
|
||||
<set name="effectPoint" val="#effectPoints" />
|
||||
<set name="isMagic" val="1" />
|
||||
<set name="magicLvl" val="#magicLvl" />
|
||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||
<set name="targetType" val="ONE" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<enchant1 name="magicLvl" val="99" />
|
||||
<for>
|
||||
<effect name="Heal">
|
||||
<param power="#amount" />
|
||||
</effect>
|
||||
</for>
|
||||
<enchant1for>
|
||||
<effect name="Heal">
|
||||
<param power="#enchAmount" />
|
||||
</effect>
|
||||
</enchant1for>
|
||||
</skill>
|
||||
<skill id="11808" levels="2" name="Elegance of Light">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
|
@ -35,6 +35,7 @@ import com.l2jserver.gameserver.model.actor.L2Attackable;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.tasks.cubics.CubicAction;
|
||||
import com.l2jserver.gameserver.model.actor.tasks.cubics.CubicBuff;
|
||||
import com.l2jserver.gameserver.model.actor.tasks.cubics.CubicDisappear;
|
||||
import com.l2jserver.gameserver.model.actor.tasks.cubics.CubicHeal;
|
||||
import com.l2jserver.gameserver.model.effects.L2EffectType;
|
||||
@ -67,6 +68,14 @@ public final class L2CubicInstance implements IIdentifiable
|
||||
public static final int SMART_CUBIC_ARCANALORD = 12;
|
||||
public static final int SMART_CUBIC_ELEMENTALMASTER = 13;
|
||||
public static final int SMART_CUBIC_SPECTRALMASTER = 14;
|
||||
public static final int AVENGING_CUBIC = 15;
|
||||
public static final int KNIGHT_CUBIC = 16;
|
||||
public static final int FAIRY_CUBIC = 17;
|
||||
public static final int BUFF_CUBIC = 18;
|
||||
public static final int MIND_CUBIC = 19; // NOT USED
|
||||
public static final int PHANTOM_CUBIC = 20;
|
||||
public static final int HEX_CUBIC = 21;
|
||||
public static final int GUARDIAN_CUBIC = 22;
|
||||
|
||||
// Max range of cubic skills
|
||||
// TODO: Check/fix the max range
|
||||
@ -75,6 +84,14 @@ public final class L2CubicInstance implements IIdentifiable
|
||||
// Cubic skills
|
||||
public static final int SKILL_CUBIC_HEAL = 4051;
|
||||
public static final int SKILL_CUBIC_CURE = 5579;
|
||||
public static final int SKILL_CUBIC_HEALER = 11807;
|
||||
public static final int SKILL_BUFF_CUBIC_HEAL = 10083;
|
||||
public static final int SKILL_MIND_CUBIC_RECHARGE = 10084;
|
||||
public static final int SKILL_BUFF_CUBIC_GREAT_HEAL = 10082;
|
||||
public static final int SKILL_MIND_CUBIC_GREAT_RECHARGE = 10089;
|
||||
public static final int SKILL_AVENGING_CUBIC_CLEANCE = 11292;
|
||||
public static final int SKILL_KNIGHT_CUBIC = 10056;
|
||||
public static final int SKILL_GUARDIAN_CUBIC = 10093;
|
||||
|
||||
private final L2PcInstance _owner;
|
||||
private L2Character _target;
|
||||
@ -156,6 +173,41 @@ public final class L2CubicInstance implements IIdentifiable
|
||||
_skills.add(SkillData.getInstance().getSkill(4049, 8));
|
||||
_skills.add(SkillData.getInstance().getSkill(5115, 4));
|
||||
break;
|
||||
case AVENGING_CUBIC:
|
||||
_skills.add(SkillData.getInstance().getSkill(11292, level));
|
||||
_skills.add(SkillData.getInstance().getSkill(11293, level));
|
||||
_skills.add(SkillData.getInstance().getSkill(11294, level));
|
||||
break;
|
||||
case KNIGHT_CUBIC:
|
||||
_skills.add(SkillData.getInstance().getSkill(10056, level));
|
||||
doAction();
|
||||
break;
|
||||
case FAIRY_CUBIC:
|
||||
_skills.add(SkillData.getInstance().getSkill(11807, level));
|
||||
doAction();
|
||||
break;
|
||||
case BUFF_CUBIC:
|
||||
_skills.add(SkillData.getInstance().getSkill(10082, level));
|
||||
_skills.add(SkillData.getInstance().getSkill(10083, level));
|
||||
_skills.add(SkillData.getInstance().getSkill(10084, level));
|
||||
_skills.add(SkillData.getInstance().getSkill(10089, level));
|
||||
doAction();
|
||||
break;
|
||||
case MIND_CUBIC: // NOT USED
|
||||
_skills.add(SkillData.getInstance().getSkill(10084, level));
|
||||
_skills.add(SkillData.getInstance().getSkill(10089, level));
|
||||
doAction();
|
||||
break;
|
||||
case PHANTOM_CUBIC:
|
||||
_skills.add(SkillData.getInstance().getSkill(10085, level));
|
||||
break;
|
||||
case HEX_CUBIC:
|
||||
_skills.add(SkillData.getInstance().getSkill(10086, level));
|
||||
break;
|
||||
case GUARDIAN_CUBIC:
|
||||
_skills.add(SkillData.getInstance().getSkill(10093, level));
|
||||
doAction();
|
||||
break;
|
||||
}
|
||||
_disappearTask = ThreadPoolManager.getInstance().scheduleGeneral(new CubicDisappear(this), cubicDuration * 1000); // disappear
|
||||
}
|
||||
@ -183,11 +235,21 @@ public final class L2CubicInstance implements IIdentifiable
|
||||
case SMART_CUBIC_SPECTRALMASTER:
|
||||
case SMART_CUBIC_EVATEMPLAR:
|
||||
case SMART_CUBIC_SHILLIENTEMPLAR:
|
||||
case AVENGING_CUBIC:
|
||||
case PHANTOM_CUBIC:
|
||||
case HEX_CUBIC:
|
||||
_actionTask = ThreadPoolManager.getInstance().scheduleEffectAtFixedRate(new CubicAction(this, _cubicSkillChance), 0, _cubicDelay);
|
||||
break;
|
||||
case LIFE_CUBIC:
|
||||
case FAIRY_CUBIC:
|
||||
case BUFF_CUBIC:
|
||||
case MIND_CUBIC:
|
||||
_actionTask = ThreadPoolManager.getInstance().scheduleEffectAtFixedRate(new CubicHeal(this), 0, _cubicDelay);
|
||||
break;
|
||||
case KNIGHT_CUBIC:
|
||||
case GUARDIAN_CUBIC:
|
||||
_actionTask = ThreadPoolManager.getInstance().scheduleEffectAtFixedRate(new CubicBuff(this, _cubicSkillChance), 0, _cubicDelay);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ public final class CubicAction implements Runnable
|
||||
|
||||
// Smart Cubic debuff cancel is 100%
|
||||
boolean useCubicCure = false;
|
||||
if ((_cubic.getId() >= L2CubicInstance.SMART_CUBIC_EVATEMPLAR) && (_cubic.getId() <= L2CubicInstance.SMART_CUBIC_SPECTRALMASTER))
|
||||
if (((_cubic.getId() >= L2CubicInstance.SMART_CUBIC_EVATEMPLAR) && (_cubic.getId() <= L2CubicInstance.SMART_CUBIC_SPECTRALMASTER)) || (_cubic.getId() == L2CubicInstance.AVENGING_CUBIC))
|
||||
{
|
||||
for (BuffInfo info : _cubic.getOwner().getEffectList().getDebuffs())
|
||||
{
|
||||
@ -113,11 +113,20 @@ public final class CubicAction implements Runnable
|
||||
if (useCubicCure)
|
||||
{
|
||||
// Smart Cubic debuff cancel is needed, no other skill is used in this activation period
|
||||
MagicSkillUse msu = new MagicSkillUse(_cubic.getOwner(), _cubic.getOwner(), L2CubicInstance.SKILL_CUBIC_CURE, 1, 0, 0);
|
||||
_cubic.getOwner().broadcastPacket(msu);
|
||||
|
||||
// The cubic has done an action, increase the current count
|
||||
_currentCount.incrementAndGet();
|
||||
if ((_cubic.getId() >= L2CubicInstance.SMART_CUBIC_EVATEMPLAR) && (_cubic.getId() <= L2CubicInstance.SMART_CUBIC_SPECTRALMASTER))
|
||||
{
|
||||
MagicSkillUse msu = new MagicSkillUse(_cubic.getOwner(), _cubic.getOwner(), L2CubicInstance.SKILL_CUBIC_CURE, 1, 0, 0);
|
||||
_cubic.getOwner().broadcastPacket(msu);
|
||||
// The cubic has done an action, increase the current count
|
||||
_currentCount.incrementAndGet();
|
||||
}
|
||||
else
|
||||
{
|
||||
MagicSkillUse msu = new MagicSkillUse(_cubic.getOwner(), _cubic.getOwner(), L2CubicInstance.SKILL_AVENGING_CUBIC_CLEANCE, 1, 0, 0);
|
||||
_cubic.getOwner().broadcastPacket(msu);
|
||||
// The cubic has done an action, increase the current count
|
||||
_currentCount.incrementAndGet();
|
||||
}
|
||||
}
|
||||
else if (Rnd.get(1, 100) < _chance)
|
||||
{
|
||||
|
@ -0,0 +1,124 @@
|
||||
/*
|
||||
* 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.model.actor.tasks.cubics;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2CubicInstance;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
|
||||
import com.l2jserver.gameserver.taskmanager.AttackStanceTaskManager;
|
||||
import com.l2jserver.util.Rnd;
|
||||
|
||||
/**
|
||||
* @author NviX
|
||||
*/
|
||||
public final class CubicBuff implements Runnable
|
||||
{
|
||||
private static final Logger _log = Logger.getLogger(CubicBuff.class.getName());
|
||||
private final L2CubicInstance _cubic;
|
||||
private final AtomicInteger _currentCount = new AtomicInteger();
|
||||
private final int _chance;
|
||||
|
||||
public CubicBuff(L2CubicInstance cubic, int chance)
|
||||
{
|
||||
_cubic = cubic;
|
||||
_chance = chance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (_cubic == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_cubic.getOwner().isDead() || !_cubic.getOwner().isOnline())
|
||||
{
|
||||
_cubic.stopAction();
|
||||
_cubic.getOwner().getCubics().remove(_cubic.getId());
|
||||
_cubic.getOwner().broadcastUserInfo();
|
||||
_cubic.cancelDisappear();
|
||||
return;
|
||||
}
|
||||
|
||||
// The cubic has already reached its limit and it will stay idle until its duration ends.
|
||||
if ((_cubic.getCubicMaxCount() > -1) && (_currentCount.get() >= _cubic.getCubicMaxCount()))
|
||||
{
|
||||
_cubic.stopAction();
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (!AttackStanceTaskManager.getInstance().hasAttackStanceTask(_cubic.getOwner()))
|
||||
{
|
||||
if (_cubic.getOwner().hasSummon())
|
||||
{
|
||||
for (L2Summon servitor : _cubic.getOwner().getServitors().values())
|
||||
{
|
||||
if (!AttackStanceTaskManager.getInstance().hasAttackStanceTask(servitor))
|
||||
{
|
||||
_cubic.stopAction();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_cubic.stopAction();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (Rnd.get(1, 100) < _chance)
|
||||
{
|
||||
Skill skill = null;
|
||||
for (Skill sk : _cubic.getSkills())
|
||||
{
|
||||
if ((sk.getId() == L2CubicInstance.SKILL_KNIGHT_CUBIC) || (sk.getId() == L2CubicInstance.SKILL_GUARDIAN_CUBIC))
|
||||
{
|
||||
skill = sk;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
final L2Character owner = _cubic.getOwner();
|
||||
|
||||
if (skill != null)
|
||||
{
|
||||
skill.activateSkill(owner, owner);
|
||||
owner.broadcastPacket(new MagicSkillUse(owner, owner, skill.getId(), skill.getLevel(), 0, 0));
|
||||
// The cubic has done an action, increase the current count
|
||||
_currentCount.incrementAndGet();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.log(Level.SEVERE, "", e);
|
||||
}
|
||||
}
|
||||
}
|
@ -18,6 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.model.actor.tasks.cubics;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -25,6 +26,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2CubicInstance;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
|
||||
import com.l2jserver.util.Rnd;
|
||||
|
||||
/**
|
||||
* Cubic heal task.
|
||||
@ -34,6 +36,7 @@ public class CubicHeal implements Runnable
|
||||
{
|
||||
private static final Logger _log = Logger.getLogger(CubicHeal.class.getName());
|
||||
private final L2CubicInstance _cubic;
|
||||
private final AtomicInteger _currentCount = new AtomicInteger();
|
||||
|
||||
public CubicHeal(L2CubicInstance cubic)
|
||||
{
|
||||
@ -57,23 +60,104 @@ public class CubicHeal implements Runnable
|
||||
return;
|
||||
}
|
||||
|
||||
// The cubic has already reached its limit and it will stay idle until its duration ends.
|
||||
if ((_cubic.getCubicMaxCount() > -1) && (_currentCount.get() >= _cubic.getCubicMaxCount()))
|
||||
{
|
||||
_cubic.stopAction();
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
final Skill skill = _cubic.getSkills().stream().filter(s -> s.getId() == L2CubicInstance.SKILL_CUBIC_HEAL).findFirst().orElse(null);
|
||||
if (skill == null)
|
||||
Skill skill = null;
|
||||
// Base chance 10% to use great skill
|
||||
double chance = Rnd.get();
|
||||
for (Skill sk : _cubic.getSkills())
|
||||
{
|
||||
return;
|
||||
switch (sk.getId())
|
||||
{
|
||||
case L2CubicInstance.SKILL_CUBIC_HEAL:
|
||||
case L2CubicInstance.SKILL_CUBIC_HEALER:
|
||||
skill = sk;
|
||||
break;
|
||||
case L2CubicInstance.SKILL_BUFF_CUBIC_HEAL:
|
||||
if (chance > 0.6)
|
||||
{
|
||||
skill = sk;
|
||||
}
|
||||
break;
|
||||
case L2CubicInstance.SKILL_MIND_CUBIC_RECHARGE:
|
||||
if ((chance > 0.2) && (chance <= 0.6))
|
||||
{
|
||||
skill = sk;
|
||||
}
|
||||
break;
|
||||
case L2CubicInstance.SKILL_BUFF_CUBIC_GREAT_HEAL:
|
||||
if ((chance > 0.1) && (chance <= 0.2))
|
||||
{
|
||||
skill = sk;
|
||||
}
|
||||
break;
|
||||
case L2CubicInstance.SKILL_MIND_CUBIC_GREAT_RECHARGE:
|
||||
if (chance <= 0.1)
|
||||
{
|
||||
skill = sk;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (skill != null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
_cubic.cubicTargetForHeal();
|
||||
final L2Character target = _cubic.getTarget();
|
||||
if ((target != null) && !target.isDead())
|
||||
if (skill != null)
|
||||
{
|
||||
if ((target.getMaxHp() - target.getCurrentHp()) > skill.getPower())
|
||||
switch (skill.getId())
|
||||
{
|
||||
skill.activateSkill(_cubic, target);
|
||||
|
||||
_cubic.getOwner().broadcastPacket(new MagicSkillUse(_cubic.getOwner(), target, skill.getId(), skill.getLevel(), 0, 0));
|
||||
case L2CubicInstance.SKILL_CUBIC_HEAL:
|
||||
_cubic.cubicTargetForHeal();
|
||||
final L2Character target = _cubic.getTarget();
|
||||
if ((target != null) && !target.isDead())
|
||||
{
|
||||
if ((target.getMaxHp() - target.getCurrentHp()) > skill.getPower())
|
||||
{
|
||||
skill.activateSkill(_cubic.getOwner(), target);
|
||||
_cubic.getOwner().broadcastPacket(new MagicSkillUse(_cubic.getOwner(), target, skill.getId(), skill.getLevel(), 0, 0));
|
||||
// The cubic has done an action, increase the current count
|
||||
_currentCount.incrementAndGet();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case L2CubicInstance.SKILL_MIND_CUBIC_RECHARGE:
|
||||
case L2CubicInstance.SKILL_MIND_CUBIC_GREAT_RECHARGE:
|
||||
final L2Character owner = _cubic.getOwner();
|
||||
if ((owner != null) && !owner.isDead())
|
||||
{
|
||||
if ((owner.getMaxMp() - owner.getCurrentMp()) > skill.getPower())
|
||||
{
|
||||
skill.activateSkill(owner, owner);
|
||||
owner.broadcastPacket(new MagicSkillUse(owner, owner, skill.getId(), skill.getLevel(), 0, 0));
|
||||
// The cubic has done an action, increase the current count
|
||||
_currentCount.incrementAndGet();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case L2CubicInstance.SKILL_CUBIC_HEALER:
|
||||
case L2CubicInstance.SKILL_BUFF_CUBIC_HEAL:
|
||||
case L2CubicInstance.SKILL_BUFF_CUBIC_GREAT_HEAL:
|
||||
final L2Character _owner = _cubic.getOwner();
|
||||
if ((_owner != null) && !_owner.isDead())
|
||||
{
|
||||
if ((_owner.getMaxHp() - _owner.getCurrentHp()) > skill.getPower())
|
||||
{
|
||||
skill.activateSkill(_owner, _owner);
|
||||
_owner.broadcastPacket(new MagicSkillUse(_owner, _owner, skill.getId(), skill.getLevel(), 0, 0));
|
||||
// The cubic has done an action, increase the current count
|
||||
_currentCount.incrementAndGet();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -505,6 +505,9 @@ public class EnterWorld extends L2GameClientPacket
|
||||
}
|
||||
}
|
||||
|
||||
// Temp Fix
|
||||
activeChar.broadcastUserInfo();
|
||||
|
||||
activeChar.sendPacket(SystemMessageId.WELCOME_TO_THE_WORLD_OF_LINEAGE_II);
|
||||
|
||||
AnnouncementsTable.getInstance().showAnnouncements(activeChar);
|
||||
|
@ -1,64 +0,0 @@
|
||||
/*
|
||||
* 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.network.serverpackets;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author KenM
|
||||
*/
|
||||
public class ExGetBossRecord extends L2GameServerPacket
|
||||
{
|
||||
private final Map<Integer, Integer> _bossRecordInfo;
|
||||
private final int _ranking;
|
||||
private final int _totalPoints;
|
||||
|
||||
public ExGetBossRecord(int ranking, int totalScore, Map<Integer, Integer> list)
|
||||
{
|
||||
_ranking = ranking;
|
||||
_totalPoints = totalScore;
|
||||
_bossRecordInfo = list;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeImpl()
|
||||
{
|
||||
writeC(0xFE);
|
||||
writeH(0x34);
|
||||
writeD(_ranking);
|
||||
writeD(_totalPoints);
|
||||
if (_bossRecordInfo == null)
|
||||
{
|
||||
writeD(0x00);
|
||||
writeD(0x00);
|
||||
writeD(0x00);
|
||||
writeD(0x00);
|
||||
}
|
||||
else
|
||||
{
|
||||
writeD(_bossRecordInfo.size()); // list size
|
||||
for (int bossId : _bossRecordInfo.keySet())
|
||||
{
|
||||
writeD(bossId);
|
||||
writeD(_bossRecordInfo.get(bossId));
|
||||
writeD(0x00); // ??
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -86,6 +86,10 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
|
||||
{
|
||||
addComponentType(UserInfoType.values());
|
||||
}
|
||||
// Visual Fix
|
||||
_activeChar.sendPacket(new ExUserInfoEquipSlot(_activeChar));
|
||||
_activeChar.sendPacket(new ExUserInfoCubic(_activeChar));
|
||||
_activeChar.sendPacket(new ExUserInfoAbnormalVisualEffect(_activeChar));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user