Addition of optional GiveXp level and percentage parameters.
This commit is contained in:
@@ -18,6 +18,7 @@ package handlers.effecthandlers;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
@@ -29,10 +30,14 @@ import org.l2jmobius.gameserver.model.skill.Skill;
|
||||
public class GiveXp extends AbstractEffect
|
||||
{
|
||||
private final long _xp;
|
||||
private final int _level;
|
||||
private final double _percentage;
|
||||
|
||||
public GiveXp(StatSet params)
|
||||
{
|
||||
_xp = params.getLong("xp", 0);
|
||||
_level = params.getInt("level", 0);
|
||||
_percentage = params.getDouble("percentage", 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -49,6 +54,17 @@ public class GiveXp extends AbstractEffect
|
||||
return;
|
||||
}
|
||||
|
||||
effector.getActingPlayer().addExpAndSp(_xp, 0);
|
||||
final Player player = effector.getActingPlayer();
|
||||
final double amount;
|
||||
if (player.getLevel() < _level)
|
||||
{
|
||||
amount = (_xp / 100.0) * _percentage;
|
||||
}
|
||||
else
|
||||
{
|
||||
amount = _xp;
|
||||
}
|
||||
|
||||
player.addExpAndSp(amount, 0);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user