Code: Select all
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
//Define fade type
#define FFADE_OUT 0x0001
#define SPECMODE_ALIVE 0
//CVAR
new cvar_death, cvar_red, cvar_green, cvar_blue, cvar_damage
//MSG
new g_MsgScreenFade, g_MsgScreenShake
public plugin_init()
{
// Register plugin call
register_plugin("Damage & Death Effect", "1.3.3", "YKH =]")
//CVAR
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","0")
cvar_damage = register_cvar("damage_num","60")
//Forward
RegisterHam(Ham_Killed, "player", "fw_Killed")
RegisterHam(Ham_Killed, "player", "Ham_Killed_player_Post", 1);
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, _, 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 Ham_Killed_player_Post(victim, attacker)
{
set_pev(victim, pev_iuser1, SPECMODE_ALIVE);
return HAM_IGNORED;
}
public fw_Damage(victim, inflictor, attacker, Float:damage, damage_type)
{
if ((victim != attacker) && (damage > get_pcvar_num(cvar_damage)))
{
message_begin(MSG_ONE_UNRELIABLE, g_MsgScreenShake, _, victim)
write_short( 1<<14 )
write_short( 1<<14 )
write_short( 1<<14 )
message_end();
message_begin(MSG_ONE_UNRELIABLE, g_MsgScreenFade, _, victim)
write_short( 1<<10 )
write_short( 1<<10 )
write_short( 1<<12 )
write_byte( 250 )
write_byte( 0 )
write_byte( 0 )
write_byte( 125 )
message_end()
}
}