aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2015-07-08 23:32:04 +0200
committerDDuarte <dnpd.dd@gmail.com>2015-07-12 12:47:43 +0100
commit1915a4ad49e2767a57adcf5662b43ad8690005d1 (patch)
treeb5c65c41d836e2b2f824861a60173af937d7b3cf /src
parent4479cbf1706332bade241a8348a9cc3397eebcee (diff)
Core/Instances: Fix some Instance Lock chat messages
Always send a Welcome type Instance Lock chat message when entering an instance instead of changing type based on remaining time. Fix scheduled warning message to always send "Your instance lock for ... will expire in 0 minutes." even if there are hours left, issue added in 4193806dba4de81f0e24c94bc470faaaa0e717cf , closes #11519 . Update warning messages based on remaining time so that the most meaning is always used (6 hours left, 59 minutes left, etc). (cherry picked from commit fae826958915673338868d0b3b273860630638fb) Conflicts: src/server/game/Handlers/MovementHandler.cpp src/server/game/Maps/Map.cpp
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp10
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp2
-rw-r--r--src/server/game/Instances/InstanceSaveMgr.cpp4
-rw-r--r--src/server/game/Maps/Map.cpp2
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)