mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 09:31:30 +00:00
Fix some bard stacking issues (mainly AE DOT)
Please report if it breaks anything (shouldn't)
This commit is contained in:
parent
bfe85a2f1b
commit
bbbee6e6b2
@ -1122,6 +1122,20 @@ bool IsStackableDot(uint16 spell_id)
|
|||||||
return IsEffectInSpell(spell_id, SE_CurrentHP) || IsEffectInSpell(spell_id, SE_GravityEffect);
|
return IsEffectInSpell(spell_id, SE_CurrentHP) || IsEffectInSpell(spell_id, SE_GravityEffect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsBardOnlyStackEffect(int effect)
|
||||||
|
{
|
||||||
|
switch(effect) {
|
||||||
|
case SE_CurrentMana:
|
||||||
|
case SE_ManaRegen_v2:
|
||||||
|
case SE_CurrentHP:
|
||||||
|
case SE_HealOverTime:
|
||||||
|
case SE_BardAEDot:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool IsCastWhileInvis(uint16 spell_id)
|
bool IsCastWhileInvis(uint16 spell_id)
|
||||||
{
|
{
|
||||||
if (!IsValidSpell(spell_id))
|
if (!IsValidSpell(spell_id))
|
||||||
|
|||||||
@ -968,6 +968,7 @@ uint32 GetPartialMeleeRuneAmount(uint32 spell_id);
|
|||||||
uint32 GetPartialMagicRuneAmount(uint32 spell_id);
|
uint32 GetPartialMagicRuneAmount(uint32 spell_id);
|
||||||
bool NoDetrimentalSpellAggro(uint16 spell_id);
|
bool NoDetrimentalSpellAggro(uint16 spell_id);
|
||||||
bool IsStackableDot(uint16 spell_id);
|
bool IsStackableDot(uint16 spell_id);
|
||||||
|
bool IsBardOnlyStackEffect(int effect);
|
||||||
bool IsCastWhileInvis(uint16 spell_id);
|
bool IsCastWhileInvis(uint16 spell_id);
|
||||||
bool IsEffectIgnoredInStacking(int spa);
|
bool IsEffectIgnoredInStacking(int spa);
|
||||||
|
|
||||||
|
|||||||
@ -3021,6 +3021,10 @@ int Mob::CheckStackConflict(uint16 spellid1, int caster_level1, uint16 spellid2,
|
|||||||
if(effect1 != effect2)
|
if(effect1 != effect2)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (IsBardOnlyStackEffect(effect1) && GetSpellLevel(spellid1, BARD) != 255 &&
|
||||||
|
GetSpellLevel(spellid2, BARD) != 255)
|
||||||
|
continue;
|
||||||
|
|
||||||
// big ol' list according to the client, wasn't that nice!
|
// big ol' list according to the client, wasn't that nice!
|
||||||
if (IsEffectIgnoredInStacking(effect1))
|
if (IsEffectIgnoredInStacking(effect1))
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user