Участник
Пользователь
- Сообщения
- 374
- Реакции
- 47
- Помог
- 6 раз(а)
Всем привет. есть такой код
как можно вешать эффект горения тем кто оказался в радиусе взрыва гранаты? (есть спрайт flame.spr)
C:
#include <amxmodx>
#include <reapi>
#define NEW_HE_RADIUS 500.0
new gSpriteCircle;
new Float:fOrigin[ 3 ];
new iOrigin[ 3 ];
public plugin_init() {
RegisterHookChain(RG_CGrenade_ExplodeHeGrenade, "CGrenade_ExplodeHeGrenade_Pre", .post = true);
}
public plugin_precache()
gSpriteCircle = precache_model( "sprites/shockwave.spr" );
public CGrenade_ExplodeHeGrenade_Pre(iGrenade) {
new Float:vecOrigin[3];
get_entvar(iGrenade, var_origin, vecOrigin);
rg_dmg_radius(vecOrigin, iGrenade, iGrenade, 0.0, NEW_HE_RADIUS, -1, DMG_BLAST);
create_blast_circle(iGrenade);
return HC_CONTINUE;
}
stock create_blast_circle(ent)
{
for(new id = 1; id < MaxClients; id++)
{
get_entvar( ent, var_origin, fOrigin );
FVecIVec( fOrigin, iOrigin );
static r, g, b;
r = 250;
g = 10;
b = 0;
message_begin( MSG_ONE, SVC_TEMPENTITY, iOrigin, id );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] );
write_coord( iOrigin[ 1 ] );
write_coord( iOrigin[ 2 ] - 35);
write_coord( iOrigin[ 0 ] );
write_coord( iOrigin[ 1 ] );
write_coord( iOrigin[ 2 ] + floatround(NEW_HE_RADIUS)) ;
write_short( gSpriteCircle );
write_byte( 0 );
write_byte( 1 );
write_byte( 6 );
write_byte( 8 );
write_byte( 1 );
write_byte( r );
write_byte( g );
write_byte( b );
write_byte( 128 );
write_byte( 5 );
message_end();
}
}