From da483f1ba5d130cd06953c880cd97c9e6a0bad7b Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 21 Jan 2020 00:10:44 +0000 Subject: [PATCH] DamageByAttack with MOB and BOSS parameters. --- .../handlers/effecthandlers/DamageByAttack.java | 10 ++++++++++ .../org/l2jmobius/gameserver/model/actor/Creature.java | 9 +++++++++ .../org/l2jmobius/gameserver/model/stats/Stats.java | 2 ++ .../handlers/effecthandlers/DamageByAttack.java | 10 ++++++++++ .../org/l2jmobius/gameserver/model/actor/Creature.java | 9 +++++++++ .../org/l2jmobius/gameserver/model/stats/Stats.java | 2 ++ .../handlers/effecthandlers/DamageByAttack.java | 10 ++++++++++ .../org/l2jmobius/gameserver/model/actor/Creature.java | 9 +++++++++ .../org/l2jmobius/gameserver/model/stats/Stats.java | 2 ++ .../handlers/effecthandlers/DamageByAttack.java | 10 ++++++++++ .../org/l2jmobius/gameserver/model/actor/Creature.java | 9 +++++++++ .../org/l2jmobius/gameserver/model/stats/Stats.java | 2 ++ .../handlers/effecthandlers/DamageByAttack.java | 10 ++++++++++ .../org/l2jmobius/gameserver/model/actor/Creature.java | 9 +++++++++ .../org/l2jmobius/gameserver/model/stats/Stats.java | 2 ++ .../handlers/effecthandlers/DamageByAttack.java | 10 ++++++++++ .../org/l2jmobius/gameserver/model/actor/Creature.java | 9 +++++++++ .../org/l2jmobius/gameserver/model/stats/Stats.java | 2 ++ .../handlers/effecthandlers/DamageByAttack.java | 10 ++++++++++ .../org/l2jmobius/gameserver/model/actor/Creature.java | 9 +++++++++ .../org/l2jmobius/gameserver/model/stats/Stats.java | 2 ++ .../data/scripts/handlers/EffectMasterHandler.java | 2 ++ .../handlers/effecthandlers/DamageByAttack.java | 10 ++++++++++ .../org/l2jmobius/gameserver/model/actor/Creature.java | 9 +++++++++ .../org/l2jmobius/gameserver/model/stats/Stats.java | 4 ++++ 25 files changed, 172 insertions(+) diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java index 3c01da4707..050d4fc3d6 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java @@ -63,6 +63,16 @@ public class DamageByAttack extends AbstractEffect target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN, _value); break; } + case MOB: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_MONSTER, _value); + break; + } + case BOSS: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_RAID, _value); + break; + } } } } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Creature.java index efd0047557..5f31609de7 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4520,6 +4520,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } + + if (attacker.isRaid() || attacker.isRaidMinion()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_RAID)) / 100; + } + else if (attacker.isMonster()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_MONSTER)) / 100; + } } if (Config.CHAMPION_ENABLE && isChampion() && (Config.CHAMPION_HP != 0)) diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stats.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stats.java index 4f230a9c56..3b067039aa 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stats.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stats.java @@ -111,6 +111,8 @@ public enum Stats // FIXED BONUS PVP_DAMAGE_TAKEN("pvpDamageTaken"), PVE_DAMAGE_TAKEN("pveDamageTaken"), + PVE_DAMAGE_TAKEN_MONSTER("pveDamageTakenMonster"), + PVE_DAMAGE_TAKEN_RAID("pveDamageTakenRaid"), // ATTACK & DEFENCE RATES MAGIC_CRITICAL_DAMAGE("mCritPower"), diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java index 3c01da4707..050d4fc3d6 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java @@ -63,6 +63,16 @@ public class DamageByAttack extends AbstractEffect target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN, _value); break; } + case MOB: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_MONSTER, _value); + break; + } + case BOSS: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_RAID, _value); + break; + } } } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Creature.java index efd0047557..5f31609de7 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4520,6 +4520,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } + + if (attacker.isRaid() || attacker.isRaidMinion()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_RAID)) / 100; + } + else if (attacker.isMonster()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_MONSTER)) / 100; + } } if (Config.CHAMPION_ENABLE && isChampion() && (Config.CHAMPION_HP != 0)) diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stats.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stats.java index 6024162755..78f71d11be 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stats.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stats.java @@ -111,6 +111,8 @@ public enum Stats // FIXED BONUS PVP_DAMAGE_TAKEN("pvpDamageTaken"), PVE_DAMAGE_TAKEN("pveDamageTaken"), + PVE_DAMAGE_TAKEN_MONSTER("pveDamageTakenMonster"), + PVE_DAMAGE_TAKEN_RAID("pveDamageTakenRaid"), // ATTACK & DEFENCE RATES MAGIC_CRITICAL_DAMAGE("mCritPower"), diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java index 3c01da4707..050d4fc3d6 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java @@ -63,6 +63,16 @@ public class DamageByAttack extends AbstractEffect target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN, _value); break; } + case MOB: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_MONSTER, _value); + break; + } + case BOSS: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_RAID, _value); + break; + } } } } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Creature.java index efd0047557..5f31609de7 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4520,6 +4520,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } + + if (attacker.isRaid() || attacker.isRaidMinion()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_RAID)) / 100; + } + else if (attacker.isMonster()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_MONSTER)) / 100; + } } if (Config.CHAMPION_ENABLE && isChampion() && (Config.CHAMPION_HP != 0)) diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stats.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stats.java index 6024162755..78f71d11be 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stats.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stats.java @@ -111,6 +111,8 @@ public enum Stats // FIXED BONUS PVP_DAMAGE_TAKEN("pvpDamageTaken"), PVE_DAMAGE_TAKEN("pveDamageTaken"), + PVE_DAMAGE_TAKEN_MONSTER("pveDamageTakenMonster"), + PVE_DAMAGE_TAKEN_RAID("pveDamageTakenRaid"), // ATTACK & DEFENCE RATES MAGIC_CRITICAL_DAMAGE("mCritPower"), diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java index 3c01da4707..050d4fc3d6 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java @@ -63,6 +63,16 @@ public class DamageByAttack extends AbstractEffect target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN, _value); break; } + case MOB: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_MONSTER, _value); + break; + } + case BOSS: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_RAID, _value); + break; + } } } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Creature.java index 1aab02ca77..2bba30d401 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4519,6 +4519,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } + + if (attacker.isRaid() || attacker.isRaidMinion()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_RAID)) / 100; + } + else if (attacker.isMonster()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_MONSTER)) / 100; + } } if (Config.CHAMPION_ENABLE && isChampion() && (Config.CHAMPION_HP != 0)) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stats.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stats.java index 6024162755..78f71d11be 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stats.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stats.java @@ -111,6 +111,8 @@ public enum Stats // FIXED BONUS PVP_DAMAGE_TAKEN("pvpDamageTaken"), PVE_DAMAGE_TAKEN("pveDamageTaken"), + PVE_DAMAGE_TAKEN_MONSTER("pveDamageTakenMonster"), + PVE_DAMAGE_TAKEN_RAID("pveDamageTakenRaid"), // ATTACK & DEFENCE RATES MAGIC_CRITICAL_DAMAGE("mCritPower"), diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java index 3c01da4707..050d4fc3d6 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java @@ -63,6 +63,16 @@ public class DamageByAttack extends AbstractEffect target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN, _value); break; } + case MOB: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_MONSTER, _value); + break; + } + case BOSS: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_RAID, _value); + break; + } } } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Creature.java index 3d301361af..be28acaa80 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4518,6 +4518,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe { value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } + + if (attacker.isRaid() || attacker.isRaidMinion()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_RAID)) / 100; + } + else if (attacker.isMonster()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_MONSTER)) / 100; + } } if (Config.CHAMPION_ENABLE && isChampion() && (Config.CHAMPION_HP != 0)) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stats.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stats.java index c13b232a25..7cf5e4f5b0 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stats.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stats.java @@ -111,6 +111,8 @@ public enum Stats // FIXED BONUS PVP_DAMAGE_TAKEN("pvpDamageTaken"), PVE_DAMAGE_TAKEN("pveDamageTaken"), + PVE_DAMAGE_TAKEN_MONSTER("pveDamageTakenMonster"), + PVE_DAMAGE_TAKEN_RAID("pveDamageTakenRaid"), // ATTACK & DEFENCE RATES MAGIC_CRITICAL_DAMAGE("mCritPower"), diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java index 3c01da4707..050d4fc3d6 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java @@ -63,6 +63,16 @@ public class DamageByAttack extends AbstractEffect target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN, _value); break; } + case MOB: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_MONSTER, _value); + break; + } + case BOSS: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_RAID, _value); + break; + } } } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java index fd97c49e09..dc7f59a8d4 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4528,6 +4528,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } + if (attacker.isRaid() || attacker.isRaidMinion()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_RAID)) / 100; + } + else if (attacker.isMonster()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_MONSTER)) / 100; + } + elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this, value); value += elementalDamage; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stats.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stats.java index 898ca0f523..433f448b71 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stats.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stats.java @@ -124,6 +124,8 @@ public enum Stats // FIXED BONUS PVP_DAMAGE_TAKEN("pvpDamageTaken"), PVE_DAMAGE_TAKEN("pveDamageTaken"), + PVE_DAMAGE_TAKEN_MONSTER("pveDamageTakenMonster"), + PVE_DAMAGE_TAKEN_RAID("pveDamageTakenRaid"), // ATTACK & DEFENCE RATES MAGIC_CRITICAL_DAMAGE("mCritPower"), diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java index 3c01da4707..050d4fc3d6 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java @@ -63,6 +63,16 @@ public class DamageByAttack extends AbstractEffect target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN, _value); break; } + case MOB: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_MONSTER, _value); + break; + } + case BOSS: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_RAID, _value); + break; + } } } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java index fd97c49e09..dc7f59a8d4 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4528,6 +4528,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } + if (attacker.isRaid() || attacker.isRaidMinion()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_RAID)) / 100; + } + else if (attacker.isMonster()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_MONSTER)) / 100; + } + elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this, value); value += elementalDamage; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stats.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stats.java index 898ca0f523..433f448b71 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stats.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stats.java @@ -124,6 +124,8 @@ public enum Stats // FIXED BONUS PVP_DAMAGE_TAKEN("pvpDamageTaken"), PVE_DAMAGE_TAKEN("pveDamageTaken"), + PVE_DAMAGE_TAKEN_MONSTER("pveDamageTakenMonster"), + PVE_DAMAGE_TAKEN_RAID("pveDamageTakenRaid"), // ATTACK & DEFENCE RATES MAGIC_CRITICAL_DAMAGE("mCritPower"), diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java index e6f50950a0..5dfe695d41 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -205,6 +205,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("MagicalSoulAttack", MagicalSoulAttack::new); EffectHandler.getInstance().registerHandler("MagicCriticalDamage", MagicCriticalDamage::new); EffectHandler.getInstance().registerHandler("MagicCriticalRate", MagicCriticalRate::new); + EffectHandler.getInstance().registerHandler("MagicCriticalRateByCriticalRate", MagicCriticalRateByCriticalRate::new); EffectHandler.getInstance().registerHandler("MagicMpCost", MagicMpCost::new); EffectHandler.getInstance().registerHandler("ManaCharge", ManaCharge::new); EffectHandler.getInstance().registerHandler("ManaDamOverTime", ManaDamOverTime::new); @@ -213,6 +214,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("ManaHealOverTime", ManaHealOverTime::new); EffectHandler.getInstance().registerHandler("ManaHealPercent", ManaHealPercent::new); EffectHandler.getInstance().registerHandler("MAtk", MAtk::new); + EffectHandler.getInstance().registerHandler("MAtkByPAtk", MAtkByPAtk::new); EffectHandler.getInstance().registerHandler("MaxCp", MaxCp::new); EffectHandler.getInstance().registerHandler("MaxHp", MaxHp::new); EffectHandler.getInstance().registerHandler("MaxMp", MaxMp::new); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java index 3c01da4707..050d4fc3d6 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/DamageByAttack.java @@ -63,6 +63,16 @@ public class DamageByAttack extends AbstractEffect target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN, _value); break; } + case MOB: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_MONSTER, _value); + break; + } + case BOSS: + { + target.getStat().mergeAdd(Stats.PVE_DAMAGE_TAKEN_RAID, _value); + break; + } } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java index 50c7fd66ef..b62f9118c3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -4527,6 +4527,15 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN)) / 100; } + if (attacker.isRaid() || attacker.isRaidMinion()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_RAID)) / 100; + } + else if (attacker.isMonster()) + { + value *= (100 + _stat.getValue(Stats.PVE_DAMAGE_TAKEN_MONSTER)) / 100; + } + elementalDamage = Formulas.calcSpiritElementalDamage(attacker, this, value); value += elementalDamage; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stats.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stats.java index 898ca0f523..ee579cf8f4 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stats.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stats.java @@ -80,6 +80,7 @@ public enum Stats MAGICAL_DEFENCE("mDef", new MDefenseFinalizer()), PHYSICAL_ATTACK("pAtk", new PAttackFinalizer()), MAGIC_ATTACK("mAtk", new MAttackFinalizer()), + MAGIC_ATTACK_BY_PHYSICAL_ATTACK("mAtkByPAtk"), PHYSICAL_ATTACK_SPEED("pAtkSpd", new PAttackSpeedFinalizer()), MAGIC_ATTACK_SPEED("mAtkSpd", new MAttackSpeedFinalizer()), // Magic Skill Casting Time Rate ATK_REUSE("atkReuse"), // Bows Hits Reuse Rate @@ -124,6 +125,8 @@ public enum Stats // FIXED BONUS PVP_DAMAGE_TAKEN("pvpDamageTaken"), PVE_DAMAGE_TAKEN("pveDamageTaken"), + PVE_DAMAGE_TAKEN_MONSTER("pveDamageTakenMonster"), + PVE_DAMAGE_TAKEN_RAID("pveDamageTakenRaid"), // ATTACK & DEFENCE RATES MAGIC_CRITICAL_DAMAGE("mCritPower"), @@ -137,6 +140,7 @@ public enum Stats CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), CRITICAL_RATE_SKILL("rCritSkill", Stats::defaultValue, MathUtil::add, MathUtil::add, 0, 1), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), + MAGIC_CRITICAL_RATE_BY_CRITICAL_RATE("mCritRateByRCrit"), BLOW_RATE("blowRate"), DEFENCE_CRITICAL_RATE("defCritRate"), DEFENCE_CRITICAL_RATE_ADD("defCritRateAdd"),