Code: Select all
// RPG Explosion Smoke Ring written 021009:1232 by BJP
// Feel free to use this however you want.. Mucho thanks to MacDGuy
// For writing good code I could learn from. :)
//
// A variation of this script is in use on our own server.. This is
// a slightly dumbed-down version, but it achieves the same effect. :)
//
block load
{
es_msg #green BRAND NEW FOR 1979 - RPG Explosion Smoke Ring 021009:1232 loaded.
es_xsetinfo bnf1979_smokering 1
}
block unload
{
es_msg #green BRAND NEW FOR 1979 - RPG Explosion Smoke Ring 021009:1232 removed.
es_xsetinfo bnf1979_smokering 0
}
event player_death
{
//
// This will both rattle and momentarrily flash the point of view of the attacker..
// The flash effect only lasts for 0.15 seconds....tuned just right.
//
if (event_var(weapon) equalto "rpg_missile") do
{
es est_shake event_var(attacker) 0.5 5 0.1
es est_fade event_var(attacker) 0 0.15 0 255 255 220 160
es_doblock smokering/fragcloud
}
}
event player_spawn
{
est_RemoveIdle env_ar2explosion
}
block fragcloud
{
// Feel free to substitute whatever sprite you want to use for the smoke. Here, the standard
// smoke particle in the SDK is used. We painted up our own, which has nice swirls of dust
// within it, so it looks even better. The default will do, however.
es_give event_var(userid) env_ar2explosion
es_fire event_var(userid) env_ar2explosion addoutput "Material particle/particle_smokegrenade1.vmt"
es_fire event_var(userid) env_ar2explosion explode
es_delayed 8 es_fire event_var(userid) env_ar2explosion Kill
es_delayed 10 es_xcreateentitylist clouds env_ar2explosion
es_foreachkey cloud in clouds "es_fire event_var(userid) server_var(cloud) Kill"
es_xkeygroupdelete clouds
}