forward fbans_player_banned_pre(id, userid);
forward fbans_player_banned_post(id, userid, bid)
register_plugin("fb_forwards", "0.1.7", "Kanagava & Realution & neugomon");
register_clcmd("amx_screenmenu", "CmdScreenMenu", ADMIN_BAN);
server_cmd("amx_addmenuitem ^"Сделать скрины^" ^"amx_screenmenu^" ^"d^" ^"ScreenMaker^"");
public CmdScreenMenu(id, level)
if(~get_user_flags(id) & level)
client_print(id, print_notify, "* Недостаточно прав для использования этой команды!");
new menu = menu_create("\d[\rScreenMenu\d] \yВыберите игрока", "players_menu");
new call = menu_makecallback("players_callback");
menu_setprop(menu, MPROP_EXITNAME, "Выход");
menu_setprop(menu, MPROP_BACKNAME, "Назад");
menu_setprop(menu, MPROP_NEXTNAME, "Далее");
get_players(pl, pnum, "ch");
for(new i, pid[2], name[32]; i < pnum; i++)
get_user_name(pl[i], name, charsmax(name));
menu_additem(menu, name, pid, 0, call);
menu_display(id, menu, 0);
public players_callback(id, menu, item)
new pid[2], _access, callback;
new szItem[32], szNewItem[64];
menu_item_getinfo(menu, item, _access, pid, charsmax(pid), szItem, charsmax(szItem), callback);
formatex(szNewItem, charsmax(szNewItem), "%s \d[\yВы\d]", szItem);
menu_item_setname(menu, item, szNewItem);
new flags = get_user_flags(pid[0]);
static lastId, flagsId; if(id != lastId) flagsId = get_user_flags(id);
if(flags & ADMIN_IMMUNITY)
formatex(szNewItem, charsmax(szNewItem), "%s \d[\yИммунитет\d]", szItem);
menu_item_setname(menu, item, szNewItem);
return (flagsId & ADMIN_RCON) ? ITEM_ENABLED : ITEM_DISABLED;
else if(flags & ADMIN_MENU)
formatex(szNewItem, charsmax(szNewItem), "%s \d[\yАдмин\d]", szItem);
menu_item_setname(menu, item, szNewItem);
return (flagsId & ADMIN_RCON) ? ITEM_ENABLED : ITEM_DISABLED;
public players_menu(id, menu, item)
new pid[2], _access, call;
menu_item_getinfo(menu, item, _access, pid, charsmax(pid), .callback = call);
if(!is_user_connected(pid[0]))
client_print(id, print_chat, "* Игрок покинул сервер");
new name[32]; get_user_name(id, name, charsmax(name));
new name2[32]; get_user_name(pid[0], name2, charsmax(name2));
log_to_file("screen_maker.log", "Администратор %s сделал скрины игроку %s", name, name2);
ScreenAction(pid[0], id, 0);
if(is_user_connected(id))
client_cmd(id, "snapshot");
ScreenAction(id, admin, ban)
get_time("%d.%m.%Y - %H:%M:%S", szTime, charsmax(szTime));
get_user_name(admin, szAdmin, charsmax(szAdmin));
get_mapname(szMap, charsmax(szMap));
formatex(szHUD, charsmax(szHUD), "Время %s^nАдминистратор %s^nКарта %s^nСкинуть в %s", szTime, szAdmin, szMap, FB_WEBSITE);
else formatex(szHUD, charsmax(szHUD), "Время %s^nСервер %s^nКарта %s^nСкинуть в %s", szTime, szAdmin, szMap, FB_WEBSITE);
set_hudmessage(0, 200, 0, -1.0, 0.80, 0, 0.0, float(FB_SSNUM + 1), 0.0, 0.1, -1);
show_hudmessage(id, szHUD);
if(ban) client_cmd(id, "stop");
set_task(1.0, "MakeScreen", id, .flags = "a", .repeat = FB_SSNUM);
public fbans_player_banned_pre(id, userid)
if(!id || !is_user_connected(id) || get_user_userid(id)!=userid)
static CurTime[24], szHostName[64], szBannedName[32], szIP[16], szAuthId[25];
get_user_name(0, szHostName, charsmax(szHostName));
get_user_name(id, szBannedName, charsmax(szBannedName));
get_user_authid(id, szAuthId, charsmax(szAuthId));
get_user_ip(id, szIP, charsmax(szIP), 1);
get_time("%d/%m/%Y - %H:%M:%S", CurTime, charsmax(CurTime));
case 1: SendMsg(id, 1, szHostName, szBannedName, szAuthId, szIP, CurTime);
case 2: SendMsg(id, 2, szHostName, szBannedName, szAuthId, szIP, CurTime);
SendMsg(id, 1, szHostName, szBannedName, szAuthId, szIP, CurTime);
SendMsg(id, 2, szHostName, szBannedName, szAuthId, szIP, CurTime);
set_task(FB_INTERVAL, "screenshot", id, _, _, "a", FB_SSNUM);
set_task(FB_INTERVAL * float(FB_SSNUM), "show_motd_banqa", id);
if(is_user_connected(id))
client_cmd(id, "snapshot");
public fbans_player_banned_post(id, userid, bid)
formatex(url[id], charsmax(url[]), "http://www.my-amxx.ru/amxbansgm/motd.php?sid=_%d&adm=0&lang=ru", bid)
//www.my-amxx.ru - меняем на свой сайт с web-мордой
//amxbansgm - папка в которой лежит web-морда
//motd.php?sid=_%d&adm=0&lang=ru - НЕ МЕНЯЕМ!!!
public show_motd_banqa(id)
if(is_user_connected(id))
show_motd(id, url[id], "Вы забанены")
SendMsg(const pl, const Type, sHost[], sName[], sAuth[], sIp[], sDate[])
client_print_color(pl, -2, "^3[^4FB^3] ^1Дата ^3[^4%s^3] ^1Сервер ^3[^4%s^3]", sDate, sHost);
client_print_color(pl, -2, "^3[^4FB^3] ^1Ваше имя ^3[^4%s^3] ^1IP ^3[^4%s^3] ^1SteamID ^3[^4%s^3]", sName, sIp, sAuth);
client_print_color(pl, -2, "^3[^4FB^3] ^1Для разбана посетите ^3[^4%s^3]", FB_WEBSITE);
static R, G, B, RGB = FB_HUDCOLOR;
set_dhudmessage(R, G, B, -1.0, 0.01, 0, 7.0, 7.0);
show_dhudmessage(pl, "%s вы забанены на сервере %s ^nВаш IP: %s ^nВаш ID: %s", sName, sHost, sIp, sAuth);
set_hudmessage(R, G, B, -1.0, 0.1, 0, 7.0, 7.0, 0.0, 0.0, -1);
show_hudmessage(pl, "Дата: %s ^nСервер: %s ^nВаше имя: %s ^nIP: %s ^nSteamID: %s ^nДля разбана посетите: %s", \
sDate, sHost, sName, sIp, sAuth, FB_WEBSITE);