Ceinture de sécurité
Savoir si le joueur local porte une ceinture de sécurité et quel script répond, quel que soit le script de ceinture ou le HUD du serveur.
Une ceinture de sécurité peut venir d’ai-smallresources, de qbx_seatbelt, ou d’un HUD qui a sa propre ceinture (tgiann-lumihud, tgiann-hudv2, tgiann-modern-hud). ai-core lit celui qui tourne ; quand plusieurs tournent, la ceinture propre d’un HUD l’emporte sur ai-smallresources. Les scripts qui ont besoin de la ceinture (une éjection lors d’un accident, une aide « attachez votre ceinture », une icône de HUD) interrogent ai-core et fonctionnent avec n’importe lequel d’entre eux.
ai-core transmet les changements de ceinture par l’événement client ai-core:client:seatbelt (seatbelt.onChange de la lib), depuis les scripts qui signalent les changements : ai-smallresources et qbx_seatbelt. Pour les ceintures des HUD, lisez l’état quand vous en avez besoin.
GetSeatbelt
Indique si le joueur local porte une ceinture de sécurité en ce moment. Lisez-le quand vous en avez besoin (un accident, une action), pas à chaque frame.
Côté : Client · Attend : non
GetSeatbelt(): boolean | nulllocal worn = exports['ai-core']:GetSeatbelt() -- ou aiLib.seatbelt.isOn()Paramètres
Aucun.
Retour
boolean | null : true quand la ceinture est attachée, false quand elle est détachée. null (nil en Lua) quand aucun script de ceinture pris en charge ne tourne, ou que celui en cours ne donne pas de réponse claire (par exemple hors d’un véhicule avec ceinture).
Exemple
import { cache, seatbelt } from "@aicore-fivem/lib/client";
// Appelé par votre détection d’accident : éjecter le conducteur seulement sans ceinture.
export function onHardCrash(): void {
if (cache.vehicle === false) return;
if (seatbelt.isOn() === true) return; // null = aucun script de ceinture : traiter comme sans ceinture
const [x, y, z] = GetEntityCoords(cache.ped, true);
SetEntityCoords(cache.ped, x, y, z + 1.0, false, false, false, false);
SetPedToRagdoll(cache.ped, 3000, 3000, 0, false, false, false);
}GetSeatbeltProvider
Renvoie le nom de ressource du script de ceinture que lit ai-core.
Côté : Client · Attend : non
GetSeatbeltProvider(): string | nulllocal provider = exports['ai-core']:GetSeatbeltProvider() -- ou aiLib.seatbelt.provider()Paramètres
Aucun.
Retour
string : le nom de ressource ("ai-smallresources", "tgiann-lumihud"). null quand aucun des scripts pris en charge ne tourne.
Exemple
import { seatbelt } from "@aicore-fivem/lib/client";
// Un HUD qui dessine une icône de ceinture seulement quand un script fournit une ceinture.
const hasBelt = seatbelt.provider() !== null;
SendNUIMessage({ action: "beltIcon", data: hasBelt });
if (hasBelt) seatbelt.onChange((worn) => SendNUIMessage({ action: "belt", data: worn }));