Skip to content

BUPA Sync Status

BUPA Sync Status

BUPA Sync Status — это система меток на теле для медицинского отыгрыша (roleplay). Игрок вводит команду /status, и поверх его настоящего персонажа открывается панель: скриптовая камера фиксирует живого педа со всей его одеждой, прической, татуировками и аксессуарами, а кликабельные маркеры областей проецируются прямо с костей педа в каждом кадре, благодаря чему они надежно привязаны к телу при любых поворотах.

Клик по области позволяет оставить короткую заметку. Эта заметка отображается в игровом мире, паря точно над соответствующей частью вашего тела для всех игроков поблизости. Парамедики делают то же самое с пациентом с помощью команды /status <id>: они фиксируют травму, выбирают длительность отображения заметки, после чего она блокируется, чтобы пациент не мог удалить ее до истечения срока.

Откройте панель для себя с помощью /status. Медики осматривают пациента через /status 12. Команда /statusclear очищает все, что вам разрешено удалить.

Key features

  • Предпросмотр персонажа в реальном времени — никаких манекенов или схематичных кукол. Камера захватывает собственного педа игрока, функция AutoFrame измеряет его от головы до ног для корремтного кадрирования любой модели, а маркеры размещаются на координатах реальных костей.
  • 16 зон тела — голова, шея, грудь, живот, руки, предплечья, кисти, бедра, колени и стопы; каждая привязана к определенной кости педа GTA и может быть отключена в конфигурации.
  • Плавающий текст в мире — другие игроки видят заметку прямо на теле, цвет которой зависит от степени тяжести. Без лишней сетевой нагрузки в каждом кадре: заметки передаются через player 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 вручную не требуется.