From 0a003846b2d16df0c7d3312d58f1af794a063dde Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Mon, 14 Feb 2022 09:27:28 +0000
Subject: [PATCH] Addition of SkillBonusRange effect handler. Contributed by
nasseka.
---
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../effecthandlers/SkillBonusRange.java | 31 +++++++++++++++++++
.../game/data/stats/skills/10300-10399.xml | 4 +++
.../model/actor/stat/CreatureStat.java | 2 +-
.../gameserver/model/skill/SkillCaster.java | 3 +-
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../effecthandlers/SkillBonusRange.java | 31 +++++++++++++++++++
.../game/data/stats/skills/10300-10399.xml | 4 +++
.../game/data/stats/skills/30900-30999.xml | 4 +++
.../model/actor/stat/CreatureStat.java | 2 +-
.../gameserver/model/skill/SkillCaster.java | 3 +-
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../effecthandlers/SkillBonusRange.java | 31 +++++++++++++++++++
.../game/data/stats/skills/10300-10399.xml | 4 +++
.../game/data/stats/skills/30900-30999.xml | 4 +++
.../model/actor/stat/CreatureStat.java | 2 +-
.../gameserver/model/skill/SkillCaster.java | 3 +-
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../effecthandlers/SkillBonusRange.java | 31 +++++++++++++++++++
.../model/actor/stat/CreatureStat.java | 2 +-
.../gameserver/model/skill/SkillCaster.java | 3 +-
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../effecthandlers/SkillBonusRange.java | 31 +++++++++++++++++++
.../model/actor/stat/CreatureStat.java | 2 +-
.../gameserver/model/skill/SkillCaster.java | 3 +-
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../effecthandlers/SkillBonusRange.java | 31 +++++++++++++++++++
.../model/actor/stat/CreatureStat.java | 2 +-
.../gameserver/model/skill/SkillCaster.java | 3 +-
29 files changed, 230 insertions(+), 12 deletions(-)
create mode 100644 L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
create mode 100644 L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
create mode 100644 L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
create mode 100644 L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
create mode 100644 L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
create mode 100644 L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 5ac956a8f1..46004d8ef1 100644
--- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -328,6 +328,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
EffectHandler.getInstance().registerHandler("ShotsBonus", ShotsBonus::new);
EffectHandler.getInstance().registerHandler("SilentMove", SilentMove::new);
+ EffectHandler.getInstance().registerHandler("SkillBonusRange", SkillBonusRange::new);
EffectHandler.getInstance().registerHandler("SkillCriticalDamage", SkillCriticalDamage::new);
EffectHandler.getInstance().registerHandler("SkillEvasion", SkillEvasion::new);
EffectHandler.getInstance().registerHandler("SkillMastery", SkillMastery::new);
diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
new file mode 100644
index 0000000000..4227a06dab
--- /dev/null
+++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
@@ -0,0 +1,31 @@
+/*
+ * 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.model.StatSet;
+import org.l2jmobius.gameserver.model.stats.Stat;
+
+/**
+ * @author NasSeKa
+ */
+public class SkillBonusRange extends AbstractStatAddEffect
+{
+ public SkillBonusRange(StatSet params)
+ {
+ super(params, Stat.MAGIC_ATTACK_RANGE);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10300-10399.xml
index 2212849665..4a1312df4f 100644
--- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10300-10399.xml
+++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10300-10399.xml
@@ -1587,6 +1587,10 @@
80
DIFF
+
+ 80
+ DIFF
+
{-1 - (subIndex - 1 * 0.5)}
diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
index 68c063ce53..04cd1fb1df 100644
--- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
+++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
@@ -227,7 +227,7 @@ public class CreatureStat
{
if (skill != null)
{
- return (int) getValue(Stat.MAGIC_ATTACK_RANGE, skill.getCastRange());
+ return skill.getCastRange() + (int) getValue(Stat.MAGIC_ATTACK_RANGE, 0);
}
return _creature.getTemplate().getBaseAttackRange();
}
diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
index 0f89b9a012..722422717c 100644
--- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
+++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
@@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.model.options.OptionsSkillHolder;
import org.l2jmobius.gameserver.model.options.OptionsSkillType;
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
import org.l2jmobius.gameserver.model.stats.Formulas;
+import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
@@ -175,7 +176,7 @@ public class SkillCaster implements Runnable
return null;
}
- if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange(), caster, target, false))
+ if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange() + (int) caster.getStat().getValue(Stat.MAGIC_ATTACK_RANGE, 0), caster, target, false))
{
return null;
}
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
index abe9fef3e2..39bba847a5 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -329,6 +329,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
EffectHandler.getInstance().registerHandler("ShotsBonus", ShotsBonus::new);
EffectHandler.getInstance().registerHandler("SilentMove", SilentMove::new);
+ EffectHandler.getInstance().registerHandler("SkillBonusRange", SkillBonusRange::new);
EffectHandler.getInstance().registerHandler("SkillCriticalDamage", SkillCriticalDamage::new);
EffectHandler.getInstance().registerHandler("SkillEvasion", SkillEvasion::new);
EffectHandler.getInstance().registerHandler("SkillMastery", SkillMastery::new);
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
new file mode 100644
index 0000000000..4227a06dab
--- /dev/null
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
@@ -0,0 +1,31 @@
+/*
+ * 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.model.StatSet;
+import org.l2jmobius.gameserver.model.stats.Stat;
+
+/**
+ * @author NasSeKa
+ */
+public class SkillBonusRange extends AbstractStatAddEffect
+{
+ public SkillBonusRange(StatSet params)
+ {
+ super(params, Stat.MAGIC_ATTACK_RANGE);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10300-10399.xml
index 2212849665..4a1312df4f 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10300-10399.xml
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10300-10399.xml
@@ -1587,6 +1587,10 @@
80
DIFF
+
+ 80
+ DIFF
+
{-1 - (subIndex - 1 * 0.5)}
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30900-30999.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30900-30999.xml
index 9225771625..8f9b7b448a 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30900-30999.xml
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30900-30999.xml
@@ -649,6 +649,10 @@
40
DIFF
+
+ 40
+ DIFF
+
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
index 68c063ce53..04cd1fb1df 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
@@ -227,7 +227,7 @@ public class CreatureStat
{
if (skill != null)
{
- return (int) getValue(Stat.MAGIC_ATTACK_RANGE, skill.getCastRange());
+ return skill.getCastRange() + (int) getValue(Stat.MAGIC_ATTACK_RANGE, 0);
}
return _creature.getTemplate().getBaseAttackRange();
}
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
index 6996ee20fb..59756978e0 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
@@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.model.options.OptionsSkillHolder;
import org.l2jmobius.gameserver.model.options.OptionsSkillType;
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
import org.l2jmobius.gameserver.model.stats.Formulas;
+import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
@@ -175,7 +176,7 @@ public class SkillCaster implements Runnable
return null;
}
- if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange(), caster, target, false))
+ if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange() + (int) caster.getStat().getValue(Stat.MAGIC_ATTACK_RANGE, 0), caster, target, false))
{
return null;
}
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java
index c5c499aa70..39f5d08fc4 100644
--- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -331,6 +331,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
EffectHandler.getInstance().registerHandler("ShotsBonus", ShotsBonus::new);
EffectHandler.getInstance().registerHandler("SilentMove", SilentMove::new);
+ EffectHandler.getInstance().registerHandler("SkillBonusRange", SkillBonusRange::new);
EffectHandler.getInstance().registerHandler("SkillCriticalDamage", SkillCriticalDamage::new);
EffectHandler.getInstance().registerHandler("SkillEvasion", SkillEvasion::new);
EffectHandler.getInstance().registerHandler("SkillMastery", SkillMastery::new);
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
new file mode 100644
index 0000000000..4227a06dab
--- /dev/null
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
@@ -0,0 +1,31 @@
+/*
+ * 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.model.StatSet;
+import org.l2jmobius.gameserver.model.stats.Stat;
+
+/**
+ * @author NasSeKa
+ */
+public class SkillBonusRange extends AbstractStatAddEffect
+{
+ public SkillBonusRange(StatSet params)
+ {
+ super(params, Stat.MAGIC_ATTACK_RANGE);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10300-10399.xml
index 5d9262a708..491726d990 100644
--- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10300-10399.xml
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10300-10399.xml
@@ -1587,6 +1587,10 @@
80
DIFF
+
+ 80
+ DIFF
+
{-1 - (subIndex - 1 * 0.5)}
diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30900-30999.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30900-30999.xml
index 65fd718048..d53520ce5f 100644
--- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30900-30999.xml
+++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30900-30999.xml
@@ -667,6 +667,10 @@
40
DIFF
+
+ 40
+ DIFF
+
diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
index 68c063ce53..04cd1fb1df 100644
--- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
+++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
@@ -227,7 +227,7 @@ public class CreatureStat
{
if (skill != null)
{
- return (int) getValue(Stat.MAGIC_ATTACK_RANGE, skill.getCastRange());
+ return skill.getCastRange() + (int) getValue(Stat.MAGIC_ATTACK_RANGE, 0);
}
return _creature.getTemplate().getBaseAttackRange();
}
diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
index c406ad33fc..0b6fcfea92 100644
--- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
+++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
@@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.model.options.OptionsSkillHolder;
import org.l2jmobius.gameserver.model.options.OptionsSkillType;
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
import org.l2jmobius.gameserver.model.stats.Formulas;
+import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
@@ -175,7 +176,7 @@ public class SkillCaster implements Runnable
return null;
}
- if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange(), caster, target, false))
+ if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange() + (int) caster.getStat().getValue(Stat.MAGIC_ATTACK_RANGE, 0), caster, target, false))
{
return null;
}
diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 5355293d6c..1d6bd1a85e 100644
--- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -325,6 +325,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
EffectHandler.getInstance().registerHandler("ShotsBonus", ShotsBonus::new);
EffectHandler.getInstance().registerHandler("SilentMove", SilentMove::new);
+ EffectHandler.getInstance().registerHandler("SkillBonusRange", SkillBonusRange::new);
EffectHandler.getInstance().registerHandler("SkillCriticalDamage", SkillCriticalDamage::new);
EffectHandler.getInstance().registerHandler("SkillEvasion", SkillEvasion::new);
EffectHandler.getInstance().registerHandler("SkillMastery", SkillMastery::new);
diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
new file mode 100644
index 0000000000..4227a06dab
--- /dev/null
+++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
@@ -0,0 +1,31 @@
+/*
+ * 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.model.StatSet;
+import org.l2jmobius.gameserver.model.stats.Stat;
+
+/**
+ * @author NasSeKa
+ */
+public class SkillBonusRange extends AbstractStatAddEffect
+{
+ public SkillBonusRange(StatSet params)
+ {
+ super(params, Stat.MAGIC_ATTACK_RANGE);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
index 084138826c..fe084eead5 100644
--- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
+++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
@@ -227,7 +227,7 @@ public class CreatureStat
{
if (skill != null)
{
- return (int) getValue(Stat.MAGIC_ATTACK_RANGE, skill.getCastRange());
+ return skill.getCastRange() + (int) getValue(Stat.MAGIC_ATTACK_RANGE, 0);
}
return _creature.getTemplate().getBaseAttackRange();
}
diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
index 55bcdb58f0..ead6700e0b 100644
--- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
+++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
@@ -67,6 +67,7 @@ import org.l2jmobius.gameserver.model.options.OptionsSkillHolder;
import org.l2jmobius.gameserver.model.options.OptionsSkillType;
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
import org.l2jmobius.gameserver.model.stats.Formulas;
+import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
@@ -176,7 +177,7 @@ public class SkillCaster implements Runnable
return null;
}
- if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange(), caster, target, false))
+ if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange() + (int) caster.getStat().getValue(Stat.MAGIC_ATTACK_RANGE, 0), caster, target, false))
{
return null;
}
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 0b8eb72206..09c534eb01 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -327,6 +327,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
EffectHandler.getInstance().registerHandler("ShotsBonus", ShotsBonus::new);
EffectHandler.getInstance().registerHandler("SilentMove", SilentMove::new);
+ EffectHandler.getInstance().registerHandler("SkillBonusRange", SkillBonusRange::new);
EffectHandler.getInstance().registerHandler("SkillCriticalDamage", SkillCriticalDamage::new);
EffectHandler.getInstance().registerHandler("SkillEvasion", SkillEvasion::new);
EffectHandler.getInstance().registerHandler("SkillMastery", SkillMastery::new);
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
new file mode 100644
index 0000000000..4227a06dab
--- /dev/null
+++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
@@ -0,0 +1,31 @@
+/*
+ * 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.model.StatSet;
+import org.l2jmobius.gameserver.model.stats.Stat;
+
+/**
+ * @author NasSeKa
+ */
+public class SkillBonusRange extends AbstractStatAddEffect
+{
+ public SkillBonusRange(StatSet params)
+ {
+ super(params, Stat.MAGIC_ATTACK_RANGE);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
index 084138826c..fe084eead5 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
@@ -227,7 +227,7 @@ public class CreatureStat
{
if (skill != null)
{
- return (int) getValue(Stat.MAGIC_ATTACK_RANGE, skill.getCastRange());
+ return skill.getCastRange() + (int) getValue(Stat.MAGIC_ATTACK_RANGE, 0);
}
return _creature.getTemplate().getBaseAttackRange();
}
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
index 55bcdb58f0..ead6700e0b 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
@@ -67,6 +67,7 @@ import org.l2jmobius.gameserver.model.options.OptionsSkillHolder;
import org.l2jmobius.gameserver.model.options.OptionsSkillType;
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
import org.l2jmobius.gameserver.model.stats.Formulas;
+import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
@@ -176,7 +177,7 @@ public class SkillCaster implements Runnable
return null;
}
- if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange(), caster, target, false))
+ if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange() + (int) caster.getStat().getValue(Stat.MAGIC_ATTACK_RANGE, 0), caster, target, false))
{
return null;
}
diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java
index bbc65edd89..862b378888 100644
--- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -329,6 +329,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("ShieldDefenceRate", ShieldDefenceRate::new);
EffectHandler.getInstance().registerHandler("ShotsBonus", ShotsBonus::new);
EffectHandler.getInstance().registerHandler("SilentMove", SilentMove::new);
+ EffectHandler.getInstance().registerHandler("SkillBonusRange", SkillBonusRange::new);
EffectHandler.getInstance().registerHandler("SkillCriticalDamage", SkillCriticalDamage::new);
EffectHandler.getInstance().registerHandler("SkillEvasion", SkillEvasion::new);
EffectHandler.getInstance().registerHandler("SkillMastery", SkillMastery::new);
diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
new file mode 100644
index 0000000000..4227a06dab
--- /dev/null
+++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/SkillBonusRange.java
@@ -0,0 +1,31 @@
+/*
+ * 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.model.StatSet;
+import org.l2jmobius.gameserver.model.stats.Stat;
+
+/**
+ * @author NasSeKa
+ */
+public class SkillBonusRange extends AbstractStatAddEffect
+{
+ public SkillBonusRange(StatSet params)
+ {
+ super(params, Stat.MAGIC_ATTACK_RANGE);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
index 084138826c..fe084eead5 100644
--- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
+++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/CreatureStat.java
@@ -227,7 +227,7 @@ public class CreatureStat
{
if (skill != null)
{
- return (int) getValue(Stat.MAGIC_ATTACK_RANGE, skill.getCastRange());
+ return skill.getCastRange() + (int) getValue(Stat.MAGIC_ATTACK_RANGE, 0);
}
return _creature.getTemplate().getBaseAttackRange();
}
diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
index 49f2cd695d..a96613a94e 100644
--- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
+++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java
@@ -67,6 +67,7 @@ import org.l2jmobius.gameserver.model.options.OptionsSkillHolder;
import org.l2jmobius.gameserver.model.options.OptionsSkillType;
import org.l2jmobius.gameserver.model.skill.targets.TargetType;
import org.l2jmobius.gameserver.model.stats.Formulas;
+import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
@@ -176,7 +177,7 @@ public class SkillCaster implements Runnable
return null;
}
- if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange(), caster, target, false))
+ if ((skill.getCastRange() > 0) && !Util.checkIfInRange(skill.getCastRange() + (int) caster.getStat().getValue(Stat.MAGIC_ATTACK_RANGE, 0), caster, target, false))
{
return null;
}