[8743] Fix cooldowns for passive spells

Passive spell cooldowns only for client show.
It sets by  non passive spells with same category
triggered from passive spell auras or in code explictly.

* Ignore cooldown at cast passive spells
* Not set coldowns at passive spell cast itself.
This commit is contained in:
VladimirMangos 2009-10-27 09:23:46 +03:00
parent 15ab6794d3
commit a4e3b3e6aa
2 changed files with 6 additions and 5 deletions

View file

@ -2756,8 +2756,8 @@ void Spell::SendSpellCooldown()
return;
}
// have infinity cooldown but set at aura apply
if(m_spellInfo->Attributes & SPELL_ATTR_DISABLED_WHILE_ACTIVE)
// (1) have infinity cooldown but set at aura apply, (2) passive cooldown at triggering
if(m_spellInfo->Attributes & (SPELL_ATTR_DISABLED_WHILE_ACTIVE | SPELL_ATTR_PASSIVE))
return;
_player->AddSpellAndCategoryCooldowns(m_spellInfo,m_CastItem ? m_CastItem->GetEntry() : 0, this);
@ -3851,8 +3851,9 @@ void Spell::CastPreCastSpells(Unit* target)
SpellCastResult Spell::CheckCast(bool strict)
{
// check cooldowns to prevent cheating
if(m_caster->GetTypeId()==TYPEID_PLAYER && ((Player*)m_caster)->HasSpellCooldown(m_spellInfo->Id))
// check cooldowns to prevent cheating (ignore passive spells, that client side visual only)
if (m_caster->GetTypeId()==TYPEID_PLAYER && !(m_spellInfo->Attributes & SPELL_ATTR_PASSIVE) &&
((Player*)m_caster)->HasSpellCooldown(m_spellInfo->Id))
{
if(m_triggeredByAuraSpell)
return SPELL_FAILED_DONT_REPORT;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "8742"
#define REVISION_NR "8743"
#endif // __REVISION_NR_H__