diff --git a/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java b/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java index 283167afab0a160c594e8b92217645f3b513eb60..0680a4eea50ce8331fd05e3fcad33136a1afcf02 100644 --- a/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java +++ b/src/main/java/com/l2jserver/datapack/handlers/EffectMasterHandler.java @@ -147,6 +147,7 @@ public final class EffectMasterHandler { DispelAll.class, DispelByCategory.class, DispelBySlot.class, + InstantDispelBySlotMyself.class, DispelBySlotProbability.class, EnableCloak.class, EnergyAttack.class, diff --git a/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/DispelBySlot.java b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/DispelBySlot.java index c48ae1a98cca671a365ef17c0f976991462eb1a1..ecfc247faa6705089bdad3dc6b5daa0356e9108f 100644 --- a/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/DispelBySlot.java +++ b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/DispelBySlot.java @@ -18,12 +18,13 @@ */ package com.l2jserver.datapack.handlers.effecthandlers.instant; +import static com.l2jserver.gameserver.model.effects.L2EffectType.DISPEL; +import static com.l2jserver.gameserver.model.skills.AbnormalType.TRANSFORM; + import java.util.Collections; import java.util.EnumMap; import java.util.Map; -import java.util.Map.Entry; -import com.l2jserver.gameserver.model.CharEffectList; import com.l2jserver.gameserver.model.StatsSet; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.conditions.Condition; @@ -36,9 +37,9 @@ import com.l2jserver.gameserver.model.skills.BuffInfo; * Dispel By Slot effect implementation. * @author Gnacik, Zoey76, Adry_85 */ -public final class DispelBySlot extends AbstractEffect { +public class DispelBySlot extends AbstractEffect { private final String _dispel; - private final Map<AbnormalType, Short> _dispelAbnormals; + private final Map<AbnormalType, Integer> _dispelAbnormals; public DispelBySlot(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) { super(attachCond, applyCond, set, params); @@ -46,18 +47,22 @@ public final class DispelBySlot extends AbstractEffect { _dispel = params.getString("dispel", null); if ((_dispel != null) && !_dispel.isEmpty()) { _dispelAbnormals = new EnumMap<>(AbnormalType.class); - for (String ngtStack : _dispel.split(";")) { - String[] ngt = ngtStack.split(","); - _dispelAbnormals.put(AbnormalType.valueOf(ngt[0]), Short.parseShort(ngt[1])); + for (var ngtStack : _dispel.split(";")) { + var ngt = ngtStack.split(","); + if (ngt.length > 1) { + _dispelAbnormals.put(AbnormalType.valueOf(ngt[0]), Integer.valueOf(ngt[1])); + } else { + _dispelAbnormals.put(AbnormalType.valueOf(ngt[0]), -1); + } } } else { - _dispelAbnormals = Collections.<AbnormalType, Short> emptyMap(); + _dispelAbnormals = Collections.<AbnormalType, Integer> emptyMap(); } } @Override public L2EffectType getEffectType() { - return L2EffectType.DISPEL; + return DISPEL; } @Override @@ -67,25 +72,18 @@ public final class DispelBySlot extends AbstractEffect { @Override public void onStart(BuffInfo info) { - if (_dispelAbnormals.isEmpty()) { - return; - } - - final L2Character effected = info.getEffected(); - final CharEffectList effectList = effected.getEffectList(); - // There is no need to iterate over all buffs, - // Just iterate once over all slots to dispel and get the buff with that abnormal if exists, - // Operation of O(n) for the amount of slots to dispel (which is usually small) and O(1) to get the buff. - for (Entry<AbnormalType, Short> entry : _dispelAbnormals.entrySet()) { + final var effected = getEffected(info); + final var effectList = effected.getEffectList(); + for (var entry : _dispelAbnormals.entrySet()) { // Dispel transformations (buff and by GM) - if ((entry.getKey() == AbnormalType.TRANSFORM)) { + if ((entry.getKey() == TRANSFORM)) { if (effected.isTransformed() || (effected.isPlayer() || (entry.getValue() == effected.getActingPlayer().getTransformationId()) || (entry.getValue() < 0))) { info.getEffected().stopTransformation(true); continue; } } - final BuffInfo toDispel = effectList.getBuffInfoByAbnormalType(entry.getKey()); + final var toDispel = effectList.getBuffInfoByAbnormalType(entry.getKey()); if (toDispel == null) { continue; } @@ -95,4 +93,8 @@ public final class DispelBySlot extends AbstractEffect { } } } + + protected L2Character getEffected(BuffInfo info) { + return info.getEffected(); + } } diff --git a/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/InstantDispelBySlotMyself.java b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/InstantDispelBySlotMyself.java new file mode 100644 index 0000000000000000000000000000000000000000..deed6f9796fcc2c2b3d833bdbb38ecd5616df0e3 --- /dev/null +++ b/src/main/java/com/l2jserver/datapack/handlers/effecthandlers/instant/InstantDispelBySlotMyself.java @@ -0,0 +1,41 @@ +/* + * 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 com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.actor.L2Character; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.skills.BuffInfo; + +/** + * Dispel By Slot Myself effect implementation. + * @author Zoey76 + * @version 2.6.3.0 + */ +public final class InstantDispelBySlotMyself extends DispelBySlot { + + public InstantDispelBySlotMyself(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) { + super(attachCond, applyCond, set, params); + } + + @Override + protected L2Character getEffected(BuffInfo info) { + return info.getEffector(); + } +} diff --git a/src/main/resources/data/stats/skills/00300-00399.xml b/src/main/resources/data/stats/skills/00300-00399.xml index 5a17dcd760bc4e1f0f6aab2696e660be6a9654b1..299c1f63647b57102f9b5c7ea5200427554d1646 100644 --- a/src/main/resources/data/stats/skills/00300-00399.xml +++ b/src/main/resources/data/stats/skills/00300-00399.xml @@ -882,13 +882,14 @@ </enchant1Effects> </skill> <skill id="322" levels="6" name="Shield Fortress" enchantGroup1="1" enchantGroup2="1"> + <!-- High Five Confirmed --> <table name="#magicLvl"> 64 66 68 70 72 74 </table> <table name="#mpConsume1"> 12 13 13 13 14 14 </table> <table name="#sDef"> 446 469 491 514 537 560 </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="#ench1sDef"> 565 569 573 577 582 586 590 594 599 603 607 611 616 620 624 628 632 637 641 645 649 654 658 662 666 671 675 679 683 688 </table> <table name="#ench2MpConsume1"> 13 13 13 12 12 12 11 11 11 10 10 10 9 9 9 8 8 8 7 7 7 6 6 6 5 5 5 4 4 4 </table> - <table name="#ench2val"> -0.79 -0.78 -0.78 -0.77 -0.76 -0.76 -0.75 -0.74 -0.74 -0.73 -0.72 -0.72 -0.71 -0.7 -0.7 -0.69 -0.68 -0.68 -0.67 -0.66 -0.66 -0.65 -0.64 -0.64 -0.63 -0.62 -0.62 -0.61 -0.6 -0.6 </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="#ench2ConsumeMpByLevelPower"> -0.59 -0.58 -0.58 -0.57 -0.56 -0.56 -0.55 -0.54 -0.54 -0.53 -0.52 -0.52 -0.51 -0.5 -0.5 -0.49 -0.48 -0.48 -0.47 -0.46 -0.46 -0.45 -0.44 -0.44 -0.43 -0.42 -0.42 -0.41 -0.4 -0.4 </table> <set name="abnormalVisualEffect" val="NONE" /> <set name="icon" val="icon.skill0322" /> <set name="magicLvl" val="#magicLvl" /> @@ -901,22 +902,28 @@ <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> <effects> <effect name="ConsumeMpByLevel"> - <param power="-0.8" /> + <param power="-0.6" /> <param ticks="5" /> + </effect> + <effect name="Buff"> <add stat="sDef" val="#sDef" /> </effect> </effects> <enchant1Effects> <effect name="ConsumeMpByLevel"> - <param power="-0.8" /> + <param power="-0.6" /> <param ticks="5" /> + </effect> + <effect name="Buff"> <add stat="sDef" val="#ench1sDef" /> </effect> </enchant1Effects> <enchant2Effects> <effect name="ConsumeMpByLevel"> - <param power="#ench2val" /> + <param power="#ench2ConsumeMpByLevelPower" /> <param ticks="5" /> + </effect> + <effect name="Buff"> <add stat="sDef" val="560" /> </effect> </enchant2Effects> diff --git a/src/main/resources/data/stats/skills/00700-00799.xml b/src/main/resources/data/stats/skills/00700-00799.xml index 2b3ebcc1880fcdea5ddb53dcd4b6d2a216211fc9..2511216f35ada87afad2af6677528881b3535497 100644 --- a/src/main/resources/data/stats/skills/00700-00799.xml +++ b/src/main/resources/data/stats/skills/00700-00799.xml @@ -2389,6 +2389,7 @@ <set name="chargeConsume" val="2" /> <set name="effectPoint" val="-679" /> <set name="effectRange" val="200" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="1200" /> <set name="icon" val="icon.skill0776" /> <set name="isDebuff" val="true" /> @@ -2414,6 +2415,7 @@ <effect name="TickHp"> <param power="-200" /> <param ticks="1" /> + <param mode="DIFF" /> </effect> </effects> </skill> diff --git a/src/main/resources/data/stats/skills/01200-01299.xml b/src/main/resources/data/stats/skills/01200-01299.xml index a487f62a6273a9d44c0c0d9cd85b6edd0e909323..0166e746b0dee59e4537e6f81567b9f461b722e7 100644 --- a/src/main/resources/data/stats/skills/01200-01299.xml +++ b/src/main/resources/data/stats/skills/01200-01299.xml @@ -2440,74 +2440,100 @@ </enchant1Effects> </skill> <skill id="1263" levels="13" name="Curse Gloom" enchantGroup1="1" enchantGroup2="1"> + <!-- High Five Confirmed --> <table name="#effectPoint"> -209 -229 -248 -266 -275 -283 -291 -299 -306 -312 -318 -323 -328 </table> <table name="#magicLvl"> 44 48 52 56 58 60 62 64 66 68 70 72 74 </table> - <table name="#mpConsume2"> 31 35 38 41 43 44 46 48 49 51 52 53 55 </table> + <table name="#magicalAttackPower"> 47 52 57 63 66 68 71 74 77 79 82 84 87 </table> <table name="#mpConsume1"> 8 9 10 11 11 11 12 12 13 13 13 14 14 </table> - <table name="#power"> 47 52 57 63 66 68 71 74 77 79 82 84 87 </table> + <table name="#mpConsume2"> 31 35 38 41 43 44 46 48 49 51 52 53 55 </table> <table name="#vuln"> 5 5 5 10 10 10 15 15 15 20 20 25 25 </table> - <table name="#ench1ActivateRates"> 90 91 92 92 93 94 94 95 96 96 97 98 98 99 100 100 101 102 102 103 104 104 105 106 106 107 108 108 109 110 </table> - <table name="#ench1Vuln"> 26 27 28 29 30 30 31 32 33 34 34 35 36 37 38 38 39 40 41 42 42 43 44 45 46 46 47 48 49 50 </table> - <table name="#ench2AbnormalTimes"> 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 </table> - <table name="#ench2MpConsume2"> 54 54 53 53 52 52 51 51 50 50 49 49 48 48 47 47 46 46 45 45 44 44 43 43 42 42 41 41 40 40 </table> - <table name="#ench2MpConsume1"> 13 13 13 13 13 13 12 12 12 12 12 12 12 12 11 11 11 11 11 11 11 11 10 10 10 10 10 10 10 10 </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="#ench1ActivateRate"> 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 </table> + <table name="#ench1Vuln"> 26 27 28 29 30 30 31 32 33 34 34 35 36 37 38 38 39 40 41 42 42 43 44 45 46 46 47 48 49 50 </table> + <table name="#ench2AbnormalTime"> 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 </table> + <table name="#ench2MpConsume1"> 13 13 13 12 12 12 12 11 11 11 11 11 10 10 10 10 9 9 9 9 8 8 8 8 8 7 7 7 7 6 </table> + <table name="#ench2MpConsume2"> 54 53 52 51 50 49 48 47 46 45 44 44 43 42 41 40 39 38 37 36 35 34 33 33 32 31 30 29 28 27 </table> <set name="abnormalLvl" val="3" /> <set name="abnormalTime" val="30" /> <set name="abnormalType" val="MD_DOWN" /> - <set name="activateRate" val="90" /> + <set name="activateRate" val="100" /> <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="#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="1500" /> <set name="icon" val="icon.skill1263" /> <set name="isDebuff" val="true" /> <set name="isMagic" val="1" /> <set name="lvlBonusRate" val="2" /> <set name="magicLvl" val="#magicLvl" /> - <set name="mpConsume2" val="#mpConsume2" /> <set name="mpConsume1" val="#mpConsume1" /> + <set name="mpConsume2" val="#mpConsume2" /> <set name="operateType" val="A2" /> <set name="reuseDelay" val="5000" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> <set name="targetType" val="ENEMY_ONLY" /> - <enchant1 name="activateRate" val="#ench1ActivateRates" /> + <enchant1 name="activateRate" val="#ench1ActivateRate" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="abnormalTime" val="#ench2AbnormalTimes" /> + <enchant2 name="abnormalTime" val="#ench2AbnormalTime" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> - <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <enchant2 name="mpConsume1" val="#ench2MpConsume1" /> + <enchant2 name="mpConsume2" val="#ench2MpConsume2" /> <effects> <effect name="MagicalAttack"> - <param power="#power" /> + <param power="#magicalAttackPower" /> </effect> <effect name="Debuff"> - <mul stat="mDef" val="0.85" /> - <sub stat="waterRes" val="#vuln" /> <sub stat="fireRes" val="#vuln" /> + </effect> + <effect name="Debuff"> + <sub stat="waterRes" val="#vuln" /> + </effect> + <effect name="Debuff"> <sub stat="windRes" val="#vuln" /> + </effect> + <effect name="Debuff"> <sub stat="earthRes" val="#vuln" /> + </effect> + <effect name="Debuff"> <sub stat="holyRes" val="#vuln" /> + </effect> + <effect name="Debuff"> <sub stat="darkRes" val="#vuln" /> </effect> + <effect name="Debuff"> + <mul stat="mDef" val="0.85" /> + </effect> </effects> <enchant1Effects> <effect name="MagicalAttack"> <param power="87" /> </effect> <effect name="Debuff"> - <mul stat="mDef" val="0.85" /> - <sub stat="waterRes" val="#ench1Vuln" /> <sub stat="fireRes" val="#ench1Vuln" /> + </effect> + <effect name="Debuff"> + <sub stat="waterRes" val="#ench1Vuln" /> + </effect> + <effect name="Debuff"> <sub stat="windRes" val="#ench1Vuln" /> + </effect> + <effect name="Debuff"> <sub stat="earthRes" val="#ench1Vuln" /> + </effect> + <effect name="Debuff"> <sub stat="holyRes" val="#ench1Vuln" /> + </effect> + <effect name="Debuff"> <sub stat="darkRes" val="#ench1Vuln" /> </effect> + <effect name="Debuff"> + <mul stat="mDef" val="0.85" /> + </effect> </enchant1Effects> </skill> <skill id="1264" levels="3" name="Solar Spark"> diff --git a/src/main/resources/data/stats/skills/01400-01499.xml b/src/main/resources/data/stats/skills/01400-01499.xml index 9b3b9fbc2fa93bc050d778bbb9d3ece92a4b7918..b97f99ead1290ffc24e7ca9066fd8366985a2eb0 100644 --- a/src/main/resources/data/stats/skills/01400-01499.xml +++ b/src/main/resources/data/stats/skills/01400-01499.xml @@ -969,22 +969,31 @@ </channelingEffects> </skill> <skill id="1424" levels="1" name="Anti-Summoning Field"> + <!-- High Five Confirmed --> + <set name="affectScope" val="SINGLE" /> <set name="blockedInOlympiad" val="true" /> <set name="castRange" val="900" /> + <set name="effectRange" val="1000" /> <set name="hitTime" val="5000" /> <set name="icon" val="icon.skill1424" /> <set name="isMagic" val="1" /> <set name="itemConsumeCount" val="1" /> - <set name="itemConsumeId" val="8876" /> <!-- Magic Symbol --> + <set name="itemConsumeId" val="8876" /> <set name="magicLvl" val="80" /> - <set name="mpConsume2" val="70" /> - <set name="mpConsume1" val="70" /> + <set name="mpConsume1" val="14" /> + <set name="mpConsume2" val="56" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="1800000" /> - <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="GROUND" /> + <cond msgId="113" addName="1"> + <player existNpc="13018,13019,13020,13021,13022,13023,13024;200;false" /> + </cond> <effects> + <effect name="InstantDispelBySlotMyself"> + <param dispel="MAGICAL_STANCE" /> + </effect> <effect name="SummonNpc"> <param npcId="13030" npcCount="1" /> </effect> diff --git a/src/main/resources/data/stats/skills/02400-02499.xml b/src/main/resources/data/stats/skills/02400-02499.xml index 7f5423736045dac4d7a282cc5794e802fb9be7fd..00fd3a1372ae9cd8784f3b5a3b7f6d5c05784184 100644 --- a/src/main/resources/data/stats/skills/02400-02499.xml +++ b/src/main/resources/data/stats/skills/02400-02499.xml @@ -1304,11 +1304,13 @@ </effects> </skill> <skill id="2461" levels="1" name="Force of Destruction"> - <!-- Confirmed CT2.5 --> + <!-- High Five Confirmed --> + <set name="affectScope" val="SINGLE" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="1500" /> <set name="isMagic" val="2" /> <set name="itemConsumeCount" val="1" /> - <set name="itemConsumeId" val="10569" /> <!-- Forgotten Scroll - Force of Destruction --> + <set name="itemConsumeId" val="10569" /> <set name="magicLvl" val="1" /> <set name="operateType" val="A1" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> @@ -1319,7 +1321,7 @@ <player active_skill_id="776" /> </not> <player class_id_restriction="114" /> - <player level="81" /> + <player level="83" /> </and> </cond> <effects> diff --git a/src/main/resources/data/stats/skills/02800-02899.xml b/src/main/resources/data/stats/skills/02800-02899.xml index 8cf233a75eee139c7deb646d4a8f11d32dbcc66a..3146963dc88a7296bef3c7b99da7dda7b7917848 100644 --- a/src/main/resources/data/stats/skills/02800-02899.xml +++ b/src/main/resources/data/stats/skills/02800-02899.xml @@ -371,11 +371,13 @@ </effects> </skill> <skill id="2815" levels="1" name="Force of Destruction"> - <!-- Confirmed CT2.5 --> + <!-- High Five Confirmed --> + <set name="affectScope" val="SINGLE" /> + <set name="hitCancelTime" val="500" /> <set name="hitTime" val="1500" /> <set name="isMagic" val="2" /> <set name="itemConsumeCount" val="1" /> - <set name="itemConsumeId" val="14182" /> <!-- Forgotten Scroll - Force of Destruction --> + <set name="itemConsumeId" val="14182" /> <set name="magicLvl" val="1" /> <set name="operateType" val="A1" /> <set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" /> diff --git a/src/main/resources/data/xsd/skills.xsd b/src/main/resources/data/xsd/skills.xsd index 1775f2cd58842cf3c17d3ed054690be12cb92e26..389b6b7a927f82ca4d61467d55d0c3f2ca6a5e57 100644 --- a/src/main/resources/data/xsd/skills.xsd +++ b/src/main/resources/data/xsd/skills.xsd @@ -156,6 +156,7 @@ <xs:attribute type="xs:string" name="categoryType" /> <xs:attribute type="xs:boolean" name="hasAgathion" /> <xs:attribute type="xs:int" name="agathionEnergy" /> + <xs:attribute type="xs:string" name="existNpc" /> </xs:extension> </xs:simpleContent> </xs:complexType> @@ -211,6 +212,16 @@ <xs:attribute type="xs:byte" name="addName" /> <xs:attribute type="xs:string" name="msg" /> </xs:complexType> + <xs:complexType name="conditionType"> + <xs:choice maxOccurs="unbounded" minOccurs="1"> + <xs:element name="conditionType" type="usingType" /> + </xs:choice> + </xs:complexType> + <xs:complexType name="conditionsType"> + <xs:choice maxOccurs="unbounded" minOccurs="1"> + <xs:element name="conditionType" type="usingType" /> + </xs:choice> + </xs:complexType> <xs:simpleType name="operation"> <xs:restriction base="xs:string"> <xs:enumeration value="DIFF" /> @@ -584,6 +595,7 @@ <xs:enumeration value="InstantCallTargetParty" /> <xs:enumeration value="InstantDespawn" /> <xs:enumeration value="InstantDispelByName" /> + <xs:enumeration value="InstantDispelBySlotMyself" /> <xs:enumeration value="InstantHpByLevelSelf" /> <xs:enumeration value="InstantMpByLevelSelf" /> <xs:enumeration value="Lethal" /> @@ -711,6 +723,7 @@ <xs:element name="enchant6" type="enchantType" /> <xs:element name="enchant7" type="enchantType" /> <xs:element name="enchant8" type="enchantType" /> + <xs:element name="condition" type="conditionType" /> <xs:element name="cond" type="condType" /> <xs:element name="effects" type="effectsType" /> <xs:element name="enchant1Effects" type="effectsType" />