All pastes #742475 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-10-19 15:30 UTC
rendered paste body
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)
 {