diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java index 7bfae17338..fe76568704 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -399,6 +399,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("VitalityExpRate", VitalityExpRate::new); EffectHandler.getInstance().registerHandler("VitalityPointsRate", VitalityPointsRate::new); EffectHandler.getInstance().registerHandler("VitalityPointUp", VitalityPointUp::new); + EffectHandler.getInstance().registerHandler("WeaponAttackAngleBonus", WeaponAttackAngleBonus::new); EffectHandler.getInstance().registerHandler("WeightLimit", WeightLimit::new); EffectHandler.getInstance().registerHandler("WeightPenalty", WeightPenalty::new); EffectHandler.getInstance().registerHandler("WorldChatPoints", WorldChatPoints::new); diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java new file mode 100644 index 0000000000..ef9199ea32 --- /dev/null +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.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 WeaponAttackAngleBonus extends AbstractStatAddEffect +{ + public WeaponAttackAngleBonus(StatSet params) + { + super(params, Stat.WEAPON_ATTACK_ANGLE_BONUS); + } +} \ No newline at end of file diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30600-30699.xml index fd61b6438e..db214fdc92 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30600-30699.xml @@ -140,7 +140,7 @@ A2 2000 200 - 300000 + 30000 673 32 1 @@ -160,6 +160,20 @@ + + 360 + DIFF + + POLE + + + + 100 + DIFF + + POLE + + 100 DIFF @@ -195,6 +209,20 @@ + + 360 + DIFF + + POLE + + + + 100 + DIFF + + POLE + + 100 DIFF diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt index a78fa4b51c..4ee4b62443 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt @@ -366,6 +366,7 @@ VampiricDefence: Resist stat towards VampiricAttack VitalityExpRate: Sets the vitality exp rate. (l2jmobius) VitalityPointsRate: Vitality points consume rate. VitalityPointUp: Increases vitality points. +WeaponAttackAngleBonus: Additional range for weapon attack angle. (l2jmobius) WeightLimit: Maximum weight stat. WeightPenalty: Weight penalty level stat. WorldChatPoints: Modify world chat points to use per day. diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 678412218a..7dd70aa301 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; +import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -252,6 +253,6 @@ public class PlayableStat extends CreatureStat public int getPhysicalAttackAngle() { final Weapon weapon = getActiveChar().getActiveWeaponItem(); - return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); + return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } } diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java index c88dca5498..ec7924aa7c 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -162,6 +162,7 @@ public enum Stat MAGIC_ATTACK_RANGE("mAtkRange"), ATTACK_COUNT_MAX("atkCountMax"), PHYSICAL_POLEARM_TARGET_SINGLE("polearmSingleTarget"), + WEAPON_ATTACK_ANGLE_BONUS("weaponAttackAngleBonus"), HIT_AT_NIGHT("hitAtNight"), // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff 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 eb6bd8185a..aa86d6b62d 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 @@ -401,6 +401,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("VitalityExpRate", VitalityExpRate::new); EffectHandler.getInstance().registerHandler("VitalityPointsRate", VitalityPointsRate::new); EffectHandler.getInstance().registerHandler("VitalityPointUp", VitalityPointUp::new); + EffectHandler.getInstance().registerHandler("WeaponAttackAngleBonus", WeaponAttackAngleBonus::new); EffectHandler.getInstance().registerHandler("WeightLimit", WeightLimit::new); EffectHandler.getInstance().registerHandler("WeightPenalty", WeightPenalty::new); EffectHandler.getInstance().registerHandler("WorldChatPoints", WorldChatPoints::new); diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java new file mode 100644 index 0000000000..ef9199ea32 --- /dev/null +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.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 WeaponAttackAngleBonus extends AbstractStatAddEffect +{ + public WeaponAttackAngleBonus(StatSet params) + { + super(params, Stat.WEAPON_ATTACK_ANGLE_BONUS); + } +} \ No newline at end of file diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30600-30699.xml index 62eafad21e..dd849e3ad4 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30600-30699.xml @@ -140,7 +140,7 @@ A2 2000 200 - 300000 + 30000 673 32 1 @@ -160,6 +160,20 @@ + + 360 + DIFF + + POLE + + + + 100 + DIFF + + POLE + + 100 DIFF @@ -198,6 +212,20 @@ + + 360 + DIFF + + POLE + + + + 100 + DIFF + + POLE + + 100 DIFF diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt index 30771dea6e..6a10fec523 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt @@ -368,6 +368,7 @@ VampiricDefence: Resist stat towards VampiricAttack VitalityExpRate: Sets the vitality exp rate. (l2jmobius) VitalityPointsRate: Vitality points consume rate. VitalityPointUp: Increases vitality points. +WeaponAttackAngleBonus: Additional range for weapon attack angle. (l2jmobius) WeightLimit: Maximum weight stat. WeightPenalty: Weight penalty level stat. WorldChatPoints: Modify world chat points to use per day. diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 5672633fc9..6c2c9fcd61 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; +import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -252,6 +253,6 @@ public class PlayableStat extends CreatureStat public int getPhysicalAttackAngle() { final Weapon weapon = getActiveChar().getActiveWeaponItem(); - return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); + return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java index 4905c748ea..12d6f20024 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -165,6 +165,7 @@ public enum Stat MAGIC_ATTACK_RANGE("mAtkRange"), ATTACK_COUNT_MAX("atkCountMax"), PHYSICAL_POLEARM_TARGET_SINGLE("polearmSingleTarget"), + WEAPON_ATTACK_ANGLE_BONUS("weaponAttackAngleBonus"), HIT_AT_NIGHT("hitAtNight"), // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff 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 1cb52554e7..f01acc6cb9 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 @@ -403,6 +403,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("VitalityExpRate", VitalityExpRate::new); EffectHandler.getInstance().registerHandler("VitalityPointsRate", VitalityPointsRate::new); EffectHandler.getInstance().registerHandler("VitalityPointUp", VitalityPointUp::new); + EffectHandler.getInstance().registerHandler("WeaponAttackAngleBonus", WeaponAttackAngleBonus::new); EffectHandler.getInstance().registerHandler("WeightLimit", WeightLimit::new); EffectHandler.getInstance().registerHandler("WeightPenalty", WeightPenalty::new); EffectHandler.getInstance().registerHandler("WorldChatPoints", WorldChatPoints::new); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java new file mode 100644 index 0000000000..ef9199ea32 --- /dev/null +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.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 WeaponAttackAngleBonus extends AbstractStatAddEffect +{ + public WeaponAttackAngleBonus(StatSet params) + { + super(params, Stat.WEAPON_ATTACK_ANGLE_BONUS); + } +} \ No newline at end of file diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30600-30699.xml index 03ff745101..7a100e9dce 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30600-30699.xml @@ -140,7 +140,7 @@ A2 2000 200 - 300000 + 30000 673 32 1 @@ -160,6 +160,20 @@ + + 360 + DIFF + + POLE + + + + 100 + DIFF + + POLE + + 100 DIFF @@ -198,6 +212,20 @@ + + 360 + DIFF + + POLE + + + + 100 + DIFF + + POLE + + 100 DIFF diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt index a9ad4d4f69..2dff218db2 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt @@ -369,6 +369,7 @@ VampiricDefence: Resist stat towards VampiricAttack VitalityExpRate: Sets the vitality exp rate. (l2jmobius) VitalityPointsRate: Vitality points consume rate. VitalityPointUp: Increases vitality points. +WeaponAttackAngleBonus: Additional range for weapon attack angle. (l2jmobius) WeightLimit: Maximum weight stat. WeightPenalty: Weight penalty level stat. WorldChatPoints: Modify world chat points to use per day. diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 5672633fc9..6c2c9fcd61 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; +import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -252,6 +253,6 @@ public class PlayableStat extends CreatureStat public int getPhysicalAttackAngle() { final Weapon weapon = getActiveChar().getActiveWeaponItem(); - return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); + return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java index 4905c748ea..12d6f20024 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -165,6 +165,7 @@ public enum Stat MAGIC_ATTACK_RANGE("mAtkRange"), ATTACK_COUNT_MAX("atkCountMax"), PHYSICAL_POLEARM_TARGET_SINGLE("polearmSingleTarget"), + WEAPON_ATTACK_ANGLE_BONUS("weaponAttackAngleBonus"), HIT_AT_NIGHT("hitAtNight"), // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff 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 8f041ea9bd..f88b5ac97c 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 @@ -405,6 +405,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("VitalityExpRate", VitalityExpRate::new); EffectHandler.getInstance().registerHandler("VitalityPointsRate", VitalityPointsRate::new); EffectHandler.getInstance().registerHandler("VitalityPointUp", VitalityPointUp::new); + EffectHandler.getInstance().registerHandler("WeaponAttackAngleBonus", WeaponAttackAngleBonus::new); EffectHandler.getInstance().registerHandler("WeightLimit", WeightLimit::new); EffectHandler.getInstance().registerHandler("WeightPenalty", WeightPenalty::new); EffectHandler.getInstance().registerHandler("WorldChatPoints", WorldChatPoints::new); diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java new file mode 100644 index 0000000000..ef9199ea32 --- /dev/null +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.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 WeaponAttackAngleBonus extends AbstractStatAddEffect +{ + public WeaponAttackAngleBonus(StatSet params) + { + super(params, Stat.WEAPON_ATTACK_ANGLE_BONUS); + } +} \ No newline at end of file diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30600-30699.xml index 96b306284f..76395dc432 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30600-30699.xml @@ -140,7 +140,7 @@ A2 2000 200 - 300000 + 30000 673 32 1 @@ -160,6 +160,20 @@ + + 360 + DIFF + + POLE + + + + 100 + DIFF + + POLE + + 100 DIFF @@ -198,6 +212,20 @@ + + 360 + DIFF + + POLE + + + + 100 + DIFF + + POLE + + 100 DIFF diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt index 41a401a9f7..d00e20e628 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt @@ -371,6 +371,7 @@ VampiricDefence: Resist stat towards VampiricAttack VitalityExpRate: Sets the vitality exp rate. (l2jmobius) VitalityPointsRate: Vitality points consume rate. VitalityPointUp: Increases vitality points. +WeaponAttackAngleBonus: Additional range for weapon attack angle. (l2jmobius) WeightLimit: Maximum weight stat. WeightPenalty: Weight penalty level stat. WorldChatPoints: Modify world chat points to use per day. diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 5672633fc9..6c2c9fcd61 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; +import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; public class PlayableStat extends CreatureStat @@ -252,6 +253,6 @@ public class PlayableStat extends CreatureStat public int getPhysicalAttackAngle() { final Weapon weapon = getActiveChar().getActiveWeaponItem(); - return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); + return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } } diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java index 4905c748ea..12d6f20024 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -165,6 +165,7 @@ public enum Stat MAGIC_ATTACK_RANGE("mAtkRange"), ATTACK_COUNT_MAX("atkCountMax"), PHYSICAL_POLEARM_TARGET_SINGLE("polearmSingleTarget"), + WEAPON_ATTACK_ANGLE_BONUS("weaponAttackAngleBonus"), HIT_AT_NIGHT("hitAtNight"), // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff 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 18f28c3620..01f09ec6e6 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 @@ -392,6 +392,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("VitalityExpRate", VitalityExpRate::new); EffectHandler.getInstance().registerHandler("VitalityPointsRate", VitalityPointsRate::new); EffectHandler.getInstance().registerHandler("VitalityPointUp", VitalityPointUp::new); + EffectHandler.getInstance().registerHandler("WeaponAttackAngleBonus", WeaponAttackAngleBonus::new); EffectHandler.getInstance().registerHandler("WeightLimit", WeightLimit::new); EffectHandler.getInstance().registerHandler("WeightPenalty", WeightPenalty::new); EffectHandler.getInstance().registerHandler("WorldChatPoints", WorldChatPoints::new); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java new file mode 100644 index 0000000000..ef9199ea32 --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.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 WeaponAttackAngleBonus extends AbstractStatAddEffect +{ + public WeaponAttackAngleBonus(StatSet params) + { + super(params, Stat.WEAPON_ATTACK_ANGLE_BONUS); + } +} \ No newline at end of file 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 a2f505c7f1..3842e301c6 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 @@ -359,6 +359,7 @@ VampiricDefence: Resist stat towards VampiricAttack VitalityExpRate: Sets the vitality exp rate. (l2jmobius) VitalityPointsRate: Vitality points consume rate. VitalityPointUp: Increases vitality points. +WeaponAttackAngleBonus: Additional range for weapon attack angle. (l2jmobius) WeightLimit: Maximum weight stat. WeightPenalty: Weight penalty level stat. WorldChatPoints: Modify world chat points to use per day. diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index ab69ac3799..1b3568357d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,6 +31,7 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; +import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -268,7 +269,7 @@ public class PlayableStat extends CreatureStat public int getPhysicalAttackAngle() { final Weapon weapon = getActiveChar().getActiveWeaponItem(); - return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); + return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java index 0bd507a8d6..9e06b77030 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -176,6 +176,7 @@ public enum Stat MAGIC_ATTACK_RANGE("mAtkRange"), ATTACK_COUNT_MAX("atkCountMax"), PHYSICAL_POLEARM_TARGET_SINGLE("polearmSingleTarget"), + WEAPON_ATTACK_ANGLE_BONUS("weaponAttackAngleBonus"), HIT_AT_NIGHT("hitAtNight"), // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff 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 8059647ae1..3046d0f018 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 @@ -399,6 +399,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("VitalityExpRate", VitalityExpRate::new); EffectHandler.getInstance().registerHandler("VitalityPointsRate", VitalityPointsRate::new); EffectHandler.getInstance().registerHandler("VitalityPointUp", VitalityPointUp::new); + EffectHandler.getInstance().registerHandler("WeaponAttackAngleBonus", WeaponAttackAngleBonus::new); EffectHandler.getInstance().registerHandler("WeightLimit", WeightLimit::new); EffectHandler.getInstance().registerHandler("WeightPenalty", WeightPenalty::new); EffectHandler.getInstance().registerHandler("WorldChatPoints", WorldChatPoints::new); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java new file mode 100644 index 0000000000..ef9199ea32 --- /dev/null +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.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 WeaponAttackAngleBonus extends AbstractStatAddEffect +{ + public WeaponAttackAngleBonus(StatSet params) + { + super(params, Stat.WEAPON_ATTACK_ANGLE_BONUS); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt index 737a2f7499..9ed7930243 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt @@ -366,6 +366,7 @@ VampiricDefence: Resist stat towards VampiricAttack VitalityExpRate: Sets the vitality exp rate. (l2jmobius) VitalityPointsRate: Vitality points consume rate. VitalityPointUp: Increases vitality points. +WeaponAttackAngleBonus: Additional range for weapon attack angle. (l2jmobius) WeightLimit: Maximum weight stat. WeightPenalty: Weight penalty level stat. WorldChatPoints: Modify world chat points to use per day. diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 14b5ab1db6..20ad33d1ae 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,6 +31,7 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; +import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -268,7 +269,7 @@ public class PlayableStat extends CreatureStat public int getPhysicalAttackAngle() { final Weapon weapon = getActiveChar().getActiveWeaponItem(); - return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); + return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java index afe38e6139..a9895b4915 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -180,6 +180,7 @@ public enum Stat MAGIC_ATTACK_RANGE("mAtkRange"), ATTACK_COUNT_MAX("atkCountMax"), PHYSICAL_POLEARM_TARGET_SINGLE("polearmSingleTarget"), + WEAPON_ATTACK_ANGLE_BONUS("weaponAttackAngleBonus"), HIT_AT_NIGHT("hitAtNight"), // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff 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 5739b95b47..5768714426 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 @@ -402,6 +402,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("VitalityExpRate", VitalityExpRate::new); EffectHandler.getInstance().registerHandler("VitalityPointsRate", VitalityPointsRate::new); EffectHandler.getInstance().registerHandler("VitalityPointUp", VitalityPointUp::new); + EffectHandler.getInstance().registerHandler("WeaponAttackAngleBonus", WeaponAttackAngleBonus::new); EffectHandler.getInstance().registerHandler("WeightLimit", WeightLimit::new); EffectHandler.getInstance().registerHandler("WeightPenalty", WeightPenalty::new); EffectHandler.getInstance().registerHandler("WorldChatPoints", WorldChatPoints::new); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java new file mode 100644 index 0000000000..ef9199ea32 --- /dev/null +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.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 WeaponAttackAngleBonus extends AbstractStatAddEffect +{ + public WeaponAttackAngleBonus(StatSet params) + { + super(params, Stat.WEAPON_ATTACK_ANGLE_BONUS); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt index db535529c4..dd63432c2d 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt @@ -368,6 +368,7 @@ VampiricDefence: Resist stat towards VampiricAttack VitalityExpRate: Sets the vitality exp rate. (l2jmobius) VitalityPointsRate: Vitality points consume rate. VitalityPointUp: Increases vitality points. +WeaponAttackAngleBonus: Additional range for weapon attack angle. (l2jmobius) WeightLimit: Maximum weight stat. WeightPenalty: Weight penalty level stat. WorldChatPoints: Modify world chat points to use per day. diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 14b5ab1db6..20ad33d1ae 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,6 +31,7 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; +import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -268,7 +269,7 @@ public class PlayableStat extends CreatureStat public int getPhysicalAttackAngle() { final Weapon weapon = getActiveChar().getActiveWeaponItem(); - return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); + return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java index afe38e6139..a9895b4915 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -180,6 +180,7 @@ public enum Stat MAGIC_ATTACK_RANGE("mAtkRange"), ATTACK_COUNT_MAX("atkCountMax"), PHYSICAL_POLEARM_TARGET_SINGLE("polearmSingleTarget"), + WEAPON_ATTACK_ANGLE_BONUS("weaponAttackAngleBonus"), HIT_AT_NIGHT("hitAtNight"), // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff 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 53560a7411..a8d1b45dda 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 @@ -403,6 +403,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("VitalityExpRate", VitalityExpRate::new); EffectHandler.getInstance().registerHandler("VitalityPointsRate", VitalityPointsRate::new); EffectHandler.getInstance().registerHandler("VitalityPointUp", VitalityPointUp::new); + EffectHandler.getInstance().registerHandler("WeaponAttackAngleBonus", WeaponAttackAngleBonus::new); EffectHandler.getInstance().registerHandler("WeightLimit", WeightLimit::new); EffectHandler.getInstance().registerHandler("WeightPenalty", WeightPenalty::new); EffectHandler.getInstance().registerHandler("WorldChatPoints", WorldChatPoints::new); diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.java new file mode 100644 index 0000000000..ef9199ea32 --- /dev/null +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/WeaponAttackAngleBonus.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 WeaponAttackAngleBonus extends AbstractStatAddEffect +{ + public WeaponAttackAngleBonus(StatSet params) + { + super(params, Stat.WEAPON_ATTACK_ANGLE_BONUS); + } +} \ No newline at end of file diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt index 38623cc1ec..0ad0c58318 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt @@ -369,6 +369,7 @@ VampiricDefence: Resist stat towards VampiricAttack VitalityExpRate: Sets the vitality exp rate. (l2jmobius) VitalityPointsRate: Vitality points consume rate. VitalityPointUp: Increases vitality points. +WeaponAttackAngleBonus: Additional range for weapon attack angle. (l2jmobius) WeightLimit: Maximum weight stat. WeightPenalty: Weight penalty level stat. WorldChatPoints: Modify world chat points to use per day. diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java index 4b5e0442f6..fecef82b02 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/actor/stat/PlayableStat.java @@ -31,6 +31,7 @@ import org.l2jmobius.gameserver.model.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged; import org.l2jmobius.gameserver.model.events.returns.TerminateReturn; import org.l2jmobius.gameserver.model.item.Weapon; +import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.variables.PlayerVariables; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ExNewSkillToLearnByLevelUp; @@ -268,7 +269,7 @@ public class PlayableStat extends CreatureStat public int getPhysicalAttackAngle() { final Weapon weapon = getActiveChar().getActiveWeaponItem(); - return weapon != null ? weapon.getBaseAttackAngle() : super.getPhysicalAttackAngle(); + return (weapon != null ? weapon.getBaseAttackAngle() + (int) getActiveChar().getStat().getValue(Stat.WEAPON_ATTACK_ANGLE_BONUS, 0) : super.getPhysicalAttackAngle()); } private void addReputationToClanBasedOnLevel(Player player, int leveledUpCount) diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java index afe38e6139..a9895b4915 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -180,6 +180,7 @@ public enum Stat MAGIC_ATTACK_RANGE("mAtkRange"), ATTACK_COUNT_MAX("atkCountMax"), PHYSICAL_POLEARM_TARGET_SINGLE("polearmSingleTarget"), + WEAPON_ATTACK_ANGLE_BONUS("weaponAttackAngleBonus"), HIT_AT_NIGHT("hitAtNight"), // Run speed, walk & escape speed are calculated proportionally, magic speed is a buff