diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 | ||||
-rw-r--r-- | src/server/game/Handlers/MovementHandler.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Instances/InstanceSaveMgr.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Maps/Map.cpp | 2 |
5 files changed, 11 insertions, 9 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e78bd6e59b9..6bdac08d7c3 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -22667,15 +22667,17 @@ void Player::SendTransferAborted(uint32 mapid, TransferAbortReason reason, uint8 GetSession()->SendPacket(transferAborted.Write()); } -void Player::SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint32 time) +void Player::SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint32 time, bool welcome) { // type of warning, based on the time remaining until reset uint32 type; - if (time > 3600) + if (welcome) type = RAID_INSTANCE_WELCOME; - else if (time > 900 && time <= 3600) + else if (time > 21600) + type = RAID_INSTANCE_WELCOME; + else if (time > 3600) type = RAID_INSTANCE_WARNING_HOURS; - else if (time > 300 && time <= 900) + else if (time > 300) type = RAID_INSTANCE_WARNING_MIN; else type = RAID_INSTANCE_WARNING_MIN_SOON; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 2e4a50251a7..940456ba3b2 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1366,7 +1366,7 @@ class Player : public Unit, public GridObject<Player> void SendInitialPacketsAfterAddToMap(); void SendSupercededSpell(uint32 oldSpell, uint32 newSpell); void SendTransferAborted(uint32 mapid, TransferAbortReason reason, uint8 arg = 0); - void SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint32 time); + void SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint32 time, bool welcome); bool CanInteractWithQuestGiver(Object* questGiver); Creature* GetNPCIfCanInteractWith(ObjectGuid guid, uint64 npcflagmask); diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp index 240825faade..13914adcae3 100644 --- a/src/server/game/Handlers/MovementHandler.cpp +++ b/src/server/game/Handlers/MovementHandler.cpp @@ -179,7 +179,7 @@ void WorldSession::HandleMoveWorldportAckOpcode() if (time_t timeReset = sInstanceSaveMgr->GetResetTimeFor(mEntry->ID, diff)) { uint32 timeleft = uint32(timeReset - time(NULL)); - GetPlayer()->SendInstanceResetWarning(mEntry->ID, diff, timeleft); + GetPlayer()->SendInstanceResetWarning(mEntry->ID, diff, timeleft, true); } } } diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index c729057468b..91dc817e717 100644 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -652,10 +652,10 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, b if (warn) { - if (now <= resetTime) + if (now >= resetTime) timeLeft = 0; else - timeLeft = uint32(now - resetTime); + timeLeft = uint32(resetTime - now); ((InstanceMap*)map2)->SendResetWarnings(timeLeft); } diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 26a3d38635d..008bb89ff4c 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3234,7 +3234,7 @@ void InstanceMap::UnloadAll() void InstanceMap::SendResetWarnings(uint32 timeLeft) const { for (MapRefManager::const_iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr) - itr->GetSource()->SendInstanceResetWarning(GetId(), itr->GetSource()->GetDifficultyID(GetEntry()), timeLeft); + itr->GetSource()->SendInstanceResetWarning(GetId(), itr->GetSource()->GetDifficultyID(GetEntry()), timeLeft, true); } void InstanceMap::SetResetSchedule(bool on) |