Skip to content

BUPA Sync Status

BUPA Sync Status

BUPA Sync Status este un sistem de adnotări corporale pentru roleplay medical. Un jucător tastează /status și un panou se deschide deasupra personajului său real — o cameră scriptată încadrează ped-ul live cu hainele, părul, tatuajele și elementele sale, iar markere de regiune clicabile sunt proiectate de pe oasele ped-ului la fiecare cadru, astfel încât să rămână lipite de corp pe măsură ce acesta se rotește.

Faptul de a da click pe o regiune îți permite să scrii o scurtănotă. Acea notă este apoi afișată în lume, plutind exact pe acea parte a corpului tău, pentru fiecare jucător care stă lângă tine. Paramedicii fac același lucru unui pacient cu /status <id>: documentează rănirea, aleg cât timp durează documentația, iar nota este blocată astfel încât pacientul să nu o poată rupe înainte de expirare.

Deschide panoul pentru tine cu /status. Medicii examinează un pacient cu /status 12. /statusclear șterge tot ceea ce ai voie să elimini.

Key features

  • Previzualizare live a caracterului — fără manechin și fără desen de păpușă. Camera încadrează propriul ped al jucătorului, AutoFrame îl măsoară din cap până în picioare, astfel încât fiecare model să fie încadrat corect, iar markerele stau pe coordonate osoase reale.
  • 16 regiuni corporale — cap, gât, piept, stomac, brațe, antebrațe, mâini, coapse, genunchi și picioare, fiecare legată de un os de ped GTA și fiecare eliminabilă din config.
  • Text plutitor în lume — alții jucători citesc adnotarea direct pe corp, nuanțată în funcție de severitate, fără networking per-cadru: adnotările călătoresc printr-un statebag de jucător.
  • Documentație medicală — joburi configurabile (sau un ACE) pot adnota un alt jucător pe o distanță setată, potlege o durată dintr-o listă prestabilită și pot avea acea notă blocată împotriva eliminării.
  • Expirare automată — serverul curăță adnotările expirate pe baza unui cronometru și acestea dispar de peste tot, fără nicio acțiune de curățare din partea ta.
  • Tipuri și severități — rănire / bandaj / notă, minor / moderat / sever, ambele definite ca liste simple de configurare.
  • Limite anti-abuz — o limită per-caracter, o adnotare per regiune, o limită de lungime a textului, un cooldown de scriere și o verificare a distanței pentru fiecare acțiune.
  • Logare pe Discord — embed-uri codate în culori pentru adnotările adăugate, eliminate și șterse, specificând cine a scris ce, pe cine și pentru cât timp.
  • 10 limbi prin sistemul de locale al ox_lib, având limba engleză ca variantă de rezervă (fallback).

Frameworks

Framework-ul este detectat automat de shared/bridge.lua — nu există nimic de setat:

Framework Detected resource
QBox qbx_core
QB-Core qb-core
ESX es_extended
Standalone none — falls back to the license: identifier

Framework-ul furnizează doar două lucruri: un ID stabil per-caracter folosit ca cheie de bază de date și numele și gradul jobului jucătorului pentru verificarea permisiunilor de medic.

How the data flows

  1. O scriere ajunge la server printr-un callback ox_lib. Clientul nu este niciodată de încredere — identitatea, permisiunile, limitele, durata și sanitizarea textului sunt stabilite în întregime pe server.
  2. Adnotarea este stocată în MySQL în legătură cu citizen ID-ul caracterului.
  3. Lista completă a caracterului este trimisă în statebag-ul jucătorului bupaStatuses.
  4. Fiecare client din apropiere citește acel statebag și desenează textul pe osul corespunzător.

Dependencies

Resource Required Purpose
ox_lib Yes Callbacks, notifications and the locale system
oxmysql Yes Storing annotations per character

Tabelul bazei de date este creat automat la prima pornire — nu există niciun cod SQL de importat.