PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "Ban with Snapshot"
#define VERSION "0.3"
#define AUTHOR "SAMURAI"
new gBanData[33][2][32]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("amx_banss", "cmdBanss", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
}
public cmdBanss(id, level, cid) {
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new target[32], minutes[8], reason[64]
read_argv(1, target, 31)
read_argv(2, minutes, 7)
read_argv(3, reason, 63)
new player = cmd_target(id, target, 9)
if (!player)
return PLUGIN_HANDLED
copy(gBanData[player][0], 31, minutes)
copy(gBanData[player][1], 31, reason)
new TaskData[4]
TaskData[0] = id
TaskData[1] = player
new hostname[64], tname[32], usrip[32], timer[32];
get_cvar_string("hostname",hostname,63);
get_user_name(player,tname,31);
get_user_ip(player,usrip,31);
get_time("%m/%d/%Y - %H:%M:%S", timer,31);
client_print(player,print_chat,"* Screenshot was made on : %s",hostname)
client_print(player, print_chat, "* Nick: ^"%s^" with IP : %s",tname,usrip)
client_print(player, print_chat, "* Date : %s",timer)
client_print(player, print_chat, "* Visit XXX for Unban.")
console_print(player,"* Screenshot was made on : %s",hostname)
console_print(player, "* Nick: ^"%s^" with IP : %s",tname,usrip)
console_print(player, "* Date : %s",timer)
console_print(player, "* Visit XXX for Unban.")
client_cmd(player,"wait;snapshot;wait;snapshot")
set_task(0.5, "fnBanUser", 0, TaskData, 2)
return PLUGIN_HANDLED
}
public fnBanUser(Data[]) {
new id = Data[0]
new player = Data[1]
if (!is_user_connected(id))
return PLUGIN_HANDLED
new minutes[32], reason[32]
copy(minutes, 31, gBanData[player][0])
copy(reason, 31, gBanData[player][1])
new authid[32], name2[32], authid2[32], name[32]
new userid2 = get_user_userid(player)
get_user_authid(player, authid2, 31)
get_user_authid(id, authid, 31)
get_user_name(player, name2, 31)
get_user_name(id, name, 31)
log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, minutes, reason)
new temp[64], banned[16], nNum = str_to_num(minutes)
if (nNum)
format(temp, 63, "%L", player, "FOR_MIN", minutes)
else
format(temp, 63, "%L", player, "PERM")
format(banned, 15, "%L", player, "BANNED")
new timeS[32]
get_time("%m/%d/%Y - %H:%M:%S", timeS,31)
new address[32]
get_user_ip(player, address, 31, 1)
new hostname[64]
get_cvar_string("hostname",hostname,63)
new activity = get_cvar_num("amx_show_activity")
if (activity != 0)
{
new players[32], pnum, msg[256], len
get_players(players, pnum, "c")
for (new i = 0; i < pnum; i++)
{
len = format(msg, 255, "%L", players[i], "ADMIN")
if (activity == 1)
len += copy(msg[len], 255-len, ":")
else
len += format(msg[len], 255-len, " %s:", name)
len += format(msg[len], 255-len, " %L", players[i], "BAN")
len += format(msg[len], 255-len, " %s ", name2)
if (nNum)
format(msg[len], 255-len, "%L", players[i], "FOR_MIN", minutes)
else
format(msg[len], 255-len, "%L", players[i], "PERM")
client_print(players[i], print_chat, "%s", msg)
}
}
console_print(id, "[AMXX] %L", id, "CLIENT_BANNED", name2)
if (reason[0])
server_cmd("kick #%d ^"%s (%s %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, reason, banned, temp, minutes, address)
else
server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, banned, temp, minutes, address)
return PLUGIN_HANDLED
}