diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java index 9eacb2421a..cdb7d1f146 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -119,6 +119,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("DeleteTopAgro", DeleteTopAgro::new); EffectHandler.getInstance().registerHandler("DetectHiddenObjects", DetectHiddenObjects::new); EffectHandler.getInstance().registerHandler("Detection", Detection::new); + EffectHandler.getInstance().registerHandler("DisableSkill", DisableSkill::new); EffectHandler.getInstance().registerHandler("DisableTargeting", DisableTargeting::new); EffectHandler.getInstance().registerHandler("Disarm", Disarm::new); EffectHandler.getInstance().registerHandler("Disarmor", Disarmor::new); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java new file mode 100644 index 0000000000..942cf72c52 --- /dev/null +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java @@ -0,0 +1,80 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program 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. + * + * This program 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 . + */ +package handlers.effecthandlers; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.StatsSet; +import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; +import org.l2jmobius.gameserver.model.skills.Skill; + +/** + * @author Ofelin + */ +public class DisableSkill extends AbstractEffect +{ + private final Set disableSkills; + private Skill knownSKill; + + public DisableSkill(StatsSet params) + { + String disable = params.getString("disable"); + if ((disable != null) && !disable.isEmpty()) + { + disableSkills = new HashSet<>(); + for (String slot : disable.split(";")) + { + disableSkills.add(Integer.parseInt(slot)); + } + } + else + { + disableSkills = Collections. emptySet(); + } + } + + @Override + public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item) + { + for (int disableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(disableSkillId); + if (knownSKill != null) + { + effected.disableSkill(knownSKill, 0); + + } + } + } + + @Override + public void onExit(Creature effector, Creature effected, Skill skill) + { + for (int enableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(enableSkillId); + if (knownSKill != null) + { + effected.enableSkill(knownSKill); + } + } + } +} diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/10500-10599.xml index 164f8edf42..40b047714c 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/10500-10599.xml @@ -1842,13 +1842,14 @@ 93 T 5 - 1 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/10600-10699.xml index fafcb5fb3f..cbae151340 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/10600-10699.xml @@ -28,6 +28,18 @@ 0 90 + + + {0.6 + 0.4 * subIndex} + + PER + + + + {0.6 + 0.4 * subIndex} + + PER + @@ -194,6 +206,21 @@ 90 + + + {0.6 + 0.4 * subIndex} + + PER + + + + {0.6 + 0.4 * subIndex} + + PER + + + 10517 + diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/documentation.txt index 3dd6a1e7be..d480168313 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/documentation.txt @@ -89,6 +89,7 @@ DeleteHateOfMe: Has a chance to delete target's hate towards you. DeleteTopAgro: Has a chance to delete target's most hated from the list. DetectHiddenObjects: Finds hidden doors Detection: Detects hidden creatures. +DisableSkill: Disables effectors known skills specified by skill ID. (l2jmobius) DisableTargeting: Disables your target's ability to target. Disarm: Removes the weapon of target player. Disarmor: Removes the armor of target player. diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/skills.xsd b/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/skills.xsd index 7ba176053f..7c7c394648 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/skills.xsd +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/skills.xsd @@ -451,29 +451,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + @@ -1961,11 +1939,27 @@ + + + + + + + + + + + + + + + + @@ -2034,21 +2028,6 @@ - - - - - - - - - - - - - - - diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java index 9eacb2421a..cdb7d1f146 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -119,6 +119,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("DeleteTopAgro", DeleteTopAgro::new); EffectHandler.getInstance().registerHandler("DetectHiddenObjects", DetectHiddenObjects::new); EffectHandler.getInstance().registerHandler("Detection", Detection::new); + EffectHandler.getInstance().registerHandler("DisableSkill", DisableSkill::new); EffectHandler.getInstance().registerHandler("DisableTargeting", DisableTargeting::new); EffectHandler.getInstance().registerHandler("Disarm", Disarm::new); EffectHandler.getInstance().registerHandler("Disarmor", Disarmor::new); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java new file mode 100644 index 0000000000..942cf72c52 --- /dev/null +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java @@ -0,0 +1,80 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program 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. + * + * This program 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 . + */ +package handlers.effecthandlers; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.StatsSet; +import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; +import org.l2jmobius.gameserver.model.skills.Skill; + +/** + * @author Ofelin + */ +public class DisableSkill extends AbstractEffect +{ + private final Set disableSkills; + private Skill knownSKill; + + public DisableSkill(StatsSet params) + { + String disable = params.getString("disable"); + if ((disable != null) && !disable.isEmpty()) + { + disableSkills = new HashSet<>(); + for (String slot : disable.split(";")) + { + disableSkills.add(Integer.parseInt(slot)); + } + } + else + { + disableSkills = Collections. emptySet(); + } + } + + @Override + public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item) + { + for (int disableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(disableSkillId); + if (knownSKill != null) + { + effected.disableSkill(knownSKill, 0); + + } + } + } + + @Override + public void onExit(Creature effector, Creature effected, Skill skill) + { + for (int enableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(enableSkillId); + if (knownSKill != null) + { + effected.enableSkill(knownSKill); + } + } + } +} diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/10500-10599.xml index b07413e804..bb5d430ecf 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/10500-10599.xml @@ -1848,13 +1848,14 @@ 93 T 5 - 1 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/10600-10699.xml index d67a6b183a..68281c30c5 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/10600-10699.xml @@ -218,6 +218,9 @@ PER + + 10517 + diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/documentation.txt index 3dd6a1e7be..d480168313 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/documentation.txt @@ -89,6 +89,7 @@ DeleteHateOfMe: Has a chance to delete target's hate towards you. DeleteTopAgro: Has a chance to delete target's most hated from the list. DetectHiddenObjects: Finds hidden doors Detection: Detects hidden creatures. +DisableSkill: Disables effectors known skills specified by skill ID. (l2jmobius) DisableTargeting: Disables your target's ability to target. Disarm: Removes the weapon of target player. Disarmor: Removes the armor of target player. diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/xsd/skills.xsd b/L2J_Mobius_2.5_Underground/dist/game/data/xsd/skills.xsd index 6b86811928..8800c5e0b6 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/xsd/skills.xsd +++ b/L2J_Mobius_2.5_Underground/dist/game/data/xsd/skills.xsd @@ -455,29 +455,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + @@ -2007,11 +1985,27 @@ + + + + + + + + + + + + + + + + @@ -2093,21 +2087,6 @@ - - - - - - - - - - - - - - - diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java index 9eacb2421a..cdb7d1f146 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -119,6 +119,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("DeleteTopAgro", DeleteTopAgro::new); EffectHandler.getInstance().registerHandler("DetectHiddenObjects", DetectHiddenObjects::new); EffectHandler.getInstance().registerHandler("Detection", Detection::new); + EffectHandler.getInstance().registerHandler("DisableSkill", DisableSkill::new); EffectHandler.getInstance().registerHandler("DisableTargeting", DisableTargeting::new); EffectHandler.getInstance().registerHandler("Disarm", Disarm::new); EffectHandler.getInstance().registerHandler("Disarmor", Disarmor::new); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java new file mode 100644 index 0000000000..942cf72c52 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java @@ -0,0 +1,80 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program 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. + * + * This program 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 . + */ +package handlers.effecthandlers; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.StatsSet; +import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; +import org.l2jmobius.gameserver.model.skills.Skill; + +/** + * @author Ofelin + */ +public class DisableSkill extends AbstractEffect +{ + private final Set disableSkills; + private Skill knownSKill; + + public DisableSkill(StatsSet params) + { + String disable = params.getString("disable"); + if ((disable != null) && !disable.isEmpty()) + { + disableSkills = new HashSet<>(); + for (String slot : disable.split(";")) + { + disableSkills.add(Integer.parseInt(slot)); + } + } + else + { + disableSkills = Collections. emptySet(); + } + } + + @Override + public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item) + { + for (int disableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(disableSkillId); + if (knownSKill != null) + { + effected.disableSkill(knownSKill, 0); + + } + } + } + + @Override + public void onExit(Creature effector, Creature effected, Skill skill) + { + for (int enableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(enableSkillId); + if (knownSKill != null) + { + effected.enableSkill(knownSKill); + } + } + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/10500-10599.xml index 14f8985b20..aafb64312b 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/10500-10599.xml @@ -1841,13 +1841,14 @@ 93 T 5 - 1 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/10600-10699.xml index d67a6b183a..68281c30c5 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/10600-10699.xml @@ -218,6 +218,9 @@ PER + + 10517 + diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/documentation.txt index 3dd6a1e7be..d480168313 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/documentation.txt @@ -89,6 +89,7 @@ DeleteHateOfMe: Has a chance to delete target's hate towards you. DeleteTopAgro: Has a chance to delete target's most hated from the list. DetectHiddenObjects: Finds hidden doors Detection: Detects hidden creatures. +DisableSkill: Disables effectors known skills specified by skill ID. (l2jmobius) DisableTargeting: Disables your target's ability to target. Disarm: Removes the weapon of target player. Disarmor: Removes the armor of target player. diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/xsd/skills.xsd b/L2J_Mobius_3.0_Helios/dist/game/data/xsd/skills.xsd index a9fb270727..9d5976986e 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/xsd/skills.xsd +++ b/L2J_Mobius_3.0_Helios/dist/game/data/xsd/skills.xsd @@ -455,29 +455,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + @@ -2039,11 +2017,27 @@ + + + + + + + + + + + + + + + + @@ -2124,21 +2118,6 @@ - - - - - - - - - - - - - - - diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java index dbd8ce0ea3..ab5e8d462d 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -123,6 +123,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("DeleteTopAgro", DeleteTopAgro::new); EffectHandler.getInstance().registerHandler("DetectHiddenObjects", DetectHiddenObjects::new); EffectHandler.getInstance().registerHandler("Detection", Detection::new); + EffectHandler.getInstance().registerHandler("DisableSkill", DisableSkill::new); EffectHandler.getInstance().registerHandler("DisableTargeting", DisableTargeting::new); EffectHandler.getInstance().registerHandler("Disarm", Disarm::new); EffectHandler.getInstance().registerHandler("Disarmor", Disarmor::new); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java new file mode 100644 index 0000000000..942cf72c52 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java @@ -0,0 +1,80 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program 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. + * + * This program 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 . + */ +package handlers.effecthandlers; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.StatsSet; +import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; +import org.l2jmobius.gameserver.model.skills.Skill; + +/** + * @author Ofelin + */ +public class DisableSkill extends AbstractEffect +{ + private final Set disableSkills; + private Skill knownSKill; + + public DisableSkill(StatsSet params) + { + String disable = params.getString("disable"); + if ((disable != null) && !disable.isEmpty()) + { + disableSkills = new HashSet<>(); + for (String slot : disable.split(";")) + { + disableSkills.add(Integer.parseInt(slot)); + } + } + else + { + disableSkills = Collections. emptySet(); + } + } + + @Override + public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item) + { + for (int disableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(disableSkillId); + if (knownSKill != null) + { + effected.disableSkill(knownSKill, 0); + + } + } + } + + @Override + public void onExit(Creature effector, Creature effected, Skill skill) + { + for (int enableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(enableSkillId); + if (knownSKill != null) + { + effected.enableSkill(knownSKill); + } + } + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/10500-10599.xml index f7ac53b3e4..555924dc29 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/10500-10599.xml @@ -1914,13 +1914,14 @@ 93 T 5 - 1 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/10600-10699.xml index 4cb11fec72..a82c0bdfa0 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/10600-10699.xml @@ -218,6 +218,9 @@ PER + + 10517 + diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/19300-19399.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/19300-19399.xml index a525ba3be2..0c0155ae19 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/19300-19399.xml +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/19300-19399.xml @@ -397,6 +397,7 @@ icon.skill19307 669 A2 + DWARF_BUFF 1 60 SELF @@ -425,7 +426,7 @@ icon.skill19308 669 A2 - BIG_HEAD + DWARF_BUFF BIG_HEAD 1 60 diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt index 723f9765bf..9bd91e0781 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt @@ -93,6 +93,7 @@ DeleteHateOfMe: Has a chance to delete target's hate towards you. DeleteTopAgro: Has a chance to delete target's most hated from the list. DetectHiddenObjects: Finds hidden doors Detection: Detects hidden creatures. +DisableSkill: Disables effectors known skills specified by skill ID. (l2jmobius) DisableTargeting: Disables your target's ability to target. Disarm: Removes the weapon of target player. Disarmor: Removes the armor of target player. diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/skills.xsd b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/skills.xsd index 00a8763327..6bda244bdf 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/skills.xsd +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/skills.xsd @@ -457,29 +457,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + @@ -2055,11 +2033,27 @@ + + + + + + + + + + + + + + + + @@ -2115,21 +2109,6 @@ - - - - - - - - - - - - - - - @@ -2431,7 +2410,6 @@ - @@ -2568,7 +2546,6 @@ - @@ -2587,7 +2564,6 @@ - @@ -2606,21 +2582,7 @@ - - - - - - - - - - - - - - - + @@ -2705,21 +2667,7 @@ - - - - - - - - - - - - - - - + diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10000-10099.xml index 97b034b508..0d58189873 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10000-10099.xml @@ -1414,13 +1414,8 @@ NONE 0 300000 - TARGET + SELF SINGLE - - - false - - @@ -1435,13 +1430,11 @@ PER - - 10022 1 - + diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10500-10599.xml index ba3442a1f5..336a1a5c4f 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10500-10599.xml @@ -1914,13 +1914,14 @@ 93 T 5 - 1 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10600-10699.xml index e107e4049c..a65e42444b 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/10600-10699.xml @@ -218,6 +218,9 @@ PER + + 10517 + diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/19300-19399.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/19300-19399.xml index ffb50b154f..650115923c 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/19300-19399.xml +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/19300-19399.xml @@ -400,6 +400,7 @@ icon.skill19307 669 A2 + DWARF_BUFF 1 60 SELF @@ -428,7 +429,7 @@ icon.skill19308 669 A2 - BIG_HEAD + DWARF_BUFF BIG_HEAD 1 60 diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10000-10099.xml index 3edba36844..120ba826c3 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10000-10099.xml @@ -1414,13 +1414,8 @@ NONE 0 300000 - TARGET + SELF SINGLE - - - false - - @@ -1435,13 +1430,11 @@ PER - - 10022 1 - + diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10500-10599.xml index 8febc5829b..662c71b25d 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10500-10599.xml @@ -1914,13 +1914,14 @@ 93 T 5 - 1 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10600-10699.xml index 8e7ec01afb..dd8ce5d003 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/10600-10699.xml @@ -218,6 +218,9 @@ PER + + 10517 + diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/19300-19399.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/19300-19399.xml index 3ecf536a82..63e676fb86 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/19300-19399.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/19300-19399.xml @@ -400,6 +400,7 @@ icon.skill19307 669 A2 + DWARF_BUFF 1 60 SELF @@ -428,7 +429,7 @@ icon.skill19308 669 A2 - BIG_HEAD + DWARF_BUFF BIG_HEAD 1 60 diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10000-10099.xml index 0607d23528..1046391cd0 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10000-10099.xml @@ -1477,13 +1477,8 @@ NONE 0 300000 - TARGET + SELF SINGLE - - - false - - @@ -1498,13 +1493,11 @@ PER - - 10022 1 - + diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10500-10599.xml index e676e6d345..f6b5122ecf 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10500-10599.xml @@ -2057,13 +2057,14 @@ 93 T 5 - 100 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10600-10699.xml index 0dbba3840a..42062edc31 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/10600-10699.xml @@ -218,6 +218,9 @@ PER + + 10517 + diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/19300-19399.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/19300-19399.xml index 07964c6178..500b996748 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/19300-19399.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/19300-19399.xml @@ -428,6 +428,7 @@ icon.skill19307 669 A2 + DWARF_BUFF 1 60 SELF @@ -456,7 +457,7 @@ icon.skill19308 669 A2 - BIG_HEAD + DWARF_BUFF BIG_HEAD 1 60 diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10000-10099.xml index 0e495defe6..51747311ba 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10000-10099.xml @@ -1445,7 +1445,7 @@ - + icon.skill10020 1 @@ -1477,13 +1477,8 @@ NONE 0 300000 - TARGET + SELF SINGLE - - - false - - @@ -1498,13 +1493,11 @@ PER - - 10022 1 - + diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10500-10599.xml index 4104904fcb..d1f2dfa449 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10500-10599.xml @@ -2057,13 +2057,14 @@ 93 T 5 - 100 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10600-10699.xml index bf13069444..8d809c7c08 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/10600-10699.xml @@ -218,6 +218,9 @@ PER + + 10517 + diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/19300-19399.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/19300-19399.xml index 0217b08786..12699b9b77 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/19300-19399.xml +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/19300-19399.xml @@ -428,6 +428,7 @@ icon.skill19307 669 A2 + DWARF_BUFF 1 60 SELF @@ -456,7 +457,7 @@ icon.skill19308 669 A2 - BIG_HEAD + DWARF_BUFF BIG_HEAD 1 60 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java index 6807903b42..b37ec95f47 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -119,6 +119,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("DeleteTopAgro", DeleteTopAgro::new); EffectHandler.getInstance().registerHandler("DetectHiddenObjects", DetectHiddenObjects::new); EffectHandler.getInstance().registerHandler("Detection", Detection::new); + EffectHandler.getInstance().registerHandler("DisableSkill", DisableSkill::new); EffectHandler.getInstance().registerHandler("DisableTargeting", DisableTargeting::new); EffectHandler.getInstance().registerHandler("Disarm", Disarm::new); EffectHandler.getInstance().registerHandler("Disarmor", Disarmor::new); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java new file mode 100644 index 0000000000..942cf72c52 --- /dev/null +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/DisableSkill.java @@ -0,0 +1,80 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program 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. + * + * This program 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 . + */ +package handlers.effecthandlers; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.StatsSet; +import org.l2jmobius.gameserver.model.actor.Creature; +import org.l2jmobius.gameserver.model.effects.AbstractEffect; +import org.l2jmobius.gameserver.model.items.instance.ItemInstance; +import org.l2jmobius.gameserver.model.skills.Skill; + +/** + * @author Ofelin + */ +public class DisableSkill extends AbstractEffect +{ + private final Set disableSkills; + private Skill knownSKill; + + public DisableSkill(StatsSet params) + { + String disable = params.getString("disable"); + if ((disable != null) && !disable.isEmpty()) + { + disableSkills = new HashSet<>(); + for (String slot : disable.split(";")) + { + disableSkills.add(Integer.parseInt(slot)); + } + } + else + { + disableSkills = Collections. emptySet(); + } + } + + @Override + public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item) + { + for (int disableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(disableSkillId); + if (knownSKill != null) + { + effected.disableSkill(knownSKill, 0); + + } + } + } + + @Override + public void onExit(Creature effector, Creature effected, Skill skill) + { + for (int enableSkillId : disableSkills) + { + knownSKill = effected.getKnownSkill(enableSkillId); + if (knownSKill != null) + { + effected.enableSkill(knownSKill); + } + } + } +} diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10500-10599.xml index f7ac53b3e4..555924dc29 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10500-10599.xml @@ -1914,13 +1914,14 @@ 93 T 5 - 1 + 200 + 200 800 NONE - 20 - 5 + 100 + 1 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10600-10699.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10600-10699.xml index 4cb11fec72..a82c0bdfa0 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10600-10699.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10600-10699.xml @@ -218,6 +218,9 @@ PER + + 10517 + diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19300-19399.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19300-19399.xml index a525ba3be2..0c0155ae19 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19300-19399.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19300-19399.xml @@ -397,6 +397,7 @@ icon.skill19307 669 A2 + DWARF_BUFF 1 60 SELF @@ -425,7 +426,7 @@ icon.skill19308 669 A2 - BIG_HEAD + DWARF_BUFF BIG_HEAD 1 60 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt index 9db67429b2..7ca4d4eac3 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt @@ -89,6 +89,7 @@ DeleteHateOfMe: Has a chance to delete target's hate towards you. DeleteTopAgro: Has a chance to delete target's most hated from the list. DetectHiddenObjects: Finds hidden doors Detection: Detects hidden creatures. +DisableSkill: Disables effectors known skills specified by skill ID. (l2jmobius) DisableTargeting: Disables your target's ability to target. Disarm: Removes the weapon of target player. Disarmor: Removes the armor of target player. diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/skills.xsd b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/skills.xsd index 173deda22b..9ba9f1e323 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/skills.xsd +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/skills.xsd @@ -2018,11 +2018,27 @@ + + + + + + + + + + + + + + + + @@ -2079,21 +2095,6 @@ - - - - - - - - - - - - - - - @@ -2395,7 +2396,6 @@ - @@ -2532,7 +2532,6 @@ - @@ -2551,7 +2550,6 @@ - @@ -2570,21 +2568,7 @@ - - - - - - - - - - - - - - - + @@ -2669,21 +2653,7 @@ - - - - - - - - - - - - - - - +