aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index c54ae5fc00f..11f06e42fb7 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -6997,24 +6997,10 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea)
{
GetMap()->UpdatePlayerZoneStats(m_zoneUpdateId, newZone);
- if (m_zoneUpdateId != newZone)
- {
- sOutdoorPvPMgr->HandlePlayerLeaveZone(this, m_zoneUpdateId);
- sOutdoorPvPMgr->HandlePlayerEnterZone(this, newZone);
- sBattlefieldMgr->HandlePlayerLeaveZone(this, m_zoneUpdateId);
- sBattlefieldMgr->HandlePlayerEnterZone(this, newZone);
- SendInitWorldStates(newZone, newArea); // only if really enters to new zone, not just area change, works strange...
- if (Guild* guild = GetGuild())
- guild->UpdateMemberData(this, GUILD_MEMBER_DATA_ZONEID, newZone);
- }
-
// group update
if (GetGroup())
SetGroupUpdateFlag(GROUP_UPDATE_FULL);
- m_zoneUpdateId = newZone;
- m_zoneUpdateTimer = ZONE_UPDATE_INTERVAL;
-
// zone changed, so area changed as well, update it
UpdateArea(newArea);
@@ -7079,6 +7065,19 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea)
UpdateLocalChannels(newZone);
UpdateZoneDependentAuras(newZone);
+
+ m_zoneUpdateTimer = ZONE_UPDATE_INTERVAL;
+ if (m_zoneUpdateId != newZone)
+ {
+ m_zoneUpdateId = newZone;
+ sOutdoorPvPMgr->HandlePlayerLeaveZone(this, m_zoneUpdateId);
+ sOutdoorPvPMgr->HandlePlayerEnterZone(this, newZone);
+ sBattlefieldMgr->HandlePlayerLeaveZone(this, m_zoneUpdateId);
+ sBattlefieldMgr->HandlePlayerEnterZone(this, newZone);
+ SendInitWorldStates(newZone, newArea); // only if really enters to new zone, not just area change, works strange...
+ if (Guild* guild = GetGuild())
+ guild->UpdateMemberData(this, GUILD_MEMBER_DATA_ZONEID, newZone);
+ }
}
//If players are too far away from the duel flag... they lose the duel