diff --git a/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java b/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java index 0680a4eea50ce8331fd05e3fcad33136a1afcf02..34e1ef1a40e76d41a3ffbbffb1448a7426cc4285 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 0000000000000000000000000000000000000000..9cdbf4d02621198018f31a07da5677370f50593c --- /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 2227384ba4f7e5fb9c484f8bc12a6c823ca16ce8..244680836d8eb04e71419424798aca3e782e612e 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 8e22cbfc3b2a6ac49abc83ec407c539efcfff698..6e6aaae7a30ffbbab8a0c223276b8b2cedf32828 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 b97f99ead1290ffc24e7ca9066fd8366985a2eb0..de414905629d1689b0634627f3b78c1ba3ba763a 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 d1a8cbb3c5875fcb049dc5b7e6c3410c28bcaaba..c4c12290c487c56ad030b0321088d8ff754c3179 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 5037ee129cb697b38c96d093a5f0d36438a451f8..e8d039ecd0c567071a9a1e34d80f7c35f7c7876a 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" />