#include <amxmodx>
#include <amxmisc>
#define TASKID 65533
new cvar_auto_full_restart, cvar_auto_full_restart_timer;
new g_time;
public plugin_init()
{
register_plugin("Auto full restart", "0.1", "Epmak")
cvar_auto_full_restart = register_cvar("amxx_auto_full_restart", "12:00");
cvar_auto_full_restart_timer = register_cvar("amxx_auto_full_restart_timer", "60");
set_task(15.0, "check",TASKID,_,_,"b");
}
public plugin_cfg() {
g_time = get_pcvar_num(cvar_auto_full_restart_timer);
}
public check() {
new ctime[6], cvar_time[6];
get_pcvar_string(cvar_auto_full_restart, cvar_time, 5);
get_time("%H:%M", ctime, 5);
if(equal(ctime, cvar_time)) {
if(!get_realplayersnum()) {
g_time = 1;
}
set_task(1.0, "auto_full_restart",TASKID+1,_,_,"b");
remove_task(TASKID);
}
}
public auto_full_restart() {
if(g_time <= get_pcvar_num(cvar_auto_full_restart_timer)) {
set_hudmessage(255, 48, 48, -1.00, 0.95, 2, 0.02, 1.0, 0.01, 0.1, 2);
show_hudmessage(0,"Полный рестарт произойдёт через %d сек.", g_time);
}
if(g_time <= 0) {
remove_task(TASKID+1);
new curMap[64];
get_mapname(curMap, sizeof(curMap)-1)
server_cmd("changelevel %s", curMap);
return PLUGIN_CONTINUE;
}
g_time--;
return PLUGIN_CONTINUE;
}
stock get_realplayersnum() {
new players[32], playerCnt;
get_players(players, playerCnt, "ch");
return playerCnt;
}