Proper display for shadow and light souls.
This commit is contained in:
@@ -11193,7 +11193,7 @@ public class PlayerInstance extends Playable
|
|||||||
// TODO: Unhardcode?
|
// TODO: Unhardcode?
|
||||||
if ((getRace() == Race.KAMAEL) && (_souls >= 100))
|
if ((getRace() == Race.KAMAEL) && (_souls >= 100))
|
||||||
{
|
{
|
||||||
int skillLevel = getSkillLevel(KAMAEL_SHADOW_MASTER);
|
int skillLevel = getShadowMasterLevel();
|
||||||
if (skillLevel > 0)
|
if (skillLevel > 0)
|
||||||
{
|
{
|
||||||
abortCast();
|
abortCast();
|
||||||
@@ -11202,7 +11202,7 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
skillLevel = getSkillLevel(KAMAEL_LIGHT_MASTER);
|
skillLevel = getLightMasterLevel();
|
||||||
if (skillLevel > 0)
|
if (skillLevel > 0)
|
||||||
{
|
{
|
||||||
abortCast();
|
abortCast();
|
||||||
@@ -11213,6 +11213,16 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getLightMasterLevel()
|
||||||
|
{
|
||||||
|
return getSkillLevel(KAMAEL_LIGHT_MASTER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getShadowMasterLevel()
|
||||||
|
{
|
||||||
|
return getSkillLevel(KAMAEL_SHADOW_MASTER);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decreases existing Souls.
|
* Decreases existing Souls.
|
||||||
* @param count
|
* @param count
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
package org.l2jmobius.gameserver.network.serverpackets;
|
package org.l2jmobius.gameserver.network.serverpackets;
|
||||||
|
|
||||||
import org.l2jmobius.commons.network.PacketWriter;
|
import org.l2jmobius.commons.network.PacketWriter;
|
||||||
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||||
@@ -27,6 +28,8 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
public class EtcStatusUpdate implements IClientOutgoingPacket
|
public class EtcStatusUpdate implements IClientOutgoingPacket
|
||||||
{
|
{
|
||||||
private final PlayerInstance _player;
|
private final PlayerInstance _player;
|
||||||
|
private final boolean _isLight;
|
||||||
|
private final boolean _isShadow;
|
||||||
private int _mask;
|
private int _mask;
|
||||||
|
|
||||||
public EtcStatusUpdate(PlayerInstance player)
|
public EtcStatusUpdate(PlayerInstance player)
|
||||||
@@ -35,6 +38,17 @@ public class EtcStatusUpdate implements IClientOutgoingPacket
|
|||||||
_mask = _player.getMessageRefusal() || _player.isChatBanned() || _player.isSilenceMode() ? 1 : 0;
|
_mask = _player.getMessageRefusal() || _player.isChatBanned() || _player.isSilenceMode() ? 1 : 0;
|
||||||
_mask |= _player.isInsideZone(ZoneId.DANGER_AREA) ? 2 : 0;
|
_mask |= _player.isInsideZone(ZoneId.DANGER_AREA) ? 2 : 0;
|
||||||
_mask |= _player.hasCharmOfCourage() ? 4 : 0;
|
_mask |= _player.hasCharmOfCourage() ? 4 : 0;
|
||||||
|
|
||||||
|
if (_player.getRace() == Race.KAMAEL)
|
||||||
|
{
|
||||||
|
_isLight = _player.getLightMasterLevel() > 0;
|
||||||
|
_isShadow = _player.getShadowMasterLevel() > 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_isLight = false;
|
||||||
|
_isShadow = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -47,8 +61,10 @@ public class EtcStatusUpdate implements IClientOutgoingPacket
|
|||||||
packet.writeC(0); // Weapon Grade Penalty [1-4]
|
packet.writeC(0); // Weapon Grade Penalty [1-4]
|
||||||
packet.writeC(0); // Armor Grade Penalty [1-4]
|
packet.writeC(0); // Armor Grade Penalty [1-4]
|
||||||
packet.writeC(0); // Death Penalty [1-15, 0 = disabled)], not used anymore in Ertheia
|
packet.writeC(0); // Death Penalty [1-15, 0 = disabled)], not used anymore in Ertheia
|
||||||
packet.writeC(_player.getChargedSouls());
|
packet.writeC(!_isShadow && !_isLight ? _player.getChargedSouls() : 0);
|
||||||
packet.writeC(_mask);
|
packet.writeC(_mask);
|
||||||
|
packet.writeC(_isShadow ? _player.getChargedSouls() : 0); // Shadow souls
|
||||||
|
packet.writeC(_isLight ? _player.getChargedSouls() : 0); // Light souls
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -11232,7 +11232,7 @@ public class PlayerInstance extends Playable
|
|||||||
// TODO: Unhardcode?
|
// TODO: Unhardcode?
|
||||||
if ((getRace() == Race.KAMAEL) && (_souls >= 100))
|
if ((getRace() == Race.KAMAEL) && (_souls >= 100))
|
||||||
{
|
{
|
||||||
int skillLevel = getSkillLevel(KAMAEL_SHADOW_MASTER);
|
int skillLevel = getShadowMasterLevel();
|
||||||
if (skillLevel > 0)
|
if (skillLevel > 0)
|
||||||
{
|
{
|
||||||
abortCast();
|
abortCast();
|
||||||
@@ -11241,7 +11241,7 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
skillLevel = getSkillLevel(KAMAEL_LIGHT_MASTER);
|
skillLevel = getLightMasterLevel();
|
||||||
if (skillLevel > 0)
|
if (skillLevel > 0)
|
||||||
{
|
{
|
||||||
abortCast();
|
abortCast();
|
||||||
@@ -11252,6 +11252,16 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getLightMasterLevel()
|
||||||
|
{
|
||||||
|
return getSkillLevel(KAMAEL_LIGHT_MASTER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getShadowMasterLevel()
|
||||||
|
{
|
||||||
|
return getSkillLevel(KAMAEL_SHADOW_MASTER);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decreases existing Souls.
|
* Decreases existing Souls.
|
||||||
* @param count
|
* @param count
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
package org.l2jmobius.gameserver.network.serverpackets;
|
package org.l2jmobius.gameserver.network.serverpackets;
|
||||||
|
|
||||||
import org.l2jmobius.commons.network.PacketWriter;
|
import org.l2jmobius.commons.network.PacketWriter;
|
||||||
|
import org.l2jmobius.gameserver.enums.Race;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
import org.l2jmobius.gameserver.network.OutgoingPackets;
|
||||||
@@ -27,6 +28,8 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
public class EtcStatusUpdate implements IClientOutgoingPacket
|
public class EtcStatusUpdate implements IClientOutgoingPacket
|
||||||
{
|
{
|
||||||
private final PlayerInstance _player;
|
private final PlayerInstance _player;
|
||||||
|
private final boolean _isLight;
|
||||||
|
private final boolean _isShadow;
|
||||||
private int _mask;
|
private int _mask;
|
||||||
|
|
||||||
public EtcStatusUpdate(PlayerInstance player)
|
public EtcStatusUpdate(PlayerInstance player)
|
||||||
@@ -35,6 +38,17 @@ public class EtcStatusUpdate implements IClientOutgoingPacket
|
|||||||
_mask = _player.getMessageRefusal() || _player.isChatBanned() || _player.isSilenceMode() ? 1 : 0;
|
_mask = _player.getMessageRefusal() || _player.isChatBanned() || _player.isSilenceMode() ? 1 : 0;
|
||||||
_mask |= _player.isInsideZone(ZoneId.DANGER_AREA) ? 2 : 0;
|
_mask |= _player.isInsideZone(ZoneId.DANGER_AREA) ? 2 : 0;
|
||||||
_mask |= _player.hasCharmOfCourage() ? 4 : 0;
|
_mask |= _player.hasCharmOfCourage() ? 4 : 0;
|
||||||
|
|
||||||
|
if (_player.getRace() == Race.KAMAEL)
|
||||||
|
{
|
||||||
|
_isLight = _player.getLightMasterLevel() > 0;
|
||||||
|
_isShadow = _player.getShadowMasterLevel() > 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_isLight = false;
|
||||||
|
_isShadow = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -47,10 +61,10 @@ public class EtcStatusUpdate implements IClientOutgoingPacket
|
|||||||
packet.writeC(0); // Weapon Grade Penalty [1-4]
|
packet.writeC(0); // Weapon Grade Penalty [1-4]
|
||||||
packet.writeC(0); // Armor Grade Penalty [1-4]
|
packet.writeC(0); // Armor Grade Penalty [1-4]
|
||||||
packet.writeC(0); // Death Penalty [1-15, 0 = disabled)], not used anymore in Ertheia
|
packet.writeC(0); // Death Penalty [1-15, 0 = disabled)], not used anymore in Ertheia
|
||||||
packet.writeC(_player.getChargedSouls());
|
packet.writeC(!_isShadow && !_isLight ? _player.getChargedSouls() : 0);
|
||||||
packet.writeC(_mask);
|
packet.writeC(_mask);
|
||||||
packet.writeC(0); // Shadow souls
|
packet.writeC(_isShadow ? _player.getChargedSouls() : 0); // Shadow souls
|
||||||
packet.writeC(0); // Light souls
|
packet.writeC(_isLight ? _player.getChargedSouls() : 0); // Light souls
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user