diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index fa784fd1f9..c2fdbed334 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -265,6 +265,7 @@ import org.l2jmobius.gameserver.model.skills.CommonSkill; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.SkillCaster; import org.l2jmobius.gameserver.model.skills.SkillCastingType; +import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.model.stats.BaseStat; import org.l2jmobius.gameserver.model.stats.Formulas; @@ -14331,6 +14332,26 @@ public class PlayerInstance extends Playable } if (!isAffectedBySkill(skillId) && !isInsideZone(ZoneId.PEACE) && !hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(this, this, false)) { + // Summon check. + if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) + { + if (!hasServitors()) // Is this check truly needed? + { + continue; + } + int occurrences = 0; + for (Summon servitor : _servitors.values()) + { + if (servitor.isAffectedBySkill(skillId)) + { + occurrences++; + } + } + if (occurrences == _servitors.size()) + { + continue; + } + } doCast(skill); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index da71bf283b..5b02966ecf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -266,6 +266,7 @@ import org.l2jmobius.gameserver.model.skills.CommonSkill; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.SkillCaster; import org.l2jmobius.gameserver.model.skills.SkillCastingType; +import org.l2jmobius.gameserver.model.skills.targets.AffectScope; import org.l2jmobius.gameserver.model.skills.targets.TargetType; import org.l2jmobius.gameserver.model.stats.BaseStat; import org.l2jmobius.gameserver.model.stats.Formulas; @@ -14278,6 +14279,26 @@ public class PlayerInstance extends Playable } if (!isAffectedBySkill(skillId) && !isInsideZone(ZoneId.PEACE) && !hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(this, this, false)) { + // Summon check. + if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) + { + if (!hasServitors()) // Is this check truly needed? + { + continue; + } + int occurrences = 0; + for (Summon servitor : _servitors.values()) + { + if (servitor.isAffectedBySkill(skillId)) + { + occurrences++; + } + } + if (occurrences == _servitors.size()) + { + continue; + } + } doCast(skill); } }