Полное описание плагина "Анти-Краш Спреи"
Назначение плагина
Плагин защищает сервер от краш-спреев - специально созданных изображений, которые могут вызвать сбои, лаги или краш сервера. Он реализует систему белого списка для контроля использования спреев.
Основные функции
Защита от краш-спреев
- Блокировка спреев по умолчанию - все игроки не могут использовать спреи
- Белый список - только добавленные администратором игроки могут распылять спреи
- Проверка файлов - автоматическое удаление подозрительных файлов спреев
Команды управления
Команды для администраторов:
sm_spray_menu - открыть меню управления спреями
sm_spray_whitelist_add <steamid> - добавить игрока в белый список
sm_spray_whitelist_remove <steamid> - удалить игрока из белого списка
sm_spray_whitelist_list - показать список игроков в белом списке
sm_spray_reload - перезагрузить белый список для всех игроков
Настройка базы данных
1. Создание конфигурации БД
Добавьте в addons/sourcemod/configs/databases.cfg:
"spray_whitelist"
{
"driver" "sqlite" // или "mysql"
"host" "localhost" // для MySQL
"database" "spray_whitelist"
"user" "username" // для MySQL
"pass" "password" // для MySQL
}
2. Поддерживаемые СУБД
- SQLite (рекомендуется для небольших серверов)
- MySQL (для больших сетей серверов)
Структура плагина
Файлы:
- antispray_protection.sp - исходный код плагина
- antispray_protection.cfg - автоматически создаваемая конфигурация
- downloads/sprays/ - папка для спреев (мониторится плагином)
Таблица в базе данных:
CREATE TABLE spray_whitelist (
id INTEGER PRIMARY KEY,
steamid VARCHAR(32) UNIQUE,
added_by VARCHAR(32),
added_date TIMESTAMP
);
Использование на сервере
Для администраторов:
Через меню:
- Введите sm_spray_menu в чат
- Выберите нужную опцию:
- "Добавить игрока по SteamID"
- "Удалить игрока по SteamID"
- "Показать список"
- "Перезагрузить список"
Через команды:
// Добавить игрока
sm_spray_whitelist_add STEAM_0:1:12345678
// Удалить игрока
sm_spray_whitelist_remove STEAM_0:1:12345678
// Показать список
sm_spray_whitelist_list
Для игроков:
- При подключении видят сообщение о статусе спреев
- Игроки не из белого списка получают сообщение о запрете
- Игроки из белого списка могут использовать спреи как обычно
Технические особенности
Блокировка команд:
- impulse 201 - распыление спрея
- impulse 202 - загрузка спрея
Проверка файлов:
- Максимальный размер: 256 КБ
- Разрешенные форматы: только VTF
- Автоматическое удаление подозрительных файлов
Кэширование прав:
- Использует клиентские куки для кэширования статуса
- Автоматическая проверка при подключении к серверу
Автоматические процессы
При запуске карты:
- Сканирование папки downloads/sprays/
- Удаление потенциально опасных файлов
- Обновление статусов всех игроков
При подключении игрока:
- Проверка SteamID в базе данных
- Установка соответствующего статуса
- Сохранение в куки для оптимизации
Логирование
В файлы логов:
// Успешные операции
L 01/01/2024 - 12:00:00: [antispray_protection.smx] SteamID STEAM_0:1:12345678 добавлен в белый список
// Ошибки
L 01/01/2024 - 12:00:00: [antispray_protection.smx] Ошибка подключения к базе данных: ...
Решение проблем
Частые вопросы:
Q: Игрок добавлен в белый список, но спреи не работают
A: Проверьте правильность SteamID и перезагрузите список командой sm_spray_reload
Q: Ошибка подключения к базе данных
A: Проверьте настройки в databases.cfg и права доступа к БД
Примечания
- Плагин требует перезагрузки при первом запуске для создания таблиц БД
- Рекомендуется для серверов с проблемами краш-спреев
- Поддерживает все игры на движке Source
- Совместим с большинством других плагинов
Это комплексное решение для защиты сервера от злонамеренных спреев.