From 09b6a845a2666da52636a40971ec1a479ec15a5d Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 21 Dec 2015 11:24:27 +0000 Subject: [PATCH] Fixed low monster accuracy. Contributed by jivec. --- .../gameserver/model/actor/stat/CharStat.java | 8 ++++---- .../model/actor/templates/L2CharTemplate.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/stat/CharStat.java b/trunk/java/com/l2jserver/gameserver/model/actor/stat/CharStat.java index 809d929b7c..bbc1ef1d8b 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/stat/CharStat.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/stat/CharStat.java @@ -138,19 +138,19 @@ public class CharStat } /** - * @return the Accuracy (base+modifier) of the L2Character in function of the Weapon Expertise Penalty. + * @return the Accuracy of the L2Character in function of the Weapon Expertise Penalty. */ public int getAccuracy() { - return (int) Math.round(calcStat(Stats.ACCURACY_COMBAT, 0, null, null)); + return (int) Math.round(calcStat(Stats.ACCURACY_COMBAT, _activeChar.getTemplate().getBaseAccuracy(), _activeChar, null)); } /** - * @return the Magic Accuracy (base+modifier) of the L2Character + * @return the Magic Accuracy of the L2Character */ public int getMagicAccuracy() { - return (int) Math.round(calcStat(Stats.ACCURACY_MAGIC, 0, null, null)); + return (int) Math.round(calcStat(Stats.ACCURACY_MAGIC, _activeChar.getTemplate().getBaseAccuracy(), _activeChar, null)); } public L2Character getActiveChar() diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java b/trunk/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java index 74572ed170..05f86c89d5 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java @@ -53,6 +53,7 @@ public class L2CharTemplate extends ListenersContainer private int _baseMAtk; private int _basePDef; private int _baseMDef; + private double _basePAcc; private int _basePAtkSpd; private int _baseMAtkSpd; private int _baseAttackRange; @@ -117,6 +118,7 @@ public class L2CharTemplate extends ListenersContainer _basePAtkSpd = set.getInt("basePAtkSpd", 300); _baseMAtkSpd = set.getInt("baseMAtkSpd", 333); _baseShldDef = set.getInt("baseShldDef", 0); + _basePAcc = set.getDouble("accuracy", 0); _baseAttackRange = set.getInt("baseAtkRange", 40); _randomDamage = set.getInt("baseRndDam", 0); _baseAttackType = set.getEnum("baseAtkType", WeaponType.class, WeaponType.FIST); @@ -156,6 +158,14 @@ public class L2CharTemplate extends ListenersContainer setBaseMoveSpeed(MoveType.SLOW_FLY, set.getDouble("baseFlyWalkSpd", getBaseMoveSpeed(MoveType.WALK))); } + /** + * @return proper accuracy + */ + public double getBaseAccuracy() + { + return _basePAcc; + } + /** * @return the baseHpMax */