aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp9
-rwxr-xr-xsrc/server/game/Handlers/CalendarHandler.cpp14
-rwxr-xr-xsrc/server/game/Maps/Map.cpp9
3 files changed, 27 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 632453a230f..c8141d27b80 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -18185,6 +18185,15 @@ void Player::BindToInstance()
data << uint32(0);
GetSession()->SendPacket(&data);
BindToInstance(mapSave, true);
+
+ time_t currTime = time(NULL);
+ data.Initialize(SMSG_CALENDAR_RAID_LOCKOUT_ADDED, 4 + 4 + 4 + 4 + 8);
+ data << uint32(secsToTimeBitFields(currTime));
+ data << uint32(mapSave->GetMapId());
+ data << uint32(mapSave->GetDifficulty());
+ data << uint32(mapSave->GetResetTime() - currTime);
+ data << uint64(mapSave->GetInstanceId());
+ GetSession()->SendPacket(&data);
}
void Player::SendRaidInfo()
diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp
index 33ecbf8cac5..5cd67b0ffbc 100755
--- a/src/server/game/Handlers/CalendarHandler.cpp
+++ b/src/server/game/Handlers/CalendarHandler.cpp
@@ -42,7 +42,7 @@ void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recv_data*/)
data << uint32(cur_time); // current time
data << uint32(secsToTimeBitFields(cur_time)); // unknown packed time
-
+
InstanceSave *save = NULL;
uint32 counter = 0;
size_t p_counter = data.wpos();
@@ -74,7 +74,7 @@ void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recv_data*/)
for (ResetTimeByMapDifficultyMap::const_iterator itr = resets.begin(); itr != resets.end(); ++itr)
{
uint32 mapId = PAIR32_LOPART(itr->first);
-
+ Difficulty difficulty = Difficulty(PAIR32_HIPART(itr->first));
if (sentMaps.find(mapId) != sentMaps.end())
continue;
@@ -82,10 +82,14 @@ void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recv_data*/)
if (!mapEntry || !mapEntry->IsRaid())
continue;
+ MapDifficulty const* diff = GetMapDifficultyData(mapId, difficulty);
+ if (!diff)
+ continue;
+
sentMaps.insert(mapId);
data << uint32(mapId);
- data << uint32(itr->second - cur_time);
+ data << uint32(diff->resetTime);
data << uint32(mapEntry->unk_time);
++counter;
}
@@ -148,7 +152,7 @@ void WorldSession::HandleCalendarArenaTeam(WorldPacket& recv_data)
void WorldSession::HandleCalendarAddEvent(WorldPacket& recv_data)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_CALENDAR_ADD_EVENT");
-
+
std::string title;
std::string description;
uint8 type;
@@ -365,7 +369,7 @@ void WorldSession::SendCalendarEvent(uint64 eventId, bool added)
{
data << uint32(0); // invite count
for (uint8 i = 0; i < 0; ++i)
- {
+ {
data << uint64(0); // invite played guid
data << uint8(0); // unk
data << uint8(0); // status
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index cf517ccfbb4..8ce01d8cd0e 100755
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -2518,6 +2518,15 @@ void InstanceMap::PermBindAllPlayers(Player* source)
WorldPacket data(SMSG_INSTANCE_SAVE_CREATED, 4);
data << uint32(0);
player->GetSession()->SendPacket(&data);
+
+ time_t currTime = time(NULL);
+ data.Initialize(SMSG_CALENDAR_RAID_LOCKOUT_ADDED, 4 + 4 + 4 + 4 + 8);
+ data << uint32(secsToTimeBitFields(currTime));
+ data << uint32(save->GetMapId());
+ data << uint32(save->GetDifficulty());
+ data << uint32(save->GetResetTime() - currTime);
+ data << uint64(save->GetInstanceId());
+ player->GetSession()->SendPacket(&data);
}
// if the leader is not in the instance the group will not get a perm bind