Skip to content

BUPA Sync Status

BUPA Sync Status

BUPA Sync Status — це система маркування тіла для медичного рольплею. Гравець вводить /status, і поверх його реального персонажа відкривається панель: заскриптована камера показує живої моделі педа з його одягом, волоссям, татуюваннями та аксесуарами, а клікабельні маркери регіонів проектуються з кісток педа кожного кадру, завдяки чому вони залишаються прикріпленими до тіла під час його обертання.

Натискання на регіон дозволяє написати коротку нотатку. Ця нотатка потім відображається у світі, плаваючи на тій самій частині вашого тіла для кожного гравця, який стоїть поруч із вами. Парамедики роблять те саме з пацієнтом за допомогою /status <id>: вони документують травму, вибирають тривалість дії документації, а нотатка блокується, щоб пацієнт не міг її зняти до закінчення терміну дії.

Відкрийте панель на собі за допомогою /status. Медики оглядають пацієнта за допомогою /status 12. /statusclear видаляє все, що вам дозволено знімати.

Key features

  • Живий попередній перегляд персонажа — без манекенів чи малювання ляльок. Камера показує власного педа гравця, AutoFrame вимірює його від голови до ніг, щоб кожна модель була правильно закадрована, а маркери розташовуються на реальних координатах кісток.
  • 16 регіонів тіла — голова, шия, груди, живіт, руки, передпліччя, кисті, стегна, коліна та стопи, кожен з яких прив'язаний до кістки педа GTA та може бути вимкнений у конфігурації.
  • Плаваючий текст у світі — інші гравці читають анотацію прямо на тілі, з кольоровим відтінком залежно від ступеня тяжкості, без щокадрового мережевого навантаження: анотації передаються через statebag гравця.
  • Медична документація — налаштовувані роботи (або ACE) можуть створювати анотації для іншого гравця в межах заданої відстані, вибирати тривалість із попередньо визначеного списку та блокувати цю нотатку від видалення.
  • Автоматичне закінчення терміну дії — сервер очищує прострочені анотації за таймером, і вони зникають усюди без необхідності ручного очищення з вашого боку.
  • Типи та ступені тяжкості — травма / пов'язка / нотатка, легка / помірна / тяжка, обидва типи визначені як звичайні списки конфігурації.
  • Захист від зловживань — ліміт на персонажа, одна анотація на регіон, обмеження довжини тексту, кулдаун на запис та перевірка відстані для кожної дії.
  • Discord-логування — кольорові ембеди для доданих, видалених та очищених анотацій із зазначенням того, хто і що написав, на кому та на який термін.
  • 10 мов завдяки системі локалізації ox_lib, з англійською як мовою за замовчуванням.

Frameworks

Фреймворк визначається автоматично за допомогою shared/bridge.lua — нічого налаштовувати не потрібно:

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

Фреймворк надає лише дві речі: стабільний ідентифікатор для кожного персонажа, який використовується як ключ бази даних, а також назву та ранг роботи гравця для перевірки прав медика.

How the data flows

  1. Запис надсилається на сервер через колбек ox_lib. Клієнту ніколи не довіряють — особистість, дозволи, ліміти, тривалість та санітаризація тексту обробляються виключно на боці сервера.
  2. Анотація зберігається в MySQL на основі ідентифікатора громадянина (citizen id) персонажа.
  3. Повний список персонажа додається до player statebag bupaStatuses.
  4. Кожен клієнт поблизу зчитує цей statebag і малює текст на відповідній кістці.

Dependencies

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

Таблиця бази даних створюється автоматично під час першого запуску — жодних SQL-файлів імпортувати не потрібно.