/* Plugin generated by AMXX-Studio */
/* 
FAQ: 
When Setting The Value For -> amx_auto_restart <- 
Setting Value Like This amx_auto_restart "30.0" Is Correct
Setting Value Like This amx_auto_restart "30" Is Not Correct
Because The Cvar Value Is A Float
*/

#include <amxmodx>
#include <dhudmessage>

#define PLUGIN "Auto Restart vl"
#define VERSION "2.0"
#define AUTHOR "volkinet"

#define TIMER_TASK        123456
#define RESTART_TASK      789123

new g_counter  

new g_autorestart
new g_autoenabled

new g_SyncGameStart
new g_SyncRestartTimer

new bool:g_bRoundStart 

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_logevent("RoundStart", 2, "1=Round_Start")
	register_event("TextMsg","RestartTask","a","2&#Game_C")   
	
	register_dictionary("auto_restart_vl.txt")
	
	g_autoenabled = register_cvar("amx_autorr_enable","1")
	g_autorestart = register_cvar("amx_auto_restart","20.0")
	
	g_SyncGameStart = CreateHudSyncObj()
	g_SyncRestartTimer = CreateHudSyncObj()
}

public RoundStart()
{
	if(!get_pcvar_num(g_autoenabled))
		return PLUGIN_HANDLED
	
	if(g_bRoundStart)
	{
		set_dhudmessage( 0, 255, 0, -1.0, 0.40, 1, 5.0, 8.0, 0.0, 0.0, -1)
		show_dhudmessage( 0, "%L",LANG_PLAYER, "GAME_STARTED")
	}
	g_bRoundStart = false
	
	return PLUGIN_CONTINUE
}

public RestartTask() 
{
	if(!get_pcvar_num(g_autoenabled))
		return PLUGIN_HANDLED
	
	set_task(1.0,"TimeCounter",TIMER_TASK,_,_,"a",get_pcvar_num(g_autorestart))
	set_task(get_pcvar_float(g_autorestart),"RestartRound",RESTART_TASK)
	
	return PLUGIN_CONTINUE
}

public TimeCounter() 
{
	g_counter++
	
	new Float:iRestartTime = get_pcvar_float(g_autorestart) - g_counter
	new Float:fSec
	fSec = iRestartTime 
	
	set_dhudmessage( 0, 255, 255, -1.0, 0.25, 0, 0.0, 1.0, 0.0, 0.0, -1)
	show_dhudmessage( 0, "%L",LANG_PLAYER, "AUTO_RESTART", fSec)
	
	if(g_counter == get_pcvar_num(g_autorestart))
	{
		g_bRoundStart = true
	}
}

public RestartRound() 
{
	server_cmd("sv_restartround 1")
}




