Документация Pulse Phone
Framework
3. Пошагово для вашего framework
Телефон сам находит ваш framework: es_extended, qb-core, qbx_core, ox_core, ND_Core, vrp или core от TMC. Config.Framework в config/config.lua нужен, только если запущено больше одного или для кастомного framework.
Ваш framework вкратце
| Framework | Определяется по | Предметы | Банк и наличные | Полезно знать |
|---|---|---|---|---|
| ESX Legacy | es_extended |
Pulse сам добавляет свои предметы в таблицу items ESX (стандартный инвентарь). На ox_inventory вставьте блок, который выводит проверка при запуске |
Счета ESX | Счета компаний через ваш скрипт society |
| QBCore | qb-core |
Pulse сам добавляет свои предметы в shared items QBCore (qb-, ps-, lj-inventory) | Деньги QBCore | Ранги с isboss управляют компанией |
| Qbox | qbx_core (его заглушка qb-core считается Qbox, а не вторым framework) |
Вставьте выведенный блок для ox_inventory | Деньги Qbox | Использует адаптер Qbox, никогда адаптер QBCore |
| ox_core | ox_core |
Вставьте выведенный блок для ox_inventory | Счёт персонажа в ox_core; наличные — money из ox_inventory |
Нет флага смены: все считаются на смене |
| ND Core | ND_Core |
Вставьте выведенный блок для ox_inventory | bank и cash из ND |
Нет флага смены; нет счетов компаний |
| TMC | его ресурс core, распознаётся по собственному объекту ядра TMC |
Каждый предмет должен быть в списке предметов TMC: проверка при запуске выводит их | Деньги TMC | Работает через кастомный мост, настраивать ничего не нужно |
| vRP 2 | vrp |
См. раздел vRP | Кошелёк и банк vRP | vRP 1 и форки не поддерживаются |
| Standalone | ничего из перечисленного не запущено | Не нужны | Собственный банк телефона | Для тестовых серверов или серверов без framework |
| Кастомный | Config.Framework = 'custom' |
Через ваш мост | Через ваш мост | См. «Кастомный или собственный framework» |
Принудительный выбор framework
Большинству серверов это никогда не понадобится. Задавайте framework принудительно, если строка при запуске называет не тот, или если установлены и запущены два ядра framework. Добавьте одну строку в server.cfg:
setr phone_framework qb| Значение | Framework |
|---|---|
esx |
ESX Legacy (es_extended) |
qb |
QBCore (qb-core) |
qbox |
Qbox (qbx_core) |
ox |
ox_core |
nd |
ND Core (ND_Core) |
vrp |
vRP 2 (vrp) |
tmc |
TMC (core) |
standalone |
Без framework: телефон использует собственную идентификацию и банк |
custom |
Ваш собственный мост (см. «Кастомный или собственный framework» ниже) |
auto |
То же, что и без этой строки: решает Config.Framework |
- Имеет приоритет над
Config.Framework. После изменения перезапустите телефон. - Имена ресурсов тоже работают:
qbcore,qb-core,qbx_core,es_extended,ox_core. Незнакомое слово отклоняется: проверка при запуске сообщает об этом, а денежные функции остаются выключенными. qbна сервере сqbx_coreиспользует адаптер Qbox. Qbox также отвечает как QBCore.- Если принудительно заданный framework не запущен, телефоны остаются на экране «not ready», пока он не запустится. Телефон никогда сам не переключается на другой framework.
Мультиперсонаж работает на любом framework. Config.IdentityScope = 'character' (по умолчанию) даёт каждому персонажу свой телефон. 'player' даёт один телефон на аккаунт. Выберите один раз: изменение на живом сервере оставит все существующие телефоны позади.
Управление компанией (смены, персонал, найм, счёт компании в приложении Services) использует компании из Config.Services в config/apps.lua. Если названия ваших работ отличаются от стандартных (police, ambulance, mechanic, taxi, fire ...), добавьте свои в список job этой компании. Чтобы самим выбрать ранги начальника, добавьте компании bossGrade = <n>.
ESX Legacy
ensure oxmysql
ensure es_extended
# ... your ESX scripts, inventory, banking ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Предметы: со стандартным инвентарём ESX делать ничего не нужно. Телефон добавляет свои предметы в таблицу
itemsESX при запуске, и консоль сообщает, какие добавлены.config/items/esx.sqlесть на случай, если вы хотите добавить их сами. С другим инвентарём см. раздел 4. - Деньги: банк — это счёт ESX
bank, наличные — счётmoney. - Персонаж: телефон следует за
identifierигрока ESX, поэтому esx_multicharacter работает. - Начальник: компанией управляет ранг с именем
boss, если вы не задалиbossGrade. - Счета компаний: esx_addonaccount / esx_society или скрипт банкинга из раздела 7.
QBCore
ensure oxmysql
ensure qb-core
# ... qb-inventory and your other qb scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Предметы: вставлять ничего не нужно. Телефон добавляет нужные предметы в shared items QBCore при запуске, и консоль сообщает, какие добавлены. Скопируйте картинки из
config/items/images/вqb-inventory/html/images/; проверка при запуске назовёт недостающие. - Деньги:
bankиcash. - Персонаж:
citizenid, поэтому qb-multicharacter работает. - Начальник: ранги с
isboss = trueв ваших работах, если вы не задалиbossGrade. - Счета компаний: Renewed-Banking, qb-banking или старый qb-management.
- Мультиработа: если запущен ps-multijob, другие работы игрока видны в Services, и одно касание делает работу активной.
Qbox
ensure oxmysql
ensure qbx_core
ensure ox_inventory
# ... your other Qbox scripts, in Qbox's own order ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Предметы: Qbox использует ox_inventory, который не может принимать предметы от другого скрипта. Запустите сервер один раз: проверка при запуске выведет недостающие записи, готовые к вставке в
ox_inventory/data/items.lua(раздел 4). Картинки кладите вox_inventory/web/images/. - Деньги:
bankиcashчерез qbx_core. - Персонаж:
citizenid. - Начальник: ранги с
isboss = true, если вы не задалиbossGrade. - Мультиработа: встроена. Другие работы игрока видны в Services.
- qbx_core также отвечает как
qb-core. Это нормально: телефон считает их одним framework.
ox_core
ensure oxmysql
ensure ox_core
ensure ox_inventory
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Предметы: запустите сервер один раз: проверка при запуске выведет недостающие записи, готовые к вставке в
ox_inventory/data/items.lua(раздел 4). Картинки кладите вox_inventory/web/images/. - Деньги: банк — это счёт персонажа в ox_core. Наличные — предмет
moneyв ox_inventory. - Персонаж:
charId. - Работы: у групп ox_core нет флага смены, поэтому телефон ведёт смены сам. Управление компанией (персонал, найм, ранги) и valet на ox_core недоступны.
ND Core
ensure oxmysql
ensure ox_lib
ensure ND_Core
ensure ox_inventory
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Определяется сам, когда запущен
ND_Core. Чтобы задать принудительно:setr phone_framework nd. - Предметы: ND использует ox_inventory. Запустите сервер один раз: проверка при запуске выведет недостающие записи, готовые к вставке в
ox_inventory/data/items.lua(раздел 4). - Деньги:
bankперсонажа в ND иcashв ND (ox_inventory синхронизирует с ним предметmoney). - Персонаж: id персонажа ND. Показывается собственный номер телефона ND, если он есть у персонажа.
- Работы: работа и ранг персонажа в ND. У ND нет флага смены, поэтому все считаются на смене. Управление компанией, счета компаний и valet на ND Core недоступны.
- Гараж: личные машины берутся из таблицы ND
nd_vehicles.
vRP
Поддерживается только vRP 2 (не vRP 1 и не форки сообщества). Телефон загружает в vRP небольшое расширение из bridge/frameworks/vrp/. Копировать ничего не нужно.
ensure oxmysql
ensure vrp
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Предметы: файла предметов для vRP нет, и vRP 2 не может сделать предметы используемыми для телефона. Оставьте
Config.Item.required = false(по умолчанию) и задайтеConfig.Store.box = false, чтобы магазин выдавал телефоны напрямую. Игроки используют предметы для зарядки командами/phonepackи/phonecable; с инвентарём vRP для них игрок должен иметь при себеpulse_magpackиpulse_cable, поэтому добавьте оба предмета в свой список предметов vRP или задайтеConfig.Charging.enabled = false. - Деньги: банк и кошелёк vRP.
- Персонаж: id персонажа vRP.
- Работы: управление компанией и valet на vRP недоступны. Приложение Garage остаётся пустым, если вы не подключите скрипт гаража.
TMC
TMC встроен. Телефон сам распознаёт core от TMC: никакого дополнительного ресурса и никаких изменений в config/config.lua (работают auto, tmc и custom).
ensure oxmysql
ensure core
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phoneПроверка при запуске показывает Framework: TMC.
- Предметы: добавьте предметы Pulse в список предметов TMC так же, как добавляете любой предмет. Имена:
phone,pulse_magpack,pulse_magpack_max,pulse_cable,pulse_router,pulse_burner,pulse_buds,pulse_ringlight,pulse_wallet(записи есть вconfig/items/tmc.lua), а для коробок магазина —pulse_phone_boxи по одной на каждую расцветку (pulse_phone_box_black...). Названия, вес и описания есть вconfig/items/qb-core.lua, а картинки — вconfig/items/images/. Предмет, которого нет в списке, отклоняется, и игрок видит «inventory full»: тогда консоль называет этот предмет. Отсутствие в списке предмета коробки не останавливает продажу: магазин выдаёт телефон без коробки и сообщает об этом в консоли. Если коробки вам вообще не нужны, задайтеConfig.Store.box = false. - Деньги: наличные персонажа и его банк: ресурс
bankingот TMC, если он запущен (личный счёт персонажа), иначе банковские деньги ядра. Если номера ваших счетов не имеют видBNK123456, укажите поле с номером счёта вconfig/config.lua:Config.Providers.tmcBankAccount = 'charinfo.account'(используйте своё поле). Если банк не удаётся прочитать, Wallet показывает прочерк, а не выдуманную сумму. - Персонаж: citizen id TMC.
- Работы: работа на смене (или первая), с рангом и состоянием смены.
- Был установлен временный коннектор
pulse_tmc? Уберитеensure pulse_tmcи удалите эту папку. Пока он запущен, консоль будет об этом напоминать.
Standalone (без framework)
ensure oxmysql
ensure pma-voice
ensure screenshot-basic
ensure phone- Предметы: не нужны. У каждого игрока есть телефон, Reserve и кабель.
- Деньги: у телефона собственный банк. Новый игрок начинает с 5000 (
startingBalanceвconfig/apps.lua). - Персонаж: лицензия Rockstar игрока.
- Работы, машины и дома: телефон ведёт их сам. Заполните их тестовыми командами из раздела 9.
Кастомный или собственный framework
- Задайте
Config.Framework = 'custom'вconfig/config.lua. - Передайте телефону таблицу моста по образцу
optional-developer-kit/custom_framework_bridge.lua: либо какConfig.Providers.customвconfig/config.lua, либо из своего ресурса черезexports.phone:RegisterFrameworkBridge(MyBridge). - Обязателен только
GetCharacterId. Если вы опустите функцию имени, работы, лицензии или списка машин/домов, телефон ведёт себя так, будто на вашем сервере таких данных нет. Если вы опустите функцию денег или предметов, это действие отклоняется: телефон никогда не платит из собственного банка. Приложение Bank появляется, только если в вашем мосте естьGetBankBalance. - Если ваше ядро перезапускается, пока телефон продолжает работать, вызовите
exports.phone:FrameworkRestarted(), как только ядро будет готово.
bridge/frameworks/custom.lua показывает, как телефон использует вашу таблицу. Чтобы подключить другие собственные скрипты (банкинга или гаража), см. optional-developer-kit/custom_provider_template.lua и Экспорты. Оба шаблона поставляются в необязательном наборе разработчика, zerodevscripts.com/downloads/PulsePhone-developer-kit.zip, а не в папке телефона.