Make use of the suspendable spell flag

This commit is contained in:
Michael Cook (mackal) 2014-01-08 00:24:33 -05:00
parent 50caef0086
commit 5199364091
4 changed files with 12 additions and 2 deletions

View File

@ -1729,6 +1729,7 @@ void SharedDatabase::LoadSpells(void *data, int max_spells) {
sp[tempid].NimbusEffect = atoi(row[193]);
sp[tempid].directional_start = (float)atoi(row[194]);
sp[tempid].directional_end = (float)atoi(row[195]);
sp[tempid].suspendable = atoi(row[200]) != 0;
sp[tempid].spellgroup=atoi(row[207]);
sp[tempid].powerful_flag=atoi(row[209]);
sp[tempid].CastRestriction = atoi(row[211]);

View File

@ -974,6 +974,14 @@ bool IsPersistDeathSpell(uint16 spell_id)
return false;
}
bool IsSuspendableSpell(uint16 spell_id)
{
if (IsValidSpell(spell_id) && spells[spell_id].suspendable)
return true;
return false;
}
uint32 GetMorphTrigger(uint32 spell_id)
{
for (int i = 0; i < EFFECT_COUNT; ++i)

View File

@ -711,7 +711,7 @@ struct SPDat_Spell_Struct
/* 194 */ float directional_start;
/* 195 */ float directional_end;
/* 196 - 199 */
/* 200 */ //bool suspendable; // buff is suspended in suspended buff zones
/* 200 */ bool suspendable; // buff is suspended in suspended buff zones
/* 201 - 202 */
/* 203 */ //int songcap; // individual song cap (how live currently does it, not implemented)
/* 204 - 206 */
@ -821,6 +821,7 @@ bool IsResistDebuffSpell(uint16 spell_id);
bool IsSelfConversionSpell(uint16 spell_id);
bool IsBuffSpell(uint16 spell_id);
bool IsPersistDeathSpell(uint16 spell_id);
bool IsSuspendableSpell(uint16 spell_id);
uint32 GetMorphTrigger(uint32 spell_id);
uint32 GetPartialMeleeRuneReduction(uint32 spell_id);
uint32 GetPartialMagicRuneReduction(uint32 spell_id);

View File

@ -3181,7 +3181,7 @@ void Mob::BuffProcess()
if(spells[buffs[buffs_i].spellid].buffdurationformula != DF_Permanent)
{
if(!zone->BuffTimersSuspended() || IsDetrimentalSpell(buffs[buffs_i].spellid))
if(!zone->BuffTimersSuspended() || !IsSuspendableSpell(buffs[buffs_i].spellid))
{
--buffs[buffs_i].ticsremaining;