Заблочить звук выдачи бомбы

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #1
Всем привет. Помогите заблочить звук выдачи бомбы. У меня на сервере выдается одному игроку бомба, и все игроки палят этого человека по звуку выдачи бомбы, а надо скрыть его по максимуму.

Игра ксго
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Должно блокировать трансляцию звука подбора c4 у окружения.
PHP:
#include <sdktools_sound>
#include <sourcemod>
#pragma newdecls required

#define SND    "c4_draw"    // Если изменить на c4, то будут ловиться все звуки бомбы.

public void OnPluginStart() {    AddNormalSoundHook(SND_Hook);    }
public Action SND_Hook(int clients[64], int &numClients, char smple[PLATFORM_MAX_PATH], int &entity, \
                                int &channel, float &volume,int &level, int &pitch, int &flags)
{
    if(StrContains(smple, SND) != -1)    return Plugin_Handled;
    return Plugin_Continue;
}
 
Последнее редактирование:

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #3
Должно блокировать трансляцию звука подбора c4 у окружения.
PHP:
#include <sdktools_sound>
#include <sourcemod>
#pragma newdecls required

#define SND    "c4_draw"    // Если изменить на c4, то будут ловиться все звуки бомбы.

public void OnPluginStart() {    AddNormalSoundHook(SND_Hook);    }
public Action SND_Hook(int clients[64], int &numClients, char smple[PLATFORM_MAX_PATH], int &entity, \
                                int &channel, float &volume,int &level, int &pitch, int &flags)
{
    if(StrContains(smple, SND) != -1)    return Plugin_Handled;
    return Plugin_Continue;
}

помимо draw есть drop?
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
помимо draw есть drop?
При разборе vpk нашел только эти звуки, drop среди них нет.
Возможно draw используется, как для подъема, так и для сброса c4, или же звук дропа у всех один, но это не точно.
Во всяком случае, можно отловить звуки тем же путем, только добавив дебаг в какой-нибудь лог.
с4_snd.png
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #5
При разборе vpk нашел только эти звуки, drop среди них нет.
Возможно draw используется, как для подъема, так и для сброса c4, или же звук дропа у всех один, но это не точно.
Во всяком случае, можно отловить звуки тем же путем, только добавив дебаг в какой-нибудь лог.

Просто оставив даже с4, все равно слышны звуки дропа бомбы
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Просто оставив даже с4, все равно слышны звуки дропа бомбы
Проверялось с кем - то или соло, т.к. блокируется для окружающих, а не для источника.
Т.е. нужно чтоб кто-то ее поднял/скинул.
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #7
Проверялось с кем - то или соло, т.к. блокируется для окружающих, а не для источника.
Т.е. нужно чтоб кто-то ее поднял/скинул.

когда мало людей на сервере, все палят у кого бомба, понятно что для окружающих)
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
@September
Звук подбора бомбы сравним со звуком подбора остальных оружий. Не знаю, как игроки определяют бомба это или нет.
Решения выше можешь откинуть.
PHP:
#include <sdktools_sound>
#include <sourcemod>
#pragma newdecls required

#define ITEM    "c4"

bool bIsC4;

public void OnPluginStart() { 
    HookEvent("item_pickup", Event_PU, EventHookMode_Pre);
    HookEvent("item_equip", Event_EU, EventHookMode_Pre);
    AddNormalSoundHook(SND_Hook);
}
public Action SND_Hook(int clients[64], int &numClients, char smple[PLATFORM_MAX_PATH], int &entity, \
                                int &channel, float &volume,int &level, int &pitch, int &flags)
{
    if(bIsC4 && StrContains(smple, "pickup") != -1)
        return Plugin_Handled;
    return Plugin_Continue;
}
public Action Event_PU(Event event, char[] name, bool IsSilent)
{
    char sItem[16];
    event.GetString("item", sItem, sizeof(sItem));
    if(StrContains(sItem, ITEM) != -1)    bIsC4 = true;
    else bIsC4 = false;
    return Plugin_Continue;
}
public Action Event_EU(Event event, char[] name, bool IsSilent)
{
    char sItem[16];
    event.GetString("item", sItem, sizeof(sItem));
    if(StrContains(sItem, ITEM) != -1)    bIsC4 = true;
    else bIsC4 = false;
    return Plugin_Continue;
}
 
Последнее редактирование:
Сверху Снизу