AI Core
Podstawyai-hud

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

Sygnatura
GetNeeds(source: number): { hunger: number; thirst: number; stress: number } | null
Lua
local needs = exports['ai-hud']:GetNeeds(source) -- tabela lub nil

Parametry

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

Sygnatura
SetNeed(source: number, need: "hunger" | "thirst" | "stress", value: number): void
Lua
exports['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

Sygnatura
AddNeed(source: number, need: "hunger" | "thirst" | "stress", delta: number): void
Lua
exports['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.

EksportCo robi
OpenSettings(): voidOtwiera ustawienia HUD gracza (to samo co /hud). Inne skrypty otwierają ustawienia dowolnego HUD-a przez OpenHudSettings() z AI Core.
SetMinimapAlways(on: boolean): voidWłasny przełącznik administratora (menu ai-admin): utrzymuje minimapę pieszo bez względu na ustawienie panelu, tylko dla tego gracza.
GetMinimapAlways(): booleanCzy ten przełącznik jest włączony.

Co czyta ai-hud

ŹródłoDo 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 fuelWskaźnik paliwa.
State bag gracza proximity i zdarzenia pma-voice:setTalkingMode / pma-voice:radioActiveZasięg głosu, mówienie, radio.
seatbelt z biblioteki (warstwa pasów AI Core)Ostrzeżenie o pasach.
inventory.currentWeapon() z bibliotekiPole 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.

Na tej stronie