Как установить сервер 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 выглядит так:
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 имеет свои экспорты, например на сервере:
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.
Первые проверки
Запустите сервер и прочитайте консоль перед присоединением:
- oxmysql подключается.
- ox_lib и qbx_core запускаются без ошибок.
- ox_inventory запускается. Он имеет собственные проверки при запуске и сообщает о проблемах чётко, поэтому прочитайте то, что он печатает.
- Вы можете присоединиться, создать персонажа и спауниться.
- Ваш инвентарь открывается с ключом, который настроил рецепт.
Для прав администратора QBox использует принципалы ACE в server.cfg, так же как другие фреймворки. См. ACE permissions.
Частые первые ошибки
Скрипт QBCore не может найти ядро. Если уровень совместимости не активен или qbx_core не запустился, вы получаете:
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Складной телефон, который раскладывается в планшет и работает и на настоящем телефоне игрока.Смотреть скрипт →