Pulse Phone 文档
运行要求
2. 运行要求
| 项目 | 是否必需? | 没有它会怎样 |
|---|---|---|
| 开启 OneSync | 必需 | 启动检查失败,提示 OneSync ... off。添加 set onesync on。 |
| 游戏版本 2699 或更新 | 必需 | 手机模型无法流式加载。设置 sv_enforceGameBuild。 |
| oxmysql(或 ghmattimysql、mysql-async),搭配 MariaDB 10.6+ 或 MySQL 8 | 建议 | 没有运行 SQL 资源时,数据保存在服务器的键值存储中。数据会持久保存,但无法查询;超过约 30 名玩家时应使用数据库。 |
| 一个语音脚本:pma-voice、mumble-voip、SaltyChat、TokoVOIP 或 YACA | 建议 | 通话能接通但没有声音。 |
| screenshot-basic | 建议(标准资源,或你下载中附带的轻量版本:见快速入门第 6 步) | 相机能取景,但无法保存照片。 |
| 一个框架 | 可选 | 手机以 standalone 模式运行:手机按玩家的 license 绑定,并使用手机自带的银行。 |
完整的 server.cfg 配置块:
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 ...数据库。手机使用哪种存储,在每次启动时决定:
| 你的服务器 | 手机把数据存在哪里 |
|---|---|
| oxmysql、mysql-async 或 ghmattimysql 在运行,且数据库有响应 | 数据库。首次启动时自动建表,每次更新后自动添加新表。 |
| 完全没有运行 SQL 资源 | 自动使用服务器的键值存储。重启后数据保留,但无法查询。超过约 30 名玩家,或控制台警告保存存储很慢时,请使用数据库。 |
| SQL 资源在运行,但数据库在 30 秒内没有响应 | 在数据库响应之前不保存任何数据。控制台会说明原因,手机每 15 到 60 秒重试一次,数据库一旦响应就会自行完成启动。 |
在最后一种情况下,你可以用 set phone_db_fallback "kvp"(写在 server.cfg 中)让手机改用键值存储;这些数据会留在键值存储中,之后永远不会复制到数据库,所以请只在测试服务器上使用,不要把它当作绕过连接故障的办法。每个查询还有 10 秒的时限:数据库一直没有响应的查询会向发起它的应用报告为失败,控制台会把该查询点名一次。
支持的数据库:MariaDB 10.6 或更新,或 MySQL 8.0 或更新。每个版本的 phone.sql 在构建安装包之前,都会在运行 MySQL 8 SQL 模式的全新 MariaDB 数据库上检查。更早的版本(MariaDB 10.4 或 10.5、MySQL 5.7)未经测试,也不受支持,即使可能可以运行。
phone.sql 只用于不允许资源建表的主机。其中没有指定排序规则:会使用你服务器的 utf8mb4 默认值,与手机自己建表时相同。在现有数据库上运行是安全的,更新后再次运行新版本只会添加缺失的部分。
sv_stateBagStrictMode 可以保持开启。其他玩家看到的关于手机的一切(持握动画、手中的手机、屏幕、手电筒)都由服务器在校验数值后设置,绝不由玩家的游戏客户端设置。
更换手机
其他手机的数据表。如果你之前用过的手机留下了同名表(例如 phone_messages),它们会在首次启动时被重命名为 old_<name>,以便 Pulse Phone 创建自己的表。不会删除任何数据。如果你的数据库用户无权重命名表,启动检查会显示 [FAIL] Database 及表名:请给该用户授予 ALTER 权限,或在数据库工具(HeidiSQL、phpMyAdmin)中把每张表重命名为 old_<name>,然后重启。