Documentația PhoneHub + Pulse

PhoneHub + Pulse Phone — ghid de instalare

Ediția integrată 1.4.6 · ZeroDev

Pentru PhoneHub + Pulse Phone 1.4.710 min de cititActualizat

Această ediție combină Pulse Phone, clădirea PhoneHub, PhoneHub OS-ul custom, kioskul 3D pentru telefoane, masa de reparații și sistemul de stoc/livrări pentru personal. Este un produs separat de ediția doar cu telefon. Instalează împreună telefonul și resursa magazinului. Nu rula două copii de phone sau două versiuni ale hărții PhoneHub.

1. Înainte de instalare

  • Fă backup la resursa de telefon existentă, la resursa de hartă, la configurație și la baza de date.
  • Folosește OneSync și GTA game build 2699 sau mai nou.
  • Pornește mai întâi baza de date, framework-ul, inventarul, resursa de voce și screenshot-basic.
  • Păstrează numele resurselor exact phone și zerodev_phonehub_mlo.
  • Scoate resursele PhoneHub anterioare din directorul de resurse activ și șterge liniile ensure duplicate. Păstrează backupurile în afara acelui director.
  • Ține dezactivată orice altă hartă care înlocuiește aceeași clădire de pe Portola Drive.
  • Închide complet FiveM și oprește serverul înainte să înlocuiești fișierele hărții. Pornește serverul, apoi deschide din nou FiveM. Deconectează clienții înainte să înlocuiești sau să repornești acest MLO încărcat prin stream. Un client conectat poate păstra harta chiar și când este departe de clădire; un hot-restart îl poate face să crape.

Acest pachet nu include o cheie de licență pentru server, framework, inventar sau scripturi third-party plătite. După procesarea în Keymaster, cheia serverului trebuie să aparțină contului care are dreptul la acest nou asset combinat. Dreptul asupra vechii ediții doar cu telefon nu acordă această ediție nouă.

2. Copiază resursele

Copiază folderele phone și zerodev_phonehub_mlo din această descărcare în directorul de resurse al serverului. Le poți pune în orice folder de categorie; păstrează exact numele folderelor.

screenshot-basic. Camera are nevoie ca screenshot-basic să fie pornit înainte de phone; resursa standard funcționează. Descărcarea include și o copie mai ușoară (desenează imaginea jocului doar cât timp se face o poză, cu același nume, aceleași exporturi și evenimente). Trecerea la ea este opțională: păstrează vechiul folder ca backup în afara resources, testează scripturile care fac capturi de ecran și pune înapoi vechiul folder dacă se schimbă ceva. Ghidul rapid Pulse Phone, pasul 6, conține pașii; fișierele modificate sunt listate în screenshot-basic/ZERODEV-CHANGES.md.

Adaugă aceste linii după dependențele existente în server.cfg:

server.cfg
ensure phone
ensure zerodev_phonehub_mlo

Nu copia un motor sau o interfață de telefon vechi în noul pachet. La un upgrade, mută setările de care ai nevoie în noile fișiere de configurare. Păstrează baza de date, stocarea KVP a resursei și folderele media și ownermedia. Noul phone/config/phonehub_business.lua include setări de livrare care lipsesc din ediția doar cu telefon.

Tejgheaua magazinului configurată este la -749.541, -216.952224, 36.256562, cu orientarea 210. Locația magazinului este deja configurată în ediția integrată curată. PhoneHub este singurul magazin de telefoane din această ediție: magazinul din Legion Square al pachetului doar cu telefon nu face parte din ea. Un config.lua păstrat din 1.4.4 sau mai vechi încă listează Legion Square; acea intrare este sărită, iar consola semnalează asta o dată. Apasă tasta PhoneHub (E implicit) sau folosește /phonehub la kioskul din magazin, la o masă de reparații, la tejgheaua de service sau la punctul de control de pe acoperiș ca să deschizi terminalul PhoneHub. Kioskul deschide Shop, iar o masă de reparații deschide Repair. Tasta poate fi schimbată din key bindings-urile FiveM. Comanda cere aceeași proximitate ca tasta; acțiunile personalului necesită în continuare permisiune pe server.

3. Framework, inventar și alte scripturi

Începe cu Config.Framework = 'auto' și setările automate de provider din phone/config/config.lua. Raportul de stare al telefonului de la pornire identifică providerii pe care i-a selectat efectiv. Verifică acel raport înainte de a face achiziții.

Framework Configurare
ESX Legacy Pornește es_extended și inventarul înaintea telefonului. Importă zerodev_phonehub_mlo/setup/phonehub_esx_jobs.sql; acesta adaugă gradele de job lipsă fără să atribuie vreun jucător.
QBCore Adaugă intrarea de job livrată zerodev_phonehub_mlo/setup/phonehub_qb_job.lua în tabelul de shared jobs al core-ului tău. Înregistrează itemele telefonului folosind ghidul de iteme al telefonului.
Qbox Înregistrează același job/aceleași grade prin configurația de joburi Qbox instalată sau prin API-ul suportat de înregistrare a joburilor. Folosește definițiile de iteme ox_inventory.
ox_core / vRP Configurează adaptorul de framework existent al telefonului și un job provider care returnează jobul PhoneHub și gradul numeric. Folosește accesul la clădire controlat prin ACE dacă sistemul tău de joburi nu le expune.
Standalone / custom Cumpărăturile publice sunt disponibile prin bridge-ul standalone/custom existent al telefonului. Accesul personalului necesită un job provider configurat sau un ACE de administrator de încredere.

Adaptoarele de inventar acoperă ox_inventory, funcțiile de inventar suportate ale framework-urilor și providerii third-party numiți, listați în phone/guides/integrations.md (sau în ghidul de integrare inclus în build-ul tău de telefon). Fiecare provider are nevoie de definițiile reale ale itemelor și de o versiune de API compatibilă. Itemele lipsă sunt raportate de verificările de stare ale telefonului; nu ascunde acele erori. Exemplele de configurare a itemelor vin în phone/config/items/.

Bridge-urile editabile ale telefonului acoperă vocea, conturile de society, banking-ul, garajele, housing-ul, dispeceratul și alte integrări. Păstrează exact un provider selectat pentru fiecare funcție. Fixează resursele redenumite prin Config.ResourceNames; folosește Config.Providers ca să selectezi explicit un provider. Exporturile arbitrare ale altor scripturi nu sunt compatibile automat: implementează bridge-ul custom documentat când scriptul tău nu este listat. Adaptoarele de framework și testele automate de contract nu înseamnă că fiecare versiune third-party a fost testată live.

Configurația testată live pentru această versiune: ESX Legacy, ox_inventory, oxmysql și pma-voice. Pe alt framework, rulează verificările de la prima rulare din secțiunea 7 înainte să deschizi magazinul.

4. Magazin public sau business deținut de jucători

Rulează oricare dintre comenzi în consola serverului:

phonehubmode public
phonehubmode business

Modul selectat se păstrează după restarturi. Modul public păstrează cumpărăturile normale. Modul business aplică stoc persistent și rezervări achizițiilor făcute la tejgheaua PhoneHub. Modul business dezactivează trade-in-urile la tejghea. Același checkout al telefonului validează prețurile, plățile și livrarea itemelor.

Setează numele jobului și gradele în phone/config/phonehub_business.lua:

Grad Atribuții implicite
0 — stagiar Vizualizează terminalul de business, recepționează livrările sosite, controalele clădirii
1 — vânzări Atribuțiile stagiarului plus comenzi la furnizori
2 — tehnician Comenzi/recepție și rolul de reparații configurat
3 — manager Toate controalele personalului plus anularea/rambursarea comenzilor de aprovizionare în așteptare

Atribuie joburile cu uneltele de administrare obișnuite ale framework-ului tău. Deschide Services → My Work → PhoneHub → Staff and account pe telefon pentru gestionarea firmei. Folosește funcțiile de personal/society suportate ale framework-ului selectat. Ediția combinată suportă și proprietatea durabilă a jucătorilor, printr-o achiziție în joc din tabul Business sau prin comanda de atribuire pentru administrator descrisă mai jos. Toate prețurile de proprietate sunt sume în moneda din joc.

Pentru ESX cu esx_addonaccount, importă și zerodev_phonehub_mlo/setup/phonehub_esx_society.sql înainte să pornești resursa de conturi, apoi repornește serverul. Asta creează contul de firmă society_phonehub cu sold zero, fără să înlocuiască un sold existent. Dacă ai redenumit jobul, actualizează sufixul contului corespunzător. Alți provideri de banking au nevoie de configurarea lor obișnuită a contului de firmă pentru jobul configurat. Verifică un depozit și o retragere mică în Company înainte să deschizi business-ul.

Bugetul operațional este un registru intern separat pentru cumpărarea stocului. Vânzările îl cresc; comenzile la furnizori scad din el. Nu este automat un cont bancar de society și nici un sold cash al jucătorului care poate fi retras.

5. Comenzi de la furnizori și livrarea stocului

La tejgheaua de service, apasă E ca să deschizi terminalul PhoneHub, apoi Stock. Alege un produs, o configurație și o cantitate. Serverul calculează oferta furnizorului și verifică gradul angajatului, proximitatea și bugetul operațional.

Livrarea implicită durează 120 de secunde. Rămâne în tranzit peste restarturi. După ce sosește, un angajat selectează Receive delivery la terminal. Valoarea implicită destination='stock' adaugă marfa în registrul de stoc al magazinului, consumat de checkout, independent de providerul de inventar al cumpărătorului. Cererile repetate de recepție nu pot adăuga de două ori același transport. Managerii pot anula un transport nerecepționat, cu o singură rambursare în buget.

Configurare:

Lua
delivery = {
    seconds = 120,
    autoReceive = false,
    destination = 'stock',
    resource = '',
    export = '',
}

Pentru un depozit/stash custom, setează destination='custom' și specifică un export de server. Acesta primește (shipment, source) și trebuie să folosească shipment.id ca cheie durabilă de deduplicare. Returnează true doar când fiecare linie a fost stocată cu succes. Configurează maparea item/SKU a inventarului tău în acel adaptor. Livrarea custom nu adaugă itemele și în registrul intern de vânzări; conectează explicit fluxul de vânzare al depozitului tău ca să eviți stocul duplicat. Nu se presupune existența unui adaptor universal de stash.

O predare externă incertă este reținută pentru verificare, niciodată reîncercată orbește. După ce verifici inventarul de destinație, folosește:

phonehubdelivery <shipment-id> delivered
phonehubdelivery <shipment-id> retry

Pentru o rezervare incertă la checkout-ul unui client, verifică înregistrările de plată și de inventar înainte să folosești phonehubresolve <reservation-id> returned|delivered.

6. Controalele magazinului

Apasă E lângă punctul de control de service sau lângă piedestalul de control de pe acoperiș.

  • Space: încuietorile ușii din față și ale ușii de pe acoperiș, luminile magazinului, display-ul din lounge, copertina terasei (automată la ploaie sau ninsoare ori deschisă/închisă), încălzitoarele sau ventilația terasei, alimentarea terasei și un test de sprinklere de 15 secunde.
  • Cameras: Entrance overview, Showroom overview și Service counter. Back to the terminal închide camera; Escape iese.
  • Stock și Business: comenzi la furnizori, livrări, încasări, registrul de vânzări și reparații și accesul echipei.

Controalele clădirii necesită jobul PhoneHub sau ACE-ul de personal/admin configurat. Accesul public la controalele terasei se configurează separat în systems_config.lua. Acordă phonehub.admin doar principalului tău de administrator de încredere; niciodată tuturor. Setează phoneResource='phone' în configurația sistemelor MLO.

Ușile automate folosesc senzori de proximitate când sunt descuiate. Foile lor mobile trebuie să rămână solide, inclusiv când sunt deschise. Mobilierul, sticla și iluminarea sunt asset-uri de hartă create manual; nu fiecare obiect decorativ are o interacțiune de gameplay.

7. Verificările de la prima rulare

  1. Pornește serverul și rulează phone:health. Confirmă providerii de framework, inventar, bază de date și voce așteptați și că nu lipsește niciun item obligatoriu.
  2. Intră normal pe server și vizitează magazinul. Mergi de pe trotuar prin ambele perechi de uși de la intrare, urcă/coboară scările și treci prin ușa de pe acoperiș, cu noclip dezactivat.
  3. Deschide și închide copertina. Cele opt panouri ale ei trebuie să rămână aliniate în șinele de ghidare în orice poziție. Testează separat închiderea automată la ploaie/ninsoare.
  4. Deschide fiecare vedere CCTV, comută între ele și ieși. Scena trebuie să fie vizibilă, iar vederea/focusul normal al jucătorului trebuie să revină.
  5. Încuie ambele grupuri de uși cu un cont de personal. Verifică coliziunea din ambele părți. Descuie și verifică din nou animația de deschidere la apropiere.
  6. Verifică iluminarea de zi/noapte, display-ul pornit/oprit, sticla, semnalistica, scaunele și toate marginile. Mergi pe jos și cu mașina spre clădire și dinspre ea ca să inspectezi tranzițiile de stream.
  7. Cumpără un telefon/accesoriu în modul public. În modul business, verifică scăderea stocului, comenzile angajaților, sosirea/recepția, fondurile insuficiente și accesul neautorizat.
  8. Repornește serverul și confirmă că modul magazinului, stocul și livrările în așteptare se păstrează. Repetă o încercare duplicată de recepție/anulare; nu ar trebui să apară marfă sau rambursări duplicate. Verifică dacă mai mulți jucători văd aceeași stare a magazinului.

phonehubcheck în consola F8 a clientului raportează alinierea efectivă a copertinei; fiecare panou ar trebui să raporteze o aliniere apropiată de 1. Este un diagnostic, nu o dovadă că aspectul vizual sau coliziunile sunt corecte. Verificările automate nu pot certifica fiecare unghi de cameră sau toate combinațiile de server.

8. Depanare și actualizări

Portul 30120 ocupat: rulează deja o altă instanță de server. Oprește-o din txAdmin (sau din panoul hostului), în loc să pornești un al doilea FXServer.

Lipsesc controalele: verifică dacă ambele resurse au pornit, dacă numele lor sunt neschimbate și dacă jucătorul este la punctul de control. Verifică erorile din F8-ul clientului și de pe server.

Fără acces pentru personal: verifică jobul configurat, gradul numeric, proximitatea față de tejgheaua de service și job provider-ul selectat. Modul de magazin public nu acordă drepturi de personal.

Harta veche/interfața veche persistă: șterge resursele/intrările ensure duplicate. Închide complet FiveM, oprește serverul, înlocuiește fișierele, apoi pornește serverul și deschide din nou FiveM. Doar o reconectare poate păstra asset-uri vechi încărcate prin stream. Nu face hot-reload la MLO cât timp un client este conectat, nici măcar departe de clădire.

Revenirea la versiunea anterioară: oprește aceste resurse, restaurează folderele de resurse și configurația din backup, apoi repornește cu txAdmin-ul existent. Păstrează stocarea bazei de date/KVP, dacă nu restaurezi intenționat un backup de date consistent.

Păstrează hash-urile de release livrate (SHA256.json) pentru cererile de suport.

PhoneHub OS și proprietatea

Config.PhoneHubOS din phone/config/phonehub_business.lua controlează această ediție. ownership='both' permite achiziția în joc și atribuirea de către administrator. Setează 'admin' sau 'purchase' ca să permiți o singură variantă. purchasePrice este o sumă în moneda din joc. Administratorii folosesc phonehubowner <online player id> din consola serverului sau cu ACE-ul phonehub.admin. Atribuirea este blocată cât timp o plată de achiziție este în așteptare. Un proprietar este stocat pe identificatorul de personaj al framework-ului, niciodată pe un număr de source temporar al jucătorului. Proprietatea activează sistemul existent de stoc durabil și buget operațional.

Proprietarii adaugă personal sau manageri din apropiere în tabul Business. Aceste roluri independente funcționează prin bridge-ul de identitate al framework-ului; nu schimbă jobul principal al unui jucător. Rolurile de job PhoneHub existente și accesul administrativ configurat funcționează în continuare. Implicit, managerii pot comanda aprovizionări, iar personalul poate recepționa transporturile sosite. Stocul rămâne rezervat până când o achiziție sau o livrare de la furnizor este confirmată.

service='hybrid' permite atât checkout-ul și reparațiile asistate, cât și cele self-service. 'self' permite serviciul direct; 'staff' cere o ofertă de la personal aprobată de client la acest magazin. Produsul standalone își păstrează OS-ul de cumpărături existent.

La kioskul din magazin, apropie-te și apasă E. Tabul Shop încarcă modelul Pulse protejat real, cu rotire prin tragere, inspectare față/spate, zoom și finisajul selectat. Prețul vine de la serverul telefonului. Plata necesită confirmare și folosește inventarul, banii și livrarea telefonului în cutie configurate. Un timeout nu dovedește că plata a eșuat; verifică inventarul și jurnalul de plăți înainte să încerci din nou.

Clienții cer ajutor pentru vânzare sau reparații în tabul Help și primesc un număr de ordine. Personalul alege un client din apropiere în tabul Counter și pregătește o ofertă; doar acel client o poate aproba și plăti. Amândoi trebuie să rămână în același magazin, în același routing bucket. Aprobarea unei reparații este legată de dispozitivul unic selectat și de prețul oferit. Schimbarea dispozitivului o anulează.

Pentru reparațiile asistate, tehnicianul deschide terminalul la o masă de reparații liberă, pregătește oferta de reparație pentru client și rămâne acolo până la acceptare. Masa este rezervată înainte de plată. O reparație plătită cu succes rulează secvența de asamblare cu acel jucător ca tehnician; varianta self-service folosește tehnicianul magazinului. Motorul telefonului se ocupă de repararea dispozitivului și recuperează lucrările plătite după o sesiune de server întreruptă. Props-urile de pe client nu creează și nu înlocuiesc niciodată un telefon din inventar.

Tabul Space, de la punctele de control de pe acoperiș și de la tejghea, controlează copertina, climatizarea, încuietorile, iluminarea și display-ul. Geometria, protecția la intemperii, pardoseala și locurile de stat din MLO-ul finalizat sunt păstrate.

Tradus din engleză. Dacă ceva de aici nu se potrivește cu pagina în engleză, pagina în engleză are dreptate. English