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
- Запис надсилається на сервер через колбек
ox_lib. Клієнту ніколи не довіряють — особистість, дозволи, ліміти, тривалість та санітаризація тексту обробляються виключно на боці сервера. - Анотація зберігається в MySQL на основі ідентифікатора громадянина (citizen id) персонажа.
- Повний список персонажа додається до player statebag
bupaStatuses. - Кожен клієнт поблизу зчитує цей statebag і малює текст на відповідній кістці.
Dependencies
| Resource | Required | Purpose |
|---|---|---|
ox_lib |
Yes | Callbacks, notifications and the locale system |
oxmysql |
Yes | Storing annotations per character |
Таблиця бази даних створюється автоматично під час першого запуску — жодних SQL-файлів імпортувати не потрібно.