Техническое задание: Разработка системы администрирования для игрового сервера
Общая информация
Необходимо создать модуль админ-панели для мультиплеерного сервера GTA San Andreas. Работа ведется на языке Pawn для модификации Open Multiplayer (omp). Основная система авторизации и сохранения данных игрока уже реализована и функционирует. Новая система должна быть интегрирована в существующий код, не нарушая его работу.
Технические требования к проекту
1. База данных и структура
- Использовать встроенную базу данных SQLite.
- В существующую таблицу
accounts необходимо добавить поле admin (INTEGER) для хранения уровня прав.
- Создать новую таблицу
bans для системы банов с полями: id, имя игрока, срок, причина, дата наложения.
- Уровни админ-прав должны сохраняться и загружаться из базы данных автоматически.
2. Система уровней доступа
- Реализовать 6 уровней администрирования (от 0 до 5), где 0 - обычный игрок, 5 - главный администратор.
- Уровень доступа должен проверяться при попытке выполнения любой админ-команды.
3. Обязательный набор команд
- /setadmin [ID] [LEVEL] - Назначение уровня админа. Доступ: только уровень 5.
- /a [ТЕКСТ] - Отправка сообщения в закрытый админ-чат.
- /kick [ID] [причина] - Исключение игрока с сервера.
- /mute [ID] [минуты] [причина] - Заглушить игрока в чате на указанное время.
- /unmute [ID] - Снять заглушку с игрока.
- /goto [ID] - Телепортироваться к игроку.
- /gethere [ID] - Телепортировать игрока к себе.
- /ban [ID] [ДНИ] [причина] - Забанить игрока на указанное количество дней.
- /unban [ИМЯ] - Разбанить игрока по имени.
Все системные сообщения и ответы команд должны быть на русском языке.
4. Логирование
- Все действия администраторов (выдача команд, баны, кики) должны записываться в простой текстовый лог-файл.
- Формат лога должен быть читаемым и содержать дату, время, ник администратора, команду и цель.
5. Критически важные требования
- Запрещено использовать библиотеку YSI или другие крупные фреймворки.
- Интеграция должна быть выполнена аккуратно, без изменения или нарушения работоспособности существующей системы авторизации и сохранения данных игрока.
- SQL-запросы должны быть написаны в одну строку, код - чистый, хорошо структурированный и с комментариями на ключевых участках.
- Готовое решение должно компилироваться без ошибок и быть готовым к запуску.
Результат работы
Ожидается предоставление готового к использованию файла с кодом на Pawn (.pwn) или отдельного модуля с четкой инструкцией по его подключению к существующему проекту.