From aa6af15cb5cbd06e3054f24721b5f4841eec38df Mon Sep 17 00:00:00 2001 From: KayenEQ Date: Tue, 17 Jun 2014 15:49:56 -0400 Subject: [PATCH] Implemented SE_AddHatePct (Modifies +/- your total hate on NPC by percent) --- changelog.txt | 1 + common/spdat.h | 2 +- zone/spell_effects.cpp | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 7002939e6..698d84044 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,6 +5,7 @@ Kayen: Implemented SE_AStacker, SE_BStacker, SE_CStacker, SE_DStacker. These effects when present in buffs prevent each other from stacking, Any effect with B prevents A, C prevents B, D prevents C. Kayen: Implemented SE_DamageModifier2 (Stacks with SE_DamageModifier, mods damage by skill type) +Kayen: Implemented SE_AddHatePct (Modifies +/- your total hate on NPC by percent) == 06/13/2014 == Kayen: For table 'npc_spell_effects_entries' setting se_max for damage shield effects (59) will now determine the DS Type (ie burning) diff --git a/common/spdat.h b/common/spdat.h index 7e0367fd7..f03e944c9 100644 --- a/common/spdat.h +++ b/common/spdat.h @@ -602,7 +602,7 @@ typedef enum { #define SE_SpellThresholdGuard 452 // implemented Partial Spell Rune that only is lowered if spell hits are over X amount of damage #define SE_TriggerMeleeThreshold 453 // implemented Trigger effect on X amount of melee damage taken #define SE_TriggerSpellThreshold 454 // implemented Trigger effect on X amount of spell damage taken -//#define SE_AddHatePct 455 // not used +#define SE_AddHatePct 455 // implement - Modify total hate by % //#define SE_AddHateOverTimePct 456 // not used //#define SE_ResourceTap 457 // not used //#define SE_FactionModPct 458 // not used diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index 2c83ef1cd..f78d0e5c5 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -2668,6 +2668,14 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial) SlowMitigation(caster); break; + case SE_AddHatePct: + { + if (IsNPC()) + CastToNPC()->SetHate(caster, (CastToNPC()->GetHateAmount(caster) * (100 + spell.base[i]) / 100)); + + break; + } + // Handled Elsewhere case SE_ImmuneFleeing: case SE_NegateSpellEffect: