Pārlūkot izejas kodu

BETA: More skill related fixes:
* Song/Dances should be stolen/removed (first) when using Cancel type or Steal Divinity skills.
* Reported by: Gries
* Minor typo in !JavaDoc.
* Reported by: zatei

Zoey76 11 gadi atpakaļ
vecāks
revīzija
38dfa13152

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/AbnormalVisualEffect.java

@@ -90,7 +90,7 @@ public enum AbnormalVisualEffect
 	
 	/** Int mask. */
 	private final int _mask;
-	/** Type: 1 Normal, 2 Special, 3 Event. */
+	/** Type: 0 Normal, 1 Special, 2 Event. */
 	private final int _type;
 	
 	private AbnormalVisualEffect(int mask, int type)

+ 10 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/stats/Formulas.java

@@ -1999,8 +1999,16 @@ public final class Formulas
 					Debug.sendSkillDebug(activeChar, target, skill, set);
 				}
 				
-				final List<BuffInfo> buffs = new ArrayList<>(target.getEffectList().getBuffs().values());
-				buffs.addAll(target.getEffectList().getTriggered().values());
+				// Prevent initialization.
+				final List<BuffInfo> buffs = target.getEffectList().hasBuffs() ? new ArrayList<>(target.getEffectList().getBuffs().values()) : new ArrayList<BuffInfo>(1);
+				if (target.getEffectList().hasTriggered())
+				{
+					buffs.addAll(target.getEffectList().getTriggered().values());
+				}
+				if (target.getEffectList().hasDances())
+				{
+					buffs.addAll(target.getEffectList().getDances().values());
+				}
 				for (int i = buffs.size() - 1; i >= 0; i--) // reverse order
 				{
 					BuffInfo info = buffs.get(i);