Documentația Pulse Phone
Cerințe
2. Cerințe
| Ce | Obligatoriu? | Ce se întâmplă fără el |
|---|---|---|
| OneSync activat | Obligatoriu | Verificarea de la pornire eșuează cu OneSync ... off. Adaugă set onesync on. |
| Game build 2699 sau mai nou | Obligatoriu | Modelul telefonului nu se încarcă prin stream. Setează sv_enforceGameBuild. |
| oxmysql (sau ghmattimysql, mysql-async) pe MariaDB 10.6+ sau MySQL 8 | Recomandat | Fără nicio resursă SQL pornită, datele sunt păstrate în key/value store-ul serverului. Persistă, dar nu le poți interoga, iar peste aproximativ 30 de jucători ar trebui să folosești o bază de date. |
| Un script de voce: pma-voice, mumble-voip, SaltyChat, TokoVOIP sau YACA | Recomandat | Apelurile se conectează, dar nu au sunet. |
| screenshot-basic | Recomandat (resursa standard sau copia mai ușoară din descărcare: vezi ghidul rapid, pasul 6) | Camera încadrează, dar nu poate salva poze. |
| Un framework | Opțional | Telefonul rulează standalone: telefoanele sunt legate de licența jucătorului, iar telefonul are propria bancă. |
Un bloc server.cfg complet:
set onesync on
set sv_enforceGameBuild 2699 # or newer
ensure oxmysql
# ... your framework, then your inventory, banking, garage and housing scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone
# ... scripts that use the phone ...Baza de date. Ce stocare folosește telefonul se decide la fiecare pornire:
| Serverul tău | Unde își păstrează telefonul datele |
|---|---|
| oxmysql, mysql-async sau ghmattimysql pornit, iar baza de date răspunde | Baza de date. Tabelele sunt create la prima pornire, iar cele noi se adaugă singure după fiecare actualizare. |
| Nicio resursă SQL pornită | Key/value store-ul serverului, automat. Persistă după restarturi, dar nu poate fi interogat. Peste aproximativ 30 de jucători sau dacă consola avertizează că salvarea este lentă, folosește o bază de date. |
| O resursă SQL pornită, dar baza de date nu răspunde în 30 de secunde | Nu se stochează nimic până nu răspunde. Consola spune de ce, iar telefonul reîncearcă la fiecare 15 până la 60 de secunde și își termină singur pornirea după ce baza de date răspunde. |
În ultimul caz, poți spune telefonului să folosească în schimb key/value store-ul cu set phone_db_fallback "kvp" în server.cfg; acele date rămân în key/value store și nu sunt copiate niciodată mai târziu în baza de date, așa că folosește-l pe un server de test, nu ca ocolire pentru o conexiune stricată. Fiecare interogare are și un termen de 10 secunde: o interogare la care baza de date nu răspunde niciodată este raportată ca eșuată aplicației care a cerut-o, iar consola numește acea interogare o singură dată.
Baze de date suportate: MariaDB 10.6 sau mai nou ori MySQL 8.0 sau mai nou. Fișierul phone.sql al fiecărei versiuni este verificat pe o bază de date MariaDB nouă, rulând în SQL mode-ul din MySQL 8, înainte de construirea pachetului. Versiunile mai vechi (MariaDB 10.4 sau 10.5, MySQL 5.7) nu sunt testate și nu sunt suportate, chiar dacă s-ar putea să funcționeze.
phone.sql este doar pentru hosturile care nu permit unei resurse să creeze tabele. Nu numește nicio colație: se aplică utf8mb4-ul implicit al serverului tău, la fel ca atunci când telefonul își creează singur tabelele. Se poate rula în siguranță pe o bază de date existentă, iar rularea celui nou după o actualizare adaugă doar ce lipsește.
sv_stateBagStrictMode poate rămâne activat. Tot ce văd ceilalți jucători dintr-un telefon (animația de ținere, telefonul din mână, ecranul lui, lanterna) este setat de server după ce verifică valoarea, niciodată de jocul jucătorului.
Schimbarea telefonului
Tabelele altui telefon. Dacă un telefon folosit înainte a lăsat tabele cu aceleași nume (de exemplu phone_messages), acestea sunt redenumite în old_<name> la prima pornire, ca Pulse Phone să le poată crea pe ale lui. Nimic nu se șterge. Dacă utilizatorul bazei de date nu are voie să redenumească tabele, verificarea de la pornire afișează [FAIL] Database cu numele tabelelor: dă-i utilizatorului drepturi ALTER sau redenumește fiecare tabel în old_<name> din unealta ta de baze de date (HeidiSQL, phpMyAdmin) și repornește.