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
GetNeeds(source: number): { hunger: number; thirst: number; stress: number } | nulllocal needs = exports['ai-hud']:GetNeeds(source) -- Tabelle oder nilParameter
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
SetNeed(source: number, need: "hunger" | "thirst" | "stress", value: number): voidexports['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
AddNeed(source: number, need: "hunger" | "thirst" | "stress", delta: number): voidexports['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.
| Export | Was 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): void | Der 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(): boolean | Ob dieser Schalter an ist. |
Was ai-hud liest
| Quelle | Wofür |
|---|---|
Server-Event itemUsed (source, name, status) von AI Core | Addiert die Werte hunger, thirst, stress des Items. |
Client-Event CORE.clientHudVisibleEvent (visible) von AI Core | Blendet 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 fuel | Die Tankanzeige. |
Spieler-State-Bag proximity und die Events pma-voice:setTalkingMode / pma-voice:radioActive | Sprachreichweite, Sprechen, Funk. |
seatbelt der Lib (der Gurt-Layer von AI Core) | Die Gurtwarnung. |
inventory.currentWeapon() der Lib | Die 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.