From e6103dae3e2195a048ba648958de9a462203448e Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sat, 31 Dec 2022 16:19:40 +0100 Subject: [PATCH] Core/Players: moved area exploration to a own helper --- src/server/game/Entities/Player/Player.cpp | 15 ++++++++++----- src/server/game/Entities/Player/Player.h | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 984ccc4677..38909a17e9 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -6022,6 +6022,11 @@ void Player::CheckAreaExploreAndOutdoor() RemoveAurasWithAttribute(SPELL_ATTR0_ONLY_OUTDOORS); uint32 const areaId = GetAreaId(); + SetAreaExplored(areaId); +} + +void Player::SetAreaExplored(uint32 areaId) +{ AreaTableEntry const* areaEntry = sAreaTableStore.LookupEntry(areaId); if (!areaEntry) @@ -6059,7 +6064,7 @@ void Player::CheckAreaExploreAndOutdoor() uint32 XP; if (diff < -5) { - XP = uint32(sObjectMgr->GetBaseXP(getLevel()+5)*sWorld->getRate(RATE_XP_EXPLORE)); + XP = uint32(sObjectMgr->GetBaseXP(getLevel() + 5) * sWorld->getRate(RATE_XP_EXPLORE)); } else if (diff > 5) { @@ -6067,23 +6072,23 @@ void Player::CheckAreaExploreAndOutdoor() if (exploration_percent < 0) exploration_percent = 0; - XP = uint32(sObjectMgr->GetBaseXP(areaEntry->ExplorationLevel)*exploration_percent/100*sWorld->getRate(RATE_XP_EXPLORE)); + XP = uint32(sObjectMgr->GetBaseXP(areaEntry->ExplorationLevel) * exploration_percent / 100 * sWorld->getRate(RATE_XP_EXPLORE)); } else { - XP = uint32(sObjectMgr->GetBaseXP(areaEntry->ExplorationLevel)*sWorld->getRate(RATE_XP_EXPLORE)); + XP = uint32(sObjectMgr->GetBaseXP(areaEntry->ExplorationLevel) * sWorld->getRate(RATE_XP_EXPLORE)); } if (sWorld->getIntConfig(CONFIG_MIN_DISCOVERED_SCALED_XP_RATIO)) { - uint32 minScaledXP = uint32(sObjectMgr->GetBaseXP(areaEntry->ExplorationLevel)*sWorld->getRate(RATE_XP_EXPLORE)) * sWorld->getIntConfig(CONFIG_MIN_DISCOVERED_SCALED_XP_RATIO) / 100; + uint32 minScaledXP = uint32(sObjectMgr->GetBaseXP(areaEntry->ExplorationLevel) * sWorld->getRate(RATE_XP_EXPLORE)) * sWorld->getIntConfig(CONFIG_MIN_DISCOVERED_SCALED_XP_RATIO) / 100; XP = std::max(minScaledXP, XP); } GiveXP(XP, nullptr); SendExplorationExperience(areaId, XP); } - TC_LOG_DEBUG("entities.player", "Player '%s' (%s) discovered a new area: %u", GetName().c_str(),GetGUID().ToString().c_str(), areaId); + TC_LOG_DEBUG("entities.player", "Player '%s' (%s) discovered a new area: %u", GetName().c_str(), GetGUID().ToString().c_str(), areaId); } } } diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 0533965284..0800d7dbc4 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1917,6 +1917,7 @@ class TC_GAME_API Player : public Unit, public GridObject void ProcessDelayedOperations(); void CheckAreaExploreAndOutdoor(void); + void SetAreaExplored(uint32 areaId); static uint32 TeamForRace(uint8 race); uint32 GetTeam() const { return m_team; }