From 61c0b985dd40f145d9fa70d82122f94be54b188b Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Mon, 14 Jun 2021 22:37:35 +0000
Subject: [PATCH] Addition of OpNotAffectedBySkill skill condition handler.
---
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
.../handlers/SkillConditionMasterHandler.java | 1 +
.../OpNotAffectedBySkillSkillCondition.java | 50 +++++++++++++++++++
38 files changed, 969 insertions(+)
create mode 100644 L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
create mode 100644 L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b65cefc240..4b24edc1fa 100644
--- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInCeremonyOfChaos", OpNotInCeremonyOfChaosSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index 0814aaaa2a..2d48a6300c 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index 0814aaaa2a..2d48a6300c 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index 0814aaaa2a..2d48a6300c 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index 0814aaaa2a..2d48a6300c 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index 0814aaaa2a..2d48a6300c 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index 0814aaaa2a..2d48a6300c 100644
--- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index 0814aaaa2a..2d48a6300c 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -98,6 +98,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b8414b80ab..4936b51fcf 100644
--- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -100,6 +100,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
index b8414b80ab..4936b51fcf 100644
--- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
+++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/SkillConditionMasterHandler.java
@@ -100,6 +100,7 @@ public class SkillConditionMasterHandler
SkillConditionHandler.getInstance().registerHandler("OpMainjob", OpMainjobSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedAgathion", OpNeedAgathionSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNeedSummonOrPet", OpNeedSummonOrPetSkillCondition::new);
+ SkillConditionHandler.getInstance().registerHandler("OpNotAffectedBySkill", OpNotAffectedBySkillSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotCursed", OpNotCursedSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInPeacezone", OpNotInPeacezoneSkillCondition::new);
SkillConditionHandler.getInstance().registerHandler("OpNotInstantzone", OpNotInstantzoneSkillCondition::new);
diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
new file mode 100644
index 0000000000..8b4902af36
--- /dev/null
+++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/skillconditionhandlers/OpNotAffectedBySkillSkillCondition.java
@@ -0,0 +1,50 @@
+/*
+ * 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.skillconditionhandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.skills.BuffInfo;
+import org.l2jmobius.gameserver.model.skills.ISkillCondition;
+import org.l2jmobius.gameserver.model.skills.Skill;
+
+/**
+ * @author Mobius
+ */
+public class OpNotAffectedBySkillSkillCondition implements ISkillCondition
+{
+ private final int _skillId;
+ private final int _skillLevel;
+
+ public OpNotAffectedBySkillSkillCondition(StatSet params)
+ {
+ _skillId = params.getInt("skillId", -1);
+ _skillLevel = params.getInt("skillLevel", -1);
+ }
+
+ @Override
+ public boolean canUse(Creature caster, Skill skill, WorldObject target)
+ {
+ final BuffInfo buffInfo = caster.getEffectList().getBuffInfoBySkillId(_skillId);
+ if (_skillLevel > 0)
+ {
+ return (buffInfo == null) || (buffInfo.getSkill().getLevel() < _skillLevel);
+ }
+ return buffInfo == null;
+ }
+}
\ No newline at end of file