Основные моменты при настройке системы привилегий.
- Ссылки на файлы
- Главный файл
- Проверки
- Модули
- Глобальные настройки модулей
ВАЖНО: Все конфиг-файлы должны соответствовать формату JSON. Допускаются комментарии вида /* comment */
или // comment
.
В целях оптимизации и разбиения конфигов на отдельные файлы, некоторые элементы конфига могут быть заменены на ссылку вида "File:<path>/<file>"
.
<path>
- путь до файла, относительно папкиamxmodx/configs/plugins/VipModular/
.<file>
- название.json
файла без расширения.
При повторном обращении к файлу по ссылке, вместо чтения файла, на место ссылки будет подставлен обьект, прочитанный из этого файла в первый раз.
Основным файлом настроек является файл amxmodx/configs/plugins/VipModular/Vips.json
.
Также, настройки привилегий можно хранить в нескольких файлах в папке amxmodx/configs/plugins/VipModular/Vips/
. Название файла любое, главное - расширение .json
. Структура та же.
Можно использовать любой из вариантов или оба сразу. Файл Vips.json
читается в первую очередь, а какой-либо порядок чтения файлов из папки Vips
не гарантируется.
[
{
"Access": [ /* ... */ ],
"Modules": [ /* ... */ ]
},
{ /* ... */ }
]
Элементами корневого массива являются обьекты, содержащие поля Access
и Modules
.
Поле Access
должно содержать одну или более проверок, привязанных к игроку.
Если проверка одна, она может быть указана как обьект, вместо массива.
Может являться ссылкой на файл. Как массив, так и элементы массива.
Поле Modules
содержит один или более модулей, которые будут выданы игроку, если он прошёл все проверки из поля Access
.
Если модуль один, он может быть указан как обьект, вместо массива.
Может являться ссылкой на файл. Как массив, так и элементы массива.
Список доступных типов проверок может быть расширен специальными плагинами-расширениями с приставкой L
.
Типы проверок деляться на две подгруппы: Привязанные к игрокам и свободные.
- Проверки, привязанные к игрокам не могут быть использованы в конфигах, не применяемых к игрокам, например, в глобальных настройках модулей.
- Свободные проверки могут использоваться в любых списках проверок.
{
"Limit": "<LimitTypeName>",
"<Param1>": "",
/* ... */
"<ParamN>": []
}
<LimitTypeName>
- название типа проверки. Определяется плагином-расширением, регистрирующим тип проверки.<ParamX>
- какой-либо параметр проверки. Названия и типы параметров определяются плагином-расширением, добавляющим тип проверки.
Проверки - обьект, выдаваемый игроку и выполняющий при этом некоторые действия, определённые плагином-расширением.
Список доступных модулей может быть расширен специальными плагинами-расширениями с приставкой M
.
{
"Module": "<ModuleName>",
"<Param1>": "",
/* ... */
"<ParamN>": []
}
<ModuleName>
- название модуля. Определяется плагином-расширением, регистрирующим модуль.<ParamX>
- какой-либо параметр модуля. Названия и типы параметров определяются плагином-расширением, добавляющим модуль.
За настройку активации модулей отвечает плагин VipM-ModulesLimiter
. Если данные настройки не используются, его можно отключить, в таком случае все модули всегда будут активны.
Файл настроек активности модулей: amxmodx/configs/plugins/VipModular/Modules.json
.
[
{
"Modules": [ /* ... */ ],
"Limits": [ /* ... */ ]
},
{ /* ... */ }
]
Modules
- список названий модулей, к которым будут применяться ограничения.Limits
- ограничения, применяемые для активации модуля.
Попытка активации всех используемых модулей запускается после полной загрузки системы привилегий.
Если хоть одно ограничение из поля Limits
выполняется, модули из поля Modules
будут активны. Если модуль не упоминается в этом файле, он будет активен всегда.
Активируются только те модули, которые хотя бы раз встречаются в настройках привилегий.
Тип | E_ParamType |
Описание |
---|---|---|
Integer | ptInteger |
Целое число |
Float | ptFloat |
Дробное число |
Bool | ptBoolean |
true/false |
String | ptString |
Строка |
Color | ptColor |
Цвет (Массив из трёх целых чисел) |
Vector2 | ptVector2 |
Двумерный вектор (Массив из двух дробных чисел) |
Vector3 | ptVector3 |
Трёхмерный вектор (Массив из трёх дробных чисел) |
Limit | ptLimit |
Одна проверка |
Limits | ptLimits |
Массив проверок |
Custom | ptCustom |
Сложный тип, зависит от модуля, использующего его |