Skip to content

Latest commit

 

History

History
139 lines (93 loc) · 6.75 KB

configs.md

File metadata and controls

139 lines (93 loc) · 6.75 KB

Настройки

Основные моменты при настройке системы привилегий.

  • Ссылки на файлы
  • Главный файл
  • Проверки
  • Модули
  • Глобальные настройки модулей

ВАЖНО: Все конфиг-файлы должны соответствовать формату JSON. Допускаются комментарии вида /* comment */ или // comment.

Ссылки на файлы

В целях оптимизации и разбиения конфигов на отдельные файлы, некоторые элементы конфига могут быть заменены на ссылку вида "File:<path>/<file>".

  • <path> - путь до файла, относительно папки amxmodx/configs/plugins/VipModular/.
  • <file> - название .json файла без расширения.

При повторном обращении к файлу по ссылке, вместо чтения файла, на место ссылки будет подставлен обьект, прочитанный из этого файла в первый раз.

Главный файл

Основным файлом настроек является файл amxmodx/configs/plugins/VipModular/Vips.json.

Структура главного файла

[
    {
        "Access": [ /* ... */ ],
        "Modules": [ /* ... */ ]
    },
    { /* ... */ }
]

Корневой массив

Элементами корневого массива являются обьекты, содержащие поля Access и Modules.

Поле Access

Поле Access содержит одну или более проверок, привязанных к игроку.

Если проверка одна, она может быть указана как обьект, вместо массива.

Может являться ссылкой на файл. Как массив, так и элементы массива.

Поле Modules

Поле Modules содержит один или более модулей, которые будут выданы игроку, если он прошёл все проверки из поля Access.

Если модуль один, он может быть указан как обьект, вместо массива.

Может являться ссылкой на файл. Как массив, так и элементы массива.

Проверки

Список доступных типов проверок может быть расширен специальными плагинами-расширениями с приставкой L.

Типы проверок деляться на две подгруппы: Привязанные к игрокам и свободные.

  • Проверки, привязанные к игрокам не могут быть использованы в конфигах, не применяемых к игрокам, например, в глобальных настройках модулей.
  • Свободные проверки могут использоваться в любых списках проверок.

Структура обьекта проверки

{
    "Limit": "<LimitTypeName>",

    "<Param1>": "",
    /* ... */
    "<ParamN>": []
}
  • <LimitTypeName> - название типа проверки. Определяется плагином-расширением, регистрирующим тип проверки.
  • <ParamX> - какой-либо параметр проверки. Названия и типы параметров определяются плагином-расширением, добавляющим тип проверки.

Модули

Проверки - обьект, выдаваемый игроку и выполняющий при этом некоторые действия, определённые плагином-расширением.

Список доступных модулей может быть расширен специальными плагинами-расширениями с приставкой M.

Структура обьекта модуля

{
    "Module": "<ModuleName>",

    "<Param1>": "",
    /* ... */
    "<ParamN>": []
}
  • <ModuleName> - название модуля. Определяется плагином-расширением, регистрирующим модуль.
  • <ParamX> - какой-либо параметр модуля. Названия и типы параметров определяются плагином-расширением, добавляющим модуль.

Глобальные настройки модулей

Данный функционал пока не реализован в том виде, в котором был запланирован.

Ниже будет представлено временное решение, позволяющее указывать для каждой карты набор модулей, который будут на ней доступны.

Файл глобальных настроек модулей: amxmodx/configs/plugins/VipModular/Maps.json.

Структура файла глобальных настроек модулей

{
    "_ALL": [/* Список названий модулей */],

    "<MapName1>": [/* Список названий модулей */],
    /* ... */
    "<MapNameN>": [/* Список названий модулей */],
}
  • _ALL - поле, определяющее список модулей для карт, не указаных явно в данном файле.
  • <MapNameX> - название карты, для которой определяется список активных модулей.

Типы параметров

Тип E_ParamType Описание
Integer ptInteger Целое число
Float ptFloat Дробное число
Bool ptBoolean true/false
String ptString Строка
Color ptColor Цвет (Массив из трёх целых чисел)
Vector2 ptVector2 Двумерный вектор (Массив из двух дробных чисел)
Vector3 ptVector3 Трёхмерный вектор (Массив из трёх дробных чисел)
Limit ptLimit Одна проверка
Limits ptLimits Массив проверок
Custom ptCustom Сложный тип, зависит от модуля, использующего его