Extra checks for trigger skills by attack.

This commit is contained in:
MobiusDev
2017-09-21 22:04:12 +00:00
parent 99897b17c9
commit 23d3883d34
11 changed files with 151 additions and 55 deletions

View File

@@ -151,7 +151,11 @@ public final class TriggerSkillByAttack extends AbstractEffect
if ((target != null) && target.isCharacter())
{
SkillCaster.triggerCast(event.getAttacker(), (L2Character) target, triggerSkill);
final BuffInfo info = ((L2Character) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
if ((info == null) || (info.getSkill().getLevel() < triggerSkill.getLevel()))
{
SkillCaster.triggerCast(event.getAttacker(), (L2Character) target, triggerSkill);
}
}
}

View File

@@ -1109,6 +1109,20 @@ public final class CharEffectList
return;
}
// Fix for stacking trigger skills
if (skill.isTriggeredSkill())
{
final BuffInfo triggerInfo = info.getEffected().getEffectList().getBuffInfoBySkillId(skill.getId());
if (triggerInfo != null)
{
if (triggerInfo.getSkill().getLevel() >= skill.getLevel())
{
return;
}
stopAndRemove(triggerInfo);
}
}
// Passive effects are treated specially
if (skill.isPassive())
{