Check toggle and enchant passive skills for item equip.

This commit is contained in:
MobiusDevelopment 2019-05-15 02:44:16 +00:00
parent 1b4a4bc697
commit a16afedb8b
12 changed files with 672 additions and 12 deletions

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -375,6 +376,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -415,7 +444,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -451,6 +486,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -378,6 +379,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -429,7 +458,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -468,6 +503,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -378,6 +379,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -429,7 +458,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -468,6 +503,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -378,6 +379,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -429,7 +458,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -468,6 +503,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -383,6 +384,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -434,7 +463,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -473,6 +508,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -406,6 +407,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -457,7 +486,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -496,6 +531,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -406,6 +407,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -457,7 +486,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -496,6 +531,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -378,6 +379,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -429,7 +458,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -468,6 +503,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -378,6 +379,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -429,7 +458,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -468,6 +503,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -383,6 +384,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -434,7 +463,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -473,6 +508,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -406,6 +407,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -457,7 +486,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -496,6 +531,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));

View File

@ -58,6 +58,7 @@ import org.l2jmobius.gameserver.model.items.type.EtcItemType;
import org.l2jmobius.gameserver.model.items.type.ItemType;
import org.l2jmobius.gameserver.model.items.type.WeaponType;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.skills.SkillConditionScope;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoEquipSlot;
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
@ -406,6 +407,34 @@ public abstract class Inventory extends ItemContainer
}
}
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
player.removeSkill(holder.getSkill(), false, holder.getSkill().isPassive());
update.compareAndSet(false, true);
}
}
});
}
// Must check for toggle skill item conditions.
for (Skill skill : player.getSkills().values())
{
if (skill.isToggle() && player.isAffectedBySkill(skill.getId()) && !skill.checkConditions(SkillConditionScope.GENERAL, player, player))
{
player.stopSkillEffects(true, skill.getId());
update.compareAndSet(false, true);
}
}
// Apply skill, if weapon have "skills on unequip"
it.forEachSkill(ItemSkillType.ON_UNEQUIP, holder -> holder.getSkill().activateSkill(player, player));
@ -457,7 +486,13 @@ public abstract class Inventory extends ItemContainer
// Add skills bestowed from +4 armor
if (item.getEnchantLevel() >= holder.getValue())
{
player.addSkill(holder.getSkill(), false);
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
@ -496,6 +531,26 @@ public abstract class Inventory extends ItemContainer
}
});
// Must check all equipped items for enchant conditions.
for (ItemInstance equipped : inventory.getPaperdollItems())
{
equipped.getItem().forEachSkill(ItemSkillType.ON_ENCHANT, holder ->
{
// Add skills bestowed from +4 armor
if (equipped.getEnchantLevel() >= holder.getValue())
{
final Skill skill = holder.getSkill();
// Check passive skill conditions.
if (skill.isPassive() && !skill.checkConditions(SkillConditionScope.PASSIVE, player, player))
{
return;
}
player.addSkill(skill, false);
update.compareAndSet(false, true);
}
});
}
// Apply skill, if weapon have "skills on equip"
item.getItem().forEachSkill(ItemSkillType.ON_EQUIP, holder -> holder.getSkill().activateSkill(player, player));