GameCMS API

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

Нет прав для скачивания
C++:
5.5.0
        + добавлен словарь gamecms_api.txt (За перевод прошу прощения)

        * изменен форвард OnAPIPreAdminCheck
            * Выполняется перед проверкой наличия услуг игрока
            *
            * @param id                    id игрока
            * @param bRemoveFlags        Удалить имеющиеся у игрока флаги, true- по-умолчанию
            * @param bSetDefFlags        Установить игроку дефолтные флаги, true- по-умолчанию
            * @return        PLUGIN_HANDLED, если нужно пропустить проверку имеющихся услуг. В этом случае, будут применены параметры bRemoveFlags и bSetDefFlags.
            * @note            Параметры bRemoveFlags и bSetDefFlags действуют только при условии возврата PLUGIN_HANDLED

            forward OnAPIPreAdminCheck(const id, &bRemoveFlags, &bSetDefFlags);
            
            Пример:
                Игроку не будут выданы услуги из БД
                Игроку будет выдан флаг "t"
                Игроку будет добавлен дефолтный флаг amx_default_access, т.к. true- по-умолчанию
                У игрока не будут удалены имеющиеся флаги, т.к. мы установили bRemoveFlags = false;
                Вернем return PLUGIN_HANDLED, иначе, плагин будет проводить стандартную авторизацию по услугам из БД
                public OnAPIPreAdminCheck(const id, &bRemoveFlags, &bSetDefFlags)
                {
                    set_user_flags(id, read_flags("t"));
                    bRemoveFlags = false;
                    return PLUGIN_HANDLED;
                }
                
        * изменена функция чтения настроек пользователя    (файл gamecms_user_settings)   
        
        * исправлена ошибка при отключении админки после истечения срока
            [AMXX] Run time error 10: native error (native "ArraySetArray")
            
        * изменен форвард OnAPIAdminsLoaded
            В него добавлены параметры:
            @param eQueryStatus:status    Статус загрузки списка (LOAD_ALL- полная загрузка, RELOAD - перезагрузка, в том числе для одного игрока)
            @param iAdminIndex            Индекс админа (0, если статус LOAD_ALL)
C++:
    5.4.8
        * фикс добавления недостающих столбцов в БД при самом первом подключении плагина к сайту
    
    5.4.9
        * сброс колонки `member_online` при старте карты, для случаев нештатного выключения сервера.
  • Like
Реакции: AkycTuk и 6e3geJIa
C++:
5.4.7
        * фикс обработки квара cms_use_cmd_add_admin на лету
        * фикс добавления админа по флагам при отсутствии назначенной услуги (имя услуги будет отображаться как Неизвестно)
        * фикс поиска услуги по нику при добавлении аккаунтов
        
        + добавлен форвард forward OnAPIPreAdminCheck(const id);
        * Выполняется перед проверкой наличия услуг игрока
        * @param id        id игрока
        * @return        PLUGIN_HANDLED, если нужно пропустить проверку имеющихся услуг. В этом случае, игроку будут выданы дефолтные флаги.
  • Like
Реакции: SunShaiN
C++:
5.4.6
        * фикс выдачи прав доступа после смены ника

Спасибо DoswIDos_
C++:
5.4.5
        * фикс создания столбца member_online, при включенном кваре cms_use_member_online
         Для принятия изменения, установить плагин, зайти на сервер и сменить карту.
C++:
5.4.4
        * фикс проверки пароля в нативе cmsapi_check_service_password
  • Like
Реакции: zeka64 и AkycTuk
C++:
5.4.3
    * фикс выдачи дополнительной услуги в виде флагов доступа
  • Like
Реакции: zeka64 и AkycTuk
C++:
    5.4.0
    =============
        - убран инклуд gamecms_admin_remove.inl
    =============
    
        - полностью убрана поддержка АМХ 1.8.2
        
        - удалены нативы Array:cmsapi_get_all_purchases и Array:cmsapi_get_alladmins. Все услуги теперь хранятся в одном массиве Array:cmsapi_get_all_services.
        
        * фикс повторной авторизации при выдаче флагов группы
        
        * native Trie:cmsapi_get_admin_info(aID) заменен на
            native cmsapi_get_info_by_admin_id(iAdminIndex, aAdminData[eAdminInfo]);
            //Получение данных по индексу админа
            //@iAdminIndex        ID администратора в БД сайта
            //@aAdminData        массив для записи данных

        * изменены уровни логирования работы плагина, квар "cms_debug"
            1- информационные сообщения о выполнении действий
            2- отладочные сообщения о выполнении действий
            3- работа нативов (проверенные в работе нативы не логируются)
            4- работа с БД, запросы (можно не включать, т.к. все запросы проверены в работе)
            //при включении высокого уровня нижние уровни также выполняются
            //пример: при включении 3-го уровня уровни 1 и 2 также выполняются
            //некоторые обязательные сообщения работы плагина не отключаются!
        
        * изменен натив cmsapi_set_user_flags(index, const szFlags[], iTime = -1, const szServiceName[] = "", bSilentCheck = false, bAuthorize = true);
            - убран параметр bSilentCheck

        * форвард OnAPIAdminConnected теперь вызывается для всех, но только если у игрока изменился набор флагов

        * настройки, которые не придется часто менять, вынесены в файл "gamecms.ini"

        * настройки базы данных вынесены в файл "gamecms.ini", чтобы их не "украли через консоль" злые дядьки ))

        + добавлен режим работы плагина eApiStatus: UseGameCmsGroups    //используется группа пользователя на сайте для выдачи флагов админа

        + добавлен квар "cms_service_auto_remove"
            //удаление истекших услуг автоматически: 1- сразу после окончания, 0- при смене карты их удалит движок
        
        + добавлен квар "cms_use_cmd_add_admin"
            //разрешить добавления услуг в базу сайта командой amx_addadmin, 0- запретить
        
        + добавлен квар cms_use_group_flags
            //использовать группы пользователей для выдачи флагов доступа,
            //0- отключить
            //1- взять данные о флагах группы из конфига (cms_add_user_group)
            //2- взять данные о флагах группы из БД сайта
            
        + добавлен квар cms_use_admins
            //использовать загрузку и управление админами с сайта GameCMS, 0- не использовать админов

        + добавлен native cmsapi_get_info_by_admin_service(iAdminService, aAdminData[eAdminInfo] = "");
            //Получение данных об услуге по индексу услуги
            //@iAdminService        ID услуги в БД сайта
            //@aAdminData    массив для записи данных

        + добавлен native bool:cmsapi_set_user_group(id, iGroupId, bool:bSetFlags = true);
            //Установка группы пользователя на сайте
            //@id                id игрока
            //@iGroupId            Номер (индекс) группы
            //@bool:bSetFlags    Выдать флаги группы

        + добавлен native bool:cmsapi_remove_user_service(const iClient, iServiceId);   
            //Удаление услуги из массива по ее номеру у онлайн-игрока
            //@iClient            id игрока
            //@iServiceId        Номер услуги
            //@Note            Можно использовать для удаления временных услуг, у которых нет автоудаления

        + добавлено Состояние услуги
            enum _:eServiceStatus
            {
                SERVICE_NOT_FOUND = -2,    //Услуга не найдена
                SERVICE_NONE,
                SERVICE_INACTIVE,        //Услуга не активна
                SERVICE_ACTIVE,            //Услуга активна
                SERVICE_STOPPED            //Услуга приостановлена
            }

        + добавлено Время окончания действия услуги
            enum _:eServiceTime
            {
                TIME_TRACKING_STOPPED = -2,    //Услуга остановлена, неактивна
                TIME_MAP_END_EXPIRING,        //В конце карты
                TIME_NOT_EXPIRING            //Время не ограничено
            }
        
        + добавлен отлов события изменения квара "amx_password_field"
            При изменении все игроки будут авторизованы на сервере заново, с добавлением/удалением имеющихся флагов.
            Например, если значение квара отличается от "z", то игрокам будут выданы соответствующие флаги (и наоборот)
            
        + добавлен native cmsapi_get_plugin_version(&iMajorVersion, &iMinorVersion);
            //Получение версии плагина
            //@iMajorVersion        Мажор версии
            //@iMinorVersion        Минор версии

    5.4.1

        - убраны элементы массива
            * Float:MemberMoneyCurr
            * MemberGameTimeCurr
            * MemberGameMoneyCurr
        
        + добавлен квар cms_use_member_online        "1"        //записывать в БД метку, что игрок находится на сервере (`users`.`member_online`)
        
        * при изменение кваров cms_use_admins и amx_default_access на лету производится перепроверка прав доступа игроков
            (например, при изменении квара amx_default_access с "z" на "abc" всем игрокам будут выданы соответствующие флаги)
        
        * сохранение данных зарегистрированного игрока (деньги, время и т.п.) производится сразу после выхода с сервера, а не в конце карты
        
        * фикс учета времени `game_time` при перезагрузке/обновлении кошелька пользователя (cmsapi_reload_wallet)
        
        * изменение назначения параметра bool:send натива cmsapi_reload_wallet
            (https://cs-games.club/index.php?threads/gamecms-api.9/page-17#post-4651)
            * @param send    Отправить запрос в БД для обновления баланса
            * true - да, будет произведена полная перезагрузка данных пользователя, в т.ч. баланс
            * false - нет, изменение будет учтено в базе, но новый баланс загружаться не будет
        
        - убран квар  "cms_cmd_group_menu_access"    //флаг доступа для открытия меню групп
            (настройка флага ддоступа производится в файле cmdaccess.ini, по умолчанияю - "l")
            
        * дополнены коды возврата натива cmsapi_service_timeleft
            * @return    Время окончания в формате UNIX
            * TIME_MAP_END_EXPIRING - до смены карты
            * TIME_NOT_EXPIRING - нет ограничений
            * SERVICE_NOT_FOUND  услуга не найдена
            * TIME_TRACKING_STOPPED - услуга не активна, остановлена
            
        + добавлена консольная команда cms_reloadmember
            * команда перезагружает все данные пользователя сайта по его ID номеру (НАПРИМЕР, cms_reloadmember "1520")
            
    5.4.2
        * фикс сохранения/удаления нескольких настроек пользователя (szUserSettings)
        
        + добавлен квар cms_use_game_money        "1"        //использовать игровые деньги, колонка `game_money` (1- да, 0- нет)
        
        + добавлен native cmsapi_check_service_password(iClient, szServiceName[]);
            (https://cs-games.club/index.php?threads/gamecms-api.9/page-16#post-4582)
            * Проверка доступа игрока к услуге (проверка пароля, если она предсмотрена типом авторизации)
            * @param iClient    Индекс игрока
            * @param szService    Название услуги
            * @return            1- при наличии доступа, иначе- 0

Важные моменты!
* файлы настроек изменены. Теперь их 2: gamecms.cfg и gamecms.ini
* все настройки из gamecms.cfg могут меняться "на лету" без смены карты
* если зависымые плагины перестануть работать корректно, необходимо заново скомпилировать с новым инклудом gamecms5.inc (желательно, сделать это сразу)
* исходный код будет предоставляться на условиях компенсации времени, затреченного на написание, тестирование и оказание всесторонней поддержки.
* если "что-то" не так, создается тема в разделе Помощи с подробным, пошаговым описанием проблемы
* фикс загрузки плагина при недоступности БД
C++:
5.3.5
    * fix установки флагов игрокам, зашедшим на сервер До соединения с БД
Сверху