#include <amxmodx>
#include <amxmisc>
#include <cstrike>

new player
new ip[32]
new finish;

new maxscreens  //max nr of ss to a player
new screeninterval  //interval between 2 ss
new design  //visual stuff
new site  //the site/forum where a user can post ther pics to be unbanned

public plugin_init() 
{ 
	register_plugin("Ultimate SS", "1.2", "Hack")
	
	register_concmd("amx_ss", "concmd_screen", ADMIN_LEVEL_A, "<authid, nick or #userid> <screens>")
	register_clcmd("say /ip", "show_ip")
	
	maxscreens = register_cvar("amx_ss_max", "5")
	screeninterval = register_cvar("amx_ss_interval", "1.0")
	design = register_cvar("amx_ss_design", "3")
	site = register_cvar("amx_ss_site","Forum")
}

public concmd_screen(id, level, cid)
{
	if(!cmd_access(id, level, cid, 3))   //if the one who requests an ss isnt admin exit
	{
		return PLUGIN_HANDLED
	}
	
	new arg1[24], arg2[4]
	read_argv(1, arg1, 23)
	read_argv(2, arg2, 3)
	
	new screens = str_to_num(arg2)
	new maxss = get_pcvar_num(maxscreens)
	
	if(screens > maxss)   //too many ss?
	{
		console_print(id, "[SS]Prea multe poze!")
		
		return PLUGIN_HANDLED
	}
	
	player = cmd_target(id, arg1, 1) 
	if (!player)   //the player has exited the sv or he didnt existed
	{
		return PLUGIN_HANDLED
	}
	finish = screens
	
	new Float:interval = get_pcvar_float(screeninterval)	//a set_task for each "amx_ss nickname nr_of_ss"
	new array[2]
	array[0] = id //save usefull data in a vector so it can be reused
	array[1] = player
	set_task(interval, "ss_propriuzis", 0, array,2, "a", screens)
        
	return PLUGIN_HANDLED
}
 
public ss_propriuzis(array[2])
{
	//take data and set them accordingly
	new player = array[1]
	new id = array[0]
	
	//save time,adminname,playername so that the player cant give us other ss's and because it LOOKS COOOL!
	new timestamp[32], timestampmsg[128], name[32], adminname[32]
	get_time("%m/%d/%Y - %H:%M:%S", timestamp, 31)
	get_user_name(player, name, 31)
	get_user_name(id, adminname, 31)
	get_user_ip(player, ip, 31)
	        
	//Clasic Design
	if(get_pcvar_num(design) == 0)
	{
		client_print(player, print_chat, "[Forum] Admin ^"%s^" zrobil Sreeny graczowi ^"%s^" za Cheaty ", adminname, name)
		client_cmd(player, "snapshot") //ss
	}
	//Doar Playerului
	else if(get_pcvar_num(design) == 1)
	{
		client_print(player, print_chat, "[Forum] Admin ^"%s^" zrobil Sreeny graczowi ^"%s^" za Cheaty (%s) ", adminname, name, timestamp)
		client_cmd(player, "snapshot") //ss
	}
	//HUD Message doar Playerului
	else if(get_pcvar_num(design) == 2)
	{
		set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4)
		format(timestampmsg, 127, "** TIME: - %s **", timestamp)
		show_hudmessage(player, timestampmsg)
		
		client_cmd(player, "snapshot")  //ss
	}
	//Full
	else if(get_pcvar_num(design) == 3)
	{
		//HUD Timestamp Message
		set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4)
		format(timestampmsg, 127, "** PLAYER %s TIME: - %s **",name,timestamp)
		show_hudmessage(player, timestampmsg)
	    
		client_print(0, print_chat, "[Forum] Admin ^"%s^" zrobil Sreeny graczowi ^"%s^" za Cheaty (%s) ", adminname, name, timestamp)
		
		client_cmd(player, "snapshot") //ss
	}
	console_print(id, "[SS]%s 's ip is %s!",name,ip)
	console_print(id, "[SS]%s 's ip is %s!",name,ip)
	console_print(id, "[SS]%s 's ip is %s!",name,ip)
	finish = finish - 1;
	
	if(finish == 0)
	{
		client_cmd(player, "kill")
		cs_set_user_team(player,CS_TEAM_SPECTATOR);
		new forum[51];
		get_pcvar_string(site,forum,50)
		client_print(player, print_chat, "[Forum] Dodaj Screeny na Forum %s jezeli byles Czysty", forum)
	}
	
	return PLUGIN_CONTINUE;
}

public show_ip(id)
{
	console_print(id, "[Forum] Ostatnie zapisane IP: %s!",ip)
}