aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp2
-rw-r--r--src/server/game/Maps/Map.cpp10
2 files changed, 10 insertions, 2 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index eef8d4b6a85..34c122109e1 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -4745,7 +4745,7 @@ void ObjectMgr::LoadScripts(ScriptsType type)
{
case SCRIPT_COMMAND_TALK:
{
- if (tmp.datalong > CHAT_TYPE_WHISPER)
+ if (tmp.datalong > CHAT_TYPE_WHISPER && tmp.datalong != CHAT_MSG_RAID_BOSS_WHISPER)
{
sLog.outErrorDb("Table `%s` has invalid talk type (datalong = %u) in SCRIPT_COMMAND_TALK for script id %u",
tableName.c_str(),tmp.datalong,tmp.id);
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 1bb697bc5a8..085c9957c66 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -3030,7 +3030,7 @@ void Map::ScriptsProcess()
switch (step.script->command)
{
case SCRIPT_COMMAND_TALK:
- if (step.script->datalong > CHAT_TYPE_WHISPER)
+ if (step.script->datalong > CHAT_TYPE_WHISPER && step.script->datalong != CHAT_MSG_RAID_BOSS_WHISPER)
{
sLog.outError("%s invalid chat type (%u) specified, skipping.", step.script->GetDebugInfo().c_str(), step.script->datalong);
break;
@@ -3096,6 +3096,14 @@ void Map::ScriptsProcess()
}
cSource->Whisper(step.script->dataint, targetGUID);
break;
+ case CHAT_MSG_RAID_BOSS_WHISPER: //42
+ if (!targetGUID || !IS_PLAYER_GUID(targetGUID))
+ {
+ sLog.outError("%s attempt to raidbosswhisper to non-player unit, skipping.", step.script->GetDebugInfo().c_str());
+ break;
+ }
+ cSource->MonsterWhisper(step.script->dataint, targetGUID, true);
+ break;
default:
break; // must be already checked at load
}