diff options
author | megamage <none@none> | 2009-03-22 19:20:03 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-22 19:20:03 -0600 |
commit | a47d2e1c22237e1b2337e89b0f1d910cca68b6ed (patch) | |
tree | c8b48faff0f424b69c0178395ebd609a068dcb73 /src/game/Debugcmds.cpp | |
parent | ce71c0e798ed3f47dd6356c34766e16d951a8ca5 (diff) |
*Note some script id are changed. DB change may be needed.
[7518] Implement new script command SCRIPT_COMMAND_PLAY_SOUND (look in World.h for args) Author: VladimirMangos
* Also rewrite use SMSG_PLAY_OBJECT_SOUND/SMSG_PLAY_SOUND
Now WorldObject have 2 function for sound level dependent from distance (PlayDistanceSound)
and for not depednet (PlayDirectSound)
* Old Player::PlaySound function removed and uses need to be updated to WorldObject functions
Note: function called for _source_ of sound in different from old function.
* chat command .debug ps removed and .debug playsound can used for bother packects test:
if no selection used SMSG_PLAY_SOUND, if selection exist including self then SMSG_PLAY_OBJECT_SOUND.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Debugcmds.cpp')
-rw-r--r-- | src/game/Debugcmds.cpp | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/src/game/Debugcmds.cpp b/src/game/Debugcmds.cpp index 73aff0dbb09..d0402b4851c 100644 --- a/src/game/Debugcmds.cpp +++ b/src/game/Debugcmds.cpp @@ -243,13 +243,41 @@ bool ChatHandler::HandleDebugUpdateWorldStateCommand(const char* args) return true; } -bool ChatHandler::HandleDebugPlaySound2Command(const char* args) +//Play sound +bool ChatHandler::HandleDebugPlaySoundCommand(const char* args) { - if(!args) + // USAGE: .debug playsound #soundid + // #soundid - ID decimal number from SoundEntries.dbc (1st column) + if( !*args ) + { + SendSysMessage(LANG_BAD_VALUE); + SetSentErrorMessage(true); + return false; + } + + uint32 dwSoundId = atoi((char*)args); + + if(!sSoundEntriesStore.LookupEntry(dwSoundId)) + { + PSendSysMessage(LANG_SOUND_NOT_EXIST, dwSoundId); + SetSentErrorMessage(true); return false; + } + + Unit* unit = getSelectedUnit(); + if(!unit) + { + SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE); + SetSentErrorMessage(true); + return false; + } + + if(m_session->GetPlayer()->GetSelection()) + unit->PlayDistanceSound(dwSoundId,m_session->GetPlayer()); + else + unit->PlayDirectSound(dwSoundId,m_session->GetPlayer()); - uint32 soundid = atoi(args); - m_session->GetPlayer()->PlaySound(soundid, false); + PSendSysMessage(LANG_YOU_HEAR_SOUND, dwSoundId); return true; } |