diff options
author | Shauren <shauren.trinity@gmail.com> | 2011-03-04 21:18:38 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2011-03-04 21:19:43 +0100 |
commit | 7120f1eff80c9f057a40831a10d8975c0a8a7439 (patch) | |
tree | e77c66ff87570d1484b2cf81be6920ad5cd5e7fd /src/server/game/Skills | |
parent | a9582964d3ca140a1ec1d5894b79e72ed15a65a6 (diff) |
Core/Spells:
* Implemented on CheckCast spell script hook
* Added possibility to send SPELL_FAILED_CUSTOM_ERROR and added enum with all possible options for it
Scripts/Spells:
* Added example script for CheckCast hook with SPELL_FAILED_CUSTOM_ERROR (profession research and Book of Glyph Mastery)
Diffstat (limited to 'src/server/game/Skills')
-rwxr-xr-x | src/server/game/Skills/SkillDiscovery.cpp | 16 | ||||
-rwxr-xr-x | src/server/game/Skills/SkillDiscovery.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Skills/SkillDiscovery.cpp b/src/server/game/Skills/SkillDiscovery.cpp index c75d34079b6..c2af8dd1e48 100755 --- a/src/server/game/Skills/SkillDiscovery.cpp +++ b/src/server/game/Skills/SkillDiscovery.cpp @@ -191,6 +191,22 @@ uint32 GetExplicitDiscoverySpell(uint32 spellId, Player* player) return 0; } +bool HasDiscoveredAllSpells(uint32 spellId, Player* player) +{ + SkillDiscoveryMap::const_iterator tab = SkillDiscoveryStore.find(spellId); + if (tab == SkillDiscoveryStore.end()) + return true; + + SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(spellId); + uint32 skillvalue = bounds.first != bounds.second ? player->GetSkillValue(bounds.first->second->skillId) : 0; + + for (SkillDiscoveryList::const_iterator item_iter = tab->second.begin(); item_iter != tab->second.end(); ++item_iter) + if (!player->HasSpell(item_iter->spellId)) + return false; + + return true; +} + uint32 GetSkillDiscoverySpell(uint32 skillId, uint32 spellId, Player* player) { uint32 skillvalue = skillId ? player->GetSkillValue(skillId) : 0; diff --git a/src/server/game/Skills/SkillDiscovery.h b/src/server/game/Skills/SkillDiscovery.h index da9a96c4bd9..ae4f3494534 100755 --- a/src/server/game/Skills/SkillDiscovery.h +++ b/src/server/game/Skills/SkillDiscovery.h @@ -25,6 +25,7 @@ class Player; void LoadSkillDiscoveryTable(); uint32 GetSkillDiscoverySpell(uint32 skillId, uint32 spellId, Player* player); +bool HasDiscoveredAllSpells(uint32 spellId, Player* player); uint32 GetExplicitDiscoverySpell(uint32 spellId, Player* player); #endif |