PlayerInventory applyItemSkills should consider agathion skills.
Contributed by nasseka.
This commit is contained in:
parent
c7ed9f5b49
commit
b228e6d6c8
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,9 +41,12 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1008,6 +1012,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,9 +41,12 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1008,6 +1012,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,9 +41,12 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1008,6 +1012,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,9 +41,12 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1008,6 +1012,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,10 +41,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.Weapon;
|
import org.l2jmobius.gameserver.model.item.Weapon;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1009,6 +1013,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,10 +41,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.Weapon;
|
import org.l2jmobius.gameserver.model.item.Weapon;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1009,6 +1013,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,10 +41,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.Weapon;
|
import org.l2jmobius.gameserver.model.item.Weapon;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1009,6 +1013,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,9 +41,12 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1084,6 +1088,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,9 +41,12 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1084,6 +1088,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,9 +41,12 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1084,6 +1088,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,9 +41,12 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1084,6 +1088,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,10 +41,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.Weapon;
|
import org.l2jmobius.gameserver.model.item.Weapon;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1016,6 +1020,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,10 +41,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.Weapon;
|
import org.l2jmobius.gameserver.model.item.Weapon;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1016,6 +1020,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import java.util.logging.Logger;
|
|||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.database.DatabaseFactory;
|
import org.l2jmobius.commons.database.DatabaseFactory;
|
||||||
import org.l2jmobius.gameserver.data.ItemTable;
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.AgathionData;
|
||||||
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
import org.l2jmobius.gameserver.enums.InventoryBlockType;
|
||||||
import org.l2jmobius.gameserver.enums.ItemLocation;
|
import org.l2jmobius.gameserver.enums.ItemLocation;
|
||||||
import org.l2jmobius.gameserver.model.TradeItem;
|
import org.l2jmobius.gameserver.model.TradeItem;
|
||||||
@ -40,10 +41,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAd
|
|||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.AgathionSkillHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||||
import org.l2jmobius.gameserver.model.item.Weapon;
|
import org.l2jmobius.gameserver.model.item.Weapon;
|
||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
import org.l2jmobius.gameserver.model.item.type.EtcItemType;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.SkillConditionScope;
|
||||||
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
import org.l2jmobius.gameserver.model.variables.ItemVariables;
|
||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
@ -1016,6 +1020,43 @@ public class PlayerInventory extends Inventory
|
|||||||
if (item.isEquipped())
|
if (item.isEquipped())
|
||||||
{
|
{
|
||||||
item.applySpecialAbilities();
|
item.applySpecialAbilities();
|
||||||
|
|
||||||
|
if (((item.getLocationSlot() >= Inventory.PAPERDOLL_AGATHION1) && (item.getLocationSlot() <= Inventory.PAPERDOLL_AGATHION5)))
|
||||||
|
{
|
||||||
|
final AgathionSkillHolder agathionSkills = AgathionData.getInstance().getSkills(item.getId());
|
||||||
|
if (agathionSkills != null)
|
||||||
|
{
|
||||||
|
// Remove old skills.
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
_owner.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
|
||||||
|
}
|
||||||
|
// Add new skills.
|
||||||
|
if (item.getLocationSlot() == Inventory.PAPERDOLL_AGATHION1)
|
||||||
|
{
|
||||||
|
for (SkillHolder holder : agathionSkills.getMainSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SkillHolder holder : agathionSkills.getSubSkills(item.getEnchantLevel()))
|
||||||
|
{
|
||||||
|
if (holder.getSkill().isPassive() && !holder.getSkill().checkConditions(SkillConditionScope.PASSIVE, _owner, _owner))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_owner.addSkill(holder.getSkill(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user