AI Core
Grundlagenai-hud

ai-hud für Entwickler

Die Exports von ai-hud für Bedürfnisse (Hunger, Durst, Stress) und seine HUD-Einstellungen, und was es aus anderen Skripten liest.

Bedürfnisse sind Zahlen von 0 bis 100, die in den Metadaten des Charakters gespeichert werden (hunger, thirst, stress, die Schlüssel von QB). Hunger und Durst zählen herunter (100 = voll); Stress zählt hinauf (0 = ruhig). ai-hud ist das einzige Skript, das sie schreibt.

Um aus deinem Skript Stress hinzuzufügen, nutze den Stress-Layer von AI Core (stress der Lib, Export AddStress), der mit jedem laufenden HUD funktioniert. Die Wirkung von Essen und Trinken gehört an das Item: Setze die Werte Hunger, Thirst und Stress des Items im Panel von ai-inventory, und ai-hud wendet sie an, wenn das Item benutzt wird.

Server-Exports

SetNeed und AddNeed sind als AiHudServerExports in @aicore-fivem/shared typisiert (resourceExport("ai-hud") in TypeScript). GetNeeds ist nicht typisiert: Rufe es mit callExport("ai-hud", "GetNeeds", source) der Lib auf.

GetNeeds

Liest die Bedürfnisse eines geladenen Spielers.

Seite: Server · Wartet: nein

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

Parameter

Prop

Type

Rückgabewert

{ hunger, thirst, stress } | null: jeder Wert 0-100 (Nachkommastellen bleiben erhalten). null, wenn der Spieler keinen geladenen Charakter hat.

SetNeed

Setzt ein Bedürfnis auf einen Wert.

Seite: Server · Wartet: nein

Signatur
SetNeed(source: number, need: "hunger" | "thirst" | "stress", value: number): void
Lua
exports['ai-hud']:SetNeed(source, 'hunger', 100)

Parameter

Prop

Type

Rückgabewert

Nichts. Tut nichts, wenn der Spieler keinen geladenen Charakter hat oder ein Argument ungültig ist. Der neue Wert wird am Charakter gespeichert und an das HUD des Spielers gesendet, wenn sich sein gerundeter Wert ändert.

AddNeed

Ändert ein Bedürfnis um einen Betrag.

Seite: Server · Wartet: nein

Signatur
AddNeed(source: number, need: "hunger" | "thirst" | "stress", delta: number): void
Lua
exports['ai-hud']:AddNeed(source, 'thirst', 25)

Parameter

Prop

Type

Rückgabewert

Nichts.

Beispiel

import { callExport, resourceExport, onClientCallback } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

const hud = resourceExport("ai-hud");

// Ein Getränkeautomat: füllt den Durst ein wenig, lehnt ab, wenn der Spieler keinen Durst hat.
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 };
});

Diese Exports funktionieren nur, solange ai-hud läuft. Wenn der Betreiber ai-hud durch ein anderes HUD ersetzt, schlagen deine Aufrufe fehl. Der Stress-Layer von AI Core (AddStress) funktioniert auch mit anderen HUDs weiter.

Client-Exports

Typisiert als AiHudClientExports.

ExportWas er macht
OpenSettings(): voidÖffnet die HUD-Einstellungen des Spielers (dasselbe wie /hud). Andere Skripte öffnen die Einstellungen des jeweiligen HUD über OpenHudSettings() von AI Core.
SetMinimapAlways(on: boolean): voidDer eigene Schalter eines Admins (Menü von ai-admin): lässt die Minimap zu Fuß eingeschaltet, egal was das Panel sagt, nur für diesen Spieler.
GetMinimapAlways(): booleanOb dieser Schalter an ist.

Was ai-hud liest

QuelleWofür
Server-Event itemUsed (source, name, status) von AI CoreAddiert die Werte hunger, thirst, stress des Items.
Client-Event CORE.clientHudVisibleEvent (visible) von AI CoreBlendet das HUD aus, solange ein Vollbildmenü offen ist (hud.hide(reason) der Lib aus jedem Skript).
Tastenhinweise von AI Core (ai-core:client:keyHints, GetKeyHints())Die Tastenliste links.
Fahrzeug-State-Bag fuelDie Tankanzeige.
Spieler-State-Bag proximity und die Events pma-voice:setTalkingMode / pma-voice:radioActiveSprachreichweite, Sprechen, Funk.
seatbelt der Lib (der Gurt-Layer von AI Core)Die Gurtwarnung.
inventory.currentWeapon() der LibDie Waffenbox.

Events

Die eigenen Events von ai-hud (resource/common/hud.ts) sind intern. Eines steht nur seinem eigenen Client offen: ai-hud:stress (Client an Server, 1 bis 5 Punkte, höchstens zwei pro Sekunde). Andere Skripte fügen Stress auf dem Server über AI Core hinzu.

Auf dieser Seite