Fixed getVitalityExpBonus always returning 1.

This commit is contained in:
MobiusDevelopment 2021-10-17 20:45:55 +00:00
parent 4de00e10c4
commit 0a1539c9cd
4 changed files with 18 additions and 24 deletions

View File

@ -477,12 +477,15 @@ public class PlayerStat extends PlayableStat
public double getVitalityExpBonus() public double getVitalityExpBonus()
{ {
final double bonus = (getVitalityPoints() > 0) ? getMul(Stat.VITALITY_EXP_RATE, Config.RATE_VITALITY_EXP_MULTIPLIER) : 1; if (getVitalityPoints() > 0)
if ((bonus == 1) && (getActiveChar().getLimitedSayhaGraceEndTime() > Chronos.currentTimeMillis())) {
return getValue(Stat.VITALITY_EXP_RATE, Config.RATE_VITALITY_EXP_MULTIPLIER);
}
if (getActiveChar().getLimitedSayhaGraceEndTime() > Chronos.currentTimeMillis())
{ {
return Config.RATE_LIMITED_SAYHA_GRACE_EXP_MULTIPLIER; return Config.RATE_LIMITED_SAYHA_GRACE_EXP_MULTIPLIER;
} }
return bonus; return 1;
} }
public void setVitalityPoints(int value) public void setVitalityPoints(int value)

View File

@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.enums.BonusExpType; import org.l2jmobius.gameserver.enums.BonusExpType;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -48,16 +47,11 @@ public class ExUserBoostStat implements IClientOutgoingPacket
{ {
case VITALITY: case VITALITY:
{ {
if (_player.getStat().getVitalityPoints() > 0) final int vitalityBonus = (int) (_player.getStat().getVitalityExpBonus() * 100);
if (vitalityBonus > 0)
{ {
count = 1; count = 1;
bonus = (int) (Config.RATE_VITALITY_EXP_MULTIPLIER * 100); bonus = vitalityBonus;
}
if (bonus > 0)
{
count += (int) _player.getStat().getValue(Stat.VITALITY_SKILLS, 0);
bonus += (int) ((_player.getStat().getMul(Stat.VITALITY_EXP_RATE, 1) - 1) * 100);
} }
break; break;
} }

View File

@ -477,12 +477,15 @@ public class PlayerStat extends PlayableStat
public double getVitalityExpBonus() public double getVitalityExpBonus()
{ {
final double bonus = (getVitalityPoints() > 0) ? getMul(Stat.VITALITY_EXP_RATE, Config.RATE_VITALITY_EXP_MULTIPLIER) : 1; if (getVitalityPoints() > 0)
if ((bonus == 1) && (getActiveChar().getLimitedSayhaGraceEndTime() > Chronos.currentTimeMillis())) {
return getValue(Stat.VITALITY_EXP_RATE, Config.RATE_VITALITY_EXP_MULTIPLIER);
}
if (getActiveChar().getLimitedSayhaGraceEndTime() > Chronos.currentTimeMillis())
{ {
return Config.RATE_LIMITED_SAYHA_GRACE_EXP_MULTIPLIER; return Config.RATE_LIMITED_SAYHA_GRACE_EXP_MULTIPLIER;
} }
return bonus; return 1;
} }
public void setVitalityPoints(int value) public void setVitalityPoints(int value)

View File

@ -16,7 +16,6 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets; package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.enums.BonusExpType; import org.l2jmobius.gameserver.enums.BonusExpType;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -48,16 +47,11 @@ public class ExUserBoostStat implements IClientOutgoingPacket
{ {
case VITALITY: case VITALITY:
{ {
if (_player.getStat().getVitalityPoints() > 0) final int vitalityBonus = (int) (_player.getStat().getVitalityExpBonus() * 100);
if (vitalityBonus > 0)
{ {
count = 1; count = 1;
bonus = (int) (Config.RATE_VITALITY_EXP_MULTIPLIER * 100); bonus = vitalityBonus;
}
if (bonus > 0)
{
count += (int) _player.getStat().getValue(Stat.VITALITY_SKILLS, 0);
bonus += (int) ((_player.getStat().getMul(Stat.VITALITY_EXP_RATE, 1) - 1) * 100);
} }
break; break;
} }