root | Дата: Воскресенье, 03.02.2013, 01:31 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
| Есть несколько вариантов, как можно проиграть звук.
// Звук будет проигран от начала до конца, и ничто его не перебьет, кроме старта нового раунда // Так могут играть несколько звуков одновременно ClientCommand(client, "playgamesound buttons/blip2.wav");
// Звук может быть перебит другим звуком (прошлый не играет, только новый) ClientCommand(client, "play buttons/blip2.wav");
EmitAmbientSound(1, 2, 3, 4, 5, 6, 7, 8);
Код 1 const String:name[] - звук 2 const Float:pos[3] - координаты, где будет проигран 3 entity = SOUND_FROM_WORLD - индекс объекта, который издает звук 4 level = SNDLEVEL_NORMAL - уровень звучания от 0 до 255 5 flags = SND_NOFLAGS - флаги 6 Float:vol = SNDVOL_NORMAL - громкость от 0.0 до 1.0 7 pitch = SNDPITCH_NORMAL - шаг от 0 до 255 8 Float:delay = 0.0 - задержка в секундах перед проигрыванием
EmitSoundToAll(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); - Объект издает звук для всех игроков
Код 1 const String:sample[] - звук 2 entity = SOUND_FROM_PLAYER - кто издает 3 channel = SNDCHAN_AUTO - канал 4 level = SNDLEVEL_NORMAL 5 flags = SND_NOFLAGS 6 Float:volume = SNDVOL_NORMAL 7 pitch = SNDPITCH_NORMAL 8 speakerentity = -1 - неизвестное 9 const Float:origin[3] = NULL_VECTOR 10 const Float:dir[3] = NULL_VECTOR - направление звука 11 bool:updatePos = true - неизвестное 12 Float:soundtime = 0.0 - Альтернативное время воспроизведения звука
EmitSoundToClient(client, <те же 12 параметров, что и выше>); - Звук для 1 игрока.
Еще есть возможность изменять/блокировать стандартные звуки в игре. Если заложник ранен, он не будет кричать:
Код #include <sourcemod> #include <sdktools>
public OnPluginStart() { AddNormalSoundHook(NormalSHook:HookSound_Func); }
public Action:HookSound_Func(clients[64], &numClients, String:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags) { //PrintToChatAll("sample = %s", sample);
if (StrContains(sample, "hostage/hpain") != -1) return Plugin_Stop; return Plugin_Continue; }
return Plugin_Stop; - запретить звук return Plugin_Continue; - разрешить, чтобы проигрывался return Plugin_Changed; - вы изменили какие-то параметры, например громкость и тд.
Наверно есть какие-то звуки, которыми нельзя так манипулировать, нужно тестировать разные варианты, чтобы узнать.
Цитата Пример пожалуйста проигрывания звука слышного всем, не перебивается другими звуками при определенном событии... к примеру RoundStart или say... Так трудно представить какой Длины код получиться))))))))) Цитата Хм, это же просто, и подобный код очень часто используется (цикл):
Код for (new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i)) ClientCommand(i, "playgamesound buttons/blip2.wav"); }
|
|
| |