С чем это работает
Всё перечисленное ниже определяется автоматически. Нет настройки «какой у меня фреймворк» и нет списка названий ресурсов, который надо заполнять: телефон смотрит, что запущено, и спрашивает об этом.
Тип ресурса, который не запущен, — это не сломанный телефон: приложение, которому он был нужен, сообщает об этом или просто отсутствует. Маркетплейс работает без гаража; Wallet работает без ресурса выставления счетов.
Фреймворки
Заголовок раздела «Фреймворки»| ESX | Legacy и 1.x. Номер — это колонка phone_number, которую этот телефон добавляет в users |
| QBCore | Номер — тот, что QBCore выдаёт каждому персонажу: charinfo.phone в players |
| QBox | Тот же charinfo.phone. Собственная таблица Qbox с названием users — это таблица его аккаунтов, её не трогают |
| fmLib | Для всего остального или вашего собственного |
Деньги, имена, работы и идентификаторы проходят через один bridge, так что фреймворку, которого нет в этом списке, нужен один файл, а не форк.
Инвентари
Заголовок раздела «Инвентари»11 из них, а RequireItem = false покрывает остальные:
ox_inventory · qb-inventory · qs-inventory · core_inventory · ps-inventory · tgiann-inventory · jpr-inventory · codem-inventory · origen_inventory · jaksam_inventory · тот, что поставляется с ESX
Метаданные по каждому предмету — то, что делает телефон именно этим телефоном в режиме предметов, — работают на ox, qs, qb, core, jaksam и origen. У chezza, ps и tgiann нет места, где их хранить, а в штатном инвентаре ESX их нет вообще, поэтому в режиме предметов там происходит откат к одному телефону на персонажа.
pma-voice · mumble-voip · saltychat · tokovoip_script
Звонки и рация помещают людей в канал и позволяют вашему голосовому ресурсу делать всю работу. Если ни один из них не запущен, звонки соединяются, но никто ничего не слышит.
Остальное
Заголовок раздела «Остальное»| Что | Определяется |
|---|---|
| Счета | esx_billing, okokBilling или собственные телефона |
| Жильё | esx_property, ps-housing, qb-houses, loaf_housing |
| Гаражи | esx_garage, qb-garages, cd_garage, okokGarage, jg-advancedgarages |
| Society | esx_society, qb-management, qb-banking |
| Лицензии | esx_license, qb-core, qbx_core |
| Погода | cd_easytime, qb-weathersync, vSync или сама игра |
| Скриншоты | screenshot-basic |
| Загрузки | Fivemanage или Discord webhook |
Смерть и состояние «повержен»
Заголовок раздела «Смерть и состояние «повержен»»Единственное, на что нет двух одинаковых ответов на разных серверах, поэтому телефон спрашивает четырьмя способами и берёт первый ответ: фреймворк (ESX dead, QB isdead / inlaststand), затем state bag’и, затем экспорты, названные вами в Config.Restrict.Death.Exports, затем сама игра.
Это уже покрывает ESX, QBCore, QBox и всё, что пишет обычные bag’и. Если ваш скрипт скорой помощи не делает ничего из этого:
Config.Restrict.Death.Exports = { { 'wasabi_ambulance', 'isPlayerDead' },}Он вызывается, только если этот ресурс запущен, а имя, которое ничего не отвечает, пропускается и не ломает телефон — поэтому неверная догадка ничего не стоит.
Что ему нужно от самого сервера
Заголовок раздела «Что ему нужно от самого сервера»| oxmysql | Всё, что запоминает телефон |
| Сборка FiveM не старше пары последних лет | Браузерная половина использует встроенный Node сервера |
Никакого npm, никакого шага сборки, никакой второй программы и никакого SQL-файла для импорта — таблицы создаются сами при первом запуске ресурса.