From 320147f56963fad9e48b3a119d9ca126886c7b2b Mon Sep 17 00:00:00 2001
From: Nos <NosBit@users.noreply.github.com>
Date: Mon, 27 Jan 2014 15:59:30 +0000
Subject: [PATCH] BETA: Fixed `TriggerSkillByDamage` effect it should not work
 for damage taken over time.

Reported by: facheme
Reviewed by: St3et
---
 .../game/data/scripts/handlers/effecthandlers/Backstab.java | 2 +-
 .../data/scripts/handlers/effecthandlers/CpDamPercent.java  | 2 +-
 .../data/scripts/handlers/effecthandlers/DamOverTime.java   | 2 +-
 .../scripts/handlers/effecthandlers/DamOverTimePercent.java | 2 +-
 .../data/scripts/handlers/effecthandlers/DeathLink.java     | 4 ++--
 .../data/scripts/handlers/effecthandlers/EnergyAttack.java  | 2 +-
 .../data/scripts/handlers/effecthandlers/FatalBlow.java     | 2 +-
 .../game/data/scripts/handlers/effecthandlers/HpDrain.java  | 2 +-
 .../game/data/scripts/handlers/effecthandlers/Lethal.java   | 6 +++---
 .../data/scripts/handlers/effecthandlers/MagicalAttack.java | 4 ++--
 .../scripts/handlers/effecthandlers/MagicalSoulAttack.java  | 4 ++--
 .../scripts/handlers/effecthandlers/PhysicalAttack.java     | 2 +-
 .../handlers/effecthandlers/PhysicalAttackHpLink.java       | 2 +-
 .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 2 +-
 .../game/data/scripts/handlers/effecthandlers/SoulBlow.java | 2 +-
 .../data/scripts/handlers/effecthandlers/StaticDamage.java  | 2 +-
 .../handlers/effecthandlers/TriggerSkillByDamage.java       | 4 ++--
 .../data/scripts/handlers/skillhandlers/BallistaBomb.java   | 2 +-
 18 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Backstab.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Backstab.java
index 60de8e0a69..93b552fa8d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Backstab.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Backstab.java
@@ -79,7 +79,7 @@ public final class Backstab extends AbstractEffect
 		}
 		
 		target.reduceCurrentHp(damage, activeChar, info.getSkill());
-		target.notifyDamageReceived(damage, activeChar, info.getSkill(), true);
+		target.notifyDamageReceived(damage, activeChar, info.getSkill(), true, false);
 		
 		// Manage attack or cast break of the target (calculating rate, sending message...)
 		if (!target.isRaid() && Formulas.calcAtkBreak(target, damage))
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpDamPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpDamPercent.java
index 0ea4b13c78..fba1a8b309 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpDamPercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpDamPercent.java
@@ -72,7 +72,7 @@ public final class CpDamPercent extends AbstractEffect
 				if (info.getEffected() != info.getEffector())
 				{
 					info.getEffector().sendDamageMessage(info.getEffected(), damage, false, false, false);
-					info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false);
+					info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false, false);
 				}
 			}
 			// Check if damage should be reflected
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DamOverTime.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DamOverTime.java
index 2d29dda1e3..0f7ae423c0 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DamOverTime.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DamOverTime.java
@@ -74,7 +74,7 @@ public final class DamOverTime extends AbstractEffect
 		}
 		
 		info.getEffected().reduceCurrentHpByDOT(damage, info.getEffector(), info.getSkill());
-		info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false);
+		info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false, true);
 		return info.getSkill().isToggle();
 	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DamOverTimePercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DamOverTimePercent.java
index b40cbf2c5e..4deae41ef0 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DamOverTimePercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DamOverTimePercent.java
@@ -75,7 +75,7 @@ public final class DamOverTimePercent extends AbstractEffect
 			}
 		}
 		info.getEffected().reduceCurrentHpByDOT(damage, info.getEffector(), info.getSkill());
-		info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false);
+		info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false, true);
 		
 		return info.getSkill().isToggle();
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DeathLink.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DeathLink.java
index 2ab8d4fe48..35be7721ec 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DeathLink.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/DeathLink.java
@@ -88,12 +88,12 @@ public final class DeathLink extends AbstractEffect
 			if (target.getStat().calcStat(Stats.VENGEANCE_SKILL_MAGIC_DAMAGE, 0, target, info.getSkill()) > Rnd.get(100))
 			{
 				activeChar.reduceCurrentHp(damage, target, info.getSkill());
-				activeChar.notifyDamageReceived(damage, target, info.getSkill(), mcrit);
+				activeChar.notifyDamageReceived(damage, target, info.getSkill(), mcrit, false);
 			}
 			else
 			{
 				target.reduceCurrentHp(damage, activeChar, info.getSkill());
-				target.notifyDamageReceived(damage, activeChar, info.getSkill(), mcrit);
+				target.notifyDamageReceived(damage, activeChar, info.getSkill(), mcrit, false);
 				activeChar.sendDamageMessage(target, damage, mcrit, false, false);
 			}
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java
index aea5c3cb62..b4869cbc7d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java
@@ -158,7 +158,7 @@ public final class EnergyAttack extends AbstractEffect
 		{
 			attacker.sendDamageMessage(target, (int) damage, false, critical, false);
 			target.reduceCurrentHp(damage, attacker, skill);
-			target.notifyDamageReceived(damage, attacker, skill, critical);
+			target.notifyDamageReceived(damage, attacker, skill, critical, false);
 			
 			// Check if damage should be reflected
 			Formulas.calcDamageReflected(attacker, target, skill, critical);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/FatalBlow.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/FatalBlow.java
index eb87143306..e0eb307ab2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/FatalBlow.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/FatalBlow.java
@@ -81,7 +81,7 @@ public final class FatalBlow extends AbstractEffect
 		}
 		
 		target.reduceCurrentHp(damage, activeChar, info.getSkill());
-		target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit);
+		target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);
 		
 		// Manage attack or cast break of the target (calculating rate, sending message...)
 		if (!target.isRaid() && Formulas.calcAtkBreak(target, damage))
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HpDrain.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HpDrain.java
index ef3442cae3..70c21fd1fc 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HpDrain.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HpDrain.java
@@ -99,7 +99,7 @@ public final class HpDrain extends AbstractEffect
 			}
 			activeChar.sendDamageMessage(target, damage, mcrit, false, false);
 			target.reduceCurrentHp(damage, activeChar, info.getSkill());
-			target.notifyDamageReceived(damage, activeChar, info.getSkill(), mcrit);
+			target.notifyDamageReceived(damage, activeChar, info.getSkill(), mcrit, false);
 		}
 	}
 }
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Lethal.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Lethal.java
index a76862c140..4221671a57 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Lethal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Lethal.java
@@ -83,7 +83,7 @@ public final class Lethal extends AbstractEffect
 			// for Players CP and HP is set to 1.
 			if (target.isPlayer())
 			{
-				target.notifyDamageReceived(target.getCurrentHp() - 1, info.getEffector(), info.getSkill(), true);
+				target.notifyDamageReceived(target.getCurrentHp() - 1, info.getEffector(), info.getSkill(), true, false);
 				target.setCurrentCp(1);
 				target.setCurrentHp(1);
 				target.sendPacket(SystemMessageId.LETHAL_STRIKE);
@@ -91,7 +91,7 @@ public final class Lethal extends AbstractEffect
 			// for Monsters HP is set to 1.
 			else if (target.isMonster() || target.isSummon())
 			{
-				target.notifyDamageReceived(target.getCurrentHp() - 1, info.getEffector(), info.getSkill(), true);
+				target.notifyDamageReceived(target.getCurrentHp() - 1, info.getEffector(), info.getSkill(), true, false);
 				target.setCurrentHp(1);
 			}
 			activeChar.sendPacket(SystemMessageId.LETHAL_STRIKE_SUCCESSFUL);
@@ -109,7 +109,7 @@ public final class Lethal extends AbstractEffect
 			// for Monsters HP is set to 50%.
 			else if (target.isMonster() || target.isSummon())
 			{
-				target.notifyDamageReceived(target.getCurrentHp() * 0.5, info.getEffector(), info.getSkill(), true);
+				target.notifyDamageReceived(target.getCurrentHp() * 0.5, info.getEffector(), info.getSkill(), true, false);
 				target.setCurrentHp(target.getCurrentHp() * 0.5);
 			}
 			activeChar.sendPacket(SystemMessageId.HALF_KILL);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MagicalAttack.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MagicalAttack.java
index 83a0a80de0..fd6aa35f74 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MagicalAttack.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MagicalAttack.java
@@ -88,12 +88,12 @@ public final class MagicalAttack extends AbstractEffect
 			if (target.getStat().calcStat(Stats.VENGEANCE_SKILL_MAGIC_DAMAGE, 0, target, info.getSkill()) > Rnd.get(100))
 			{
 				activeChar.reduceCurrentHp(damage, target, info.getSkill());
-				activeChar.notifyDamageReceived(damage, target, info.getSkill(), mcrit);
+				activeChar.notifyDamageReceived(damage, target, info.getSkill(), mcrit, false);
 			}
 			else
 			{
 				target.reduceCurrentHp(damage, activeChar, info.getSkill());
-				target.notifyDamageReceived(damage, activeChar, info.getSkill(), mcrit);
+				target.notifyDamageReceived(damage, activeChar, info.getSkill(), mcrit, false);
 				activeChar.sendDamageMessage(target, damage, mcrit, false, false);
 			}
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MagicalSoulAttack.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MagicalSoulAttack.java
index 299f763dbc..82461ecc90 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MagicalSoulAttack.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MagicalSoulAttack.java
@@ -100,12 +100,12 @@ public final class MagicalSoulAttack extends AbstractEffect
 			if (target.getStat().calcStat(Stats.VENGEANCE_SKILL_MAGIC_DAMAGE, 0, target, info.getSkill()) > Rnd.get(100))
 			{
 				activeChar.reduceCurrentHp(damage, target, info.getSkill());
-				activeChar.notifyDamageReceived(damage, target, info.getSkill(), mcrit);
+				activeChar.notifyDamageReceived(damage, target, info.getSkill(), mcrit, false);
 			}
 			else
 			{
 				target.reduceCurrentHp(damage, activeChar, info.getSkill());
-				target.notifyDamageReceived(damage, activeChar, info.getSkill(), mcrit);
+				target.notifyDamageReceived(damage, activeChar, info.getSkill(), mcrit, false);
 				activeChar.sendDamageMessage(target, damage, mcrit, false, false);
 			}
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
index a97f465551..0207e352dc 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
@@ -104,7 +104,7 @@ public final class PhysicalAttack extends AbstractEffect
 		{
 			activeChar.sendDamageMessage(target, damage, false, crit, false);
 			target.reduceCurrentHp(damage, activeChar, info.getSkill());
-			target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit);
+			target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);
 			
 			// Check if damage should be reflected
 			Formulas.calcDamageReflected(activeChar, target, info.getSkill(), crit);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java
index 51266ddee6..f7bdda2321 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java
@@ -94,7 +94,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect
 		{
 			activeChar.sendDamageMessage(target, damage, false, crit, false);
 			target.reduceCurrentHp(damage, activeChar, info.getSkill());
-			target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit);
+			target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);
 			
 			// Check if damage should be reflected.
 			Formulas.calcDamageReflected(activeChar, target, info.getSkill(), crit);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
index 80644c5a16..3c796ead08 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
@@ -110,7 +110,7 @@ public final class PhysicalSoulAttack extends AbstractEffect
 		{
 			activeChar.sendDamageMessage(target, damage, false, crit, false);
 			target.reduceCurrentHp(damage, activeChar, info.getSkill());
-			target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit);
+			target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);
 			
 			// Check if damage should be reflected
 			Formulas.calcDamageReflected(activeChar, target, info.getSkill(), crit);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SoulBlow.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SoulBlow.java
index d6980fa993..b9f9b7527f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SoulBlow.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SoulBlow.java
@@ -90,7 +90,7 @@ public final class SoulBlow extends AbstractEffect
 		}
 		
 		target.reduceCurrentHp(damage, activeChar, info.getSkill());
-		target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit);
+		target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);
 		
 		// Manage attack or cast break of the target (calculating rate, sending message...)
 		if (!target.isRaid() && Formulas.calcAtkBreak(target, damage))
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/StaticDamage.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/StaticDamage.java
index 0a13cadc17..302ce8c5a6 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/StaticDamage.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/StaticDamage.java
@@ -56,7 +56,7 @@ public final class StaticDamage extends AbstractEffect
 		}
 		
 		info.getEffected().reduceCurrentHp(getValue(), info.getEffector(), info.getSkill());
-		info.getEffected().notifyDamageReceived(getValue(), info.getEffector(), info.getSkill(), false);
+		info.getEffected().notifyDamageReceived(getValue(), info.getEffector(), info.getSkill(), false, false);
 		
 		if (info.getEffector().isPlayer())
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDamage.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDamage.java
index 50d1885daf..5d3035df5c 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDamage.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDamage.java
@@ -60,9 +60,9 @@ public class TriggerSkillByDamage extends AbstractEffect implements IDamageRecei
 	}
 	
 	@Override
-	public void onDamageReceivedEvent(L2Character attacker, L2Character target, double damage, L2Skill skill, boolean crit)
+	public void onDamageReceivedEvent(L2Character attacker, L2Character target, double damage, L2Skill skill, boolean crit, boolean damageOverTime)
 	{
-		if ((_chance == 0) || (_skill.getSkillLvl() == 0))
+		if (damageOverTime || (_chance == 0) || (_skill.getSkillLvl() == 0))
 		{
 			return;
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/BallistaBomb.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/BallistaBomb.java
index 078de85fa1..dd58298ce6 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/BallistaBomb.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/BallistaBomb.java
@@ -54,7 +54,7 @@ public class BallistaBomb implements ISkillHandler
 			{
 				target.setIsInvul(false);
 				target.reduceCurrentHp(target.getMaxHp() + 1, activeChar, skill);
-				target.notifyDamageReceived(target.getMaxHp() + 1, activeChar, skill, false);
+				target.notifyDamageReceived(target.getMaxHp() + 1, activeChar, skill, false, false);
 			}
 		}
 	}
-- 
GitLab