Index: src/game/Chat.cpp =================================================================== --- src/game/Chat.cpp (revision 4621) +++ src/game/Chat.cpp (working copy) @@ -270,6 +270,7 @@ { "npcflag", SEC_GAMEMASTER, &ChatHandler::HandleNPCFlagCommand, "", NULL }, { "distance", SEC_ADMINISTRATOR, &ChatHandler::HandleGetDistanceCommand, "", NULL }, { "addgo", SEC_GAMEMASTER, &ChatHandler::HandleGameObjectCommand, "", NULL }, + { "PlaySoundAll",SEC_MODERATOR, &ChatHandler::HandlePlaySoundAllCommand, "", NULL }, { "recall", SEC_MODERATOR, &ChatHandler::HandleRecallCommand, "", NULL }, { "save", SEC_PLAYER, &ChatHandler::HandleSaveCommand, "", NULL }, { "saveall", SEC_MODERATOR, &ChatHandler::HandleSaveAllCommand, "", NULL }, Index: src/game/Chat.h =================================================================== --- src/game/Chat.h (revision 4621) +++ src/game/Chat.h (working copy) @@ -183,6 +183,7 @@ bool HandleGUIDCommand(const char* args); bool HandleNameCommand(const char* args); bool HandleSubNameCommand(const char* args); + bool HandlePlaySoundAllCommand(const char* args); bool HandleItemMoveCommand(const char* args); bool HandleDeleteCommand(const char* args); bool HandleDeMorphCommand(const char* args); Index: src/game/Level1.cpp =================================================================== --- src/game/Level1.cpp (revision 4621) +++ src/game/Level1.cpp (working copy) @@ -375,10 +375,10 @@ _player->SetInstanceId(chr->GetInstanceId()); } - PSendSysMessage(LANG_APPEARING_AT, chr->GetName()); - if (_player->IsVisibleGloballyFor(chr)) { + PSendSysMessage(LANG_APPEARING_AT, chr->GetName()); + char buf0[256]; sprintf((char*)buf0,LANG_APPEARING_TO, _player->GetName()); @@ -399,7 +399,8 @@ if (uint64 guid = objmgr.GetPlayerGUIDByName(name)) { - PSendSysMessage(LANG_APPEARING_AT, name.c_str()); + if (_player->IsVisibleGloballyFor(chr)) + PSendSysMessage(LANG_APPEARING_AT, name.c_str()); // to point where player stay (if loaded) float x,y,z,o; @@ -1675,6 +1676,37 @@ return false; } +//Play sound to All +bool ChatHandler::HandlePlaySoundAllCommand(const char* args) +{ + // USAGE: .playsound #soundid + // #soundid - ID decimal number from SoundEntries.dbc (1 column) + // this file have about 5000 sounds. + // In this realisation only caller can hear this sound. + Unit *target = getSelectedUnit(); + if(!target) + target = m_session->GetPlayer(); + + if( *args ) + { + int dwSoundId = atoi((char*)args); + if( dwSoundId >= 0 ) + { + + WorldPacket data(4); + data.SetOpcode(SMSG_PLAY_SOUND); + data << uint32(dwSoundId); + target->SendMessageToSet(&data,false); + + PSendSysMessage(LANG_YOU_HEAR_SOUND, dwSoundId); + return true; + } + } + + SendSysMessage(LANG_BAD_VALUE); + return false; +} + //Save all players in the world bool ChatHandler::HandleSaveAllCommand(const char* args) {