0%
Обязательно ознакомьтесь с правилами форума!
Требуются люди в Команду форума для наполнения сайта ресурсами и полезным контентом. Писать в Telegram: @g_r_e_a_t_z_a_r_a_z_a
Чат для серверодержателей CS 1.6

Чат для серверодержателей Counter-Strike 1.6 а так же владельцев сайтов на движке GameCMS

Сообщество администраторов, разработчиков и владельцев серверов

GameCMS обсуждение Разработка плагинов Администрирование Опытные специалисты Безопасность и оптимизация
Чат помощи XenForo

Чат помощи по XenForo

Вопросы и обсуждения · Реклама · Услуги · Исполнители

XenForo помощь Услуги и исполнители Обсуждение движка Реклама проектов Разработка дополнений
Рекламное место

Рекламное место свободно

Разместите свою рекламу прямо здесь!

Активная аудитория Высокая конверсия Доступная цена Эффективная реклама
Fresh Bans

CS 1.6 Amxx Fresh Bans 1.4.8

Система банов с гибкими настройками и функционалом
1. Установить AMXBans (предпочтительно GM 1.6) или CS:Bans.
1.1. Поставить веб морду
1.2. Поставить плагины
1.3. Убедиться что сервер появился в веб морде

2. Установить fresh_bans
2.1. Файл fresh_bans.amxx скопировать в /addons/amxmodx/plugins
2.2. Файлы main.cfg, reason.cfg, time.cfg скопировать в заранее созданную папку fb в /addons/amxmodx/configs
2.2.1 Отредактируйте конфиги под свои нужды, на то они и конфиги!
2.3. Добавить в файл amxx.cfg строку: exec "addons/amxmodx/configs/amxbans.cfg" (если используете amxbans_core для управления админами)
2.4. Прописать плагин в plugins.ini
Если у вас, при включенной настройке fb_russian 0, отображаются иероглифы:
В папке CS:BANS идем по пути /protected/config/.
Открываем там файл main.php и ищем строку " 'db'=>array( " чуть ниже него находим строку " 'charset' "
Меняем значение с "utf8" на "latin1".
Код:
fb_kick_delay "5"                // Задержка перед киком игрока в секундах(в случае если делаются скриншоты перед баном, то рекомендуеся 3-5с)
fb_server_ip ""                    // IP сервера
fb_server_port ""                // Порт сервера
fb_server_name "server"            // Имя админа при банах самим сервером(античит и т.д)
fb_sql_host ""                    // IP адрес базы данных
fb_sql_user ""                    // Логин базы данных
fb_sql_pass ""                    // Пароль к базе данных
fb_sql_db ""                    // Имя базы данных
fb_sql_table "amx_bans"            // Таблица базы данных
fb_servers_table "amx_serverinfo"    // Название таблицы БД, при добавлении сервера в список серверов.
fb_sql_log_table "amx_logs"        // Название таблицы БД, при разбанах.
fb_ip_ban_time "300"            // Время дополнительного бана(в минутах) по IP в минутах для созданных банов длительностью больше данного значения.
fb_showhud "1"                    // Отображать худ-сообщение при бане(0 - выкл., 1 - вкл.).
fb_offline_time "50"            // Время(в минутах), на которое системой банов запоминается игрок, для осуществления бана после его дисконекта от сервера.(Для оффлайн банов)
fb_unban_self "b"                // Флаги для возможности разбанивать свои баны.
fb_unban_all "l"                // Флаги для возможности разбана всех банов
fb_oldmap_players "64"            // Число оффлайн строк с игроками для переноса на следующую карту(из минусов: туда же попадают и онлайн игроки т.к. делают дисконнект).
fb_bantime_access "l"            // Флаг для лимита времени бана(если флага нету, то лимит есть).
fb_adminrcon_flag "l"            // Флаг доступа Администратора, для возможности бана всех в т.ч. и Администраторов с иммунитетом.
fb_bantime_limit "40320"        // Время(в минутах) для лимита(по умолчанию - неделя).
fb_use_sql "1"                    // Значения 0/1/2(по умолчанию(1) - база данных MySql).
// 0 - файл
// 1 - базу данных MySql
// 2 - базу данных SqLite // При использовании SqLite желательно прописать в configs/modules.ini строки sqlite и mysql. Баны будут храниться в файле \cstrike\addons\amxmodx\data\sqlite3\fresh_bans.sq3
fb_nvault_clear "90"            // Удалять из файла баны старше чем 90 дней.
fb_force_check "0"                // Выбор момента проверки на существующий бан(пораньше или попозже): 1 - на client_connect, 0 на putinserver).
fb_cachetime "5"                // Время(в минутах) жизни банкеша(только для кика).
fb_oldkickinfo "1"                // Выводить старую ифнормацию по бану игроку о кике в консоль игроку.(0 - выкл., 1 - вкл.).
fb_logtype "1"                    // Тип логов(отдельная папка(значение 1) или стандартный лог(значение 0)
fb_loglevel "2"                    // Уровень ведения логов от 0 до 10, 1 - обычный режим.
// 0 - Критичные ошибки + баны/разбаны.
// 1 - Всякий шлак + ошибки неважнецкие.
// 2 - Кики за баны.
// 3 - Кики кэшбан.
// 5 - Сервисные логи.
// 10 - Дебаг логи.
fb_logdays "30"                    // Время хранения лог файлов, старше чем этот квар в днях будут удаляться(только для fb_logtype 1).
fb_use_russian 0                // Если вы тру админ, то не используете русские причны и название сервера, выставьте переменную в 0(по умолчанию 1), это позволит убрать два лишних mysql запроса.(0 - выкл., 1 - вкл.).
fb_sql_clear 300                // Очистка истекших банов старее чем 300 дней, рекомендуемо для sqlite т.к. они не имеют веб морды где это можно сделать нажав на кнопку. Да и для mysql неплохо.
fb_subnet_except_ucp "0"        // Пускать с UCP игроков из забаненной подсети
fb_subnet_clients "0"            // Бан клиентов с определёнными эмуляторами с подсетей.(0 - выкл., 1 - вкл.).
// Бан подсети имеет вид бана с ником SUBNETBAN в STEAM_ID указывается конечный айпи адрес, в IP начальный айпи адрес. Все клиенты из этого диапазона и попадающие под действие квара будут забанены.
fb_prefix_clients "0"            // Клиенты для проверки со старым префиксом. Нужно, если вы изменили(или хотите изменить) настройку префиксов в связи со всяким софтом подмены стимайди, но не хотите потерять старые баны Настраивать так же, как и квар fb_subnet_clients.(0 - выкл., 1 - вкл.).
// Для кваров fb_subnet_clients и fb_prefix_clients используется слудующий принцип настройки:
// dproto client [1]: "Dproto" - 2
// dproto client [2]: "Native Steam" - 4
// dproto client [3]: "SteamEmu" - 8
// dproto client [4]: "RevEmu" - 16
// dproto client [5]: "Old RevEmu" - 32
// dproto client [6]: "HLTV" - 64
// dproto client [7]: "SteamClient2009" - 128
// dproto client [8]: "AVSMP" - 256
// dproto client [9]: "SXEI" - 512
// dproto client [10]: "RevEmu2013" - 1024
// Чтобы заблокировать RevEmu и Old RevEmu введите 32 + 16 = 48 => fb_subnet_clients 48
// Т.е. вы должны посчитать сумму тех значений, которые хотите банить таким баном.
// Подробное описане бан-подсети, можете почитат тут - https://c-s.net.ua/forum/ipb.html?s=&sh...st&p=529824
fb_rec_snet "0"                    // Значения 0/1/2/3 (по умолчанию 0). Cистема автоматического бана подсети, если из этой сети часто обходят бан.
// 0 - Отключено.
// 1 - Только кикать при обнаружении. (проверка при коннекте)
// 2 - Банить подсеть через FreshBans. (если за время fb_rec_snet_time из какой-то подсети будет больше чем fb_rec_snet_count банов, то подсеть банится на время fb_rec_snet_bt)
// 3 - То же самое что и 2, только бан через addip.
// P.S. Остальные квары, зависящие от квара fb_rec_snet, при том если значения стоят 1/2/3, т.к. по умолчанию данный квар включен, то и квары эти - недействительны и всё-равно какое значение.
fb_rec_snet_time 300             // Время, за которое нужно просуммировать баны из одной подсети.
fb_rec_snet_count 3             // Число банов из одной подсети
fb_rec_snet_bt 60                 // Для fb_rec_snet 2 или 3 - Время на которое банить в минутах.
fb_subnet_recheck 10             // Время в секундах после бана подсети для выполнения перепроверки всех игроков (в зависимости от шустрости вашей БД)
fb_rec_snet_level 1             // 1 - для бана подсети /24(по умолчанию), 2 - для бана подсети /16, других значений не понимает.
fb_cachetime_kick "5"            // Аналогично fb_cachetime, только для кика.
fb_cacheonly "0"                // Отключает занесение банов на короткое время в БД(экномит ресурсы).(по умолчанию 1)
// 0 - Все баны ЗАНОСЯТСЯ в БД
// 1 - Если время бана меньше чем fb_cachetime то бан НЕ ЗАНОСИТСЯ в БД.(т.е. если у вас квар fb_cachetime равен 5, то все баны на 5 минут не будут заноситься в БД).
// 2 - Если время бана меньше чем fb_cachetime то бан НЕ ЗАНОСИТСЯ в БД, если смена карты планируется ранее чем через fb_cachetime то бан ЗАНОСИТСЯ в БД.
fb_showchat "1"                    // Отображение информации о бане в чат(0 - выкл., 1 - вкл.).
fb_chatinfo "Игрок [%4%%player%%1%] забанен на [%4%%lenght%%1%] с причиной [%4%%reason%%1%]" // Стоит по умолчанию.
// Можно изменить формат вывода в чат. Понимает команды:
// %admin%
// %reason%
// %lenght%
// %player_steam%
// %player_ip%
// %player%
// Цвет текста:
// %1%
// %2%
// %3%
// %4%
fb_hudinfo "Игрок %player% %n%Время %lenght% Причина %reason%" // Стоит по умолчанию.
// Понимает команды:
// %admin%
// %reason%
// %lenght%
// %player_steam%
// %player_ip%
// %player%
// %n% - перенос строки
fb_hudcolor "250 250 0"            // Формат R G B
fb_hudpos "0.05 0.3"            // x y - Кординаты расположения hud'a при бане.
fb_serveronly "0"                // Для учета сервера при банах(одна таблица, разные баны для разных серверов).
// Чтобы на сервере только этого сервера баны учитывались ставим 1, иначе 0. По умолчанию 0.
fb_confirmchat "0"                // Подтверждение при бане в чат(0 - выкл., 1 - вкл.)
fb_locknames "1"                // Значения: 0/1/2(по умолчанию 1).
// 0 - Отключено
// 1 - Запрет смены ника пока у админа открыто меню с никами
// 2 - То же самое что и 1, только выполняет клиенту команду возврата на прошлый ник, что позволяет ему сменить ник обратно, но может быть расценено дебильными раскрутками как слоухакинг.
fb_newmenu "0"                    // Меню с отступами или без.(0 - без отступов, 1 - с отступами).
fb_show_bb "0"                    // Значения 0/1/2/3/4 (по умолчанию 0). Оповещения о том, бывал ли какой-то либо игрок в бане или нет(как с причиной так и без)
// 0 - Отключены.
// 1 - Оповещения показываются всем.
// 2 - Оповещения показываются, только лишь Администраторам.
// 3 - Оповещения показываются с причиной бана всем.
// 4 - Оповещения показываются с причиной бана, только лишь Администраторам.
fb_noip_as_allip "1"            // Баны с сайта будут действовать на всех серверах.
fb_longtime_allservers "0"        // Баны со временем > чем fb_longtime_allservers будут действовать на всех серверах (по умолчанию 0 т.е. - отключено, время в минутах).
fb_force_bantype_ip "0"            // Банить всех, только по IP.
fb_no_confirm "d"                // Админ с флагом из квара не будет подтверждать баны. Если значение не указано - Все подтверждают баны.
fb_lock_def_time ""                // При указании времени по умолчанию для причины из reason.cfg его можно запретить менять всем кроме тех, у кого есть флаги из квара. Если значение не указано - все могут менять время по умолчанию.
fb_customreason_first "0"        // Чтобы поднять пункт своей причины на первую строку в меню измените значение на 1.
fb_customreason_flag "d"        // По умолчанию "d" (т.е. отключено т.к. это флаг бана и у есть всех, кто может вызывать меню\команды ).
// При значении "l" - только админ с флагом l сможет вводить свою причину.
fb_plugin_prefix "3"            // Добавление префикса в чате
// 1 - это Fb
// 2 - это [Fb]
// 3 - это FreshBans
// 4 - откл.
// Если вместо цифры прописать текст, то он будет использован как префикс.
fb_plugin_hprefix "0"            // Добавление префикса в HUD
// 0 - это Fb
// 1 - это [Fb]
// 2 - это FreshBans
// 3 - откл.
// Если вместо цифры прописать текст, то он будет использован как префикс.
fb_menu_nick_addons "31"         // (1 = команда, 2 = прошлые баны, 4 = бот, 8 = HLTV, 16 = Админ, 32 = Steam, по умолчанию все кроме стима - прописать надо сумму значений).
fb_acp_admin_uid "0"            // Интеграция с ACP
fb_kick_all_from_ip "0"            // При значении 1 после бана в течение 30 секунд кикнет всех игроков с сервера, тех, кто играет с такого же ip адреса
fb_positive_cache_mc "1"        // Значения 0/1 (0 выключено, по умолчанию). При включении не будет проверять игроков при смене карты (пишет в лог с уровнем 10). (если игрок был проверен и он чист, то плагин не обращается к БД).
fb_adminban_flag "d"            // Указывает с каким флагом имеется доступ к бан меню
fb_skip_bots 1                  // не проверять ботов
fb_skip_hltv 1                  // не проверять HLTV
fb_kick_check 0                 // Включить форвард для проверки кика игрока (fbans_active_ban_check(форвард, позволяющий подавить кик игрока по активному бану (например, если игрока перезашёл с клиентским античитом))).
fb_sql_charset "utf8"            // Выставить кодировку соединения с БД ( только для 1.8.3+ )
fb_menusort "w"                    // Для активации сортировки нужно прописать что-либо из параметров, если пусто, то работает как и раньше. Маленькая буква параметра - по убывающей, большая по возрастающей
// i - сортировка по ID игрока (32,31,30...1). Соответственно I (1,2,3,4....32)
// t - команда (1 - кт, 2-тт, 3 - спектр, 4 - не выбрана)
// f - число фрагов
// k - число смертей
// w - игрок за которым идёт наблюдение (1 = тот игрок, 0 = не тот)
// n - первая буква имени (может криво работать с русскими буквами, пожалуй, я не тестировал)
// "w" - тот за кем следим - первый в списке
// "fI" - сортировка по числу фрагов (от больших к меньшим), если число фрагов одинаково, то по id.
// "wTfKI"
// "TfKI"
// "wfKI"
fb_menufilters                    // Фильтрация в меню по флагам. Можно поставить "hc" чтобы исключить ботов и hltv.
// "a" - do not include dead clients
// "b" - do not include alive clients
// "c" - do not include bots
// "d" - do not include human clients
// "h" - do not include HLTV proxies
// "i" - include connecting clients
fb_menu_prefix                    // Префикс для меню, что написано, то и будет как префикс. Добавлена расширенная кастомизация меню выбора игроков, активируется кваром fb_newmenu 2 и настраивается в lang файле ключами FBM_MENU_
// \admin\ - если админ, строка FBM_MENU_PLAYER_ADMIN
// \name\ - имя игрока
// \oldbans\ - есть ли старые баны
// \steam\ - если игрок стим
// \bot\
// \hltv\
// \team\- команда игрока
// \immun\ - иммунитет
fb_old_replace_time 0             // Заменить ip + steamid в банах старше чем fb_old_replace_time минут
// используется чтобы не снимать старые баны, для комбинации с бан системами типа dopban, бан остается в БД активным
// при нахождении меток игрока кикает
fb_old_replace_ip ""             // Установить айпи, например 127.0.0.2
fb_old_replace_id ""              // Установить айди, например STEAM_1:2:3


// Настройка для плагина admin_loader.amxx. Если вы заменяете amxbans_core.amxx, то раскомментируйте и настройте квары. - Квары уже настроены по умолчанию для AmxBans.
// amx_password_field "_pw"
// amx_amxadmins_table "amx_amxadmins"
// amx_admins_table "amx_admins_servers"
// Если вы испытываете проблему с amxbans_core.amxx, то можете попробовать вариант с admin_loader.amxx(служит для загрузки админов из БД Amxbans, по сути служит для замены amxbans_core.amxx).
// Более подробно можете почитать здесь - Fresh Bans
// Для корректной работы amxbans_core.amxx при его использовании, нужно добавить в файл amxx.cfg строчку - exec "addons/amxmodx/configs/amxbans.cfg"
amx_al_ubans 0 // использовать запрос как для таблиц ubans (1 - включено, по умолчанию 0)
//Кроме того, нужно указать другие таблицы в кварах
//amx_amxadmins_table "amx_users"
//amx_admins_table "amx_users_servers"

amx_al_case_sens 1 // Для ников использовать case sensetive или нет (1 - включено, по умолчанию 1)
Код:
/*
* FreshBans API
*   This API provide methods for work with FreshBans ban system.
*
* Copyright (C) The AMX Mod X Development Team.
*
*
*    This program is free software; you can redistribute it and/or modify it
*    under the terms of the GNU General Public License as published by the
*    Free Software Foundation; either version 3 of the License, or (at
*    your option) any later version.
*
*    This program is distributed in the hope that it will be useful, but
*    WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
*    General Public License for more details.
*
*    You should have received a copy of the GNU General Public License
*    along with this program; if not, write to the Free Software Foundation,
*    Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*
*    In addition, as a special exception, the author gives permission to
*    link the code of this program with the Half-Life Game Engine ("HL
*    Engine") and Modified Game Libraries ("MODs") developed by Valve,
*    L.L.C ("Valve").  You must obey the GNU General Public License in all
*    respects for all of the code used other than the HL Engine and MODs
*    from Valve.  If you modify this file, you may extend this exception
*    to your version of the file, but you are not obligated to do so.  If
*    you do not wish to do so, delete this exception statement from your
*    version.
*
*/

#if defined _freshbans_core_included
    #endinput
#endif

#define _freshbans_core_included

#if AMXX_VERSION_NUM >= 175
    #pragma reqlib freshbans_core
    #if !defined AMXMODX_NOAUTOLOAD
        #pragma loadlib freshbans_core
    #endif
#else
    #pragma library freshbans_core
#endif


/**
* @section Shared forwards
*/

/**
* Called when FreshBans connected to database.
*
* @param db    A newly created tuple handle to be used in connection routines.
*
* @return      This forward ignores the returned value.
*/
forward fbans_sql_connected(const Handle: db);

/**
* Called when the connected player passed the ban check.
*
* @note Will only be called if the client don't have a ban.
*
* @param id        Client index
* @param userid    Client userid
*
* @return          This forward ignores the returned value.
*/
forward fbans_player_checked(const id, const userid);

/**
* Called after the ban when client displays the MOTD window.
*
* @param id        Client index
* @param userid    Client userid
* @param banid     Client banid
*
* @return          This forward ignores the returned value.
*/
forward fbans_ban_motdopen(const id, const userid, const banid);

/**
* Called when DopBan request to check the banid which does not exists. Needed to inform DopBan.
*
* @param id        Client index
* @param userid    Client userid
* @param banid     Client banid
*
* @return          This forward ignores the returned value.
*/
forward fbans_ban_not_found(const id, const userid, const banid);

/**
* Called before the client is banned.
*
* @param id             Client index
* @param userid         Client userid
*
* @return               This forward ignores the returned value.
*
*/
forward fbans_player_banned_pre(const id, const userid);

/**
* Called before the client is banned.
*
* @note For backward compatibility.
*
* @param id       Client index
* @param banid    Client banid
*
* @return         This forward ignores the returned value.
*/
forward amxbans_player_banned(const id, const banid);

/**
* Called after the client is banned.
*
* @param id        Client index
* @param userid    Client userid
* @param banid     Client banid
*
* @return          This forward ignores the returned value.
*/
forward fbans_player_banned_post(const id, const userid, const banid);

/**
* Called if requested from external ban is active and player gets kicked
* created (and used) for DopBan
*
* @param id        Client index
* @param userid    Client userid
* @param banid     Client banid
*
* @return          This forward ignores the returned value.
*/
forward db_reqp_kicked(const id, const userid, const banid);

/**
* Called when when active ban for player is checked.
* !Important! Called only when cvar fb_kick_check is not 0.
*
* @param id                Client index
* @param userid            Client userid
* @param banid             Client banid
* @param ban_created       Ban creation time (unix timestamp)
* @param ban_length_int    Ban duration in seconds
* @param ban_reason        Ban reason
* @param admin_name        Admin name
* @param admin_steamid     Admin steamid
* @param player_name       Client name
* @param player_steamid    Client steamid
* @param player_ip         Client IP
* @param ban_type          Ban type
*
* @return          PLUGIN_CONTINUE to let the command continue
*                  PLUGIN_HANDLED to cancel the player's kick.
*/
forward fbans_active_ban_check(
    const id, const userid, const banid,
    const ban_created, const ban_length_int, const ban_reason[],
    const admin_name[], const admin_steamid[], const player_name[],
    const player_steamid[], const player_ip[], const ban_type[]);

/**
* Called before ban is insrted in the ban table
*
* @param id                Client index - is not always valid (e.g. is not valid for offline ban, or when user is disconnected )
* @param userid            Client userid - is not always valid ( is not valid for offline ban )
* @param player_steamid    Client steamid
* @param player_ip         Client IP
* @param player_name       Client name
* @param ban_created       Ban creation time (unix timestamp)
* @param admin_ip            Admin IP
* @param admin_steamid     Admin steamid
* @param admin_name        Admin name
* @param ban_type          Ban type
* @param ban_reason        Ban reason
* @param bantime    Ban duration in seconds
*
* @return          This forward ignores the returned value.
*/
forward fbans_player_banned_pre_f(
    const id, const uid,
    const player_steamid[], const player_ip[], const player_name[],
    const admin_ip[], const admin_steamid[], const admin_name[],
    const ban_type[], const ban_reason[], const bantime);

/**
* @endsection Shared forwards
*/



/**
* This is the callback from the main plugin that gives major/minor versions
* for verifying compatibility for FreshBans versions.
* If an AMXX plugin gets a failure, then you do need to upgrade to the latest
* version of the FreshBans plugins or update the files included for AMXX plugins.
* Do not modify this!
*/

/**
* FreshBans version
*/
#define FB_VERSION_MAJOR        "1"
#define FB_VERSION_MINOR        "4"
#define FB_VERSION_PATCH        "8b"
#define FB_VERSION_STR        FB_VERSION_MAJOR + "." + FB_VERSION_MINOR + "." + FB_VERSION_PATCH
public __fb_version_check(const majorVersion[], const minorVersion[])
{
    if (strcmp(majorVersion, FB_VERSION_MAJOR) != 0) {
        set_fail_state("[FreshBans]: Api major version mismatch; expected %s, real %s",
            FB_VERSION_MAJOR, majorVersion);
        return;
    }

    if (strcmp(minorVersion, FB_VERSION_MINOR) != 0) {
        set_fail_state("[FreshBans]: Api minor version mismatch; expected at least %s, real %s",
            FB_VERSION_MINOR, minorVersion);
        return;
    }
}
Верх Низ