ai-hud dla deweloperów
Eksporty ai-hud dla potrzeb (głód, pragnienie, stres) i jego ustawień HUD oraz to, co czyta z innych skryptów.
Potrzeby to liczby od 0 do 100 przechowywane w metadanych postaci (hunger, thirst, stress, klucze QB). Głód i pragnienie spadają (100 = pełne); stres rośnie (0 = spokój). ai-hud to jedyny skrypt, który je zapisuje.
Aby dodać stres ze swojego skryptu, użyj warstwy stresu AI Core (stress z biblioteki, eksport AddStress), która działa z każdym HUD-em. Efekty jedzenia i picia należą do przedmiotu: ustaw wartości Hunger, Thirst i Stress przedmiotu w panelu ai-inventory, a ai-hud zastosuje je przy użyciu przedmiotu.
Eksporty serwera
SetNeed i AddNeed są typowane jako AiHudServerExports w @aicore-fivem/shared (resourceExport("ai-hud") w TypeScript). GetNeeds nie jest typowany: wywołaj go przez callExport("ai-hud", "GetNeeds", source) z biblioteki.
GetNeeds
Odczytuje potrzeby wczytanego gracza.
Strona: serwer · Czeka: nie
GetNeeds(source: number): { hunger: number; thirst: number; stress: number } | nulllocal needs = exports['ai-hud']:GetNeeds(source) -- tabela lub nilParametry
Prop
Type
Zwraca
{ hunger, thirst, stress } | null: każda wartość 0-100 (z częścią dziesiętną). null, gdy gracz nie ma wczytanej postaci.
SetNeed
Ustawia jedną potrzebę na wartość.
Strona: serwer · Czeka: nie
SetNeed(source: number, need: "hunger" | "thirst" | "stress", value: number): voidexports['ai-hud']:SetNeed(source, 'hunger', 100)Parametry
Prop
Type
Zwraca
Nic. Nic nie robi, gdy gracz nie ma wczytanej postaci lub argument jest nieprawidłowy. Nowa wartość jest zapisywana w postaci i wysyłana do HUD-a gracza, gdy zmieni się jej zaokrąglona wartość.
AddNeed
Zmienia jedną potrzebę o podaną wartość.
Strona: serwer · Czeka: nie
AddNeed(source: number, need: "hunger" | "thirst" | "stress", delta: number): voidexports['ai-hud']:AddNeed(source, 'thirst', 25)Parametry
Prop
Type
Zwraca
Nic.
Przykład
import { callExport, resourceExport, onClientCallback } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const hud = resourceExport("ai-hud");
// Automat z napojami: trochę zaspokaja pragnienie, odmawia, gdy gracz nie jest spragniony.
onClientCallback("myscript:soda", (source) => {
const needs = callExport("ai-hud", "GetNeeds", source) as { thirst: number } | null;
if (!needs) return fail("NO_CHARACTER");
if (needs.thirst > 90) return fail("NOT_THIRSTY");
hud.AddNeed(source, "thirst", 20);
return { ok: true };
});Te eksporty działają tylko wtedy, gdy działa ai-hud. Jeśli właściciel zastąpi ai-hud innym HUD-em, twoje wywołania się nie powiodą. Warstwa stresu AI Core (AddStress) działa dalej z innymi HUD-ami.
Eksporty klienta
Typowane jako AiHudClientExports.
| Eksport | Co robi |
|---|---|
OpenSettings(): void | Otwiera ustawienia HUD gracza (to samo co /hud). Inne skrypty otwierają ustawienia dowolnego HUD-a przez OpenHudSettings() z AI Core. |
SetMinimapAlways(on: boolean): void | Własny przełącznik administratora (menu ai-admin): utrzymuje minimapę pieszo bez względu na ustawienie panelu, tylko dla tego gracza. |
GetMinimapAlways(): boolean | Czy ten przełącznik jest włączony. |
Co czyta ai-hud
| Źródło | Do czego |
|---|---|
Zdarzenie serwera AI Core itemUsed (source, name, status) | Dodaje wartości hunger, thirst, stress przedmiotu. |
Zdarzenie klienta AI Core CORE.clientHudVisibleEvent (visible) | Ukrywa HUD, gdy otwarte jest menu pełnoekranowe (hud.hide(reason) z biblioteki w dowolnym skrypcie). |
Podpowiedzi klawiszy AI Core (ai-core:client:keyHints, GetKeyHints()) | Lista klawiszy po lewej. |
State bag pojazdu fuel | Wskaźnik paliwa. |
State bag gracza proximity i zdarzenia pma-voice:setTalkingMode / pma-voice:radioActive | Zasięg głosu, mówienie, radio. |
seatbelt z biblioteki (warstwa pasów AI Core) | Ostrzeżenie o pasach. |
inventory.currentWeapon() z biblioteki | Pole broni. |
Zdarzenia
Własne zdarzenia ai-hud (resource/common/hud.ts) są wewnętrzne. Jedno jest otwarte tylko dla jego własnego klienta: ai-hud:stress (klient do serwera, od 1 do 5 punktów, najwyżej dwa na sekundę). Inne skrypty dodają stres na serwerze przez AI Core.