diff --git a/src/game/World.cpp b/src/game/World.cpp index 47486151f..dfb675ac4 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1740,6 +1740,28 @@ void World::SendDefenseMessage(uint32 zoneId, int32 textId) } } +/// Sends a server wide defense message to all players (or players of the specified team) +void World::SendDefenseMessage(uint32 zoneId, int32 textId, Team team /*= TEAM_NONE*/) +{ + for (SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr) + { + if (itr->second && + itr->second->GetPlayer() && + itr->second->GetPlayer()->IsInWorld() && + (team == TEAM_NONE || itr->second->GetPlayer()->GetTeam() == team)) + { + char const* message = itr->second->GetMangosString(textId); + uint32 messageLength = strlen(message) + 1; + + WorldPacket data(SMSG_DEFENSE_MESSAGE, 4 + 4 + messageLength); + data << uint32(zoneId); + data << uint32(messageLength); + data << message; + itr->second->SendPacket(&data); + } + } +} + /// Kick (and save) all players void World::KickAll() { diff --git a/src/game/World.h b/src/game/World.h index 34f0dc83a..8060fe05e 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -507,10 +507,12 @@ class World void LoadConfigSettings(bool reload = false); void SendWorldText(int32 string_id, ...); - void SendGlobalMessage(WorldPacket* packet); + void SendGlobalText(const char* text, WorldSession* self); + void SendGlobalMessage(WorldPacket* packet, WorldSession* self = NULL, Team team = TEAM_NONE); + void SendZoneMessage(uint32 zone, WorldPacket* packet, WorldSession* self = NULL, Team team = TEAM_NONE); + void SendZoneText(uint32 zone, const char* text, WorldSession* self = NULL, Team team = TEAM_NONE); + void SendDefenseMessage(uint32 zoneId, int32 textId, Team team = TEAM_NONE); void SendServerMessage(ServerMessageType type, const char* text = "", Player* player = NULL); - void SendZoneUnderAttackMessage(uint32 zoneId, Team team); - void SendDefenseMessage(uint32 zoneId, int32 textId); /// Are we in the middle of a shutdown? bool IsShutdowning() const { return m_ShutdownTimer > 0; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index bb52633cd..efd0c6e44 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "0071" + #define REVISION_NR "12081" #endif // __REVISION_NR_H__