#include <amxmodx>
#define PLUGIN "Deathtype Effects"
#define VERSION "1.0"
#define AUTHOR "anakin_cstrike"
#define TEMP_MSG 16
#define TEMP_MSG2 1936
new toggle_plugin,toggle_hs,toggle_kn,toggle_he,g_Smoke,g_Lightning,g_Explode;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("DeathMsg","hook_death","a");
toggle_plugin = register_cvar("death_effects","1");
toggle_hs = register_cvar("hs_effect","1");
toggle_kn = register_cvar("kn_effect","1");
toggle_he = register_cvar("he_effect","1");
}
public plugin_precache()
{
precache_sound("ambience/thunder_clap.wav");
precache_sound("weapons/headshot2.wav");
precache_sound("weapons/explode3.wav");
g_Smoke = precache_model("sprites/steam1.spr");
g_Lightning = precache_model("sprites/lgtning.spr");
g_Explode = precache_model("sprites/white.spr");
return PLUGIN_CONTINUE
}
public hook_death()
{
if(get_pcvar_num(toggle_plugin) != 1) return PLUGIN_CONTINUE;
if(!read_data(1)) return PLUGIN_CONTINUE;
new wpn[3],vOrigin[3],coord[3];
new victim = read_data(2);
new hs = read_data(3);
read_data(4,wpn,2);
get_user_origin(victim,vOrigin);
vOrigin[2] -= 26
coord[0] = vOrigin[0] + 150;
coord[1] = vOrigin[1] + 150;
coord[2] = vOrigin[2] + 800;
if(hs && wpn[0] != 'k' && wpn[1] != 'r' && get_pcvar_num(toggle_hs) == 1)
{
create_explode(vOrigin);
emit_sound(victim,CHAN_ITEM, "weapons/explode3.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(wpn[0] == 'k' && !hs && get_pcvar_num(toggle_kn) == 1)
{
create_thunder(coord,vOrigin);
emit_sound(victim,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
if(wpn[1] == 'r' && !hs && get_pcvar_num(toggle_he) == 1)
{
create_blood(vOrigin);
emit_sound(victim,CHAN_ITEM, "weapons/headshot2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
return PLUGIN_CONTINUE;
}
create_explode(vec1[3])
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec1);
write_byte(TE_BEAMCYLINDER);
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2] + TEMP_MSG);
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2] + TEMP_MSG2);
write_short(g_Explode);
write_byte(0);
write_byte(0);
write_byte(2);
write_byte(16);
write_byte(0);
write_byte(188);
write_byte(220);
write_byte(255);
write_byte(255);
write_byte(0);
message_end();
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION2);
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2]);
write_byte(185);
write_byte(10);
message_end();
message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec1);
write_byte(TE_SMOKE);
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2]);
write_short(g_Smoke);
write_byte(2);
write_byte(10);
message_end();
}
create_thunder(vec1[3],vec2[3])
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(0);
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2]);
write_coord(vec2[0]);
write_coord(vec2[1]);
write_coord(vec2[2]);
write_short(g_Lightning);
write_byte(1);
write_byte(5);
write_byte(2);
write_byte(20);
write_byte(30);
write_byte(200);
write_byte(200);
write_byte(200);
write_byte(200);
write_byte(200);
message_end();
message_begin( MSG_PVS, SVC_TEMPENTITY,vec2);
write_byte(TE_SPARKS);
write_coord(vec2[0]);
write_coord(vec2[1]);
write_coord(vec2[2]);
message_end();
message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec2);
write_byte(TE_SMOKE);
write_coord(vec2[0]);
write_coord(vec2[1]);
write_coord(vec2[2]);
write_short(g_Smoke);
write_byte(10);
write_byte(10)
message_end();
}
create_blood(vec1[3])
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_LAVASPLASH);
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2]);
message_end();
}