Изменение стереобазы EmitSoundToClient

Тема в разделе "Программирование / Скриптинг", создана пользователем iamdss, 19 июл 2015.

  1. iamdss

    iamdss

    Сообщения:
    117
    Симпатии:
    0
    Необходимо стало изменить стереобазу звука, сдвинув полностью влево или вправо. Для чего нужно - пишу плагин для HL2DM для воспроизведения звуков рикошета и промахов мимо головы и хотелось бы, в зависимости от расположения конечной точки выстрела, сдвигать и стереобазу. Иначе звук получается менее естественным, так как стандартные звуки HL2 уже являются стерео и меняют канал. Как это возможно осуществить при условии, что я использую EmitSoundToClient?
     
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.994
    Симпатии:
    2.989
    EmitAmbientSound
     
    iamdss нравится это.
  3. iamdss

    iamdss

    Сообщения:
    117
    Симпатии:
    0
    Спасибо. Ещё такой вопрос. Чем, собственно, отличается EmitAmbientSound от EmitSoundToAll? Параметры схожи. И ещё у меня вопрос по параметрам Emit_ функций:

    Код:
    const char[] name
      Тут понятно.
    
    const float[3] pos
      Позиция источника звука.
    
    int entity
      Entity index to associate sound with - не понятно, зачем присваивать звуку энтити и что это даёт? Перемещаться с ней будет?
    
    int level
      Уровень - что это и чем отличается от объёма?
    
    int flags
      Что значат флаги? (Список видел в инклудах, но не пойму смысла)
    
    float vol
      Объём - в чём отличие от уровня?
    
    int pitch
      Слава Богу, это тоже понятно.
    
    float delay
      Задержка, тоже ясно.
    Существует также такой параметр как канал, что это? И чем отличается, к примеру, SNDCHAN_WEAPON от SNDCHAN_BODY?
     
  4. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.994
    Симпатии:
    2.989
    iamdss, EmitAmbientSound проигрывает звуки не персонально каждому указанному игроку, а звук привязанный к точке на карте. Тоесть те кто ближе будут слышать звук громче, кто дальше - тише, а то и вовсе не слышать. Таким образом воспроизводятся звуки шагов, выстрелов и прочее.

    int entity - это устаналивает эту ентити источником звука (возможно перемеещение, не проверял)

    Насчет остального:
    В комментах написано.
    Тоесть каналы разные для звуков оружий, шагов, голоса и прочего.
     
    iamdss нравится это.
  5. iamdss

    iamdss

    Сообщения:
    117
    Симпатии:
    0
    Хорошо, спасибо. Насчёт остального постараюсь выяснить сам.

    Добавлено через 40 минут
    Насчёт флагов выяснил, что флаги ставить нужно, чтобы указанные параметры были обработаны. Например:

    SND_CHANGEVOL | SND_CHANGEPITCH - будут обработаны vol и pitch аргументы функции, иначе будут проигнорированы.

    Может, кому в будущем поможет.

    Добавлено через 42 минуты
    level - в некоторой степени, радиус звука. Хотя для меня всё равно остаётся загадкой, чем же отличается level от volume... Это одно и то же, только для volume нам надо ещё и заводить флаг.
     
    Последнее редактирование: 19 июл 2015