Code:
#include <amxmodx>
#include <hamsandwich>
#include <zombieplague>
#define TASK_DUCK 2430
#define ID_DUCK (task_id - TASK_DUCK)
new cvar_red, cvar_blue, cvar_green, cvar_alpha, g_msgScreenFade
public plugin_init()
{
register_plugin("[ZP] Addon: CSO Screen Fade", "1.0", "@bdul!")
cvar_red = register_cvar("zp_fade_red","150")
cvar_green = register_cvar("zp_fade_green","150")
cvar_blue = register_cvar("zp_fade_blue","150")
cvar_alpha = register_cvar("zp_fade_alpha","150")
g_msgScreenFade = get_user_msgid("ScreenFade")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}
// User Infected forward
public zp_user_infected_post(id, infector, nemesis)
{
if (nemesis)
{
remove_task(nemesis+TASK_DUCK)
return
}
// Check if the infected player is using our custom zombie class
if (zp_get_user_zombie(id))
set_task(0.1, "zp_crouch_user", id+TASK_DUCK, _, _, "b")
}
public zp_crouch_user(task_id)
{
if (!zp_get_user_frozen(ID_DUCK))
{
// Make a screen fade
message_begin(MSG_ONE, g_msgScreenFade, _, ID_DUCK)
write_short((1<<12)*2) // duration
write_short(0) // hold time
write_short(0x0000) // 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(get_pcvar_num(cvar_alpha)) // alpha
message_end()
}
}
// User Humanized forward
public zp_user_humanized_post(id, survivor)
{
if (survivor)
remove_task(survivor+TASK_DUCK)
remove_task(id+TASK_DUCK)
}
// Ham Player Spawn Post Forward
public fw_PlayerSpawn_Post(id)
{
// Checks, checks and checks...how bugged would our servers be without them?
if (zp_get_user_zombie(id))
return;
remove_task(id+TASK_DUCK)
}
// Ham Player Killed Forward
public fw_PlayerKilled(id)
{
remove_task(id+TASK_DUCK)
}