Documentazione di Pulse Phone
Requisiti
2. Requisiti
| Cosa | Obbligatorio? | Cosa succede senza |
|---|---|---|
| OneSync attivo | Obbligatorio | Il controllo all'avvio fallisce con OneSync ... off. Aggiungi set onesync on. |
| Game build 2699 o successiva | Obbligatorio | Il modello del telefono non viene caricato in streaming. Imposta sv_enforceGameBuild. |
| oxmysql (o ghmattimysql, mysql-async) su MariaDB 10.6+ o MySQL 8 | Consigliato | Senza una risorsa SQL attiva, i dati restano nel key/value store del server. Sono persistenti, ma non puoi interrogarli, e oltre i 30 giocatori circa dovresti usare un database. |
| Uno script voce: pma-voice, mumble-voip, SaltyChat, TokoVOIP o YACA | Consigliato | Le chiamate si collegano ma senza audio. |
| screenshot-basic | Consigliato (la risorsa standard, o la copia più leggera nel tuo download: vedi la guida rapida, passaggio 6) | La fotocamera inquadra ma non può salvare le foto. |
| Un framework | Facoltativo | Il telefono funziona in standalone: telefoni legati alla licenza del giocatore, e il telefono ha una sua banca. |
Un blocco server.cfg completo:
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 ...Il database. Quale storage usa il telefono viene deciso a ogni avvio:
| Il tuo server | Dove il telefono salva i dati |
|---|---|
| oxmysql, mysql-async o ghmattimysql attivo, e il database risponde | Il database. Le tabelle vengono create al primo avvio e quelle nuove si aggiungono da sole dopo ogni aggiornamento. |
| Nessuna risorsa SQL attiva | Il key/value store del server, automaticamente. È persistente tra un riavvio e l'altro ma non è interrogabile. Oltre i 30 giocatori circa, o se la console avvisa che il salvataggio dello store è lento, usa un database. |
| Una risorsa SQL attiva, ma il database non risponde entro 30 secondi | Non viene salvato nulla finché non risponde. La console dice perché, e il telefono riprova ogni 15-60 secondi e completa l'avvio da solo appena il database risponde. |
Nell'ultimo caso puoi dire al telefono di usare invece il key/value store con set phone_db_fallback "kvp" in server.cfg; quei dati restano nel key/value store e non vengono mai copiati nel database in seguito, quindi usalo su un server di test, non per aggirare una connessione rotta. Ogni query ha anche un limite di 10 secondi: una query a cui il database non risponde mai viene segnalata come fallita all'app che l'ha richiesta, e la console indica quella query una volta.
Database supportati: MariaDB 10.6 o successivo, oppure MySQL 8.0 o successivo. Il phone.sql di ogni release viene verificato su un database MariaDB nuovo con la SQL mode di MySQL 8 prima che il pacchetto venga creato. Le versioni più vecchie (MariaDB 10.4 o 10.5, MySQL 5.7) non sono testate né supportate, anche dove potrebbero funzionare.
phone.sql serve solo per gli host che non permettono a una risorsa di creare tabelle. Non indica nessuna collation: si applica il default utf8mb4 del tuo server, come quando è il telefono a creare le tabelle. Si può eseguire tranquillamente su un database esistente, e rieseguire quello nuovo dopo un aggiornamento aggiunge solo ciò che manca.
sv_stateBagStrictMode può restare attivo. Tutto ciò che gli altri giocatori vedono di un telefono (l'animazione con il telefono in mano, il telefono in mano, il suo schermo, la torcia) viene impostato dal server dopo aver verificato il valore, mai dal gioco del giocatore.
Cambiare telefono
Le tabelle di un altro telefono. Se un telefono che usavi prima ha lasciato tabelle con gli stessi nomi (per esempio phone_messages), vengono rinominate in old_<name> al primo avvio, così Pulse Phone può creare le sue. Non viene eliminato nulla. Se il tuo utente del database non può rinominare tabelle, il controllo all'avvio mostra [FAIL] Database con i nomi delle tabelle: dai all'utente i permessi ALTER, oppure rinomina ciascuna in old_<name> con il tuo strumento per database (HeidiSQL, phpMyAdmin) e riavvia.