Как установить сервер QBox: рецепт, стек и первые ошибки

Установите QBox на FiveM с рецептом txAdmin: стек qbx_core, ox_lib, ox_inventory, oxmysql и ox_target, как он отличается от QBCore и наиболее частые первые ошибки.

Вы хотите сервер QBox и хотите знать, что находится в стеке, как его установить и как он отличается от QBCore. Это руководство даёт вам маршрут рецепта, части, которые составляют QBox, отличия, на которые следует обратить внимание, и первые ошибки, которые люди встречают.

Установка с рецептом txAdmin

QBox сделан для установки с рецептом txAdmin. В настройке txAdmin выберите шаблон QBox в популярных рецептах (или вставьте URL рецепта из документации проекта QBox). Шаги одинаковы, как в txAdmin setup и рецепты: лицензионный ключ, учётные данные базы данных, затем проверьте server.cfg и запустите.

Всегда берите рецепт из самого проекта QBox. Его список ресурсов меняется по мере роста проекта, и рецепт остаётся актуальным.

Стек QBox

QBox — это набор ресурсов, построенных вокруг библиотек Overextended. Базовые части:

Ресурс Роль
oxmysql Доступ к базе данных
ox_lib Библиотека: обратные вызовы, уведомления, меню, зоны, UI
qbx_core Фреймворк: игроки, работы, банды, персонажи
ox_inventory Инвентарь, элементы, сховище и магазины
ox_target Взаимодействие третьего глаза

На вершине этих, рецепт добавляет ресурсы qbx_ для работ, автомобилей, жилья и так далее, плюс автономные ресурсы, такие как голос.

Ручной server.cfg выглядит так:

cfg
set mysql_connection_string "mysql://user:password@localhost/qbox?charset=utf8mb4"

ensure oxmysql
ensure ox_lib
ensure qbx_core
ensure ox_inventory
ensure ox_target
ensure [qbx]
ensure [standalone]

Рецепт пишет точный список для версии, которую он устанавливает, поэтому рассматривайте это как форму, а не содержание. Порядок важен: см. server.cfg ensure order.

Что отличается от QBCore

  • Имя ядра. Фреймворк — это qbx_core. Нет папки qb-core, и вы не должны сохранять её рядом.
  • Инвентарь. QBox использует ox_inventory. Элементы определены для ox_inventory, а не в файле общих элементов qb. См. ox_inventory add items.
  • Библиотеки вместо помощников. Обратные вызовы, уведомления, контекстные меню и полосы прогресса поступают из ox_lib. См. callbacks on ESX, QBCore и ox_lib и notifications и progress bars.
  • Нацеливание. ox_target — это целевой ресурс: ox_target add zone. Различия с целевой версией QBCore находятся в qb-target vs ox-target.
  • Экспорты. QBox имеет свои экспорты, например на сервере:
lua
local player = exports.qbx_core:GetPlayer(source)
if player then
    print(player.PlayerData.citizenid)
end

Способ QBCore exports['qb-core']:GetCoreObject() по-прежнему отвечает через слой совместимости, поэтому многие скрипты QBCore работают. Для полного преобразования см. convert a QBCore script to QBox.

Первые проверки

Запустите сервер и прочитайте консоль перед присоединением:

  1. oxmysql подключается.
  2. ox_lib и qbx_core запускаются без ошибок.
  3. ox_inventory запускается. Он имеет собственные проверки при запуске и сообщает о проблемах чётко, поэтому прочитайте то, что он печатает.
  4. Вы можете присоединиться, создать персонажа и спауниться.
  5. Ваш инвентарь открывается с ключом, который настроил рецепт.

Для прав администратора QBox использует принципалы ACE в server.cfg, так же как другие фреймворки. См. ACE permissions.

Частые первые ошибки

Скрипт QBCore не может найти ядро. Если уровень совместимости не активен или qbx_core не запустился, вы получаете:

text
No such export GetCoreObject in resource qb-core

Проверьте, что qbx_core запустился без ошибок и что нет устаревшей папки qb-core. См. QBCore nil: the GetCoreObject fix.

ox_lib не загружен. Скрипт, который вызывает lib перед запуском ox_lib, не удаётся. Поместите ensure ox_lib ближе к верхней части и добавьте @ox_lib/init.lua в манифест скрипта. См. ox_lib init.lua not found.

Ошибки базы данных. Неправильная строка подключения или база данных не была создана. См. oxmysql connection error.

Два инвентаря. Запуск qb-inventory вместе с ox_inventory вызывает дублированные и нарушенные элементы. Держите только ox_inventory.

Ресурс не запускается. Could not find dependency говорит вам, что отсутствует.

Чеклист

Симптом Исправление
No such export GetCoreObject in resource qb-core Запустите qbx_core первым, удалите любую старую папку qb-core
Скрипт говорит, что lib это nil ensure ox_lib раньше и загрузите @ox_lib/init.lua в манифесте
Элементы отсутствуют или дублированы Используйте только ox_inventory и определите элементы для него
Не может подключиться к базе данных Проверьте mysql_connection_string и что база данных существует
Скрипт QBCore ведёт себя неправильно Проверьте, зависит ли он от qb-inventory или других внутренних элементов qb
Не администратор Добавьте свой идентификатор с помощью add_principal и перезагрузитесь

Короткие ответы

Совместим ли QBox со скриптами QBCore?

В основном. qbx_core сохраняет уровень совместимости, поэтому exports['qb-core']:GetCoreObject() всё ещё работает и многие скрипты QBCore работают без изменений. Скрипты, которые зависят от qb-inventory или других внутренних элементов qb, могут требовать изменения.

Нужен ли мне ox_inventory на QBox?

Да, стек QBox построен вокруг ox_inventory, с ox_lib и ox_target. Не запускайте qb-inventory рядом с ним.

Могу ли я установить QBox без txAdmin?

Да, но рецепт txAdmin — это поддерживаемый маршрут, потому что он загружает согласованные ресурсы и пишет server.cfg. Ручная установка следует тому же порядку, но требует больше проверок.

Скрипты без этой проблемы

Item Creator V2Создавайте используемые предметы с анимациями, пропами, эффектами и не только — без кода.Смотреть скрипт →Shop CreatorМагазин меньше чем за минуту — владельцы, сотрудники, сейфы и ограбления в комплекте.Смотреть скрипт →Mic PhoneСкладной телефон, который раскладывается в планшет и работает и на настоящем телефоне игрока.Смотреть скрипт →

Читайте также