返回博客
Scripts1 分钟阅读

Agency-Seatbelt:为何仅20kb的脚本对驾驶体验影响最大

Agency-Seatbelt代码虽小,对游戏体验的影响却很大。逼真的安全带机制比你想象的更重要。

Agency Scripts

Agency Scripts 创始人兼首席开发者

小脚本,大影响

Agency-Seatbelt 是我们发布的最小型脚本之一,但反馈始终将它列为最受欢迎的脚本之一。这说明了一点:RP 由细微的机制构成,它们让世界显得连贯,而不是依赖庞大的功能堆砌。

现实主义回报

当玩家必须在驾驶前系安全带时,三点发生变化。追车时序变得更危险,因为追逐中途系带会耗时。警察获得新的罚单理由。乘客因司机疏忽承担真实后果。每一点都是微小的 RP 钩子,增加深度而不增加认知负担。

动画和音频细节

我们在扣安全带/解开动画上花费的时间超过核心逻辑。两秒的动画、细微的点击声和HUD上明显的安全带指示灯,这些细节向玩家传达“这个服务器很认真”的信号。当其他一切都默默运行时,这些小细节尤为突出。

与车辆脚本集成

Agency-Seatbelt 通过一个简单的客户端事件 `agency-seatbelt:isBuckled`,可以轻松接入任何车辆损坏脚本,其他脚本可以查询此事件。你的拖车脚本可以拒绝拖走刚从挡风玻璃飞出去的玩家。你的医院脚本可以加入逼真的伤情修正。这个脚本足够小巧,不会造成负担,同时也足够灵活,可以参与其他系统。

免费,因为它应该是免费的

Agency-Seatbelt 永久免费。基本的安全机制不应该设置付费门槛。尽管使用、分叉或修改,我们都不介意。每一台使用我们免费脚本的服务器,未来都有可能购买我们的付费脚本,我们着眼于长远。

安装与设置

Agency-Seatbelt 免费且零依赖。可从 GitHub 或 Tebex 免费版下载,将文件夹放入 resources 目录,然后添加 ensure agency-seatbelt 到 server.cfg. 资源在下一次服务器重启时立即生效。无需数据库、框架或配置。

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

配置选项

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

  • 安全带快捷键,玩家按下的快速系/解开按键。默认:B(与许多传统安全带脚本相同,便于肌肉记忆)。
  • 弹射阈值,车辆速度达到多少时,未系安全带的玩家在碰撞中被弹出。默认:50 km/h。
  • 弹射力,玩家弹射时被抛出的距离。数值越高效果越夸张;数值越低越真实。
  • 弹射时的损坏,玩家未系安全带弹射时移除生命值和护甲。可单独配置,独立于弹射力度。
  • HUD 指示器,是否在HUD上显示一个小安全带图标,当玩家在车内未系安全带时显示。需要Agency-Hud或导出位置事件供自定义HUD使用。
  • 警察指挥,启用 /checkbelt 用于警察检查附近车辆乘员的安全带状态。
  • 乘客执法,是否乘客和驾驶员在未系安全带时都会被弹出。默认:启用。

框架兼容性

Agency-Seatbelt 不依赖任何框架。弹出车外和伤害逻辑使用 FiveM 原生车辆及 ped 操作函数,在任何服务器上的表现都相同。可选的警察指令使用简单的权限检查,请实现 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 获取支持、更新以及新功能预告。