Pas bezpieczeństwa
Sprawdź, czy lokalny gracz ma zapięty pas i który skrypt odpowiada, niezależnie od skryptu pasów lub HUD na serwerze.
Pas bezpieczeństwa może pochodzić z ai-smallresources, z qbx_seatbelt albo z HUD z własnym pasem (tgiann-lumihud, tgiann-hudv2, tgiann-modern-hud). ai-core czyta ten, który działa; gdy działa kilka, własny pas HUD wygrywa z ai-smallresources. Skrypty, które potrzebują pasa (wyrzucenie przy zderzeniu, podpowiedź "zapnij pasy", ikona na HUD), pytają ai-core i działają z każdym z nich.
ai-core przekazuje zmiany pasa dalej jako klienckie zdarzenie ai-core:client:seatbelt (seatbelt.onChange liba), ze skryptów, które zgłaszają zmiany: ai-smallresources i qbx_seatbelt. Dla pasów HUD odczytuj stan, gdy go potrzebujesz.
GetSeatbelt
Mówi, czy lokalny gracz ma teraz zapięty pas. Odczytuj to, gdy jest potrzebne (zderzenie, akcja), nie w każdej klatce.
Strona: Klient · Czeka: nie
GetSeatbelt(): boolean | nulllocal worn = exports['ai-core']:GetSeatbelt() -- albo aiLib.seatbelt.isOn()Parametry
Brak.
Zwraca
boolean | null: true, gdy pas jest zapięty, false, gdy jest odpięty. null (nil w Lua), gdy nie działa żaden obsługiwany skrypt pasów albo działający nie daje jasnej odpowiedzi (na przykład poza pojazdem z pasem).
Przykład
import { cache, seatbelt } from "@aicore-fivem/lib/client";
// Wywoływane przez twoje wykrywanie zderzeń: wyrzuć kierowcę tylko bez pasa.
export function onHardCrash(): void {
if (cache.vehicle === false) return;
if (seatbelt.isOn() === true) return; // null = brak skryptu pasów: traktuj jak brak pasa
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
Zwraca nazwę zasobu skryptu pasów, który czyta ai-core.
Strona: Klient · Czeka: nie
GetSeatbeltProvider(): string | nulllocal provider = exports['ai-core']:GetSeatbeltProvider() -- albo aiLib.seatbelt.provider()Parametry
Brak.
Zwraca
string: nazwa zasobu ("ai-smallresources", "tgiann-lumihud"). null, gdy nie działa żaden z obsługiwanych skryptów.
Przykład
import { seatbelt } from "@aicore-fivem/lib/client";
// HUD, który rysuje ikonę pasa tylko wtedy, gdy jakiś skrypt dostarcza pas.
const hasBelt = seatbelt.provider() !== null;
SendNUIMessage({ action: "beltIcon", data: hasBelt });
if (hasBelt) seatbelt.onChange((worn) => SendNUIMessage({ action: "belt", data: worn }));