Summon except master auto use skill check.

This commit is contained in:
MobiusDevelopment
2020-09-01 22:10:42 +00:00
parent b5596e480c
commit 31440495f4
2 changed files with 42 additions and 0 deletions

View File

@@ -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);
}
}

View File

@@ -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);
}
}