Перейти к содержимому

Настройка

Что делает каждый предмет, задаётся в меню и сохраняется в базе данных. Всё остальное определяют файлы: команда, клавиши, способ отображения и то, как ресурс взаимодействует с вашим фреймворком.


ФайлЗа что отвечаетОткрыт?
config.luaЯзык, команда, клавиша отмены, взаимодействие с поставленным пропом, путь к картинкам, индикатор прогрессаДа
bridge/client_bridge.luaУведомления, здоровье, броня, стресс, еда и жажда, количество предметов, работы, таргет, индикатор прогрессаДа
bridge/server_bridge.luaОпределение фреймворка, используемые предметы, добавление и удаление предметов, работы, уведомления, список предметовДа
locales/*.luaВесь текст — в игре и в менюДа
data/*.luaСписки, стоящие за выпадающими выборами менюДа
html/Меню (HTML, CSS, JS)Читаемый
client/, server/Логика предметовЗашифрованы

ПараметрЧто делаетПо умолчанию
Config.LocaleЯзык меню и сообщений. См. Языки'en'
Config.CommandКоманда, открывающая и закрывающая меню'itemcreator'
Config.CommandDescriptionНазвание этой команды в настройках клавиш FiveM, где ей можно назначить клавишу. По умолчанию клавиши нет'Open Item Creator Menu'
Config.CancelKeyКлавиша по умолчанию для отмены того, что запустил предмет. См. ниже'X'
Config.InteractionКак поставленный проп поднимают обратно: 'drawtext', 'ox_target' или 'qb-target'. При любом из значений таргета bridge использует тот из ox_target или qb-target, который запущен'drawtext'
Config.ImageInventoryPathГде меню берёт картинки предметов, в виде <path><item name>.png'nui://ox_inventory/web/images/'
Config.ProgressBar'custom' — встроенный индикатор, 'ox_lib' — индикатор ox_lib. Если ox_lib не запущен, используется встроенный'custom'

Не используете ox_inventory? Укажите в Config.ImageInventoryPath папку изображений вашего инвентаря, например nui://qb-inventory/html/images/.


КомандаКлавиша по умолчаниюЧто делает
/itemcreatorнетОткрывает или закрывает меню. Требует ACE mic_itemcreator.open
/cancelitemanimConfig.CancelKey (X)Останавливает анимацию, сценарий или стиль ходьбы, запущенные предметом, сбрасывает скорость, завершает суперспособности и убирает прикреплённый проп

При расстановке Attach Prop действуют следующие клавиши. Каждая из них указана в настройках клавиш FiveM под названием «Placement:», так что игроки могут их переназначить:

КлавишаЧто делает
← → ↑ ↓Двигает проп влево, вправо, вперёд, назад
Page Up / Page DownДвигает его вверх или вниз
Numpad 4 / 6Рыскание (yaw)
Numpad 8 / 5Тангаж (pitch)
Numpad 7 / 9Крен (roll)
XПредпросмотр анимации
EПодтвердить
BackspaceОтмена

Всё, что можно выбрать из списка в меню, берётся из data/, и в любой из них можно добавлять свои записи:

ФайлЧто перечисляет
data/animations.luaАнимации
data/scenarios.luaСценарии
data/walkingstyles.luaСтили ходьбы
data/bones.luaКости, к которым можно прикрепить проп
data/particles.luaЭффекты частиц
data/screeneffects.luaЭкранные эффекты
data/sounds.luaЗвуки
data/cars.luaАвтомобили, по названию и модели
data/peds.luaМодели педов
data/clothing.luaАнимации, проигрываемые при надевании предмета одежды или аксессуара

Сохраняйте у каждой записи ту же форму, что у соседних. Меню читает эти файлы при открытии; после правки перезапустите ресурс.


В locales/ поставляются девять файлов:

Config.LocaleЯзык
enАнглийский
esИспанский
deНемецкий
frФранцузский
itИтальянский
ptПортугальский
ruРусский
ch-znКитайский
jpЯпонский

В комментарии в config.lua также упоминаются tr и ch; ни того, ни другого нет. Используйте коды из таблицы выше.

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

Добавление языка:

  1. Скопируйте locales/en.lua в новый файл, например locales/pl.lua.
  2. Внутри замените Locales['en'] на ваш код и переведите текст справа в каждой строке. Сохраняйте ключи и любые %s.
  3. Добавьте файл в shared_scripts в fxmanifest.lua, выше locales/lib.lua.
  4. Установите Config.Locale в ваш код, выполните refresh и перезапустите ресурс.

Отсутствующий ключ выводит в консоль Translation key "…" not found, а на экране показывается сам ключ.


В bridge/ лежат два открытых файла. Сохраняйте названия функций — остальной ресурс вызывает их по имени.

bridge/server_bridge.lua

ФункцияДля чего нужна
(определение)Использует ESX, если запущен es_extended, иначе QBCore, если запущен qb-core. QBox определяется как qb-core через слой совместимости с QBCore
Bridge.RegisterUsableItemРегистрирует каждый настроенный предмет как используемый в вашем фреймворке
Bridge.AddItem, Bridge.RemoveItem, Bridge.GetItemCountПредметы: наборы, подбор, требуемые предметы, Remove on Use
Bridge.GetPlayerJob, Bridge.GetPlayerJobGradeОграничение по работе
Bridge.NotifyСерверные уведомления
Bridge.GetAllItemsСписок предметов в меню: из ox_inventory, затем из зарегистрированных предметов ESX, затем из общих предметов QBCore

bridge/client_bridge.lua

ФункцияДля чего нужна
Bridge.NotifyВсе уведомления. Без фреймворка откатывается на ленту GTA
Bridge.AddHealth, Bridge.AddArmorHealth/Armor
Bridge.AddFoodThirstFood/Thirst: esx_status на ESX; на QBCore события consumables:server:addHunger и addThirst
Bridge.AddStressСтресс: esx_status на ESX; consumables:server:addStress на QBCore
Bridge.GetItemCountAlways Attached Prop: количество из ox_inventory, если он запущен, иначе данные игрока
Bridge.AddTargetEntityОпция подбора на поставленном пропе для ox_target или qb-target
Bridge.ProgressBarИндикаторы прогресса: ox_lib или встроенный. Есть отмеченное место с закомментированным примером, куда можно добавить другой ресурс индикатора прогресса

Ваш HUD использует другие события для голода, жажды или стресса? Измените их в Bridge.AddFoodThirst и Bridge.AddStress. Другой ресурс уведомлений? Замените тело Bridge.Notify. Другой фреймворк или инвентарь? Реализуйте для него те же функции в обоих файлах.


Network в меню перечисляет конфигурации предметов, которыми поделились другие серверы. Import спрашивает, какой из ваших предметов должен получить эту конфигурацию, затем открывает её, чтобы вы могли подправить и сохранить. Чтобы поделиться своей, экспортируйте её из списка предметов с публичным названием, описанием и именем автора — она станет видна каждому серверу, использующему сеть.

Список загружается с GitHub, поэтому вашему серверу нужен исходящий доступ в интернет, чтобы он заполнился.