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; }