From 49c06340860f9506fec5820ee36345cf1721d18d Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 3 Dec 2017 19:45:55 +0000 Subject: [PATCH] Prevent vitality moving out of proper range. --- .../com/l2jmobius/gameserver/model/actor/stat/PcStat.java | 8 ++++---- .../com/l2jmobius/gameserver/model/base/SubClass.java | 7 +++++-- .../com/l2jmobius/gameserver/model/actor/stat/PcStat.java | 8 ++++---- .../com/l2jmobius/gameserver/model/base/SubClass.java | 7 +++++-- .../com/l2jmobius/gameserver/model/actor/stat/PcStat.java | 8 ++++---- .../com/l2jmobius/gameserver/model/base/SubClass.java | 7 +++++-- .../com/l2jmobius/gameserver/model/actor/stat/PcStat.java | 8 ++++---- .../com/l2jmobius/gameserver/model/base/SubClass.java | 7 +++++-- .../com/l2jmobius/gameserver/model/actor/stat/PcStat.java | 8 ++++---- .../com/l2jmobius/gameserver/model/base/SubClass.java | 7 +++++-- 10 files changed, 45 insertions(+), 30 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java index e6976d676e..201f1b36c9 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java @@ -460,12 +460,12 @@ public class PcStat extends PlayableStat { return Math.min(MAX_VITALITY_POINTS, getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getVitalityPoints()); } - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public int getBaseVitalityPoints() { - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public double getVitalityExpBonus() @@ -477,10 +477,10 @@ public class PcStat extends PlayableStat { if (getActiveChar().isSubClassActive()) { - getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(Math.min(MAX_VITALITY_POINTS, value)); + getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(value); return; } - _vitalityPoints = Math.min(MAX_VITALITY_POINTS, value); + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /* diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/base/SubClass.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/base/SubClass.java index b3280d8f80..0e65764560 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/base/SubClass.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/base/SubClass.java @@ -36,6 +36,9 @@ public final class SubClass private int _vitalityPoints = 0; private boolean _dualClass = false; + public static final int MAX_VITALITY_POINTS = 140000; + public static final int MIN_VITALITY_POINTS = 0; + public SubClass() { // Used for specifying ALL attributes of a sub class directly, @@ -69,12 +72,12 @@ public final class SubClass public int getVitalityPoints() { - return _vitalityPoints; + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public void setVitalityPoints(int value) { - _vitalityPoints = value; + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /** diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java index a14e2ba184..d0d23fb01a 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java @@ -462,12 +462,12 @@ public class PcStat extends PlayableStat { return Math.min(MAX_VITALITY_POINTS, getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getVitalityPoints()); } - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public int getBaseVitalityPoints() { - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public double getVitalityExpBonus() @@ -479,10 +479,10 @@ public class PcStat extends PlayableStat { if (getActiveChar().isSubClassActive()) { - getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(Math.min(MAX_VITALITY_POINTS, value)); + getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(value); return; } - _vitalityPoints = Math.min(MAX_VITALITY_POINTS, value); + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /* diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/base/SubClass.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/base/SubClass.java index b3280d8f80..0e65764560 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/base/SubClass.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/base/SubClass.java @@ -36,6 +36,9 @@ public final class SubClass private int _vitalityPoints = 0; private boolean _dualClass = false; + public static final int MAX_VITALITY_POINTS = 140000; + public static final int MIN_VITALITY_POINTS = 0; + public SubClass() { // Used for specifying ALL attributes of a sub class directly, @@ -69,12 +72,12 @@ public final class SubClass public int getVitalityPoints() { - return _vitalityPoints; + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public void setVitalityPoints(int value) { - _vitalityPoints = value; + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /** diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java index a14e2ba184..d0d23fb01a 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java @@ -462,12 +462,12 @@ public class PcStat extends PlayableStat { return Math.min(MAX_VITALITY_POINTS, getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getVitalityPoints()); } - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public int getBaseVitalityPoints() { - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public double getVitalityExpBonus() @@ -479,10 +479,10 @@ public class PcStat extends PlayableStat { if (getActiveChar().isSubClassActive()) { - getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(Math.min(MAX_VITALITY_POINTS, value)); + getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(value); return; } - _vitalityPoints = Math.min(MAX_VITALITY_POINTS, value); + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /* diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/base/SubClass.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/base/SubClass.java index b3280d8f80..0e65764560 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/base/SubClass.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/base/SubClass.java @@ -36,6 +36,9 @@ public final class SubClass private int _vitalityPoints = 0; private boolean _dualClass = false; + public static final int MAX_VITALITY_POINTS = 140000; + public static final int MIN_VITALITY_POINTS = 0; + public SubClass() { // Used for specifying ALL attributes of a sub class directly, @@ -69,12 +72,12 @@ public final class SubClass public int getVitalityPoints() { - return _vitalityPoints; + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public void setVitalityPoints(int value) { - _vitalityPoints = value; + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /** diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java index fa90e21479..f0c8b753f0 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java @@ -457,12 +457,12 @@ public class PcStat extends PlayableStat { return Math.min(MAX_VITALITY_POINTS, getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getVitalityPoints()); } - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public int getBaseVitalityPoints() { - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public double getVitalityExpBonus() @@ -474,10 +474,10 @@ public class PcStat extends PlayableStat { if (getActiveChar().isSubClassActive()) { - getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(Math.min(MAX_VITALITY_POINTS, value)); + getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(value); return; } - _vitalityPoints = Math.min(MAX_VITALITY_POINTS, value); + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /* diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/base/SubClass.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/base/SubClass.java index b3280d8f80..0e65764560 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/base/SubClass.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/base/SubClass.java @@ -36,6 +36,9 @@ public final class SubClass private int _vitalityPoints = 0; private boolean _dualClass = false; + public static final int MAX_VITALITY_POINTS = 140000; + public static final int MIN_VITALITY_POINTS = 0; + public SubClass() { // Used for specifying ALL attributes of a sub class directly, @@ -69,12 +72,12 @@ public final class SubClass public int getVitalityPoints() { - return _vitalityPoints; + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public void setVitalityPoints(int value) { - _vitalityPoints = value; + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java index cf4932acb9..bb4254c982 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java @@ -462,12 +462,12 @@ public class PcStat extends PlayableStat { return Math.min(MAX_VITALITY_POINTS, getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).getVitalityPoints()); } - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public int getBaseVitalityPoints() { - return Math.min(MAX_VITALITY_POINTS, _vitalityPoints); + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public double getVitalityExpBonus() @@ -479,10 +479,10 @@ public class PcStat extends PlayableStat { if (getActiveChar().isSubClassActive()) { - getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(Math.min(MAX_VITALITY_POINTS, value)); + getActiveChar().getSubClasses().get(getActiveChar().getClassIndex()).setVitalityPoints(value); return; } - _vitalityPoints = Math.min(MAX_VITALITY_POINTS, value); + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /* diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/base/SubClass.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/base/SubClass.java index b3280d8f80..0e65764560 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/base/SubClass.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/base/SubClass.java @@ -36,6 +36,9 @@ public final class SubClass private int _vitalityPoints = 0; private boolean _dualClass = false; + public static final int MAX_VITALITY_POINTS = 140000; + public static final int MIN_VITALITY_POINTS = 0; + public SubClass() { // Used for specifying ALL attributes of a sub class directly, @@ -69,12 +72,12 @@ public final class SubClass public int getVitalityPoints() { - return _vitalityPoints; + return Math.min(Math.max(_vitalityPoints, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } public void setVitalityPoints(int value) { - _vitalityPoints = value; + _vitalityPoints = Math.min(Math.max(value, MIN_VITALITY_POINTS), MAX_VITALITY_POINTS); } /**