GreyPanel API Интеграция сервера CS 1.6 с веб-движком GreyPanel V2.
Описание: Плагин представляет собой мощный API-мост между игровым сервером и базой данных GreyPanel V2. Он берет на себя полную синхронизацию данных: автоматическая выдача привилегий за купленные услуги, синхронизация баланса, подгрузка групп пользователей, статистики форума и персональных настроек. Все данные кэшируются в оперативной памяти сервера для максимальной производительности.
Возможности:
Требования:
Установка:
Настройка подключения: Рекомендуется настраивать подключение через server.cfg, так как AMX Mod X корректно считывает любые спецсимволы в паролях через cvar'ы.
Консольные команды:
Cvar'ы:
Описание: Плагин представляет собой мощный API-мост между игровым сервером и базой данных GreyPanel V2. Он берет на себя полную синхронизацию данных: автоматическая выдача привилегий за купленные услуги, синхронизация баланса, подгрузка групп пользователей, статистики форума и персональных настроек. Все данные кэшируются в оперативной памяти сервера для максимальной производительности.
Возможности:
- Умная система привилегий: Суммирование флагов от всех купленных услуг.
- Автоматическое снятие флагов ровно в момент истечения срока действия (на основе UNIX-таймстемпов) без необходимости делать amx_reloadadmins.
- Поддержка групп: Выдача глобальных флагов на основе группы пользователя на сайте.
- Синхронизация финансов: Кэширование и мгновенное изменение баланса кошелька и внутриигрового банка.
- Статистика форума: Загрузка данных о постах, темах и лайках для использования в серверных плагинах.
- Управление услугами: Выдача, продление и удаление услуг через консоль или нативы.
- Оптимизация: Асинхронные SQL-запросы (SQLX), кэширование в Trie/Array, защита от утечек памяти.
Требования:
- AMX Mod X 1.8.2 или новее.
- Включенный модуль SQLX (проверьте modules.ini).
- Установленный и настроенный движок GreyPanel V2.
Установка:
- Скомпилируйте файл greypanel_api.sma (учтите, что ему требуются include-файлы из папки greypanel).
- Полученный файл greypanel_api.amxx поместите в cstrike/addons/amxmodx/plugins/.
- Файл greypanel.inc поместите в cstrike/addons/amxmodx/scripting/include/ (необходим для компиляции других плагинов, использующих API).
- Добавьте строку greypanel_api.amxx в файл cstrike/addons/amxmodx/configs/plugins.ini.
- Настройте подключение к базе данных (см. раздел "Настройка").
- Перезапустите сервер или смените карту.
Настройка подключения: Рекомендуется настраивать подключение через server.cfg, так как AMX Mod X корректно считывает любые спецсимволы в паролях через cvar'ы.
Откройте cstrike/server.cfg и добавьте в конец::
// GreyPanel API DB Settings
gp_sql_host "127.0.0.1"
gp_sql_user "root"
gp_sql_pass "your_password"
gp_sql_db "greypanel_db" gp_sql_prefix "grey_"
Создайте файл cstrike/addons/amxmodx/configs/greypanel.iniсо следующим содержимым:
Создайте файл cstrike/addons/amxmodx/configs/greypanel.iniсо следующим содержимым::
"Database"
{
"host" ""
"user" ""
"pass" ""
"db" ""
"prefix" "grey_"
}
"Misc"
{
"server_ip" ""
"site_url" "https://example.com"
}
Примечание: Если заданы cvar'ы gp_sql_*, они имеют приоритет над INI-файлом.
Консольные команды:
- amx_reloadadmins - Перезагрузка списка услуг и привилегий из базы данных.
- gp_reloadusers <#id или ник> - Перезагрузка данных конкретного игрока из БД.
- gp_addservice <steamid> <service_id|flags> <time_minutes> - Выдача или продление услуги игроку (требует флаг RCON).
- gp_changegroup - Открыть меню для смены группы игроку "на лету" (требует флаг RCON).
Cvar'ы:
- gp_use_admins "1" - Включить/выключить загрузку и выдачу привилегий с сайта.
- gp_use_group_flags "1" - Включить выдачу флагов на основе группы пользователя.
- gp_amx_mode "1" - Режим авторизации (1 - стандартный).
- gp_debug "0" - Уровень логирования (0 - выкл, 1 - базовый, 2 - SQL ошибки, 3 - детали).
Для использования подключите инклуд:
#include <greypanel>
#include <greypanel>
Код:
Нативы: Статус и данные пользователя:
gpapi_is_user_member(id) - Проверка регистрации игрока на сайте.
gpapi_get_user_authid64(id, auth64[], len) - Получить SteamID64.
gpapi_get_user_nick(id, szNick[], len) - Получить ник с форума.
gpapi_get_user_regdate(id) - Получить дату регистрации (UNIX).
gpapi_get_user_group(id, szGroup[], len) - Получить ID и название группы.
gpapi_set_user_group(id, iGroupId, bool:bSetFlags) - Сменить группу игроку.
gpapi_get_forum_data(id, szData[4], szName[], len) - Получить статистику форума (лайки, посты, темы).
Баланс:
Float:gpapi_get_user_money(id) - Получить баланс кошелька.
gpapi_set_user_money(id, Float:amount) - Установить баланс кошелька.
gpapi_add_user_money(id, Float:amount) - Изменить баланс кошелька.
Услуги и Привилегии:
gpapi_get_all_services() - Получить массив всех услуг на сервере.
gpapi_get_user_services(id, ...) - Получить массив услуг конкретного игрока.
gpapi_set_user_flags(id, szFlags[], iTime, szServiceName, bAuthorize) - Выдать временные флаги (с автоматическим снятием по таймеру).
gpapi_remove_user_service(id, iServiceId, iUserServiceId, bUpdateDB) - Удалить услугу у игрока.
gpapi_add_account(id, iServiceId, iTimeMinutes, szServiceFlags) - Добавить/продлить услугу с записью в БД.
gpapi_reaccess_admin(id) - Динамическая перепроверка прав доступа.
Форварды:
OnGPAPIMemberConnected(id, memberId, memberName[]) - Игрок загрузил профиль.
OnGPAPIPreAdminCheck(id, &bRemoveFlags, &bSetDefFlags) - Перед проверкой услуг.
OnGPAPIPostAdminCheck(id, szFlags[]) - После проверки услуг (можно изменить флаги).
OnGPAPIAdminConnected(id, szName[], adminID, Flags) - Игроку выданы флаги.
OnGPAPIAdminDisconnected(id) - Админ вышел с сервера.
OnGPAPIAdminsLoaded(status, iAdminIndex) - Услуги загружены из БД.
OnGPAPISendChatPrefix(id, prefix[], type) - Установка префикса в чат.
OnGPAPIPluginLoaded(Handle:sqlTuple, version[], serverID) - Плагин подключился к БД.
OnGPAPIPluginStop() - Плагин остановлен (ошибка БД).