AI Core
Dokumentacja APIEksporty klienckie ai-core

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

Sygnatura
GetSeatbelt(): boolean | null
Lua
local 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

resource/client/crash.ts
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

Sygnatura
GetSeatbeltProvider(): string | null
Lua
local 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

resource/client/hud.ts
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 }));

Na tej stronie