*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
This commit is contained in:
megamage
2009-03-22 19:20:03 -06:00
parent ce71c0e798
commit a47d2e1c22
11 changed files with 102 additions and 62 deletions

View File

@@ -1884,3 +1884,24 @@ void WorldObject::SetPhaseMask(uint32 newPhaseMask, bool update)
if(update && IsInWorld())
ObjectAccessor::UpdateObjectVisibility(this);
}
void WorldObject::PlayDistanceSound( uint32 sound_id, Player* target /*= NULL*/ )
{
WorldPacket data(SMSG_PLAY_OBJECT_SOUND,4+8);
data << uint32(sound_id);
data << GetGUID();
if (target)
target->SendDirectMessage( &data );
else
SendMessageToSet( &data, true );
}
void WorldObject::PlayDirectSound( uint32 sound_id, Player* target /*= NULL*/ )
{
WorldPacket data(SMSG_PLAY_SOUND, 4);
data << uint32(sound_id);
if (target)
target->SendDirectMessage( &data );
else
SendMessageToSet( &data, true );
}