#include <amxmodx>
#include <hamsandwich>
//Define fade type
#define FFADE_OUT 0x0001
//CVAR
new cvar_on, cvar_death, cvar_red, cvar_green, cvar_blue
//MSG
new g_MsgScreenFade, g_MsgScreenShake
public plugin_init()
{
// Register plugin call
register_plugin("Damage & Death Effect", "1.3.2", "YKH =]")
//CVAR
cvar_on = register_cvar("amx_damage_effect_on", "1")
cvar_death = register_cvar("amx_killed_effect_on", "1")
cvar_red = register_cvar("death_color_r","0")
cvar_green = register_cvar("death_color_g","0")
cvar_blue = register_cvar("death_color_b","255")
//Forward
RegisterHam(Ham_Killed, "player", "fw_Killed")
RegisterHam(Ham_TakeDamage, "player", "fw_Damage")
// Message IDs
g_MsgScreenFade = get_user_msgid("ScreenFade")
g_MsgScreenShake = get_user_msgid("ScreenShake")
}
public fw_Killed(victim)
{
if(get_pcvar_num(cvar_death))
{
message_begin(MSG_ONE_UNRELIABLE, g_MsgScreenFade, {0,0,0}, victim)
write_short(12288) // Duration
write_short(12288) // Hold time
write_short(FFADE_OUT) // Fade type
write_byte (get_pcvar_num(cvar_red)) // Red
write_byte (get_pcvar_num(cvar_green)) // Green
write_byte (get_pcvar_num(cvar_blue)) // Blue
write_byte (255) // Alpha
message_end()
}
}
public fw_Damage(victim, attacker, Float:damage)
{
if (victim != attacker && damage > 0 && get_pcvar_num(cvar_on))
{
message_begin(MSG_ONE_UNRELIABLE, g_MsgScreenShake, {0,0,0}, victim)
write_short( 1<<14 )
write_short( 1<<14 )
write_short( 1<<14 )
message_end();
message_begin(MSG_ONE_UNRELIABLE, g_MsgScreenFade, {0,0,0}, victim)
write_short( 1<<10 )
write_short( 1<<10 )
write_short( 1<<12 )
write_byte( 225 )
write_byte( 0 )
write_byte( 0 )
write_byte( 125 )
message_end()
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg950\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset136 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1028\\ f0\\ fs16 \n\\ par }
*/