ai-smallresources dla deweloperów
Eksporty klienta, zdarzenie pasa bezpieczeństwa, state bagi i metadane ai-smallresources.
Aby odczytać pas bezpieczeństwa lub gesty z własnego skryptu, używaj seatbelt.isOn() / seatbelt.onChange(fn) i gestures.isHandsUp() / gestures.isPointing() z biblioteki (klient; w Lua aiLib.seatbelt, aiLib.gestures). Przechodzą przez ai-core i działają z każdym działającym skryptem pasów lub emotek. Poniższe eksporty to to, co czyta ai-core, gdy odpowiada ai-smallresources.
Wszystkie trzy eksporty są na kliencie, synchroniczne i czytają lokalnego gracza. GetSeatbelt jest typowany jako AiSmallResourcesClientExports w @aicore-fivem/shared; IsHandsUp i IsPointing nie są typowane (używaj callExport).
import { resourceExport, callExport } from "@aicore-fivem/lib/client";
const small = resourceExport("ai-smallresources");Eksporty klienta
GetSeatbelt
Czy lokalny gracz ma zapięty pas bezpieczeństwa.
Strona: klient · Czeka: nie
GetSeatbelt(): boolean | nulllocal worn = exports['ai-smallresources']:GetSeatbelt() -- true, false albo nilZwraca
true, gdy zapięty, false, gdy nie. null, gdy funkcja Seatbelt jest wyłączona w panelu albo gracz nie jest w pojeździe z pasem bezpieczeństwa.
Przykład
import { seatbelt } from "@aicore-fivem/lib/client";
// Ikona pasa w HUD-zie: odczytaj raz, potem śledź zmiany.
let worn = seatbelt.isOn();
seatbelt.onChange((value) => {
worn = value;
});Odczytuj to przy akcji lub zmianie pojazdu, nigdy w każdej klatce.
IsHandsUp
Czy lokalny gracz ma ręce w górze (gest X).
Strona: klient · Czeka: nie
IsHandsUp(): booleanlocal up = exports['ai-smallresources']:IsHandsUp()Zwraca
true, dopóki ręce są w górze, w przeciwnym razie false.
IsPointing
Czy lokalny gracz wskazuje palcem (gest B).
Strona: klient · Czeka: nie
IsPointing(): booleanlocal pointing = exports['ai-smallresources']:IsPointing()Zwraca
true podczas wskazywania, w przeciwnym razie false.
Zdarzenia
ai-smallresources:seatbelt
Wywoływane na lokalnym kliencie, gdy zmienia się pas bezpieczeństwa. Nazwa to SEATBELT_EVENT w @aicore-fivem/shared. ai-core przekazuje je dalej jako własne zdarzenie pasa bezpieczeństwa, którego nasłuchuje seatbelt.onChange z biblioteki; wybieraj właśnie to.
Strona: klient (zdarzenie lokalne)
Prop
Type
AddEventHandler('ai-smallresources:seatbelt', function(worn)
print('seat belt', worn)
end)Każde inne zdarzenie ai-smallresources jest wewnętrzne (jego klient i jego serwer).
State bagi i metadane
| Nazwa | Na | Typ | Znaczenie |
|---|---|---|---|
aiHold | gracz | string | false | Przedmiot reporterski, który trzyma gracz (newscam, newsmic, newsboom). |
aiCarrying | gracz | number | Gracz kogoś niesie (jego ID na serwerze). |
aiCarriedBy | gracz | number | Gracz jest przez kogoś niesiony (jego ID na serwerze). |
aiDiving | gracz | boolean | Gracz ma na sobie sprzęt do nurkowania. |
aiRealPlate | pojazd | string | Prawdziwa tablica, gdy założona jest fałszywa. |
aiMoored | pojazd | boolean | Łódź jest przycumowana. |
diveOxygen | metadane postaci (ai-core) | number | Sekundy powietrza pozostałe w butli do nurkowania. |
aiPlayerCount / aiMaxPlayers | GlobalState | number | Gracze online i sloty, ustawiane, gdy Discord Rich Presence jest włączone. |
// Serwer: prawdziwa tablica pojazdu, fałszywa czy nie.
export function realPlate(vehicle: number): string {
const real = Entity(vehicle).state.aiRealPlate as string | undefined;
return real ?? GetVehicleNumberPlateText(vehicle);
}Przedmioty do użycia
Rejestrowane przez warstwę ekwipunku ai-core, więc działają z każdym działającym ekwipunkiem: binoculars, firework1-firework4, newscam, newsmic, newsboom, fakeplate, notepad, note (metadane text i description), diving_gear, diving_fill.