Код
/* AMX Mod X script.
#include <amxmodx>
#include <amxmisc>
new player
//PCVAR
new maxss, ssinterval, timestamptype
public plugin_init()
{
register_plugin("Admin Screen 2", "32", "k01x0zn1k")
register_concmd("amx_screen", "concmd_screen", ADMIN_LEVEL_A, "<authid, nick or #userid> <screens>")
maxss = register_cvar("amx_maxscreens", "10")
ssinterval = register_cvar("amx_ssinterval", "1.0")
timestamptype = register_cvar("amx_timestamptype", "3")
}
public concmd_screen(id, level, cid)
{
//Is the amx_screen'er an admin?
if(!cmd_access(id, level, cid, 3))
{
return PLUGIN_HANDLED
}
//Read the arguements
new arg1[24], arg2[4]
read_argv(1, arg1, 23)
read_argv(2, arg2, 3)
new screens = str_to_num(arg2)
new maxscreens = get_pcvar_num(maxss)
//Let us make sure that there aren't too many screenshots taken
if(screens > maxscreens)
{
console_print(id, "[AMXX] You cannot take that many screenshots!")
return PLUGIN_HANDLED
}
//Does the target exist?
player = cmd_target(id, arg1, 1)
if (!player)
{
return PLUGIN_HANDLED
}
//How many screenshots?
new Float:interval = get_pcvar_float(ssinterval)
new array[2]
array[0] = id
array[1] = player
set_task(interval, "takeScreen", 0, array,2, "a", screens)
new name[32], name2[32], authid[32], authid2[32], ip[32], ip2[32], map[32], date[32], log[256], logfile[64]
get_user_name(id, name, 31)
get_user_name(player, name2, 31)
get_user_authid(id, authid, 31)
get_user_authid(player, authid2, 31)
get_user_ip(id, ip, 31, 1)
get_user_ip(player, ip2, 31, 1)
get_mapname(map, 31)
get_time("%m%d%Y", date, 31)
formatex(log, 255, "Screen: ^"%s<%s><%s>^" has made <%s> screenshots to player ^"%s<%s><%s>^" on map <%s>", name, authid, ip, arg2, name2, authid2, ip2, map)
formatex(logfile, 63, "screenshots_%s.log", date)
log_to_file(logfile, log)
return PLUGIN_HANDLED
}
public takeScreen(array[2])
{
new player = array[1]
new id = array[0]
//Get time, admin name, and target name
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)
//No timestamp
if(get_pcvar_num(timestamptype) == 0)
{
client_print(player, print_chat, "", name, adminname)
//Take the screenshot
client_cmd(player, "screen")
}
//Client Print only
else if(get_pcvar_num(timestamptype) == 1)
{
//client_print Timestamp Message
client_print(player, print_chat, "", name, adminname, timestamp)
//Take the screenshot
client_cmd(player, "screen")
}
//HUD Message only
else if(get_pcvar_num(timestamptype) == 2)
{
//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, "** o0ps... %s **", timestamp)
show_hudmessage(player, timestampmsg)
//Take the screenshot
client_cmd(player, "screen")
}
//Both
else if(get_pcvar_num(timestamptype) == 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, "** o0ps... %s **", timestamp)
show_hudmessage(player, timestampmsg)
//client_print Timestamp Message
client_print(player, print_chat, "", name, adminname, timestamp)
//Take the screenshot
client_cmd(player, "screen")
}
return PLUGIN_CONTINUE
}