From 92374d203d2926ac5fd300ce6b0c0341cebfe891 Mon Sep 17 00:00:00 2001 From: QT Date: Sat, 22 Dec 2012 22:21:33 +0100 Subject: Core/Leveling: Prevent blue text spam 'Your skill in Axes increased to 30' closes #8484 --- src/server/game/Entities/Player/Player.cpp | 6 ++++++ src/server/game/Spells/SpellMgr.cpp | 12 ++++++------ src/server/game/Spells/SpellMgr.h | 2 ++ 3 files changed, 14 insertions(+), 6 deletions(-) (limited to 'src') 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 > 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; -- cgit v1.2.3 From 8c53f042ad02259b0cd6a49a9730b9bd0cdfe04a Mon Sep 17 00:00:00 2001 From: Warpten Date: Sat, 22 Dec 2012 23:32:07 +0100 Subject: Core/StatsSystem: Typos, typos everywhere. Thanks @Wayt for noticing. --- src/server/game/Entities/Player/Player.cpp | 10 ++++------ src/server/game/Entities/Unit/Unit.cpp | 4 ++-- src/server/game/Entities/Unit/Unit.h | 2 -- 3 files changed, 6 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ffda2efc0b1..897df8b1633 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5889,7 +5889,7 @@ float Player::GetRatingBonusValue(CombatRating cr) const float baseResult = float(GetUInt32Value(PLAYER_FIELD_COMBAT_RATING_1 + cr)) * GetRatingMultiplier(cr); if (cr != CR_RESILIENCE_PLAYER_DAMAGE_TAKEN) return baseResult; - return float(1.0f - pow(0.99f, baseResult)); + return float(1.0f - pow(0.99f, baseResult)) * 100.0f; } float Player::GetExpertiseDodgeOrParryReduction(WeaponAttackType attType) const @@ -5927,7 +5927,7 @@ float Player::OCTRegenMPPerSpirit() void Player::ApplyRatingMod(CombatRating cr, int32 value, bool apply) { - m_baseRatingValue[cr]+=(apply ? value : -value); + m_baseRatingValue[cr] +=(apply ? value : -value); // explicit affected values switch (cr) @@ -5943,14 +5943,12 @@ void Player::ApplyRatingMod(CombatRating cr, int32 value, bool apply) } case CR_HASTE_RANGED: { - float RatingChange = value * GetRatingMultiplier(cr); - ApplyAttackTimePercentMod(RANGED_ATTACK, RatingChange, apply); + ApplyAttackTimePercentMod(RANGED_ATTACK, value * GetRatingMultiplier(cr), apply); break; } case CR_HASTE_SPELL: { - float RatingChange = value * GetRatingMultiplier(cr); - ApplyCastTimePercentMod(RatingChange, apply); + ApplyCastTimePercentMod(value * GetRatingMultiplier(cr), apply); break; } default: diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e8ac91eb145..f95c808d167 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -15688,8 +15688,8 @@ void Unit::ApplyResilience(Unit const* victim, int32* damage, bool isCrit) const return; if (isCrit) - *damage = target->GetCritDamageReduction(*damage); - *damage = target->GetDamageReduction(*damage); + *damage -= target->GetCritDamageReduction(*damage); + *damage -= target->GetDamageReduction(*damage); } // Melee based spells can be miss, parry or dodge on this step diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 515e7644299..cb58b79794e 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1451,8 +1451,6 @@ class Unit : public WorldObject // player or player's pet resilience (-1%) uint32 GetCritDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_CRIT_TAKEN, 2.2f, 33.0f, damage); } - - // player or player's pet resilience (-1%), cap 100% uint32 GetDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN, 2.0f, 100.0f, damage); } void ApplyResilience(const Unit* victim, int32 * damage, bool isCrit) const; -- cgit v1.2.3