From f18a592a7e7bb6ee9dfb92836ea99fd2133c99f0 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 17 Jan 2023 19:56:25 +0100 Subject: [PATCH] Core/GameObjects: remove incorrect gathering experience implementation --- .../game/Entities/GameObject/GameObject.h | 12 ++----- src/server/game/Entities/Player/Player.cpp | 33 ------------------- src/server/game/Entities/Player/Player.h | 1 - src/server/game/Spells/SpellEffects.cpp | 6 +--- 4 files changed, 3 insertions(+), 49 deletions(-) diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index a0a12687bf..ae798df574 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -221,16 +221,8 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject void SetLootGenerationTime(); uint32 GetLootGenerationTime() const { return m_lootGenerationTime; } - void AddToSkillupList(ObjectGuid::LowType PlayerGuidLow) { m_SkillupList.push_back(PlayerGuidLow); } - bool IsInSkillupList(ObjectGuid::LowType PlayerGuidLow) const - { - for (std::list::const_iterator i = m_SkillupList.begin(); i != m_SkillupList.end(); ++i) - if (*i == PlayerGuidLow) - return true; - - return false; - } - void ClearSkillupList() { m_SkillupList.clear(); } + void AddToSkillupList(ObjectGuid::LowType playerLowGUID) { m_SkillupList.push_back(playerLowGUID); } + bool IsInSkillupList(ObjectGuid::LowType playerLowGUID) const { return std::find(m_SkillupList.begin(), m_SkillupList.end(), playerLowGUID) != m_SkillupList.end(); } void AddUniqueUse(Player* player); void AddUse() { ++m_usetimes; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 65e4b40d99..2caade73f9 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5343,39 +5343,6 @@ bool Player::UpdateFishingSkill() return false; } -void Player::GiveXpForGather(uint32 const& skillId) -{ - // Skip if the profession is no gather profession - if (skillId != SKILL_HERBALISM && skillId != SKILL_MINING && skillId != SKILL_ARCHAEOLOGY) - return; - - uint32 zoneId = GetZoneId(); - WorldMapAreaEntry const* areaEntry = sWorldMapAreaStore.LookupEntry(zoneId); - if (!areaEntry) - return; - - uint8 levelDiff = std::abs(int32(areaEntry->LevelRangeMax - getLevel())); - uint8 level = 0; - - if (levelDiff >= 10 && levelDiff < 20) - level = Trinity::XP::GetGrayLevel(getLevel()) + 1; - else if (levelDiff >= 20) - level = Trinity::XP::GetGrayLevel(getLevel()); - else - level = getLevel() + 3; - - uint32 xp = Trinity::XP::BaseGain(level, areaEntry->LevelRangeMax, sDBCManager.GetContentLevelsForMapAndZone(GetMapId(), zoneId)) * 2; - - if (!xp || levelDiff >= 20) - return; - else if (levelDiff >= 15) - xp = uint32(xp * (1 - (levelDiff / 24))); - - xp *= sWorld->getRate(RATE_XP_KILL); - - GiveXP(xp, nullptr); -} - void Player::SurveyDigSite() { _archaeology->UseSite(); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 192f34dee9..ca3f1e3d23 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1754,7 +1754,6 @@ class TC_GAME_API Player : public Unit, public GridObject bool UpdateCraftSkill(SpellInfo const* spellInfo); bool UpdateGatherSkill(uint32 SkillId, uint32 SkillValue, uint32 RedLevel, uint32 Multiplicator = 1); bool UpdateFishingSkill(); - void GiveXpForGather(uint32 const& skillId); void SurveyDigSite(); void NotifyRequestResearchHistory(); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index d81473c5d6..93066b0f78 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1742,12 +1742,8 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex) if (gameObjTarget) { // Allow one skill-up until respawned - if (!gameObjTarget->IsInSkillupList(player->GetGUID().GetCounter()) && - player->UpdateGatherSkill(skillId, pureSkillValue, reqSkillValue)) - { + if (!gameObjTarget->IsInSkillupList(player->GetGUID().GetCounter()) && player->UpdateGatherSkill(skillId, pureSkillValue, reqSkillValue)) gameObjTarget->AddToSkillupList(player->GetGUID().GetCounter()); - player->GiveXpForGather(skillId); - } } else if (itemTarget) {