Dokumentacja PhoneHub + Pulse
PhoneHub + Pulse Phone — poradnik instalacji
Edycja zintegrowana 1.4.6 · ZeroDev
Ta edycja łączy Pulse Phone, budynek PhoneHub, własny system PhoneHub OS, kiosk 3D z telefonami, stanowisko naprawcze oraz system magazynu i dostaw dla pracowników. To osobny produkt względem edycji z samym telefonem. Zainstaluj telefon i resource sklepu razem. Nie uruchamiaj dwóch kopii phone ani dwóch wersji mapy PhoneHub.
1. Przed instalacją
- Zrób kopię zapasową obecnego resource'a telefonu, resource'a mapy, konfiguracji i bazy danych.
- Używaj OneSync i game buildu GTA 2699 lub nowszego.
- Najpierw uruchamiaj bazę danych, framework, ekwipunek, resource głosowy i screenshot-basic.
- Zostaw nazwy resource'ów dokładnie jako
phoneizerodev_phonehub_mlo. - Usuń poprzednie resource'y PhoneHub z aktywnego katalogu resources i usuń zduplikowane linie
ensure. Kopie zapasowe trzymaj poza tym katalogiem. - Każdą inną mapę zastępującą ten sam budynek przy Portola Drive trzymaj wyłączoną.
- Zamknij całkowicie FiveM i zatrzymaj serwer przed podmianą plików mapy. Uruchom serwer, a potem ponownie FiveM. Rozłącz klientów przed podmianą albo restartem tego streamowanego MLO. Połączony klient może trzymać mapę nawet z dala od budynku; restart na gorąco może crashować tego klienta.
Ta paczka nie zawiera klucza licencyjnego serwera, frameworka, ekwipunku ani płatnych skryptów zewnętrznych. Po przetworzeniu przez Keymaster klucz serwera musi należeć do konta, które ma uprawnienie do tego nowego połączonego assetu. Uprawnienie do starej edycji z samym telefonem nie daje tej nowej edycji.
2. Skopiuj resource'y
Skopiuj foldery phone i zerodev_phonehub_mlo z tego pobrania do katalogu resources na serwerze. Możesz je wrzucić do dowolnego folderu kategorii; zachowaj dokładnie nazwy folderów.
screenshot-basic. Aparat wymaga screenshot-basic uruchomionego przed phone; standardowy resource działa. Pobranie zawiera też lżejszą kopię (rysuje obraz gry tylko podczas robienia zdjęcia, z tą samą nazwą, eksportami i eventami). Przejście na nią jest opcjonalne: zachowaj stary folder jako kopię poza resources, przetestuj skrypty robiące zrzuty ekranu i przywróć stary folder, jeśli coś się zmieni. Kroki są w szybkim starcie Pulse Phone, krok 6; zmienione pliki są wymienione w screenshot-basic/ZERODEV-CHANGES.md.
Dodaj te linie po swoich obecnych zależnościach w server.cfg:
ensure phone
ensure zerodev_phonehub_mloNie kopiuj starego silnika telefonu ani UI do nowej paczki. Przy upgradzie przenieś potrzebne ustawienia do nowych plików konfiguracyjnych. Zachowaj bazę danych, magazyn KVP resource'a oraz katalogi media i ownermedia. Nowy phone/config/phonehub_business.lua zawiera ustawienia dostaw, których nie ma w edycji z samym telefonem.
Skonfigurowana lada sklepu to -749.541, -216.952224, 36.256562, heading 210. Lokalizacja sklepu jest już skonfigurowana w czystej edycji zintegrowanej. PhoneHub to jedyny sklep z telefonami w tej edycji: sklep na Legion Square z paczki z samym telefonem nie jest jej częścią. config.lua zachowany z 1.4.4 lub wcześniejszej dalej wymienia Legion Square; ten wpis jest pomijany, a konsola raz o tym informuje. Naciśnij klawisz PhoneHub (domyślnie E) albo użyj /phonehub przy kiosku na sali, stanowisku naprawczym, ladzie serwisowej albo punkcie sterowania na dachu, żeby otworzyć terminal PhoneHub. Kiosk otwiera Shop, a stanowisko naprawcze Repair. Klawisz można zmienić w przypisaniach klawiszy FiveM. Komenda wymaga tej samej odległości co klawisz; akcje pracowników dalej wymagają uprawnień serwera.
3. Framework, ekwipunek i inne skrypty
Zacznij od Config.Framework = 'auto' i automatycznych ustawień dostawców w phone/config/config.lua. Raport stanu przy starcie telefonu pokazuje, których dostawców faktycznie wybrał. Sprawdź ten raport, zanim zaczniesz robić zakupy.
| Framework | Konfiguracja |
|---|---|
| ESX Legacy | Uruchamiaj es_extended i ekwipunek przed phone. Zaimportuj zerodev_phonehub_mlo/setup/phonehub_esx_jobs.sql; dodaje brakujące stopnie pracy bez przypisywania gracza. |
| QBCore | Dodaj dołączony wpis pracy zerodev_phonehub_mlo/setup/phonehub_qb_job.lua do tabeli shared jobs swojego core'a. Zarejestruj przedmioty telefonu według poradnika przedmiotów telefonu. |
| Qbox | Zarejestruj tę samą pracę/stopnie przez zainstalowaną konfigurację prac Qbox albo obsługiwane API rejestracji prac. Używaj definicji przedmiotów ox_inventory. |
| ox_core / vRP | Skonfiguruj istniejący adapter frameworka w telefonie i dostawcę prac, który zwraca pracę PhoneHub i numeryczny stopień. Używaj dostępu do budynku kontrolowanego przez ACE, jeśli twój system prac ich nie udostępnia. |
| Standalone / własny | Zakupy publiczne są dostępne przez istniejący mostek standalone/własny telefonu. Dostęp dla pracowników wymaga skonfigurowanego dostawcy prac albo zaufanego ACE administratora. |
Adaptery ekwipunku obejmują ox_inventory, obsługiwane funkcje ekwipunku frameworków i wymienionych dostawców zewnętrznych z phone/guides/integrations.md (albo z poradnika integracji dołączonego do twojego builda telefonu). Każdy dostawca potrzebuje swoich prawdziwych definicji przedmiotów i zgodnej wersji API. Brakujące przedmioty są zgłaszane przez sprawdzenia stanu telefonu; nie wyciszaj tych błędów. Przykłady konfiguracji przedmiotów są w phone/config/items/.
Edytowalne mostki telefonu obejmują voice, konta society, bankowość, garaże, housing, dispatch i inne integracje. Trzymaj dokładnie jednego wybranego dostawcę na funkcję. Przypinaj resource'y ze zmienioną nazwą przez Config.ResourceNames; używaj Config.Providers, żeby jawnie wybrać dostawcę. Dowolne eksporty zewnętrzne nie są automatycznie zgodne: zaimplementuj udokumentowany własny mostek, gdy twojego skryptu nie ma na liście. Adaptery frameworków i automatyczne testy kontraktowe nie oznaczają, że każda wersja zewnętrznego skryptu została przetestowana na żywo.
Zestaw przetestowany na żywo dla tego wydania: ESX Legacy, ox_inventory, oxmysql i pma-voice. Na innym frameworku przeprowadź sprawdzenia pierwszego uruchomienia z sekcji 7 przed otwarciem sklepu.
4. Sklep publiczny albo biznes należący do gracza
Uruchom jedną z komend w konsoli serwera:
phonehubmode public
phonehubmode businessWybrany tryb zostaje po restartach. Tryb publiczny zachowuje zwykłe zakupy. Tryb biznesowy stosuje trwały magazyn i rezerwacje do zakupów robionych przy ladzie PhoneHub. Tryb biznesowy wyłącza odkup przy ladzie (trade-in). Ta sama kasa telefonu weryfikuje ceny, płatności i wydawanie przedmiotów.
Ustaw nazwę pracy i stopnie w phone/config/phonehub_business.lua:
| Stopień | Domyślne obowiązki |
|---|---|
| 0 — stażysta | Podgląd terminala firmowego, odbiór dostarczonych dostaw, sterowanie budynkiem |
| 1 — sprzedawca | Obowiązki stażysty plus zamawianie u dostawcy |
| 2 — technik | Zamawianie/odbiór i skonfigurowana rola naprawcza |
| 3 — manager | Wszystkie uprawnienia pracowników plus anulowanie/zwrot oczekujących zamówień |
Przypisuj prace zwykłymi narzędziami administracyjnymi swojego frameworka. Otwórz Services → My Work → PhoneHub → Staff and account w telefonie, żeby zarządzać firmą (Company). Używa obsługiwanych funkcji pracowników/society wybranego frameworka. Połączona edycja obsługuje też trwałą własność gracza przez zakup w grze w zakładce Business albo przez opisaną niżej komendę przypisania przez administratora. Wszystkie ceny własności to kwoty w walucie gry.
Dla ESX z esx_addonaccount zaimportuj też zerodev_phonehub_mlo/setup/phonehub_esx_society.sql przed uruchomieniem resource'a kont, a potem zrestartuj serwer. Tworzy to konto firmy society_phonehub z zerowym saldem, bez zastępowania istniejącego salda. Jeśli zmieniłeś nazwę pracy, zaktualizuj odpowiednio końcówkę nazwy konta. Inni dostawcy bankowości potrzebują swojej zwykłej konfiguracji konta firmy dla skonfigurowanej pracy. Przed otwarciem biznesu sprawdź małą wpłatę i wypłatę w Company.
Budżet operacyjny to osobna wewnętrzna księga zakupów towaru. Sprzedaż go zasila; zamówienia od dostawcy go zmniejszają. Nie jest automatycznie kontem bankowym society i nie jest saldem gotówki gracza do wypłacenia.
5. Zamówienia od dostawcy i dostawa towaru
Przy ladzie serwisowej naciśnij E, żeby otworzyć terminal PhoneHub, a potem Stock. Wybierz produkt, konfigurację i ilość. Serwer wylicza wycenę dostawcy i sprawdza stopień pracownika, odległość i budżet operacyjny.
Domyślna dostawa trwa 120 sekund. Pozostaje w drodze po restartach. Gdy dotrze, pracownik wybiera Receive delivery w terminalu. Domyślne destination='stock' dodaje towar do księgi magazynowej sklepu, z której korzysta kasa, niezależnie od dostawcy ekwipunku kupującego. Powtórne próby odbioru nie mogą dodać tej samej przesyłki dwa razy. Managerowie mogą anulować nieodebraną przesyłkę i jednorazowo odzyskać budżet.
Konfiguracja:
delivery = {
seconds = 120,
autoReceive = false,
destination = 'stock',
resource = '',
export = '',
}Dla własnego magazynu/stasha ustaw destination='custom' i podaj eksport serwerowy. Otrzymuje (shipment, source) i musi używać shipment.id jako trwałego klucza deduplikacji. Zwracaj true tylko wtedy, gdy każda pozycja zostanie zapisana poprawnie. Skonfiguruj w tym adapterze mapowanie przedmiotów/SKU swojego ekwipunku. Własna dostawa nie dodaje dodatkowo przedmiotów do wewnętrznej księgi sprzedaży; podłącz jawnie przepływ sprzedaży ze swojego magazynu, żeby uniknąć zdublowanego towaru. Nie zakładamy żadnego uniwersalnego adaptera stasha.
Niepewne przekazanie zewnętrzne jest wstrzymywane do weryfikacji, nigdy nie jest ponawiane na ślepo. Po sprawdzeniu docelowego ekwipunku użyj:
phonehubdelivery <shipment-id> delivered
phonehubdelivery <shipment-id> retryPrzy niepewnej rezerwacji przy kasie klienta sprawdź zapisy płatności i ekwipunku, zanim użyjesz phonehubresolve <reservation-id> returned|delivered.
6. Sterowanie sklepem
Naciśnij E przy punkcie sterowania obsługi albo przy pulpicie sterowania na dachu.
- Space: zamki drzwi frontowych i drzwi na dach, oświetlenie sklepu, ekran w lounge, zadaszenie tarasu (automatyczne przy deszczu albo śniegu, albo otwarte/zamknięte), grzejniki albo nawiew na tarasie, zasilanie tarasu i 15-sekundowy test zraszaczy.
- Cameras: Entrance overview, Showroom overview i Service counter. Powrót do terminala zamyka kamerę; Escape wychodzi.
- Stock i Business: zamówienia od dostawcy, dostawy, utarg, księga sprzedaży i napraw oraz dostęp zespołu.
Sterowanie budynkiem wymaga pracy PhoneHub albo skonfigurowanego ACE pracownika/admina. Publiczny dostęp do sterowania tarasem konfiguruje się osobno w systems_config.lua. Nadawaj phonehub.admin tylko zaufanemu principalowi administratora; nigdy wszystkim. Ustaw phoneResource='phone' w konfiguracji systemów MLO.
Automatyczne drzwi używają czujników zbliżeniowych, gdy są odblokowane. Ich ruchome skrzydła muszą mieć kolizję, także gdy są otwarte. Meble, szkło i oświetlenie to zaprojektowane assety mapy; nie każdy obiekt dekoracyjny ma interakcję w grze.
7. Odbiór przy pierwszym uruchomieniu
- Uruchom serwer i wpisz
phone:health. Potwierdź oczekiwanych dostawców frameworka, ekwipunku, bazy danych i voice oraz brak brakujących wymaganych przedmiotów. - Wejdź normalnie i odwiedź sklep. Przejdź z chodnika przez obie pary drzwi wejściowych, w górę/w dół po schodach i przez drzwi na dach, z wyłączonym noclipem.
- Otwórz i zamknij zadaszenie. Jego osiem paneli musi w każdej pozycji pozostawać wyrównanych w prowadnicach. Osobno przetestuj automatyczne zamykanie przy deszczu/śniegu.
- Otwórz każdy widok CCTV, przełączaj się między nimi i wyjdź. Scena musi być widoczna, a normalny widok/focus gracza musi wrócić.
- Zablokuj obie grupy drzwi kontem pracownika. Sprawdź kolizję z obu stron. Odblokuj i ponownie sprawdź animację otwierania na czujnik.
- Sprawdź oświetlenie dzienne/nocne, ekran wł./wył., szkło, oznakowanie, siedzenia i wszystkie krawędzie. Przejdź i przejedź w stronę budynku i od niego, żeby sprawdzić przejścia streamingu.
- Kup telefon/akcesorium w trybie publicznym. W trybie biznesowym sprawdź zmniejszanie stanu magazynu, zamawianie przez pracownika, dotarcie/odbiór, brak środków i nieautoryzowany dostęp.
- Zrestartuj serwer i potwierdź, że tryb sklepu, stan magazynu i oczekujące dostawy zostały zachowane. Powtórz próbę zdublowanego odbioru/anulowania; nie powinien pojawić się zdublowany towar ani zwrot. Sprawdź, czy kilku graczy widzi ten sam stan sklepu.
phonehubcheck w konsoli F8 klienta podaje faktyczne wyrównanie zadaszenia; każdy panel powinien zgłaszać wyrównanie bliskie 1. To diagnostyka, a nie dowód, że jakość wizualna albo kolizje są poprawne. Automatyczne sprawdzenia nie mogą potwierdzić każdego kąta kamery ani wszystkich kombinacji serwerów.
8. Rozwiązywanie problemów i aktualizacje
Port 30120 zajęty: działa już inna instancja serwera. Zatrzymaj ją przez swój txAdmin (albo panel hostingu) zamiast uruchamiać drugi FXServer.
Brak sterowania: sprawdź, czy oba resource'y wystartowały, czy ich nazwy są niezmienione i czy gracz jest przy punkcie sterowania. Sprawdź błędy w F8 klienta i na serwerze.
Brak dostępu dla pracowników: sprawdź skonfigurowaną pracę, numeryczny stopień, odległość od lady serwisowej i wybranego dostawcę prac. Tryb sklepu publicznego nie daje uprawnień pracownika.
Dalej widać starą mapę/stary interfejs: usuń zduplikowane resource'y/wpisy ensure. Zamknij całkowicie FiveM, zatrzymaj serwer, podmień pliki, potem uruchom serwer i ponownie FiveM. Samo ponowne połączenie może zostawić stare streamowane assety. Nie przeładowuj MLO na gorąco, gdy klient jest połączony, nawet daleko od budynku.
Powrót do poprzedniej wersji: zatrzymaj te resource'y, przywróć zapisane foldery resource'ów i konfigurację, a potem zrestartuj przez swój txAdmin. Zachowaj bazę danych/magazyn KVP, chyba że celowo przywracasz spójną kopię danych.
Zachowaj dołączone hashe wydania (SHA256.json) na potrzeby zgłoszeń do wsparcia.
PhoneHub OS i własność
Config.PhoneHubOS w phone/config/phonehub_business.lua steruje tą edycją. ownership='both' pozwala na zakup w grze i przypisanie przez administratora. Ustaw 'admin' albo 'purchase', żeby pozwolić tylko na jedną drogę. purchasePrice to kwota w walucie gry. Administratorzy używają phonehubowner <online player id> z konsoli serwera albo z ACE phonehub.admin. Przypisanie jest zablokowane, dopóki płatność za zakup jest w toku. Właściciel jest zapisywany przy identyfikatorze postaci we frameworku, nigdy przy tymczasowym numerze source gracza. Własność włącza istniejący trwały system magazynu i budżetu operacyjnego.
Właściciele dodają pracowników albo managerów w pobliżu w zakładce Business. Te niezależne role działają przez mostek tożsamości frameworka; nie zmieniają głównej pracy gracza. Istniejące role pracy PhoneHub i skonfigurowany dostęp administracyjny dalej działają. Domyślnie managerowie mogą zamawiać towar, a pracownicy odbierać dostarczone przesyłki. Towar pozostaje zarezerwowany, dopóki zakup albo dostawa od dostawcy nie zostanie potwierdzona.
service='hybrid' pozwala zarówno na obsługę z pomocą pracownika, jak i samoobsługową kasę i naprawy. 'self' pozwala na bezpośrednią obsługę; 'staff' wymaga oferty pracownika zaakceptowanej przez klienta w tym sklepie. Produkt z samym telefonem zachowuje swój dotychczasowy system zakupów.
Podejdź do kiosku na sali i naciśnij E. Zakładka Shop wczytuje prawdziwy chroniony model Pulse, z obracaniem przeciąganiem, oglądaniem przodu/tyłu, zoomem i wybranym wykończeniem. Cena pochodzi z serwera telefonu. Płatność wymaga potwierdzenia i używa skonfigurowanego ekwipunku, pieniędzy i wydania telefonu w pudełku. Timeout nie dowodzi nieudanego obciążenia; przed ponowną próbą sprawdź ekwipunek i dziennik płatności.
Klienci proszą o pomoc przy sprzedaży albo naprawie w zakładce Help i dostają numerek w kolejce. Pracownicy wybierają klienta w pobliżu w zakładce Counter i przygotowują ofertę; tylko ten klient może ją zaakceptować i zapłacić. Obaj muszą pozostać w tym samym sklepie, w tym samym routing buckecie. Akceptacja naprawy jest powiązana z wybranym unikalnym urządzeniem i jego wyceną. Zmiana urządzenia ją unieważnia.
Przy naprawach z pomocą technik otwiera terminal przy wolnym stanowisku naprawczym, przygotowuje ofertę naprawy dla klienta i zostaje tam do akceptacji. Stanowisko jest rezerwowane przed płatnością. Udana płatna naprawa odtwarza sekwencję montażu z tym graczem jako technikiem; samoobsługa używa technika sklepu. Silnik telefonu odpowiada za naprawę urządzenia i odzyskuje opłacone prace po przerwanej sesji serwera. Propy po stronie klienta nigdy nie tworzą ani nie zastępują telefonu w ekwipunku.
Zakładka Space, przy punktach sterowania na dachu i przy ladzie, steruje zadaszeniem, klimatem, zamkami, oświetleniem i ekranem. Geometria, ochrona przed pogodą, podłogi i siedzenia z ukończonego MLO są zachowane.