Extra checks for trigger skills by attack.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user