返回博客
Scripts1 分钟阅读

Agency-Seatbelt:为什么一个20kb的脚本对驾驶感受影响最大

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-seatbeltserver.cfg. 资源在下一次服务器重启时立即生效。无需数据库、框架或配置。

如果您想自定义快捷键绑定、工单集成或 HUD 指示器行为,请打开 config.lua. 默认设置对大多数服务器来说合理,许多服务器所有者运行 Agency-Seatbelt 数月从未修改配置。

配置选项

config.lua 涵盖交互和后果设置:

  • 安全带快捷键,玩家按下的快速系/解开按键。默认:B(与许多传统安全带脚本相同,便于肌肉记忆)。
  • 弹射阈值,车辆速度达到多少时,未系安全带的玩家在碰撞中被弹出。默认:50 km/h。
  • 弹射力,玩家弹射时被抛出的距离。数值越高效果越夸张;数值越低越真实。
  • 弹射时的损坏,玩家未系安全带弹射时移除生命值和护甲。可单独配置,独立于弹射力度。
  • 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 的服务器,感觉与没有这些的服务器根本不同,即使玩家无法准确说出原因。安全带是这份细微信号列表中的一项,传达“这个服务器注重细节”。

执法角度是该脚本产生最多活跃RP价值的地方。拥有Agency-Seatbelt的服务器上的警察角色获得了新的软性交通执法工具。以“我注意到你的乘客没有系安全带”开始的交通拦截,比大家都知道是虚构的借口更适合RP开场。这个细节为警察与平民互动提供了真实理由,开启了原本不会发生的场景。

当司机知道高速碰撞会产生真实后果时,追逐场景会发生显著变化。“我是否冒险撞车以甩掉他们?”的计算变得更有趣,因为其中一个结果可能是飞出挡风玻璃。这种紧张感正是让追逐不只是两辆车速度比较的原因。

车辆乘客会关注驾驶行为。知道鲁莽驾驶会有后果的乘客会要求司机减速、争论路线或下车,而不是冒险驾驶。这些是安全带创造的后果系统下的微观RP时刻,没有它们就不存在。

常见问题

弹射功能是否适用于所有车辆类型?

弹射适用于汽车、卡车和货车。摩托车和自行车使用不同(较低)的弹射力,因为物理表现不同。直升机和飞机默认禁用安全带检查,航空弹射带来更多麻烦场景而非RP价值。如服务器有特定航空RP需求,可在config.lua中启用航空检查。

能否对未系安全带行为开具交通罚单?

是的。Agency-Seatbelt触发一个服务器端事件。 agency-seatbelt:violation 带有玩家ID和车辆网络ID,当警察检查发现乘客未系安全带时触发。你的警察或罚款脚本监听此事件并应用服务器使用的罚款系统。安全带脚本负责检测;罚款脚本负责经济后果。

弹射机制是否与死亡屏幕脚本交互?

Agency-Seatbelt fires agency-seatbelt:onEjection 造成伤害之前。监听生命值变化事件的死亡屏幕脚本会自然捕捉伤害。若需更紧密集成(自定义伤害类型、现场犯罪数据),请直接监听弹出事件并在其中添加逻辑。

是否有办法在某些区域(如赛道)禁用弹射?

是的。使用 exports['agency-seatbelt']:DisableInZone(coords, radius) 来自任何服务器脚本。半径内所有玩家的弹射被抑制。在事件设置期间调用,并在之后移除区域。这防止安全带机制干扰赛车事件或其他预期车辆碰撞且无后果的场景。

需求

  • FiveM 服务器(任意框架或独立)
  • 免费,无需 Tebex 许可证
  • 无数据库依赖
  • 无外部资源依赖

准备好开始了吗?

在我们的商店获取脚本,或加入 Discord 获取支持、更新以及新功能预告。