Код
AMXBans - это мощная и надёжная система контроля наказаний, в основные возможности которой входит:
  Мониторинг наказаний;
  Снятия/добавление наказаний;
  Управление администраторами сервера;
  Редактирование причин наказаний.
  и многое другое, одним словом это полноценный банлист, где происходит мониторинг всех наказаний на сервере, с помощью этой системы можно непосредственно с браузера управлять правами и наказаниями на сервере, не заходя на сам сервер.


Web
Код
include/  
  amxx_langs.inc.php  
  config.inc.php  
  GeoIP.dat  
  admin/  
  admin_ban_add.php  
  admin_ban_add_online.php  
  user/  
  user_bd.php  

  language/  

  *  

  templates/  

  darkgold/  
  css/  
  paginator.css  
  style.css  
  js/  
  amxbans.js.php  
  admin_in.tpl  
  admin_sv.tpl  
  ban_list.tpl  
  main_footer.tpl  
  motd.tpl  
  search.tpl  
  user_bd.tpl  

  default/  
  css/  
  style.css  
  js/  
  amxbans.js.php  
  admin_in.tpl  
  admin_sv.tpl  
  main_footer.tpl  
motd.tpl


Plugin
Код
configs/  

  amxbans.cfg  
  amxbans.ini [+]  

  data/lang/  

  amxbans.txt  
  amxbans_ssban.txt [+]  

  scripting/


Глобальные изменения ...
Код
Убраны пустые переменные которые встречаются почти после всех SQL запросов.  
  Расставлены все ArrayDestroy() и SQL_FreeHandle().  
  Общая косметика кода для лучшей читабельности.  

  amxbans_core.sma  
  const -> define  
  temp[1024] @ 293 строка. Убрано, т.к. не используется.  
  prepare_prefix -> replace_all. Супер костыли?  
  SQL_Execute -> SQL_ThreadQuery  

  amxbans_flagged.sma  
  Теперь сообщение показывается ТОЛЬКО один раз при входе флагнутого игрока  
  sizeof() -> charsmax() (-1 забыли добавить)  
  SteamID в сообщении заменено на IP  

  amxbans_main.sma  
  const -> define  
  Убраны лишние переменные из delayed_kick()  
  Изменен код логов ошибок SQL  
  Добавлены оффсеты к set_task()'ам  
  Перемещены запуски проверок prebanned() и flagged(), что должно решить трабл с "Thread worker unable to start"  
  Добавлен квар для принудительного выбора типа бана  
  Добавлен квар и возможность автоматически делать скрин перед баном  
  Добавлен квар оффсета разницы во времени между базой данных и игровым сервером  
  Убрано get_modname() из plugin_init()  

  check_flag.inl  
  Исправлены небольшие непонятки с отпревлением оставшегося времени флага через форвард  

  check_player.inl  
  Проверка игрока теперь идет на 0.25 секунд позже (чтобы дать отработать остальным плагинам в client_authorized() и зря не проводить проверку)  
  Добавлен IP игрока в сообщении о количестве предыдущих банов  
  Исправлен трабл с русским текстом в консоли игрока  
  Кик теперь сразу после проверки (вспомним трабл с редиректом, когда некоторым выдавало "Вы забанены" при частых попытках войти на сервер)  

  cmd_ban.inl  
  Анти дабл-бан теперь работает корректно  
  Исправлены нестыковки в размерах переменных  
  Чистка хостнейма от "левых" символов снова рабочая  
  Исправлено обрезание причин от античитов  
  Убрана функция insert_ban_cmd() (нигде не используется)  

  color_chat.inl  
  Добавлена возможность задавать цвета !g — зеленый !t — цвет команды !y — нормальный  

  global_vars.inl  
  const -> define  

  init_functions.inl  
  Теперь русские хостнейм и причины отображаются нормально без вмешательства в конфиг MySQL  
  Убран id который тащился через все функции и который ниразу небыл использован  
  timestamp теперь задает MySQL  
  Добавлен инклюд reason_checker.inl  
  Позволяет вырезать части причнин (к примеру от античитов)  
  Позволяет изменять ник админа в зависимости от причины (только для серверных банов)  
  См. amxbans.ini  

  amxbans.txt  
  Исправлен русский язык  
  Добавлен отсутсвующий ключ FLAGGED_PLAYER в английский и русский  

  28.03.2011 15:41  
  Re-check и доработка.  

  amxbans_core.sma  
  Передача форварда инициализации sql перенесена на окончание кеширования админов  

  amxbans_main.sma  
  Исправлен срач в хранении данных юзеров  
  Вместе с этим привязка данных с "admin id -> (player id, player ip, reason...)" изменена на "(admin_id -> player_id) + (player id + admin id -> (reason, time...))"  
  В client_disconnect() добавлены некоторые remove_task()  
  Полное исправление русских причин банов  
  Расставлены проверки дабл-бана во избежание изменения информации в процессе обработки игрока  
  Все булы (bool) и состояния пользователя заменены на битсумму  
  Все индентификаторы и состояния пользователя обновляются только по надобности  
  get_cvar_*() -> get_pcvar_*()  
  Добавлен квар отключающий флаг-меню и проверку флагов  
  Добавлен квар отключающий меню истории банов  
  Условия в функциях расставлены в нужном порядке  

  check_player.inl  
  Теперь проверка на бан не осуществляется если на игроке иммунитет  

  amxbans_ssban.sma  
  Добавление скрин-меню в amxmodmenu перенесено в соответствующий плагин  

  web  
  Немного исправлен русский ланг  
  Добавлен отсутствующий ключ "ru"  

  02.04.2011 20:29  
  amxbans_main.sma  
  Избавился от трёхмерных массивов  
  Минимизировал возможность утрату данных в процессе бана  
  Исправлена ошибка с причиной бана, когда игрок выходил в процессе бана  

  03.04.2011 04:09  
  Исправление ошибок, найденых во время тестирования  

  amxbans_core.sma  
  Добавлен дефайн SYNC_SQL, закомментировав который будет использован отложенный запрос в базу  

  amxbans_main.sma  

  Добавлена возможность автоматически проверять разницу во времени между сервером и MySQL  
  Фикс обновления ника игрока  

  menu_stocks.inl  
  Исправлен небольшой фейл с недоступными игроками  

  cmd_unban.inl  
  Исправлена вероятность ошибки при записи анбана в лог  

  amxbans_ssban.sma  
  Добавлен мульти-ланг amxbans_ssban.txt  

  Web  
  Исправлен подсчет нарушений  
  Исправлена дата в MOTD  
  Обновил GeoIP  
  Изменено название типа бана "SteamID и/или IP" на "IP" чтобы соответсвовало действительности  
  Исправлен украинский язык  

  24.04.2011 14:12  
  Багрепорты  

  cmd_ban.inl  
  Исправлена проверка на существующий бан


Небольшая информация ...
Код
P.S - Перед установкой/обновлением рекомендуем прочесть.


Перед компилированием плагинов:
Код
Для использования отложенных запросов — закомментируйте #define SYNC_SQL в amxbans_core.sma. Это увеличит время загрузки админов из базы, однако не будет прерывать игровую синхронизацию. Если вам не важна очень быстрая загрузка админов из базы — рекомендую закомментировать.  
  Если вы хотите, чтобы при использовании команды amx_unban бан полностью удалялся из базы — расскоментируйте #define UNBAN_GAME_DEL в amxbans_main.sma  
  Если у вас нормально отображались русские причины банов в ранних версиях — закомментируйте #define SET_NAMES_UTF8 в amxbans_main.sma


Известные баги с #define SET_NAMES_UTF8:
Код
После редактирования бана с русской причиной из веб-части, причина у игрока в консоли может отображатся как "?????"  
  При добавлении бана из веб-части с русской причиной, причина у игрока в консоли может отображатся как "?????"


Обновление

Игровая часть
Код
Сохранить свой текущий конфиг addons/amxmodx/configs/amxbans.cfg.  
  Закинуть файлы из папки Plugin в директорию /addons/amxmodx с заменой.  
  Скомпилировать плагины.  
  Настроить конфиг amxbans.cfg в соответствии с вашими старыми настройками, в противном случае будет проблема с чтением настроек.


Веб
Код
Закинуть файлы из папки Update в корень амхбанса.  
  Запустить /upgrade.php, укажите ваши данные от базы данных  
  "Профит" уже звучит пошло, вульгарно, но тем не менее, это он.


Благодарности
Код
@xPaw FTW!  
  @Sho0ter FTW! Ну а если серьезно, Шутер переписал всю игровую часть, ченджлог на 128 строчек — его работа :3  
  @Misaka за помощь с переводом файлов. А еще @Shidla за самый первый перевод, который используется по сей день :3  
  AMXX.pl Team за огромную помощь в поддержке. Парни, простите, что не включили ваш скрипт импорта — банально не было времени протестировать.


Скачать: amxbans-6.0.2.rar [2.08 Mb]
Скачать: amxbans-6.0 GM_1.6.zip [3.14 Mb]

Русифицированный файл time.txt

Скачать: time.rar [1.01 Kb]