diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index e3e520757..4be194511 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -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; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 3530d62c3..399a95382 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8742" + #define REVISION_NR "8743" #endif // __REVISION_NR_H__