From 7db0689748c0bada7bce17aba3d7c830ba1599c8 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 4 Dec 2020 07:37:12 +0000 Subject: [PATCH] Addition of ReuseSkillById amount parameter. --- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- .../effecthandlers/ReuseSkillById.java | 21 ++++++++++++++++--- 17 files changed, 306 insertions(+), 51 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java index e17cd7cc25..67c4000dcc 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/ReuseSkillById.java @@ -30,10 +30,12 @@ import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime; public class ReuseSkillById extends AbstractEffect { private final int _skillId; + private final int _amount; public ReuseSkillById(StatSet params) { _skillId = params.getInt("skillId", 0); + _amount = params.getInt("amount", 0); } @Override @@ -51,9 +53,22 @@ public class ReuseSkillById extends AbstractEffect final Skill s = player.getKnownSkill(_skillId); if (s != null) { - player.removeTimeStamp(s); - player.enableSkill(s); - player.sendPacket(new SkillCoolTime(player)); + if (_amount > 0) + { + final long reuse = player.getSkillRemainingReuseTime(s.getReuseHashCode()); + if (reuse > 0) + { + player.removeTimeStamp(s); + player.addTimeStamp(s, Math.max(0, reuse - _amount)); + player.sendPacket(new SkillCoolTime(player)); + } + } + else + { + player.removeTimeStamp(s); + player.enableSkill(s); + player.sendPacket(new SkillCoolTime(player)); + } } } }