Effect list broadcast issue fix.
Contributed by Liamxroy.
This commit is contained in:
@@ -95,7 +95,7 @@ public final class DispelBySlot extends AbstractEffect
|
||||
|
||||
final Short abnormalLevel = _dispelAbnormals.get(info.getSkill().getAbnormalType());
|
||||
return (abnormalLevel != null) && ((abnormalLevel < 0) || (abnormalLevel >= info.getSkill().getAbnormalLvl()));
|
||||
}, true);
|
||||
}, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -74,6 +74,6 @@ public final class DispelBySlotMyself extends AbstractEffect
|
||||
}
|
||||
|
||||
// The effectlist should already check if it has buff with this abnormal type or not.
|
||||
effected.getEffectList().stopEffects(info -> !info.getSkill().isIrreplacableBuff() && _dispelAbnormals.contains(info.getSkill().getAbnormalType()), true);
|
||||
effected.getEffectList().stopEffects(info -> !info.getSkill().isIrreplacableBuff() && _dispelAbnormals.contains(info.getSkill().getAbnormalType()), true, true);
|
||||
}
|
||||
}
|
||||
|
@@ -98,6 +98,6 @@ public final class DispelBySlotProbability extends AbstractEffect
|
||||
|
||||
final Short abnormalLevel = (Rnd.get(100) < _rate) ? _dispelAbnormals.get(info.getSkill().getAbnormalType()) : null;
|
||||
return (abnormalLevel != null) && ((abnormalLevel < 0) || (abnormalLevel >= info.getSkill().getAbnormalLvl()));
|
||||
}, true);
|
||||
}, true, true);
|
||||
}
|
||||
}
|
||||
|
@@ -76,7 +76,7 @@ public final class StealAbnormal extends AbstractEffect
|
||||
stolen.setAbnormalTime(infoToSteal.getTime()); // Copy the remaining time.
|
||||
// To include all the effects, it's required to go through the template rather the buff info.
|
||||
infoToSteal.getSkill().applyEffectScope(EffectScope.GENERAL, stolen, true, true);
|
||||
effected.getEffectList().remove(infoToSteal, true, true);
|
||||
effected.getEffectList().remove(infoToSteal, true, true, true);
|
||||
effector.getEffectList().add(stolen);
|
||||
}
|
||||
}
|
||||
|
@@ -491,7 +491,7 @@ public final class Kamaloka extends AbstractInstance
|
||||
private static final void removeBuffs(L2Character ch)
|
||||
{
|
||||
// Stop all buffs.
|
||||
ch.getEffectList().stopEffects(info -> (info != null) && !info.getSkill().isStayAfterDeath() && (Arrays.binarySearch(BUFFS_WHITELIST, info.getSkill().getId()) < 0), true);
|
||||
ch.getEffectList().stopEffects(info -> (info != null) && !info.getSkill().isStayAfterDeath() && (Arrays.binarySearch(BUFFS_WHITELIST, info.getSkill().getId()) < 0), true, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user