Skip to content

BUPA Sync Status

BUPA Sync Status

BUPA Sync Status é um sistema de anotação corporal para roleplay médico. Um jogador digita /status e um painel se abre sobre o seu personagem real — uma câmera scriptada enquadra o ped ao vivo com suas roupas, cabelo, tatuagens e adereços, e marcadores de região clicáveis são projetados a partir dos ossos do ped a varje quadro, para que fiquem colados ao corpo conforme ele gira.

Clicar em uma região permite que você escreva uma nota curta. Essa nota é então exibida no mundo, flutuando exatamente nessa parte do seu corpo, para cada jogador próximo de você. Paramédicos fazem o mesmo em um paciente com /status <id>: eles documentam a lesão, escolhem quanto tempo a documentação dura, e a nota é travada para que o paciente não possa removê-la antes que expire.

Abra o painel em você mesmo com /status. Médicos examinam um paciente com /status 12. /statusclear limpa tudo o que você tem permissão para remover.

Key features

  • Live character preview — sem manequim e sem desenho de boneca. A câmera enquadra o próprio ped do jogador, AutoFrame o mede da cabeça aos pés para que cada modelo seja enquadrado corretamente, e os marcadores ficam em coordenadas ósseas reais.
  • 16 body regions — cabeça, pescoço, peito, estômago, braços, antebraços, mãos, coxas, joelhos e pés, cada um vinculado a um osso de ped do GTA e cada um removível na config.
  • Floating in-world text — outros jogadores leem a anotação no próprio corpo, colorida por gravidade, sem rede por quadro: as anotações viajam através de um statebag de jogador.
  • Medic documentation — empregos configuráveis (ou um ACE) podem anotar outro jogador dentro de uma distância definida, escolher uma duração de uma lista predefinida e ter essa nota travada contra remoção.
  • Automatic expiry — o servidor varre anotações expiradas em um temporizador e elas desaparecem em todos os lugares sem limpeza da sua parte.
  • Types and severities — lesão / bandagem / nota, menor / moderada / grave, ambos definidos como listas de configuração simples.
  • Anti-abuse limits — um limite por personagem, uma anotação por região, um limite de comprimento de texto, um cooldown de escrita e uma verificação de distância em cada ação.
  • Discord logging — embeds com código de cores para anotações adicionadas, removidas e limpas, com quem escreveu o quê, em quem, por quanto tempo.
  • 10 languages através do sistema de localidade do ox_lib, com o inglês como fallback.

Frameworks

O framework é detectado automaticamente por shared/bridge.lua — não há nada para configurar:

Framework Detected resource
QBox qbx_core
QB-Core qb-core
ESX es_extended
Standalone nenhum — usa o identificador license: como fallback

O framework fornece apenas duas coisas: um ID estável por personagem usado como chave do banco de dados, e o nome e grau do cargo do jogador para a verificação de permissão médica.

How the data flows

  1. Uma gravação vai para o servidor através de um callback do ox_lib. O cliente nunca é confiável — identidade, permissões, limites, duração e sanitização de texto são decididos no lado do servidor.
  2. A anotação é armazenada no MySQL vinculada ao citizen ID do personagem.
  3. A lista completa do personagem é enviada para o statebag de jogador bupaStatuses.
  4. Cada cliente próximo lê esse statebag e desenha o texto no osso correspondente.

Dependencies

Resource Required Purpose
ox_lib Yes Callbacks, notificações e o sistema de localidade
oxmysql Yes Armazenamento de anotações por personagem

A tabela do banco de dados é criada automaticamente na primeira inicialização — não há SQL para importar.