From 031b05055666cc9e5f959ef1b08c78a1bdedea4e Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Mon, 7 Jun 2021 11:47:01 +0000
Subject: [PATCH] Addition of SetCp effect handler. Contributed by quangnguyen.
---
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../handlers/effecthandlers/SetCp.java | 59 +++++++++++++++++++
.../game/data/stats/skills/documentation.txt | 1 +
57 files changed, 1159 insertions(+)
create mode 100644 L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
create mode 100644 L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
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 97238978de..6bd54e335f 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
@@ -308,6 +308,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
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 3d80b12087..0cdd1d6218 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
@@ -277,6 +277,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
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 97238978de..6bd54e335f 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
@@ -308,6 +308,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
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 3d80b12087..0cdd1d6218 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
@@ -277,6 +277,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
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 97238978de..6bd54e335f 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
@@ -308,6 +308,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
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 3d80b12087..0cdd1d6218 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
@@ -277,6 +277,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
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 bf24b391b8..4c9606775d 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
@@ -313,6 +313,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
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 2d7db86519..23869a6496 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
@@ -282,6 +282,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 29c6a8f851..6e0c52680c 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -317,6 +317,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/documentation.txt
index 3700ae3089..15cf881a69 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/documentation.txt
@@ -286,6 +286,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java
index e3fe71bb1e..03cea40e60 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -318,6 +318,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/documentation.txt
index 21a78c25a6..d366b28b34 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/documentation.txt
@@ -287,6 +287,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java
index e3fe71bb1e..03cea40e60 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -318,6 +318,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/documentation.txt
index 21a78c25a6..d366b28b34 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/documentation.txt
@@ -287,6 +287,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 1b57b7250f..88c55db086 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -318,6 +318,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt
index aa38fbe909..9a447a29fd 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt
@@ -286,6 +286,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java
index cdf24a3595..f027134b2d 100644
--- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -319,6 +319,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_8.0_Homunculus/dist/game/data/stats/skills/documentation.txt
index 77c92b8847..05f003ff0a 100644
--- a/L2J_Mobius_8.0_Homunculus/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/stats/skills/documentation.txt
@@ -287,6 +287,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
index d56bf8fa99..b7187e803f 100644
--- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -319,6 +319,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt
index fd380f4b29..514f744eb1 100644
--- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt
@@ -287,6 +287,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 26fc48c913..29304d6826 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -304,6 +304,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt
index b00a68dfa3..8db99ecd26 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt
@@ -273,6 +273,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 26fc48c913..29304d6826 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -304,6 +304,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt
index b00a68dfa3..8db99ecd26 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt
@@ -273,6 +273,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java
index d05857031f..00880eb01e 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -305,6 +305,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt
index f802180616..51d044b9d2 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt
@@ -274,6 +274,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 8a7611b956..9db86e23f8 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -308,6 +308,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt
index 9d46ec24e0..8ee5827d54 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt
@@ -277,6 +277,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 8a7611b956..9db86e23f8 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -308,6 +308,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt
index 9d46ec24e0..8ee5827d54 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt
@@ -277,6 +277,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java
index b70bdeddb4..61d2c5c6aa 100644
--- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -310,6 +310,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt
index e487805be9..75db5eb6ad 100644
--- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt
@@ -279,6 +279,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
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 833c3dd255..0c90e99b6d 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
@@ -307,6 +307,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
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 9eb4376efe..4ccda026ed 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
@@ -275,6 +275,7 @@ SafeFallHeight: Minimum falling height for taking damage stat.
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java
index f8fc447bd3..fc731b9c56 100644
--- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -315,6 +315,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt
index 660e2e0028..1aaeb92359 100644
--- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt
@@ -284,6 +284,7 @@ SayhaGraceSupport: Set Sayha Grace support end time. (l2jmobius)
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.
diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 3e8b088abd..08b434bd6a 100644
--- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -316,6 +316,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("SendSystemMessageToClan", SendSystemMessageToClan::new);
EffectHandler.getInstance().registerHandler("ServitorShare", ServitorShare::new);
EffectHandler.getInstance().registerHandler("SetHp", SetHp::new);
+ EffectHandler.getInstance().registerHandler("SetCp", SetCp::new);
EffectHandler.getInstance().registerHandler("SetSkill", SetSkill::new);
EffectHandler.getInstance().registerHandler("ShieldDefence", ShieldDefence::new);
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/SetCp.java b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
new file mode 100644
index 0000000000..ba38b71aa0
--- /dev/null
+++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/SetCp.java
@@ -0,0 +1,59 @@
+/*
+ * 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 org.l2jmobius.gameserver.enums.StatModifierType;
+import org.l2jmobius.gameserver.model.StatSet;
+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;
+
+/**
+ * An effect that sets the current cp to the given amount.
+ * @author quangnguyen
+ */
+public class SetCp extends AbstractEffect
+{
+ private final double _amount;
+ private final StatModifierType _mode;
+
+ public SetCp(StatSet params)
+ {
+ _amount = params.getDouble("amount", 0);
+ _mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (effected.isDead() || effected.isDoor())
+ {
+ return;
+ }
+
+ final boolean full = (_mode == StatModifierType.PER) && (_amount == 100.0);
+ final double amount = full ? effected.getMaxCp() : (_mode == StatModifierType.PER) ? ((effected.getMaxCp() * _amount) / 100.0) : _amount;
+ effected.setCurrentCp(amount);
+ }
+}
diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/documentation.txt
index e7af4d34c7..980503867d 100644
--- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/documentation.txt
+++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/documentation.txt
@@ -285,6 +285,7 @@ SayhaGraceSupport: Set Sayha Grace support end time. (l2jmobius)
SendSystemMessageToClan: Sends the specified SystemMessageId to the clan.
ServitorShare: Servitor share effect.
SetHp: Sets current HP to the given amount.
+SetCp: Sets current CP to the given amount. (l2jmobius)
SetSkill: Adds a skill to the Player and saves it in the database.
ShieldDefence: Shield P. Def stat.
ShieldDefenceRate: Shield block success rate stat.