Как добавить MuzzleFlash к оружию?
- Articles
- 2025-08-22

В данной статье я покажу как добавить на оружие кастомный MuzzleFlash
Ну для начала, нужно знать что такое Muzzle Flash. Muzzle Flash это спрайт перед дулом оружия при выстреле. Всё :^)
NB! Для того, чтобы Muzzle Flash кастомный показывался хорошо в игре, нужно убрать дефолтный с v_ и p_ модельки, чтобы стандартный Muzzle Flash не перекрывал наш кастомный. Для этого достаточно убрать эвенты в модельках. В данной статье я не буду это всё показывать, делается это всё достаточно просто.
Сразу говорю, вариант не мой, брал его с кода оружий KORD'a и gubka3d.
В начале кода добавляем данный код
#define CustomMuzzle(%0) (pev(%0, pev_impulse) == g_iszMuzzleKey)
#define Sprite_SetScale(%0,%1) set_pev(%0, pev_scale, %1)
// CSprite
#define m_maxFrame 35
// Muzzle Flash
#define MUZZLE_TIME 0.06 // Время обновления спрайта Muzzle Flash
#define MUZZLE_SPRITE "sprites/x/muzzleflash_plasma.spr" // Это наш Muzzle Flash. Меняете его на свой
#define MUZZLE_CLASSNAME "ent_mf_wpn" // Сюда пишем название для нашей энтити с Muzzle Flash'ом
#define MUZZLE_INTOLERANCE 100
new g_iszMuzzleKey;В public plugin_init() добавляем следующий код
Служит он для регистрации синка нашего Muzzle Flash'a (обновления спрайта)
RegisterHam(Ham_Think, "env_sprite", "CMuzzleFlash_Think_Pre", false);В public plugin_precache() добавляем следующий код
// Muzzle Flash
engfunc(EngFunc_PrecacheModel, MUZZLE_SPRITE);
g_iszMuzzleKey = engfunc(EngFunc_AllocString, MUZZLE_CLASSNAME);Дальше в конце кода добавляем следующие стоки для создания Muzzle Flash'a
stock Sprite_SetTransparency(const iSprite, const iRendermode, const Float: flAmt, const iFx = kRenderFxNone)
{
set_pev(iSprite, pev_rendermode, iRendermode);
set_pev(iSprite, pev_renderamt, flAmt);
set_pev(iSprite, pev_renderfx, iFx);
}
stock Weapon_MuzzleFlash(const iPlayer, const szMuzzleSprite[], const Float: flScale, const Float: flBrightness, const iAttachment)
{
if (global_get(glb_maxEntities) - engfunc(EngFunc_NumberOfEntities) < MUZZLE_INTOLERANCE)
{
return FM_NULLENT;
}
static iSprite, iszAllocStringCached;
if (iszAllocStringCached || (iszAllocStringCached = engfunc(EngFunc_AllocString, "env_sprite")))
{
iSprite = engfunc(EngFunc_CreateNamedEntity, iszAllocStringCached);
}
if(pev_valid(iSprite) != 2)
{
return FM_NULLENT;
}
set_pev(iSprite, pev_model, szMuzzleSprite);
set_pev(iSprite, pev_spawnflags, SF_SPRITE_ONCE);
set_pev(iSprite, pev_classname, MUZZLE_CLASSNAME);
set_pev(iSprite, pev_impulse, g_iszMuzzleKey);
set_pev(iSprite, pev_owner, iPlayer);
set_pev(iSprite, pev_aiment, iPlayer);
set_pev(iSprite, pev_body, iAttachment);
Sprite_SetTransparency(iSprite, kRenderTransAdd, flBrightness);
Sprite_SetScale(iSprite, flScale);
dllfunc(DLLFunc_Spawn, iSprite)
return iSprite;
}Под/над ними добавляем следующий код, который отвечает за анимацию и удаление Muzzle Flash'a
public CMuzzleFlash_Think_Pre(const iSprite)
{
static Float: flFrame;
if (pev_valid(iSprite) != 2 || !CustomMuzzle(iSprite))
{
return HAM_IGNORED;
}
if (pev(iSprite, pev_frame, flFrame) && ++flFrame - 1.0 < get_pdata_float(iSprite, m_maxFrame, 4))
{
set_pev(iSprite, pev_frame, flFrame);
set_pev(iSprite, pev_nextthink, get_gametime() + MUZZLE_TIME);
return HAM_SUPERCEDE;
}
set_pev(iSprite, pev_flags, FL_KILLME);
return HAM_SUPERCEDE;
}Теперь осталось отоброзить Muzzle Flash. Ищем функцию с выстрелом оружия (ну или просто ищите анимацию выстрела)
Так как я использую код оружий на базе batcoh'a, то если искать функцию выстрела то она выглядит так public CWeapon__PrimaryAttack_Pre(iItem)
Ну и теперь добавляем данный код в нашу функцию выстрела. Обычно я добавляю её до Анимации выстрела
Weapon_MuzzleFlash(iPlayer, MUZZLE_SPRITE, 0.1, 255.0, 1); // Индекс игрока, Спрайт, Размер, Яркость, Аттачмент выстрела (от 0 до 3, подбирайте сами)Вот в принципе и всё, вся магия :^)
Автор:
Статья была написана специально для сайта Zombie-Amxx.Ru
Hello, Our administration publishes only cannon content, put like under the post below and write the top comment, we are preparing the material just for you, Darling Гость.
Related news
Comments 11
Users belonging to group Guests cannot add comments to this article.
%35
Discount on purchase of all
builds until 16.9.2026
Especially for you - Гость

Buy Build
Our Services
Our Partners
Comments
[ZP] Addon - Buy HP & Damage [NEW]
TOP Plugins
[PAID MODEL] - Bleach Anime | Rangiku Matsumoto [$10 ]
WOW good bro ski skin
[ZP] Zombie Class - Gypno
А где сама модель зомби епт)
Карта Helloween
оч крутая карта оч крутая карта оч крутая карта
Weapon Model - Ak-47 Mad Volcano For CS 1.6
Benndiremedim




Hud Configurator
Hall of Shame
Model Viewer
CSO PISTOLS
CSO MACHINE GUN