#include <amxmodx>
#include <fakemeta>
new enabled_cvar;
new radius_cvar;
public plugin_init()
{
register_plugin("Flashbang Dynamic Light","0.10","Avalanche");
register_forward(FM_EmitSound,"fw_emitsound");
enabled_cvar = register_cvar("fbl_enabled","1");
radius_cvar = register_cvar("fbl_radius","50");
}
public fw_emitsound(entity,channel,const sample[],Float:volume,Float:attenuation,fFlags,pitch)
{
// plugin disabled
if(!get_pcvar_num(enabled_cvar))
return FMRES_IGNORED;
// not a flashbang exploding
if(!equali(sample,"weapons/flashbang-1.wav") && !equali(sample,"weapons/flashbang-2.wav"))
return FMRES_IGNORED;
// light effect
flashbang_explode(entity);
return FMRES_IGNORED;
}
public flashbang_explode(greindex)
{
// invalid entity
if(!pev_valid(greindex)) return;
// get origin of explosion
new Float:origin[3];
pev(greindex,pev_origin,origin);
// send the light flash
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(27); // TE_DLIGHT
write_coord(floatround(origin[0])); // x
write_coord(floatround(origin[1])); // y
write_coord(floatround(origin[2])); // z
write_byte(get_pcvar_num(radius_cvar)); // radius
write_byte(random_num(100,255)); // r
write_byte(random_num(100,255); // g
write_byte(random_num(100,255); // b
write_byte(8); // life
write_byte(60); // decay rate
message_end();
}