Звук с гранаты [reapi]

Artem_Krasavchik

Пользователь
Регистрация
27 Апр 2021
Сообщения
12
Симпатии
0
Помогите разобратся, звук с ножа идет как надо, что сделать чтобы звук с гранаты тоже воспроизводился (когда я убиваю гранатой)?
Код:
#include <amxmodx>
#include <reapi>

#define MONEY_MIN 100        // Минимальное количество денег, которое могут отобрать при убийстве с ножа

public plugin_init()
{
    register_plugin("[UM] 1", "2", "3");
    RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", true);
    RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true);
    register_clcmd("say /sound", "Sound");
}

new g_Sound[33], g_KillCount[33], g_KillHS[33];

public client_putinserver(id)
    g_Sound[id] = true;
    
public Sound(id)
{
    if(g_Sound[id])
    {
        g_Sound[id] = false;
        client_print_color(0, print_team_default, "^1[^4UM^1] Вы ^3отключили ^4 звуки^1.");
    }
    else
    {
        g_Sound[id] = true;
        client_print_color(0, print_team_default, "^1[^4UM^1] Вы ^3включили ^4 звуки^1.");
    }
}

new const SoundList[4][] =
{
    "",
    "sound/UM/suicide_kills.mp3",
    "sound/UM/knife_kill.mp3",
    "sound/UM/granade_kill.mp3"
}

public plugin_precache()
{
    for(new i = 1; i < 4; i++)
        precache_generic(SoundList[i]);
}

public CBasePlayer_Spawn(id)
{
    g_KillCount[id] = 0;
    g_KillHS[id] = false;
}

public CBasePlayer_Killed_Post(const victimId, killerId, iGib)
{
    if(!is_user_alive(killerId))
        return;

    new szKillerName[32], szVictimName[32];
    get_user_name(killerId, szKillerName, charsmax(szKillerName));
    get_user_name(victimId, szVictimName, charsmax(szVictimName));
    new g_Money = random_num(MONEY_MIN, get_member(victimId, m_iAccount));   

    if(victimId == killerId)
    {
        client_print_color(0, print_team_default, "^1[^4UM^1] Игрок ^3%s ^1совершил ^4самоубийство", szKillerName);
        client_cmd(0, "mp3 play %s", SoundList[1]);   
    }
    else if(get_user_weapon(killerId) == CSW_KNIFE)
    {
        rg_add_account(killerId, g_Money, AS_ADD);
        rg_add_account(victimId, - g_Money, AS_ADD);
        client_print_color(0, print_team_default, "^1[^4UM^1] Игрок ^3%s ^1зарезал игрока ^3%s ^1и получил ^4$%d", szKillerName, szVictimName, g_Money);
        client_cmd(0, "mp3 play %s", SoundList[2]);   
    }
    else if(get_user_weapon(killerId) == CSW_HEGRENADE)
    {
        rg_add_account(killerId, g_Money, AS_ADD);
        rg_add_account(victimId, - g_Money, AS_ADD);
        client_print_color(0, print_team_default, "^1[^4UM^1] Игрок ^3%s ^1подорвал ^3%s ^1и получил ^4$%d", szKillerName, szVictimName, g_Money);
        client_cmd(0, "mp3 play %s", SoundList[3]);   
    }
    else return
}
 

Artem_Krasavchik

Пользователь
Регистрация
27 Апр 2021
Сообщения
12
Симпатии
0
Пробовал и так, тоже не канает [другой скрипт]
C#:
/*
    Автор плагина: Slove. & AcE
*/

#include <amxmodx>

#if !defined MAX_CLIENTS
    const MAX_CLIENTS = 32
#endif
#if !defined MAX_NAME_LENGTH
    const MAX_NAME_LENGTH = 32
#endif

new bool:g_bIsSwitch[MAX_CLIENTS +1]

new const sounds_list[2][] =
{
    "UM/knife_kill.mp3",
    "UM/granade_kill.mp3"
}

public plugin_precache()
{
    for (new i; i < sizeof(sounds_list); i ++)
    {
        precache_generic(sounds_list[i])
    }
}

public plugin_init()
{
    register_plugin("Weapon Kill No Suicide", "1.2", "Slove. & AcE")
    register_event("DeathMsg", "death_message", "a")
}

public client_putinserver(id) g_bIsSwitch[id] = true
public client_disconnected(id) g_bIsSwitch[id] = false

public death_message()
{
    static killer, victim,
    kname[MAX_NAME_LENGTH], vname[MAX_NAME_LENGTH]
    killer = read_data(1), victim = read_data(2)

    if (!g_bIsSwitch[killer]) return
    if (!is_user_connected(killer) || victim == killer) return

    get_user_name(killer, kname, charsmax(kname))
    get_user_name(victim, vname, charsmax(vname))

    new weapon[MAX_NAME_LENGTH]
    read_data(4, weapon, charsmax(weapon))

    if (equal(weapon, "knife"))
    {

        client_cmd(0, "mp3 play ^"sound/%s^"", sounds_list[0])
        if (read_data(3) != HIT_HEAD) client_print_color(0, print_team_default, "^1[^4Kill Sound^1] ^4%s ^1зарезал ^4%s ^1и стал ^3свинорезом.", kname,vname)
        else client_print_color(0, print_team_default, "^1[^4Kill Sound^1] ^4%s ^1зарезал в голову ^4%s ^1и стал ^3свинорезом.", kname,vname)
    }
    else if (equal(weapon, "grenade"))
    {
        if (victim != killer)
        {
            client_cmd(0, "mp3 play ^"sound/%s^"", sounds_list[1])
            client_print_color(0, print_team_default, "^1[^4Kill Sound^1] ^4%s ^1подорвал ^4%s ^1и стал ^3подрывником.", kname,vname)
        }
    }
}
 

Artem_Krasavchik

Пользователь
Регистрация
27 Апр 2021
Сообщения
12
Симпатии
0
Как поймать вызов то что человека убили с гранаты?
 

Nelpsen

Пользователь
Регистрация
9 Июл 2017
Сообщения
59
Симпатии
27
Пол
Мужской
Код:
#include < amxmodx >
#include < reapi >

#pragma semicolon 1

new const SOUND__GRENADE_KILL[ ] = "gmforce/kill_sound/grenade_1.wav";
new const SOUND__KNIFE_KILL[ ] = "gmforce/kill_sound/knife_1.wav";

public plugin_precache( )
{
    precache_sound( SOUND__GRENADE_KILL );
    precache_sound( SOUND__KNIFE_KILL );
}

public plugin_init( )
{
    RegisterHookChain( RG_CSGameRules_PlayerKilled, "hook_PlayerKilled_Post", .post = true );
}

public hook_PlayerKilled_Post( const iVictim, const iKiller, const iInflictor )
{
    if( iVictim == iKiller || !is_user_connected( iKiller ) )
    {
        return HC_CONTINUE;
    }
    
    if( iInflictor != iKiller )
    {
        if( get_member( iVictim, m_bKilledByGrenade ) )
        {
            rg_send_audio( 0, SOUND__GRENADE_KILL );
        }
        
        return HC_CONTINUE;
    }
    
    new iActiveItem = get_member( iKiller, m_pActiveItem );
    
    if( !is_nullent( iActiveItem ) && get_member( iActiveItem, m_iId ) == WEAPON_KNIFE )
    {
        rg_send_audio( 0, SOUND__KNIFE_KILL );
    }
    
    return HC_CONTINUE;
}
 

Artem_Krasavchik

Пользователь
Регистрация
27 Апр 2021
Сообщения
12
Симпатии
0
Код:
#include < amxmodx >
#include < reapi >

#pragma semicolon 1

new const SOUND__GRENADE_KILL[ ] = "gmforce/kill_sound/grenade_1.wav";
new const SOUND__KNIFE_KILL[ ] = "gmforce/kill_sound/knife_1.wav";

public plugin_precache( )
{
    precache_sound( SOUND__GRENADE_KILL );
    precache_sound( SOUND__KNIFE_KILL );
}

public plugin_init( )
{
    RegisterHookChain( RG_CSGameRules_PlayerKilled, "hook_PlayerKilled_Post", .post = true );
}

public hook_PlayerKilled_Post( const iVictim, const iKiller, const iInflictor )
{
    if( iVictim == iKiller || !is_user_connected( iKiller ) )
    {
        return HC_CONTINUE;
    }
   
    if( iInflictor != iKiller )
    {
        if( get_member( iVictim, m_bKilledByGrenade ) )
        {
            rg_send_audio( 0, SOUND__GRENADE_KILL );
        }
       
        return HC_CONTINUE;
    }
   
    new iActiveItem = get_member( iKiller, m_pActiveItem );
   
    if( !is_nullent( iActiveItem ) && get_member( iActiveItem, m_iId ) == WEAPON_KNIFE )
    {
        rg_send_audio( 0, SOUND__KNIFE_KILL );
    }
   
    return HC_CONTINUE;
}
Нож воспроизводит, гранату так и нет, незнаю даже что и придумать...
 
Сверху Снизу