Pulse Phone dokumentáció
Követelmények
2. Követelmények
| Mi | Kötelező? | Mi történik nélküle |
|---|---|---|
| OneSync bekapcsolva | Kötelező | Az indítási ellenőrzés OneSync ... off hibával elbukik. Add hozzá: set onesync on. |
| 2699-es vagy újabb game build | Kötelező | A készülékmodell nem streamelődik. Állítsd be: sv_enforceGameBuild. |
| oxmysql (vagy ghmattimysql, mysql-async) MariaDB 10.6+ vagy MySQL 8 alatt | Ajánlott | Ha nem fut SQL resource, az adatok a szerver key/value tárolójába kerülnek. Megmaradnak, de nem kérdezhetők le, és nagyjából 30 játékos felett adatbázist érdemes használni. |
| Egy voice script: pma-voice, mumble-voip, SaltyChat, TokoVOIP vagy YACA | Ajánlott | A hívás létrejön, de nincs hang. |
| screenshot-basic | Ajánlott (a szabványos resource, vagy a letöltésedben lévő könnyebb példány: lásd a gyors kezdés 6. lépését) | A kamera bekeretezi a képet, de nem tud fotót menteni. |
| Egy framework | Opcionális | A telefon standalone módban fut: a telefonok a játékos licencéhez kötődnek, és a telefon saját bankot tart fenn. |
Egy teljes server.cfg blokk:
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 ...Az adatbázis. Hogy a telefon melyik tárolót használja, arról minden indításkor dönt:
| A szervered | Hol tartja a telefon az adatait |
|---|---|
| Fut az oxmysql, a mysql-async vagy a ghmattimysql, és az adatbázis válaszol | Az adatbázisban. A táblák az első indításkor jönnek létre, az újak pedig minden frissítés után maguktól hozzáadódnak. |
| Egyáltalán nem fut SQL resource | Automatikusan a szerver key/value tárolójában. Újraindítások után is megmarad, de nem kérdezhető le. Nagyjából 30 játékos felett, vagy ha a konzol figyelmeztet, hogy a tároló mentése lassú, használj adatbázist. |
| Fut egy SQL resource, de az adatbázis 30 másodpercen belül nem válaszol | Semmi nem tárolódik, amíg nem válaszol. A konzol megmondja, miért, a telefon pedig 15–60 másodpercenként újrapróbálja, és magától befejezi az indulást, amint az adatbázis válaszol. |
Az utolsó esetben megmondhatod a telefonnak, hogy inkább a key/value tárolót használja a set phone_db_fallback "kvp" sorral a server.cfg fájlban; ezek az adatok a key/value tárolóban maradnak, és később sosem kerülnek át az adatbázisba, ezért tesztszerveren használd, ne egy hibás kapcsolat megkerülésére. Minden lekérdezésnek 10 másodperces határideje is van: egy lekérdezés, amelyre az adatbázis sosem válaszol, sikertelenként jelentődik annak az alkalmazásnak, amelyik kérte, és a konzol egyszer megnevezi azt a lekérdezést.
Támogatott adatbázisok: MariaDB 10.6 vagy újabb, illetve MySQL 8.0 vagy újabb. Minden kiadás phone.sql fájlját egy friss, MySQL 8 SQL módjában futó MariaDB adatbázison ellenőrizzük, mielőtt a csomag elkészül. A régebbi verziók (MariaDB 10.4 vagy 10.5, MySQL 5.7) nincsenek tesztelve és nem támogatottak, még ha esetleg működnek is.
A phone.sql csak azoknak a hostoknak szól, amelyek nem engedik, hogy egy resource táblákat hozzon létre. Nincs benne megnevezett collation: a szervered utf8mb4 alapértelmezése érvényes, ugyanúgy, mint amikor a telefon maga hozza létre a táblákat. Meglévő adatbázison is biztonságosan futtatható, és ha egy frissítés után az újat ismét lefuttatod, csak azt adja hozzá, ami hiányzik.
A sv_stateBagStrictMode bekapcsolva maradhat. Mindazt, amit más játékosok egy telefonból látnak (a tartási animációt, a kézben lévő készüléket, a kijelzőjét, a zseblámpát), a szerver állítja be az érték ellenőrzése után, sosem a játékos játéka.
Telefonváltás
Egy másik telefon táblái. Ha egy korábban használt telefon azonos nevű táblákat hagyott hátra (például phone_messages), azok az első indításkor old_<name> névre kerülnek át, hogy a Pulse Phone létrehozhassa a sajátjait. Semmi nem törlődik. Ha az adatbázis-felhasználód nem nevezhet át táblákat, az indítási ellenőrzés [FAIL] Database hibát mutat a táblanevekkel: adj ALTER jogot a felhasználónak, vagy nevezd át mindegyiket old_<name> névre az adatbázis-eszközödben (HeidiSQL, phpMyAdmin), majd indíts újra.