Agency-Phone: Смартфон, созданный специально для FiveM
Почему Agency-Phone обеспечивает самый погружающий опыт использования смартфона в игре FiveM, от архитектуры приложений до производительности под нагрузкой.
Agency Scripts
Основатель и ведущий разработчик Agency Scripts
Живая демонстрация
Попробуйте Agency Phone в браузере, загрузка не требуется.
Зачем создавать еще один FiveM Phone?
Мы создали Agency-Phone, потому что каждый телефон, который мы пробовали на наших серверах, либо выглядел отлично и работал плохо, либо работал хорошо и выглядел устаревшим. Рынок был полон компромиссов. Мы хотели что-то, что действительно ощущается как современный смартфон с момента открытия, и при этом использует 0.00ms ресурсов в режиме ожидания, когда лежит в кармане.
Интерфейс, который не похож на FiveM
Большинство телефонов FiveM выдают своё происхождение в течение двух секунд после открытия. Шрифты выглядят немного не так, анимации дерганые, домашний экран кажется заглушкой. Agency-Phone создан людьми, которые ежедневно пользуются настоящими смартфонами. Каждый элемент, от часов на экране блокировки до физики пружин в меню приложений, был доработан до тех пор, пока не перестал ощущаться как скрипт и не стал похож на настоящий телефон.
Архитектура приложения
Под капотом Agency-Phone использует систему ленивой загрузки приложений. Приложения инициализируют свой UI только при фактическом открытии, что поддерживает стабильное использование памяти даже при добавлении новых приложений. Событийная шина между клиентским Lua и слоем NUI имеет дебаунс, чтобы быстрые действия пользователя не перегружали игру пиками resmon. Это тот вид инженерной работы, который никто не видит, но от которого выигрывают все, когда на сервере одновременно 128 игроков.
По умолчанию независим от фреймворков
Agency-Phone ships with adapters for QBCore and ESX but the core is framework-independent. If you run a standalone server with your own player data layer, you can wire it up in an afternoon by implementing four lookup functions. We refuse to ship scripts that lock you into one framework because frameworks churn, we've seen at least three waves of "this is the standard now" come and go in our time in the community.
Назначение телефона в RP
Телефон FiveM в конечном итоге является социальным инструментом. Игроки используют его для координации встреч, проведения сделок с наркотиками, отправки сообщений персонажу босса, прослушивания музыки через радио-приложение. Всё, что мы добавляем или убираем из Agency Phone, оценивается по вопросу: облегчает ли это социальное взаимодействие или делает его интереснее? Поэтому мы выпустили приложение галереи раньше напоминаний в календаре, а стандартное приложение сообщений имеет индикаторы набора текста раньше, чем функцию отложенной отправки. Сначала RP, потом список функций.
Установка & настройка
Agency-Phone requires oxmysql for contact, message, and call log persistence. Import phone.sql в вашу базу данных, скачайте ресурс с Tebex, поместите его в директорию ресурсов и добавьте ensure agency-phone в server.cfg. Автоматическое определение фреймворка для QBCore и ESX. Для standalone-настроек реализуйте четыре функции адаптера в config.lua, обычно это занимает час или два в зависимости от вашей пользовательской слоя данных игрока.
Игроки открывают телефон нажатием на настраиваемую клавишу (по умолчанию: M) или предметом в инвентаре. Оба метода поддерживаются одновременно, некоторые серверы используют клавиатурное сокращение, другие предпочитают иммерсивный подход с предметом, который можно уронить или украсть.
Параметры конфигурации
Параметр config.lua охватывает технические и игровые настройки:
- Клавиша телефона", клавиша для открытия/закрытия телефона. По умолчанию: M.",
- Телефон как предмет", переключить необходимость наличия предмета телефона в инвентаре. По умолчанию: отключено (только клавиша).
- Формат номера , как отображаются и автоматически генерируются номера телефонов для новых персонажей.
- Дальность звонка", максимальное физическое расстояние для звонков в зоне действия и вне зоны действия (голосовая почта). По умолчанию: неограниченно для звонков в рамках персонажа.",
- Интеграция Twitter/LifeInvader подключите Agency-LifeInvader, если установлено, для социального приложения.
- Интеграция радио-приложения настройте доступные радиопотоки для музыкального плеера.
- Банковское приложение подключите банковские системы QBCore, ESX или кастомный банковский обработчик.
- GPS приложение кастомные категории путевых точек для серверных локаций (больницы, полицейские участки, бизнесы).
- Маршрутизация уведомлений", какие внешние скрипты могут отправлять уведомления на телефон и как они отображаются.
Совместимость с фреймворками
Agency-Phone ships with QBCore and ESX adapters. The adapter covers money display, inventory item (if phone-as-item is enabled), job data for job-specific app visibility, and character name display. For standalone, the same four-function pattern applies. Once the adapter is written for one Agency script, subsequent scripts share the same functions.
Почему это важно для ролевой игры
Телефон , самый личный реквизит персонажа. Игроки взаимодействуют с ним каждый сеанс: звонят, отправляют сообщения, проверяют баланс в банке, смотрят карту. Когда это взаимодействие ощущается как настоящий телефон, RP-сессии с использованием телефона становятся более реалистичными. Сделка с наркотиками, согласованная через SMS-приложение Agency-Phone с подтверждениями прочтения и индикаторами набора, , это качественно другая (лучше) сцена, чем та же сделка через командный чат.
Функция социальной координации , самая важная роль телефона для RP. Большинство значимых RP-событий начинается с коммуникации: кто-то связывается, договаривается о встрече, предоставляет координаты, подтверждает время. Вся эта коммуникация становится более погружённой, когда происходит через каналы в персонаже, а не через Discord или OOC чат. Приложения звонков и SMS в Agency-Phone покрывают 95% этой потребности в социальной координации нативно.
Использование ресурсов в режиме ожидания 0.00ms , это не просто техническая заметка, это то, что делает телефон возможным как всегда открытый ресурс. Скрипты, которые потребляют 0.02ms в режиме ожидания на сервере с 128 игроками, в сумме создают нагрузку в 2.56ms на всю популяцию. Вклад Agency-Phone в использование ресурсов в режиме ожидания равен нулю. Это важно для производительности сервера так же, как и любой общий ресурс: пропорционально количеству игроков.
Галерея в версии 2 и внутриигровая возможность делать скриншоты создали неожиданный RP-сценарий: фотографирование улик от лица персонажа. Полицейские персонажи делают скриншоты мест преступлений камерой телефона и делятся ими во внутреннем чате департамента. Журналисты фотографируют события и публикуют их на LifeInvader. Камера превращает телефон из средства связи в инструмент документации с реальным RP-применением.
Часто задаваемые вопросы
Могут ли телефонные номера сохраняться после вайпов сервера?
Номера телефонов хранятся в oxmysql с привязкой к идентификатору персонажа. Пока идентификатор персонажа сохраняется после вайпа, номер сохраняется. Большинство вайпов сервера очищают прогресс персонажа, но сохраняют идентификаторы, поэтому номера обычно остаются. Для полных вайпов с сбросом идентификаторов доступен экспорт сохранения номеров, который сохраняет и восстанавливает номер персонажа отдельно от основного вайпа.
Может ли полиция отслеживать звонки и сообщения в реальном времени?
Да. Включите систему отслеживания в config.lua. Полицейские с необходимым флагом разрешения могут открыть панель отслеживания и искать по номеру. Активные источники вызовов отображаются на карте. Метаданные сообщений (время, пара номеров) сохраняются в таблице логов и доступны через Agency-Admin. Полное отслеживание содержимого сообщений по умолчанию отключено из соображений конфиденциальности, включайте его явно, если правила RP вашего сервера это поддерживают.
Как телефон обрабатывает звонки, когда игрок мертв или под стражей?
Настройте состояние смерти и состояние в наручниках в config.lua. Мертвые игроки могут быть настроены так, чтобы сразу попадать на голосовую почту, иметь отключенный телефон или разрешены только экстренные вызовы. Игроки в наручниках могут быть полностью заблокированы от использования телефона или ограничены только просмотром GPS (чтобы полиция видела, что они не вызывают подкрепление). Эти состояния определяются через экспортированные функции из ваших скриптов deathscreen и handcuff.
Какие радиостанции доступны в музыкальном приложении?
Стандартный список радиостанций включает восемь URL потоков общих жанров. Добавьте свои, добавив URL потоков в Config.RadioStations. Сервера часто добавляют собственную серверную радиостанцию, где персонал транслирует новости в роли. Нет DRM или интеграции со стриминговыми сервисами, любой общедоступный URL аудиопотока работает.
Требования
- Сервер FiveM (QBCore, ESX или standalone)
- oxmysql
- аккаунт cfx.re с действующей лицензией Agency-Phone
- Опционально: Agency-LifeInvader (для интеграции социального приложения)
- Опционально: Agency-Pad (для синхронизации данных между устройствами)