aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp6
-rw-r--r--src/server/game/Spells/SpellMgr.cpp12
-rw-r--r--src/server/game/Spells/SpellMgr.h2
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;