mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
effective casting level update (#1886)
This commit is contained in:
parent
1c2e1ea228
commit
ef1f6adf18
@ -1040,14 +1040,13 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
caster->MessageString(Chat::SpellFailure, SPELL_NO_EFFECT, spells[spell_id].name);
|
caster->MessageString(Chat::SpellFailure, SPELL_NO_EFFECT, spells[spell_id].name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int buff_count = GetMaxTotalSlots();
|
int buff_count = GetMaxTotalSlots();
|
||||||
for(int slot = 0; slot < buff_count; slot++) {
|
for(int slot = 0; slot < buff_count; slot++) {
|
||||||
if( buffs[slot].spellid != SPELL_UNKNOWN &&
|
if( buffs[slot].spellid != SPELL_UNKNOWN &&
|
||||||
spells[buffs[slot].spellid].dispel_flag == 0 &&
|
spells[buffs[slot].spellid].dispel_flag == 0 &&
|
||||||
!IsDiscipline(buffs[slot].spellid))
|
!IsDiscipline(buffs[slot].spellid))
|
||||||
{
|
{
|
||||||
if (caster && TryDispel(caster->GetLevel(),buffs[slot].casterlevel, effect_value)){
|
if (caster && TryDispel(caster->GetCasterLevel(spell_id), buffs[slot].casterlevel, effect_value)){
|
||||||
BuffFadeBySlot(slot);
|
BuffFadeBySlot(slot);
|
||||||
slot = buff_count;
|
slot = buff_count;
|
||||||
}
|
}
|
||||||
@ -1296,11 +1295,21 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
#ifdef SPELL_EFFECT_SPAM
|
#ifdef SPELL_EFFECT_SPAM
|
||||||
snprintf(effect_desc, _EDLEN, "Blind: %+i", effect_value);
|
snprintf(effect_desc, _EDLEN, "Blind: %+i", effect_value);
|
||||||
#endif
|
#endif
|
||||||
// this should catch the cures
|
// 'cure blind'
|
||||||
if (BeneficialSpell(spell_id) && spells[spell_id].buff_duration == 0)
|
if (BeneficialSpell(spell_id) && spells[spell_id].buff_duration == 0) {
|
||||||
BuffFadeByEffect(SE_Blind);
|
int buff_count = GetMaxBuffSlots();
|
||||||
else if (!IsClient())
|
for (int slot = 0; slot < buff_count; slot++) {
|
||||||
|
if (buffs[slot].spellid != SPELL_UNKNOWN && IsEffectInSpell(buffs[slot].spellid, SE_Blind)) {
|
||||||
|
if (caster && TryDispel(caster->GetCasterLevel(spell_id), buffs[slot].casterlevel, 1)) {
|
||||||
|
BuffFadeBySlot(slot);
|
||||||
|
slot = buff_count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!IsClient()) {
|
||||||
CalculateNewFearpoint();
|
CalculateNewFearpoint();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user