Skip to content

BUPA Sync Status

BUPA Sync Status

BUPA Sync Status 是一个用于医疗角色扮演的身体批注系统。玩家输入 /status 即可在他们的真实角色上方打开一个面板 —— 脚本化的相机会拍摄包含其服装、发型、纹理和道具的实时模型,可点击的区域标记会在每一帧从模型的骨骼投影出来,因此当身体转身时,标记会完美附着在身体上。

点击某个区域即可写下一条简短的备注。该备注随后会以 3D 浮动文字的形式显示在你的身体对应部位上,周围的所有玩家都能看到。医护人员可以通过 /status <id> 对患者执行相同操作:他们记录伤情,选择记录持续的时间,并且该备注会被锁定,防止患者在过期前将其撕掉。

使用 /status 在自己身上打开面板。医护人员使用 /status 12 检查患者。/statusclear 会清除所有你可以移除的内容。

Key features

  • 实时角色预览 — 无需假人,也不绘制玩偶。相机会框选玩家自己的模型,AutoFrame 会从头到脚对其进行测量,确保每个模型都被正确框选,且标记位于真实的骨骼坐标上。
  • 16 个身体部位 — 头部、颈部、胸部、腹部、手臂、前臂、手部、大腿、膝盖和脚部,每个部位都绑定到 GTA 模型骨骼,并且都可以在配置中移除。
  • 世界内浮动文字 — 其他玩家可以直接在身体上看到批注内容,根据严重程度显示不同颜色,且无需每帧进行网络同步:批注通过 player statebag 进行传输。
  • 医护人员记录 — 可配置的工作(或 ACE 权限)允许在设定距离内批注其他玩家,从预设列表中选择持续时间,并锁定该备注使其无法被移除。
  • 自动过期 — 服务器会通过定时器清理过期的批注,它们会在所有地方消失,无需你手动清理。
  • 类型与严重程度 — 伤情 / 绷带 / 备注,轻度 / 中度 / 重度,两者均定义为简单的配置列表。
  • 防滥用限制 — 每个角色的上限、每个部位一个批注、文字长度限制、写入冷却时间以及针对每个操作的距离检查。
  • Discord 日志 — 针对添加、移除和清除的批注提供带颜色编码的嵌入消息,记录谁在谁身上写了什么、持续多长时间。
  • 10 种语言 — 通过 ox_lib 的本地化系统支持,英语作为默认备用语言。

Frameworks

框架由 shared/bridge.lua 自动检测 —— 无需任何设置:

Framework Detected resource
QBox qbx_core
QB-Core qb-core
ESX es_extended
Standalone 无 — 回退到 license: 标识符

框架仅提供两项内容:用作数据库键的稳定角色 ID,以及用于医护人员权限检查的玩家工作名称和等级。

How the data flows

  1. 写入操作通过 ox_lib 回调发送至服务器。客户端绝不被信任 —— 身份、权限、限制、持续时间和文字过滤均在服务器端决定。
  2. 批注根据角色的公民 ID 存储在 MySQL 中.
  3. 角色的完整列表被推送至 bupaStatuses player statebag 中。
  4. 每个附近的客户端读取该 statebag 并将文字绘制在对应的骨骼上。

Dependencies

Resource Required Purpose
ox_lib Yes 回调、通知和本地化系统
oxmysql Yes 按角色存储批注

数据库表会在首次启动时自动创建 —— 无需导入 SQL。