mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-13 02:38:45 +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_PoisonCounter 36 // implemented
|
||||||
//#define SE_DetectHostile 37 // not used
|
//#define SE_DetectHostile 37 // not used
|
||||||
//#define SE_DetectMagic 38 // 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_DivineAura 40 // implemented
|
||||||
#define SE_Destroy 41 // implemented - Disintegrate, Banishment of Shadows
|
#define SE_Destroy 41 // implemented - Disintegrate, Banishment of Shadows
|
||||||
#define SE_ShadowStep 42 // implemented
|
#define SE_ShadowStep 42 // implemented
|
||||||
@@ -844,7 +844,7 @@ typedef enum {
|
|||||||
//#define SE_AddExtraAttackPct_1h_Secondary 499 //
|
//#define SE_AddExtraAttackPct_1h_Secondary 499 //
|
||||||
//#define SE_Fc_CastTimeMod2 500 //
|
//#define SE_Fc_CastTimeMod2 500 //
|
||||||
//#define SE_Fc_CastTimeAmt 501 //
|
//#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_Mod 503 // implemented - modify melee damage by pct if done from Front or Behind
|
||||||
//#define SE_Melee_Damage_Position_Amt 504 //
|
//#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
|
#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))
|
if(!IsValidSpell(spell_id))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (IsEffectInSpell(spell_id, SE_TwinCastBlocker))
|
||||||
|
return;
|
||||||
|
|
||||||
if(IsClient())
|
if(IsClient())
|
||||||
{
|
{
|
||||||
int32 focus = CastToClient()->GetFocusEffect(focusTwincast, spell_id);
|
int32 focus = CastToClient()->GetFocusEffect(focusTwincast, spell_id);
|
||||||
|
|||||||
@@ -2919,6 +2919,32 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
break;
|
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:
|
case SE_PersistentEffect:
|
||||||
MakeAura(spell_id);
|
MakeAura(spell_id);
|
||||||
break;
|
break;
|
||||||
@@ -3177,6 +3203,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
case SE_Double_Backstab_Front:
|
case SE_Double_Backstab_Front:
|
||||||
case SE_Pet_Crit_Melee_Damage_Pct_Owner:
|
case SE_Pet_Crit_Melee_Damage_Pct_Owner:
|
||||||
case SE_Pet_Add_Atk:
|
case SE_Pet_Add_Atk:
|
||||||
|
case SE_TwinCastBlocker:
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user