Назад к блогу
Scripts5 мин чтения

Agency-Seatbelt: Почему скрипт в 20кб оказывает самое большое влияние на ощущение вождения

Agency-Seatbelt занимает мало места в коде, но имеет огромное влияние на игровой процесс. Вот почему реалистичная механика ремней безопасности важнее, чем вы думаете.

Agency Scripts

Основатель и ведущий разработчик Agency Scripts

Маленькие скрипты, большой эффект

Agency-Seatbelt is one of the smallest scripts we ship, but feedback consistently ranks it among the most appreciated. There's a lesson there: RP is built from small mechanical touches that make the world feel consistent, not from monolithic feature dumps.

Вознаграждение за реализм

Когда игроки должны физически пристёгиваться ремнём перед поездкой, меняются три вещи. Погоня становится опаснее, так как пристёгивание во время погони занимает время. Полицейские получают новый повод для штрафа. Пассажиры испытывают реальные последствия халатности водителя. Каждое из этих изменений , маленький RP-хук, добавляющий глубину без увеличения когнитивной нагрузки.

Детали анимации и аудио

Мы потратили больше времени на анимацию пристегивания/отстегивания ремня, чем на основную логику. Двухсекундная анимация, тонкий звук щелчка и отдельный индикатор ремня на HUD , это те детали полировки, которые показывают игрокам, что "этот сервер относится к себе серьёзно". Когда всё остальное работает тихо, эти маленькие моменты выделяются.

Интеграция с скриптами транспортных средств

Agency-Seatbelt hooks cleanly into any vehicle damage script because we expose a simple client event, `agency-seatbelt:isBuckled`, that other scripts can query. Your tow truck script can refuse tow requests from players who just ejected through their windshield. Your hospital script can add realistic injury modifiers. The script is small enough to not care, but flexible enough to participate.

Бесплатно, потому что так должно быть

Agency-Seatbelt ships at €0 forever. A basic safety mechanic shouldn't be behind a paywall. Use it, fork it, modify it, we don't care. Every server using our free scripts is a server that might one day buy our premium ones, and we're playing the long game.

Установка & настройка

Agency-Seatbelt is free and has zero dependencies. Download from GitHub or the Tebex free tier, drop the folder into your resources directory, and add ensure agency-seatbelt в server.cfg. Ресурс начинает работать сразу после следующего перезапуска сервера. Не требуется база данных, фреймворк или настройка.

Если вы хотите настроить привязку клавиш, интеграцию тикетов или поведение индикатора HUD, откройте config.lua. Значения по умолчанию разумны для большинства серверов, многие владельцы серверов используют Agency-Seatbelt месяцами, не трогая конфигурацию.

Параметры конфигурации

Параметр config.lua охватывает настройки взаимодействия и последствий:

  • Привязка клавиши ремня безопасности , клавиша, которую игроки нажимают для пристёгивания и отстёгивания. По умолчанию: B (так же, как во многих старых скриптах ремней безопасности для привычной моторной памяти).
  • Порог выброса", скорость транспортного средства, при которой непристёгнутый игрок выбрасывается при столкновении. По умолчанию: 50 км/ч.
  • Сила выброса , насколько далеко игрок выбрасывается при эвакуации. Большие значения , более драматичные; меньшие , более реалистичные.
  • Урон при выбросе , здоровье и броня снимаются, если игрок выбрасывается без ремня безопасности. Настраивается отдельно от силы выброса.
  • Индикатор HUD", отображать ли маленький значок ремня на HUD при непристёгнутом состоянии в транспортном средстве. Требует Agency-Hud или экспортирует событие позиции для кастомных HUD.
  • Команда полиции , включить /checkbelt для полиции, чтобы проверить состояние ремней безопасности у пассажиров ближайшего автомобиля.
  • Контроль пассажиров", выбрасывать ли пассажиров, а не только водителей, при непристёгнутом состоянии. По умолчанию: включено.

Совместимость с фреймворками

Agency-Seatbelt has no framework dependencies. The ejection and damage logic uses native FiveM vehicle and ped manipulation functions that work identically on any server. The optional police command uses a simple permission check, implement Config.IsPolice(src) для любой кастомной системы работы или полностью отключите команду, если она не нужна.

Почему это важно для ролевой игры

Философия дизайна Agency-Seatbelt заключается в том, что самые мелкие механические детали складываются в характер сервера. Сервер с ремнями безопасности, сидением, кастомными уведомлениями и отполированным HUD ощущается принципиально иначе, чем без них, даже если игрок не может точно объяснить почему. Ремни безопасности , это одна из тех тихих деталей, которые говорят: "этот сервер заботится о мелочах."

Угол правоохранительных органов , это то место, где этот скрипт создает наибольшую ценность для активной ролевой игры. Персонажи полиции на серверах с Agency-Seatbelt получают новый мягкий инструмент для контроля дорожного движения. Остановка с фразой "Я заметил, что ваш пассажир не пристегнут" , лучшее начало ролевой игры, чем предлог, который все знают как вымышленный. Эта мелочь дает офицерам реалистичную причину для взаимодействия с гражданскими, что открывает сценарии, которые иначе не произошли бы.

Сцены погони меняются существенно, когда водители знают, что столкновения на высокой скорости имеют реальные последствия. Вопрос "рискну ли я столкновение, чтобы их потерять?" становится интереснее, когда один из исходов , полёт через лобовое стекло. Такое напряжение именно то, что делает погони больше, чем просто сравнение скорости двух автомобилей.

Пассажиры в автомобиле начинают реагировать на поведение водителя. Пассажир, который знает, что водитель понесёт последствия за опасное вождение, попросит снизить скорость, поспорит о маршруте или выйдет, чтобы не рисковать поездкой. Это микромоменты ролевой игры, которые просто не существуют без системы последствий, создаваемой ремнём безопасности.

Часто задаваемые вопросы

Работает ли выброс из машины во всех типах транспортных средств?

Выброс работает в автомобилях, грузовиках и фургонах. Мотоциклы и велосипеды используют отдельную (уменьшенную) силу выброса, так как физика ведёт себя иначе. Вертолёты и самолёты по умолчанию отключают проверки ремней безопасности, так как выброс из самолёта создаёт больше проблем, чем RP-ценности. Вы можете включить проверки для авиации в config.lua, если на вашем сервере есть специфические RP-требования к авиации.

Можем ли мы выписывать штрафы за нарушение ремней безопасности?

Да. Agency-Seatbelt вызывает серверное событие agency-seatbelt:violation с ID игрока и сетевым ID транспортного средства, когда полицейская проверка выявляет непристёгнутого пассажира. Ваш полицейский или штрафной скрипт слушает это событие и применяет систему штрафов, используемую на сервере. Скрипт ремня безопасности отвечает за обнаружение; ваш штрафной скрипт , за экономические последствия.

Взаимодействует ли механика выброса с скриптами deathscreen?

Agency-Seatbelt fires agency-seatbelt:onEjection до нанесения урона. Скрипты экрана смерти, которые отслеживают изменения здоровья, естественным образом фиксируют урон. Для более тесной интеграции (пользовательские типы травм, данные о преступлениях на месте) слушайте событие выброса напрямую и добавляйте свою логику там.

Можно ли отключить выброс из транспорта в определённых зонах (например, на гоночных трассах)?

Да. Используйте exports['agency-seatbelt']:DisableInZone(coords, radius) из любого серверного скрипта. Выбрасывание подавляется для всех игроков в этом радиусе. Вызывайте во время настройки события и удаляйте зону после. Это предотвращает вмешательство механики ремней безопасности в гоночные события или другие сценарии, где ожидаются аварии без последствий.

Требования

  • Сервер FiveM (любой фреймворк или standalone)
  • Бесплатно, лицензия Tebex не требуется
  • Нет зависимости от базы данных
  • Нет внешних зависимостей ресурсов

Готовы начать?

Возьмите скрипты в нашем магазине или заходите в Discord за поддержкой, обновлениями и анонсами.