Effect list broadcast issue fix.

Contributed by Liamxroy.
This commit is contained in:
MobiusDev
2017-09-26 15:41:55 +00:00
parent 9816651177
commit ebc4a789e6
47 changed files with 443 additions and 383 deletions

View File

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

View File

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

View File

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

View File

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

View File

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