PHP Code:
#include <amxmodx>
#include <csx>
#include <amxmisc>
#include <zombieplague>
#define PLUGIN "[ZP] Infection Countdown Remix[Martis]"
#define VERSION "1.3"
#define AUTHOR "Dels"
new Float:countdown_timer, cvar_countdown_sound, zp_gamemode_delay;
new g_msgsync, bool:countdownstarted;
const TASK_ID = 16099;
new const speak[][] = {
"fvox/one.wav",
"fvox/two.wav",
"fvox/three.wav",
"fvox/four.wav",
"fvox/five.wav",
"fvox/six.wav",
"fvox/seven.wav",
"fvox/eight.wav",
"fvox/nine.wav",
"fvox/ten.wav",
"fvox/eleven.wav",
"fvox/twelve.wav",
"fvox/thirteen.wav",
"fvox/fourteen.wav",
"fvox/fifteen.wav"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("HLTV", "event_round_start", "a", "1=0", "2=0");
register_dictionary("zp_countdown_remix.txt");
//needed for smooth countdown display
g_msgsync = CreateHudSyncObj();
//cvars
cvar_countdown_sound = register_cvar("countdown_sound", "1"); //1 to enable, 0 to disable
zp_gamemode_delay = get_cvar_pointer("zp_gamemode_delay");
}
public plugin_precache()
{
for(new i; i < sizeof speak;i++)
{
precache_sound(speak[i]);
}
}
public zp_round_ended()
{
remove_task(TASK_ID);
countdownstarted = false;
}
public event_round_start()
{
if(!get_pcvar_num(cvar_countdown_sound) || countdownstarted ) return
//bugfix
countdownstarted = true;
remove_task(TASK_ID);
countdown_timer = float((get_pcvar_num(zp_gamemode_delay) - sizeof speak));
if(countdown_timer > 0.0) set_task(countdown_timer, "precountdown", TASK_ID);
else precountdown()
}
public precountdown()
{
countdown_timer = floatclamp(get_pcvar_float(zp_gamemode_delay), 0.0, float(sizeof speak));
countdown()
if(countdown_timer > 0.0) set_task(1.0, "precountdown", TASK_ID, _, _, "b");
}
public countdown()
{
countdown_timer-= 1.0;
if (countdown_timer >= 0.0)
{
client_cmd(0, "spk %s", speak[floatround(countdown_timer)]);
set_hudmessage(179, 0, 0, -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1, 10);
ShowSyncHudMsg(0, g_msgsync, "%L", LANG_PLAYER, "COUNTDOWN_MSG", floatround(countdown_timer)+1);
}
else
{
remove_task(TASK_ID);
countdownstarted = false;
}
}