GameCMS Present

Плагин АМХХ GameCMS Present 1.6.22

Нет прав для скачивания
C++:
1.6.7
    * фикс показа количества презентов
    
    1.6.8
    * добавлен натив
        * Количество презентов на карте в данный момент
        *    @return Количество презентов на карте в данный момент
        native CmsGetSpawnedPresentsCount()

    * добавлен форвард   
        * Вызывается при фактическом спавне презента на карте
        * @idKey    Уникальный номер презента
        * @iEntity    Индекс entity презента
        * @return    Функция ничего не возвращает
        forward OnSpawnPresent(iClient, idKey, iEntity)
C++:
+ Квар: cms_present_anons   "3"                //оповещение о спавне / поднятии (0- отключить, 1- чат, 2- HUD, 3- HUD и чат)
+ Квар: cms_present_nums_above "0"
        //превышение кол-ва одновременно выпадающих ящиков сверх созданных: 0- запретить, 1- разрешить
        //Например:
        - зарегистрировано 3 презента
        - квар cms_present_nums "6"        //кол-во одновременно выпадающих ящиков  -6 штук
        При cms_present_nums_above "0" будут выпадать только 3 рандомных презента, т.к. это максимальное количество.
        Либо, cms_present_nums_above "1" - будут выпадать 6 презентов, как указано в cms_present_nums, также- рандомно
+ Настройки показа сообщения о количестве презентов
        cms_present_hud_num_time    "20.0"            //время показа, секунд ("0.0"- не показывать, "-1.0"-  показывать постоянно)
        cms_present_hud_num_color    "0 255 0"        //цвет сообщения (R G B)
        cms_present_hud_num_pos        "0.78 0.8"        //координаты (X Y)
!!! Не забудьте прописать все 5 новых кваров в конфиг плагина "gamecms_present.cfg"
C++:
Добавлено:
    - Получение режима спавна презентов
        *    @return - параметр режима
        *    1- по-умолчанию, включен режим автоматического спавна, доступен ручной спавн
        *    2- режим автоматического спавна Выключен, доступен Только ручной спавн
        *    3- включен режим автоматического спавна по точкам из файла *map.spawns.cfg, доступен ручной спавн
        *    0- отключить спавн презентов (по сути- временная приостановка работы плагина)
        native CmsPresentGetSpawnMode(iMode)
    
    - Получение точек спавна презентов из файла
        *    @iOrigins - массив для записи координат точки спавна
        *    return - 1- при наличии валидной точки спавна
        native CmsGetPresentsOriginsFromFile(Float:flOrigins[3])
    - Если установлен режим загрузки точек спавна из файла, то при невозможности установить презент в данную точку
        будет записано предупреждение с координатами в лог "invalid_origins.log".
        Эти координаты можно будет удалить из файла *map.spawns.cfg вручную.
    
    Изменено:
    - CmsPresentSetSpawnMode(iMode)
        *    3- включен режим автоматического спавна по точкам из файла *map.spawns.cfg, доступен ручной спавн
    - доработан алгоритм поиска свободной точки
    - автоматическое переключение режмов 1 / 3 в зависимости от наличия файла точек и плагина создания точек
C++:
*    дополнен параметр создания презентов
    *    @prLimit- количество презентов за карту
    *        -1 - нет лимита
    *        -2 - запретить автоматический спавн по таймеру (только для ручного добавления)
    
* добавлен натив переключения режима спавна презентов
/** Переключение режима спавна презентов
*    @iMode - параметр режима
*        - 1- по-умолчанию, включен режим автоматического спавна, доступен ручной спавн
*        - 2- режим автоматического спавна Выключен, доступен Только ручной спавн
*        - 0- отключить спавн презентов (по сути- временная приостановка работы плагина)
*/
native CmsPresentSetSpawnMode(iMode)
C++:
* изменена логика добавления презента:
    - оповещение и блокировка добавления презента с дублирующим номером
    - удален параметр создания удаляемых презентов
    - удален параметр создания презента для конкретного игрока
        Он заменен параметром @owner (id игрока или 0- если для всех)
    - добавлен параметр при добавлении презента
        *    @flTTL - время "жизни" презента, после которого он будет удален, секунд
        *    0.0 - удалится по общим правилам
        *    -1.0 - не удалять, пока не поднимут презент
* изменена логика удаления презента:
    - удаление презентов по времени cms_present_spawn_time не удаляет ручные презенты
    - ручные презенты удаляются по времени, заданному при его спавне через натив
        native CmsSpawnPresentById(idKey, Float:origin[]={0.0, 0.0, 0.0}, bool:noanons = false, owner = 0, Float:flTime = 0.0)
        Если время не установлено, будет применено время, заданное при создании презента.
        При отсутствии и этого параметра, удаление будет произведено по общим правилам.
    - изменен натив: CmsRemovePresent(idKey = 0, iOwner = 0, bool:instant = false, bool:force = false)
* дополнен фильтр поднятия презента при вызове OnTakePresent
    -    3 - презент НЕ будет поднят, НЕ будет выводиться сообщение о поднятии презента
* куча мелких правок, которые уже забыты
Добавлен форвард
C++:
/** Вызывается перед спавном презента
*    @idKey - уникальный номер презента
*    return - возвращаемые значения:
*        0 - презент не появится, будет вызван спавн следующего презента (если предусмотрено настройкой)
*        1 - презент появится с параметрами, заданными при создании
*/
forward OnValidateSpawnPresent(idKey)
Фикс создания стандартных презентов по значению квара
C++:
cms_presents_std
Исправлено:
* при поднятии презент не удалялся.
Благодарность MinnDe
C++:
* исправлена работа функции презента, созданного для определенного игрока
* блокировка создания дублирующего презента (с одинаковым номером), если они созданы разными плагинами
        - однако, функция обработки будет вызвана для обоих плагинов (поэтому, презент выдадут оба :) )
        - будьте внимательнее с уникальными номерами и обработчиками
* добавлен натив
    /** Удаление презента из массива по его уникальному номеру
    *   
    *    @idKey - уникальный номер презента
    *    return - 1- при успешном удалении
    */
    native CmsRemovePresent(idKey)
Назад
Сверху