Пресеты оружия
Расположение пресетов
Дефолтные пресеты оружия нужно располагать по типам оружия:
profiles\RZXC\LuxelSetManager\Defaults\Weapons\Main
profiles\RZXC\LuxelSetManager\Defaults\Weapons\Secondary
profiles\RZXC\LuxelSetManager\Defaults\Weapons\Pistol
profiles\RZXC\LuxelSetManager\Defaults\Weapons\KnifeПредустановленные пресеты оружия нужно располагать по таким же типам:
profiles\RZXC\LuxelSetManager\Predefined\Weapons\Main
profiles\RZXC\LuxelSetManager\Predefined\Weapons\Secondary
profiles\RZXC\LuxelSetManager\Predefined\Weapons\Pistol
profiles\RZXC\LuxelSetManager\Predefined\Weapons\KnifeТипы оружия
Тип оружия определяется папкой, в которой лежит JSON-файл.
Main — основное оружие.
Secondary — дополнительное оружие.
Pistol — пистолет.
Knife — холодное оружие или оружие ближнего боя.
ID пресета
ID пресета берётся из названия .json файла без расширения.
Например, файл:
AKM_Silenced.jsonполучит ID:
AKM_SilencedФункциональные пресеты
Среди дефолтных пресетов есть специальные пустые пресеты. Они нужны для того, чтобы игрок мог выбрать отсутствие конкретного типа оружия.
Среди них:
0_EMPTY_MAIN.json— игрок заспавнится без основного оружия.0_EMPTY_SECONDARY.json— игрок заспавнится без дополнительного оружия.0_EMPTY_PISTOL.json— игрок заспавнится без пистолета.0_EMPTY_KNIFE.json— игрок заспавнится без холодного оружия.
Как работает выдача оружия
Пресет оружия создаёт само оружие, затем рекурсивно создаёт вложения из Attachments, после этого обрабатывает Magazines.
Первый валидный элемент массива Magazines используется для зарядки оружия. Если это магазин, он будет вставлен в оружие. Если это патроны, оружие будет заряжено через внутренний магазин или патронник.
Остальное количество из Amount будет выдано игроку в инвентарь.
Настройки пресетов оружия
PresetName
Настройка: PresetName
Описание: Основное название пресета, которое отображается в меню.
Тип: string
Использование:
"PresetName": "$$$"SkinName
Настройка: SkinName
Описание: Дополнительное название или подпись пресета.
Тип: string
Использование:
"SkinName": "С глушителем"RarityID
Настройка: RarityID
Описание: ID предустановленной редкости, которая будет применяться к пресету.
Редкость должна быть заранее зарегистрирована в настройке Rarities. Через неё пресет получает название редкости, цвет свечения и позицию при сортировке в меню.
Тип: string
Использование:
"RarityID": "RARE"RarityName
Настройка: RarityName
Описание: Редкость пресета.
Тип: string
Использование:
"RarityName": "LEGENDARY"PresetColorRGB
Настройка: PresetColorRGB
Описание: RGB-цвет пресета.
Тип: array<int>
Использование:
"PresetColorRGB": [
253,
26,
255
]WeaponClassName
Настройка: WeaponClassName
Описание: Класснейм оружия, которое будет создано при спавне.
Тип: string
Использование:
"WeaponClassName": "AKM"Attachments
Настройка: Attachments
Описание: Массив вложений, которые будут созданы на оружии.
Тип: array<WeaponAttachment>
Использование:
"Attachments": [
{
"Classname": "AK_PlasticBttstck_Black"
},
{
"Classname": "KobraOptic",
"Attachments": [
{
"Classname": "Battery9V"
}
]
}
]Attachments[].Classname
Настройка: Attachments[].Classname
Описание: Класснейм фиксированного вложения, которое должно быть создано.
Тип: string
Использование:
"Classname": "UniversalLight"Attachments[].RandomItemClassnames
Настройка: Attachments[].RandomItemClassnames
Описание: Массив класснеймов, из которых система случайно выберет одно вложение.
Тип: array<string>
Использование:
"RandomItemClassnames": [
"KobraOptic",
"ReflexOptic",
"M68Optic"
]Attachments[].Attachments
Настройка: Attachments[].Attachments
Описание: Вложения для вложения.
Тип: array<WeaponAttachment>
Использование:
{
"Classname": "UniversalLight",
"Attachments": [
{
"Classname": "Battery9V"
}
]
}Magazines
Настройка: Magazines
Описание: Массив магазинов или патронов, которые будут использоваться для зарядки оружия и выдачи дополнительных магазинов в инвентарь.
Тип: array<WeaponMagazineInfo>
Использование:
"Magazines": [
{
"Classname": "Mag_AKM_30Rnd",
"BulletClassname": "Bullet_762x39",
"Amount": 12
}
]Magazines[].Classname
Настройка: Magazines[].Classname
Описание: Класснейм магазина или патронов.
Тип: string
Использование для оружия с магазином:
"Classname": "Mag_AKM_30Rnd"Использование для оружия без отдельного магазина:
"Classname": "Ammo_308Win"Magazines[].BulletClassname
Настройка: Magazines[].BulletClassname
Описание: Тип патронов, которыми нужно зарядить магазин или оружие.
Тип: string
Использование:
"BulletClassname": "Bullet_762x39"Magazines[].Amount
Настройка: Magazines[].Amount
Описание: Общее количество магазинов или пачек патронов, которое будет использовано для этого элемента.
Тип: int
Использование:
"Amount": 12Пример пресета с магазином
{
"PresetName": "$$$",
"SkinName": "С глушителем",
"RarityName": "LEGENDARY",
"PresetColorRGB": [
253,
26,
255
],
"WeaponClassName": "AKM",
"Attachments": [
{
"Classname": "AK_PlasticBttstck_Black"
},
{
"Classname": "AK_RailHndgrd_Black"
},
{
"Classname": "UniversalLight",
"Attachments": [
{
"Classname": "Battery9V"
}
]
},
{
"Classname": "KobraOptic",
"Attachments": [
{
"Classname": "Battery9V"
}
]
}
],
"Magazines": [
{
"Classname": "Mag_AKM_30Rnd",
"BulletClassname": "Bullet_762x39",
"Amount": 12
}
]
}Пример пресета для оружия со внутренним магазином (болтовок)
{
"PresetName": "$$$",
"WeaponClassName": "B95",
"Attachments": [
{
"Classname": "HuntingOptic"
}
],
"Magazines": [
{
"Classname": "Ammo_308Win",
"Amount": 12
}
]
}Пример пустого пресета
{
"PresetName": "#LXSM_EMPTY_WEAPON",
"SkinName": "#LXSM_EMPTY_WEAPON_MAIN"
}