Ensoul rework/fixes.
Contributed by Mathael.
This commit is contained in:
parent
64347d719b
commit
24b3b00918
@ -988,9 +988,12 @@ public class PcInventory extends Inventory
|
||||
{
|
||||
item.giveSkillsToOwner();
|
||||
item.applyEnchantStats();
|
||||
if (item.isEquipped())
|
||||
{
|
||||
item.applySpecialAbilities();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reduce the number of arrows/bolts owned by the L2PcInstance and send it Server->Client Packet InventoryUpdate or ItemList (to unequip if the last arrow was consumed).
|
||||
|
@ -53,7 +53,7 @@ public class RequestItemEnsoul implements IClientIncomingPacket
|
||||
_options = new EnsoulItemOption[options];
|
||||
for (int i = 0; i < options; i++)
|
||||
{
|
||||
final int type = packet.readC();
|
||||
final int type = packet.readC(); // 1 = normal ; 2 = mystic
|
||||
final int position = packet.readC();
|
||||
final int soulCrystalObjectId = packet.readD();
|
||||
final int soulCrystalOption = packet.readD();
|
||||
@ -188,41 +188,25 @@ public class RequestItemEnsoul implements IClientIncomingPacket
|
||||
ItemHolder fee;
|
||||
if (itemOption.getType() == 1)
|
||||
{
|
||||
// Normal Soul Crystal
|
||||
fee = EnsoulData.getInstance().getEnsoulFee(item.getItem().getCrystalType(), position);
|
||||
if ((itemOption.getPosition() == 1) || (itemOption.getPosition() == 2))
|
||||
{
|
||||
if (item.getSpecialAbility(position) != null)
|
||||
{
|
||||
//LOGGER.warning("Player: " + player + " attempting to ensoul item option add but he's actually trying to replace!");
|
||||
fee = EnsoulData.getInstance().getResoulFee(item.getItem().getCrystalType(), position);
|
||||
}
|
||||
}
|
||||
else if (itemOption.getPosition() == 3)
|
||||
{
|
||||
if (item.getAdditionalSpecialAbility(position) != null)
|
||||
{
|
||||
LOGGER.warning("Player: " + player + " attempting to ensoul special item option add but he's actually trying to replace!");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (itemOption.getType() == 2)
|
||||
{
|
||||
// Mystic Soul Crystal
|
||||
fee = EnsoulData.getInstance().getEnsoulFee(item.getItem().getCrystalType(), position);
|
||||
if (itemOption.getPosition() == 1)
|
||||
{
|
||||
if (item.getAdditionalSpecialAbility(position) != null)
|
||||
{
|
||||
fee = EnsoulData.getInstance().getResoulFee(item.getItem().getCrystalType(), position);
|
||||
if ((itemOption.getPosition() == 1) || (itemOption.getPosition() == 2))
|
||||
{
|
||||
if (item.getSpecialAbility(position) == null)
|
||||
{
|
||||
LOGGER.warning("Player: " + player + " attempting to ensoul item option replace but he's actually trying to add!");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else if (itemOption.getPosition() == 3)
|
||||
{
|
||||
if (item.getAdditionalSpecialAbility(position) == null)
|
||||
{
|
||||
LOGGER.warning("Player: " + player + " attempting to ensoul special item option replace but he's actually trying to add!");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -234,7 +218,7 @@ public class RequestItemEnsoul implements IClientIncomingPacket
|
||||
|
||||
if (fee == null)
|
||||
{
|
||||
LOGGER.warning("Player: " + player + " attempting to ensoul item option that doesn't exists!");
|
||||
LOGGER.warning("Player: " + player + " attempting to ensoul item option that doesn't exists! (unknown fee)");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user