mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 07:18:37 +00:00
Implemented
Implemented SE_Fearstun 502 Stun with a max level limit. Normal stun restrictions don't apply. Base1 duration, base2 PC duration, max is level limit SE_TwinCastBlocker 39 Previously unused spell effect that is now used on live. Simply, if this effect is present in a spell then the spell can not be twin cast.
This commit is contained in:
+2
-2
@@ -381,7 +381,7 @@ typedef enum {
|
||||
#define SE_PoisonCounter 36 // implemented
|
||||
//#define SE_DetectHostile 37 // not used
|
||||
//#define SE_DetectMagic 38 // not used
|
||||
//#define SE_DetectPoison 39 // not used TODO: NEW EFFECT Stacking:: Twincast Blocker
|
||||
#define SE_TwinCastBlocker 39 // implemented - If present in spell, then the spell can not be twincast.
|
||||
#define SE_DivineAura 40 // implemented
|
||||
#define SE_Destroy 41 // implemented - Disintegrate, Banishment of Shadows
|
||||
#define SE_ShadowStep 42 // implemented
|
||||
@@ -844,7 +844,7 @@ typedef enum {
|
||||
//#define SE_AddExtraAttackPct_1h_Secondary 499 //
|
||||
//#define SE_Fc_CastTimeMod2 500 //
|
||||
//#define SE_Fc_CastTimeAmt 501 //
|
||||
//#define SE_Fearstun 502 //
|
||||
#define SE_Fearstun 502 // implemented - Stun with a max level limit. Normal stun restrictions don't apply.
|
||||
#define SE_Melee_Damage_Position_Mod 503 // implemented - modify melee damage by pct if done from Front or Behind
|
||||
//#define SE_Melee_Damage_Position_Amt 504 //
|
||||
#define SE_Damage_Taken_Position_Mod 505 // implemented - mitigate melee damage by pct if dmg taken from Front or Behind
|
||||
|
||||
@@ -3701,6 +3701,9 @@ void Mob::TryTwincast(Mob *caster, Mob *target, uint32 spell_id)
|
||||
if(!IsValidSpell(spell_id))
|
||||
return;
|
||||
|
||||
if (IsEffectInSpell(spell_id, SE_TwinCastBlocker))
|
||||
return;
|
||||
|
||||
if(IsClient())
|
||||
{
|
||||
int32 focus = CastToClient()->GetFocusEffect(focusTwincast, spell_id);
|
||||
|
||||
@@ -2918,6 +2918,32 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
||||
caster->SetTopRampageList();
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_Fearstun: {
|
||||
//Normal 'stun' restrictions do not apply. base1=duration, base2=PC duration, max =lv restrict
|
||||
if (!caster)
|
||||
break;
|
||||
|
||||
if (IsNPC() && GetSpecialAbility(UNSTUNABLE)) {
|
||||
caster->MessageString(Chat::SpellFailure, IMMUNE_STUN);
|
||||
break;
|
||||
}
|
||||
|
||||
if (IsNPC() && GetSpecialAbility(UNFEARABLE)) {
|
||||
caster->MessageString(Chat::SpellFailure, IMMUNE_FEAR);
|
||||
break;
|
||||
}
|
||||
|
||||
if (GetLevel() <= spells[spell_id].max[i]) {
|
||||
if (IsClient())
|
||||
Stun(spells[spell_id].base2[i]);
|
||||
else
|
||||
Stun(effect_value);
|
||||
}
|
||||
else
|
||||
caster->MessageString(Chat::SpellFailure, FEAR_TOO_HIGH);
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_PersistentEffect:
|
||||
MakeAura(spell_id);
|
||||
@@ -3177,6 +3203,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
||||
case SE_Double_Backstab_Front:
|
||||
case SE_Pet_Crit_Melee_Damage_Pct_Owner:
|
||||
case SE_Pet_Add_Atk:
|
||||
case SE_TwinCastBlocker:
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user