Инфо из 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). */
Добавление от артиста: - #define CHAN_AUTO 0
- sample[] - Имя проигрываемого файла ( файлы должны быть предварительно закешированы)
- Float:vol - Дробное значение громкости
- #define VOL_NORM 1.0
- #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
- #define ATTN_NONE 0.00
- 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
- #define PITCH_NORM 100 /* non-pitch shifted */
Тип функции:
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.