Fixed restoring experience gain prohibition.
This commit is contained in:
@ -194,6 +194,8 @@ import org.l2jmobius.gameserver.model.entity.Hero;
|
||||
import org.l2jmobius.gameserver.model.entity.Siege;
|
||||
import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
|
||||
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAbilityPointsChanged;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerEquipItem;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerFameChanged;
|
||||
@ -210,6 +212,8 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPvPCha
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPvPKill;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerReputationChanged;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSubChange;
|
||||
import org.l2jmobius.gameserver.model.events.listeners.FunctionEventListener;
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.fishing.Fishing;
|
||||
import org.l2jmobius.gameserver.model.holders.AttendanceInfoHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
@ -13655,6 +13659,25 @@ public class PlayerInstance extends Playable
|
||||
vars.storeMe();
|
||||
}
|
||||
|
||||
private TerminateReturn onExperienceReceived()
|
||||
{
|
||||
if (isDead())
|
||||
{
|
||||
return new TerminateReturn(false, false, false);
|
||||
}
|
||||
return new TerminateReturn(true, true, true);
|
||||
}
|
||||
|
||||
public void disableExpGain()
|
||||
{
|
||||
addListener(new FunctionEventListener(this, EventType.ON_PLAYABLE_EXP_CHANGED, (OnPlayableExpChanged event) -> onExperienceReceived(), this));
|
||||
}
|
||||
|
||||
public void enableExpGain()
|
||||
{
|
||||
removeListenerIf(EventType.ON_PLAYABLE_EXP_CHANGED, listener -> listener.getOwner() == this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the last commission infos.
|
||||
* @return the last commission infos
|
||||
|
@ -612,6 +612,13 @@ public class EnterWorld implements IClientIncomingPacket
|
||||
OfflineTradersTable.onTransaction(player, true, false);
|
||||
}
|
||||
|
||||
// Check if expoff is enabled.
|
||||
if (player.getVariables().getBoolean("EXPOFF", false))
|
||||
{
|
||||
player.disableExpGain();
|
||||
player.sendMessage("Experience gain is disabled.");
|
||||
}
|
||||
|
||||
player.broadcastUserInfo();
|
||||
|
||||
if (BeautyShopData.getInstance().hasBeautyData(player.getRace(), player.getAppearance().getSexType()))
|
||||
|
Reference in New Issue
Block a user