Русское сообщество по скриптингу

Воспроизведения звука для игроков

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Воспроизведения звука для игроков

Сообщение Mandar1n » 10 фев 2018, 20:20

Изменил модели ножей(в другом плагине) и хотел сделать плагин, который меняет звук. Но, ножи только для випов. Посмотрите код и скажите, я правильно все сделал или это вовсе не так делается? Если игрок вип, то слышит другие удары ножей и если игрок следит за ним, он тоже слышит другие звуки. На практике думаю так и будет, но не уверен, потому что слишком просто...

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
 
#define PLUGIN "Sound Replace Plugin"
#define VERSION "1.0"
#define AUTHOR "True_Hacker"
 
 
public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_forward(FM_EmitSound"fw_emit_sound"// регестрируем форвард который будет работать как фильтр звуков
}
 
public 
plugin_precache()
{
    
precache_sound("mandar1n/weapon/knife_draw.wav"// кэшируем звук на который будем менять
    
precache_sound("mandar1n/weapon/knife_hit1.wav"// кэшируем звук на который будем менять
    
precache_sound("mandar1n/weapon/knife_hit2.wav"// кэшируем звук на который будем менять
    
precache_sound("mandar1n/weapon/knife_hitwall1.wav"// кэшируем звук на который будем менять
    
precache_sound("mandar1n/weapon/knife_slash1.wav"// кэшируем звук на который будем менять
    
precache_sound("mandar1n/weapon/knife_stab.wavv"// кэшируем звук на который будем менять
}
 
public 
fw_emit_sound(id,channel,const sound[])
{
if((
get_user_flags(id) & ADMIN_LEVEL_H) || (!(is_user_alive(id))))
{
    if(
equal(sound,"weapons/knife_deploy1.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_draw.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
    if(
equal(sound,"weapons/knife_hit1.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_hit1.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
        if(
equal(sound,"weapons/knife_hit2.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_hit2.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
        if(
equal(sound,"weapons/knife_hit3.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_hit3.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
        if(
equal(sound,"weapons/knife_hit4.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_hit4.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
        if(
equal(sound,"weapons/knife_hitwall1.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_hitwall1.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
        if(
equal(sound,"weapons/knife_slash1.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_slash1.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
        if(
equal(sound,"weapons/knife_slash2.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_slash1.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
        if(
equal(sound,"weapons/knife_stab.wav")) // проверяем,тот ли звук мы поймали
    
{
        
emit_sound(id,channel,"mandar1n/weapon/knife_stab.wav",1.0,1.0,0,100// проигрываем нужный нам
        
return FMRES_SUPERCEDE;
    }
}
Аватара пользователя
Mandar1n
 
Сообщения: 133
Зарегистрирован: 08 дек 2013, 14:08
Благодарил (а): 38 раз.
Поблагодарили: 4 раз.
Языки программирования: Counter-Strike 1.6

Re: Воспроизведения звука для игроков

Сообщение Stimul » 10 фев 2018, 23:56

Неправильно, нужно отловить наблюдателя твоего випа.
Код: Выделить всё
public fw_emit_sound(id,channel,const sound[])
{
    new iFlags = get_user_flags(id);
    if(iFlags & ADMIN_LEVEL_H || (iFlags & ADMIN_LEVEL_H && pev(id, pev_iuser2)))
    {
        if(equal(sound,"weapons/knife_deploy1.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_draw.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
        if(equal(sound,"weapons/knife_hit1.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_hit1.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
        if(equal(sound,"weapons/knife_hit2.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_hit2.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
        if(equal(sound,"weapons/knife_hit3.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_hit3.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
        if(equal(sound,"weapons/knife_hit4.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_hit4.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
        if(equal(sound,"weapons/knife_hitwall1.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_hitwall1.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
        if(equal(sound,"weapons/knife_slash1.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_slash1.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
        if(equal(sound,"weapons/knife_slash2.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_slash1.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
        if(equal(sound,"weapons/knife_stab.wav")) // проверяем,тот ли звук мы поймали
        {
            emit_sound(id,channel,"mandar1n/weapon/knife_stab.wav",1.0,1.0,0,100) // проигрываем нужный нам
            return FMRES_SUPERCEDE;
        }
    }
    return FMRES_IGNORED;
}
Аватара пользователя
Stimul
 
Сообщения: 3582
Зарегистрирован: 04 янв 2012, 19:51
Благодарил (а): 192 раз.
Поблагодарили: 1163 раз.
Опыт программирования: Больше трех лет


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11