aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2023_08_13_01_world.sql3
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp18
2 files changed, 21 insertions, 0 deletions
diff --git a/sql/updates/world/master/2023_08_13_01_world.sql b/sql/updates/world/master/2023_08_13_01_world.sql
new file mode 100644
index 00000000000..a5b7373e75c
--- /dev/null
+++ b/sql/updates/world/master/2023_08_13_01_world.sql
@@ -0,0 +1,3 @@
+DELETE FROM `command` WHERE `name`='debug play objectsound';
+INSERT INTO `command` (`name`, `help`) VALUES
+('debug play objectsound', 'Syntax: .debug play objectsound #soundKitId [#broadcastTextId]\nPlay object sound with #soundKitId [and #broadcastTextId].\nSound will be played only for you. Other players will not hear this.');
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index dfd774b67e7..a1ea6538dd2 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -75,6 +75,7 @@ public:
{ "movie", HandleDebugPlayMovieCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No },
{ "sound", HandleDebugPlaySoundCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No },
{ "music", HandleDebugPlayMusicCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No },
+ { "objectsound", HandleDebugPlayObjectSoundCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No },
};
static ChatCommandTable debugSendCommandTable =
{
@@ -273,6 +274,23 @@ public:
return true;
}
+ static bool HandleDebugPlayObjectSoundCommand(ChatHandler* handler, int32 soundKitId, Optional<int32> broadcastTextId)
+ {
+ if (!sSoundKitStore.LookupEntry(soundKitId))
+ {
+ handler->PSendSysMessage(LANG_SOUND_NOT_EXIST, soundKitId);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ Player* player = handler->GetPlayer();
+
+ player->PlayObjectSound(soundKitId, player->GetGUID(), player, broadcastTextId.has_value() ? *broadcastTextId : 0);
+
+ handler->PSendSysMessage(LANG_YOU_HEAR_SOUND, soundKitId);
+ return true;
+ }
+
static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, SpellCastResult result, Optional<int32> failArg1, Optional<int32> failArg2)
{
WorldPackets::Spells::CastFailed castFailed;