From 31440495f4b0937a71f5ec337c7f9730170bb704 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 1 Sep 2020 22:10:42 +0000 Subject: [PATCH] Summon except master auto use skill check. --- .../model/actor/instance/PlayerInstance.java | 21 +++++++++++++++++++ .../model/actor/instance/PlayerInstance.java | 21 +++++++++++++++++++ 2 files changed, 42 insertions(+) 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); } }