Написание плагинов

Grey83

не пишу плагины с весны 2022
Сообщения
8,517
Реакции
4,979
А где можно найти список SOUND_DEFUSEKIT_PICKUP
Это дефайн только для этого конкретного плагина и имя ему выдумал автор оного, а список звуков в ресурсах игры искать нужно.
Кстати в файлах конфигов CS:S можно отдельные звуки для каждого оружия найти, но эти конфиги нужно декомпилировать обычно (утилитка на геймбанане уже сто лет как лежит).
 

Synd1qate

Участник
Сообщения
744
Реакции
259
Это дефайн только для этого конкретного плагина и имя ему выдумал автор оного, а список звуков в ресурсах игры искать нужно.
Кстати в файлах конфигов CS:S можно отдельные звуки для каждого оружия найти, но эти конфиги нужно декомпилировать обычно (утилитка на геймбанане уже сто лет как лежит).
Scripts?
Они на оленях лежат в txt
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,517
Реакции
4,979
@Synd1qate, я предпочитаю сам их декомпилировать.
Да и эти скрипты не только в CS:S имеются, а и в других играх на движке Source тоже.
 

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
а хватило бы одного sdktools_sound
Сообщения автоматически склеены:

Вот примерно так:
SM1.13:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_sound>

#define SOUND_DEFUSEKIT_PICKUP    "items/defuser_pickup.wav"

public Plugin myinfo =
{
    name = "Disable Defuse Kit Pickup Sound",
    author = "DENZEL519&AI",
    description = "Removes the sound when picking up defuse kit from ground",
    version = "1.0"
}

public void OnPluginStart()
{
    AddNormalSoundHook(SoundHook);
}

public Action SoundHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    return !strcmp(sample, SOUND_DEFUSEKIT_PICKUP, false) ? Plugin_Stop : Plugin_Continue;
}
Сообщения автоматически склеены:


да
А как можно заблокировать звуки оружий? Перезарядку, выстрел и тд
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,517
Реакции
4,979
@7pElllHuK, вроде были такие плагины, но где найти не подскажу.
 

DarkerZ

Участник
Сообщения
394
Реакции
175
А как можно заблокировать звуки оружий? Перезарядку, выстрел и тд
если у других игроков AddNormalSoundHook / возможно через хук um, по крайней мере в кс2 именно через HookUserMessage 452. для css плагин назывался toggle weapon sounds
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
если у других игроков AddNormalSoundHook / возможно через хук um, по крайней мере в кс2 именно через HookUserMessage 452. для css плагин назывался toggle weapon sounds
К сожалению на 34 ксс не работает, выдает
L 07/05/2025 - 14:42:07: [SM] Exception reported: Temp entity property "m_fInaccuracy" not found
L 07/05/2025 - 14:42:07: [SM] Blaming: Weapon_sound.smx
L 07/05/2025 - 14:42:07: [SM] Call stack trace:
L 07/05/2025 - 14:42:07: [SM] [0] TE_ReadFloat
L 07/05/2025 - 14:42:07: [SM] [1] Line 152, C:\Users\Smert\Desktop\�����������\1.11_scripting\Weapon_sound.sp::CSS_Hook_ShotgunShot
 

NeLifeASkazka

Участник
Сообщения
128
Реакции
70
К сожалению на 34 ксс не работает, выдает
L 07/05/2025 - 14:42:07: [SM] Exception reported: Temp entity property "m_fInaccuracy" not found
L 07/05/2025 - 14:42:07: [SM] Blaming: Weapon_sound.smx
L 07/05/2025 - 14:42:07: [SM] Call stack trace:
L 07/05/2025 - 14:42:07: [SM] [0] TE_ReadFloat
L 07/05/2025 - 14:42:07: [SM] [1] Line 152, C:\Users\Smert\Desktop\�����������\1.11_scripting\Weapon_sound.sp::CSS_Hook_ShotgunShot
Просто убери параметр m_fInaccuracy. И возможно еще некоторые параметры
Но тогда возможно не будет работать анимация стрельбы
Хотя костыльно мб можно сделать, и заменить звуки на кастомные
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Просто убери параметр m_fInaccuracy. И возможно еще некоторые параметры
Но тогда возможно не будет работать анимация стрельбы
Хотя костыльно мб можно сделать, и заменить звуки на кастомные
убрал, как не блокировались звуки, так и не начали, ошибок нет
 

DENZEL519

Работаю с AI !
Сообщения
417
Реакции
198
убрал, как не блокировались звуки, так и не начали, ошибок нет
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools>
#include <sdktools_sound>

public Plugin myinfo =
{
    name = "[CSS] Weapon Sound Blocker",
    author = "DENZEL519 & AI",
    description = "Blocks weapon sounds (shooting, reloading, etc.) in CS:S",
    version = "1.0",
}

public void OnPluginStart()
{
    AddNormalSoundHook(SoundHook);
}

public Action SoundHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    // Блокируем звуки оружий (выстрелы, перезарядка, переключение и т.д.)
    if (StrContains(sample, "weapons/", false) == 0)
    {
        // Можно добавить исключения (например, звуки ножей)
        if (StrContains(sample, "knife", false) != -1)
        {
            return Plugin_Continue;
        }

        return Plugin_Stop;
    }

    // Блокируем другие звуки (например, подбор гранат, дефуз-кита и т.д.)
    if (StrContains(sample, "items/", false) == 0)
    {
        return Plugin_Stop;
    }

    return Plugin_Continue;
}

Список звуков, которые можно заблокировать в CSS

1. Звуки выстрелов

  • weapons/ak47-1.wav
  • weapons/m4a1_unsil-1.wav
  • weapons/awp1.wav
  • weapons/deagle-1.wav
  • weapons/p228-1.wav
  • weapons/famas-1.wav
  • weapons/galil-1.wav
  • weapons/sg552-1.wav
  • weapons/aug-1.wav
  • weapons/scout_fire-1.wav
  • weapons/g3sg1-1.wav

2. Звуки перезарядки

  • weapons/ak47_clipout.wav
  • weapons/m4a1_clipin.wav
  • weapons/awp_reload.wav
  • weapons/de_clipout.wav
  • weapons/p228_reload.wav
  • weapons/famas_reload.wav
  • weapons/galil_reload.wav

3. Звуки подбора предметов

  • items/ammopickup.wav
  • items/kevlar_pickup.wav
  • items/defuser_pickup.wav
  • items/nvg_on.wav
  • items/nvg_off.wav

4. Звуки гранат

  • weapons/he_bounce-1.wav
  • weapons/flashbang-1.wav
  • weapons/smokegrenade_hit1.wav
  • weapons/explode3.wav

5. Звуки ножей (можно оставить, если нужно)

  • weapons/knife_deploy1.wav
  • weapons/knife_hit1.wav
  • weapons/knife_slash1.wav

6. Другие звуки

  • weapons/zoom.wav (прицеливание AWP/SCOUT)
  • weapons/c4_beep1.wav (тикание C4)
  • weapons/c4_click.wav (установка C4)

Как настроить блокировку?

  1. Если нужно заблокировать только выстрелы, добавьте проверку:
    C-подобный:
    if (StrContains(sample, "weapons/", false) == 0 && StrContains(sample, "shoot", false) != -1)
    {
        return Plugin_Stop;
    }
  2. Если нужно оставить звуки ножей, добавьте исключение:
    C-подобный:
    if (StrContains(sample, "knife", false) != -1)
    {
        return Plugin_Continue;
    }
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools>
#include <sdktools_sound>

public Plugin myinfo =
{
    name = "[CSS] Weapon Sound Blocker",
    author = "DENZEL519 & AI",
    description = "Blocks weapon sounds (shooting, reloading, etc.) in CS:S",
    version = "1.0",
}

public void OnPluginStart()
{
    AddNormalSoundHook(SoundHook);
}

public Action SoundHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    // Блокируем звуки оружий (выстрелы, перезарядка, переключение и т.д.)
    if (StrContains(sample, "weapons/", false) == 0)
    {
        // Можно добавить исключения (например, звуки ножей)
        if (StrContains(sample, "knife", false) != -1)
        {
            return Plugin_Continue;
        }

        return Plugin_Stop;
    }

    // Блокируем другие звуки (например, подбор гранат, дефуз-кита и т.д.)
    if (StrContains(sample, "items/", false) == 0)
    {
        return Plugin_Stop;
    }

    return Plugin_Continue;
}

Список звуков, которые можно заблокировать в CSS

1. Звуки выстрелов

  • weapons/ak47-1.wav
  • weapons/m4a1_unsil-1.wav
  • weapons/awp1.wav
  • weapons/deagle-1.wav
  • weapons/p228-1.wav
  • weapons/famas-1.wav
  • weapons/galil-1.wav
  • weapons/sg552-1.wav
  • weapons/aug-1.wav
  • weapons/scout_fire-1.wav
  • weapons/g3sg1-1.wav

2. Звуки перезарядки

  • weapons/ak47_clipout.wav
  • weapons/m4a1_clipin.wav
  • weapons/awp_reload.wav
  • weapons/de_clipout.wav
  • weapons/p228_reload.wav
  • weapons/famas_reload.wav
  • weapons/galil_reload.wav

3. Звуки подбора предметов

  • items/ammopickup.wav
  • items/kevlar_pickup.wav
  • items/defuser_pickup.wav
  • items/nvg_on.wav
  • items/nvg_off.wav

4. Звуки гранат

  • weapons/he_bounce-1.wav
  • weapons/flashbang-1.wav
  • weapons/smokegrenade_hit1.wav
  • weapons/explode3.wav

5. Звуки ножей (можно оставить, если нужно)

  • weapons/knife_deploy1.wav
  • weapons/knife_hit1.wav
  • weapons/knife_slash1.wav

6. Другие звуки

  • weapons/zoom.wav (прицеливание AWP/SCOUT)
  • weapons/c4_beep1.wav (тикание C4)
  • weapons/c4_click.wav (установка C4)

Как настроить блокировку?

  1. Если нужно заблокировать только выстрелы, добавьте проверку:
    C-подобный:
    if (StrContains(sample, "weapons/", false) == 0 && StrContains(sample, "shoot", false) != -1)
    {
        return Plugin_Stop;
    }
  2. Если нужно оставить звуки ножей, добавьте исключение:

    C-подобный:
    if (StrContains(sample, "knife", false) != -1)
    {
        return Plugin_Continue;
    }
Пробовал блокировать через AddNormalSoundHook, не помогает, есть предположение что звуки со стороны клиента воспроизводятся и их нельзя заблокировать
Так что данный способ так же не работает (только что проверил на всякий случай)
 

DENZEL519

Работаю с AI !
Сообщения
417
Реакции
198
@7pElllHuK, А попробуй с подменой

C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools>
#include <sdktools_sound>

public Plugin myinfo =
{
    name = "[CSS] Universal Weapon Sound Muter",
    author = "Your Name",
    description = "Replaces ALL weapon sounds with silent.wav",
    version = "1.0",
}

public void OnPluginStart()
{
    AddNormalSoundHook(SoundHook);
}

public Action SoundHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    // Подменяем ВСЕ звуки оружия на silent.wav
    if (StrContains(sample, "weapons/", false) == 0)
    {
        strcopy(sample, PLATFORM_MAX_PATH, "weapons/silent.wav");
        return Plugin_Changed;
    }

    return Plugin_Continue;
}

  • Создайте файл sound/weapons/silent.wav (достаточно 0.1 сек тишины).


2. Способ с заменой звуков (100% блокировка)

  1. Создаем пустые .wav-файлы (например, silent.wav).
  2. Прописываем их в game_sounds_weapons.txt (на стороне сервера).
  3. Перезаливаем звуки на клиентов (если нужно).

Как это сделать:

  1. Создаем файл sound/weapons/silent.wav (0.1 сек тишины).
  2. Меняем пути в cstrike/scripts/game_sounds_weapons.txt:
  3. C-подобный:
    "weapons/ak47-1.wav" "weapons/silent.wav"
    "weapons/m4a1_unsil-1.wav"    "weapons/silent.wav"
  4. Обязательно добавить в fastdl (если сервер использует FastDL).

Редактируем game_sounds_weapons.txt

Добавьте в самый конец файла:
C-подобный:
"*"
{
    "channel"   "CHAN_WEAPON"
    "volume"    "0.0"
    "soundlevel" "SNDLVL_NONE"
    "pitch"     "PITCH_NORM"
    "wave"      "weapons/silent.wav"  // Все звуки будут перенаправлены сюда
}
 

Synd1qate

Участник
Сообщения
744
Реакции
259
@7pElllHuK, А попробуй с подменой

C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools>
#include <sdktools_sound>

public Plugin myinfo =
{
    name = "[CSS] Universal Weapon Sound Muter",
    author = "Your Name",
    description = "Replaces ALL weapon sounds with silent.wav",
    version = "1.0",
}

public void OnPluginStart()
{
    AddNormalSoundHook(SoundHook);
}

public Action SoundHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    // Подменяем ВСЕ звуки оружия на silent.wav
    if (StrContains(sample, "weapons/", false) == 0)
    {
        strcopy(sample, PLATFORM_MAX_PATH, "weapons/silent.wav");
        return Plugin_Changed;
    }

    return Plugin_Continue;
}

  • Создайте файл sound/weapons/silent.wav (достаточно 0.1 сек тишины).


2. Способ с заменой звуков (100% блокировка)

  1. Создаем пустые .wav-файлы (например, silent.wav).
  2. Прописываем их в game_sounds_weapons.txt (на стороне сервера).
  3. Перезаливаем звуки на клиентов (если нужно).

Как это сделать:

  1. Создаем файл sound/weapons/silent.wav (0.1 сек тишины).
  2. Меняем пути в cstrike/scripts/game_sounds_weapons.txt:
  3. C-подобный:
    "weapons/ak47-1.wav" "weapons/silent.wav"
    "weapons/m4a1_unsil-1.wav"    "weapons/silent.wav"
  4. Обязательно добавить в fastdl (если сервер использует FastDL).

Редактируем game_sounds_weapons.txt

Добавьте в самый конец файла:
C-подобный:
"*"
{
    "channel"   "CHAN_WEAPON"
    "volume"    "0.0"
    "soundlevel" "SNDLVL_NONE"
    "pitch"     "PITCH_NORM"
    "wave"      "weapons/silent.wav"  // Все звуки будут перенаправлены сюда
}
На clientmod скорее всего проверялось, там не сработает
 

DENZEL519

Работаю с AI !
Сообщения
417
Реакции
198
@Synd1qate, Ой а я не знаю как работает clientmod, так что сорян.
Хотя версия 2-3 должна сработать.
 
Сверху Снизу