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

Путаются звуки

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

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

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

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

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

Путаются звуки

Сообщение simplyDavchik » 13 мар 2018, 23:24

Иногда путаются звуки удара левой и правой кнопкой мыши при отлове и воспроизведении, совершенно не пойму с чем это связано.

Код: Выделить всё
#include <amxmodx> 
#include <amxmisc>
#include <fakemeta> 
#include <hamsandwich>

#define PLUGIN_NAME "Magic Wand"
#define PLUGIN_VERSION "0.3"
#define PLUGIN_AUTHOR "@LLaPb@"

new VIEW_MODEL1[] = "models/magic/v_magic.mdl";
new 
VIEW_MODEL2[] = "models/magic/p_magic.mdl";
new 
MAGIC1[] = "magic/magic_hit1.wav";
new 
MAGIC2[] = "magic/dchill.wav";

new 
MW[33];

public 
plugin_init() 
{
    
register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR);   
    
register_event("CurWeapon""Event_CurWeapon""be","1=1");
    
register_forward(FM_EmitSound"fw_EmitSounds");
    
register_event("HLTV""NewRound""a""1=0""2=0");
    
register_clcmd("GetWand","GetWand");


public 
NewRound()
{
    for(new 
id 0id<=32id++)
    {
        
MW[id] = false;
    }
}

public 
GetWand(id)
{
    if(
ham_strip_weapon(id,"weapon_knife"))
    {
        if(
ham_give_weapon(id,"weapon_knife"))
        {
            
MW[id] = true;
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
plugin_precache() 
{
    
precache_model(VIEW_MODEL1);
    
precache_model(VIEW_MODEL2);
    
precache_sound(MAGIC1);
    
precache_sound(MAGIC2);


public 
Event_CurWeapon(id
{
    new 
weaponID read_data(2);
    
    if(
weaponID == CSW_KNIFE && MW[id])
    {
        
set_pev(idpev_viewmodel2VIEW_MODEL1);
        
set_pev(idpev_weaponmodel2VIEW_MODEL2);
    }
    
    return 
PLUGIN_CONTINUE;
}
/*
public fw_emit_sound(id,channel,const sound[])
{
    if(equal(sound,"weapon/knife_slash1.wav"))
    {
        emit_sound(id,channel,MAGIC1,1.0,1.0,0,100);
        return FMRES_SUPERCEDE;
    }
    if(equal(sound,"weapon/knife_slash2.wav"))
    {
        emit_sound(id,channel,MAGIC2,1.0,1.0,0,100);
        return FMRES_SUPERCEDE;
    }
    return FMRES_IGNORED;
}
*/
public fw_EmitSounds(idchannel, const sample[], Float:volumeFloat:attnflagspitch)
{
    if(!
MW[id])
        return 
FMRES_IGNORED;
    if (
sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        if (
sample[19] == '1'// slash1
        
{
            
emit_sound(id,channel,MAGIC1,1.0,1.0,0,100);
            return 
FMRES_SUPERCEDE;
        }else if (
sample[19] == '2'// slash2
        
{
            
emit_sound(id,channel,MAGIC2,1.0,1.0,0,100);
            return 
FMRES_SUPERCEDE;
        }
    }
    return 
FMRES_IGNORED;
}

/* Стоки */

stock ham_give_weapon(id,weapon[])
{
    if(!
equal(weapon,"weapon_",7)) return 0
 
    
new wEnt engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,weapon));
    if(!
pev_valid(wEnt)) return 0
 
    set_pev
(wEnt,pev_spawnflags,SF_NORESPAWN);
    
dllfunc(DLLFunc_Spawn,wEnt)
     
    if(!
ExecuteHamB(Ham_AddPlayerItem,id,wEnt))
    {
        if(
pev_valid(wEnt)) set_pev(wEnt,pev_flags,pev(wEnt,pev_flags) | FL_KILLME);
        return 
0
    
}
 
    
ExecuteHamB(Ham_Item_AttachToPlayer,wEnt,id)
    return 
1
}

stock ham_strip_weapon(id,weapon[])
{
    if(!
equal(weapon,"weapon_",7)) return 0

    
new wId get_weaponid(weapon)
    if(!
wId) return 0

    
new wEnt
    
while((wEnt engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
    if(!
wEnt) return 0

    
if(get_user_weapon(id) == wIdExecuteHamB(Ham_Weapon_RetireWeapon,wEnt)

    if(!
ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0
    ExecuteHamB
(Ham_Item_Kill,wEnt);

    
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId))
    
    return 
1
}
  
Даже если цель не достижима, попробовать стоит.
Аватара пользователя
simplyDavchik
 
Сообщения: 132
Зарегистрирован: 08 апр 2017, 23:28
Откуда: Латвия
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Java
C++
C#
Pawn

Re: Путаются звуки

Сообщение simplyDavchik » 14 мар 2018, 20:08

В чем может быть проблема?

Добавлено спустя 2 часа 31 минуту 34 секунды:
Ай пофиг, я уже сделал по другому, не стал заморачиваться с отловом звуков.
Даже если цель не достижима, попробовать стоит.
Аватара пользователя
simplyDavchik
 
Сообщения: 132
Зарегистрирован: 08 апр 2017, 23:28
Откуда: Латвия
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Java
C++
C#
Pawn

Re: Путаются звуки

Сообщение MayroN » 15 мар 2018, 15:46

Если начал - неостанавливайся.Давай до конца...)

Если я правильно тебя понял,то здесь ты поставил свои?
Код: Выделить всё
new MAGIC1[] = "magic/magic_hit1.wav";
new 
MAGIC2[] = "magic/dchill.wav"


Если ето так,то поставь их и сюда тоже

Код: Выделить всё
public fw_emit_sound(id,channel,const sound[])
{
    if(
equal(sound,"weapon/magic_hit1.wav"))
    {
        
emit_sound(id,channel,MAGIC1,1.0,1.0,0,100);
        return 
FMRES_SUPERCEDE;
    }
    if(
equal(sound,"weapon/dchill.wav"))
    {
        
emit_sound(id,channel,MAGIC2,1.0,1.0,0,100);
        return 
FMRES_SUPERCEDE;
    }
    return 
FMRES_IGNORED;
МультиМод CS
Аватара пользователя
MayroN
 
Сообщения: 673
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 149 раз.
Поблагодарили: 86 раз.
Опыт программирования: Около года
Языки программирования: На которых говорю...

Re: Путаются звуки

Сообщение артист666 » 16 мар 2018, 15:44

Все звуки ножа:

knife_deploy1.wav - выхватывание
knife_hit1.wav - удар в игрока
knife_hit2.wav - удар в игрока
knife_hit3.wav - удар в игрока
knife_hit4.wav - удар в игрока
knife_hitwall1.wav - удар в не живой объект
knife_slash1.wav - промах
knife_slash2.wav - промах
knife_stab.wav - не помню
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Путаются звуки

Сообщение simplyDavchik » 18 мар 2018, 00:32

MayroN писал(а):Если начал - неостанавливайся.Давай до конца...)

Если я правильно тебя понял,то здесь ты поставил свои?
Код: Выделить всё
new MAGIC1[] = "magic/magic_hit1.wav";
new MAGIC2[] = "magic/dchill.wav";


Если ето так,то поставь их и сюда тоже

Код: Выделить всё
public fw_emit_sound(id,channel,const sound[])
{
    if(equal(sound,"weapon/magic_hit1.wav"))
    {
        emit_sound(id,channel,MAGIC1,1.0,1.0,0,100);
        return FMRES_SUPERCEDE;
    }
    if(equal(sound,"weapon/dchill.wav"))
    {
        emit_sound(id,channel,MAGIC2,1.0,1.0,0,100);
        return FMRES_SUPERCEDE;
    }
    return FMRES_IGNORED;
}

Не совсем, мне надо было отлавливать звук ножа при ударе левой кнопкой и правой. И заменить левую на magic_hit1 а правую на dchill, но я в итоге забил и просто сделал отлов удара правой и левой кнопкой и воспроизводил звук какой нужен.
Даже если цель не достижима, попробовать стоит.
Аватара пользователя
simplyDavchik
 
Сообщения: 132
Зарегистрирован: 08 апр 2017, 23:28
Откуда: Латвия
Благодарил (а): 15 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Java
C++
C#
Pawn

Re: Путаются звуки

Сообщение артист666 » 18 мар 2018, 22:11

Дак звуки сами по себе чередуются.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn


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

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

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