Слушай, а можно заменить только Smoke? Я пытался но у меня ничего не получилось вот моя попытка:
#include <amxmodx>
#include <fakemeta>
new v_snowball[] = "models/snowballs/v_snowball.mdl"
new p_snowball[] = "models/snowballs/p_snowball.mdl"
new w_snowball[] = "models/snowballs/w_snowball.mdl"
new model_trail[] = "sprites/laserbeam.spr"
new rendering, trail, g_trail
public plugin_precache( )
{
precache_model( v_snowball )
precache_model( p_snowball )
precache_model( w_snowball )
g_trail = precache_model( model_trail )
}
public plugin_init( )
{
register_plugin( "Snowballs", "1.2", "FragOwn & maeStro" )
trail = register_cvar( "snowballs_trail", "1" )
rendering = register_cvar( "snowballs_rendering", "1" )
register_forward( FM_SetModel, "forward_model", 1 )
register_event( "CurWeapon", "func_modelchange_hook", "be", "1=1", "2=4", "2=9", "2=25" )
}
public func_modelchange_hook( id)
{
new view[33]
new weapon[33]
pev( id, pev_viewmodel2, view)
pev( id, pev_weaponmodel2, weapon)
if( equal( view, "models/v_hegrenade.mdl") || equal( view, "models/v_flashbang.mdl") || equal( weapon, "models/p_hegrenade.mdl") || equal( weapon, "models/p_flashbang.mdl"))
return PLUGIN_CONTINUE
else
{
set_pev( id, pev_viewmodel2, v_snowball )
set_pev( id, pev_weaponmodel2, p_snowball )
}
return PLUGIN_CONTINUE
}
public forward_model( entity, const model[] )
{
if( !pev_valid( entity ) )
return FMRES_IGNORED
new className[33]
pev( entity, pev_classname, className, 32 )
if( !equal( className, "grenade" ) || equal( model, "models/w_c4.mdl") || equal( model, "models/w_hegrenade.mdl") || equal( model, "models/w_flashbang.mdl"))
return FMRES_IGNORED
engfunc ( EngFunc_SetModel, entity, w_snowball )
if( get_pcvar_num( trail ) )
{
switch ( model[ 9 ] )
{
case 'f' : fm_set_trail(entity,255,255,255,255)
case 'h' : fm_set_trail(entity,255,0,0,255)
case 's' : fm_set_trail(entity,0,255,0,255)
}
}
if( get_pcvar_num( rendering ) )
{
switch ( model[ 9 ] )
{
case 'f' : fm_set_rendering ( entity, kRenderFxGlowShell, 255, 255, 255, kRenderNormal, 255 )
case 'h' : fm_set_rendering ( entity, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 255 )
case 's' : fm_set_rendering ( entity, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 255 )
}
}
return FMRES_IGNORED;
}
fm_set_trail( id, r, g, b, bright )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( TE_BEAMFOLLOW )
write_short( id )
write_short( g_trail )
write_byte( 25 )
write_byte( 5 )
write_byte( r )
write_byte( g )
write_byte( b )
write_byte( bright )
message_end( )
}
fm_set_rendering( index, fx=kRenderFxNone, r=0, g=0, b=0, render=kRenderNormal, amount=16 )
{
set_pev( index, pev_renderfx, fx )
new Float:RenderColor[3]
RenderColor[0] = float( r )
RenderColor[1] = float( g )
RenderColor[2] = float( b )
set_pev( index, pev_rendercolor, RenderColor )
set_pev( index, pev_rendermode, render )
set_pev( index, pev_renderamt, float( amount ) )
}