#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
RegisterHam(Ham_Think, "env_sprite", "CMuzzleFlash_Think_Pre", false);
// Muzzle Flash
engfunc(EngFunc_PrecacheModel, MUZZLE_SPRITE);
g_iszMuzzleKey = engfunc(EngFunc_AllocString, MUZZLE_CLASSNAME);
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;
}
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;
}
Weapon_MuzzleFlash(iPlayer, MUZZLE_SPRITE, 0.1, 255.0, 1); // Индекс игрока, Спрайт, Размер, Яркость, Аттачмент выстрела (от 0 до 3, подбирайте сами)
Здесь вы можете приобрести сборку сервера CS 1.6, по самым низким ценам!
Перейти в магазинСкидка на все Товары
в нашем магазине до 1.06.2019
Специально для тебя - Гость 
ReHLDS (Reverse-engineered) - это новый шаг вперед, который дает второе дыхание нашим серверам. ReHLDS работает в 2 раза быстрей, чем HLDS.
AMXModX - это Metamod дополнение, которое позволяет создавать новые модификации для Half-Life на языке Pawn
Reunion является продолжением Dproto для ReHLDS. Это metamod плагин, который позволяет заходить 47/48 Non-Steam на сервер.
Revoice - это Metamod plugin, который дает возможность общения голосовым чатом между non-steam и steam клиентами.
Новый Metamod-r содержит огромное количество оптимизаций производительности и намного более чистый код. Ядро было написано с использованием JIT-компилятора.
ReAuthCheck - это Metamod плагин, который занимается проверкой ваших игроков на валидность, с помощью данного модуля для REHLDS вы сможете защитить свой сервер от ботов, которые постоянно спамят рекламу или просто забивают слот на сервере!