GameCMS API

Плагин АМХХ GameCMS API 5.6.3

Нет прав для скачивания
Фикс компиляции на AMXModX версии 1.8.2
C++:
- добавлено суммирование имен услуг (Вип + Админ, например), услуги и группы (Админ + Девушка, например)
    - управление группой пользователя
        * изменение группы пользователя через меню (для админа с флагом доступа Rcon)
        * запись изменений в БД сайта
        * присвоение флагов доступа группы (отсутствующие флаги добавляются к существующим)
    - форвард OnAPIAdminConnected теперь вызывается для всех клиентов после получения флагов, в том числе дефолтных.
        При этом, "OnAPIAdminDisconnected" (как и раньше) вызывается при выходе игрока с флагами, отличными от дефолтных
    - устранение повторной загрузки конфигов карт и amxx.cfg при использовании АМХ 1.8.3 и выше

C++:
Использование группы пользователя для выдачи флагов:
    1. вариант
        - флаги берутся из нижеуказанного массива
        - номера в массиве- это поле `id` ваших групп в таблице `users_groups`
        - содержимое массива - флаги, которые будут выданы игроку
        - флаги будут выданы на всех серверах, где установлен данный плагин с использованием функции выдачи флагов группы
            Это полезно, например, для главного админа. Не нужно выдавать услугу на каждый сервер.
    2. вариант
        - создаем на сайте услуги, при присвоении которой будет выдаваться какая-то группа
        - флаги, указанные при создании услуги будут присвоены игроку, которому выдана эта группа
        - услуга должна быть создана для каждого сервера, где работает присвоение флагов по группе
    Минусы:
        - только для AMXModX версии не ниже 1.8.3
        - создание услуг для 2-го варианта ничем не проще обычной выдачи услуги
        - присвоение флагов происходит после получения информации с сайта об игроке
            Некоторые плагины, которые читают флаги при подключении игрока не будут эти флаги видеть
            Это исправляется в исходниках тех плагинов.
        - для получения флагов по группе у игрока должен быть указан SteamID в профиле
    Особенности:
        - не конфликтует с выдачей флагов по услугам
        - можно использовать только для определенных групп, например, как в нижеуказанном массиве
        - не зависит от команды перезагрузки админов (amx_reloadadmins)
        - реагирует на команду перезагрузки пользователя (cms_reloadusers)
        - работает только по SteamID из профиля
        - добавляет флаги по имеющимся услугам, если они отсутствуют во флагах группы
            Например, ВИПу выданы флаги "abcd" по группе + флаги "ptr" по имеющейся услуге (услугам)
        - меню для управления группой (смены группы) пользователя "на лету"
  • Like
Реакции: V1adJkee
* fix изменения баланса денег после покупок в процессе игры
C++:
- hotfix начисления 16-ти значных цифр на баланс (только при использовании АМХ 1.8.3)
- изменен натив cmsapi_get_user_regdate
    *    Получение даты  регистрации игрока на сайте
    *    @id - id игрока
    *    @shortTime - true- короткий формат даты ДД-ММ-ГГГГ, false - ГГГГ-ММ-ДД Ч:М:С
    *    @szDate - дата регистрации в формате @shortTime
    *    @len - размер массива szDate[]
    *    return - время в формате UNIX
    native cmsapi_get_user_regdate(id, szDate[] = "", iLen = 0, bool:shortTime = true);
  • Like
Реакции: lis и V1adJkee
C++:
5.2.5
    - добавлен натив
        *    Получение id группы пользователя
        *   
        *    @id - id игрока
        *    @szGroup - массив для записи названия группы пользователя
        *    @Len - размер массива
        *    @return - id группы пользователя

        native cmsapi_get_user_group(id, szGroup[] = "", Len = 0);
    - небольшое исправление динамического добавления флагов    cmsapi_set_user_flags
        @bSilent - тихое добавление (выдача флагов доступа) без вызова форварда OnAPIAdminConnected
    - перезагрузка админов также происходит без повторного вызова форварда OnAPIAdminConnected
C++:
5.2.4
    - добавлен натив
        *    Получение имени таблицы в БД по ее указателю
        *   
        *    @TablePtr - указатель таблицы
        *    @szTableName - Массив для записи имени
        *    @Len - максимальный размер массива

        native cmsapi_get_table_name(TablePtr:Pointer, szTableName[], Len)
    - важный фикс сохранения данных игрока (деньги, время) в БД при выходе с сервера (смене карты)

Не забывайте обновлять папку include в своем компиляторе
Исправлена ошибка работы плагина при компиляции с параметром //#define USE_ADMINS

C++:
[AMXX] Run time error 10: native error (native "TrieGetArray")
[AMXX] [0] gamecms_api.sma::ForumData_Handler (line 708)
Код:
5.2.3
    - удалено за ненадобностью отключение опции #define PL_GAMETIME. Игровое время пишет в БД всегда.
    - удалена проверка на наличие столбца `prefix` в БД (столбец уже присутствует в БД по-умолчанию)
    - добавлено удаление дубликатов флагов доступа (abcdfabgh = > abcdfgh)
    - изменение имен таблиц к новой версии движка (ибо никто не хочет ничего делать самостоятельно)

Все содержимое папки scripting из архива скопировать в папку локального компилятора!
  • Like
Реакции: V1adJkee и sania886
C++:
    5.2.2
    - добавлен forward OnAPIAdminDisconnected(id);
    - нативы, стоки и функции дополнительных возможностей вынесены в отдельные файлы (папка include/gamecms/.inl)
    - изменение алгоритма проверки связи с БД
    - убраны некоторые логи (уже давно все проверено и работает)
    - полностью убрана поддержка AMXBans
    - добавлен натив
        native cmsapi_get_api_status();
        *    Получение статуса работы плагина
        *    @return    - битсумма значения enum api status
    - в инклуд gamecms5.inc выведен небольшой список изменяемых таблиц
        stock const TABLE_NAMES[][] = //Названия таблиц в БД (изменить при необходимости)

Скопировать всю папку include в одноименную папку своего компилятора с заменой файлов!
Для адаптации к обновляемым таблицам движка (при обновлении движка), изменить имена таблиц в gamecms.inc
Например:
C++:
"admins_services",    //admins__services
заменить на
"admins__services",    //admins__services
Исправление двойной авторизации с одного аккаунта.
Причины:
- аккаунт без пароля
- аккаунт авторизовал по нику при установленной авторизации по стиму
Назад
Сверху