// Author: Virtual Monarch
// Plugin for DODC (Dead OF Day Complex)
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "Custom Item Sound Changer"
#define VERSION "1.0"
#define AUTHOR "Virtual Monarch"
new const CUSTOM_ITEM_CLASSNAME[] = "weapon_smokegrenade"
new const CUSTOM_ITEM_MODEL[] = "models/dodc/w_smokegrenade.mdl" // Замените на модель вашего предмета
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_EmitSound, "fw_EmitSound")
// Регистрируем событие создания предмета для установки кастомной модели
RegisterHam(Ham_Spawn, "weapon_smokegrenade", "fw_ItemSpawn", 1)
}
public fw_ItemSpawn(entity)
{
if (!is_valid_ent(entity))
return HAM_IGNORED;
// Устанавливаем кастомную модель для нашего предмета
entity_set_model(entity, CUSTOM_ITEM_MODEL)
return HAM_HANDLED;
}
public fw_EmitSound(entity, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
if (!is_valid_ent(entity))
return FMRES_IGNORED;
// Проверяем, является ли звук тем, который мы хотим заменить
if (equal(sample, "weapons/sg_explode.wav") || equal(sample, "weapons/grenade_hit1.wav"))
{
// Проверяем, является ли entity нашим кастомным предметом
if (is_custom_item(entity))
{
// Воспроизводим звук HE гранаты вместо смок гранаты
new bounce_sound[64]
formatex(bounce_sound, charsmax(bounce_sound), "weapons/he_bounce-%d.wav", random_num(1, 3))
emit_sound(entity, channel, bounce_sound, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
}
return FMRES_IGNORED;
}
bool:is_custom_item(entity)
{
if (!is_valid_ent(entity))
return false;
static classname[32];
entity_get_string(entity, EV_SZ_classname, classname, charsmax(classname));
if (!equal(classname, CUSTOM_ITEM_CLASSNAME))
return false;
static model[128];
entity_get_string(entity, EV_SZ_model, model, charsmax(model));
return equal(model, CUSTOM_ITEM_MODEL);
}
public plugin_precache()
{
precache_model(CUSTOM_ITEM_MODEL)
precache_sound("weapons/he_bounce-1.wav")
precache_sound("weapons/he_bounce-2.wav")
precache_sound("weapons/he_bounce-3.wav")
}