Основные моменты при настройке системы привилегий.
- Ссылки на файлы
- Главный файл
- Проверки
- Модули
- Глобальные настройки модулей
ВАЖНО: Все конфиг-файлы должны соответствовать формату JSON. Допускаются комментарии вида /* comment */
или // comment
.
В целях оптимизации и разбиения конфигов на отдельные файлы, некоторые элементы конфига могут быть заменены на ссылку вида "File:<path>/<file>"
.
<path>
- путь до файла, относительно папкиamxmodx/configs/plugins/VipModular/
.<file>
- название.json
файла без расширения.
При повторном обращении к файлу по ссылке, вместо чтения файла, на место ссылки будет подставлен обьект, прочитанный из этого файла в первый раз.
Основным файлом настроек является файл amxmodx/configs/plugins/VipModular/Vips.json
.
[
{
"Access": [ /* ... */ ],
"Modules": [ /* ... */ ]
},
{ /* ... */ }
]
Элементами корневого массива являются обьекты, содержащие поля Access
и Modules
.
Поле Access
содержит одну или более проверок, привязанных к игроку.
Если проверка одна, она может быть указана как обьект, вместо массива.
Может являться ссылкой на файл. Как массив, так и элементы массива.
Поле 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 |
Сложный тип, зависит от модуля, использующего его |