diff --git a/changelog.txt b/changelog.txt index c4fa6cecf..97a68ad24 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,9 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- + +== 06/25/2014 == +Kayen: Updated SE_Hate (Renamed from SE_Hate2) to now properly work for instant +/- hate spells. + == 06/17/2014 == Kayen: Implemented SE_AStacker, SE_BStacker, SE_CStacker, SE_DStacker. These effects when present in buffs prevent each other from stacking, diff --git a/common/spdat.h b/common/spdat.h index b302e8314..fd9ba923f 100644 --- a/common/spdat.h +++ b/common/spdat.h @@ -339,7 +339,7 @@ typedef enum { #define SE_CurrentEndurance 189 // implemented #define SE_EndurancePool 190 // implemented #define SE_Amnesia 191 // implemented - Silence vs Melee Effect -#define SE_Hate2 192 // implemented +#define SE_Hate 192 // implemented - Instant and hate over time. #define SE_SkillAttack 193 // implemented #define SE_FadingMemories 194 // implemented #define SE_StunResist 195 // implemented diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index 6f71a56eb..e32170e67 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -2676,6 +2676,30 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial) break; } + case SE_Hate:{ + + if (buffslot >= 0) + break; + + if(caster){ + if(effect_value > 0){ + if(caster){ + if(caster->IsClient() && !caster->CastToClient()->GetFeigned()) + AddToHateList(caster, effect_value); + else if(!caster->IsClient()) + AddToHateList(caster, effect_value); + } + }else{ + int32 newhate = GetHateAmount(caster) + effect_value; + if (newhate < 1) + SetHate(caster,1); + else + SetHate(caster,newhate); + } + } + break; + } + // Handled Elsewhere case SE_ImmuneFleeing: case SE_NegateSpellEffect: @@ -2746,7 +2770,6 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial) case SE_ChangeFrenzyRad: case SE_Harmony: case SE_ChangeAggro: - case SE_Hate2: case SE_Identify: case SE_InstantHate: case SE_ReduceHate: @@ -3340,7 +3363,7 @@ void Mob::DoBuffTic(uint16 spell_id, int slot, uint32 ticsremaining, uint8 caste break; } - case SE_Hate2:{ + case SE_Hate:{ effect_value = CalcSpellEffectValue(spell_id, i, caster_level); if(caster){ if(effect_value > 0){