Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 5
    Гостей: 5
    Пользователи: - отсутствуют
    Роботы: - отсутствуют

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 4-10-2011, 13:19 Просмотров: 10989

    emit_sound Функция для проигрывания звуков

    Захотелось добавить своих звуков на сервер? Вы пришли по адресу. С помощью функции emit_sound, можно проиграть звук любому игроку на сервере или одновременно всем,функция достаточно функциональна, но у меня к сожалению не было времени детально изучить все ее возможности, оставлю эту занимательную процедуру вам.

    Инфо из amxmodx.inc:
    /* Emits sound. Sample must be precached. */
    native emit_sound(index, channel, const sample[], Float:vol, Float:att,flags, pitch);


    Синтаксис:
    emit_sound ( index, channel, sample[], Float:vol, Float:att,flags, pitch )

    • index - id игрока или 0 если надо проиграть всем игрокам одновременно
    • channel - Канал проигрывания звука, честно говоря не проверял как каждый из них работает:
      • #define CHAN_AUTO 0
      • #define CHAN_WEAPON 1 (Воспроизводится, пока не: пока не выстрелишь. артист©)
      • #define CHAN_VOICE 2 (Воспроизводится, пока не: получишь урон. igas©)(было: будет слышно всем кто стоит рядом с игроком)
      • #define CHAN_ITEM 3 (Воспроизводится, пока не: пока не сменишь оружие. артист©)
      • #define CHAN_BODY 4 (Воспроизводится, пока не: пока не будет шагов. артист©)
      • #define CHAN_STREAM 5 /* allocate stream channel from the static or dynamic area */
      • #define CHAN_STATIC 6 /* allocate channel from the static area */
      • #define CHAN_NETWORKVOICE_BASE 7 /* voice data coming across the network */
      • #define CHAN_NETWORKVOICE_END 500 /* network voice data reserves slots (CHAN_NETWORKVOICE_BASE through CHAN_NETWORKVOICE_END). */

      Добавление от артиста:

    • sample[] - Имя проигрываемого файла ( файлы должны быть предварительно закешированы)
    • Float:vol - Дробное значение громкости
      • #define VOL_NORM 1.0

    • Float:att - Attenuation values Честно говоря не понял для чего это, но обычно все ставят "норм".
      • #define ATTN_NONE 0.00
      • #define ATTN_NORM 0.80
      • #define ATTN_IDLE 2.00
      • #define ATTN_STATIC 1.25

    • flags - Флаги, что с ними делать так же не понял. По экспериментируйте сами, может поймете.
    • pitch - Скорость проигрывания звука, норма 100. Возможное значение от 0 до 255.
      • #define PITCH_NORM 100 /* non-pitch shifted */
      • #define PITCH_LOW 95 /* other values are possible - 0-255, where 255 is very high */
      • #define PITCH_HIGH 120



    Тип функции:
    Native

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[amxmodx.inc] emit sound"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say /sound1","sound_1")
        register_clcmd("say /sound2","sound_2")
        register_clcmd("say /sound3","sound_3")
        register_clcmd("say /sound4","sound_4")
        
    }
    public plugin_precache(){
         precache_sound( "radio/blow.wav" )
        
    }

    public sound_1(id){
        emit_sound(id,0,"radio/blow.wav",1.0, 1.0, 0, 100 )
    }
    public sound_2(id){
        emit_sound(id,0,"radio/blow.wav",1.0, ATTN_NORM, 0, PITCH_NORM )
        
    }
    public sound_3(id){
        emit_sound(id,0,"radio/blow.wav",1.0, 1.0, 0, 50 )
        
    }
    public sound_4(id){
        emit_sound(id,CHAN_VOICE,"radio/blow.wav",1.0, 1.0, 0, 150 )
        
    }


    Описание:
    Так как я не разбирался до последнего с этой функцией, пример получился скудноватый,но рабочий.
    Всего в примере 4 команды say /sound*, которые вызывают свои функции.
    Во всех них одна и та же функция emit_sound, но с различными параметрами.

    Обратите внимание: Все звуки должны быть закешированны ( plugin_precache ), иначе не будет работать. Так же функция не поддерживает формат mp3.

    Думаю нет смысла словами повторять все то что вы услышите на сервере попробовав команды, затем просто попробуйте менять значения и изучайте детальные возможности функции.
    Новость отредактировал Admin - 18-02-2014, 22:23
    Причина: Добавления от Артиста, igas.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    emit_sound Функция для проигрывания звуков
    web--ka

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Благодарю!
    SaRiOVeN

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Блин ответ уже какой день ищу, а найти достоверного ни как не могу... Гадство. angry
    Olota

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    emit_sound(0, CHAN_AUTO, SOUND, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_NORM);
    Флаг SND_STOP останавливает определённый звук.
    by4udilo

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    mp3 не катит=(
    Xbass13

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Существует еще какая-нибудь функция воспроизведения, но чтоб звук воспроизводился только одному игроку (остальные вокруг не слышали его)?

    Зы тестил звуки по каналам, 1 канал дальше слышно, чем остальные
    Xbass13

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Все, нашел. Через
    client_cmd(id, "spk sound/radio/blow.wav")
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Воспроизводится, пока не:

    CHAN_WEAPON - выстрелишь
    CHAN_ITEM 3 - не сменишь оружие
    CHAN_BODY 4 - будет шагов
    gavrilyuc

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    маленький вопрос(для уточнения)
    emit_sound(id,0, "radio/blow.wav" ,1.0, 1.0, 0, 100 )

    как я понял полный путь к файлу :
    server/cstrike/sound/radio/blow.wav
    я прав ?
    Можно ли указывать директорию не cstrike а valve ?
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    server/cstrike/ не надо ))

    emit_sound(id,0, "radio/blow.wav" ,1.0, 1.0, 0, 100 )
    Это и есть из папки valve
    igas

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    исправте
    CHAN_VOICE 2

    Воспроизводится, пока не: пока не получишь урон

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама