Adjustments for ModifyMagicLampPoints effect handler.

This commit is contained in:
MobiusDevelopment 2021-01-14 05:34:22 +00:00
parent 023bc42c36
commit 0007463ff1
6 changed files with 8 additions and 6 deletions

View File

@ -56,6 +56,6 @@ public class ModifyMagicLampPoints extends AbstractEffect
return; return;
} }
MagicLampData.getInstance().addLampExp(player, _amount); MagicLampData.getInstance().addLampExp(player, _amount, false);
} }
} }

View File

@ -28,6 +28,7 @@ import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.GreaterMagicLampHolder; import org.l2jmobius.gameserver.model.holders.GreaterMagicLampHolder;
import org.l2jmobius.gameserver.model.holders.MagicLampDataHolder; import org.l2jmobius.gameserver.model.holders.MagicLampDataHolder;
import org.l2jmobius.gameserver.model.stats.Stat;
import org.l2jmobius.gameserver.network.serverpackets.magiclamp.ExMagicLampExpInfoUI; import org.l2jmobius.gameserver.network.serverpackets.magiclamp.ExMagicLampExpInfoUI;
/** /**
@ -68,11 +69,11 @@ public class MagicLampData implements IXmlReader
})); }));
} }
public void addLampExp(PlayerInstance player, double exp) public void addLampExp(PlayerInstance player, double exp, boolean rateModifiers)
{ {
if (Config.MAGIC_LAMP_ENABLE) if (Config.MAGIC_LAMP_ENABLE)
{ {
final int lampExp = (int) (exp * Config.MAGIC_LAMP_CHARGE_RATE); final int lampExp = (int) (exp * (rateModifiers ? Config.MAGIC_LAMP_CHARGE_RATE * player.getStat().getMul(Stat.MAGIC_LAMP_EXP_RATE, 1) : 1));
int calc = lampExp + player.getLampExp(); int calc = lampExp + player.getLampExp();
if (calc > Config.MAGIC_LAMP_MAX_LEVEL_EXP) if (calc > Config.MAGIC_LAMP_MAX_LEVEL_EXP)
{ {

View File

@ -896,7 +896,7 @@ public class Party extends AbstractPlayerGroup
} }
member.updateVitalityPoints(target.getVitalityPoints(member.getLevel(), exp, target.isRaid()), true, false); member.updateVitalityPoints(target.getVitalityPoints(member.getLevel(), exp, target.isRaid()), true, false);
PcCafePointsManager.getInstance().givePcCafePoint(member, exp); PcCafePointsManager.getInstance().givePcCafePoint(member, exp);
MagicLampData.getInstance().addLampExp(member, exp); MagicLampData.getInstance().addLampExp(member, exp, true);
} }
} }
else else

View File

@ -531,7 +531,7 @@ public class Attackable extends Npc
attacker.updateVitalityPoints(getVitalityPoints(attacker.getLevel(), exp, _isRaid), true, false); attacker.updateVitalityPoints(getVitalityPoints(attacker.getLevel(), exp, _isRaid), true, false);
} }
PcCafePointsManager.getInstance().givePcCafePoint(attacker, exp); PcCafePointsManager.getInstance().givePcCafePoint(attacker, exp);
MagicLampData.getInstance().addLampExp(attacker, exp); MagicLampData.getInstance().addLampExp(attacker, exp, true);
} }
} }

View File

@ -3070,7 +3070,7 @@ public abstract class AbstractScript extends ManagedScript implements IEventTime
} }
player.addExpAndSp((long) player.getStat().getValue(Stat.EXPSP_RATE, (exp * Config.RATE_QUEST_REWARD_XP)), (int) player.getStat().getValue(Stat.EXPSP_RATE, (sp * Config.RATE_QUEST_REWARD_SP))); player.addExpAndSp((long) player.getStat().getValue(Stat.EXPSP_RATE, (exp * Config.RATE_QUEST_REWARD_XP)), (int) player.getStat().getValue(Stat.EXPSP_RATE, (sp * Config.RATE_QUEST_REWARD_SP)));
PcCafePointsManager.getInstance().givePcCafePoint(player, (long) (exp * Config.RATE_QUEST_REWARD_XP)); PcCafePointsManager.getInstance().givePcCafePoint(player, (long) (exp * Config.RATE_QUEST_REWARD_XP));
MagicLampData.getInstance().addLampExp(player, exp); MagicLampData.getInstance().addLampExp(player, exp, true);
} }
/** /**

View File

@ -227,6 +227,7 @@ public enum AbnormalType
AVE_BROOCH(-1), AVE_BROOCH(-1),
BOOST_ATTACK(-1), BOOST_ATTACK(-1),
BOOST_DEFENCE(-1), BOOST_DEFENCE(-1),
MAGIC_LAMP_RATE(-1),
AB_HAWK_EYE(0), AB_HAWK_EYE(0),
ALL_ATTACK_DOWN(1), ALL_ATTACK_DOWN(1),
ALL_ATTACK_UP(2), ALL_ATTACK_UP(2),