[7364] Really implenent server-side anti-cheating cooldown check for spells with SPELL_ATTR_DISABLED_WHILE_ACTIVE. Author: VladimirMangos

Move apply cooldown for like spells to aura apply (GO registering for owner in GO summon spell case)
    Store "infinity" cooldown for like spells, ignore it at save and reapply it at aura loading.

    Note: one problem still exist for like spells: at loading/far teleport spell icon lost diabled state at client.
          Need sedn some unknown data in SendInitialPacketsBeforeAddToMap or SendInitialPacketsAfterAddToMap for restore it state.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-03-02 16:59:14 -06:00
parent c6fc7f7bca
commit d7d7c3562a
6 changed files with 74 additions and 35 deletions
+1 -1
View File
@@ -1491,7 +1491,7 @@ class TRINITY_DLL_SPEC Player : public Unit
time_t t = time(NULL);
return itr != m_spellCooldowns.end() && itr->second.end > t ? itr->second.end - t : 0;
}
void AddSpellAndCategoryCooldowns(SpellEntry const* spellInfo, uint32 itemId, Spell* spell = NULL);
void AddSpellAndCategoryCooldowns(SpellEntry const* spellInfo, uint32 itemId, Spell* spell = NULL, bool infinityCooldown = false );
void AddSpellCooldown(uint32 spell_id, uint32 itemid, time_t end_time);
void SendCooldownEvent(SpellEntry const *spellInfo, uint32 itemId = 0, Spell* spell = NULL);
void ProhibitSpellScholl(SpellSchoolMask idSchoolMask, uint32 unTimeMs );