From 82a814aadab8a2afdd073dc6127f955d71243686 Mon Sep 17 00:00:00 2001 From: Zoey76 <zoey_76@msn.com> Date: Tue, 12 Oct 2021 23:15:49 -0300 Subject: [PATCH] Updated skills to High Five Shadow Flare (1267) Seed of Fire (1285) Seed of Water (1286) Seed of Wind (1287) Aura Symphony (1288) Demon Wind (1291) Elemental Storm (1294) Wind Vortex (1341) Dark Vortex (1343) Wind Vortex Slug (1456) Empowering Echo (1457) Arcane Shield (1556) Note: Elemental Storm (1294) and Wind Vortex (1341) use new effect InstantMagicalAttackOverHit. Note: Dark Vortex (1343) had wrong values, custom stat and missing enchant route. Reported-by: wadsok, Petersen --- .../handlers/EffectMasterHandler.java | 3 +- .../instant/InstantMagicalAttackOverHit.java | 97 ++++++++++++++ .../data/stats/skills/01200-01299.xml | 126 ++++++++++-------- .../data/stats/skills/01300-01399.xml | 124 +++++++++++------ .../data/stats/skills/01400-01499.xml | 54 +++++--- .../data/stats/skills/01500-01599.xml | 6 +- src/main/resources/data/xsd/skills.xsd | 1 + 7 files changed, 293 insertions(+), 118 deletions(-) create mode 100644 src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/InstantMagicalAttackOverHit.java diff --git a/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java b/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java index 0680a4eea5..34e1ef1a40 100644 --- a/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java +++ b/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java @@ -147,7 +147,6 @@ public final class EffectMasterHandler { DispelAll.class, DispelByCategory.class, DispelBySlot.class, - InstantDispelBySlotMyself.class, DispelBySlotProbability.class, EnableCloak.class, EnergyAttack.class, @@ -178,7 +177,9 @@ public final class EffectMasterHandler { InstantCallTargetParty.class, InstantDespawn.class, InstantDispelByName.class, + InstantDispelBySlotMyself.class, InstantHpByLevelSelf.class, + InstantMagicalAttackOverHit.class, InstantMpByLevelSelf.class, Lethal.class, Lucky.class, diff --git a/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/InstantMagicalAttackOverHit.java b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/InstantMagicalAttackOverHit.java new file mode 100644 index 0000000000..9cdbf4d026 --- /dev/null +++ b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/InstantMagicalAttackOverHit.java @@ -0,0 +1,97 @@ +/* + * Copyright © 2004-2021 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 com.l2jserver.datapack.handlers.effecthandlers.instant; + +import static com.l2jserver.gameserver.enums.ShotType.BLESSED_SPIRITSHOTS; +import static com.l2jserver.gameserver.enums.ShotType.SPIRITSHOTS; +import static com.l2jserver.gameserver.model.effects.L2EffectType.MAGICAL_ATTACK; +import static com.l2jserver.gameserver.model.stats.Stats.VENGEANCE_SKILL_MAGIC_DAMAGE; + +import com.l2jserver.commons.util.Rnd; +import com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.actor.L2Attackable; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.effects.AbstractEffect; +import com.l2jserver.gameserver.model.effects.L2EffectType; +import com.l2jserver.gameserver.model.skills.BuffInfo; +import com.l2jserver.gameserver.model.stats.Formulas; + +/** + * Magical Attack Over Hit instant effect implementation. + * @author Zoey76 + * @version 2.6.3.0 + */ +public class InstantMagicalAttackOverHit extends AbstractEffect { + + private final double power; + + public InstantMagicalAttackOverHit(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) { + super(attachCond, applyCond, set, params); + power = params.getDouble("power", 0); + } + + @Override + public L2EffectType getEffectType() { + return MAGICAL_ATTACK; + } + + @Override + public boolean isInstant() { + return true; + } + + @Override + public void onStart(BuffInfo info) { + final var target = info.getEffected(); + final var activeChar = info.getEffector(); + final var skill = info.getSkill(); + + if (target.isPlayer() && target.getActingPlayer().isFakeDeath()) { + target.stopFakeDeath(true); + } + + final var spiritshots = skill.useSpiritShot() && activeChar.isChargedShot(SPIRITSHOTS); + final var blessedSpiritshots = skill.useSpiritShot() && activeChar.isChargedShot(BLESSED_SPIRITSHOTS); + final var magicalCriticalHit = Formulas.calcMCrit(activeChar.getMCriticalHit(target, skill)); + final var shieldUse = Formulas.calcShldUse(activeChar, target, skill); + final var magicalDamage = Formulas.calcMagicDam(activeChar, target, skill, shieldUse, spiritshots, blessedSpiritshots, magicalCriticalHit, power); + if (magicalDamage > 0) { + if (target.isAttackable()) { + ((L2Attackable) target).setOverhitValues(activeChar, magicalDamage); + ((L2Attackable) target).overhitEnabled(true); + } + + // Manage attack or cast break of the target (calculating rate, sending message...) + if (!target.isRaid() && Formulas.calcAtkBreak(target, magicalDamage)) { + target.breakAttack(); + target.breakCast(); + } + + // Shield Deflect Magic: Reflect all damage on caster. + if (target.getStat().calcStat(VENGEANCE_SKILL_MAGIC_DAMAGE, 0, target, skill) > Rnd.get(100)) { + activeChar.reduceCurrentHp(magicalDamage, target, skill); + activeChar.notifyDamageReceived(magicalDamage, target, skill, magicalCriticalHit, false, true); + } else { + target.reduceCurrentHp(magicalDamage, activeChar, skill); + target.notifyDamageReceived(magicalDamage, activeChar, skill, magicalCriticalHit, false, false); + activeChar.sendDamageMessage(target, (int) magicalDamage, magicalCriticalHit, false, false); + } + } + } +} diff --git a/src/main/resources/data/stats/skills/01200-01299.xml b/src/main/resources/data/stats/skills/01200-01299.xml index 2227384ba4..244680836d 100644 --- a/src/main/resources/data/stats/skills/01200-01299.xml +++ b/src/main/resources/data/stats/skills/01200-01299.xml @@ -2655,46 +2655,48 @@ </effects> </skill> <skill id="1267" levels="14" name="Shadow Flare" enchantGroup1="2" enchantGroup2="2" enchantGroup3="2"> + <!-- High Five Confirmed --> <table name="#effectPoint"> -474 -523 -571 -619 -665 -687 -708 -727 -746 -763 -779 -794 -807 -818 </table> + <table name="#instantMagicalAttackOverHitPower"> 65 73 81 89 98 102 107 111 115 119 123 127 131 135 </table> <table name="#magicLvl"> 40 44 48 52 56 58 60 62 64 66 68 70 72 74 </table> - <table name="#mpConsume2"> 35 39 43 47 51 53 55 58 59 61 63 65 67 68 </table> <table name="#mpConsume1"> 9 10 11 12 13 14 14 15 15 16 16 17 17 17 </table> - <table name="#power"> 65 73 81 89 98 102 107 111 115 119 123 127 131 135 </table> - <table name="#ench1Power"> 136 137 137 138 139 140 141 141 142 143 144 145 145 146 147 148 149 149 150 151 152 153 153 154 155 156 157 158 158 159 </table> - <table name="#ench2MpConsume2"> 67 66 65 64 63 62 61 60 59 58 57 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 </table> - <table name="#ench2MpConsume1"> 16 16 16 16 15 15 15 15 14 14 14 14 14 13 13 13 13 12 12 12 12 11 11 11 11 10 10 10 10 9 </table> - <table name="#enchAttributePower"> 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 </table> + <table name="#mpConsume2"> 35 39 43 47 51 53 55 58 59 61 63 65 67 68 </table> <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 </table> + <table name="#ench1InstantMagicalAttackOverHitPower"> 136 137 137 138 139 140 141 141 142 143 144 145 145 146 147 148 149 149 150 151 152 153 153 154 155 156 157 158 158 159 </table> + <table name="#ench2MpConsume1"> 16 16 16 15 15 15 15 14 14 14 13 13 13 13 12 12 12 11 11 11 11 10 10 10 9 9 9 8 8 8 </table> + <table name="#ench2MpConsume2"> 67 66 65 63 62 61 60 59 58 56 55 54 53 52 51 49 48 47 46 45 44 42 41 40 39 38 37 35 34 33 </table> + <table name="#ench3AttributePower"> 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 </table> + <set name="affectScope" val="SINGLE" /> + <set name="attributePower" val="20" /> + <set name="attributeType" val="UNHOLY" /> <set name="castRange" val="900" /> <set name="effectPoint" val="#effectPoint" /> <set name="effectRange" val="1400" /> - <set name="attributeType" val="UNHOLY" /> - <set name="attributePower" val="20" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="5000" /> <set name="icon" val="icon.skill1267" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="#magicLvl" /> - <set name="mpConsume2" val="#mpConsume2" /> <set name="mpConsume1" val="#mpConsume1" /> + <set name="mpConsume2" val="#mpConsume2" /> <set name="operateType" val="A1" /> - <set name="overHit" val="true" /> <set name="reuseDelay" val="8000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> - <set name="targetType" val="ONE" /> + <set name="targetType" val="ENEMY" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> - <enchant3 name="attributePower" val="#enchAttributePower" /> + <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> + <enchant3 name="attributePower" val="#ench3AttributePower" /> <enchant3 name="magicLvl" val="#enchMagicLvl" /> <effects> - <effect name="MagicalAttack"> - <param power="#power" /> + <effect name="InstantMagicalAttackOverHit"> + <param power="#instantMagicalAttackOverHitPower" /> </effect> </effects> <enchant1Effects> - <effect name="MagicalAttack"> - <param power="#ench1Power" /> + <effect name="InstantMagicalAttackOverHit"> + <param power="#ench1InstantMagicalAttackOverHitPower" /> </effect> </enchant1Effects> </skill> @@ -3302,16 +3304,19 @@ </effects> </skill> <skill id="1285" levels="1" name="Seed of Fire"> + <!-- High Five Confirmed --> <set name="abnormalLvl" val="1" /> <set name="abnormalTime" val="600" /> <set name="abnormalType" val="HOLY_ATTACK" /> + <set name="affectScope" val="SINGLE" /> <set name="effectPoint" val="100" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="4000" /> <set name="icon" val="icon.skill1285" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="66" /> - <set name="mpConsume2" val="200" /> <set name="mpConsume1" val="50" /> + <set name="mpConsume2" val="200" /> <set name="operateType" val="A2" /> <set name="reuseDelay" val="2000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> @@ -3323,16 +3328,19 @@ </effects> </skill> <skill id="1286" levels="1" name="Seed of Water"> + <!-- High Five Confirmed --> <set name="abnormalLvl" val="1" /> <set name="abnormalTime" val="600" /> <set name="abnormalType" val="HOLY_ATTACK" /> + <set name="affectScope" val="SINGLE" /> <set name="effectPoint" val="100" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="4000" /> <set name="icon" val="icon.skill1286" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="66" /> - <set name="mpConsume2" val="200" /> <set name="mpConsume1" val="50" /> + <set name="mpConsume2" val="200" /> <set name="operateType" val="A2" /> <set name="reuseDelay" val="2000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> @@ -3344,16 +3352,19 @@ </effects> </skill> <skill id="1287" levels="1" name="Seed of Wind"> + <!-- High Five Confirmed --> <set name="abnormalLvl" val="1" /> <set name="abnormalTime" val="600" /> <set name="abnormalType" val="HOLY_ATTACK" /> + <set name="affectScope" val="SINGLE" /> <set name="effectPoint" val="100" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="4000" /> <set name="icon" val="icon.skill1287" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="66" /> - <set name="mpConsume2" val="200" /> <set name="mpConsume1" val="50" /> + <set name="mpConsume2" val="200" /> <set name="operateType" val="A2" /> <set name="reuseDelay" val="2000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> @@ -3365,28 +3376,31 @@ </effects> </skill> <skill id="1288" levels="1" name="Aura Symphony" enchantGroup1="2" enchantGroup2="2" enchantGroup3="2"> - <table name="#ench1Power"> 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 </table> - <table name="#ench2MpConsume2"> 196 193 190 186 182 180 176 173 170 166 162 160 156 153 150 146 142 140 136 133 130 126 122 120 116 113 110 106 102 100 </table> - <table name="#ench2MpConsume1"> 49 48 47 46 46 45 44 43 42 41 41 40 39 38 37 36 36 35 34 33 32 31 31 30 29 28 27 26 26 25 </table> - <table name="#enchDuel"> 151 153 155 157 159 161 163 165 167 169 170 172 174 176 178 180 182 184 186 188 189 191 193 195 197 199 201 203 205 207 </table> + <!-- High Five Confirmed --> <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 </table> + <table name="#ench1MagicalAttackPower"> 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 </table> + <table name="#ench2MpConsume1"> 49 48 47 46 45 45 44 43 42 41 40 40 39 38 37 36 35 35 34 33 32 31 30 30 29 28 27 26 25 25 </table> + <table name="#ench2MpConsume2"> 196 193 190 186 183 180 176 173 170 166 163 160 156 153 150 146 143 140 136 133 130 126 123 120 116 113 110 106 103 100 </table> + <table name="#ench3PvpMagicalAttackPower"> 151 153 155 157 159 161 163 165 167 169 170 172 174 176 178 180 182 184 186 188 189 191 193 195 197 199 201 203 205 207 </table> + <set name="affectScope" val="SINGLE" /> <set name="castRange" val="900" /> <set name="effectPoint" val="-4200" /> <set name="effectRange" val="1400" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="4000" /> <set name="icon" val="icon.skill1288" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="68" /> - <set name="mpConsume2" val="200" /> <set name="mpConsume1" val="50" /> + <set name="mpConsume2" val="200" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="300000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> - <set name="targetType" val="ONE" /> + <set name="targetType" val="ENEMY" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> + <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant3 name="magicLvl" val="#enchMagicLvl" /> <effects> <effect name="MagicalAttack"> @@ -3395,14 +3409,14 @@ </effects> <enchant1Effects> <effect name="MagicalAttack"> - <param power="#ench1Power" /> + <param power="#ench1MagicalAttackPower" /> </effect> </enchant1Effects> <enchant3Effects> </enchant3Effects> <enchant3pvpEffects> <effect name="MagicalAttack"> - <param power="#enchDuel" /> + <param power="#ench3PvpMagicalAttackPower" /> </effect> </enchant3pvpEffects> <enchant3pveEffects> @@ -3514,35 +3528,38 @@ </enchant1Effects> </skill> <skill id="1291" levels="1" name="Demon Wind" enchantGroup1="2" enchantGroup2="2" enchantGroup3="2"> - <table name="#ench1Power"> 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 </table> - <table name="#ench2MpConsume2"> 196 193 190 186 182 180 176 173 170 166 162 160 156 153 150 146 142 140 136 133 130 126 122 120 116 113 110 106 102 100 </table> - <table name="#ench2MpConsume1"> 49 48 47 46 46 45 44 43 42 41 41 40 39 38 37 36 36 35 34 33 32 31 31 30 29 28 27 26 26 25 </table> - <table name="#enchAttributePower"> 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 </table> + <!-- High Five Confirmed --> <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 </table> + <table name="#ench1MagicalAttackPower"> 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 </table> + <table name="#ench2MpConsume1"> 49 48 47 46 45 45 44 43 42 41 40 40 39 38 37 36 35 35 34 33 32 31 30 30 29 28 27 26 25 25 </table> + <table name="#ench2MpConsume2"> 196 193 190 186 183 180 176 173 170 166 163 160 156 153 150 146 143 140 136 133 130 126 123 120 116 113 110 106 103 100 </table> + <table name="#ench3AttributePower"> 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 </table> <set name="abnormalLvl" val="1" /> <set name="abnormalTime" val="120" /> <set name="abnormalType" val="HEAL_EFFECT_DOWN" /> + <set name="affectScope" val="SINGLE" /> + <set name="attributePower" val="20" /> + <set name="attributeType" val="WIND" /> <set name="castRange" val="900" /> <set name="effectPoint" val="-4200" /> <set name="effectRange" val="1400" /> - <set name="attributeType" val="WIND" /> - <set name="attributePower" val="20" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="4000" /> <set name="icon" val="icon.skill1291" /> <set name="isDebuff" val="true" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="70" /> - <set name="mpConsume2" val="200" /> <set name="mpConsume1" val="50" /> + <set name="mpConsume2" val="200" /> <set name="operateType" val="A2" /> <set name="reuseDelay" val="300000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> - <set name="targetType" val="ONE" /> + <set name="targetType" val="ENEMY" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> - <enchant3 name="attributePower" val="#enchAttributePower" /> + <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> + <enchant3 name="attributePower" val="#ench3AttributePower" /> <enchant3 name="magicLvl" val="#enchMagicLvl" /> <effects> <effect name="MagicalAttack"> @@ -3554,7 +3571,7 @@ </effects> <enchant1Effects> <effect name="MagicalAttack"> - <param power="#ench1Power" /> + <param power="#ench1MagicalAttackPower" /> </effect> <effect name="Debuff"> <mul stat="healEffect" val="0.5" /> @@ -3658,48 +3675,51 @@ </enchant3pveEffects> </skill> <skill id="1294" levels="1" name="Elemental Storm" enchantGroup1="2" enchantGroup2="2" enchantGroup3="2"> - <table name="#ench1Power"> 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 </table> - <table name="#ench2MpConsume2"> 196 193 190 186 182 180 176 173 170 166 162 160 156 153 150 146 142 140 136 133 130 126 122 120 116 113 110 106 102 100 </table> - <table name="#ench2MpConsume1"> 49 48 47 46 46 45 44 43 42 41 41 40 39 38 37 36 36 35 34 33 32 31 31 30 29 28 27 26 26 25 </table> - <table name="#enchDuel"> 201 203 205 206 208 210 211 213 215 216 218 220 221 223 225 226 228 230 231 233 235 236 238 240 241 243 245 246 248 250 </table> + <!-- High Five Confirmed --> <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 </table> + <table name="#ench1InstantMagicalAttackOverHitPower"> 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 </table> + <table name="#ench2MpConsume1"> 49 48 47 46 45 45 44 43 42 41 40 40 39 38 37 36 35 35 34 33 32 31 30 30 29 28 27 26 25 25 </table> + <table name="#ench2MpConsume2"> 196 193 190 186 183 180 176 173 170 166 163 160 156 153 150 146 143 140 136 133 130 126 123 120 116 113 110 106 103 100 </table> + <table name="#ench3InstantMagicalAttackOverHitPower"> 201 203 205 206 208 210 211 213 215 216 218 220 221 223 225 226 228 230 231 233 235 236 238 240 241 243 245 246 248 250 </table> + <set name="affectScope" val="SINGLE" /> <set name="castRange" val="900" /> <set name="effectPoint" val="-6000" /> <set name="effectRange" val="1400" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="4000" /> <set name="icon" val="icon.skill1294" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="72" /> - <set name="mpConsume2" val="200" /> <set name="mpConsume1" val="50" /> + <set name="mpConsume2" val="200" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="300000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> - <set name="targetType" val="ONE" /> + <set name="targetType" val="ENEMY" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> + <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant3 name="magicLvl" val="#enchMagicLvl" /> <effects> - <effect name="MagicalAttack"> + <effect name="InstantMagicalAttackOverHit"> <param power="200" /> </effect> </effects> <enchant1Effects> - <effect name="MagicalAttack"> - <param power="#ench1Power" /> + <effect name="InstantMagicalAttackOverHit"> + <param power="#ench1InstantMagicalAttackOverHitPower" /> </effect> </enchant1Effects> <enchant3Effects> </enchant3Effects> <enchant3pvpEffects> - <effect name="MagicalAttack"> - <param power="#enchDuel" /> + <effect name="InstantMagicalAttackOverHit"> + <param power="#ench3InstantMagicalAttackOverHitPower" /> </effect> </enchant3pvpEffects> <enchant3pveEffects> - <effect name="MagicalAttack"> + <effect name="InstantMagicalAttackOverHit"> <param power="200" /> </effect> </enchant3pveEffects> diff --git a/src/main/resources/data/stats/skills/01300-01399.xml b/src/main/resources/data/stats/skills/01300-01399.xml index 8e22cbfc3b..6e6aaae7a3 100644 --- a/src/main/resources/data/stats/skills/01300-01399.xml +++ b/src/main/resources/data/stats/skills/01300-01399.xml @@ -1279,67 +1279,87 @@ </enchant1Effects> </skill> <skill id="1341" levels="1" name="Wind Vortex" enchantGroup1="6" enchantGroup2="6" enchantGroup3="6" enchantGroup4="6"> - <table name="#ench1Power"> 147 147 148 148 148 149 149 149 150 150 151 151 151 152 152 </table> - <table name="#ench2MpConsume2"> 81 78 74 72 70 66 64 61 58 56 53 50 46 44 42 </table> - <table name="#ench2MpConsume1"> 20 19 19 18 17 17 16 15 14 14 13 12 12 11 10 </table> - <table name="#ench3ActivateRates"> 82 83 84 86 87 88 90 91 92 94 95 96 97 99 100 </table> - <table name="#ench4AttributePower"> 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 </table> + <!-- High Five Confirmed --> <table name="#enchMagicLvl"> 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table> + <table name="#ench1InstantMagicalAttackOverHitPower"> 147 147 148 148 148 149 149 149 150 150 151 151 151 152 152 </table> + <table name="#ench2MpConsume1"> 20 19 18 18 17 16 16 15 14 14 13 12 11 11 10 </table> + <table name="#ench2MpConsume2"> 81 78 75 72 70 67 64 61 58 56 53 50 47 44 42 </table> + <table name="#ench3ActivateRate"> 82 83 84 86 87 88 90 91 92 94 95 96 97 99 100 </table> + <table name="#ench4AttributePower"> 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 </table> <set name="abnormalLvl" val="1" /> <set name="abnormalTime" val="30" /> <set name="abnormalType" val="MULTI_DEBUFF_WIND" /> <set name="activateRate" val="80" /> + <set name="affectScope" val="SINGLE" /> + <set name="attributePower" val="20" /> + <set name="attributeType" val="WIND" /> <set name="basicProperty" val="MEN" /> <set name="castRange" val="900" /> <set name="effectPoint" val="-999" /> <set name="effectRange" val="1400" /> - <set name="attributeType" val="WIND" /> - <set name="attributePower" val="20" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="6000" /> <set name="icon" val="icon.skill1341" /> <set name="isDebuff" val="true" /> <set name="isMagic" val="1" /> <set name="lvlBonusRate" val="2" /> <set name="magicLvl" val="77" /> - <set name="mpConsume2" val="84" /> <set name="mpConsume1" val="21" /> + <set name="mpConsume2" val="84" /> <set name="operateType" val="A2" /> - <set name="overHit" val="true" /> <set name="reuseDelay" val="15000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> - <set name="targetType" val="ONE" /> + <set name="targetType" val="ENEMY" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> - <enchant3 name="activateRate" val="#ench3ActivateRates" /> + <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> + <enchant3 name="activateRate" val="#ench3ActivateRate" /> <enchant3 name="magicLvl" val="#enchMagicLvl" /> <enchant4 name="attributePower" val="#ench4AttributePower" /> <enchant4 name="magicLvl" val="#enchMagicLvl" /> <effects> - <effect name="MagicalAttack"> + <effect name="InstantMagicalAttackOverHit"> <param power="140" /> </effect> + <effect name="Debuff"> + <mul stat="pAtkSpd" val="0.9" /> + </effect> + <effect name="Debuff"> + <sub stat="windRes" val="20" /> + </effect> + <effect name="Debuff"> + <mul stat="mAtkSpd" val="0.7" /> + </effect> + <effect name="Debuff"> + <mul stat="runSpd" val="0.9" /> + </effect> <effect name="TickMp"> <param power="-12" /> <param ticks="5" /> - <mul stat="runSpd" val="0.9" /> - <mul stat="pAtkSpd" val="0.9" /> - <mul stat="mAtkSpd" val="0.7" /> - <sub stat="windRes" val="20" /> + <param mode="DIFF" /> </effect> </effects> <enchant1Effects> - <effect name="MagicalAttack"> - <param power="#ench1Power" /> + <effect name="InstantMagicalAttackOverHit"> + <param power="#ench1InstantMagicalAttackOverHitPower" /> + </effect> + <effect name="Debuff"> + <mul stat="pAtkSpd" val="0.9" /> + </effect> + <effect name="Debuff"> + <sub stat="windRes" val="20" /> + </effect> + <effect name="Debuff"> + <mul stat="mAtkSpd" val="0.7" /> + </effect> + <effect name="Debuff"> + <mul stat="runSpd" val="0.9" /> </effect> <effect name="TickMp"> <param power="-12" /> <param ticks="5" /> - <mul stat="runSpd" val="0.9" /> - <mul stat="pAtkSpd" val="0.9" /> - <mul stat="mAtkSpd" val="0.7" /> - <sub stat="windRes" val="20" /> + <param mode="DIFF" /> </effect> </enchant1Effects> </skill> @@ -1404,66 +1424,86 @@ </enchant1Effects> </skill> <skill id="1343" levels="1" name="Dark Vortex" enchantGroup1="6" enchantGroup2="6" enchantGroup3="6" enchantGroup4="6"> - <table name="#ench1Power"> 147 147 148 148 148 149 149 149 150 150 151 151 151 152 152 </table> - <table name="#ench2MpConsume2"> 81 78 74 72 70 66 64 61 58 56 53 50 46 44 42 </table> - <table name="#ench2MpConsume1"> 20 19 19 18 17 17 16 15 14 14 13 12 12 11 10 </table> - <table name="#ench3ActivateRates"> 82 83 84 86 87 88 90 91 92 94 95 96 97 99 100 </table> - <table name="#ench4AttributePower"> 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 </table> + <!-- High Five Confirmed --> <table name="#enchMagicLvl"> 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table> + <table name="#ench1HpDrainPower"> 147 147 148 148 148 149 149 149 150 150 151 151 151 152 152 </table> + <table name="#ench2MpConsume1"> 20 19 18 18 17 16 16 15 14 14 13 12 11 11 10 </table> + <table name="#ench2MpConsume2"> 81 78 75 72 70 67 64 61 58 56 53 50 47 44 42 </table> + <table name="#ench3ActivateRate"> 82 83 84 86 87 88 90 91 92 94 95 96 97 99 100 </table> + <table name="#ench3TickMpPower"> -12 -12 -11 -11 -11 -11 -11 -11 -11 -10 -10 -10 -10 -10 -10 </table> + <table name="#ench4AttributePower"> 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 </table> <set name="abnormalLvl" val="1" /> <set name="abnormalTime" val="30" /> <set name="abnormalType" val="MULTI_DEBUFF_UNHOLY" /> <set name="activateRate" val="80" /> + <set name="affectScope" val="SINGLE" /> + <set name="attributePower" val="20" /> + <set name="attributeType" val="UNHOLY" /> <set name="basicProperty" val="MEN" /> <set name="castRange" val="900" /> <set name="effectPoint" val="-993" /> <set name="effectRange" val="1400" /> - <set name="attributeType" val="UNHOLY" /> - <set name="attributePower" val="20" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="6000" /> <set name="icon" val="icon.skill1343" /> <set name="isDebuff" val="true" /> <set name="isMagic" val="1" /> <set name="lvlBonusRate" val="2" /> <set name="magicLvl" val="76" /> - <set name="mpConsume2" val="84" /> <set name="mpConsume1" val="21" /> + <set name="mpConsume2" val="84" /> <set name="operateType" val="A2" /> <set name="reuseDelay" val="15000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> - <set name="targetType" val="ONE" /> + <set name="targetType" val="ENEMY" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> - <enchant3 name="activateRate" val="#ench3ActivateRates" /> + <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> + <enchant3 name="activateRate" val="#ench3ActivateRate" /> <enchant3 name="magicLvl" val="#enchMagicLvl" /> <enchant4 name="attributePower" val="#ench4AttributePower" /> <enchant4 name="magicLvl" val="#enchMagicLvl" /> <effects> <effect name="HpDrain"> <param power="139" /> - <param drain="0.2" /> + <param drain="0.25" /> + </effect> + <effect name="Debuff"> + <sub stat="darkRes" val="30" /> </effect> <effect name="TickMp"> <param power="-12" /> <param ticks="5" /> - <sub stat="accCombat" val="6" /> - <sub stat="darkRes" val="30" /> + <param mode="DIFF" /> </effect> </effects> <enchant1Effects> <effect name="HpDrain"> - <param power="#ench1Power" /> - <param drain="0.2" /> + <param power="#ench1HpDrainPower" /> + <param drain="0.25" /> + </effect> + <effect name="Debuff"> + <sub stat="darkRes" val="30" /> </effect> <effect name="TickMp"> - <param power="-12" /> + <param power="-13" /> <param ticks="5" /> - <sub stat="accCombat" val="6" /> - <sub stat="darkRes" val="30" /> </effect> </enchant1Effects> + <enchant3Effects> + <effect name="HpDrain"> + <param power="139" /> + <param drain="0.25" /> + </effect> + <effect name="Debuff"> + <sub stat="darkRes" val="30" /> + </effect> + <effect name="TickMp"> + <param power="#ench3TickMpPower" /> + <param ticks="5" /> + </effect> + </enchant3Effects> </skill> <skill id="1344" levels="1" name="Mass Warrior Bane"> <!-- High Five Confirmed --> diff --git a/src/main/resources/data/stats/skills/01400-01499.xml b/src/main/resources/data/stats/skills/01400-01499.xml index b97f99ead1..de41490562 100644 --- a/src/main/resources/data/stats/skills/01400-01499.xml +++ b/src/main/resources/data/stats/skills/01400-01499.xml @@ -2387,46 +2387,49 @@ </enchant1Effects> </skill> <skill id="1456" levels="1" name="Wind Vortex Slug" enchantGroup1="6" enchantGroup2="6" enchantGroup3="6"> - <table name="#ench1Power"> 198 198 199 199 200 201 201 202 202 203 203 204 204 205 206 </table> - <table name="#ench2MpConsume2"> 82 80 77 74 72 69 66 62 60 57 54 50 48 46 42 </table> - <table name="#ench2MpConsume1"> 21 20 19 18 18 17 16 16 15 14 13 13 12 11 11 </table> - <table name="#ench3AttributePower"> 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 </table> + <!-- High Five Confirmed --> <table name="#enchMagicLvl"> 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table> + <table name="#ench1MagicalAttackPower"> 198 198 199 199 200 201 201 202 202 203 203 204 204 205 206 </table> + <table name="#ench2MpConsume1"> 20 20 19 18 18 17 16 15 15 14 13 12 12 11 10 </table> + <table name="#ench2MpConsume2"> 83 80 77 74 72 69 66 63 60 57 54 51 48 46 43 </table> + <table name="#ench3AttributePower"> 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 </table> + <set name="affectScope" val="SINGLE" /> + <set name="attributePower" val="20" /> + <set name="attributeType" val="WIND" /> <set name="castRange" val="900" /> <set name="effectPoint" val="-1009" /> <set name="effectRange" val="1400" /> - <set name="attributeType" val="WIND" /> - <set name="attributePower" val="20" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="2000" /> <set name="icon" val="icon.skill1456" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="79" /> - <set name="mpConsume2" val="80" /> - <set name="mpConsume1" val="28" /> + <set name="mpConsume1" val="22" /> + <set name="mpConsume2" val="86" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="15000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> - <set name="targetType" val="ONE" /> + <set name="targetType" val="ENEMY" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> + <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant3 name="attributePower" val="#ench3AttributePower" /> <enchant3 name="magicLvl" val="#enchMagicLvl" /> - <cond msgId="109"> - <target active_effect_id="1341" /> + <cond msgId="113" addName="1"> + <target checkAbnormal="MULTI_DEBUFF_WIND;1;true" /> </cond> <effects> - <effect name="MagicalAttack"> - <param power="195" /> - </effect> <effect name="DispelBySlot"> <param dispel="MULTI_DEBUFF_WIND,9" /> </effect> + <effect name="MagicalAttack"> + <param power="195" /> + </effect> </effects> <enchant1Effects> <effect name="MagicalAttack"> - <param power="#ench1Power" /> + <param power="#ench1MagicalAttackPower" /> </effect> <effect name="DispelBySlot"> <param dispel="MULTI_DEBUFF_WIND,9" /> @@ -2434,26 +2437,37 @@ </enchant1Effects> </skill> <skill id="1457" levels="1" name="Empowering Echo" enchantGroup1="5" enchantGroup2="5"> - <table name="#ench1AbnormalTimes"> 1240 1280 1320 1360 1400 1440 1480 1520 1560 1600 1640 1680 1720 1760 1800 </table> - <table name="#ench2MpConsume2"> 140 135 130 125 120 115 110 106 101 96 91 86 81 76 72 </table> + <!-- High Five Confirmed --> + <table name="#enchMagicLvl"> 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table> + <table name="#ench1AbnormalTime"> 1240 1280 1320 1360 1400 1440 1480 1520 1560 1600 1640 1680 1720 1760 1800 </table> + <table name="#ench2MpConsume1"> 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 </table> + <table name="#ench2MpConsume2"> 112 108 104 100 96 92 88 85 81 77 73 69 65 61 58 </table> <set name="abnormalLvl" val="1" /> <set name="abnormalTime" val="1200" /> <set name="abnormalType" val="MA_UP_SPECIAL" /> + <set name="affectScope" val="SINGLE" /> <set name="effectPoint" val="1" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="4000" /> <set name="icon" val="icon.skill1457" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="79" /> - <set name="mpConsume2" val="145" /> + <set name="mpConsume1" val="29" /> + <set name="mpConsume2" val="116" /> <set name="operateType" val="A2" /> <set name="reuseDelay" val="15000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="targetType" val="SELF" /> - <enchant1 name="abnormalTime" val="#ench1AbnormalTimes" /> + <enchant1 name="magicLvl" val="#enchMagicLvl" /> + <enchant1 name="abnormalTime" val="#ench1AbnormalTime" /> + <enchant2 name="magicLvl" val="#enchMagicLvl" /> + <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <effects> <effect name="Buff"> <mul stat="mAtk" val="1.25" /> + </effect> + <effect name="Buff"> <mul stat="magicalMpConsumeRate" val="1.35" /> </effect> </effects> diff --git a/src/main/resources/data/stats/skills/01500-01599.xml b/src/main/resources/data/stats/skills/01500-01599.xml index d1a8cbb3c5..c4c12290c4 100644 --- a/src/main/resources/data/stats/skills/01500-01599.xml +++ b/src/main/resources/data/stats/skills/01500-01599.xml @@ -2106,17 +2106,19 @@ <set name="abnormalTime" val="10" /> <set name="abnormalType" val="MP_SHIELD" /> <set name="abnormalVisualEffect" val="MP_SHIELD" /> + <set name="affectScope" val="SINGLE" /> <set name="effectPoint" val="138" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="1000" /> <set name="icon" val="icon.skill1556" /> <set name="isMagic" val="1" /> <set name="magicLvl" val="83" /> - <set name="mpConsume2" val="89" /> <set name="mpConsume1" val="23" /> + <set name="mpConsume2" val="89" /> <set name="operateType" val="A2" /> <set name="reuseDelay" val="300000" /> - <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="reuseDelayLock" val="true" /> + <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="targetType" val="SELF" /> <effects> <effect name="Buff"> diff --git a/src/main/resources/data/xsd/skills.xsd b/src/main/resources/data/xsd/skills.xsd index 5037ee129c..e8d039ecd0 100644 --- a/src/main/resources/data/xsd/skills.xsd +++ b/src/main/resources/data/xsd/skills.xsd @@ -587,6 +587,7 @@ <xs:enumeration value="InstantDispelByName" /> <xs:enumeration value="InstantDispelBySlotMyself" /> <xs:enumeration value="InstantHpByLevelSelf" /> + <xs:enumeration value="InstantMagicalAttackOverHit" /> <xs:enumeration value="InstantMpByLevelSelf" /> <xs:enumeration value="Lethal" /> <xs:enumeration value="Lucky" /> -- GitLab