Настройка
Что делает каждый предмет, задаётся в меню и сохраняется в базе данных. Всё остальное определяют файлы: команда, клавиши, способ отображения и то, как ресурс взаимодействует с вашим фреймворком.
Какой файл за что отвечает
Заголовок раздела «Какой файл за что отвечает»| Файл | За что отвечает | Открыт? |
|---|---|---|
config.lua | Язык, команда, клавиша отмены, взаимодействие с поставленным пропом, путь к картинкам, индикатор прогресса | Да |
bridge/client_bridge.lua | Уведомления, здоровье, броня, стресс, еда и жажда, количество предметов, работы, таргет, индикатор прогресса | Да |
bridge/server_bridge.lua | Определение фреймворка, используемые предметы, добавление и удаление предметов, работы, уведомления, список предметов | Да |
locales/*.lua | Весь текст — в игре и в меню | Да |
data/*.lua | Списки, стоящие за выпадающими выборами меню | Да |
html/ | Меню (HTML, CSS, JS) | Читаемый |
client/, server/ | Логика предметов | Зашифрованы |
config.lua
Заголовок раздела «config.lua»| Параметр | Что делает | По умолчанию |
|---|---|---|
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 |
/cancelitemanim | Config.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; ни того, ни другого нет. Используйте коды из таблицы выше.
Один и тот же файл переводит и игровые сообщения, и меню, так что редактировать нужно только в одном месте.
Добавление языка:
- Скопируйте
locales/en.luaв новый файл, напримерlocales/pl.lua. - Внутри замените
Locales['en']на ваш код и переведите текст справа в каждой строке. Сохраняйте ключи и любые%s. - Добавьте файл в
shared_scriptsвfxmanifest.lua, вышеlocales/lib.lua. - Установите
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.AddArmor | Health/Armor |
Bridge.AddFoodThirst | Food/Thirst: esx_status на ESX; на QBCore события consumables:server:addHunger и addThirst |
Bridge.AddStress | Стресс: esx_status на ESX; consumables:server:addStress на QBCore |
Bridge.GetItemCount | Always Attached Prop: количество из ox_inventory, если он запущен, иначе данные игрока |
Bridge.AddTargetEntity | Опция подбора на поставленном пропе для ox_target или qb-target |
Bridge.ProgressBar | Индикаторы прогресса: ox_lib или встроенный. Есть отмеченное место с закомментированным примером, куда можно добавить другой ресурс индикатора прогресса |
Ваш HUD использует другие события для голода, жажды или стресса? Измените их в Bridge.AddFoodThirst и Bridge.AddStress. Другой ресурс уведомлений? Замените тело Bridge.Notify. Другой фреймворк или инвентарь? Реализуйте для него те же функции в обоих файлах.
Сообщество и обмен
Заголовок раздела «Сообщество и обмен»Network в меню перечисляет конфигурации предметов, которыми поделились другие серверы. Import спрашивает, какой из ваших предметов должен получить эту конфигурацию, затем открывает её, чтобы вы могли подправить и сохранить. Чтобы поделиться своей, экспортируйте её из списка предметов с публичным названием, описанием и именем автора — она станет видна каждому серверу, использующему сеть.
Список загружается с GitHub, поэтому вашему серверу нужен исходящий доступ в интернет, чтобы он заполнился.