diff options
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.h | 2 |
3 files changed, 14 insertions, 6 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 222fa6c1c74..ffda2efc0b1 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -6280,6 +6280,9 @@ void Player::UpdateSkillsForLevel() if (GetSkillRangeType(pSkill, false) != SKILL_RANGE_LEVEL) continue; + if (IsWeaponSkill(pSkill->id)) + continue; + uint16 field = itr->second.pos / 2; uint8 offset = itr->second.pos & 1; // itr->second.pos % 2 @@ -6308,6 +6311,9 @@ void Player::UpdateSkillsToMaxSkillsForLevel() if (IsProfessionOrRidingSkill(pskill)) continue; + if (IsWeaponSkill(pskill)) + continue; + uint16 field = itr->second.pos / 2; uint8 offset = itr->second.pos & 1; // itr->second.pos % 2 diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 308ac07f404..3e221536b13 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -37,13 +37,13 @@ bool IsPrimaryProfessionSkill(uint32 skill) { SkillLineEntry const* pSkill = sSkillLineStore.LookupEntry(skill); - if (!pSkill) - return false; - - if (pSkill->categoryId != SKILL_CATEGORY_PROFESSION) - return false; + return pSkill && pSkill->categoryId == SKILL_CATEGORY_PROFESSION; +} - return true; +bool IsWeaponSkill(uint32 skill) +{ + SkillLineEntry const* pSkill = sSkillLineStore.LookupEntry(skill); + return pSkill && pSkill->categoryId == SKILL_CATEGORY_WEAPON; } bool IsPartOfSkillLine(uint32 skillId, uint32 spellId) diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h index cec9d4650f5..2cfc8aad624 100644 --- a/src/server/game/Spells/SpellMgr.h +++ b/src/server/game/Spells/SpellMgr.h @@ -578,6 +578,8 @@ typedef std::map<int32, std::vector<int32> > SpellLinkedMap; bool IsPrimaryProfessionSkill(uint32 skill); +bool IsWeaponSkill(uint32 skill); + inline bool IsProfessionSkill(uint32 skill) { return IsPrimaryProfessionSkill(skill) || skill == SKILL_FISHING || skill == SKILL_COOKING || skill == SKILL_FIRST_AID; |