diff options
Diffstat (limited to 'src/server/game/Weather/Weather.cpp')
-rw-r--r-- | src/server/game/Weather/Weather.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/server/game/Weather/Weather.cpp b/src/server/game/Weather/Weather.cpp index 2a7e29629ff..79b4fbd8c69 100644 --- a/src/server/game/Weather/Weather.cpp +++ b/src/server/game/Weather/Weather.cpp @@ -195,7 +195,6 @@ bool Weather::ReGenerate() void Weather::SendWeatherUpdateToPlayer(Player* player) { WorldPacket data(SMSG_WEATHER, (4+4+4)); - data << uint32(GetWeatherState()) << (float)m_grade << uint8(0); player->GetSession()->SendPacket(&data); } @@ -203,10 +202,6 @@ void Weather::SendWeatherUpdateToPlayer(Player* player) /// Send the new weather to all players in the zone bool Weather::UpdateWeather() { - Player* player = sWorld->FindPlayerInZone(m_zone); - if (!player) - return false; - ///- Send the weather packet to all players in this zone if (m_grade >= 1) m_grade = 0.9999f; @@ -216,8 +211,13 @@ bool Weather::UpdateWeather() WeatherState state = GetWeatherState(); WorldPacket data(SMSG_WEATHER, (4+4+4)); - data << uint32(state) << (float)m_grade << uint8(0); - player->SendMessageToSet(&data, true); + data << uint32(state); + data << (float)m_grade; + data << uint8(0); + + //- Returns false if there were no players found to update + if (!sWorld->SendZoneMessage(m_zone, &data)) + return false; ///- Log the event char const* wthstr; @@ -264,8 +264,8 @@ bool Weather::UpdateWeather() wthstr = "fine"; break; } - TC_LOG_INFO("misc", "Change the weather of zone %u to %s.", m_zone, wthstr); + TC_LOG_INFO("misc", "Change the weather of zone %u to %s.", m_zone, wthstr); sScriptMgr->OnWeatherChange(this, state, m_grade); return true; } |