Skip to content

BUPA Sync Status

BUPA Sync Status

BUPA Sync Status es un sistema de anotaciones corporales para rol médico. Un jugador escribe /status y se abre un panel sobre su personaje real — una cámara con scripts encuadra al ped en vivo con su ropa, cabello, tatuajes y props, y se proyectan marcadores de regiones clickeables desde los huesos del ped en cada frame, por lo que se mantienen pegados al cuerpo mientras gira.

Al hacer clic en una región, puedes escribir una nota corta. Esa nota se dibuja luego en el mundo, flotando exactamente en esa parte de tu cuerpo, para cada jugador cerca de ti. Los paramédicos hacen lo mismo con un paciente usando /status <id>: documentan la lesión, eligen cuánto dura la documentación, y la nota queda bloqueada para que el paciente no pueda arrancarla antes de que expire.

Abre el panel en ti mismo con /status. Los médicos examinan a un paciente con /status 12. /statusclear borra todo lo que tengas permiso de quitar.

Key features

  • Vista previa del personaje en vivo — sin maniquíes ni dibujos de muñecos. La cámara encuadra al propio ped del jugador, AutoFrame lo mide de la cabeza a los pies para que cada modelo se encuadre correctamente, y los marcadores se sitúan en coordenadas de huesos reales.
  • 16 regiones corporales — cabeza, cuello, pecho, estómago, brazos, antebrazos, manos, muslos, rodillas y pies, cada una vinculada a un hueso de ped de GTA y cada una removible desde la configuración.
  • Texto flotante en el mundo — otros jugadores leen la anotación en el propio cuerpo, tintada según la gravedad, sin networking por frame: las anotaciones viajan a través de un player statebag.
  • Documentación médica — trabajos configurables (o un ACE) pueden anotar a otro jugador dentro de una distancia establecida, elegir una duración de una lista preestablecida y hacer que esa nota quede bloqueada contra la eliminación.
  • Expiración automática — el servidor limpia las anotaciones expiradas mediante un temporizador y desaparecen en todas partes sin necesidad de limpieza de tu parte.
  • Tipos y gravedades — lesión / vendaje / nota, menor / moderada / severa, ambos definidos como listas de configuración simples.
  • Límites anti-abuso — un límite por personaje, una anotación por región, un límite de longitud de texto, un cooldown de escritura y una comprobación de distancia en cada acción.
  • Registros de Discord — embeds codificados por colores para anotaciones añadidas, eliminadas y borradas, con quién escribió qué, a quién y por cuánto tiempo.
  • 10 idiomas a través del sistema de locales de ox_lib, con el inglés como idioma por defecto.

Frameworks

El framework se detecta automáticamente mediante shared/bridge.lua — no hay nada que configurar:

Framework Detected resource
QBox qbx_core
QB-Core qb-core
ESX es_extended
Standalone ninguno — utiliza el identificador license:

El framework proporciona solo dos cosas: un ID estable por personaje utilizado como clave de base de datos, y el nombre de trabajo y rango del jugador para la comprobación de permisos médicos.

How the data flows

  1. Una escritura va al servidor a través de un callback de ox_lib. Nunca se confía en el cliente — la identidad, los permisos, los límites, la duración y la sanitización del texto se deciden en el lado del servidor.
  2. La anotación se almacena en MySQL vinculada al citizen ID del personaje.
  3. La lista completa del personaje se envía al statebag de jugador bupaStatuses.
  4. Cada cliente cercano lee ese statebag y dibuja el texto en el hueso correspondiente.

Dependencies

Resource Required Purpose
ox_lib Callbacks, notificaciones y sistema de locales
oxmysql Almacenamiento de anotaciones por personaje

La tabla de la base de datos se crea automáticamente en el primer inicio — no hay SQL que importar.