Документація PhoneHub + Pulse
PhoneHub + Pulse Phone — посібник зі встановлення
Інтегроване видання 1.4.6 · ZeroDev
Це видання поєднує Pulse Phone, будівлю PhoneHub, власну PhoneHub OS, 3D-кіоск із телефонами, ремонтний стіл і систему складу/доставок для персоналу. Це окремий продукт від видання лише з телефоном. Встановлюйте телефон і ресурс магазину разом. Не запускайте дві копії phone або дві версії мапи PhoneHub.
1. Перед встановленням
- Зробіть резервну копію наявного ресурсу телефона, ресурсу мапи, конфігурації та бази даних.
- Використовуйте OneSync і game build GTA 2699 або новіший.
- Спершу запускайте базу даних, фреймворк, інвентар, голосовий ресурс і screenshot-basic.
- Залиште назви ресурсів точно
phoneіzerodev_phonehub_mlo. - Приберіть попередні ресурси PhoneHub з активного каталогу ресурсів і видаліть дублікати рядків
ensure. Зберігайте резервні копії поза цим каталогом. - Тримайте вимкненою будь-яку іншу мапу, що замінює ту саму будівлю на Portola Drive.
- Повністю закрийте FiveM і зупиніть сервер, перш ніж замінювати файли мапи. Запустіть сервер, потім знову запустіть FiveM. Відключайте клієнтів, перш ніж замінювати чи перезапускати це MLO, що стрімиться. Підключений клієнт може утримувати мапу, навіть коли він далеко від будівлі; гарячий перезапуск може призвести до краху цього клієнта.
Цей пакет не містить ліцензійного ключа сервера, фреймворку, інвентаря чи платних сторонніх скриптів. Після обробки в Keymaster ключ сервера має належати акаунту, що має права на цей новий об'єднаний асет. Права на старе видання лише з телефоном не дають права на це нове видання.
2. Скопіюйте ресурси
Скопіюйте папки phone і zerodev_phonehub_mlo із цього завантаження в каталог ресурсів свого сервера. Їх можна покласти в будь-яку папку-категорію; назви папок залишайте точно такими.
screenshot-basic. Камері потрібен screenshot-basic, запущений раніше за phone; стандартний ресурс працює. Завантаження також містить полегшену копію (вона малює зображення гри лише під час зйомки фото, з тією самою назвою, exports та events). Перехід на неї необов'язковий: збережіть стару папку як резервну копію поза resources, перевірте скрипти, що роблять знімки екрана, і поверніть стару папку, якщо щось зміниться. Кроки описано у швидкому старті Pulse Phone, крок 6; змінені файли перелічено в screenshot-basic/ZERODEV-CHANGES.md.
Додайте ці рядки після наявних залежностей у server.cfg:
ensure phone
ensure zerodev_phonehub_mloНе копіюйте старий рушій чи UI телефона в новий пакет. При оновленні перенесіть потрібні налаштування в нові файли конфігурації. Збережіть свою базу даних, сховище KVP ресурсу, каталоги media і ownermedia. Новий phone/config/phonehub_business.lua містить налаштування доставки, яких немає у виданні лише з телефоном.
Налаштований прилавок магазину — -749.541, -216.952224, 36.256562, напрямок 210. Розташування магазину вже налаштоване в чистому інтегрованому виданні. PhoneHub — єдиний магазин телефонів у цьому виданні: магазин на Legion Square з пакета лише з телефоном до нього не входить. config.lua, збережений з 1.4.4 чи раніших версій, досі містить Legion Square; цей запис пропускається, і консоль один раз про це повідомляє. Натисніть клавішу PhoneHub (за замовчуванням E) або скористайтеся /phonehub біля кіоску в залі, ремонтного столу, сервісної стійки чи пульта на даху, щоб відкрити термінал PhoneHub. Кіоск відкриває Shop, а ремонтний стіл — Repair. Клавішу можна змінити в призначеннях клавіш FiveM. Команда вимагає тієї самої близькості, що й клавіша; дії персоналу все одно потребують дозволу сервера.
3. Фреймворк, інвентар та інші скрипти
Почніть із Config.Framework = 'auto' і автоматичних налаштувань постачальників у phone/config/config.lua. Звіт про стан під час запуску телефона показує фактично вибраних постачальників. Перевірте цей звіт, перш ніж робити покупки.
| Фреймворк | Налаштування |
|---|---|
| ESX Legacy | Запускайте es_extended та інвентар раніше за phone. Імпортуйте zerodev_phonehub_mlo/setup/phonehub_esx_jobs.sql; це додає відсутні ранги роботи, не призначаючи її жодному гравцеві. |
| QBCore | Додайте наданий запис роботи zerodev_phonehub_mlo/setup/phonehub_qb_job.lua до таблиці shared jobs вашого ядра. Зареєструйте предмети телефона за посібником з предметів телефона. |
| Qbox | Зареєструйте ту саму роботу/ранги через встановлену у вас конфігурацію робіт Qbox або підтримуваний API реєстрації робіт. Використовуйте визначення предметів ox_inventory. |
| ox_core / vRP | Налаштуйте наявний адаптер фреймворку телефона та постачальника робіт, який повертає роботу PhoneHub і числовий ранг. Якщо ваша система робіт їх не надає, використовуйте доступ до будівлі через ACE. |
| Standalone / власний | Публічні покупки доступні через наявний standalone/власний міст телефона. Для доступу персоналу потрібен налаштований постачальник робіт або довірений адміністраторський ACE. |
Адаптери інвентаря охоплюють ox_inventory, підтримувані функції інвентаря фреймворків і названих сторонніх постачальників, перелічених у phone/guides/integrations.md (або в посібнику з інтеграцій, що йде з вашою збіркою телефона). Кожному постачальнику потрібні справжні визначення предметів і сумісна версія API. Про відсутні предмети повідомляють перевірки стану телефона; не приглушуйте ці помилки. Приклади налаштування предметів постачаються в phone/config/items/.
Редаговані мости телефона охоплюють голос, рахунки організацій, банкінг, гаражі, житло, диспетчерську та інші інтеграції. Залишайте рівно одного вибраного постачальника на функцію. Перейменовані ресурси вказуйте через Config.ResourceNames; для явного вибору постачальника використовуйте Config.Providers. Довільні сторонні exports не сумісні автоматично: реалізуйте задокументований власний міст, якщо вашого скрипту немає в списку. Адаптери фреймворків і автоматичні контрактні тести не означають, що кожну версію сторонніх скриптів протестовано наживо.
Стек, протестований наживо для цього релізу: ESX Legacy, ox_inventory, oxmysql і pma-voice. На іншому фреймворку виконайте перевірки першого запуску з розділу 7, перш ніж відкривати магазин.
4. Публічний магазин або бізнес, що належить гравцеві
Виконайте будь-яку з команд у консолі сервера:
phonehubmode public
phonehubmode businessВибраний режим зберігається після перезапусків. Публічний режим залишає звичайні покупки. Бізнес-режим застосовує постійний склад і бронювання до покупок біля прилавка PhoneHub. Бізнес-режим вимикає обмін старих телефонів біля прилавка. Те саме оформлення покупки в телефоні перевіряє ціни, оплату й видачу предметів.
Задайте назву роботи й ранги в phone/config/phonehub_business.lua:
| Ранг | Обов'язки за замовчуванням |
|---|---|
| 0 — стажер | Перегляд бізнес-термінала, приймання доставок, що надійшли, керування будівлею |
| 1 — продавець | Обов'язки стажера плюс замовлення в постачальника |
| 2 — технік | Замовлення/приймання та налаштована роль ремонтника |
| 3 — менеджер | Усі функції керування для персоналу плюс скасування/повернення коштів за очікувані замовлення в постачальника |
Призначайте роботи звичайними адміністративними інструментами свого фреймворку. Відкрийте Services → My Work → PhoneHub → Staff and account на телефоні для керування компанією. Воно використовує підтримувані функції персоналу/організації вибраного фреймворку. Об'єднане видання також підтримує постійну власність гравця через покупку в грі на вкладці Business або через адміністраторську команду призначення, описану нижче. Усі ціни на власність вказано в ігровій валюті.
Для ESX з esx_addonaccount також імпортуйте zerodev_phonehub_mlo/setup/phonehub_esx_society.sql, перш ніж запускати ресурс рахунків, потім перезапустіть сервер. Це створює рахунок компанії society_phonehub з нульовим балансом, не замінюючи наявного балансу. Якщо ви перейменували роботу, змініть відповідно суфікс рахунку. Іншим банківським постачальникам потрібне їхнє звичайне налаштування рахунку компанії для налаштованої роботи. Перш ніж відкривати бізнес, перевірте невеликий внесок і зняття в Company.
Операційний бюджет — це окремий внутрішній журнал для закупівлі товару. Продажі поповнюють його; замовлення в постачальника списують із нього. Він не є автоматично банківським рахунком організації й не є готівковим балансом гравця, який можна зняти.
5. Замовлення в постачальника й доставка товару
Біля сервісної стійки натисніть E, щоб відкрити термінал PhoneHub, потім Stock. Оберіть продукт, конфігурацію й кількість. Сервер розраховує ціну постачальника й перевіряє ранг працівника, близькість та операційний бюджет.
Доставка за замовчуванням триває 120 секунд. Вона залишається в дорозі після перезапусків. Коли вона надійде, працівник обирає Receive delivery у терміналі. Значення за замовчуванням destination='stock' додає товар у журнал складу магазину, з якого бере оформлення покупки, незалежно від постачальника інвентаря покупця. Повторні запити на приймання не можуть додати ту саму поставку двічі. Менеджери можуть скасувати неприйняту поставку з одноразовим поверненням коштів у бюджет.
Конфігурація:
delivery = {
seconds = 120,
autoReceive = false,
destination = 'stock',
resource = '',
export = '',
}Для власного складу/схованки задайте destination='custom' і вкажіть серверний export. Він отримує (shipment, source) і має використовувати shipment.id як постійний ключ для усунення дублікатів. Повертайте true, лише коли кожен рядок успішно збережено. Налаштуйте відповідність предметів/SKU вашого інвентаря в цьому адаптері. Власна доставка не додає предмети ще й у внутрішній журнал продажів; явно підключіть свій процес продажу зі складу, щоб уникнути дублювання товару. Універсальний адаптер схованки не передбачено.
Сумнівна передача у зовнішню систему затримується для перевірки й ніколи не повторюється наосліп. Після перевірки інвентаря призначення використайте:
phonehubdelivery <shipment-id> delivered
phonehubdelivery <shipment-id> retryДля сумнівного бронювання під час оформлення покупки клієнтом перевірте записи оплати й інвентаря, перш ніж використовувати phonehubresolve <reservation-id> returned|delivered.
6. Керування магазином
Натисніть E біля пульта сервісного керування або постаменту керування на даху.
- Space: замки вхідних дверей і дверей на дах, освітлення магазину, екран у лаунжі, навіс тераси (автоматично під час дощу чи снігу або відкрито/закрито), обігрівачі чи вентиляція тераси, живлення тераси й 15-секундний тест спринклерів.
- Cameras: Entrance overview, Showroom overview і Service counter. Повернення до термінала закриває камеру; Escape — вихід.
- Stock і Business: замовлення в постачальника, доставки, виручка, журнал продажів і ремонтів та доступ команди.
Для керування будівлею потрібна робота PhoneHub або налаштований ACE для персоналу/адміністратора. Публічний доступ до керування терасою налаштовується окремо в systems_config.lua. Надавайте phonehub.admin лише своєму довіреному адміністраторському principal; ніколи — усім. Задайте phoneResource='phone' у конфігурації систем MLO.
Автоматичні двері використовують датчики близькості, коли не замкнені. Їхні рухомі стулки мають залишатися твердими, зокрема у відчиненому стані. Меблі, скло й освітлення — це авторські ресурси мапи; не кожен декоративний об'єкт має ігрову взаємодію.
7. Приймання після першого запуску
- Запустіть сервер і виконайте
phone:health. Переконайтеся, що фреймворк, інвентар, база даних і голосові постачальники ті, що очікувалися, і що немає відсутніх обов'язкових предметів. - Зайдіть як звичайно й відвідайте магазин. Пройдіть із тротуару крізь обидві пари вхідних дверей, вгору/вниз сходами й крізь вихід на дах із вимкненим noclip.
- Відкрийте й закрийте навіс. Його вісім панелей мають залишатися вирівняними в напрямних у кожному положенні. Окремо перевірте автоматичне закриття під час дощу/снігу.
- Відкрийте кожен вид відеоспостереження, перемкніться між ними й вийдіть. Сцена має бути видимою, а звичайний вигляд/фокус гравця має повернутися.
- Замкніть обидві групи дверей обліковим записом персоналу. Перевірте колізію з обох боків. Відімкніть і знову перевірте анімацію відкривання за наближенням.
- Перевірте денне/нічне освітлення, увімкнений/вимкнений екран, скло, вивіски, сидіння й усі краї. Пройдіться й під'їдьте до будівлі та від неї, щоб перевірити переходи стрімінгу.
- Купіть телефон/аксесуар у публічному режимі. У бізнес-режимі перевірте зменшення запасу на складі, замовлення працівником, надходження/приймання, нестачу коштів і несанкціонований доступ.
- Перезапустіть сервер і переконайтеся, що режим магазину, склад і очікувані доставки збереглися. Повторіть спробу дубльованого приймання/скасування; дублікатів товару чи повернення коштів не має з'явитися. Переконайтеся, що кілька гравців бачать однаковий стан магазину.
phonehubcheck у клієнтській консолі F8 повідомляє фактичне вирівнювання навісу; кожна панель має показувати вирівнювання близько 1. Це діагностика, а не доказ того, що візуальна якість чи колізії правильні. Автоматичні перевірки не можуть гарантувати кожен ракурс камери чи всі комбінації серверів.
8. Усунення несправностей і оновлення
Порт 30120 зайнятий: уже працює інший екземпляр сервера. Зупиніть його через txAdmin (або панель хостингу), а не запускайте другий FXServer.
Немає елементів керування: переконайтеся, що обидва ресурси запущено, їхні назви не змінено, а гравець стоїть біля пульта керування. Перевірте помилки в клієнтській F8 і на сервері.
Немає доступу персоналу: перевірте налаштовану роботу, числовий ранг, близькість до сервісної стійки та вибраного постачальника робіт. Публічний режим магазину не дає прав персоналу.
Залишається стара мапа/старий інтерфейс: видаліть дублікати ресурсів/рядків ensure. Повністю закрийте FiveM, зупиніть сервер, замініть файли, потім запустіть сервер і знову запустіть FiveM. Саме лише перепідключення може залишити застарілі ресурси, що стрімляться. Не перезавантажуйте MLO на льоту, поки клієнт підключений, навіть далеко від будівлі.
Відкат: зупиніть ці ресурси, відновіть резервні копії папок ресурсів і конфігурації, потім перезапустіть через свій наявний txAdmin. Зберігайте базу даних/сховище KVP, якщо тільки ви свідомо не відновлюєте узгоджену резервну копію даних.
Зберігайте надані хеші релізу (SHA256.json) для звернень у підтримку.
PhoneHub OS і власність
Config.PhoneHubOS у phone/config/phonehub_business.lua керує цим виданням. ownership='both' дозволяє покупку в грі та призначення адміністратором. Задайте 'admin' або 'purchase', щоб дозволити лише один шлях. purchasePrice — сума в ігровій валюті. Адміністратори використовують phonehubowner <online player id> з консолі сервера або з ACE phonehub.admin. Призначення заблоковане, поки очікується оплата покупки. Власник зберігається за ідентифікатором персонажа у фреймворку, а не за тимчасовим номером source гравця. Власність активує наявну систему постійного складу й операційного бюджету.
Власники додають персонал чи менеджерів поблизу на вкладці Business. Ці незалежні ролі працюють через міст ідентичності фреймворку; вони не змінюють основну роботу гравця. Наявні ролі роботи PhoneHub і налаштований адміністративний доступ працюють, як і раніше. За замовчуванням менеджери можуть замовляти товар, а персонал — приймати поставки, що надійшли. Товар залишається зарезервованим, доки покупку чи доставку від постачальника не підтверджено.
service='hybrid' дозволяє і оформлення з допомогою персоналу, і самообслуговування для покупок і ремонтів. 'self' дозволяє пряме обслуговування; 'staff' вимагає пропозиції від персоналу, схваленої клієнтом, у цьому магазині. Самостійний продукт зберігає свою наявну систему покупок.
Підійдіть до кіоску в залі й натисніть E. Вкладка Shop завантажує справжню захищену модель Pulse з обертанням перетягуванням, оглядом спереду/ззаду, зумом і вибраним оздобленням. Ціну надає сервер телефона. Оплата потребує підтвердження й використовує налаштовані інвентар, гроші та видачу телефона в коробці. Тайм-аут не доводить, що списання не відбулося; перш ніж пробувати знову, перевірте інвентар і журнал платежів.
Клієнти просять допомоги з покупкою чи ремонтом на вкладці Help і отримують номер у черзі. Персонал обирає клієнта поблизу на вкладці Counter і готує пропозицію; схвалити й оплатити її може лише цей клієнт. Обидва мають залишатися в тому самому магазині в тому самому routing bucket. Схвалення ремонту прив'язане до вибраного унікального пристрою та його вказаної ціни. Зміна пристрою робить його недійсним.
Для ремонтів із допомогою персоналу технік відкриває термінал біля вільного ремонтного столу, готує пропозицію ремонту для клієнта й залишається там до її прийняття. Стіл резервується до оплати. Успішний оплачений ремонт запускає послідовність збирання з цим гравцем як техніком; при самообслуговуванні працює технік магазину. Ремонтом пристрою керує рушій телефона, і він відновлює оплачену роботу після перерваної сесії сервера. Клієнтські пропи ніколи не створюють і не замінюють телефон в інвентарі.
Вкладка Space біля пультів керування на даху та біля прилавка керує навісом, кліматом, замками, освітленням і екраном. Геометрія, захист від погоди, підлога й сидіння з готового MLO зберігаються.